Documente Academic
Documente Profesional
Documente Cultură
MANEJO DE ARREGLOS
LLENADO DE UN VECTOR
Un arreglo se puede llenar de dos formas una de manera aleatoria en donde el
compilador llena el arreglo y otra forma es darle la oportunidad al usuario de indicar los
valores que tendrá el vector
PROGRAM llenado_vec;
USES
crt;
CONST
n = 4;
VAR
v1 : array [1..n] of Integer;
i : integer;
BEGIN
clrscr;
randomize;
FOR i:=1 TO n DO
BEGIN
v1[i]:= random(100); {random(100), genera valores aleatorios de 0…99}
END;
readkey;
END.
PROGRAM llenado_vec;
USES
crt;
CONST
n = 4;
VAR
v1 : array [1..n] of Integer;
i : integer;
BEGIN
clrscr;
writeln('LLenando Arreglo');
writeln;
FOR i:=1 TO n DO
BEGIN
write('[',i,']: ');
readln(v1[i]);
END;
readkey;
END.
PROGRAM llenado_vec;
USES
crt;
CONST
n = 4;
VAR
v1 : array [1..n] of Integer;
i : integer;
BEGIN
clrscr;
writeln('Valores Arreglo');
writeln;
FOR i:=1 TO n DO
BEGIN
write('[',v1[i],'] ');
END;
readkey;
END.
PROGRAM ejer1;
USES
crt;
CONST
n = 4;
VAR
v1 : array [1..n] of Integer;
i : integer;
BEGIN
clrscr;
writeln('Llenando el Arreglo');
writeln;
FOR i:=1 TO n DO
BEGIN
write('[',i,']: ');
PROGRAM ejer2;
USES
crt;
CONST
n = 4;
VAR
v1 : array [1..n] of Integer;
i : integer;
cont,por : real;
BEGIN
clrscr;
writeln('Llenando el Arreglo');
writeln;
cont:=0;
FOR i:=1 TO n DO
BEGIN
write('[',i,']: ');
readln(v1[i]);
IF (v1[i] mod 2) = 0 THEN
cont:=cont+1
END;
por := (cont*100)/N;
writeln('El % de pares es: ',por:4:2);
readkey;
END.
Se podrá observar que lo único que se debe realizar es imprimir en otro ciclo los
elementos del arreglo pero incrementando el índice del arreglo de dos en dos
PROGRAM ejer3;
USES
crt;
CONST
n = 4;
VAR
v1 : array [1..n] of Integer;
i : integer;
BEGIN
clrscr;
writeln('Llenando el Arreglo');
writeln;
FOR i:=1 TO n DO
BEGIN
write('[',i,']: ');
readln(v1[i]);
END;
writeln('Valores en posiciones pares');
writeln;
i:=2;
WHILE i<=n DO
BEGIN
write('[',v1[i],'] ');
i:=i+2;
END;
readkey;
END.
4) Escribir un Programa que permita imprimir los valores del vector al revés
Es importante señalar que en lenguaje C nunca se llega a la posición n por eso el índice
en el código de C, se comienza en n-1 y se llega hasta la posición 0
PROGRAM ejer4;
USES
crt;
CONST
n = 4;
VAR
v1 : array [1..N] of Integer;
PROGRAM ejer5;
USES
crt;
CONST
n = 4;
VAR
v1 : array [1..n] of Integer;
i : integer;
s : real;
BEGIN
clrscr;
writeln('LLenando Arreglo');
writeln;
s:=0;
FOR i:=1 TO n DO
BEGIN
write('[',i,']: ');
readln(v1[i]);
s:=s+v1[i];
END;
writeln;
writeln('El promedio del arreglo es:',s/N:4:2);
readkey
END.
Luego se recorren paso a paso todas las posiciones del vector, comparando el valor
almacenado en la posición considerada del vector con el valor de la variable max o min
según sea el caso . Si el valor de la posición considerada del vector es mayor que max
o en el caso mínimo menor que min entonces se copia (se sustituye el valor) en la
variable max o min este valor. De esta forma, una vez recorrido todo el vector, la
variable max contendrá el máximo valor o la variable min tendrá el mínimo valor.
PROGRAM ejer6;
USES
crt;
CONST
n = 4;
VAR
v1 : array [1..n] of Integer;
i,max : integer;
BEGIN
clrscr;
writeln('Llenando el vector');
writeln;
FOR i:=1 TO n DO
BEGIN
write('[',i,']: ');
readln(v1[i]);
END;
max:=v1[1]; {Se asigna como máximo valor al primer elemento del vector}
FOR i:=2 TO n DO
BEGIN
IF max < v1[i] THEN
max:=v1[i]
END;
writeln;
writeln('El valor maximo del arreglo es:',max);
readkey
END.
Este Programa es similar al anterior pero se trabaja además con el índice para
identificar la posición del máximo.
BEGIN
clrscr;
writeln('LLenando Arreglo');
writeln;
FOR i:=1 TO n DO
BEGIN
write('[',i,']: ');
readln(v1[i]);
END;
max:=v1[1];
imax:=1;
FOR i:=2 TO n DO
BEGIN
if max < v1[i] then
BEGIN
max:=v1[i];
imax:=i
END
END;
writeln;
writeln('El valor maximo del arreglo es: ',max);
writeln('Y esta en la posicion: ',imax);
readkey
END.
clrscr;
writeln('Llenado del Arreglo...');
FOR i:=1 TO n DO
BEGIN
write('[',i,']');
readln(v1[i])
END;
cont:=0;
min := v1[1];
FOR i:=1 TO n DO
BEGIN
IF v1[i] > min THEN
min := v1[i] {Se asigna el valor del vector de la posición i al mínimo}
END;
cont:=0;
FOR i:=1 TO n DO {se cuanta los valores que son igual al mínimo}
IF(v1[i]=min) THEN
cont:=cont+1;
Este ejercicio es muy parecido al anterior salvo que al final se utiliza una regla de 3
para obtener el porcentaje de apariciones del mínimo
clrscr;
writeln('Llenado el Arreglo...');
Este ejercicio es muy parecido al anterior salvo que se busca los múltiplos de 3 para
calcular el porcentaje
{ Porcentaje de múltiplos de 3}
PROGRAM ejer10;
USES
crt;
CONST
n=4;
VAR
i,cont:integer;
v1: array [1..n] of integer;
BEGIN
clrscr;
writeln('Llenado el Arreglo...');
FOR i:=1 TO n DO
BEGIN
write('[',i,']');
readln(v1[i])
END;
cont:=0;
FOR i:=1 TO n DO
IF((v1[i] mod 3)=0) THEN
cont:=cont+1;
write('El % de multiplos de 3 es: ', (cont)*100 div (n));
readkey;
END.
6. Leer dos números enteros y almacenar en un vector los 10 primeros números primos
Comprendidos entre el menor y el mayor. Luego mostrarlos en pantalla.