Professional Documents
Culture Documents
PC4 2021-2, Butler
PC4 2021-2, Butler
General S01: Lenguaje C S02: Tipo de Datos y Variables S03: Constantes, Operadores y Teclado
S04: Funciones Matemáticas Predefinidas S05: Estruc. Repetitivas+PC1 S06: Estruc. Condicionales+PC2
S10: Aplicaciones de Arreglos S11: Arreglo con Funciones+PC3 S12: Arreglos Bidimensionales
S13: Funciones con Arreglos Bidimensionales S14: Aplicaciones Arreglos Bidimensionales+PC4 S15: Cadenas
FINAL SUSTI
TIP´s
Para manejar de forma rápida los arreglos bidimensionales, podemos definirlos como matrices GLOBALES,
entonces las funciones pueden acceder a ellas directamente.
#include <stdio.h>
{0,0,0,1,1,1,0,0,0},
{0,0,1,0,0,0,1,0,0},
{0,1,0,0,0,0,0,1,0},
{0,1,0,0,0,0,0,1,0},
{0,1,1,1,1,1,1,1,0},
{0,1,0,0,0,0,0,1,0},
{0,1,0,0,0,0,0,1,0},
{0,1,1,0,0,0,0,1,0},
{0,0,0,0,0,0,0,0,0}};
int fila=10;
int columna=9;
main() {
imprimeMatrizCaracter();
int i,j;
for (i=0;i<fila;i++) {
for (j=0;j<columna;j++) {
if(tabla[i][j] == 0)
printf(" ");
else
}
printf("\n");
}
https://univirtual.uni.pe/course/view.php?id=5350§ion=14#tabs-tree-start 1/10
6/1/22 23:10 Curso: BMA09O Algoritmos y Estructura de Datos I, Tema: S14: Aplicaciones Arreglos Bidimensionales+PC4
Reusando funciones: Cuando queremos reusar funciones, debemos de tener cuidado que la función no
"este personalizada". Esto significa que no exista dentro de ella nada que indique la naturaleza de lo que se
esta procesando. Ejemplo: una función para ingresar el número de filas o el número de columna, no puede
indicar dentro de la función un mensaje que diga: "Ingrese el número de fila". Ok?
Ejemplo: Queremos tener una función que nos permita imprimir matrices de diferente tamaño?. Una opción
es configurar las variables del tamaño de la matriz antes de invocar a la función para su impresión.
#include <stdio.h>
{0,0,1,0,0,0,1,0,0},
{0,1,0,0,0,0,0,1,0},
{0,1,0,0,0,0,0,1,0},
{0,1,0,0,0,0,0,1,0},
{0,1,1,1,1,1,1,1,0},
{0,1,0,0,0,0,0,1,0},
{0,1,0,0,0,0,0,1,0},
{0,1,0,0,0,0,0,1,0},
{0,1,1,0,0,0,0,1,0}};
{1,0,0,0,0,0,0,0,0},
{1,0,0,0,0,0,0,0,0},
{1,0,0,0,0,0,0,0,0},
{0,1,1,1,1,1,1,1,1}};
int fila, columna;
main() {
fila=10;
columna=9;
imprimeMatrizCaracter(tabla);
printf("\n");
fila=5;
columna=9;
imprimeMatrizCaracter(tabla1);
int i,j;
for (i=0;i<fila;i++) {
for (j=0;j<columna;j++) {
if(m[i][j] == 0)
printf(" ");
else
}
printf("\n");
}
https://univirtual.uni.pe/course/view.php?id=5350§ion=14#tabs-tree-start 2/10
6/1/22 23:10 Curso: BMA09O Algoritmos y Estructura de Datos I, Tema: S14: Aplicaciones Arreglos Bidimensionales+PC4
Ejemplo 01M: Se tiene la siguiente matriz que define el formato del caracter A (mayúscula).
{0,0,0,1,1,1,0,0,0},
{0,0,1,0,0,0,1,0,0},
{0,1,0,0,0,0,0,1,0},
{0,1,0,0,0,0,0,1,0},
{0,1,1,1,1,1,1,1,0},
{0,1,0,0,0,0,0,1,0},
{0,1,0,0,0,0,0,1,0},
{0,1,1,0,0,0,0,1,0},
{0,0,0,0,0,0,0,0,0}};
Solución:
https://univirtual.uni.pe/course/view.php?id=5350§ion=14#tabs-tree-start 3/10
6/1/22 23:10 Curso: BMA09O Algoritmos y Estructura de Datos I, Tema: S14: Aplicaciones Arreglos Bidimensionales+PC4
#include <stdio.h>
{0,0,0,1,1,1,0,0,0},
{0,0,1,0,0,0,1,0,0},
{0,1,0,0,0,0,0,1,0},
{0,1,0,0,0,0,0,1,0},
{0,1,1,1,1,1,1,1,0},
{0,1,0,0,0,0,0,1,0},
{0,1,0,0,0,0,0,1,0},
{0,1,1,0,0,0,0,1,0},
{0,0,0,0,0,0,0,0,0}};
int tablaHora[9][10];
int tablaAntihora[9][10];
int fila,columna;
main(){
fila=10,columna=9;
imprimeElementosMatrizEntero (tabla);
rotarDerechaMatrizCaracter (tabla);
fila=9,columna=10;
imprimeElementosMatrizEntero (tablaHora);
fila=10,columna=9;
rotarIzquierdaMatrizCaracter (tabla);
fila=9,columna=10;
imprimeElementosMatrizEntero (tablaAntihora);
system("PAUSE");
int i,j;
for (i=0;i<fila;i++){
for (j=0;j<columna;j++){
if(m[i][j]==0){
printf(" ");
}
if(m[i][j]==1){
printf("%c",(char)219);
}
}
printf("\n");
}
int i,j;
for (i=0;i<columna;i++) {
for (j=0;j<fila;j++){
tablaHora[i][fila-1-j]=m[j][i];
}
}
int i,j;
for (i=0;i<columna;i++) {
for (j=0;j<fila;j++){
tablaAntihora[columna-1-i][j]=m[j][i];
}
}
https://univirtual.uni.pe/course/view.php?id=5350§ion=14#tabs-tree-start 4/10
6/1/22 23:10 Curso: BMA09O Algoritmos y Estructura de Datos I, Tema: S14: Aplicaciones Arreglos Bidimensionales+PC4
Estos primeros ejercicios trate de hacerlos por su cuenta y luego compare su solución con las mostradas en el enlace inferior
de cada pregunta.
invierteVerticalMatrizCaracter: Función que en una matriz, almacena la matriz original invertida de forma
vertical.
imprimeMatrizCaracter: Función que imprime una matriz cuyos elementos son "0" y "1".
Cuando el elemento es cero (0), debe imprimir espacio en blanco (" ").
Cuando el elemento es uno (1) debe imprimir el caracter ' █ ' (ALT - 219).
En el programa utilizar la matriz del caracter R (13x9)
{0,1,1,1,1,1,0,0,0},
{0,1,0,0,0,0,1,0,0},
{0,1,0,0,0,0,0,1,0},
{0,1,0,0,0,0,0,1,0},
{0,1,0,0,0,0,1,0,0},
{0,1,1,1,1,1,0,0,0},
{0,1,0,0,0,1,0,0,0},
{0,1,0,0,0,0,1,0,0},
{0,1,0,0,0,0,1,0,0},
{0,1,0,0,0,0,0,1,0},
{0,1,0,0,0,0,0,1,0},
{0,0,0,0,0,0,0,0,0}};
https://univirtual.uni.pe/course/view.php?id=5350§ion=14#tabs-tree-start 5/10
6/1/22 23:10 Curso: BMA09O Algoritmos y Estructura de Datos I, Tema: S14: Aplicaciones Arreglos Bidimensionales+PC4
Problema 02M: En video existe una característica que “engrosar” los caracteres que se visualizan en
la pantalla de video. A dicha característica se le denomina “negrita”.
Una forma de hacerlo es “pintar” el bit siguiente (el que está a la derecha de cada bit que conforma el
carácter original).
{0,1,1,1,1,1,0,0,0},
{0,1,0,0,0,0,1,0,0},
{0,1,0,0,0,0,0,1,0},
{0,1,0,0,0,0,0,1,0},
{0,1,0,0,0,0,1,0,0},
{0,1,1,1,1,1,0,0,0},
{0,1,0,0,0,1,0,0,0},
{0,1,0,0,0,0,1,0,0},
{0,1,0,0,0,0,1,0,0},
{0,1,0,0,0,0,0,1,0},
{0,1,0,0,0,0,0,1,0},
{0,0,0,0,0,0,0,0,0}};
https://univirtual.uni.pe/course/view.php?id=5350§ion=14#tabs-tree-start 6/10
6/1/22 23:10 Curso: BMA09O Algoritmos y Estructura de Datos I, Tema: S14: Aplicaciones Arreglos Bidimensionales+PC4
Problema 03M: Se tiene la siguiente gráfica, la cual está representada en una matriz de 13 filas por
9 columnas. Cada cuadrado es un pixel (pixel pintado es “1” y pixel no pintado es “0”)
Se pide:
Crear la matriz.
duplicaFilaMatriz: Función que almacena en una matriz, la matriz original duplicada en cada fila.
duplicaColumnaMatriz: Función que almacena en una matriz, la matriz anterior duplicada en cada columna.
https://univirtual.uni.pe/course/view.php?id=5350§ion=14#tabs-tree-start 7/10
6/1/22 23:10 Curso: BMA09O Algoritmos y Estructura de Datos I, Tema: S14: Aplicaciones Arreglos Bidimensionales+PC4
rotaMatrizHorario90: Función que almacena en una matriz, la matriz anterior rotada en 90 grados en
sentido horario.
imprimeMatrizCaracter: Función que imprime una matriz cuyos elementos son "0" y "1".
Cuando el elemento es cero (0), debe imprimir espacio en blanco (" ").
Cuando el elemento es uno (1) debe imprimir el caracter ' █ ' (ALT - 219).
El programa principal debe imprimir: la matriz original, luego la matriz con las filas duplicadas, luego la matriz
con las columnas duplicadas y finalmente la matriz rotada 90 grados en sentido horario.
Nombre cada programa son las iniciales de su nombre seguido del número de la pregunta. Ejemplo: JGBB1,
JGBB2, etc.
Solo debe enviar al aulavirtual, el archivo *.c de cada programa.
No debe comprimir el archivo.
La sesión de Zoom no debe tener habilitado la opción de "Fondo de Pantalla".
Cualquiera de los programas enviados que tenga errores de compilación se le evaluará con nota CERO.
https://univirtual.uni.pe/course/view.php?id=5350§ion=14#tabs-tree-start 8/10
6/1/22 23:10 Curso: BMA09O Algoritmos y Estructura de Datos I, Tema: S14: Aplicaciones Arreglos Bidimensionales+PC4
PC4-01: Construya un programa que en la función principal declare e inicialice un arreglo unidimensional de N
elementos numéricos randon con valores menores a 9. En una función se debe de almacenar en en la primera
fila de un arreglo bidimensional los datos del arreglo unidimensional y en cada columna se almacenen tantos
asteriscos como lo indique el número. En otra función se deben imprimir ambos arreglos.
PC4-01
PC4-02: Construya un programa que lea el número de fila y de columna de un arreglo bidimensional, y luego
lo cargue mediante random con caracteres alfabéticos entre d y t. En una tercera funcion debe imprimir el
arreglo original y el arreglo al revés por filas.
PC4-02
PC4-03: Construya un programa que cargue una matriz de N por M elementos, en una función lea un dato
entero menor a 10 y genere un segundo arreglo que contenga todos los elementos del arreglo original de tal
manera que sus filas estén desplazadas tantas veces como lo indique el número leído.
PC4-03
https://univirtual.uni.pe/course/view.php?id=5350§ion=14#tabs-tree-start 9/10