Pascal/Turbo Pascal - Ayuda con trabajo de programación

   
Vista:

Ayuda con trabajo de programación

Publicado por Gioconda Nuñez (3 intervenciones) el 27/02/2012 17:39:02
Disculpen estoy estudiando ing. de mantenimiento industrial y en la materia programación todos estamos quebrados y el prof hizo un recuperativo en forma de trabajo si alguien me puede ayudar lo agradeceria, nuestro PROF no explica en lo mas minimo solo lanzó ese trabajo, en nuestra carrera no necesitamos programar, pero es necesario aprobar la materia para poder avanzanar, de antemano gracias....

1- OBJETIVO 1
En una empresa se desea organizar grupos de trabajo, particularmente en un departamento que consta de 25 personas. Se sabe que algunas personas no congenian entre si, lo cual dificultaría el desarrollo de proyectos en grupo. En vista del inminente plan de expansión trazado por la empresa, es primordial formar grupos integrados por personas que se lleven bien, a fin de realizar de manera satisfactoria los diversos proyectos. En este caso se establece un problema de relaciones entre personas. En general tenemos personas y desacuerdos. Este problema de relaciones entre elementos se puede resolver empleando un grafo. Si una persona A congenia con una persona E, entonces en el grafo los vértices A y E están conectados por un arco. En contraste si dos personas A y E no congenian entre sí, los nodos A y E no estarán conectados. Sobre la base de esta situación, elabore un programa en PASCAL, que en forma modular y estructurada permita resolver el siguiente problema:
1- Dado un conjunto de 25 personas, realice un proceso continuo, con opción de parada, que contemple las siguientes actividades:
a) Lea un número n que representa el número de personas que conformará el equipo (3 ≤ n ≤ 5)
b) Genere una matriz simétrica, cuyos elementos sean números aleatorios, entre 0 y 1. No considere los elementos que están en la diagonal (Vea la Figura 1).
c) Halle un grupo de n personas (si es posible) que puedan formar un grupo de trabajo.
d) Determine si dadas n personas, existe una posibilidad de que formen un grupo.
e) Determine si dado un par de personas (i , j), ambas congenian
f) Imprima la matriz de relaciones (matriz de adyacencia).

2- Estructura de datos: Emplee la estructura de datos tipo grafo.
3- Presente en una hoja adjunta a su trabajo un esquema del TAD grafo con el que Ud. ha trabajado, que incluya las operaciones que permitieron resolver el problema e incluya otras operaciones posibles.

Nota: La matriz de Adyacencia debe generarse automáticamente para considerar 25 personas. Para crearla debe utilizar un proceso de generación de números aleatorios (NA). Para ello puede emplear la función Random (m), la cual permite generar números aleatorios entre 0 y m. Se sugiere implementar ésta, como se describe a continuación:
f(NA) = 0 si 0 <= NA <= 0,5
1 si 0,5 < NA <= 1


Antes de utilizar la función random, es conveniente invocar el procedimiento randomize, el cual inicia el proceso de generación a partir de un valor aleatorio tomado de la hora del computador.


ADY = 1 1 ...... 0
1 0 ....... 1
1 0 ........ 1
...... ...... ..... .......
0 1 1
Figura 1: Ejemplo de Matriz de Adyacencia

2- OBJETIVO 2
Elabore un programa en PASCAL que realice lo siguiente:
• Construya un vector (array) de 100 elementos enteros entre los valores 0 y 100, empleando generación de números aleatorios. Los valores representarán las claves de los registros.
• Implemente los siguientes métodos de ordenación e imprima los resultados.

i. Método del Apuntador: Este método consiste en emplear un vector de índices que apuntan a cada elemento del vector original, en el sentido ordenado. No se modifica el vector original.
Ejemplo: Sea el siguiente vector (B) de números enteros, a ordenar, en donde los números inferiores representan las posiciones:

25 8 77 2 20 7 64 38 26 13
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10)

El vector apuntador (AP) “que ordena” a este vector original es el siguiente:
4 6 2 10 5 1 9 8 7 3
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10)

Una vez creado el apuntador AP, el mismo contiene los índices del vector ordenado, así AP (1) = 4, esto significa que el menor elemento de B está en la posición 4 y su valor es 2, AP (2) = 6, indica que el segundo elemento en orden ascendente es el que está en la posición 6 y su valor es 7, y así sucesivamente.
La impresión del vector ordenado, se hace a través de AP.
ii. Permutación: Consiste en crear un vector de índices o permutaciones, que indican el orden en que se encuentran cada uno de los elementos del vector original. No se modifica el vector. Ejemplo: Dado el vector B, presentado en (i),
25 8 77 2 20 7 64 38 26 13
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10)


