Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
practica 11 ejercicio 3
program HelloWorld; {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- CONST - Define las constantes para usar en tiempo de compilacion} const carreras = 3; dias = 31; meses = 12; anioMin = 1970; anioMax = 2000; FIN = 'fin'; {-----------------------------------------------------------------------------------------------------------------------} {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- TYPE - Define los tipos creados por el usuario para usar en tiempo de compilacion} type rangoDias = 1 .. dias; rangoMeses = 1 .. meses; rangoAnios = anioMin .. anioMax; rangoCarreras = 1 .. carreras; Tnombre = string[15]; Tfecha = record dia : rangoDias; mes : rangoMeses; anio : rangoAnios; end; Tingresante = record nombre : Tnombre; apellido : Tnombre; ciudad : Tnombre; fecha : Tfecha; titulo : boolean; carrera :Tnombre; end; Tlista = ^nodo; nodo = record datos : Tingresante; sig : Tlista; end; vectorAnios = array [rangoAnios] of integer; vectorCarreras = array [rangoCarreras] of integer; {-----------------------------------------------------------------------------------------------------------------------} {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- VARIABLES GLOBALES - Define variables que se podran usar por todos los modulos de ser necesarias} //var {-----------------------------------------------------------------------------------------------------------------------} //cargar ingresante {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- } procedure leerIngresante(var i : Tingresante); var n : integer; begin readln(i.nombre); if i.nombre <> FIN then begin readln(i.apellido); readln(i.carrera); readln(i.ciudad); i.fecha.dia := random(dias)+1; i.fecha.mes := random(meses)+1; i.fecha.anio := random(anioMax-anioMin)+anioMin; n:= random(2); if n = 1 then begin i.titulo := true; end else i.titulo := false; end; end; {----------------------------------------------------------------- } procedure cargarIngresante(var l : Tlista; i : Tingresante); var nue : Tlista; begin new(nue); nue^.datos := i; nue^.sig := l; l := nue; end; {----------------------------------------------------------------- } procedure cargarLista(var l : Tlista); var i : Tingresante; begin l := nil; leerIngresante(i); while i.nombre <> FIN do begin cargarIngresante(l,i); leerIngresante(i); end; end; {-----------------------------------------------------------------------------------------------------------------------} // mostrar ingresantes {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- } procedure imprimirIngresante(i : Tingresante); begin writeln('nombre: ',i.nombre); writeln('apellido: ',i.apellido); writeln('carrera: ',i.carrera); writeln('fecha de nacimiento: ',i.fecha.dia,'/',i.fecha.mes,'/',i.fecha.anio); writeln('ciudad de origen: ',i.ciudad); writeln('presentó titulo : ',i.titulo); end; {----------------------------------------------------------------- } procedure espacio; begin writeln; writeln('--------------------------------------------------------------------------------------------------'); writeln; end; {----------------------------------------------------------------- } procedure imprimirLista(l : Tlista); begin while l <> nil do begin imprimirIngresante(l^.datos); espacio; l := l^.sig; end; end; {-----------------------------------------------------------------------------------------------------------------------} {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- } procedure informar(v1 : vectorAnios; v2 : vectorCarreras); var i , nmax: rangoAnios; max : integer; j , cmax: rangoCarreras; begin max := 0; for i := anioMin to anioMax do if max < v1[i] then begin max := v1[i]; nmax := i; end; writeln('el anio en que mas nacieron ingresantes fue ',nmax); max :=0; for j:=1 to carreras do if v2[j] > max then begin max := v2[j]; cmax := j; end; case cmax of 1 : writeln('la carrera con mas ingresantes fue APU'); 2 : writeln('la carrera con mas ingresantes fue LI'); 3 : writeln('la carrera con mas ingresantes fue LS'); end; end; {----------------------------------------------------------------- } procedure ejercicio3(var v2 : vectorCarreras;e : Tnombre); begin case e of 'APU' : v2[1] := v2[1] + 1; 'LI' : v2[2] := v2[2] + 1; 'LS' : v2[3] := v2[3] + 1; else writeln('la carrera ingresada no es valida'); end; end; {----------------------------------------------------------------- } procedure inicializacion(l : Tlista; var act : Tlista; var v1 : vectorAnios; var v2 : vectorCarreras); var i : rangoCarreras; j : rangoAnios; begin act := l; // ejercicio 2 for j:= anioMin to anioMax do v1[j] := 0; // ejercicio 3 for i:= 1 to carreras do v2[i] := 0; end; {----------------------------------------------------------------- } procedure borrarElemento(var l :Tlista;var act : Tlista; var ant : Tlista); var h : boolean; begin h := false; if act <> l then begin ant^.sig := act^.sig; h :=true; end else l := act^.sig; dispose(act); if h then begin act := ant^.sig; end else act := l^.sig; end; {----------------------------------------------------------------- } procedure recorrerLista(var l : Tlista); var v1 : vectorAnios ; v2 : vectorCarreras ; act,ant : Tlista; begin inicializacion(l,act,v1,v2); while act <> nil do begin // ejercicio 1: se informa si el ingresante nació en Brandsen if act^.datos.ciudad = 'Brandsen' then writeln(act^.datos.apellido); // ejercicio 2: se aumenta en uno el ingresante de determinado anio v1[act^.datos.fecha.anio] := v1[act^.datos.fecha.anio] + 1; // ejercicio 3: se aumenta en un el ingresante por carrera ejercicio3(v2,act^.datos.carrera); // ejercicio 4: si no presentó titulo se borra de la lista if not(act^.datos.titulo) then borrarElemento(l,act,ant); ant:=act; act := act^.sig; end; imprimirLista(l); informar(v1,v2); end; {-----------------------------------------------------------------------------------------------------------------------} {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- PROGRAMA PRINCIPAL} var l : Tlista; begin cargarLista(l); imprimirLista(l); recorrerLista(l); end. {-----------------------------------------------------------------------------------------------------------------------}
run
|
edit
|
history
|
help
0
Zad 3 в
Banking
matrix - changing upper diagonal elements
janja - naloga 1 - 11.7.2013
rf cdx
считалочка05
Solving Quadratic Equation
kroliki
4º Questão VS - 1º Sem. 2017
BubbleSort (standaard)