0% encontró este documento útil (0 votos)
49 vistas12 páginas

GUIALAB4

El documento presenta las instrucciones para realizar 5 ejercicios como parte de un laboratorio sobre arreglos bidimensionales. Los ejercicios incluyen leer y manipular datos en matrices, calcular sumas, promedios y otros valores estadísticos, e imprimir los resultados.

Cargado por

DLG
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
49 vistas12 páginas

GUIALAB4

El documento presenta las instrucciones para realizar 5 ejercicios como parte de un laboratorio sobre arreglos bidimensionales. Los ejercicios incluyen leer y manipular datos en matrices, calcular sumas, promedios y otros valores estadísticos, e imprimir los resultados.

Cargado por

DLG
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Elaborado por: Ing.

Eliezer Aburto Plata


Fecha de elaboración: Junio 2022

UNIVERSIDAD NACIONAL DE INGENIERIA


FACULTAD DE ELECTROTECNIA Y COMPUTACION
DEPARTAMENTO DE LENGUAJE Y SIMULACIÓN Asignatura:
Programación II.

Practica de Laboratorio
Douglas Ivan Acevedo Reyes // Mateo Andrés Altamirano Lacayo.
2M1-EO.
1.- Semestre y año: I Semestre 2023

2.- Laboratorio #4: Arreglos unidimensionales y arreglos bidimensionales.

3. -Objetivos del laboratorio


Realizar algoritmos con arreglos bidimensionales, para la generación de un algoritmo en
Pseudocódigo, que contribuyan a la solución de un problema en específico.

4- Información básica:
Para el desarrollo de este laboratorio debemos tener instalado el software DosBox en
nuestro computador. 5.- Recursos requeridos:

 DosBox instalado para la realización de los algoritmos.


 Computadora
 Guía de laboratorio.
Elaborado por: Ing. Eliezer Aburto Plata
Fecha de elaboración: Junio 2022

6.- Ejercicios a realizar:


1. Escribir un programa que lea un arreglo bidimensional de orden N x N en el cuerpo
principal. En un método que calcule lo siguiente:
Que imprima los elementos que están encima de la diagonal inversa.
Que sume los elementos que están debajo de la diagonal principal.
Que determine el elemento mayor del arreglo y su posición.
#include <stdio.h>
#include <conio.h>

Void DInversa(int matriz[][3], int n);


Int suma(int matriz[][3], int n);
Void Mayor(int matriz[][3], int n, int mayor[], int fila[], int columna[]);