El vector resultante P, representa una permutación, que expresa el orden ascendente de los elementos de B:
6 3 10 1 5 2 9 8 7 4
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10)

El menor elemento de B es el 2, por lo tanto: P(4) indica que el menor elemento es B(4), el siguiente en orden ascendente es el 7, que corresponde a B(6), por lo tanto P(6) es igual a 2. El proceso continúa hasta asignar a cada número de B un orden. Se imprime el la permutación correspondiente.
iii. Implemente un método de ordenación de su elección e imprima el vector ordenado.

3- OBJETIVO 3
Elabore un procedimiento en Pascal de búsqueda, tal que a partir de números enteros introducidos continuamente (entre 1 y 100), determine si se encuentran en el vector ordenado en (iii), si no está, deberá emitir el mensaje.

Instrucciones generales sobre el Trabajo Práctico
Para considerar el logro de cada uno de los objetivos, el estudiante debe entregar lo siguiente:
• Listado documentado del programa. En el encabezado de cada procedimiento, función o sección de programa que lo requiera, debe incluir un breve comentario del proceso que se realiza o del método que aplica. Igualmente es conveniente hacerlo en la definición de las estructuras de datos y variables utilizadas.
• Listado de los resultados obtenidos al hacer al menos dos corridas de los programas.
• Descripción del TAD empleado.

Recomendaciones
• Emplee nombres de variables, constantes, funciones y procedimientos alusivos a lo que representan.
• Utilice un diseño modular para la resolución del problema. Esta estructura aportará legibilidad y facilidad de comprensión, además evitará redundancias en los procesos. Evite variables globales en las funciones y procedimientos. Emplee parámetros en los mismos, determine cuáles son parámetros valor y cuáles parámetros variables.
• Desarrolle algoritmos eficientes
• Elabore procedimientos de validación de la data y de detección de errores para evitar interrupciones inesperadas en la ejecución del trabajo. Pruebe el programa con diferentes valores que estén adentro y fuera del rango considerado.

Yo puedo verificar las instrucciones y las recomendaciones pero en los demás estamos gringos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda con trabajo de programación

Publicado por ramon (2072 intervenciones) el 29/02/2012 19:16:10
Para empezar necesito algunas aclaraciones.
1º Se puede crear un registro de empleados con nombre numero DNI dirección y nº empleado.
2º Que significado tiene esto equipo (3 &#8804; n &#8804; 5) es acaso equipo $#8804 y componentes 3 y 5.
2º como establece el programa la compatibilidad o no sino le ponemos datos que comparar.
3º podíais a ver diseñado algo del proceso para facilitar un poco la labor.
Ayudar un poco para ser ayudados no queráis que os realicen todo pues después de echo no
os puede servir por ser procesos que no a veis tratado y el profe os cateara con razón.
decirme algo y empezare con vuestras bases.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con trabajo de programación

Publicado por Gioconda Núñez (3 intervenciones) el 29/02/2012 19:53:05
Entiendo, esta semana estoy tratando de resolver, aun tengo dudas, pero lo intento. Cuando lo tenga listocomo puedo hacer para aclarar mis dudas en privado, por si acaso no quiero q se copien de lo qu estoy haciendo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con trabajo de programación

Publicado por Gioconda Núñez (3 intervenciones) el 29/02/2012 20:00:17
P.D. En lo primero estoy tratando de hacer un listado con la C.I. de los empleados (soy de Venezuela), donde se les hagan una serie de preguntas de si y no, relacionados con el trabajo en equipo, a fin de establecer así la compatibilidad. Los simbolos esos no entiendo xq salieron así, alli establecí que debian formarse grupos entre 3 y 5 personas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con trabajo de programación

Publicado por ramon (2072 intervenciones) el 29/02/2012 21:24:16
En ese caso ya vamos entrando en tema presento un registro que creo que podía valer vos
me diréis.
const
preguntas : array[1..5] of string[20] = (' A qui las preguntas 1 ',' 2 ',' 3 ',' 4 ',' 5 ');
{Para todos las mismas preguntas para el control}

empleado = record
nombre : string; {Seria nombre y apellidos}
DNI : string[15]; {Por la letra que pudiera llevar }
Nemp : longint; {Numero de empleado}
preguntas : array[1..10] of boolean; {Por ejemplo 10 preguntas verdaderas o falsas}
grupo : integer; {Al grupo que pertenecerá}
end;

emplea : array[1..25] of empleado; {Variable de array del registro para los 25 empleados}
f : file of empleado; {Para el fichero donde guardar los datos de los empleados para consultas}
conta : integer; {Contador para el array}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar