Guía de Estudio Nº 7 Asignatura: Programación Docente: Lcda. Xiomara Salas

Anuncio
Guía de Estudio Nº 7
Asignatura: Programación
Ing. Agroindustrial 3er semestre
Docente: Lcda. Xiomara Salas
ARREGLOS EN PASCAL
ARREGLOS UNIDIMENSIONALES
Un arreglo unidimensional es un tipo de datos estructurado que está formado por una colección finita y
ordenada de datos del mismo tipo. Es la estructura natural para modelar listas de elementos iguales. Los datos
que se guarden en los arreglos todos deben ser del mismo tipo.
El tipo de acceso a los arreglos unidimensionales es el acceso directo, es decir, podemos acceder a cualquier
elemento del arreglo sin tener que consultar a elementos anteriores o posteriores, esto mediante el uso de un
índice para cada elemento del arreglo que nos da su posición relativa.
Para implementar arreglos unidimensionales se debe reservar espacio en memoria.
Los arreglos nos permiten hacer un conjunto de operaciones para manipular los datos guardados en ellos, estas
operaciones son: ordenar, buscar, insertar, eliminar, modificar entre otras.
REPRESENTACION EN MEMORIA: Los arreglos guardan en memoria la cantidad de espacios que se le
indican en la declaración.
Ejemplo: sea el siguiente arreglo unidimensional donde se va a guardar 5 datos de tipo entero (integer)
x : array[1..5] of integer
En memoria el computador guarda 5 espacios: esto quiere decir en el arreglo X en la posición 1 guarda 34, en
el arreglo X en la posición 2 guarda 22, así hasta la última posición del arreglo X posición 5 guarda 72.
X [1]
X [2]
X [3]
X [4]
X [5]
34
22
39
63
72
Declaración de los arreglos unidimensionales: Se declara el tipo del arreglo, con la palabra reservada TYPE,
luego se declara la variable de tipo arreglo, esto se hace en el bloque de declaración de variables palabra
reservada VAR.
Recopilado En Línea De Las Páginas Web: http://ejemplos.mis-algoritmos.com/,
http://programacionunefa.blogspot.com/2008/06/arreglos-bidimensionales-y.html
Página 1
Type
nombre_arreglo= array[x..y]of tipo_dato;
Ejemplos:
salarios= array [1…x] of real;
nombre_trabajador=array[1..x] of string;
Nota: El tipo de dato del arreglo puede ser: integer,real, boolean, string etc.
Variables tipo array
Var
sueldo:salarios;
nombre:nombre_trabajador;
Una vez declarados los arreglos procedemos a cargar información en ellos, para esto usamos estructuras
repetitivas la más recomendable por su facilidad es el For, una vez cargada la información se puede hacer
cualquier operación de cálculo y por último mostramos la información de los arreglos usando de igual manera la
estructura repetitiva For.
Carga de un arreglo, la letra i es el índice o subíndice del arreglo e indica la posición del arreglo:
for i:=1 to num do
begin
readln(notas[i]);
end;
Mostrar la información de un arreglo, la letra i es el índice o subíndice del arreglo e indica la posición del
arreglo:
for i:=1 to num do
begin
writeln(notas[i]:3:1);
end;
Recopilado En Línea De Las Páginas Web: http://ejemplos.mis-algoritmos.com/,
http://programacionunefa.blogspot.com/2008/06/arreglos-bidimensionales-y.html
Página 2
Se han hechos programas que suman una cantidad de números usando dos variables, una para leer cada
número y otra para acumular la suma. Este enfoque tiene la desventaja de que se pierden los valores de los
sumandos. El uso de arreglos permite calcular la suma de los números con una cantidad mínima de código y a
la vez conservar cada valor, como muestra el siguiente programa completo:
Program SumaN;
Uses
Crt;
Const
n = 5;
Type
Numms: Array[1..n] Of Integer;
Var
Num: Numms;
s, i: Integer;
Begin
For i:=1 To n Do
Begin
Write('Escriba el número: ');
ReadLn(nums[i]);
s := s + nums[i];
End;
WriteLn('La suma es: ', s);
End.
Nótese el uso de una constante para marcar el tamaño del arreglo; dicha constante, también sirve para
controlar el FOR. De este modo, sólo se hace necesario cambiar un número para adecuar el programa a la
escala apropiada
Recopilado En Línea De Las Páginas Web: http://ejemplos.mis-algoritmos.com/,
http://programacionunefa.blogspot.com/2008/06/arreglos-bidimensionales-y.html
Página 3
Ejercicios de arreglos unidimensionales:
1. Dadas n cantidad de notas, calcular e imprimir el promedio de las notas y todas las notas que fueron
mayor a la media calculada.
PROGRAM calificaciones;
USES CRT;
CONST
n=1000;
{Recuerden que todo vector debe tener un INICIO y un FIN, por ello hay que darle un intervalo exacto; solo
que más adelante se le da la opción por teclado al usuario mediante mensaje de cuanto son el N notas a
procesar; siempre y cuando éstas se encuentren dentro del número fijo de celdas de memorias que creamos
para este vector que serían 1000; pero si solo desean procesar 2 notas lo puede igualmente hacer gracias al
parámetro 'INTRODUZCA la cantidad de notas a procesar' que definiremos luego en el cuerpo del programa}
TYPE
listacalificaciones=array[1..n]of real;
VAR
notas:listacalificaciones;
media,suma:real;
num,i:integer;
BEGIN
WRITELN('INTRODUZCA la cantidad de notas a procesar');
READLN(NUM);
suma:=0;
for i:=1 to num do
begin
readln(notas[i]);
suma:=suma+notas[i];
end;
media:=suma/num;
writeln('la media es:' , media:2:2);
writeln('la lista de calificaciones mayores a la media es:');
for i:=1 to num do
begin
if notas[i]>media then
writeln(notas[i]:3:1);
readln;
end;
END.
Recopilado En Línea De Las Páginas Web: http://ejemplos.mis-algoritmos.com/,
http://programacionunefa.blogspot.com/2008/06/arreglos-bidimensionales-y.html
Página 4
2. Escribir un programa en pascal que rellene un array con 11 números, luego dividirlos entre 3 y
mostrarlos por pantalla.
PROGRAM números;
USES CRT;
TYPE
arreglonumeros=array[1..11]of real;
VAR
num:arreglonumeros;
i:integer;
numero:real;
BEGIN
for i:=1 to 11 do
begin
WRITELN('Introduzca el numero ' , i, ' a dividir');
readln(num[i]);
numero:=num[i]/3;
write('los numero resultantes de la división son:' ,numero:2:2);
readln;
end;
END.
ARREGLOS BIDIMENSIONALES
Recopilado En Línea De Las Páginas Web: http://ejemplos.mis-algoritmos.com/,
http://programacionunefa.blogspot.com/2008/06/arreglos-bidimensionales-y.html
Página 5
Ejercicio de arreglos Bidimensionales:
5. Calcular el promedio de cada estudiante de una lista de veinticinco alumnos de una clase de informática con
notas en cuatro asignaturas.
PROGRAM Promedio;
USES CRT;
TYPE
Notas: Array [1..25,1..4] of real;
VAR
I,J: Integer;
Suma,Prom: Real;
BEGIN
For I := 1 to 25 do
Begin
Write (`Notas del estudiante: ´,I:1);
Writeln (`En una misma línea digite todas las notas´);
Suma := 0;
For J := 1 to 4 do
Begin
Read (Notas[I,J]);
Suma := Suma + Notas[I,J]
End;
Prom := Suma/4;
Writeln (`La nota promedio del estudiante `,I:1,´ es `,Prom:1:1);
End;
Readkey;
END.
ARREGLOS MULTIDIMENSIONALES
El concepto de arreglo multidimensional es una extensión del concepto de arreglo
unidimensional, al considerar que el tipo base está formado por componentes estructurados
del tipo arreglo (unidimensional o multidimensional). De esta forma un arreglo bidimensional
(comúnmente llamado matriz) es una arreglo cuyas componentes son arreglos
unidimensionales; un arreglo tridimensional es un arreglo cuyas componentes son arreglos
bidimensionales, y en general, un arreglo n-dimensional es una arreglo cuyas componentes son
arreglos de dimensión n-1.
Recopilado En Línea De Las Páginas Web: http://ejemplos.mis-algoritmos.com/,
http://programacionunefa.blogspot.com/2008/06/arreglos-bidimensionales-y.html
Página 6
Descargar