Está en la página 1de 7

ESCUELA SUPERIOR POLITCNICA DE CHIMBORAZO

FACULTAD: INFORMTICA Y ELECTRNICA


ESCUELA DE INGENIERA EN SISTEMAS
CARRERA: INGENIERA EN SISTEMAS

GUA DE LABORATORIO DE PROGRAMACIN ESTRUCTURADA

PRCTICA No. 06 Matrices en c

1. DATOS GENERALES:

NOMBRE DEL ESTUDIANTE

CODIGO DEL ESTUDIANTE

Christian A. Arias G.

6288

FECHA DE REALIZACIN:

FECHA DE ENTREGA:

2017/1/9

2017/2/9

2. OBJETIVO(S):
2.1.

GENERAL

1. Practicar los conocimientos adquiridos en clase

2.2.

ESPECFCOS

1. Plantear y analizar los diferentes tipos de declaracin y uso de caracteres


estudiados y analizados en clase.
2. Conocer y aplicar las practicas desarrolladas en clase.
3. METODOLOGA
La metodologa a aplicarse se basa en el desarrollo de las competencias analizadas y
aprendidas en clase, pasando por las diferentes etapas de anlisis, desarrollo y diseo para la
solucin de problemas.

4. EQUIPOS Y MATERIALES:
-

Computador
Compilador de C++
Entorno integrado de desarrollo (IDE)
Aula virtual
Acceso a internet
Bibliografa

5. MARCO TEORICO:

VECTORES
Un vector, tambin llamado array(arreglo) unidimensional, es una estructura de datos que permite
agrupar elementos del mismo tipo y almacenarlos en un solo bloque de memoria juntos, uno despues de
otro. A este grupo de elementos se les identifica por un mismo nombre y la posicin en la que se
encuentran. La primera posicin del array es la posicin 0.
Podramos agrupar en un array una serie de elementos de tipo enteros, flotantes, caracteres, objetos,
etc.
Crear un vector en C++ es sencillo, seguimos la siguiente sintaxix: Tipo nombre[tamanyo];
Ejm:

1
2
3

int a[5]; // Vector de 5 enteros


float b[5]; // vector de 5 flotantes
Producto product[5]; // vector de 5 objetos de tipo Producto

Podramos tambin inicializar el vector en la declaracin:

1
2

int a[] = {5, 15, 20, 25, 30};


float b[] = {10.5, 20.5, 30.5, 12.5, 50.5}
Producto product[] = {celular, calculadora, camara, ipod, usb}

3
Como hay 5 elementos en cada array, automticamente se le asignar 5 espacios de memoria a cada
vector, pero si trato de crear el vector de la forma int a[] , el compilador mostrar un error, porque no
indiqu el tamao del vector ni tampoco inicializ sus elementos.
Asigno valores a los elementos de un vector indicando su posicin:

1
2

int a[4] = 30; // le asigno el valor 30 a la posicin 4 del vector.


product[2].setPrecio(300) // le asigno un precio de 300 al producto en la posicin
2.

Obviamente el mtodo setPrecio() debe de estar implementado. Para llenar, recorrer e imprimir un vector
podemos utilizar un bucle for:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

