Академический Документы
Профессиональный Документы
Культура Документы
Program AgregarElementos; const dimF = 10; Type rango= 0..dimF; vector = array [1..dimF] of integer; Var v : vector; elem: integer; sepuede: boolean; dimL, i: rango;
Arreglos: Insertar
Supongamos que deseamos insertar el VALOR 6 en la POSICIN 1 del vector
2 1
5 2
3 3 4 ....... 10
Arreglos: Insertar
Program insertarelementos; Const dimF = 1000 Type rango= 0..dimF; vector = array [1..dimF] of integer; var v: vector; elem : integer; pos , DimL: rango; sepuede : boolean;
begin cargar-vector (v, DimL); sepuede := true; readln (elem); readln(pos); Validar(pos, sepuede); while (elem < > 0) and (sepuede) do begin INSERTAR ( v, DimL, elem, pos, sepuede); if (sepuede) then begin read (elem); readln(pos); Validar (pos,sepuede); end; end.
Arreglos: Insertar
Procedure cargar-vector ( var num: vector; var DimL: integer ); var elem : integer; Begin DimL := 0; read (elem); while (elem < > 9999) and (DimL< dimF ) do begin DimL := DimL + 1; num [ DimL ] := elem; read (elem) end; End.
Arreglos: Insertar
Procedure INSERTAR (var num:vector; var dimL:rango; elem:integer; pos:rango; var exito:boolean ); var i : rango; Begin if (dimL < DimF ) then begin exito := true; i := DimL; While ( i >= pos ) do begin num [ i + 1 ] := num [ i ] ; i := i - 1 ; end; num [pos] := elemento; DimL := DimL + 1; {Incremento dim logica} end else exito := false;
Arreglos: Borrar
Aspectos a considerar:
DimL : cantidad de elementos en el vector. Luego de la operacin la cantidad de elementos disminuye en 1. Pos : posicin del elemento del vector que se quiere borrar. Debe verificarse que pos<= DimL
{Consideremos un programa que borra varios elementos en posiciones que se ingresan como dato, invocando al procedure Borrar}
Arreglos: Borrar
begin cargarvector (v, DimL); sepuede := true; read (pos); while ( pos< > 0) do begin BORRAR ( v, DimL, elem, pos, sepuede); if sepuede then writeln (El elemento borrado es: , elem); read (p); end; End.
program borrarelementos; const dimF = 1000; type rango= 0..dimF; vector = array [1..dimF] of integer; var v: vector; elem : integer; pos , DimL: rango; sepuede : boolean;
Arreglos: Borrar
Procedure BORRAR (var num: arreglo; var DimL: integer; var elemento: integer; pos: rango; var exito: boolean ); Var j: rango; Begin if (pos <= DimL) and (pos >=1) then begin {verifica valor de pos, valida ese valor} elemento := num [pos] ; {Guarda el valor del elemento que se
borra }
for j:= pos to DimL-1 do num [ j ] := num [ j + 1 ] ; DimL := DimL - 1 ; end else exito := false;
Estructura de datos-ARREGLO
EJERCICIO 1
Begin
inicializar (num); contabilizar (num); informar (num); End.
Estructura de datos-ARREGLO
EJERCICIO 1
Procedure inicializar (var a: cantidades); Begin for i:= 5 to 60 do a[i]:= 0; End;
Estructura de datos-ARREGLO
EJERCICIO 1
Procedure contabilizar (var a: cantidades); Var valor:rango; Begin read (valor);
while (valor<>24) do begin a[valor]:= a[valor] + 1; read (valor); end; End;
Estructura de datos-ARREGLO
EJERCICIO 2
1. Se lee una secuencia de nmeros comprendidos en el rango de 5 a 60. La secuencia termina cuando se lee el nmero 24. Informar cuantas veces apareci cada nmero.
2. Se lee una secuencia de letras minsculas que termina en /. Informar la cantidad de veces que aparece cada letra. 3. Se lee una sucesin de datos de a lo sumo 100 alumnos. De cada alumno se conoce nombre y nota de alumnos. Informar los nombres de aquellos alumnos que superen el promedio del grupo. La lectura termina con el alumno de nombre ZZZ.
Estructura de datos-ARREGLO
EJERCICIO 2
Program dos;
type cantidades = array [a..z] of integer; var num: cantidades; Begin inicializar(num); cargar (num); informar(num); End.
Estructura de datos-ARREGLO
EJERCICIO 2
Procedure inicializar (var a: cantidades); Var i:char; Begin for i:= a to z do a[i]:= 0; End;
Estructura de datos-ARREGLO
EJERCICIO 2
Procedure contabilizar (var a: cantidades);
Var valor: char; Begin read (valor); while (valor <> /) do begin a[valor]:= a[valor] + 1; read (valor); end; End;
Estructura de datos-ARREGLO
EJERCICIO 2
Procedure informar (a: cantidades); Var i:char; Begin for i:= a to z do write (a[i]); End;
Estructura de datos-ARREGLO
EJERCICIO 3
1. Se lee una secuencia de nmeros comprendidos en el rango de 5 a 60. La secuencia termina cuando se lee el nmero 24. Informar cuantas veces apareci cada nmero.
2. Se lee una secuencia de letras minsculas que termina en punto. Informar la cantidad de veces que aparece cada letra. 3. Se lee una sucesin de datos de a lo sumo 100 alumnos. De cada alumno se conoce nombre y nota. Informar los nombres de aquellos alumnos que superen el promedio del grupo. La lectura termina con el alumno de nombre ZZZ.
Estructura de datos-ARREGLO
EJERCICIO 3
Program Ej3; Const numdatos = 100; type rango=0..numdatos; str20 = string [20]; alumno = record nombre : str20; nota : real; end; ListaAlum = array [1.. numdatos] of alumnos; var datos: ListaAlum; dimL: rango; suma,promedio : Real;
Estructura de datos-ARREGLO
EJERCICIO 3
begin {Principal} Leo_y_Sumo_Datos (datos , suma, dimL);
promedio := suma / dimL; for i := 1 to dimL do if (datos[i].nota > promedio) then WriteLn (datos[i].nombre, , datos[i].nota ) end;
Estructura de datos-ARREGLO
EJERCICIO 3
procedure Leo_y_Sumo_Datos (var dat: ListaAlum;var sum:Real;var DimL: rango); Var alu: alumno; begin sum := 0; dimL:= 0; leerAlumno (alu); while (alu.nombre <> zzz) and (dimL < numdatos)do begin dat[dimL+1]:= alu; sum := sum + dat[dimL+1].nota; dimL:= dimL +1; leerAlumno (alu); end