Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
practica 9 ejercicio 2
program HelloWorld; {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- CONST - Define las constantes para usar en tiempo de compilacion} const FIN = 0; {-----------------------------------------------------------------------------------------------------------------------} {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- TYPE - Define los tipos creados por el usuario para usar en tiempo de compilacion} type lista = ^nodo; nodo = record datos : integer; sig : lista; end; {-----------------------------------------------------------------------------------------------------------------------} {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- VARIABLES GLOBALES - Define variables que se podran usar por todos los modulos de ser necesarias} //var {-----------------------------------------------------------------------------------------------------------------------} {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- AGREGAR ELEMENTO ...} procedure agregarElemento(var l : lista; n : integer); var nue : lista; begin new (nue); nue^.datos := n; nue^.sig := l; l := nue; end; {----------------------------------------------------------------- CARGAR LISTA ...} procedure cargarLista(var l: lista); var n : integer; begin l := nil; n := random(20)-10; while (n <> FIN) do begin agregarElemento(l,n); n := random(20)-10; end; end; {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- IMPRIMIR LISTA ...} procedure imprimirLista(l : lista); begin while l^.sig <> nil do begin if l^.datos > 0 then begin write(l^.datos,' - '); end else write('(',l^.datos,') - '); l:= l^.sig; end; if l^.datos > 0 then begin writeln(l^.datos,'.'); end else writeln('(',l^.datos,').'); end; {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- IMPAR - Se encarga de contar la cantidad de numeros que tienen cantidad de digitos impares ...} function impar(l : lista): integer; var digitos : integer; // contador de digitos num : integer; // guarda el numero a operar cant : integer; // almacena la cantidad de numeros con cantidad de digitos impares begin // inicializamos la cantidad: cant := 0; // empezamos el recorrido while (l <> nil) do begin // guardamos el numero e inicializamos digitos num := l^.datos; digitos := 0; if num < 0 then num := num * (-1); // analisis del numero while num <> 0 do begin digitos := digitos + 1; num := num div 10; end; // verif if digitos mod 2 <> 0 then cant := cant + 1; // pasamos al siguiente numero l := l^.sig; end; // guardamos el resultado impar := cant; end; {----------------------------------------------------------------- BUSCAR NUMERRO ...} function mayor (l : lista):integer; var max : integer; begin max := 0; while (l <> nil) do begin if max < l^.datos then max := l^.datos; l := l^.sig; end; mayor := max; end; {----------------------------------------------------------------- ULTIMOS PARES ...} procedure ultimosPares(l : lista); var par1, par2 : integer; begin par1 := 0; while (l <> nil) do begin if l^.datos mod 2 = 0 then begin par2 := par1; par1 := l^.datos; end; l := l^.sig; end; writeln('ultimo par : ',par1 , '. ante ultimo par : ', par2,'.'); end; {----------------------------------------------------------------- RECORRER LISTA ...} procedure recorrerLista(l:lista); var num : integer; begin writeln; writeln('-----------------------------------------------------------------'); writeln('ejercicios : '); writeln('el mayor numero ingresado es ',mayor(l)); writeln('la cantidad de numeros cuya cantidad de digitos es impar es ',impar(l)); writeln('los dos ultimos numeros pares son '); ultimosPares(l); end; {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- LIBERAR LISTA ... } procedure liberar(var l : lista); var aux : lista; begin while (l <> nil) do begin aux := l^.sig; dispose(l); l:= aux; end; end; {-----------------------------------------------------------------------------------------------------------------------} {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- PROGRAMA PRINCIPAL} var l : lista; begin randomize; cargarLista(l); imprimirLista(l); recorrerLista(l); liberar(l); end. {-----------------------------------------------------------------------------------------------------------------------} { a) El mayor número leído. b) La cantidad de números cuya cantidad de dígitos es impar. c) Los 2 últimos números pares de la lista.}
run
|
edit
|
history
|
help
0
dad
вывод номера символа на экран
janja - naloga 1 - 11.7.2013
Tri 1.0
solar_system_yupiter
12 13
1 2
Opdracht_1
tablas
nomer6