#include <iostream>
using namespace std;
int main()
{
int dim;
cout << "Ingresa la dimension del vector" << endl;
cin >> dim; // Supongamos que ingrese 10
int vector[dim]; // mi vector es de tamanyo 10
for(int i = 0; i < dim; i++){
vector[i] = i * 10;
cout << vector[i] << endl;
}

return 0;

La salida del programa mostrar: 0 10 20 30 40 50 60 70 80 90 Fcil verdad? Bien ahora creen 2 o ms


vectores y empiecen a hacer funciones bsicas como sumar, restar, buscar, ordenar, moda, etc que
ayudan mucho a ir desarrollando la lgica. No vale copiar y pegar, mejor es practicar, practicar y
practicar.
Aqu una funcin simple para sumar 2 vectores a y b y poner el resultado en un tercer vector c:

1
2
3
4
5
6
7
8
9
10
11
12
13
14

#include <iostream>
using namespace std;
void sumar(int a[], int b[], int c[],int dim) {
for (int i = 0; i < dim; i++) {
c[i] = a[i] + b[i];
}
}
void imprimir(int v[], int dim)
{
for(int i = 0; i < dim; i++) {
cout << v[i] << endl;
}
cout << endl << endl;
}

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44

int main()
{
int dim;
cout << "Ingresa la dimensin" << endl;
cin >> dim;
int a[dim];
int b[dim];
int c[dim];
for(int i = 0; i < dim; i++) {
a[i] = i * 10;
b[i] = i * 5;
}
cout << "Vector A " << endl;
imprimir(a, dim);
cout << "Vector B " << endl;
imprimir(b, dim);
sumar(a, b, c, dim);
cout << "Vector C " << endl;
imprimir(c, dim);
return 0;
}

Si ingreso una dimensin de 10, este programa me dara:


Vector A
0 10 20 30 40 50 60 70 80 90
VECTOR B
0 5 10 15 20 25 30 35 40 45
VECTOR C
0 15 30 45 60 75 90 105 120 135
Entonces para tomar en cuenta:

Todo vector debe tener definido un tipo de dato.

Todo vector necesita de una dimensin o tamanyo.

El cdigo de arriba se puede mejorar muchsimo con objetos y clases, este es solo un pequeo ejemplo.

MATRICES
Una matriz es un vector de vectores o un tambin llamado array bidimensional. La manera de declarar
una matriz es C++ es similar a un vector:

int matrix[rows][cols];

int es el tipo de dato, matrix es el nombre del todo el conjunto de datos y debo de especificar el numero
de filas y columnas.
Las matrices tambin pueden ser de distintos tipos de datos como char, float, double, etc. Las matrices
en C++ se almacenan al igual que los vectores en posiciones consecutivas de memoria.
Usualmente uno se hace la idea que una matriz es como un tablero, pero internamente el manejo es
como su definicin lo indica, un vector de vectores, es decir, los vectores estn uno detrs del otro
juntos.
La forma de acceder a los elementos de la matriz es utilizando su nombre e indicando los 2 subndices
que van en los corchetes.
Si coloco int matriz[2][3] = 10; estoy asignando al cuarto elemento de la tercera fila el valor 10.
No olvidar que tanto filas como columnas se enumeran a partir de 0. Bueno y para recorrer una matriz
podemos usar igualmente un bucle. En este caso usando 2 for:

1
2
3
4
5

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


for(int j = 0; j < cols; j++) {
matrix[i][j] = i % j;
}
}

6. CONCLUSIONES Y RECOMENDACIONES:
Se concluye que es de gran importancia la realizacin de estas prcticas ya que nos permiten
desarrollar nuestro pensamiento y nuestra habilidad para solucionar problemas
Se debe hacer un uso lgico y preciso de los apuntes y ejemplo tomados de cada clase con el fin
de facilitar y mejorar la prctica de laboratorio.

7. BIBLIOGRAFA:
https://ronnyml.wordpress.com/2009/07/04/vectores-matrices-y-punteros-en-c/
https://www.programarya.com/Cursos/C++/Estructuras-De-Datos/Matrices
http://jbgarcia.webs.uvigo.es/asignaturas/TO/cursilloCpp/5_manejo_matrices.html
ANEXOS
Cabecera
void llenar (int M[20][20], int f, int c)

{
for (int i = 1 ; i <= f ; i++)
{
for (int j = 1 ; j <= c ; j++)
{
cout<<"Dame la posicion [%d][%d]: ",i,j;
cin>>M [i] [j];
}
}
}
void mostrar (int M[20][20], int f, int c)
{
for (int i = 1 ; i <= f ; i++)
{
printf("\n");
for (int j = 1 ; j <= c ; j++)
{
printf ("[%d]",M [i] [j]);
}
}
}
void comunes (int R[20][20], int fr, int cr, int S[20][20], int fs, int cs)
{
printf("\n\nLos elementos comunes de R en S son: ");
for (int i = 1 ; i <= fr ; i++)
{
for (int j = 1 ; j <= cr ; j++)
{
for (int k = 1 ; k <= fs ; k++)
{
for (int l = 1 ; l <= cs ; l++)
{
if (R [i] [j] == S [k] [l])
printf ("[%d] ",R [i] [j]);
}
}
}
}
}
Main
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <iostream.h>
#include <matrices.h>
int main()
{

int R [20] [20];


int S [20] [20];
int fr, cr, fs, cs;

cout<<"Dame el numero filas de R: ";


cin>>fr;
cout<<"Dame el numero columnas de R: ";
cin>>cr;
cout<<"Dame el numero filas de S: ";
cin>>fs;
cout<<"Dame el numero columnas de S: ";
cin>>cs;
cout<<"\nElementos de R: \n";
llenar (R, fr, cr);
cout<<"\nElementos de S: \n";
llenar (S, fs, cs);
cout<<"\nMatriz R : ";
mostrar (R, fr, cr);
cout<<"\n\nMatriz S : ";
mostrar (S, fs, cs);
comunes (R, fr, cr, S, fs, cs);
getch();
return 0;
}

También podría gustarte