Overblog Seguir este blog
Edit post Administration Create my blog
5 febrero 2010 5 05 /02 /febrero /2010 02:36

Matrices

Las matrices se declaran de forma análoga, con corchetes independientes para cada subíndice. La forma general de la declaración es:

tipo nombre[numero_filas][numero_columnas]; donde tanto las filas como las columnas se numeran también a partir de 0. La forma de acceder a los elementos de la matriz es utilizando su nombre, seguido de las expresiones enteras correspondientes a los dos subíndices, entre corchetes.

En C tanto los vectores como las matrices admiten los tipos de las variables escalares (char, int, long, float, double, etc.), Las matrices en C se almacenan por filas, en posiciones consecutivas de memoria. En cierta forma, una matriz se puede ver como un vector de vectores-fila. Si una matriz tiene N filas (numeradas de 0 a N-1) y M columnas (numeradas de 0 a la M-1), el elemento (i, j) ocupa el lugar: posición_elemento(0, 0) + i * M + j

A esta fórmula se le llama fórmula de direccionamiento de la matriz.

 

Ejemplo

Diseñe un  programa que lea un matriz de 6*6 y luego determine la suma de cada una de las filas y la almacene en un vector llamado suma.

#include <stdio.h>

#include <conio.h>

#define F 6

#define C 6

main()

   {

      int matriz[F][C], i,j, vector [F]={0,0,0,0,0,0};

      for(i=0; i<F; i++)

             for(j=0; j<C; j++)

                 {

                        printf("Ingrese el elemento F=%d y Columna=%d de la matriz:\n", i,j);

                        scanf("%d", &matriz[i][j]);

                        vector[i]=vector[i]+matriz[i][j];

                 }

      printf("La Matriz generada es:\n\n");

      for(i=0; i<F; i++)

      {

             for(j=0; j<C; j++)

                 {

                        printf("*%d*", matriz[i][j]);

                 }

             printf("\n");

      }

      printf("Y el vector suma de las filas es:\n\n");

      for(i=0; i<F; i++)

             printf("%d\t", vector[i]);

      getch();

      return 0;

   }

 

Creo que no hay mucho por explicar, el uso de una matriz en C, es bastante parecido al de un vector, pero con las diferencias que en un vector tenemos únicamente una dimensión y en las matrices tenemos dos.


Ejemplo 2.


         Programa que capture las notas de 3 alumnos de 05 materias e imprima el

         Promedio de cada uno y de todos en conjunto.*/      

 

 #include <stdio.h>

#include <stdlib.h>

 

int main(){

    

     system("color 3a");

     int tabla [3][5];

    

     int promedio[3];

    

     for(int i=0;i<3;i++){

        

                     printf("\n\nIngrese la calificacion en matematicas del estudiante %i :",i+1);

                     scanf("%i",&tabla[i][0]);

                    

                     printf("\n\nIngrese la calificacion en Fisica del estudiante %i :",i+1);

                    

                     scanf("%i",&tabla[i][1]);

                    

                      

                     printf("\n\nIngrese la calificacion en Quimica del estudiante %i :",i+1);

                    

                     scanf("%i",&tabla[i][2]);

                      

                     printf("\n\nIngrese la calificacion en Ingles del estudiante %i :",i+1);

                    

                     scanf("%i",&tabla[i][3]);

                     

                     printf("\n\nIngrese la calificacion en Programacion del estudiante %i :",i+1);

                    

                     scanf("%i",&tabla[i][4]);

                     system("cls");

            

             }

            

            

    for(int x=0;x<3;x++){

    promedio[x]=((tabla[x][0]+tabla[x][1]+tabla[x][2]+tabla[x][3]+tabla[x][4])/5);

    printf("\nPromedio del alumno %i: %i",x+1,promedio[x]);

   

            }

   

    printf("\nPromedio total: %i",(promedio[0]+promedio[1]+promedio[2])/3);

    

    system("pause");

    return 0;   

 }


Ejemplo 3.


Supongamos que ahora queremos almacenar las temperaturas de toda la semana. Según lo que aprendimos en el capítulo anterior podríamos usar un array unidimiensional por cada día de la semana. En cada uno de esos arrays podríamos almacenar las temperaturas de cada día."

 

 

#include <stdio.h>

#define DIAS    7

#define HORAS   24

 

int main()

     {

     int temp[DIAS][HORAS];

    

     float media = 0;

     int hora, dia;

 

     for( dia=0 ; dia<DIAS ; dia++ ) {

          for( hora=0 ; hora<HORAS ; hora++ ) {

             printf( "Temperatura de las %d el día %d: ", hora, dia );

             scanf( "%i", &temp[dia][hora] );                           

             media += temp[dia][hora];

          }

     }

     media = media / HORAS / DIAS;

 

     printf( "\nLa temperatura media de toda la semana es %f\n", media );

     return 0;

}

Compartir este post

Repost 0
Published by Prof.Luis Eduardo Aponte - en Basica
Comenta este artículo

Comentarios

Presentación

  • : El blog de Luis Eduardo Aponte
  • : Blog, para facilitar del Lenguaje de Programación C
  • Contacto

Enlaces