Está en la página 1de 16

INTRODUCCIÓN A LA COMPUTACIÓN - BIC01

CICLO 2022-1
1

UNIVERSIDAD NACIONAL DE INGENIERIA


FACULTAD DE INGENIERIA CIVIL

INTRODUCCIÓN A LA COMPUTACIÓN
SEMINARIO N° 8
CICLO 2022-1
INTRODUCCIÓN A LA COMPUTACIÓN - BIC01
CICLO 2022-1
2

Laboratorio N° 8
Objetivo

Utilizar arreglos bidimensionales

 X 11 X1 2 ... X 1 n 
 
 X 21 X22 ... X 2 n 
X =
... ... ... ... 
 
 X n1 Xn2 ... X n n 
 n*n
INTRODUCCIÓN A LA COMPUTACIÓN - BIC01
CICLO 2022-1
3

Arreglo Bidimensional
Declaración:
tipo matriz[N°filas][N°columnas];
Ejemplo:
int x[20][30];
col 0 col 1 col 2 … col 29
   
fila 0 → X0 0 X0 1 X0 2 … X0 29
fila 1 → X1 0 X1 1 X1 2 … X1 29 20
… … … … … … filas
fila 19 →
X19 0 X19 1 X19 2 … X19 29

30 columnas
INTRODUCCIÓN A LA COMPUTACIÓN - BIC01
CICLO 2022-1
4

Lectura de Arreglo Bidimensional

scanf("formato",&matriz[#fila][#col]);

fscanf(file,"formato",&matriz[#fila][#col]);

Ejemplo:
scanf("%d", &x[i][j]); Leer
xi j

fscanf(file,"%d", &x[i][j]);
INTRODUCCIÓN A LA COMPUTACIÓN - BIC01
CICLO 2022-1
5

Escritura de Arreglo Bidimensional

printf("formato",matriz[#fila][#col]);

fprintf(file,"formato",matriz[#fila][#col]);

Ejemplo:
printf("%d", x[i][j]); Escribir
xi j

fprintf(file,"%d", x[i][j]);
INTRODUCCIÓN A LA COMPUTACIÓN - BIC01
CICLO 2022-1
6

Ejercicio1
Dada la matriz A de n*n, se pide convertirla a
triangular superior mediante operaciones elementales
por filas y luego calcular su determinante.

 A11 A1 2 ... A1 n   A11 A1 2 ... A1 n 


   
 A2 1 A2 2 ... A2 n   0 A2 2 ... A2 n 
 ...   
... ... ... ... ... ... ... 
   
 An 1 An 2 ... An n   0 0 ... An n 
 n*n  n*n

Entradas Salidas
n Ai j (triangular superior)
Ai j i, j 1..n det
INTRODUCCIÓN A LA COMPUTACIÓN - BIC01
CICLO 2022-1
7

Fila Pivote i=1 


Solución A1 1 A1 2 ... A1 n 
 
j=2  A A2 2 ... A2 n 
21
Fila Modificada  ... ... ... ... 
 
 An 1 An 2 ... An n 
 n* n
Triangular superior:
Fila Pivote i  1..n-1
Fila Modificada j  i+1..n
c = -Aji/Aii , Aii  0
Filaj  Filaj + c*Filai
Determinante:
n
Det =  Aii
i =1
INTRODUCCIÓN A LA COMPUTACIÓN - BIC01
CICLO 2022-1
8
INTRODUCCIÓN A LA COMPUTACIÓN - BIC01
CICLO 2022-1
9
INTRODUCCIÓN A LA COMPUTACIÓN - BIC01
CICLO 2022-1
10
INTRODUCCIÓN A LA COMPUTACIÓN - BIC01
CICLO 2022-1
11

Ejercicio2
Un archivo contiene una matriz cuadrada, se pide
ordenar de menor a mayor los elementos de su
diagonal principal. El orden de la matriz no es dato.

 X 11 X1 2 ... X 1 n 
 
 X 21 X22 ... X 2 n 
X =
... ... ... ... 
 
 X ?1 X?2 ... X ? ? 
 ?*?

Entradas Salida
Xi j i, j 1..? Xi j (diagonal ordenada)
INTRODUCCIÓN A LA COMPUTACIÓN - BIC01
CICLO 2022-1
12

#include<stdio.h>
#include<math.h>
int main(){
int x[50][50],z[100],i,n,j,t; FILE *a;
a=fopen("MATRIZ.TXT","r");
for(i=1;!feof(a);i++) fscanf(a,"%d ",&z[i]);
fclose(a); n=sqrt(i-1);
for(i=1;i<=n*n;i++)
x[(i-1)/n+1][i-(i-1)/n*n]=z[i]; //Division Entera
//Burbuja
for(i=1;i<n;i++)
for(j=1;j<=n-i;j++)
if(x[j][j]>x[j+1][j+1]){
t=x[j][j]; x[j][j]=x[j+1][j+1]; x[j+1][j+1]=t;
}
for(i=1;i<=n;i++){
for(j=1;j<=n;j++) printf("%4d",x[i][j]);
printf("\n");
}
}
INTRODUCCIÓN A LA COMPUTACIÓN - BIC01
CICLO 2022-1
13

MATRIZ.TXT EJECUCION

9 3 8 1
8 6 4 5
2 8 5 4
4 2 7 7
INTRODUCCIÓN A LA COMPUTACIÓN - BIC01
CICLO 2022-1
14

Ejercicio Propuesto 1
INTRODUCCIÓN A LA COMPUTACIÓN - BIC01
CICLO 2022-1
15

Ejercicio Propuesto 2
INTRODUCCIÓN A LA COMPUTACIÓN - BIC01
CICLO 2022-1
16

Ejercicio Propuesto 3
Dada la solución del juego “Sudoku” que está almacenado
en un archivo de texto SUDOKU.SOL, se desea escribir un
programa que verifique si la solución es correcta
mostrando por pantalla los siguientes mensajes: “Sudoku
Correcto” o “Sudoku Incorrecto”.

Ejemplo:
Se muestra una solución
correcta del juego “Sudoku”,
los números están
almacenados en el archivo
indicado separados por
espacios en 9 filas x 9
columnas.

También podría gustarte