ARREGLOS

Un 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.

VECTORES

Un 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:

  • tipo puede ser cualquier tipo de dato (int, float, char, etc.).

  • nombre_de_variable es el nombre del arreglo.

  • rango especifica el número de elementos del arreglo.

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;
              int sum;
              int x[10];

              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);

}

MATRICES

Una 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:

  • tipo puede ser cualquier tipo de dato (int, float, char, etc.).

  • nombre_de_variable es el nombre del arreglo.

  • rango 1 corresponde al número de renglones que conforman el arreglo.

  • rango 2 corresponde al número de columnas.

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
COL 15

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
#define col 15

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 ARREGLOS

El 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
COL 15

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
#define COL15

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;

}