Unidad 6. Manejo de arreglos

Anuncio
OBJETIVO 6.3. 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
Ejemplo de la implementación del llenado de un arreglo de forma aleatoria
Código en Turbo Pascal
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.
Ejemplo de implementación del llenado de un arreglo mediante el uso del teclado
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.
Ing. Nahiby Castillo
1
IMPRIMIR UN VECTOR
Existen muchas formas de imprimir los elementos de un vector por la pantalla, en esta
sección se presenta un método práctico para imprimir los valores de un vector.
Código de Turbo Pascal
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.
Ejercicios resueltos para tratamiento de vectores.
1) Escribir un programa que permita llenar e imprimir los valores de un arreglo
El programa utilizara dos ciclos importantes, uno para llenar un vector y luego otro
para imprimir todo el vector. Estos dos ciclos siempre serán los mismos sin importar el
tamaño de un vector
{programa para llenar e imprimir un conjunto de números }
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,']: ');
Ing. Nahiby Castillo
2
readln(v1[i]);
END;
writeln;
writeln('Valores del Arreglo');
writeln;
FOR i:=1 TO n DO
BEGIN
write('[',v1[i],'] ');
END;
readkey;
END.
2) Escribir un programa que permita calcular el porcentaje de números pares
existentes en el vector
Es importante acotar que la variable “cont”, cuenta la cantidad de números pares en el
vector es inicializado en 0(cero), fuera del ciclo (for), donde será utilizado
{ Programa para calcular porcentaje de pares }
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.
Ing. Nahiby Castillo
3
3) Escribir un Programa que permita imprimir los valores que estén en las
posiciones pares del vector
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
{ Programa para imprimir valores en posiciones pares }
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
{ Programa para imprimir un arreglo al revés }
PROGRAM ejer4;
USES
crt;
CONST
n = 4;
VAR
v1 : array [1..N] of Integer;
Ing. Nahiby Castillo
4
i : integer;
BEGIN
clrscr;
writeln('LLenando Arreglo');
writeln;
FOR i:=1 TO n DO
BEGIN
write('[',i,']: ');
readln(v1[i]);
END;
writeln;
writeln('Valores al reves son:');
writeln;
FOR i:=n DOWNTO 1 DO
BEGIN
writeln('[',v1[i],'] ');
END;
readkey
END.
5) Escribir un Programa que permita calcular el promedio del vector
Es importante observar que la variable “S” es un acumulador y se debe recordar que
todo acumulador debe inicializarse fuera del ciclo donde se esta utilizado.
{ Programa para imprimir el promedio de un vector }
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.
Ing. Nahiby Castillo
5
MÁXIMOS Y MÍNIMOS DE UN ARREGLO
Para buscar el máximo entre un conjunto de números se debe tomar en cuanta varias
cosas. Para ello se crea una variable llamada max para el valor máximo o min para el
valor mínimo, a la que se da inicialmente el valor de ARREGLO[primera posicion].
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.
6) Escribir un Programa que permita obtener el máximo valor de un arreglo
Este Programa es muy sencillo, si se entiende el algoritmo. La variable max acabará
siendo igual al elemento mayor del conjunto.
{Programa para buscar el máximo de un conjunto de números }
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.
Ing. Nahiby Castillo
6
7) Escribir un Programa que permita obtener la posición del máximo valor de un
arreglo
Este Programa es similar al anterior pero se trabaja además con el índice para
identificar la posición del máximo.
{Programa para buscar la posición del máximo de un conjunto de números}
PROGRAM ejer7;
USES
crt;
CONST
n = 4;
VAR
v1 : array [1..n] of Integer;
i,max,imax : integer;
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.
8) Escribir un Programa que permita visualizar la cantidad de apariciones del
minimo
En el algoritmo se puede identificar que primero se busca el mínimo, y luego se
verifica en otro ciclo cuantas veces aparece
{Cantidad de apariciones del mínimo}
PROGRAM ejer8;
USES
Ing. Nahiby Castillo
7
crt;
CONST
n=4;
VAR
min,i,cont:integer;
v1: array [1..n] of integer;
BEGIN
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;
writeln('El minimo aparece ',cont,' veces');
readkey;
END.
9) Escribir un Programa que permita visualizar el porcentaje de apariciones del
mínimo
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
{ Porcentaje de apariciones del mínimo}
PROGRAM ejer9;
USES
crt;
CONST
n=4;
VAR
min,i,cont:integer;
v1: array [1..n] of integer;
BEGIN
clrscr;
writeln('Llenado el Arreglo...');
Ing. Nahiby Castillo
8
FOR i:=1 TO n DO
BEGIN
write('[',i,']');
readln(v1[i])
END;
min := v1[1];
FOR i:=1 TO n DO
IF(v1[i]<min) THEN
min := v1[i];
cont:=0;
FOR i:=1 TO n DO
IF(v1[i]=min)THEN
cont:=cont+1;
writeln('El % del minimo es: ', ((cont)*100)/(n):4:2);
readkey;
END.
10) Escriba un Programa que muestro el porcentaje de valores múltiplos de 3
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.
Ing. Nahiby Castillo
9
Ejercicios Propuestos.
1. Leer 10 enteros, almacenarlos en un vector y determinar en qué posición del vector
está el mayor número leído.
2. Leer 10 enteros, almacenarlos en un vector y determinar en qué posición del vector
está el mayor número par leído.
3. Leer 10 enteros, almacenarlos en un vector y determinar en qué posición del vector
está el mayor número primo leído.
4. Cargar un vector de 10 posiciones con los 10 primeros elementos de la serie de
Fibonacci y mostrarlo en pantalla.
5. Almacenar en un vector de 10 posiciones los 10 números primos comprendidos entre
100 y 300. Luego mostrarlos en pantalla.
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.
7. Leer 10 números enteros, almacenarlos en un vector y determinar en qué posiciones
se encuentra el número mayor.
8. Leer 10 números enteros, almacenarlos en un vector y determinar en qué posiciones
se encuentran los números terminados en 4.
9. Leer 10 números enteros, almacenarlos en un vector y determinar cuántas veces
está repetido el mayor.
10. Leer 10 números enteros, almacenarlos en un vector y determinar en qué
posiciones se encuentran los números con mas de 3 dígitos.
11. Leer 10 números enteros, almacenarlos en un vector y determinar cuántos números
tienen, de los almacenados allí, tienen menos de 3 dígitos.
12. Leer 10 números enteros, almacenarlos en un vector y determinar a cuánto es igual
el promedio entero de los datos del vector.
13. Leer 10 números enteros, almacenarlos en un vector y determinar si el promedio
entero de estos datos está almacenado en el vector.
14. Leer 10 números enteros, almacenarlos en un vector y determinar cuántas veces se
repite el promedio entero de los datos dentro del vector.
15. Leer 10 números enteros, almacenarlos en un vector y determinar cuántos datos
almacenados son múltiplos de 3.
Ing. Nahiby Castillo
10
Descargar