Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
practica 9 ejercicio 6
program HelloWorld; {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- CONST - Define las constantes para usar en tiempo de compilacion} const cajas = 5; FIN = 0; {-----------------------------------------------------------------------------------------------------------------------} {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- TYPE - Define los tipos creados por el usuario para usar en tiempo de compilacion} type // ----------- RANGOS ----------- // rangoCajas = 1 .. cajas; // ----------- ELEMENTO ----------- // Telemento = record nro : integer; caja : rangoCajas; monto : real; end; Tmonto = record veces : integer; montoTot : real; promedio : real; end; // ----------- LISTA ----------- // Tlista = ^nodo ; nodo = record datos : Telemento; sig : Tlista; end; // ----------- VECTOR ----------- // Tvector = array [rangoCajas] of Tmonto; // para el monto promedio {-----------------------------------------------------------------------------------------------------------------------} {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- VARIABLES GLOBALES - Define variables que se podran usar por todos los modulos de ser necesarias} //var {-----------------------------------------------------------------------------------------------------------------------} {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- AGREGAR ELEMENTO ...} procedure agregarElemento (var l : Tlista; e : Telemento); var nue : Tlista; begin new(nue); nue^.datos := e; nue^.sig := l; l := nue; end; {----------------------------------------------------------------- LEER ELEMENTO...} procedure leerElemento(var a : Telemento); begin a.nro := random(20); if a.nro <> FIN then begin a.caja := random(cajas)+1; a.monto := random(1000); end; end; {----------------------------------------------------------------- CARGAR LISTAS ...} procedure cargarLista(var l : Tlista); var e : Telemento; begin l := nil; leerElemento(e); while (e.nro <> FIN) do begin agregarElemento(l,e); leerElemento(e); end; end; {-----------------------------------------------------------------------------------------------------------------------} {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- IMPRIMIR LISTA ... } procedure imprimirLista(l : Tlista); begin while l <> nil do begin if l^.datos.nro < 10 then begin writeln('nro de ticket : 0',l^.datos.nro,'. caja : ', l^.datos.caja,'. monto : ',l^.datos.monto:5:2,'$.'); end else writeln('nro de ticket : ',l^.datos.nro,'. caja : ', l^.datos.caja,'. monto : ',l^.datos.monto:5:2,'$.'); l := l^.sig; end; writeln('-----------------------------------------------------------------'); end; {-----------------------------------------------------------------------------------------------------------------------} {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- INICIALIZAR ... } procedure inicializar(var v : Tvector); var i : rangoCajas; begin for i := 1 to cajas do begin v[i].veces := 0; v[i].promedio := 0; v[i].montoTot := 0; end; end; {----------------------------------------------------------------- CALCULAR PROMEDIOS ... } procedure calcularPromedios(var v : Tvector); var i : rangoCajas; begin for i := 1 to cajas do begin v[i].promedio := v[i].montoTot / v[i].veces; end; end; {----------------------------------------------------------------- INFORMAR A } procedure informarA (v : Tvector); var i : rangoCajas; begin for i := 1 to cajas do begin writeln('nro de caja: ',i); writeln('nro de veces: ',v[i].veces); writeln('monto total: ',v[i].montoTot:10:2); writeln('promedio: ',v[i].promedio:10:2); writeln('---------------------------------------------------------'); end; end; {----------------------------------------------------------------- RECORRER LISTA ... } procedure recorrerLista( l : Tlista; var v : Tvector); begin inicializar(v); while l <> nil do begin // ejercicio 1 ... v[l^.datos.caja].veces := v[l^.datos.caja].veces + 1; v[l^.datos.caja].montoTot := v[l^.datos.caja].montoTot + l^.datos.monto; l := l^.sig; end; calcularPromedios(v); writeln;writeln; writeln('ejercicio 1 / ------------------------------------------'); informarA(v); end; {-----------------------------------------------------------------------------------------------------------------------} {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- LIBERAR LISTA ... } procedure liberarLista(var l : Tlista); var aux : Tlista; begin while l <> nil do begin aux := l^.sig; dispose(l); l := aux; end; end; {-----------------------------------------------------------------------------------------------------------------------} {-----------------------------------------------------------------------------------------------------------------------} procedure recorrerLista2(l: Tlista; v :Tvector); var l2,l3 : Tlista; begin l2 := nil; l3 := nil; while l <> nil do begin if (v[l^.datos.caja].montoTot < 1000) then begin agregarElemento(l2,l^.datos); end else if (v[l^.datos.caja].montoTot > 12000)and(v[l^.datos.caja].veces < 100) then agregarElemento(l3,l^.datos); l:= l^.sig; end; writeln;writeln; writeln('ejercicio 2 / ------------------------------------------'); imprimirLista(l2); writeln;writeln; writeln('ejercicio 3 / ------------------------------------------'); imprimirLista(l3); liberarLista(l2); liberarLista(l3); end; {-----------------------------------------------------------------------------------------------------------------------} {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- PROGRAMA PRINCIPAL} var l : Tlista; v : Tvector; begin randomize; cargarLista(l); imprimirLista(l); recorrerLista(l,v); recorrerLista2(l,v); liberarLista(l); end. {-----------------------------------------------------------------------------------------------------------------------}
run
|
edit
|
history
|
help
0
03 ariketa
Calculatrice(TROP compliqué)
solar system 7 (update)
P170815A - Cálculo da massa de um tanque
quadratic equation
zadacha8
подсчёт символов и цифр пока не точка
Deskripsi2
Zadanie 2
zadacha2