Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Práctica 12: Arreglos Bidimensionales en C, Ejercicios de Programación C

EJERCICIOS DE ARREGLOS BIDIMENSIONALES

Tipo: Ejercicios

2019/2020

Subido el 25/10/2020

AngelesOlivera92
AngelesOlivera92 🇲🇽

4

(1)

1 documento

1 / 7

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
!
!
!
Objetivo)
Al!concluir!está!práctica!el!estudiante!será!capaz!de:!
)
Material)y)Equipo)
Computadora,!Compilador!C,!unidad!de!almacenamiento!(USB).!
)
Introduccn)teórica)
Los!arreglos!vistos!anteriormente!se!conocen!como!arreglos!unidimensionales+(una!sola!dimensión)!y!se!caracterizan!por!tener!
un!solo!subíndice.!Estos!arreglos!se!conocen!también!por!el!término!listas.++
+
+
Concepto+y+forma+general+
Los+ arreglos+ multidimensionales+ son! aquellos! que! tienen! más! de! una! dimensión! y,! en! consecuencia,! más! de! un! índice.! Los!
arreglos! más! usuales! son! los! de! dos! dimensiones,! conocidos! también! por! el! nombre! de! tablas+ o! matrices.+Sin! embargo,! es!
posible!crear! arreglos! de! tantas!dimensiones! como! requieran! sus! aplicaciones,! esto!es,!tres,! cuatro! o! más! dimensiones.! Un!
arreglo!puede!tener!más!de!una!dimensión,!de!tal!manera!que!forme!matrices!de!!dos,!tres!o!n!más!dimensiones.!!
!
!
!
!
!
)
)
)
Figura!12.1!Estructura!de!un!arreglos!de!dos!dimensiones!
)
En!el!arreglo!bidimensional!de!la!Figura!12.1,!las! filas!se!etiquetan! de!0!a! m+y!las!columnas!de!0!a!n,+el!número!de!elementos!
que! tendrá! el! arreglo!será! el! resultado! del! producto! (m!+! 1)! x! (n! +! l).! El! sistema! de! localizar! un! elemento! será! por! las!
coordenadas!representadas!por!su!número!de!fila!y!su!número!de!columna!(a!,!b).+
+
!
!
!
!
!
Arreglos
bidimensionales
)
Instituto Politécnico Nacional
Secretaria Académica
Dirección de Educación Superior
ESIME Culhuacan
M. en C. Lorena Azuara Pérez
Ingeniería en Computación
Fundamentos de Programación
Práctica 12
!
Alumno:
Grupo:
Fecha:
0 1 2 3
0
1
2
3
Renglones
Columnas
pf3
pf4
pf5

Vista previa parcial del texto

¡Descarga Práctica 12: Arreglos Bidimensionales en C y más Ejercicios en PDF de Programación C solo en Docsity!

Objetivo

Al concluir está práctica el estudiante será capaz de:

Material y Equipo

Computadora, Compilador C, unidad de almacenamiento (USB).

Introducción teórica

Los arreglos vistos anteriormente se conocen como arreglos unidimensionales (una sola dimensión) y se caracterizan por tener

un solo subíndice. Estos arreglos se conocen también por el término listas.

Concepto y forma general

Los arreglos multidimensionales son aquellos que tienen más de una dimensión y, en consecuencia, más de un índice. Los

arreglos más usuales son los de dos dimensiones, conocidos también por el nombre de tablas o matrices. Sin embargo, es

posible crear arreglos de tantas dimensiones como requieran sus aplicaciones, esto es, tres, cuatro o más dimensiones. Un

arreglo puede tener más de una dimensión, de tal manera que forme matrices de dos, tres o aún más dimensiones.

Figura 12.1 Estructura de un arreglos de dos dimensiones

En el arreglo bidimensional de la Figura 12.1, las filas se etiquetan de 0 a m y las columnas de 0 a n, el número de elementos

que tendrá el arreglo será el resultado del producto (m + 1) x (n + l). El sistema de localizar un elemento será por las

coordenadas representadas por su número de fila y su número de columna (a , b).

Arreglos

bidimensionales

Instituto Politécnico Nacional

Secretaria Académica

Dirección de Educación Superior

ESIME Culhuacan

M. en C. Lorena Azuara Pérez

Ingeniería en Computación

Fundamentos de Programación

Práctica 12

Alumno:

Grupo:

Fecha:

0 1 2 3

0

1

2

3

Renglones

Columnas

Arreglos numéricos y de caracteres

La sintaxis para la declaración de un arreglo de dos dimensiones es:

tipo_de_dato nombre_del_arreglo [NúmerodeFilas] [NúmerodeColumnas];

Algunos ejemplos de declaración de arreglos bidimensionales son:

char lista[80][30];

int puestos[6][8] ;

int equipos[4] [30];

int matriz[4][2];

Los arreglos bidimensionales se pueden inicializar, al igual que los de una dimensión, cuando se declaran. La inicialización

consta de una lista de constantes separadas por comas y encerradas entre llaves, como en los siguientes ejemplos:

int tabla[2][3] = {51, 52, 53, 54, 55, 56};

o bien en los formatos mas amigables:

