pre-laboratorio 3 - cloudfront.net

Gráficamente un vector tendría estas características. Subíndices. Datos. Nota: Es importante aclarar que si se esta trabajando en pascal la primera posición.
72KB Größe 14 Downloads 41 vistas
PRE-LABORATORIO 3 ESTRUCTURAS DE DATOS ESTATICOS 3.1 ARREGLO UNIDIMENSIONAL: Un arreglo unidimensional es una secuencia de datos del mismo tipo. Los datos se llaman elementos del arreglo y se enumeran consecutivamente, el tipo de elementos almacenados en el arreglo puede ser de cualquier tipo de los datos primitivos de un lenguaje, incluso estructuras definidas por el usuario Un arreglo es un conjunto de variables en donde cada una de ellas puede ser referenciada utilizando su posición relativa es decir su ubicación en relación con el primer elemento de dicho conjunto. Un arreglo puede contener, por ejemplo: todas las notas de un alumno o las edades de una sección de computación, donde cada valor de un arreglo se denomina elemento. Los elementos de un arreglo se enumeran consecutivamente desde la posición inicial hasta la posición N; estos números se denominan índice del arreglo Entonces se tiene lo siguiente, un arreglo es un conjunto de valores que están asociados bajo un mismo nombre y se puede referenciar a un elemento particular mediante el nombre y el índice del elemento a seleccionar Gráficamente un vector tendría estas características

Subíndices

1

2

3

4

5

6

Datos

5

64

-74

58

75

112

7 -78

Nota: Es importante aclarar que si se esta trabajando en pascal la primera posición comienza en 1 y termina en la posición N (7 en este caso), pero si se esta trabajando en lenguaje C la primera posición es 0 y la ultima posición es N-1(en este caso 6) En pascal El primer elemento sería datos[1] = 5 El ultimo elemento sería datos[7] = -78

DM / AA

1

Declaración de un Vector: Como cualquier otra variable, se debe declarar un arreglo antes de utilizarlo. Un arreglo cuando se declara se tienen que indicar dos cosas importantes que es el tipo de datos y el tamaño del arreglo. Pascal (sintaxis) Nom_Vector : array [ 1 . . n] of Tipo_Dato; Ejemplo: V1 : array [1..n] of Integer; V2 : array [1..n] of Real; Es importante acotar que “N” es una constante previamente definida, antes de usarse en la declaración de un arreglo.

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.

DM / AA

2

Llenado de un vector por 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.

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.

DM / AA

3

EJERCICIO PROPUESTO TIPO ARREGLO UNIDIMENSIONAL. 1. Escribir un programa que permita calcular el porcentaje de números pares existentes en el vector. 2. Escribir un programa que permita imprimir los valores que estén en las posiciones impares del vector. 3. Escribir un programa que permita imprimir los valores del vector al revés. 4. Escribir un programa que permita obtener el máximo valor de un arreglo.

3.2 ARREGLO BIDIMENSIONAL: Un arreglo bidimensional (Tabla o Matriz) es un arreglo con dos índices, al igual que los vectores deben ser ordinales o tipo subrango. Para localizar o almacenar un valor en el arreglo se deben especificar dos posiciones, uno por fila y otro para la columna. La matriz es una estructura de datos básica dentro de los lenguajes de programación y conceptualmente son idénticas a sus homónimas matemáticas. Por tanto una matriz es un conjunto de datos de un tamaño definido que se encuentran consecutivos en memoria y en la que es posible el acceso al elemento que deseemos simplemente con indicar su posición. Declaración de una Matriz La declaración de una matriz es como sigue: PASCAL: Identificador : array [1.. tamaño, 1.. tamaño] of tipo_dato; Donde: Tipo_de_dato: es el tipo de datos que contendrá la matriz. Hasta ahora sólo conoceremos los tipos básicos de datos. Posteriormente veremos como definir nuestros propios tipos de datos. Identificador: es el nombre que le damos a la variable matriz y por el cual la referenciamos en nuestro programa. [tamaño]: indica el número de elementos de tipo tipo_de_datos contendrá la matriz identificador. Si definimos dos tamaños [tamaño1] [tamaño2] nuestra matriz será bidimensional. Por tanto, para declarar una matriz de enteros bidimensionales de tamaño 3 x 4, se debería escribir: DM / AA

4

Pascal:

tabla: array [1..3, 1..4] of integer Y se representa: 1

1 5

2 344

3 5

4 4

2

34 646 85

-9

3

3

-89

-9 1258

Para acceder a una celda se realiza mediante dos índices, uno para lasfilas y otro para las columnas. Si deseamos acceder a la posición 1,2 lo realizaremos de la siguiente manera: Mat [1,2] := 20;

Operación de lectura e impresión En el siguiente ejemplo se llena e imprime una matriz con valores introducidos por teclado y a continuación se muestra por pantalla: Código de Turbo Pascal PROGRAM diagonal; USES crt; CONST n = 3; VAR ma : array [1..n, 1..n] of integer; i , j : integer; BEGIN clrscr; writeln(„Insetar valores en la Matriz:„); for i:=1 to n do for j:=1 to n do begin write(„[‟,i,‟‟,j,‟]:‟); readln(ma[i,j]); end; writeln; writeln(„Los valores de la Matriz son:„); for i:=1 to n do begin for j:=1 to n do begin write(„‟, ma[i,j]); writeln; end; end; DM / AA

5

Operaciones con la diagonal principal y secundaria Cuando trabajamos con una matriz siempre estaremos realizando operaciones con la diagonal principal y secundaria, a continuación se presenta un conjunto de algoritmos que nos permitirá recorrer y manipular con y alrededor de la diagonal principal y la diagonal secundaria.

Mostrar diagonal principal Writeln(„La diagonal principal es:‟); for i:=1 to n do write(„‟, ma[i,i]);

Mostra diagonal secundaria Writeln(„La diagonal secundaria es:‟); j:=n+1 for i:=1 to n do write(„‟, ma[i,j-i]); EJERCICIO PROPUESTO TIPO ARREGLO BIDIMENSIONAL. 1. Escribir un programa que sume los elementos de la diagonal principal. 2. Escribir un programa que permita calcular la cantidad de apariciones del valor maximo. 3. Escribir un programa que permita calcular el promedio de los elementos que estan por encima de la diagonal principal. 4. Escribir un programa que permita calcular el porcentaje de números positivos que están por debajo de la diagonal secundaria.

DM / AA

6

LABORATORIO 3 ESTRUCTURAS DE DATOS ESTATICOS 3.1.- OBJETIVO. Al finalizar el laboratorio, el alumno estará en la capacidad de manejar estructuras de datos estaticas (arreglos), con la finalidad de crear sistemas básicos de información usando el Lenguaje de Programación Turbo Pascal.

3.2.- EJERCICIOS. 1. Escribir un programa que permita visualizar el porcentaje de apariciones del mínimo. 2. Dado N valores escriba un programa que determine la cantidad de valores que contengan 3 dígitos. 3. Escriba un programa que calcule la cantidad de valores donde la suma de sus dígitos sea par 4. Escriba un programa que calcule el porcentaje de valores que contengan el digito 7 5. Escribir un programa que imprima las posiciones del valor menor de una matriz nxm. 6. Escribir un programa que lea una matriz 4 x 4 entera que determine cuantas veces se repite en ella el número mayor. 7. Escribir un programa que lea una matriz 4 x 3 entera, que determine la suma de los elementos de cada fila y determine cual es la fila que tiene la mayor suma.

DM / AA

7