PROGRAM ejercicio_33 (input,output);
(*Ejercicio 33 del boletín de estructuras de datos*)
TYPE
TMatricula = integer;
TNMatricula = ARRAY [1..3] OF char;
Tnombre = string(40);
VAR
Matricula:TMatricula;
LMatricula:TNMatricula;
Edad:integer;
Nombre:Tnombre;
Apellido1:Tnombre;
Apellido2:Tnombre;
Acumulador:integer VALUE (0);(*Variable para sumar los números de la matrícula*)
Resultado:boolean VALUE (FALSE);
PROCEDURE pedir;
VAR
i:integer VALUE (1);
BEGIN
Write('Escriba su nombre: ');
Readln(Nombre);
Write('Escriba su primer apellido: ');
Readln(Apellido1);
Write('Escriba su segundo apellido: ');
Readln(Apellido2);
Write('Escriba los números de la matricula de su coche: ');
Read(Matricula);
Write('Indique su edad: ');
Readln(Edad);
Write('Escribe las letras de su matrícula: ');
i:=1;
WHILE i<=3 DO
BEGIN
Read(LMatricula[i]);
(*Write(LMatricula[i]);*)
i:=i+1;
END;
Writeln;
(*Writeln('Señor ',Nombre,' tiene usted un coche con matricula ',Matricula:0,LMatricula[1],LMatricula[2],LMatricula[3]);*)
END;
PROCEDURE sumar_numeros;
VAR
Matriculas:integer;
BEGIN
Matriculas:=Matricula;
REPEAT
Acumulador:=Matriculas MOD (10)+ Acumulador;
Matriculas:=Matriculas DIV (10);
UNTIL Matriculas=0;
END;
FUNCTION premio (Matricula,Edad:integer; Nombre:TNombre):boolean;
VAR
i:integer;
Premio1:boolean VALUE (FALSE);
Premio2:boolean VALUE (FALSE);
BEGIN
IF Edad=Acumulador THEN
Premio1:=TRUE
ELSE Premio1:=FALSE;
IF (Nombre[1]=LMatricula[1]) AND (Apellido1[1]=LMatricula[2]) AND (Apellido2[1]=LMatricula[3]) THEN
Premio2:=TRUE;
IF (Premio1=TRUE) AND (Premio2=TRUE) THEN
premio:=TRUE
ELSE premio:=FALSE;
END;
BEGIN
pedir;
sumar_numeros;
(*premio(Matricula,Edad,Nombre);*)
Resultado:=premio(Matricula,Edad,Nombre);
IF Resultado=TRUE THEN
Writeln('PREMIO la suma de los números de su matrícula es igual a su edad y las letras de su matrícula coinciden con sus iniciales.');
IF Resultado=FALSE THEN
Writeln('LO SIENTO NO TIENE PREMIO');
readln(Edad);
END.
Ejemplo de ejecucion
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario