Seguimos buscando a Arshak. Ayudanos compartiendo!
Encuesta no oficial de docentes
Resultados de la encuesta no oficial de docentes
Probaste el SIGA Helper?

Donar $100 Donar $200 Donar $500 Donar mensualmente


Enviar respuesta 
 
Calificación:
  • 1 votos - 5 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
Ayuda Urgente - Vectores - Programacion
Autor Mensaje
ElChacal Sin conexión
Suspendido
NO PUEDO VER MENSAJES PRIVADOS...

Ing. Industrial
Facultad Regional Buenos Aires

Mensajes: 7.819
Agradecimientos dados: 0
Agradecimientos: 586 en 71 posts
Registro en: Mar 2008
Mensaje: #1
Ayuda Urgente - Vectores - Programacion Ejercicios Algoritmos y Estructuras de Datos
Gente:

Estuve resolviendo los putos ejercicios de vectores que necesitaba y algunos no me salieron.

Les dejo estos ejercicios para ver si alguno se porta y los puede sacar.

""""""""""""""Se gana un cafe en el bufet con medialunas el que me resuelva y me suba alguno de estos ejercicios"""""""""""""""""""""""""".

Tema a tener en cuenta muy importante. NOSOTROS EN INFO 1 NO VEMOS ARCHIVOS, ASI QUE SI VEN QUE EL ENUNCIADO HABLA DE ARCHIVOS, NO LE DEN BOLA.

Solo ingresamos datos por teclados, o cargamos un vector o leemos un vector.

Saludos y ahi van.

PRIMER EJERCICIO QUE ME GANO:

Spoiler: Mostrar
Una empresa, con una cantidad máxima de 2500 artículos, dispone de un conjunto de registros (uno por cada artículo) con los siguientes datos en cada uno:
*Nº de artículo (8 dígitos). *Cantidad de unidades en stock.
*Precio unitario de la venta. * Nº de proveedor.
El último registro del lote tiene un Nº de artículo = 1 y solo se ha colocado para indicar el fin del archivo, no debiendo procesarse.
A continuación hay otro conjunto de registros con la siguiente información en cada uno:
* Nº de cliente (1 a 999) * Fecha de la venta (DDMMAA).
* Nº de artículo. * Cantidad de unidades.
Cada registro corresponde a la venta de un artículo y no tiene ningún orden, finalizando el archivo con un nº de cliente = 0.
Realizar el diagrama y la codificación PASCAL de un programa que determine e imprima al finalizar el proceso:
1) Para los clientes que como mínimo compraron en 3 meses, el siguiente listado:
IMPORTE DE VENTAS POR CLIENTE POR MES
NUMERO DE MES
CLIENTE =========================================================
1 2 3 11 12
NNN NNN.NN NNN.NN NNN.NN NNN.NN NNN.NN
Ordenado por número de cliente.
2) Para los artículos con existencia nula o negativa:
LISTADO DE ARTÍCULOS CON EXISTENCIA INSUFICIENTE
NUMERO DE ARTICULO PROVEEDOR
NNNNNNNN NNNNN
3) Para los números de artículo erróneos (o inexistentes):
LISTADO DE ARTÍCULOS ERRÓNEOS
NUMERO DE ARTICULO NUMERO DE CLIENTE CANTIDAD VENDIDA
NNNNNNNN NNNNN NNNNN
4) Determinar a que cliente le corresponde el máximo importe mensual de venta.
Nota: Los artículos rechazados no superan los 300..


SEGUNDO EJERCICIO QUE ME DERROTO:

Spoiler: Mostrar
En una unidad de entrenamiento militar de comandos, hay 1259 efectivos entrenados, los que han sido calificados de 1 a 10, en cada una de las 15 especialidades [Por ejemplo: 1: Asalto, 2: Francotirador, 3: Armas Especiales, …,15: Paracaidistas] .
Se genera un archivo con un registro para cada uno de los egresados, los siguientes datos: Apellido y nombres, legajo, notas obtenidas en cada especialidad.
La diferentes unidades operativas, solicitan a la unidad de entrenamiento, mediante listados con los datos de los mejores de cada especialidad, la cantidad de comandos y la especialidad.

Se debe desarrollar un programa que, leyendo la información del archivo y luego las solicitudes, seleccione e imprima los listados con los datos de los comandos seleccionados de acuerdo a las pautas dadas (cantidad y mejores notas de la especialidad requerida), sabiendo además que un efectivo no puede volver a asignarse a una unidad operativa, si ya fue asignado a otra.
Si la cantidad requerida, no puede ser satisfecha, se asignaran los que estén disponibles y un mensaje indicando la cantidad faltante.


TERCER EJERCICIO QUE ME ANIQUILO:

