Untitled

mail@pastecode.io avatar
unknown
pascal
3 years ago
2.3 kB
2
Indexable
Never
{8. Realizar un programa que lea y almacene la información de 400 alumnos ingresantes a la Facultad de Informática de la UNLP en el año 2020. De cada alumno se lee: nro de inscripción, DNI, apellido, nombre y año de nacimiento. Una vez leída y almacenada toda la información, calcular e informar:
a)   El porcentaje de alumnos con DNI compuesto sólo por dígitos pares.
b)   Apellido y nombre de los dos alumnos de mayor edad.}


program cap4_1ej8;
const
	dim=4;
type
	Alu=record
		codigo:integer;
		DNI:integer;
		apellido:string;
		nombre:string;
		anio:integer;
	end;
	Alumnos=array [1..dim]of Alu;
	
procedure leerDatos(var a:Alumnos);
var
	i:integer;
begin
	for i:= 1 to dim do
	begin
		writeln('ingrese codigo ');readln(a[i].codigo);
		writeln('ingrese DNI ');readln(a[i].DNI);
		writeln('ingrese apellido ');readln(a[i].apellido);
		writeln('ingrese nombre ');readln(a[i].nombre);
		writeln('ingrese anio ');readln(a[i].anio);
	end;
end;
	
procedure menorEdad (a:Alumnos; var min1,min2:integer; var apMin1,apMin2,nomMin1,nomMin2:string);
var
	i:integer;
begin
	for i:=1 to dim do
	begin
		if (a[i].anio<min1)then
		begin
			min2:=min1;
			nomMin2:=nomMin1;
			apMin2:=apMin1;		
			
			min1:=a[i].anio;
			nomMin1:=a[i].nombre;
			apMin1:=a[i].apellido;
		end
		else if (a[i].anio<min2)then
		begin
			min2:=a[i].anio;
			nomMin2:=a[i].nombre;
			apMin2:=a[i].apellido;
			
		end;
	end;
	writeln('Apellido y nombre del primer alumno de mayor edad (',min1,'):',apMin1,nomMin1);
	writeln('Apellido y nombre del segundo alumno de mayor edad (',min2,'):',apMin2,nomMin2);
end;
	
function DNIpares (num:integer):boolean;
var
	aux:integer;
	Pares:boolean;
begin

		pares:=false;
		while (num<>0)do 
		begin
			aux:=num mod 10; 
			if (aux mod 2 =0)then
				Pares:=true
			else
			begin
				Pares:=False;
				num:=0;
			end;
		end;		
		DNIpares:=Pares;
end;
	
var
	a:Alumnos;
	nomMin1,nomMin2,apMin1,apMin2:string;
	i,min1,min2,canPar:integer;
BEGIN
	min1:=9999; min2:=9999; canPar:=0;
	leerDatos(a);
	menorEdad(a,min1,min2,apMin1,apMin2,nomMin1,nomMin2);
	for i:=1 to dim do 
	begin
		if (DNIPares (a[i].DNI))then
			canPar:=canPar+1;
	end;
	writeln('El porcentaje de alumnos con DNI compuesto solo por digitos pares: ',canPar/dim);
END.