Está en la página 1de 9

INSTITUTO POLITECNICO NACIONAL

“UNIDAD PROFESIONAL INTERDISCIPLINARIA EN


INGENIERÍA Y TECNOLOGÍAS AVANZADAS”

Unidad de Aprendizaje:
Introducción a la programación

Práctica No. 3
“Manejo de arreglos unidimensionales y bidimensionales”

PRE-REPORTE
Práctica 3

ALUMNO:
Torres Cervantes Ángel Aarón

Docente:
MAZA CASAS LAMBERTO

Grupo: 1MV1

Fecha: 08/10/2018
PRACTICA 3
INTRODUCCIÓN
En este documento se presenta la información que corresponde a los temas que abarcara la
practica numero 3 la cual corresponde a la unidad 2, esta cubre la aplicación de los temas y
manejo de tipo de arreglos de los cuales se tienen 2, unidimensionales y bidimensionales.

En el trabajo previo se explica a continuación la información básica y necesaria para conocer lo


que son los 2 tipos de arreglos que se van a utilizar para desarrollar la practica donde además se
incluye un simplificado ejemplo del uso de cada uno de estos, para aplicarlos a los ejercicios que
se plantearan a lo largo de la práctica.

Además de conocer la estructura de cada uno y el cómo se emplea en programación se incluirá


la información requerida para el uso de los arreglos bidimensionales en este caso de matrices,
para lo cual se ha añadido en descripción las diferentes operaciones que se pueden realizar para
trabajar con los arreglos bidimensionales y que estas mismas se puedan usar en la realización
de la práctica para cada uno de los ejercicios propuestos a lo largo de esta.

Y además se hace la introducción a nuevas funciones para la programación donde se utilizará la


función srand, la cual se explica a continuación y métodos diversos para los arreglos como los es
el método de la burbuja.

Objetivo
Desarrollar programas aplicando el método de la burbuja y resolver problemas con arreglos
bidimensionales.

Resultados Esperados
 Trabajo de investigación logrado en el pre-reporte
 Solución de casos prácticos en Lenguaje C haciendo uso de arreglos
 unidimensionales y multidimensionales para mostrar su uso y aplicación.
 Solución casos prácticos relacionados con operaciones matemáticas utilizando matrices.
 Solución problemas de
 ordenación con el método de la Burbuja.
DESARROLLO
Los arreglos pueden ser de dos tipos:

 Unidimensionales (vector)

En C a los vectores también se les llama arrays o arreglos  Las matrices serán vectores de
vectores. Los arrays son Conjuntos de variables del mismo tipo que tienen el mismo nombre
y se diferencian en el índice. Es un modo de manejar una gran cantidad de datos del mismo
tipo bajo un mismo nombre o identificador. Para realizar operaciones matemáticas sobre un
array (como en Matlab) debemos operar sobre cada elemento del array

Declaración de un vector:
<tipo> <nombre_arreglo>[<número_de_elementos>];

 tipo: Tipo que tienen el conjunto de variables  int, float, double,


 nombre: Identificador con el nombre del array
 tamaño: Cantidad de espacios de memoria que queremos reservar para este array.
 Importante: Debe ser un entero constante, conocido en tiempo de compilación
sintaxis
/* Usando un array de enteros */ losnumeros[i] = i;
int main() { /* Imprimiendo el valor del array */
/* Declarando el valor del array */ for (i = 0; i < 10; i++)
int losnumeros[10]; printf("El elemento %d vale %d\n", i,
int i = 0; losnumeros[i]);
/* Modificando el valor del array */ return ;
for (i = 0; i < 10; i++)

 Bidimensionales

Es una estructura de datos estática y de un mismo tipo de datos, y de longitud fija que
almacena datos de forma matricial. De igual forma que los arreglos unidimensionales, el
almacenamiento de los datos en la memoria se realiza de forma secuencial y son accedidos
mediante índices. Los arreglos multidimensionales son también conocidos como matrices.
Por lo tanto, se llama matriz de orden "m×n" a un conjunto rectangular de elementos
dispuestos en filas "m" y en columnas "n", siendo m y n números naturales.
sintaxis es la siguiente:
tipo_dato identificador [dimensión1] [dimensión2] ... [dimensiónN] ;
Donde N es un número natural positivo.
Ejemplo:
//Realizar una matriz 3x3 introducida por el
usuario//
int matrix_a[3][3];
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
printf("Numero %d,%d: ", i + 1, j + 1);
scanf("%d", &matrix_a[i][j]);
}
}
printf("\nMatriz:\n");
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
printf("%3d", matrix_a[i][j]);
}
printf("\n");
}
OPERACIONES CON MATRICES
SUMA DE MATRICES  
Dadas dos o más matrices del mismo orden, el resultado de la suma es otra matriz del mismo
orden cuyos elementos se obtienen como suma de los elementos colocados en el mismo lugar
de los matrices sumandos.
Ejemplo:

RESTA DE MATRICES  

Dadas dos o más matrices del mismo orden, el resultado de la resta es otra matriz del mismo
orden cuyos elementos se obtienen como la resta de los elementos colocados en el mismo lugar
de los matrices sumandos.

Ejemplo:

MULTIPLICACIÓN POR UN NÚMERO

Para multiplicar una matriz cualquiera por un número real, se multiplican todos los elementos de
la matriz por dicho número.