Spoiler: Mostrar
Realizar un diagrama y la correspondiente codificación en lenguaje Pascal que permita determinar e imprimir la identificación de los participantes que integrarán la largada de una carrera automovilística.
Se cuenta para ello con un lote de datos con los 58 inscriptos para las pruebas de clasificación, cada registro tiene los siguientes datos:
APELLIDO Y NOMBRE (30 caracteres)
ESCUDERIA (10 caracteres),
MARCA(10 caracteres),
NÚMERO DE AUTO (1 A 100),
GRUPO SANGUINEO (4 caracteres)

En la carrera pueden participar solamente 30 corredores (los que empleen los menores tiempos en las pruebas de clasificación; las mismas se realizan bajo las siguientes reglas:
a) Solo pueden clasificar aquellos que no salgan a la pista para clasificar en mas de 7 oportunidades.
b) Se considerarán solamente las vueltas completas al circuito.
c) Se debe considerar el menor tiempo de una vuelta para la clasificación.
Se genera un registro por cada vuelta que completa un participante conteniendo (fin del ultimo registro numero de auto =0):
NÚMERO DE AUTO, NÚMERO DE VUELTA y TIEMPO EMPLEADO.
Se imprimirá un listado ordenado según la ubicación que le corresponderá a cada corredor y en caso de exceder los 30, un listado con los suplentes. (si un participante no completó ninguna vuelta, no se incluye en éste último listado.
Informar la cantidad de autos que presenta cada escudería.


CUARTO EJERCICIO QUE ME ROMPIO EL CULO:

Spoiler: Mostrar
Realizar un diagrama y la correspondiente codificación en lenguaje Pascal que permita determinar e imprimir la grilla de largada de una carrera automovilística en la que se inscribieron 58 participantes y participan 30 como máximo.
Se dispone solamente de un archivo con la siguiente información:
NUMERO DE AUTO (3 dígitos) TIEMPO DE UNA VUELTA
Se graba un registro por cada una de las vueltas que completa un auto en las pruebas de clasificación por lo que para cada auto puede aparecer uno, varios o ningún registro. Se deberá informar al finalizar, la cantidad de participantes que no clasificaron No lograron girar ninguna vuelta en las pruebas de clasificación.
Si clasifican mas de 30, se imprimirá un listado aparte, con el título: SUPLENTES


QUINTO EJERCICIO QUE ME LLEVO A LA PARALISIS CEREBRAL:

Spoiler: Mostrar
Una línea ferroviaria cubre un trayecto (en ambos sentidos) entre 2 puntos, con 18 estaciones intermedias. Las estaciones están numeradas de 1 a 20, incluidas ambas cabeceras (1 y 20).
Para obtener información estadística se debe procesar la siguiente información, de dos archivos:
a) El primero con 19 registros, cada uno de los cuales contiene la distancia (en Km) entre 2 estaciones consecutivas. (DIST.DAT)
b) El segundo, BOLETOS.DAT, donde por cada boleto vendido se graba un registro con los siguientes datos (sin orden y fin del archivo cuando se ingresa un registro en blanco):
Número de estación de Partida (1 a 20)
Número de estación de Llegada (1 a 20)
Realizar el diagrama y codificación de un programa que leyendo los datos de ambos archivos determine e imprima:
1.- El número de estación por la que paso la mayor cantidad de pasajeros, no considerándose los ascensos y descensos en las estaciones.
2.- El promedio de Km / pasajero.
Diagrama variante 1
b) Por cada boleto vendido se registran los siguientes datos:
Número de estación de Partida (1 a 20)
Número de estación de Llegada (1 a 20)
Código de Recorrido (1 :Ida; 2: Ida y Vuelta)

SEXTO EJERCICIO QUE ME QUEBRO:

Spoiler: Mostrar
Se debe realizar un proceso de desagio (reducción de montos por aplicación de la ley de conversión del Peso al Austral) para los plazos fijos efectuados en una compañía financiera. Para llevarlo a cabo se dispone de un archivo con 199 registros con:
a) Fecha de aplicación (DDMMAA)
b) Coeficiente de desagio
El primero corresponde a la fecha de vencimiento 16 06 85 y el último a la fecha 31 12 85.
A continuación se dispone de otro lote de registros con la información de cada plazo fijo, ordenado por su Nº con (fin del archivo nº de plazo fijo =0):
a) Nº del plazo fijo
b) Fecha de vencimiento (DDMMAA)
c) Importe a cobrar.
Realizar el diagrama y la codificación PASCAL de un programa que determine e imprima:
1. Los datos leídos de cada plazo fijo y el nuevo importe actua¬lizado a abonar al vencimiento.
2. Al finalizar el proceso se informarán correlativamente todos los datos (Nº, fecha e importe) de los plazos fijos que no pudieron desagiarse por tener una fecha de vencimiento posterior al 31 12 85 (no hay mas de 300 en esas condiciones)

