Seria de gran ayuda resolver este problema. Cree un programa en pascal que tenga: 1. Una función que lea un numero entero validando que se encuentre en un intervalo[x1,x2] 2. Un procedimiento que compare dos string y si son iguales incremente un contador. 3. Una función que compare dos números reales y entregue el menor de ellos. 4. Una función que ingresados dos números de tipo entero, entregue la suma de ellos.
En el begin principal utilizando las funciones y procedimientos anteriores se debe: a) Ingresar el apellido y la edad (entre 1 y 110) de N personas con 0<N<70 b) determinar si hay alguna persona de apellido lillo o no la hay. c) Cual es la edad más baja. d) La edad promedio.
¿Y quieres que sea en Pascal normal? Nada de Delphi u otro Pascal orientado a objetos. Es que hoy en día es una desventaja muy grande usar ese tipo de lenguajes antiguos, fíjate todo el pollo que se puede montar para corregir una entrada errónea. Porque creo que lo que dices es que los datos se toman del teclado. ¿No?
Es en dev pascal, es una tarea para la universidad de un ramo llamado programación. Si pudieras ayudarme seria genial!. Gracias.
Descargue Dev Pascal para verificar que funciona el programa que voy a hacer. Lo primero que veo raro es la función que compare dos números reales y entregue el menor. Tendría que comparar números enteros, ya que está visto que se va a usar para comparar la edad recién tecleada con la más baja que hay hasta ese momento y esos dos son números enteros. Pero voy a hacer lo que me pides aunque se añada una complicación de conversión de datos que sería innecesaria. La edad más baja será un número real en lugar de entero. Luego, Dev Pascal comete un error muy fuerte y te saca del programa si al querer leer un número entero introduces letras. Por eso la función de leer la edad es un poco rara, pero imprescindible para que no perdamos todos los datos introducidos hasta ese momento si pulsamos letras en vez de números. Como dices que N debe ser < 70, he puesto que cuando se hayan introducido 69 datos ya no puedas introducir unoi más y te dé ya los resultados. Bueno, lo mejor es que pruebes el programa y si no entiendes algo me lo dices. Ahí va, espero que puedas usar copiar y pegar para meterlo en tu Dev Pascal. -------------------------------------------- program PromedioEdad; const EdadMinima : integer = 1; EdadMaxima : integer = 110; ApellidoBuscado : string = 'LILLO'; var Edad, SumaEdades, NumeroVecesBuscado, DatosIntroducidos : integer; EdadPromedio, EdadMasBajaReal: real; Apellido, Repetimos : string; function EdadLeidaValidada : integer; var Edad, CodigoError: integer; s : string; begin {Se lee un string en lugar de la edad directamente porque daba error y se salía del programa si no se introducian datos numéricos} repeat write('Edad entre ',EdadMinima,' y ',EdadMaxima,' : '); reset(input); read(s); val(s, edad, CodigoError); if CodigoError <> 0 then edad := EdadMinima - 1; until (Edad>=EdadMinima) and (edad <= EdadMaxima); EdadLeidaValidada := Edad end; procedure IncrementarSiRepe(x,y : string; var i: integer); begin if x = y then i := i+1 end; function MinimoReal(x, y: real) : real; begin if x > y then MinimoReal := y else MinimoReal := x end; function SumaEnteros(i, j: integer) : integer; begin SumaEnteros := i +j end; begin repeat NumeroVecesBuscado := 0; DatosIntroducidos := 0; EdadMasBajaReal := EdadMaxima + 1; SumaEdades := 0; repeat reset(input); write('Apellido', DatosIntroducidos+1,' (Para terminar escriba FIN) : '); read(apellido); apellido := upcase(Apellido); if apellido <> 'FIN' then begin Edad := EdadLeidaValidada; SumaEdades := SumaEnteros(SumaEdades, Edad); EdadMasBajaReal := MinimoReal(EdadMasBajaReal, Edad); IncrementarSiRepe(Apellido, ApellidoBuscado, NumeroVecesBuscado); DatosIntroducidos := DatosIntroducidos+1 end until (Apellido = 'FIN') or (DatosIntroducidos = 69); If DatosIntroducidos > 0 then begin writeln; writeln(ApellidoBuscado, ' aparece : ',NumeroVecesBuscado,' veces.'); writeln('La edad menor es : ', EdadMasBajaReal:3:0); EdadPromedio := SumaEdades / DatosIntroducidos; writeln('La edad promedio es : ', EdadPromedio:6:2) end; writeln; write(' Pulse S y ENTER si quiere introducir otros datos '); reset(input); readln(Repetimos); writeln until upcase(Repetimos) <> 'S' end. -------------------------------------- Y eso es todo. Espero que te sirva y lo entiendas. No olvides puntuar y cerrar la pregunta.