21
UNIVERSIDAD CENTRAL DEL ECUADOR Ingeniería Ciencias Físicas y Matemáticas Ingeniería Matemática MATERIA: PROGRAMACIÓN I TEMA: MATRICES TRIDIMENSIONALES INTEGRANTES: Guevara Santiago Jácome Sebastián Lema Brenda Paucar Christian Torres Jonnathan INGENIERO: WAGNER LUCERO

Programacion fantasticos

Embed Size (px)

Citation preview

UNIVERSIDAD CENTRAL DEL ECUADOR

Ingeniería Ciencias Físicas y Matemáticas

Ingeniería Matemática

MATERIA: PROGRAMACIÓN I

TEMA: MATRICES TRIDIMENSIONALES

INTEGRANTES:

Guevara Santiago

Jácome Sebastián

Lema Brenda

Paucar Christian

Torres Jonnathan

INGENIERO: WAGNER LUCERO

2015

INDICE

Tabla de contenido

INTRODUCCIÓN............................................................................................................................3

OBJETIVO GENERAL......................................................................................................................3

OBJETIVOS ESPECIFICOS...............................................................................................................3

MARCO TEORICO:.........................................................................................................................4

VECTORES.....................................................................................................................................9

MATRICES...................................................................................................................................10

DIMENSIONES DE MATRICES......................................................................................................10

DOS DIMENSIONES.....................................................................................................................10

TRES DIMENSIONES....................................................................................................................10

MÁS DE TRES DIMENSIONES......................................................................................................10

EXPLICACION DEL PROGRAMA REALIZADO................................................................................11

CAPTURAS DEL PROGRAMA.......................................................................................................13

BIBLIOGRAFÍA:............................................................................................................................14

INTRODUCCIÓN

Comenzaremos por dar una visión general de los conocimientos aprendidos, así como también explicaremos de manera detallada el cómo se realizó nuestro proyecto llamado Matrices Tridimensionales de manera concreta y directa.Trataremos de que el tema sea fundamentalmente práctico, por lo que estos apuntes se deben considerar como una pequeña introducción al lenguaje, no como una referencia completa. Los alumnos interesados en conocer los detalles del lenguaje pueden consultar la bibliografía.

OBJETIVO GENERAL.

Crear un programa que nos permita ampliar más los conocimientos en los diferentes tipos de lenguaje.

OBJETIVOS ESPECIFICOS.

Promover el interés y la importancia que tiene la programación.

Demostrar q se puede realizar un programa en diferentes tipos de lenguaje.

Utilizar los conocimientos para dar una explicación concreta y clara.

MARCO TEORICO:

CONCEPTOS BÁSICOS

ALGORITMO:

La solución a cualquier problema de cómputo involucra la ejecución de una serie de acciones en orden específico. Un procedimiento para resolver un problema en términos de:

a) Las acciones a ejecutarse.b) el orden en el cual estas acciones deben ejecutarse se llama algoritmo.

PROGRAMA:

o Secuencia de instrucciones mediante las cuales se ejecutan diferentes acciones de acuerdo con los datos que se estén procesando.

o Es un algoritmo desarrollado para ser utilizado por la computadora

o Expresión de un algoritmo en un lenguaje preciso que puede llegar a entender una máquina de cómputo.

TIPOS DE DATOS PRIMITIVOS:

OPERACIONES PARA REALIZAR

+ (Más, como signo o como operación suma)- (menos, como signo o como operación resta)* (Multiplicación)/ (División)% (resto)

Y LOS SIGUIENTES OPERADORES RELACIONALES:

== (igual)!= (distinto)< (menor que)> (mayor que)<= (menor o igual que)>= (mayor o igual que)

PRINCIPALES OPERADORES DE PROGRAMACION

ESTRUCTURA IF- ELSE

La instrucción if … else permite controlar qué procesos tienen lugar, típicamente en

función del valor de una o varias variables, de un valor de cálculo o booleano, o de las

decisiones del usuario. La sintaxis a emplear es:

/* Ejemplo Estructura IF - aprenderaprogramar.com */if (condición) {        instrucciones} else {        instrucciones}

