Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
practica 9 ejercicio 11
program HelloWorld; {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- CONST - Define las constantes para usar en tiempo de compilacion} const maratonistas = 7; minutos = 59; horas = 3; segundos = 59; {-----------------------------------------------------------------------------------------------------------------------} {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- TYPE - Define los tipos creados por el usuario para usar en tiempo de compilacion} type // --------ranges-------- // rangoHoras = 0 .. horas; rangoMinutos = 0 .. minutos; rangoSegundos = 0 .. segundos; rangoMaratonistas = 1 .. maratonistas; // --------records-------- // Ttiempo = record hora : integer; minuto : rangoMinutos; segundo : rangoSegundos; end; // --------typs -------- // Tnombre = string[15]; // --------list-------- // Tlista = ^nodo; nodo = record datos : Ttiempo; sig : Tlista; end; // --------records-------- // Tmaratonista = record nombre : Tnombre; apellido : Tnombre; sexo : char; // male or female = m or f maratones : Tlista; end; // --------vector-------- // Tvector = array [rangoMaratonistas] of Tmaratonista; {-----------------------------------------------------------------------------------------------------------------------} {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- VARIABLES GLOBALES - Define variables que se podran usar por todos los modulos de ser necesarias} // var {-----------------------------------------------------------------------------------------------------------------------} // agregado {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- } procedure espacio; begin writeln;writeln;writeln;writeln; writeln('--------------------------------------------------------------------------'); writeln;writeln;writeln;writeln; end; {-----------------------------------------------------------------------------------------------------------------------} // lista {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- AGREGAR TIEMPO } procedure agregarMaraton(var l : Tlista; t : Ttiempo); var nue : Tlista; begin new(nue); nue^.datos := t; nue^.sig := l; l := nue; end; {----------------------------------------------------------------- LEER TIEMPO } procedure leerMaraton(var t : Ttiempo); begin t.hora := random(horas); t.minuto := random(minutos)+1; t.segundo := random(segundos)+1; end; {----------------------------------------------------------------- CARGAR LISTA } procedure cargarMaratones(var l : Tlista); var t : Ttiempo; begin l := nil; leerMaraton(t); while (t.hora <> 0) do begin agregarMaraton(l,t); leerMaraton(t); end; end; {----------------------------------------------------------------- IMPRIMIR MARATON} procedure imprimirMaraton( m : Ttiempo); begin writeln('tiempo: ',m.hora,':',m.minuto,':',m.segundo); end; {----------------------------------------------------------------- IMPRIMIR MARATONES } procedure imprimirMaratones (l : Tlista); begin while l <> nil do begin imprimirMaraton(l^.datos); writeln('---------------------------'); l := l^.sig; end; end; {----------------------------------------------------------------- IMPRIMIR MEJOR TIEMPO } procedure imprimirMejorTiempo(var l : Tlista; var t : Ttiempo); begin if (l^.datos.hora < t.hora) then begin t := l^.datos; end else // si tiene la misma cantidad de horas if (l^.datos.hora = t.hora) then if ( l^.datos.minuto < t.minuto ) then begin t := l^.datos; end else // si tiene la misma cantidad de minutos if(l^.datos.minuto = t.minuto) then begin if (l^.datos.segundo < t.segundo) then t := l^.datos; end; end; {----------------------------------------------------------------- INICIALIZAR } procedure inicializar(var t : Ttiempo; var p : Ttiempo; var contador :integer; var act : Tlista; l : Tlista); begin t.hora := horas; t.minuto := minutos; t.segundo := segundos; p.hora:=0; p.minuto:=0; p.segundo:=0; act := l; contador := 0; end; {----------------------------------------------------------------- IMPRIMIR PROMEDIO } procedure imprimirPromedio(l: Tlista;var p : Ttiempo); var minuto,segundo : integer; begin minuto := 0; segundo :=0; // segundos // segundo := l^.datos.segundo + p.segundo; if segundo > segundos then begin segundo := segundo - segundos; minuto := minuto+1; end; p.segundo := segundo; // minutos // minuto := p.minuto + minuto + l^.datos.minuto; if minuto > minutos then begin minuto := minuto - minutos; p.hora:= p.hora+1; end; p.minuto := minuto; // horas // p.hora := p.hora + l^.datos.hora; end; {----------------------------------------------------------------- CALCULAR PROMEDIO } procedure calcularPromedio (var p : Ttiempo; contador : integer); begin p.hora := p.hora div contador; p.minuto := p.minuto div contador; p.segundo := p.segundo div contador; end; {----------------------------------------------------------------- IMPRIMIR EJERCICIOS } procedure imprimirEjercicios ( l: Tlista); var t , p: Ttiempo; contador : integer; act : Tlista; begin act := l; inicializar(t,p,contador,act,l); while l <> nil do begin imprimirMejorTiempo(l,t); imprimirPromedio(l,p); contador := contador + 1; l := l^.sig; end; if act <> nil then begin writeln('el mejor tiempo fue:'); imprimirMaraton(t); calcularPromedio(p,contador); writeln('el promedio de tiempos fue: '); imprimirMaraton(p); end else writeln('no hay maratones registradas'); end; {-----------------------------------------------------------------------------------------------------------------------} // vector {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- LEER MARATONISTA} procedure leerMaratonista(var m : Tmaratonista); begin readln(m.nombre); readln(m.apellido); readln(m.sexo); cargarMaratones(m.maratones); end; {----------------------------------------------------------------- CARGAR VECTOR} procedure cargarMaratonistas (var v: Tvector); var i : rangoMaratonistas; begin for i:= 1 to maratonistas do leerMaratonista(v[i]); end; {----------------------------------------------------------------- IMPRIMIR MARATONISTA} procedure imprimirMaratonista(m : Tmaratonista); begin writeln('nombre: ',m.nombre); writeln('apellido: ',m.apellido); writeln('sexo: ',m.sexo); imprimirMaratones(m.maratones); imprimirEjercicios(m.maratones); end; {----------------------------------------------------------------- IMPRIMIR MARATONISTAS} procedure imprimirMaratonistas(v : Tvector); var i : rangoMaratonistas; begin for i:= 1 to maratonistas do begin writeln('el numero del maratonista es ',i); imprimirMaratonista(v[i]); espacio; end; end; {-----------------------------------------------------------------------------------------------------------------------} {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- PROGRAMA PRINCIPAL} var v : Tvector; begin randomize; cargarMaratonistas(v); imprimirMaratonistas(v); end. {-----------------------------------------------------------------------------------------------------------------------}
run
|
edit
|
history
|
help
0
Potenztabelle
TOHOP
practica 2 ejercicio 3
Membalik string
Бассейн-5
procedure escribir caracter n veces
practica 9 ejercicio 5
Урок 2. Функции:
6
Поиск вершин в горах