Ejemplo:

PRODUCTO DE MATRICES

El resultado de multiplicar dos matrices es otra matriz en la que el elemento que ocupa el lugar  
cij  se obtiene sumando los productos parciales que se obtienen al multiplicar todos los
elementos de la fila “i” de la primera matriz por los elementos de la columna “j” de la segunda
matriz. Es decir, multiplicamos la primera fila por los elementos de la primera columna y el
resultado será nuestro nuevo elemento. Para ello, el número de columnas de la primera matriz
debe coincidir con el de filas de la segunda. Si no fuese así no podríamos realizar la operación.

Ejemplo:

Observamos como la matriz resultante tiene el número de filas de la primera y el de columnas de


la segunda. Debemos recordar, que las matrices no tienen la propiedad conmutativa. En el caso
de que se pudiera operar A.B y B.A el resultado por lo general puede ser diferente.

DETERMINANTE

El determinante de una matriz (cuadrada) AA lo designaremos por |A||A| o bien por detA, aunque


la primera forma es la más utilizada. Se trata del número que se le asocia tras realizar el
siguiente cálculo: Cuyo desarrollo es idéntico al que nos proporciona la conocida Regla de
Sarrus:

MATRIZ TRASPUESTA

La matriz traspuesta de AA se designa ATAT y es una matriz en la que los elementos que
formaban una fila en AA pasan a ser los elementos de una columna en ATAT. Véase en la
siguiente notación:

MATRIZ INVERSA
Solo tienen matriz inversa aquellas matrices que su determinante es distinto de cero, en cuyo
caso su matriz inversa A−1A−1 es igual a la traspuesta de la matriz adjunta dividida por el
determinante de AA.
Método de la burbuja:
Este método permite ordenar de menor a mayor los valores guardados en un arreglo
unidimensional, haciendo comparaciones e intercambios durante su ejecución.

FUNCION SRAND:
void srand(unsigned int semilla);
Usa el argumento como una semilla para una secuencia nueva de números pseudo-aleatorios
para ser retornados por llamadas posteriores a rand. Si srandes entonces llamada con el mismo
valor semilla, la secuencia de números pseudo-aleatorios será repetida. Si rand es llamada antes
de que se hayan hecho cualquier llamada a srand, la misma secuencia será generada como
cuando srand fue llamada la primera vez con un valor semilla de 1.
Las siguientes funciones definen una implementación portable de rand y srand.

static unsigned long int siguiente = 1;


int rand( void )
{
siguiente *= 1103515245 + 12345;
return (unsigned int) (siguiente/65536) % (RAND_MAX-1);
}
void srand( unsigned int semilla )
{
siguiente = semilla;
}
La función srand no retorna ningún valor.
Ejemplo:
/* Sintaxis del programa: srand <semilla> */
int main( int argc, char *argv[] )
{
unsigned int i=1;
srand( atoi(argv[1]) ); /* Cada vez que se ejecute el programa, una semilla del usuario será
usada */
printf( "30 numeros generados aleatoriamente: \n\n" );
for( i=1; i<30; i++ )
{
printf( "%d, ", rand() );
srand( rand() ); /* Cada número generado vendrá de una secuencia distinta: "más
aleatorio" */
}
printf( "%d\n", rand() );
return 0;
}

CONCLUSIÓN
El realizar este trabajo previo a la práctica me ayudo a comprender y entender los temas que se
van a utilizar y aplicar en la elaboración de los ejercicios de la practica donde se deberán aplicar
tanto arreglos unidimensionales y bidimensionales para la elaboración parte a parte de cada uno
de los problemas que se plantean.
Comprendí para que son y como se usan estos arreglos y además de como es la forma correcta
de introducir los datos ósea, su sintaxis de cada uno para realizar el código en un programa de C
para así emplearlo a la práctica y realizar los códigos correctamente y que correspondan a la
práctica de acuerdo a cada problema que se plantea.
Además, que esa investigación previa que realice me ayudo a conocer los métodos que se
pueden aplicar y utilizar para realizar las diferentes operaciones posibles con los arreglos como
el método de la burbuja el cual me ayudo a conocer y realizar el ordenamiento de los números
de un vector tanto en forma ascendente como descendente lo cual resulta muy práctico para el
ordenamiento de un vector.
Además, el realizar las operaciones existentes para matrices y poder codificar eso para aplicarlo
en un programa de c que resuelve de forma automática la operación que se desearía realizar.
Ya por ultimo otra cosa que pude comprender y que me resulta muy interesante es la parte de
poder realizar un “mini juego” por así decirlo utilizando las matrices como punto de partida donde
se puede utilizar estas para realizar como fue en un ejercicio un pequeño laberinto que va a ser
resuelto por el usuario, esta parte fue la que más emocionante de realizar me pareció y sobre
todo la más interesante y eso si además resulto ser la más compleja ya que el código que se
tuvo que realizar, si me presento al principio dificultades para su entendimiento.
BIBLIOGRAFIA
 http://ingenieriainversa.org/2017/05/05/operaciones-con-matrices-en-c/
 https://aldeafraypedrodeagreda.files.wordpress.com/2009/12/11-arreglos-
multidimensionales.pdf
 Lenguaje C, Enrique Vicente Bonet Esteban,
El lenguaje de la programación C; páginas: 23-28

También podría gustarte