LA SENTENCIA SWITCH

Esta sentencia nos permite seleccionar en función de condiciones múltiples. Su sintaxis es:

switch (expresión) {case valor_1:...break;

case valor_2: ...break;...default: ...}

El paréntesis en la expresión es obligatorio. El funcionamiento es el siguiente, si al evaluar la expresión se obtiene uno de los valores indicados por

case valor_i

ESTRUCTURAS DE REPETICIÓN

Dentro de las estructuras de repetición diferenciábamos 3 tipos: con condición inicial, con condición final y con contador

La sentencia do-while

Es una estructura de repetición con condición final. Su sintaxis es:

Do variacion sentencia

El funcionamiento es simple, entramos en el do y ejecutamos la sentencia, evaluamos la expresión y si es cierta volvemos al do, si es falsa salimos.

La sentencia while

Es una estructura de repetición con condición inicial. Su sintaxis es:

while (expresión)

variación

sentencia

El funcionamiento es simple evaluamos la expresión y si es cierta ejecutamos la sentencia y volvemos a evaluar, si es falsa salimos.

FUNCIONES

Una función es un conjunto de líneas de código que realizan una tarea específica y puede retornar un valor. Las funciones pueden tomar parámetros que modifiquen su funcionamiento. Las funciones son utilizadas para descomponer grandes problemas en tareas simples y para implementar operaciones que son comúnmente utilizadas durante un programa y de esta manera reducir la cantidad de código. Cuando una función es invocada se le pasa el control a la misma, una vez que esta finalizó con su tarea el control es devuelto al punto desde el cual la función fue llamada.

Ejemplo de una función

// regresar el cuadrado de un númerodouble Cuadrado(double n){ return n*n;}

VECTORES

Un vector, también 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 después de otro. A este grupo de elementos se les identifica por un mismo nombre y la posición en la que se encuentran. La primera posición del array es la posición 0.

Podríamos 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];

Ejemplo:

int a[5]; // Vector de 5 enterosfloat b[5]; // vector de 5 flotantesProducto product[5]; // vector de 5 objetos de tipo Producto

Podríamos también inicializar el vector en la declaración:

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}

Como hay 5 elementos en cada array, automáticamente 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 tamaño del vector ni tampoco inicialicé sus elementos.

Asigno valores a los elementos de un vector indicando su posición:

int a[4] = 30; // le asigno el valor 30 a la posición 4 del vector.product[2].setPrecio(300) // le asigno un precio de 300 al producto en la posición 2.

La salida del programa mostrará: 0 10 20 30 40 50 60 70 80 90

Si ingreso una dimensión de 10, este programa me daría:

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 dimensión o tamaño.

El código de arriba se puede mejorar muchísimo con objetos y clases, este es solo un pequeño ejemplo.

MATRICES

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

INFORMACIÓN GENERAL SOBRE LAS MATRICES

Una matriz tiene las propiedades siguientes: Una matriz puede ser unidimensional, multidimensional o escalonada. El número de dimensiones y la longitud de cada dimensión se establecen cuando

se crea la instancia de la matriz. Estos valores no se pueden cambiar durante la duración de la instancia.

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.

DIMENSIONES DE MATRICES

Dos dimensiones

Algunas matrices tienen dos dimensiones, como el número de oficinas de cada planta de todos los edificios de un campus. La especificación de un elemento requiere el número del edificio y de la planta, y cada elemento contiene el recuento para esa combinación de edificio y planta. Por consiguiente, este tipo de matriz utiliza dos índices. 

Tres dimensiones

Algunas matrices tienen tres dimensiones, como los valores de un espacio tridimensional. Este tipo de matriz utiliza tres índices que, en este caso, representan las coordenadas x, y ,z del espacio físico. Más de tres dimensiones

Aunque una matriz puede tener hasta un máximo de 32 dimensiones, es raro que tenga más de tres.

EXPLICACION DEL PROGRAMA REALIZADO:

EXPLICACION EN C:

1) DEFINIMOS VARIABLES A UTILIZAR

