top of page
Buscar

Laboratorio N° 11

  • Foto del escritor: Huarcaya Vega Gabriel Francisco
    Huarcaya Vega Gabriel Francisco
  • 14 jun 2019
  • 3 Min. de lectura

Aplicación de la teoria sobre matrices:


1) Teoria:

Las matrices o como algunos las llaman "arreglos multidimensionales" son una estructura de datos bastante similar a los vectores o arreglos. De hecho, una matriz no es más que una serie de vectores contenidos uno en el otro (u otros), es decir, una matriz es un vector cuyas posiciones son otros vectores. Hablemos con más detalle de esto para quedar más claros.

Primero, dejemos claro qué es una matriz. En términos generales, una matriz es una estructura conformada por filas y columnas, idealmente más de dos filas y columnas, de hecho, podemos decir que si una "matriz" tiene una única fila o una única columna, entonces estamos hablando de un vector y no una matriz como tal.

La intersección de una fila y una columna de la matriz son las casillas y cada una de ellas podrá poseer información, simple o compleja (ya dependerá de nuestras necesidades).

Ahora, tal como dije antes, un vector posee una única fila (o columna, como lo quieras ver) y de este modo un grupo de vectores unidos conforman una matriz, es por esto que al comienzo dije que una matriz es un vector conformado por otra serie de vectores.

Viéndolo desde el punto de vista de la programación, una matriz es un vector cuyas posiciones (de la cero a la n) son, cada una de ellas, otro vector.


Ejemplo de Matrices en C++

El problema es simple, queremos crear un programa con el cual podamos guardar los títulos y los autores de diferentes libros sin perder ninguno de ellos. El usuario es el encargado de suministrar la información de cada libro. Vamos a suponer que el usuario solo podrá ingresar un máximo de 5 libros, para así tener un tamaño de vector fijo. Veamos entonces cómo se haría esto usando matrices:

#include "iostream"

#include "stdio.h"

#include "string"

using namespace std;

int main()

{

string libros[5][2];

cout << "Por favor ingrese la siguiente información de los Libros: \n";

string titulo ,autor;

for(int i = 0; i < 5; i++)

{

cout << "\n******* Libro " << i + 1 << "********:\n";

cout << "Titulo: "; getline(cin,titulo);

cout << "Autor: "; getline(cin,autor);

libros[i][0] = titulo; libros[i][1] = autor;}

}

system("pause");

return 0;

}

Notar que en el código anterior, debido a que tenemos la completa certeza de sólo usar dos columnas, no es necesario usar otro ciclo for (de hecho, eso complicaría todo) basta con poner de manera explícita que el valor del título va en la columna cero y el del autor en la columna uno.

En este caso tenemos una matriz con una cantidad de fila que dependen de la cantidad de libros y dos columnas. Para el ejemplo, decidimos tener 5 posibles libros. Donde cada uno tendrá su respectivo título y autor. Así entonces, en la columna cero (0) iría el titulo y en la columna uno (1) el autor.

Por cada libro que queremos agregar, debemos especificar su título y su autor. Por ello, la segunda posición que se specifica en esta matriz de libros siempre será 0 o 1, según sea el caso. Mientras que en la primera posición usamos la variable i del ciclo, que va a variar de 0 a 4, para un total de cinco libros.


Ahora veremos el desarrollo de un código en C++:


#include <iostream> #include <math.h> using manespace sted;}

int a[x][y], b[x][y], c[x][y], x, y; int 2Grad() int main()

{     cout<<"Menu\n";     cout<<"1. Multiplicacion de matrices \n";     cout<<"2. Ecuacion de Segundo Grado \n";     cout<<"Elije una opcion: "<<endl;

cin>>opcion; switch(opcion)

{

    case 1:

{             Multiplicacion();            };break;         case 2:

{             2Grad();             };break;

}

} // Zona de funciones:     int Multiplicacion()

{

x=1; y=1;

cout<<" Ingrese el numero de filas"<<endl;

cin>>n;

cout<<"Ingrese el numero de columnas"<<endl;

cin>>m;    while (x<=n)

{ while(y<=m)

{

c[x][y]= a[x][y] * b[x][y];

cout<< c[x][y] <<endl;

y=y+1; }

x=x+1;

}    int SegundoGrad()     {     cin>>m; cin>>n;     for(x = 1; x <=n; x++)

{         for(y = 1; y <= m; y++)

{         (b[x][y]) = (a[x][y])* pow(a[x][y], 2) * 11 + (c[x][y]);         cout<<(b[x][y])<<endl;         }     }     } return 0;            }

//fin de programa

 
 
 

Entradas recientes

Ver todo
Evap7 (Circuitos con diodo Zener)

Circuito de referencia de voltaje ideal: Este es el voltaje de salida, debe permanecer cantante, incluso cuando la resistencia de carga...

 
 
 

Comments


Programación Digital
bottom of page