Hoy nos juntamos en casa y entre 4 no pudimos sacar estos ejercicios. Igual avanzamos un monton con toda la guia que debemos entregar el lunes y fue bastante bien, pero estos nos ganaron. Son los ultimos de nuestra guia.

RECUERDEN, POR NADA DEL MUNDO USEN ARCHIVOS. SI BIEN ENTIENDO QUE SERIA MAS FACIL Y QUE TIENEN TODA LA PINTA, SOLO PODEMOS USAR VECTORES

Gracias
(Este mensaje fue modificado por última vez en: 21-08-2010 20:43 por ElChacal.)
21-08-2010 20:41
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
rulo Sin conexión
Ultra Nerd Mod
By demons driven!
*********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 4.333
Agradecimientos dados: 51
Agradecimientos: 67 en 37 posts
Registro en: Apr 2009
BlogSpot
Mensaje: #2
RE: Ayuda Urgente - Vectores - Programacion
A ver,vamos con el primero.La estructura de datos es lo primero que tenés que sacar es.Te dan:

Registro de Articulos
{
nroart longint
precio word (no se cual es el precio máximo pero supongo que más de $65 000 no te cuesta)
stock word (idem anterior,de 65000 no pasa no? =P)
nroprov longint (asumiendo que sea mas o menos del mismo tamaño que el numero de articulo)
}

Registro de ventas
{
nrocli integer
fecventa longint
nroart longint
cant integer (asumiendo que no compra más de 32000 porque no le da la plata)
}

Ahora fiajte que el campo que tenés en comun entre ambos es nroart o sea,número de artículo y es con el que vas a vintular ambos arrays.

1)Para los clientes que como mínimo compraron en 3 meses, el siguiente listado:
IMPORTE DE VENTAS POR CLIENTE POR MES
NUMERO DE MES
CLIENTE

Estoy un poco oxidado con los AMB's de algoritmos pero yo haria lo siguiente.


-Primero llamas a un procedimiento que te ordene el segundo array por número de cliente.(Tene en mente que lo que tenés son vectore de esos registros y NO los registros sueltos).
-Despues usas el procedimiento loco 1 que tiene la forma procedure clientes ( arrventas:tventas, arrarticulos:tarticulos).
Y vas comparando.
Mientras el cliente siga siendo el mismo incrementas un número (ponele que a la variable la llamamos d).Si d>=3 imprimis el listado de este cliente.Es decir volves atras en el vector hasta donde arranca ESE cliente (la posición la guardaste en una variable).Y ahí haces:
Mientras no se acabe el vector
{
Mientras el cliente sea el mismo
{
Mientras el mes sea el mismo:
{
-recorres el array del cliente desde donde empieza a estar ese cliente
-buscas el numero de articulo
-multiplicas el precio que te figura en el vector artículos por la cantidad de venta (que te figura en el vector ventas) y ese resultado lo acumulas en una variable ventasmes o similar.
}
imprimis el importe del cliente.
imprimis en pantalla la fecha (o el numero de més solo que lo sacas con un cálculo).
}
}



Te puse las llaves porque ya ni me acuerdo como codear en pascal pero son análogas al begin y end.

2)Aca tenés que recorre el vector de artículos nomás.
Vendría a ser así.


Mientras no se acabe el vector de artículos
{
imprimir ("Listado de artículos con existencia insuficiente");
si (arrart[i].stock <=0)
{imprimir (arrart[i].norart);
imprimir (arrart[i].proovedor);
}
incrementar(i);
}



3) No me quedo claro cómo sacas los artículos erroneos ni que número de artículo se considera erroneo,si podés aclarar esto,mejor.Igual tenés que recorrer el array de artículos con la misma estructura que lo anterior pero reemplazando la comparación del if por una que te diga cuando el artículo tiene un número erroneo.

4)Esto se deriva del primer ejercicio simplemente guardas en otra variable el máximo importe llamémosla maxventas y la inicializas con 0 o un número negativo. y mientras estas en el paso 1 cuando terminas con un cliente comparas el importe contra esta variable y si el importe es mayor o igual que la variable guardas el número de cliente en una variable,digamos maxcli.Y así podés imprimir ambas,aunque creo que solo te piden la segunda.

Por ultimo disculpa si no esta claro del todo pero estoy un toque dormido y bastante oxidado con el tema de ABM's (además de que los odio =P) pero buen.Despues sigo con los otros ejercicios.

Otra cosa:nota que arrart y arrventas son array de artículos y array de ventas respectivamente.

Saludos!

Cita:Absolve me, save my reign
Have you forgotten me?
(Este mensaje fue modificado por última vez en: 22-08-2010 00:54 por rulo.)
22-08-2010 00:51
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)