int i,j,k;

int nummatrices, numfilas, numcolumnas,

int mayor filas [10][10];

int mayor columnas[10][10];

int matriz[5][10][10];

2) DAMOS VALORES A LAS VARIABLES UTILZADAS

printf("Numero de Matrices:\t");scanf_s("%d", &nummatrices);printf("Numero de filas:\t");scanf_s("%d", &numfilas);printf("Numero de columnas:\t");scanf_s("%d", &numcolumnas);

for (i = 0; i < nummatrices; i++){

for (j = 0; j < numfilas; j++){

for (k = 0; k < numcolumnas; k++){

matriz[i][j][k] = 0 + rand() % (500);}

}}

3) REALIZAR UN RAZONAMIENTO LOGICO PARA PODER ENCONTRAR LOS MAYORES DE CADA FILA Y COLUMNA

for (i = 0; i < nummatrices; i++){

for (j = 0; j < numfilas; j++){mayorfilas[i][j] = matriz[i][j][0];

for (k = 0; k < numcolumnas; k++){

if (mayorfilas[i][j] < matriz[i][j][k]){

mayorfilas[i][j] = matriz[i][j][k];

}}

}}

for (i = 0; i < nummatrices; i++){

for (k = 0; k < numcolumnas; k++){

mayorcolumnas[i][k] = matriz[i][0][k];for (j = 0; j < numfilas; j++){

if (mayorcolumnas[i][k] < matriz[i][j][k])

{mayorcolumnas[i][k] =matriz[i][j]

[k];}

}}

}

4)IMPRIMIR RESULTADOS

for (i = 0; i < nummatrices; i++){

printf("\nMATRIZ Nº: %d\n",i);for (j = 0; j < numfilas; j++){

for (k = 0; k < numcolumnas; k++){

printf("\t%d\t", matriz[i][j][k]);}printf("\tMayor: %d", mayorfilas[i][j]);printf("\n");

}for (j = 0; j < numcolumnas; j++)

{printf("\tMayor: %d", mayorcolumnas[i][j]);}

CAPTURA DE PANTALLA EN C

EXPLICACION EN VISUAL BASIC:

1) DEFINIMOS VARIABLES A UTILIZAR

Dim i As IntegerDim j As IntegerDim k As IntegerDim nummatrices As IntegerDim numfilas As IntegerDim numcolumnas As IntegerDim mayorfilas(10, 10) As IntegerDim mayorcolumnas(10, 10) As IntegerDim matriz(5, 10, 10) As IntegerDim imprimir As Integer

2) DAMOS VALORES A LAS VARIABLES UTILZADAS

MsgBox ("PROGRAMA PARA ENCONTRAR EL MAYOR DE CADA MATRIZ")''Worksheets("hoja1").Cells(1, 1).Value = ("PROGRAMA PARA ENCONTRAR EL MAYOR DE CADA MATRIZ")

nummatrices = InputBox("Numero de Matrices: ")numfilas = InputBox("Numero de filas: ")numcolumnas = InputBox("Numero de columnas: ")

For i = 0 To nummatrices - 1 For j = 0 To numfilas - 1 For k = 0 To numcolumnas - 1 matriz(i, j, k) = CInt(Int((1000 * Rnd()) + 2)) Next k Next jNext i

3) REALIZAR UN RAZONAMIENTO LOGICO PARA PODER ENCONTRAR LOS MAYORES DE CADA FILA Y COLUMNA

For i = 0 To nummatrices - 1 For j = 0 To numfilas - 1 mayorfilas(i, j) = matriz(i, j, 0) For k = 0 To numcolumnas - 1 If (mayorfilas(i, j) < matriz(i, j, k)) Then mayorfilas(i, j) = matriz(i, j, k) End If Next k Next jNext i

For i = 0 To nummatrices - 1 For k = 0 To numfilas - 1 mayorcolumnas(i, k) = matriz(i, 0, k) For j = 0 To numcolumnas - 1 If (mayorcolumnas(i, k) < matriz(i, j, k)) Then mayorcolumnas(i, k) = matriz(i, j, k) End If Next j Next kNext i

