|
ARREGLOSUn Arreglo es una estructura de datos en la que variables del mismo tipo se identifican bajo un mismo nombre pero distinguiéndolas por medio de índices. De esta manera resulta más cómodo y comprensible hacer las manipulaciones necesarias. VECTORESUn vector es un arreglo de una sola dimensión, para indicar a qué elemento nos referimos, se necesita especificar un sólo número o índice, que corresponde a la posición relativa de dicho elemento dentro del arreglo. Pseudocódigo: tipo nombre_de_variable [rango] donde tipo puede ser cualquier tipo de dato (entero, real, carácter, etc.). Lenguaje C: tipo nombre_de_variable [rango]; donde:
Se accede a los elementos del arreglo por medio de índices. En el lenguaje C todos los arreglos empiezan por 0 (cero); esto quiere decir que si se quiere acceder al primer elemento de un arreglo se utiliza 0 para el índice. Para asignar un valor a un elemento del arreglo, se coloca el arreglo del lado izquierdo de la asignación: Pseudocódigo: X[8] ←12 (Asigna al elemento número 9 del vector el valor de 12) Lenguaje C: X[8] = 12; EJEMPLO: El siguiente programa realiza la lectura de 10 datos y calcula la suma de los mismos: Pseudocódigo: Algoritmo Suma_vector /* Programa que utiliza un vector con 10 elementos y devuelve la suma de los mismos */ PRINCIPAL inicio entero i, sum, x[10]; sum ← 0; desde (i ← 0; i <10; i ← i + 1) inicio imprime ("INTRODUCE EL DATO", i); leer ( x [i] ); sum ← sum +x[i]; fin imprime ("EL VECTOR ORIGINAL ES :"); desde (i ← 0; i<10; i ← i +1) imprime ( x [i] ); imprime ("LA SUMA DEL VECTOR ES : ", sum); fin Lenguaje C: #include <stdio.h> main() { int i; sum=0; for (i=0; i<10; i++) { printf ("INTRODUCE EL DATO % d ", i); scanf ("%d", &x[i]); sum = sum + x[i]; } printf ("EL VECTOR ORIGINAL ES :"); for (i = 0; i<10; i ++]); printf ("%d", x[i]); printf ("/n LA SUMA DEL VECTOR ES : % d", sum); } MATRICESUna matriz es un arreglo de dos dimensiones, y para especificar cualquier elemento, debemos hacer referencia a dos índices (que representan la posición como renglón y columna). Aunque no se justificará aquí, es conveniente mencionar que la representación matricial es puramente conceptual y con el único fin de facilitar al programador el manejo de los elementos, ya que la computadora almacena los datos en una forma totalmente diferente. Pseudocódigo: tipo nombre_de_variable [rango1][rango2] donde tipo puede ser cualquier tipo de datos (entero, flotante, carácter, etc.) Lenguaje C: tipo nombre_de_variable [rango1][rango2]; donde:
Podemos trabajar con cada uno de los elementos de la matriz: Pseudocódigo: X[3][5] ← 20 (asigna al elemento de la fila 4 y la columna 6 el valor de 20) Lenguaje C: X[3][5] = 20; EJEMPLO: El siguiente programa realiza la lectura de una matriz de 7 renglones y 15 columnas (de una matriz de orden [7x15]) renglón por renglón). Pseudocódigo: Algoritmo: Lectura Matriz /* programa que lee los elementos de una matriz de orden 7 x 15 */ constantes
REN 7 PRINCIPAL inicio entero i, j, x [ren] [col]; desde (i ← 0; i<ren ; i ← i+1) desde (j ← 0; j< col ; j ← j+1) inicio imprime ("INTRODUCE EL ELEMENTO : ", i, j); leer (x [i] [j]); fin fin Lenguaje C: #include <stdio.h>
#define ren 7 main () { int i, j; int x [ren][col]; for (i=0; i<ren; i++) for(j=0; j<col ; j ++) { printf ("INTRODUCE EL ELEMENTO A (%d, %d) ", I, j); scanf ("%d", &x [i] [j]); } } PASO DE PARÁMETROS DE ARREGLOSEl lenguaje C nos permite crear nuevos nombres para tipos de datos ya existentes. Los datos a definir deberán estar precedidos por la palabra reservada typedef. La sintáxis es la siguiente: typedef nombre_original nombre_nuevo; Deberán definirse antes de declarar cualquier variable. Typedef no desactiva el tipo original. EJEMPLO: typedef float flotantes; /* Redefine a los datos tipo "float" con el nombre de flotantes*/ char caracter; int entero; int vector[10]; /* Define el tipo vector que serán arreglos unidimensionales de 10 elementos*/ float arreglo [7] [15]; /* Define el tipo de arreglo el cual son arreglos bidimensionales de (7x15)elementos*/ Una vez definidos los nuevos tipos de datos podrán ser utilizados para definir las variables como del nuevo tipo. flotantes z; /* equivale a float Z; */ caracter s; /* equivale a char s; */ entero i,j; /* equivale a int j, i; */ vector A; /* equivale a int A[10]; */ arreglo x; /* equivale a float x [7][15]; */ EJEMPLO: Utilizando el ejemplo de la lectura de los elementos de una matriz se ilustrará el paso de parámetros con arreglos: Pseudocódigo: Algoritmo: Lectura_Matriz /* programa que lee los elementos de una matriz de orden 7x15*/ constantes
REN 7 arreglo x /* variables globales*/ Principal inicio entero m,n; m ← REN; n ← COL; lectmat (m,n,x) fin lectmat (entero R, entero C, arreglo A) inicio entero i, j /*variables locales*/ desde ( i ← 1; i < R; i ← i + 1) desde (j ← 1; j < C; j ← j +1) inicio imprimir ("INTRODUCE EL ELEMENTO : ", i, j); leer (A [i] [j] ); fin fin Lenguaje C: #include <stdio.h>
#define Ren7 typedef int arreglo [REN][COL]; arreglo x; main () /* Inicia Función Principal */ { int m, n; m = REN; n = COL; lectmat (m, n, x) } /* Finaliza Función Principal */ lectmat (int R, int C, arreglo A) { int i,j; for (i=0; i<R, i++) for(j=0; j<C; j++) { printf ("INTRODUCE EL ELEMENTO A (%d, %d) ", i, j); scanf ("%d", &A[i][j]); } return; } |