Introducción
Un arreglo o vector o array es una colección de variables del mismo tipo que se refieren por medio de indices.
Por ejemplo un arreglo sería este:
int numeros[10];
En este caso son 10 variables llamadas todas "numeros" pero por ejemplo, si quiero acceder a alguna de ellas solo hago referencia al indice que quiero. En C el primer indice o elemento es el elemento 0.
Arreglos
Desde el punto de vista lógico una matriz se puede ver como un conjunto de elementos ordenados en fila (o filas y columnas si tuviera dos dimensiones).
Hay arreglos unidimensionales(fila) o multidimensionales. Generalmente se trabaja con arreglos de 2 dimensiones ( fila y columna).
Ejemplo Clasico (Arreglo Bidimensional)
En este ejemplo mostraré como funcionan los arreglos multidimensionales, en este caso trabajaré con 2 dimensiones (bidimensionales) , lo unico que hace este programa es hacer una suma de arreglos los hice yo , te pide el numero de filas y de columnas (tienen que ser el mismo valor en las 2 ) , lo llenas y al final suma todos los elementos del arreglo.
#include <stdio.h>
int main (void){
int F; //Filas//
int C; //Columnas//
do
{
printf("Escriba las filas de la matriz ");
scanf ("%d", &F);
printf("Escriba las columnas de la matriz ");
scanf ("%d", &C);
}
while ( F != C );
printf("La matriz es de %d x %d por lo cual tendra %d elementos \n\n" , F , C , (F*C));
int matriz [F][C]; //F - Filas C - Columnas // //j - Filas i = Columnas //
int i; //Columna//
int j; // Fila//
for ( i = 1 ; i <= C ; i++ )
{
for (j=1 ; j <= F ; j++ )
{
printf("Escriba el valor de elemento %d en la columna %d " , j,i);
scanf ("%d" , &matriz[i][j] );
}
}
int suma=0;
for (i = 1 ; i <= C ; i++ )
{
for (j = 1 ; j<= F ; j++ )
{
suma = suma + matriz[i][j];
}
}
printf ("La suma es %d \n\n" , suma );
return 0;
}
int main (void){
int F; //Filas//
int C; //Columnas//
do
{
printf("Escriba las filas de la matriz ");
scanf ("%d", &F);
printf("Escriba las columnas de la matriz ");
scanf ("%d", &C);
}
while ( F != C );
printf("La matriz es de %d x %d por lo cual tendra %d elementos \n\n" , F , C , (F*C));
int matriz [F][C]; //F - Filas C - Columnas // //j - Filas i = Columnas //
int i; //Columna//
int j; // Fila//
for ( i = 1 ; i <= C ; i++ )
{
for (j=1 ; j <= F ; j++ )
{
printf("Escriba el valor de elemento %d en la columna %d " , j,i);
scanf ("%d" , &matriz[i][j] );
}
}
int suma=0;
for (i = 1 ; i <= C ; i++ )
{
for (j = 1 ; j<= F ; j++ )
{
suma = suma + matriz[i][j];
}
}
printf ("La suma es %d \n\n" , suma );
return 0;
}
Gráficamente
La primer imagen , un arreglo unidimensional , la segunda a la derecha es un arreglo bidimensional y el de abajo un arreglo multidimensional.
Fuentes:
http://es.wikipedia.org/wiki/Vector_%28programaci%C3%B3n%29 --
Un poco de la info de introducción
Un poco de la info de introducción
http://logicacomputacion.blogspot.com/2007/09/clase-10-estructuras-de-datos-y.html --
Imagen
Imagen
Ey compañero andan faltando las librerias
ResponderEliminarY creo que el último for sale sobrando ya que no realiza ninguna función , además el while de cuando llena la matriz esta medio raro,... porque pides como condicion que sean igual el numero de filas y columnas??.. bien pueden ser distintas... y recuerda lo dicho antes de system("pause") ;)
ResponderEliminarlas librerias quien sabe porque no salen , como que el blog las confunde con las etiquetas ya vez que en html se usa < y> alomejor el blog las toma como codigo por eso es que no salen , pero en realidad la primera liberia es stdio.h y la segunda es windows.h esa nadamas la uso para que al final el programa se pare y no te cierre la ventana con el resultado y si , el ultimo for sale sobrando deja corrijo eso, gracias por la observación :D
ResponderEliminaren el while es para que el numero de filas sea la misma que columnas, si ambas son diferentes no continua , se que se puede hacer de otra manera pero ese es un ejemplo que hice yo el semestre pasado a base de un diagrama de flujo. y pues el getch o getche no me gusta usarlo en lo personal.
ResponderEliminarAlan te faltan librerias y recuerda que system(""); no sirve en la terminal emacs. Esan solo sirven para windos en especial la libreria windos obio si quieres correr este programa en emacs no te va a correr bien.
ResponderEliminarYo lo compile en Dev C.
ResponderEliminarBueno en realidad, Dev C es una IDE, esto es, un entorno de desarrollo integrado para C en windows, pero su compilador es MinGW
ResponderEliminarpag -> http://es.wikipedia.org/wiki/MinGW
Por lo tanto no podemos decir que Dev C es un compilador.
Aunque si tu programa es portable, en cualquier OS compila. :)
Pues, +3 alan, y +1 a roberto/jorge/alan/oscar/cecy
ResponderEliminarusa imagenes
ResponderEliminar