4)IMPRIMIR RESULTADOS

imprimir = numfilasFor i = 0 To nummatrices - 1Worksheets("hoja1").Cells(imprimir * i + 1, 1).Value = "MATRIZ N:" & i For j = 0 To numfilas - 1 For k = 0 To numcolumnas - 1 Worksheets("hoja1").Cells(i * imprimir + j + 2, k + 1).Value = matriz(i, j, k) Next k

Worksheets("hoja1").Cells(i * imprimir + j + 2, numcolumnas + 1).Value = "M:" & mayorfilas(i, j)Worksheets("hoja1").Cells(i * imprimir + numfilas + 2, j + 1).Value = "M:" & mayorcolumnas(i, j) imprimir = numfilas + 3 Next jNext i

CAPTURA DE PANTALLA EN VISUAL BASIC

EXPLICACION EN VISUAL JAVA:

1) DEFINIMOS VARIABLES A UTILIZAR

Public static void main(String[] args) { int i,j, k, nummatrices, numfilas, numcolumnas; int mayorfilas[][]= new int[10][10]; int mayorcolumnas[][]= new int[10][10];

int matriz[][][]= new int[5][10][10];

2) DAMOS VALORES A LAS VARIABLES UTILZADAS Scanner dato = new Scanner(System.in);

System.out.print("\t\tPROGRAMA PARA ENCONTRAR EL MAYOR DE CADA MATRIZ\n \n");

System.out.print("Numero de Matrices:\t");nummatrices = dato.nextInt();System.out.print("Numero de filas:\t");numfilas= dato.nextInt();System.out.print("Numero de columnas:\t");numcolumnas= dato.nextInt();

Random rnd = new Random();

for (i = 0; i < nummatrices; i++){

for (j = 0; j < numfilas; j++){

for (k = 0; k < numcolumnas; k++){matriz[i][j][k] = 1+ rnd.nextInt(1000);}

}}

3) REALIZAR UN RAZONAMIENTO LOGICO PARA PODER ENCONTRAR LOS MAYORES DE CADA FILA Y COLUMNA for (i = 0; i < nummatrices; i++)

{for (j = 0; j < numfilas; j++){mayorfilas[i][j] = matriz[i][j][0];

for (k = 0; k < numcolumnas; k++){

if (mayorfilas[i][j] < matriz[i][j][k])

{mayorfilas[i][j] =

matriz[i][j][k];}

}}

}for (i = 0; i < nummatrices; i++){

for (k = 0; k < numcolumnas; k++){

mayorcolumnas[i][k] = matriz[i][0][k];

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

{if (mayorcolumnas[i][k] < matriz[i][j]

[k]){mayorcolumnas[i][k] = matriz[i][j][k];}

}}

}4)IMPRIMIR RESULTADOSfor (i = 0; i < nummatrices; i++)

{System.out.print("\nMATRIZ N�:"+i+"\n");for (j = 0; j < numfilas; j++){

for (k = 0; k < numcolumnas; k++){

System.out.print("\t\t"+ matriz[i][j][k]);

}System.out.print("\tMayor: "+

mayorfilas[i][j]);System.out.print("\n");

}for (j = 0; j < numcolumnas; j++){System.out.print(" \tMayor: "+

mayorcolumnas[i][j]);}

System.out.print("\n");}

} }CAPTURA DE PANTALLA EN JAVA

BIBLIOGRAFÍA:

*Iniciando programadores Volumen 1 -2012 Christian Morí

*Introducción a la programación con C#- 2013- Nacho Cavanes

* c/c ++: curso de programación 2015 Miguel Ángel Acera 

*FUNDAMENTALS OF COMPUTER

PROGRAMMING Svetlin Nakov & Co.

NETGRAFIA:

https://www.djangosites.org/s/progopedia-com/

https://msdn.microsoft.com/es-es/library/9b9dty7d(v=vs.120).aspx

http://puntocomnoesunlenguaje.blogspot.com/2012/12/matriz-en-java.html

http://www.zator.com/Cpp/E4_3.htm