4. El origen de las matrices es muy antiguo. Uncuadrado mágico, 3 por 3, se registra en la literatura
china hacia el 650 a. C.2
Es larga la historia del uso de las matrices para resolver ecuaciones lineales. Un importante texto
matemático chino que proviene del año 300 a. C. a200 a. C., Nueve capítulos sobre el Arte de las
matemáticas (Jiu Zhang Suan Shu), es el primer ejemplo conocido de uso del método de matrices
para resolver un sistema de ecuaciones simultáneas.3 En el capítulo séptimo, "Ni mucho ni poco", el
concepto de determinante apareció por primera vez, dos mil años antes de su publicación por el
matemático japonés Seki Kōwa en 1683 y el matemático alemán Gottfried Leibniz en 1693.
Los "cuadrados mágicos" eran conocidos por los matemáticos árabes, posiblemente desde
comienzos del siglo VII, quienes a su vez pudieron tomarlos de los matemáticos y astrónomos de
la India, junto con otros aspectos de las matemáticas combinatorias. Todo esto sugiere que la idea
provino de China. Los primeros "cuadrados mágicos" de orden 5 y 6 aparecieron en Bagdad en
el 983, en laEnciclopedia de la Hermandad de Pureza (Rasa'il Ihkwan al-Safa).2
Después del desarrollo de la teoría de determinantes por Seki Kowa y Leibniz, a finales del siglo
XVII, Cramer presentó en 1750 la ahora denominada regla de Cramer. Carl Friedrich Gauss y Wilhelm
Jordan desarrollaron la eliminación de Gauss-Jordan en el siglo XIX.
El término "matriz" fue acuñado en 1848, por J. J. Sylvester. En 1853, Hamilton hizo algunos aportes a la
teoría de matrices. Cayleyintrodujo en 1858 la notación matricial, como forma abreviada de escribir
un sistema de m ecuaciones lineales
4
5. Una matriz (array ) es una zona de almacenamiento
contiguo, que contiene una serie de elementos del
mismo tipo, los elementos de la matriz [1]. Desde el
punto de vista lógico podemos considerarlas como un
conjunto de elementos ordenados en fila. Así pues, en
principio todas las matrices son de una dimensión, la
dimensión principal, pero veremos que los elementos
de esta fila pueden ser a su vez matrices.
En general, una matriz es un conjunto ordenado en
una estructura de filas y columnas. Los elementos de
este conjunto pueden ser objetos matemáticos de muy
variados tipos.
5
6. include<conio.h>
include<stdio.h>
Int
Char
include<math.h>
Scanf
Printf
Void main
6
7. Sintaxis
La declaración de matrices sigue la siguiente sintaxis:
tipoX etiqueta [<expr-const>]
tipoX es el tipo de los elementos que serán
almacenados en la matriz. Puede ser cualquier type-id
( 2.2) válido a excepción de void y de funciones (no
pueden existir matrices de funciones, pero sí de
punteros-a-función).
etiqueta es el identificador
<expr-const>: una expresión cuyo resultado debe ser
una constante entera positiva n distinta de cero, que
es el número de elementos de la matriz. Los
elementos están numerados desde 0 hasta n-1.
7
8. int a[10]; // declara una matriz de 10
elementos enteros
char ch[10] // ídem de 10 elementos
char
char* p[10] // ídem de 10 elementos
puntero-a-carácter.
struct St mst[10] // ídem de 10 elementos
estructuras tipo St
8
9. Una matriz puede
ser unidimensional, multidimensional o escalonada.
El valor predeterminado de los elementos numéricos de
matriz se establece en cero y el de los elementos de
referencia se establece en null.
Una matriz escalonada es una matriz de matrices y por
consiguiente sus elementos son tipos de referencia y se
inicializan en null.
Las matrices se indizan basadas en cero: una matriz
con n elementos se indiza desde 0 hasta n-1.
Los elementos de una matriz pueden ser de cualquier
tipo, incluido el tipo matriz.
Los tipos de matriz son tipos de referencia derivados del
tipo base abstracto Array. Puesto que este tipo
implementa IEnumerable e IEnumerable(Of T), puede
utilizar la iteración foreach en todas las matrices de C#.
9
11. Matriz cuadrada: Es aquella que tiene el mismo número de filas que de
columnas, es decir m = n. En
estos casos se dice que la matriz cuadrada es de orden n, y no n × n.
Los elementos aij
con i = j, o sea aii
forman la llamada diagonal principal de la matriz cuadrada, y los
elementos aij
con i + j = n +1 la diagonal secundaria.
Matriz traspuesta: Dada una matriz A, se llama traspuesta de A, y se
representa por A
t
, a la matriz que se
obtiene cambiando filas por columnas. La primera fila de A es la
primera fila de A
t
, la segunda fila de A es
la segunda columna de A
11
12. Para ingresar datos se necesita la
siguiente sentencia;
SCANF: Nos permite ingresar datos de tipo
entero.
EJEMPLO:
scanf(“%d”,&matriz[i ] [j ]);
12
13. Para imprimir datos en una matriz se
necesita la siguiente sentencia:
PRINTF: Provee una descripción de la salida,
con placeholders marcados por caracteres
de escape "%", para especificar la
localización relativa y el tipo de salida que
la función debe producir.
EJEMPLO:
printf(“%d”,matriz [i ] [j ]);
13
14. Una zona de almacenamiento continuo, que
contiene una serie de elementos del mismo tipo, los
elementos de la matriz. 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).
En principio, se puede considerar que todas las
matrices son de una dimensión, la dimensión
principal, pero los elementos de dicha fila pueden
ser a su vez matrices (un proceso que puede
ser recursivo), lo que nos permite hablar de la
existencia de matrices multidimensionales, aunque
las más fáciles de imaginar son los de una, dos y tres
dimensiones.
14
18. Almacenar los elementos del array en posiciones
de memoria contínua.
- Tener un único nombre de variable que representa a
todos los elementos, y éstos a su vez se diferencian por un
índice o subíndice.
- Acceso directo o aleatorio a los elementos individuales
del array.
todos los arrays son de tamaño variable, tanto si se
especifica como no un tamaño al ser declarados
Para ver el contenido de los arrays según van siendo
ejecutadas las líneas de código que los declaran,
utilizaremos la ventana Locales del depurador, que
muestra las variables de ámbito local
al procedimiento que estamos ejecutando actualmente
18
20. Un array de una dimensión (unidimensional), también
llamado vector o fila, es un tipo
de datos estructurado compuesto de un número
determinado de elementos, de tamaño fijo y
elementos homogéneos (del mismo tipo). La
característica de tamaño fijo se refiere a que el
tamaño del array debe ser conocido en tiempo de
compilación.
Por ejemplo, si deseamos conservar las puntuaciones
de los 50 estudiantes de un examen de informática,
se necesita reservar cincuenta posiciones de
memoria, dar un nombre al arreglo y a cada uno de
los 50 estudiantes asignarles una posición o índice del
arreglo.
20
21. Un array bidimensional (también llamado tabla
o matriz) es un array con dos índices. Al igual que
los vectores deben ser ordinales. Se declaran de
igual manera que los arrays de una dimensión.
Un array bidimensional recoge valores de una tabla
de doble entrada. Cada uno de los elementos se
identifica y se asigna mediante una variable
($nombre) seguida de dos ([]) que contienen
los índices del array.
Los índices puede ser escalares -equivaldrían al
número de fila y columna que la celda ocuparía en
la tabla, o puede ser asociativo que equivaldría en
alguna medida a usar como índices los nombres de
la fila y de la columna.
21
22. Para ingresar datos en un vector
necesitamos la siguiente sintaxis:
Scanf.-Nos permite ingresar datos a un
vector.
scanf(“%d”,&vector[i]);
22
23. Para imprimir datos en un vector
necesitamos la siguiente sintaxis:
PRINTF.-Permite imprimir datos de tipo
entero en un vector.
printf(“%d”, vector[i]);
23
24. Bueno, la principal diferencia es que el
vector es así como una sola línea de „n‟
datos, comparado con el vector que son
„m‟ líneas de „n‟ datos, la idea es
imaginarse el vector como una de esas
cajitas de huevos que tienen una sola línea,
donde en cada espacio va un huevo…
En cambio las matrices son así como un
vector metido dentro de otro vector, me
explico: Es como si cada espacio de una
de las cajas de huevos, tuviera otra línea
de cajas de huevo metida dentro…
24
25. ENUNCIADO;
Diseñe un programa que me permita
ingresar n elementos en una matriz
cuadrática.
25
26. #include <conio.h>
#include <stdio.h>
void main()
{
int matriz[10][10];
int op,i,j,limite,col=10,fil=10;
do{
clrscr();
gotoxy(19,4);printf("**MATRIZ DE ORDEN CUADRADA**");
gotoxy(19,5);printf("**INGRESE EL LIMITE**");scanf("%d",&limite);
for(i=1;i<=limite;i++)
{
for(j=1;j<=limite++)
{
26
35. ENUNCIADO;
Diseñe un programa que me permita
generar n múltiplos de cualquier factor
ingresado desde teclado que se
encuentre dicho factor entre 2 y 9, la
matriz es
de orden cuadrática se visualiza la
entrada y la salida.
35
36. #include <conio.h>
#include <stdio.h>
void main()
{
int matriz1[10][10],matriz2[10][10];
int fact , mul , op , i, j, limite , x=1,col=10,fil=10;
do{
clrscr();
gotoxy(19,4);printf("**MATRIZ DE ORDEN CUADRATICA CON MULTIPLOS**");
gotoxy(19,5);printf("**INGRESE EL LIMITE**");scanf("%d",&limite);
do{
gotoxy(36,10);printf(" ");
gotoxy(19,7);printf("**INGRESE EL FACTOR**");scanf("%d",&fact);
}
while(fact<=2 || fact>=9);
for(i=1;i<=limite;i++)
{
for(j=1;j<=limite++)
{
matriz1[i][j]=fact*x;
gotoxy(col , fil);printf("%d",matriz1[i][j]);
36
52. ENUNCIADO:
Realice un programa que me permita realizar
un menú de opciones el cual me pida lo
siguiente:
Números primos
Serie de fibonaci
Guardar las posiciones pares e impares en un
vector en forma ordenada.
Ordenar los datos de una matriz en forma
ascendente.
52
53. #include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<math.h>
int opcion,op,r,N, vec1[10], mat[10][10],vecPares[100], vecImpares[100], mat[10][10],aux,p=0,
ip=0,m1[5][5],m[10][10],k,j,f,fil,a=0, lim, b=0,c,n,op,g,res,nc,c1,c2,x,y,i,col=1,fila=1,n;
void main() {
Do {
col=1,fila=1;
clrscr();
gotoxy(25,5);printf("********MENU DE OPCIONES*********");
textcolor(1);
gotoxy(5,8);cprintf("1.- MATRIZ CUADRATICA DE NUMEROS PRIMOS: ");
gotoxy(5,11);cprintf("2.- MATRIZ CUADRATICA CON LA SERIE DE FIBONACCI: ");
gotoxy(5,14);cprintf("3.- MATRIZ Y VECTOR : ");
gotoxy(5,17);cprintf("4.- MATRIZ EN FORMA ASCENDENTE : ");
fila=2,col=0;
for(i=1;i<=25;i++)
{
gotoxy(1,i);printf("®");
gotoxy(80,i);printf("®");
}
for(i=1;i<=80;i++)
{
gotoxy(i,2);printf("¯");
gotoxy(i,25);printf("¯");
}
53