int tabla[2][3]= { {51, 52, 53},

int tabla[2][3] = {{51, 52, 53}, {54, 55, 56}};

Se puede acceder a los elementos de un arreglo bidimensional de la misma manera que se accede a los elementos de un

arreglo unidimensional, es decir, a través de sus subíndices. La diferencia es que en un arreglo bidimensional hay que

especificar los subíndices de las filas y las columnas.

tabla[2][3] = 4.5;

asientos[4][7] = 19;

ventas = tabla[2][5];

Las funciones de entrada o salida se aplican de igual forma a los elementos de un arreglo bidimensional. Por ejemplo,

int tabla[3][4];

float resistencias[4][5];

scanf(“%d”, &tabla[2][3]);

printf(“%d”,tabla[1][1]);

scanf(“%f”, &resistencias[2][4]);

Se puede acceder a los elementos de un arreglo bidimensionales mediante bucles anidados. Su sintaxis es:

int x,y, datos[5][5];

for(x = 0; x < 5; x++)

for(y=0; y < 5; y++)

scanf(“%d”, &datos[x][y]);

Ejemplo:

Programa que realiza la suma de dos matrices de N x N.

printf(“Matriz 2\n”); for(i = 0; i < t; i++) { for(j = 0; j < t; j++) { printf(“%d ”,m2[i][j]); } printf(“\n”); } printf(“Suma\n”); for(i = 0; i < t; i++) { for(j = 0; j < t; j++) { printf(“%d ”,suma[i][j]); } printf(“\n”); } getch(); }

/Ejemplo 12.3/ #include<stdio.h> #include<conio.h> #include<stdlib.h> void main( ) { int m1[10][10], m2[10][10], suma[10][10], t, i, j; printf(“Teclea el tamaño de la matriz: ”); scanf(“%d”, &t); for(i = 0; i < t; i++) { for(j = 0; j < t; j++) { m1[i][j] = 1 + rand()%9; m2[i][j] = 1 + rand()%9; suma[i][j] = m1[i][j] + m2[i][j]; } } printf(“\nContenido de las matrices\n”); printf(“Matriz 1\n”); for(i = 0; i < t; i++) { for(j = 0; j < t; j++) { printf(“%d ”,m1[i][j]); } printf(“\n”); }

Teclea el tamaño de la matriz: 4 Contenido de las matrices Matriz 1 1 2 1 3 1 4 5 6 6 2 1 6 7 4 3 1

Matriz 2 2 3 2 5 5 4 2 1 8 7 6 9 9 5 4 1

Suma 3 5 3 8 6 8 8 7 14 9 7 15 16 9 7 2

Desarrollo

1. Escriba un programa con arreglos bidimensionales de N x M que realice la multiplicación de matrices.

#include <conio.h> #include <stdio.h> void main() { int fa,ca,fb,cb,r,c,d; int ma[10][10],mb[10][10], mc[10][10]; printf("Dame la dimension de la matriz A...\n"); printf("Da el numero de renglones: "); scanf("%d",&fa); printf("Da el numero de columnas: "); scanf("%d",&ca); printf("Lectura de la Matriz A: \n"); for (r=0 ; r<fa;r++) for(c=0; c<ca;c++) { printf("\n ma[%d,%d]:",r,c); scanf("%d",&ma[r][c]);}; printf("Dame la dimension de la matriz B...\n"); printf("Da el numero de renglones: "); scanf("%d",&fb); printf("Da el numero de columnas: "); scanf("%d",&cb); if(ca!fb) { printf("\nEL PRODUCTO MATRICIAL NO ES POSIBLE DE REALIZAR\n"); exit(1); } printf("Lectura de la Matriz B: \n"); for (r=0 ; r<fb;r++) for(c=0; c<cb;c++) { printf("\n mb[%d,%d]:",r,c); scanf("%d",&mb[r][c]);}; printf("Multiplicando Matrices...... \n"); for (r=0 ; r<fa;r++) for(c=0; c<cb;c++) mc[r][c]=ma[r][c]*mb[r][c]; printf("Resultado: \n"); for (r=0 ; r<fa;r++) { for(c=0; c<cb;c++) printf(" %2d ",mc[r][c]); printf("\n"); } printf("Para terminar presiona $"); while((d=getchar())!='$'); }

3. Escriba un programa que cree un cuadro mágico.

Cuestionario

1. ¿Cómo se accede a un solo elemento en un arreglo bidimensional?

2. ¿Cómo se accede a un cadena en un arreglo bidimensional?

3. ¿Por qué no son recomendables los arreglos de más de dos dimensiones?

4. Describa cuáles son las ventajas de usar arreglos de dos dimensiones.

Conclusiones

#include<stdio.h> #include<conio.h> void main() { int mat[10][10],i,j,n, num; printf("Ingrese el tamaño del cuadro: "); scanf("%d", &n); if(n%2 == 1) { j = (n + 1) / 2; i = 1; mat[i][j] = 1; num = 2; while(num <= n*n) { if((num -1)%n == 0) { i++; } else { i = i -1; j = j +1; } if(i == 0) i = n; if (j > n) j=1; mat[i][j]=num; num = num +1; } printf("Cuadro magico\n"); i=1; while(i <= n) { j = 1; while (j <= n) { printf("%d ",mat[i][j]); j++; } printf("\n"); i++; } } else printf("Error de tamanio!!!"); getch(); }

Ingrese el tamaño del cuadro: 3 Cuadro mágico 8 1 6 3 5 7 4 9 2