Void main(void) {
Int matriz[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
Int n = 3;
Clrscr();
Printf(“Elementos encima de la diagonal inversa:\n”);
DInversa(matriz, n);

int suma = Dinversa(matriz, n);


printf(“Suma debajo de la diagonal principal: %d\n”, suma);

int mayor[2], fila[2], columna[2];


Mayor(matriz, n, mayor, fila, columna);
printf(“El elemento mayor es %d en la fila %d y columna %d\n”, mayor[0], fila[0],
columna[0]);
Elaborado por: Ing. Eliezer Aburto Plata
Fecha de elaboración: Junio 2022

getch();
}

Void DInversa(int matriz[][3], int n) {


For (int I = 0; I < n; i++) {
For (int j = 0; j < n; j++) {
If (I + j < n – 1) {
Printf(“%d “, matriz[i][j]);
} else {
Printf(“ “);
}
}
Printf(“\n”);
}
}

Int suma(int matriz[][3], int n) {


Int suma = 0;
For (int I = 1; I < n; i++) {
For (int j = 0; j < I; j++) {
Suma += matriz[i][j];
}
}
Return suma;
}

Void Mayor(int matriz[][3], int n, int mayor[], int fila[], int columna[]) {
Mayor[0] = matriz[0][0];
Fila[0] = columna[0] = 0;
Elaborado por: Ing. Eliezer Aburto Plata
Fecha de elaboración: Junio 2022

For (int I = 0; I < n; i++) {


For (int j = 0; j < n; j++) {
If (matriz[i][j] > mayor[0]) {
Mayor[0] = matriz[i][j];
Fila[0] = I;
Columna[0] = j;
}
}
}
}

2. Escribir un programa que lea una matriz n x n que almacene valores entre 0 y 5
solamente, dentro de un método calcular el total de los valores por fila y por columna
y que cuente cuantos ceros tiene la matriz, imprimir los datos. Ejemplo:

TOTALF
2 5 3 10
0 1 0 1
4 0 2 6

TOTALC 6 6 5
#include <stdio.h>
#include <conio.h>

Void CalT(int matriz[][3], int n, int TF[], int TC[], int ceros[]);

Void main(void) {
Int matriz[3][3] = {{1, 0, 3}, {4, 0, 2}, {5, 5, 0}};
Elaborado por: Ing. Eliezer Aburto Plata
Fecha de elaboración: Junio 2022

Int n = 3;

Int TF[n], TC[n], C[1];


CalT(matriz, n, TF, TC, C);

printf(“Totales por fila:\n”);


for (int I = 0; I < n; i++) {
printf(“%d “, TF[i]);
}
Printf(“\n”);

Printf(“Totales por columna:\n”);


For (int I = 0; I < n; i++) {
Printf(“%d “, TC[i]);
}
Printf(“\n”);

Printf(“Cantidad de ceros en la matriz: %d\n”, C[0]);

Getch();
Clrscr();
}

Void CalT (int matriz[][3], int n, int TF[], int TC[], int C[]) {
For (int I = 0; I < n; i++) {
TF[i] = TC[i] = 0;
}
C[0] = 0;
Elaborado por: Ing. Eliezer Aburto Plata
Fecha de elaboración: Junio 2022

For (int I = 0; I < n; i++) {


For (int j = 0; j < n; j++) {
TF[i] += matriz[i][j];
TC[j] += matriz[i][j];
if (matriz[i][j] == 0) {
C[0]++;
}
}
}
}

3. En cierto curso evaluado basándose en aprobado/reprobado (se aprueba si el promedio es


mayor de 70) cada estudiante ha presentado 4 pruebas. Escriba un programa que las 4
notas (almacénelas en arreglos bidimensionales), dentro de un método que calcule el
promedio, el grado(aprobado(A)/reprobado(F)) y la nota máxima de cada nota:
Ejemplo:

NOTAS PROMEDIO GRADO


78 52 25 96 75 A 85 96 87
84 89 A 47 58 69 49 59
F

Nota máxima 85 96 87 96
#include <stdio.h>
#include <conio.h>

Void main() {
Int notas[4][4];
Float promedio;
Char grado;
Elaborado por: Ing. Eliezer Aburto Plata
Fecha de elaboración: Junio 2022

Int notaM

For(int I = 0; I < 4; i++) {


Printf(“Ingrese las notas del estudiante %d:\n”, i+1);
For(int j = 0; j < 4; j++) {
Printf(“Nota %d: “, j+1);
Scanf(“%d”, &notas[i][j]);
}
}
For(int I = 0; I < 4; i++) {
Promedio = 0;
notaM = notas[i][0];

For(int j = 0; j < 4; j++) {


Promedio += notas[i][j];

If(notas[i][j] > notaM) {


notaM = notas[i][j];
}
}

Promedio /= 4;

If(promedio >= 70) {


Grado = ‘A’;
} else {
Grado = ‘F’;
}
Elaborado por: Ing. Eliezer Aburto Plata
Fecha de elaboración: Junio 2022

Printf(“Promedio del estudiante %d: %.2f\n”, i+1, promedio);


Printf(“Grado del estudiante %d: %c\n”, i+1, grado);
Printf(“Nota maxima del estudiante %d: %d\n”, i+1, notaM);
}
Getch();
Clrscr();
}

4. Realiza un programa que pida al usuario los elementos de una matriz bidimensional
5X4, estos elementos no pueden ser números negativos, posteriormente muestre en pantalla
los elementos de la matriz y sustituya los elementos de la diagonal principal con 0 e
imprima la nueva matriz
#include <stdio.h>
#include <conio.h>

Void main() {
Int matriz[5][4];
Clrscr();
For(int I = 0; I < 5; i++) {
For(int j = 0; j < 4; j++) {
Do {
Printf(“Ingrese el elemento (%d,%d): “, i+1, j+1);
Scanf(“%d”, &matriz[i][j]);
If(matriz[i][j] < 0) {
Printf(“El elemento debe ser positivo.\n”);
Getch();
Clrscr();
}
} while(matriz[i][j] < 0);
Elaborado por: Ing. Eliezer Aburto Plata
Fecha de elaboración: Junio 2022

}
}

Clrscr();
Printf(“Matriz original:\n”);
For(int I = 0; I < 5; i++) {
For(int j = 0; j < 4; j++) {
Printf(“%d “, matriz[i][j]);
}
Printf(“\n”);
}
Getch();

For(int I = 0; I < 5; i++) {


Matriz[i][i] = 0;
}
Clrscr();
Printf(“Matriz modificada:\n”);
For(int I = 0; I < 5; i++) {
For(int j = 0; j < 4; j++) {
Printf(“%d “, matriz[i][j]);
}
Printf(“\n”);
}
Getch();
}
Elaborado por: Ing. Eliezer Aburto Plata
Fecha de elaboración: Junio 2022

5. Realizar un programa que asigne datos a una matriz N * N y a continuación, escriba


las sumas correspondientes a la diagonal principal de la matriz y la suma de la matriz
inversa.
#include <stdio.h>
#include <conio.h>

#define N 3

Void main(void) {
Int matriz[N][N];
Int I, j;
Int sum_dp = 0, sum_di = 0;
Printf(“Introduce los elementos de la matriz %dx%d:\n”, N, N);
For(I = 0; I < N; i++) {
For(j = 0; j < N; j++) {
Printf(“matriz[%d][%d] = “, I, j);
Scanf(“%d”, &matriz[i][j]);
}
}
For(I = 0; I < N; i++) {
Sum_dp += matriz[i][i];
Sum_di += matriz[i][N-i-1];
}
Printf(“\nLa suma de la diagonal principal es: %d\n”, sum_dp);
Printf(“La suma de la diagonal inversa es: %d\n”, sum_di);
Elaborado por: Ing. Eliezer Aburto Plata
Fecha de elaboración: Junio 2022

Getch();
}

6. Realice un programa de una matriz N * N y que imprima los elementos de la matriz,


así mismo que imprima los elementos que están debajo de la diagonal principal, así como
los elementos que están debajo de la diagonal principal
#include <stdio.h>
#include <conio.h>

Void main() {
Int n, I, j;
Printf(“Ingrese el valor de N: “);
Scanf(“%d”, &n);

Int matriz[n][n];
For (I = 0; I < n; i++) {
For (j = 0; j < n; j++) {
Printf(“Ingrese el elemento [%d][%d]: “, I, j);
Scanf(“%d”, &matriz[i][j]);
}
}
Printf(“\nLa matriz es:\n”);
For (I = 0; I < n; i++) {
For (j = 0; j < n; j++) {
Printf(“%d “, matriz[i][j]);
}
Printf(“\n”);
}
Elaborado por: Ing. Eliezer Aburto Plata
Fecha de elaboración: Junio 2022

Printf(“\nElementos debajo de la diagonal principal:\n”);


For (I = 0; I < n; i++) {
For (j = 0; j < I; j++) {
Printf(“%d “, matriz[i][j]);
}
}
Printf(“\nElementos encima de la diagonal principal:\n”);
For (I = 0; I < n; i++) {
For (j = i+1; j < n; j++) {
Printf(“%d “, matriz[i][j]);
}
}

Getch();
}
7.- Evaluación del laboratorio

Una vez finalizado los ejercicios serán revisados por el docente verificando que se
ejecuten correctamente y cumplan con el enunciado planteado, realizando además
preguntas de control de conocimiento a los estudiantes acerca de las instrucciones o
sentencias realizadas en la resolución de estos. Deberán adjuntar el código fuente en una
carpeta .rar o bien en un documento Word o PDF con los algoritmos realizados y enviarlos
en el correo electrónico en la fecha que establezca el docente.

8.- Nombre del docente: Ing. Eliezer Aburto Plata Firma: ___________________

También podría gustarte