Upload
liliana-quishpe
View
218
Download
0
Embed Size (px)
DESCRIPTION
MATRICES Y EJERCICIOS
Citation preview
PROGRAMACIÓN II
1
NOMBRE: LILIANA QUISHPE
SEMESTRE: TERCERO INFORMÁTICA
DOCENTE: ING.MSC. WILMA GAVILANES
PROGRAMACIÓN II
2
MATRIZ -------------------------------------------------------------------------------------------- 3
FORMA DE ACCESO -----------------------------------------------------------------------------------4
MATRIZ TRANSPUESTA ---------------------------------------------------------------------- 4
ATENDIENDO A LA FORMA ------------------------------------------------------------------------5
ATENDIENDO A LOS ELEMENTOS --------------------------------------------------------------6
ARREGLOS BIDIMENSIONALES (MATRICES) ----------------------------------------- 6
Declaración: ------------------------------------------------------------------------------------------------6
Declara una matriz de 3 filas por 4 columnas: -----------------------------------------------------6
Declaración e iniciación: ---------------------------------------------------------------------------------7
EJEMPLO: -------------------------------------------------------------------------------------------------7
VECTORES ---------------------------------------------------------------------------------------- 7
Ejemplos: int iVec[10]; -----------------------------------------------------------------------------------8
Acceso a elementos ----------------------------------------------------------------------------------------8
ELEMENTO II------------------------------------------------- ¡Error! Marcador no definido.
PROGRAMAS UTILIZANDO MATRICES Y VECTORES -----------------------------------9
Análisis-------------------------------------------------------------------------------------------------------9
ESTRUCTURA DEL PROGRAMA ------------------------------------------------------------------9
CORRIDO DEL PROGRAMA ---------------------------------------------------------------------- 11
BIBLIOGRAFIA --------------------------------------------------------------------66
PROGRAMACIÓN II
3
MATRIZ
Una matriz (array ó vector) es una zona de almacenamiento contiguo, que contiene una
serie de elementos del mismo tipo, los elementos de la matriz.
En C/C++ los conjuntos ordenados de elementos del mismo tipo se denomina matrices
(arreglos), la idea aparece en otros lenguajes bajo distintos nombres.
Las matrices C++ se consideran tipos complejos (2.2), y se alojan en zonas de memoria
contiguas, aunque tendremos ocasión de ver (4.3.6) que C++ permite definir unas
seudo-matrices que en realidad no se almacenan de esta forma.
Una matriz es un vector de vectores o un también llamado array bidimensional.
La manera de declarar una matriz es c++ es similar a un vector:
int matriz[fils][cols];
Int.-es el tipo de dato, matriz es el nombre del todo el conjunto de datos y debo de
especificar el numero de filas y columnas. Las matrices también pueden ser de distintos
tipos de datos como char, float, double,etc.
Las matrices en c++ se almacenan al igual que los vectores en posiciones consecutivas
de memoria. Usualmente uno se hace la idea que una matriz es como un tablero. Pero
internamente el manejo es como su definición lo indica, un vector de vectores, es decir,
los vectores están uno detrás de los otros juntos.
La forma de acceder a los elementos de la matriz es utilizando su nombre e indicando
los 2 subíndices que van en los corchetes. Si Coloco int matriz [2][3]=10; //estoy
asignando al cuarto elemento de la tercera fila el valor 10. No olvidar que tanto filas
como columnas se enumeran a partir de 0.
Bueno y para recorrer una matriz podemos usar igualmente un bucle. En este caso 2 for
for(int i=0;i<fils;i++)
PROGRAMACIÓN II
4
{
for(int j=0;j<cols;j++)
{
matriz[i][j] = i % j;
}
}
FORMA DE ACCESO
La forma de acceder a los elementos de la matriz es directa; esto significa que el
elemento deseado es obtenido a partir de su índice y no hay que ir buscándolo elemento
por elemento (en contraposición, en el caso de una lista, para llegar, por ejemplo, al
tercer elemento hay que acceder a los dos anteriores o almacenar un apuntador o
puntero que permita acceder de manera rápida a ese elemento).
Para trabajar con vectores muchas veces es preciso recorrerlos. Esto se realiza por
medio de bucles. El siguiente pseudocódigo muestra un algoritmo típico para recorrer
un vector y aplicar una función ' ' a cada una de las componentes del vector:
MATRIZ TRANSPUESTA
Una matriz esta compuesta de filas(reng) y columnas(col), la matriz transpuesta es una
matriz que cambia las columnas por las filas.
PROGRAMACIÓN II
5
ATENDIENDO A LA FORMA
Matriz fila: Es una matriz que solo tiene una fila, es decir m =1 y por tanto es de orden
1×n.
Matriz columna: Es una matriz que solo tiene una columna, es decir, n =1 y por tanto
es de orden m ×1.
Matriz cuadrada: Es aquella que tiene el mismo número de filas que de columnas, es
decir m = n. En
Estos casos se dice que la matriz cuadrada es de orden n, y no n × n.
Los elementos aij con i = j, o sea ahí forman la llamada diagonal principal de la matriz
cuadrada, y los
Elementos aij con i + j = n +1 la diagonal secundaria.
Matriz traspuesta: Dada una matriz A, se llama traspuesta de A, y se representa por
At, a la matriz que se
Obtiene cambiando filas por columnas. La primera fila de A es la primera fila de At, la
segunda fila de A es
La segunda columna de At, etc.
De la definición se deduce que si A es de orden m ´ n, entonces At es de orden n × m.
Matriz simétrica: Una matriz cuadrada A es simétrica si A = At, es decir, si aij = aji ∀
i, j.
Matriz anti simétrica: Una matriz cuadrada es antisimétrica si A = –At, es decir, si aij
= –aji ∀ i, j.
PROGRAMACIÓN II
6
ATENDIENDO A LOS ELEMENTOS
Matriz nula es aquella que todos sus elementos son 0 y se representa por 0.
Matriz diagonal: Es una matriz cuadrada, en la que todos los elementos no
pertenecientes a la diagonal
Principal son nulos.
Matriz escalar: Es una matriz diagonal con todos los elementos de la diagonal iguales.
Representación matricial de un s.e.l.
El anterior sistema se puede expresar en forma matricial, usando el producto de matrices
de la forma:
ARREGLOS BIDIMENSIONALES (MATRICES)
Es un arreglo de dos dimensiones.
Son estructuras de datos que agrupan muchos datos del mismo tipo, en donde cada
elemento se puede trabajar individualmente y se puede referenciar con un mismo
nombre. Se usan para representar datos que pueden verse como una tabla con filas y
columnas.
Declaración:
Tipo_dato nombre_matriz [índice fila] [índice columna]
Uso:
Nombre_matriz [subíndice1] [subíndice2]
int matriz [2][2]
char mapa [100][100]
int certamen [60][4]
Declara una matriz de 3 filas por 4 columnas:
int matriz [3][4];
PROGRAMACIÓN II
7
Declaración e iniciación:
int matriz [2][2]={1,2,3,4}
1 2
Para referenciar un elemento de la matriz, debe darse un nombre de la matriz y el índice
de la fila y de la columna que el elemento ocupa en dicha matriz. Es importante que los
índices de las matrices tanto de las filas como de las columnas empiezan en 0 y
terminan en tamaño fila-1 y tamaño columna-1 respectivamente.
A las matrices se le asignan automáticamente valores iniciales predeterminados a cada
uno de sus elementos, de acuerdo a los siguientes criterios:
Si el tipo del arreglo es numérico, a sus elementos se les asigna el valor cero.
Si el tipo del arreglo es char, a sus elementos se les asigna el valor ‘\u0000′.
Si el tipo del arreglo es bool, a sus elementos se les asigna el valor false.
Si el tipo del arreglo es una clase, a sus elementos se les asigna el valor null.
EJEMPLO:
#include <stdio.h>
int main()
{
int fila, columna;
int matriz[2][2];
for(fila=0; fila<2; fila++)
for(columna=0; columna<2; columna++)
printf(“%d”, matriz[fila][columna]);
return 0;
}
VECTORES
Un vector es un conjunto de datos del mismo tipo que se identifican bajo un mismo
nombre. Para acceder a un elemento específico se utiliza un índice (o posición).
PROGRAMACIÓN II
8
En C, todos los vectores están constituidos por posiciones de memoria contiguas. Los
vectores pueden tener una o varias dimensiones. El formato general de la declaración es:
Tipo Nombre[Tamaño];
Ejemplos: int iVec[10];
int iVec[20]={0}; //Todos los elementos se inicializan al valor 0;
int iVec[5]={5,7,8,9,1}; //Se pueden inicializar cada uno de los elementos
En todos los vectores el índice del primer elemento siempre es 0 por lo tanto, cuando se declara int
iVec[5] se está declarando un vector que tiene 5 elementos, desde iVec[0] hasta iVec[9]
Acceso a elementos
Para acceder a un elemento en concreto se debe utilizar el nombre del vector y entre corchetes especificar
la posición de la celda.
iVec[0]=3 ; // Asignar el valor 3 al primer elemento
PROGRAMACIÓN II
9
ELEMENTO 2 PROGRAMAS UTILIZANDO MATRICES Y VECTORES
1.- Diseñe un programa que me permita leer una cadena de caracteres y
encontrar todas aquellas que sean vocales y pasarlas a un nuevo vector en forma
ordenada.
ANÁLISIS
Para realizar este programa debemos declarar las librerías principales como son:
#include <conio.h> y # include<stdio.h>, luego inicializamos el programa con void
main(), luego declaramos las variables que sean necesarias para realizar, en este caso,
vamos a utilizar variables globales para números enteros y para cadenas de caracteres
variable tipo chair la y luego hacemos un blanqueo de pantalla utilizando clrscr();
después declaramos la posición de filas y columnas para realizar el programa, luego
realizamos una función para el borde para que de mas realce al programa, luego
declaramos la instrucción gotoxy ya que este nos permite posesionarnos en pantalla;
utilizamos también printf y scanf ya que estas variables nos permiten la entrada y salida
de datos; para poder visualizar las el nombre que deseemos poner en la cadena ya que
solo vamos a ingresar datos de tipo chair solo para cadenas, en este programa
utilizamos un “%c” porque este nos permite ver la cadena que estamos realizando y esta
instrucción solo se utiliza para cadenas de caracteres, luego damos una estructura al
programa declarando una opción que diga Continuar 1 y Finalizar 0 y por ultimo
declaramos getch(); ya este instrucción nos permite que el programa que estamos
ejecutando pare y por ultimo cerramos llaves ya que esta pequeña instrucción es muy
importante para que el programa se ejecute; para poder ejecutar el programa debemos
compilar presionando las teclas ALT + F9.
ESTRUCTURA DEL PROGRAMA
PROGRAMACIÓN II
10
#include<stdio.h>
#include<conio.h>
int limite,i,fila,op;
char nombre[15];
void main()
{
do
{
clrscr();
fila=8;
for(i=1;i<=80;i++)
{
gotoxy(i,1);printf("*");
gotoxy(i,24);printf("*");
}
for(i=1;i<=24;i++)
{
gotoxy(1,i);printf("*");
gotoxy(80,i);printf("*");
}
gotoxy(20,2);printf("* **MANEJO DE CADENAS*** ");
gotoxy(7,3);printf(" ingrese una cadena : ");
flushall();
gets(nombre);
limite=strlen(nombre);
for(i=0;i<limite;i++)
{
gotoxy(21,fila);printf("%c",nombre[i]);
fila=fila+1;
}
fila=7;
for(i=limite;i>=0;i--)
{
gotoxy(25,fila);printf("%c",nombre[i]);
fila=fila+1;
}
LIBRERIAS PRINCIPALES
VARIABLESDE TIPO
ENTERAS Y VARIABLES TIPO
CARÁCTER
INICIO DEL DO
PROCESO DEL
PROGRAMA
INICIO DEL PRGRAMA
FUNCION DEL BORDE
PROGRAMACIÓN II
11
gotoxy(25,20);printf("Continuar 1o Finalizar 0 ==> ");scanf("%d",&op);
}
while(op==1);
getch();
}
CORRIDO DEL PROGRAMA
FINALIZACION DEL PROGRAMA
PROGRAMACIÓN II
12
2.- Diseñe un programa que me permita leer una cadena de caracteres y encontrar
todas aquellas que sean consonantes y pasarlas a un nuevo vector en forma ordenada.
ANÁLISIS
Para realizar este programa debemos declarar las librerías principales como son:
#include <conio.h>, # include<stdio.h>,#include<string.h> luego declaramos las
variables que sean necesarias para realizar, en este caso, vamos a utilizar variables
globales para números enteros y para cadenas de caracteres variable tipo chair luego
inicializamos el programa con void main(), la y luego hacemos un blanqueo de pantalla
utilizando clrscr(); después declaramos la posición de filas y columnas para realizar el
programa, luego realizamos una función para el borde para que de mas realce al
programa, luego declaramos la instrucción gotoxy ya que este nos permite
posesionarnos en pantalla; utilizamos también printf y scanf ya que estas variables nos
permiten la entrada y salida de datos; para poder visualizar las el nombre que deseemos
poner en la cadena ya que solo vamos a ingresar datos de tipo chair solo para cadenas,
en este programa utilizamos un “%c” porque este nos permite ver la cadena que estamos
realizando y esta instrucción solo se utiliza para cadenas de caracteres, luego le
guaradmos la matriz en un nuevo vector para poder visualizar en pantalla la cadena,
luego damos una estructura al programa declarando una opción que diga Continuar 1 y
Finalizar 0 y por ultimo declaramos getch(); ya este instrucción nos permite que el
programa que estamos ejecutando pare y por ultimo cerramos llaves ya que esta
pequeña instrucción es muy importante para que el programa se ejecute; para poder
ejecutar el programa debemos compilar presionando las teclas ALT + F9.
ESTRUCTURA DEL PROGRAMA
#include<stdio.h>
#include<conio.h>
#include<string.h>
int cadena,i,fil,col,contador,aux,h,j,op;
char vector1[20],vector2[20];
void main()
{
do
LIBRERIAS PRINCIPALES
VARIABLES ENTERAS
Y DE CARÁCTER
INICIO DEL PROGRAMA Y
DEL DO
PROGRAMACIÓN II
13
{
clrscr();
fil=8;
j=0;
for(i=1;i<=80;i++)
{
gotoxy(i,1);printf("*");
gotoxy(i,24);printf("*");
}
for(i=1;i<=24;i++)
{
gotoxy(1,i);printf("*");
gotoxy(80,i);printf("*");
}
gotoxy(20,2),printf("***CONTAR LAS CONSONANTES***");
gotoxy(20,5),printf("Ingrese una cadena : ");
flushall();
gets(vector1);
cadena=strlen(vector1);
for(i=0;i<cadena;i++)
{
if(vector1[i]!='a'&&vector1[i]!='e'&&vector1[i]!='i'&&vector1[i]!='o'&&v
ector1[i]!='u')
{
vector2[j]=vector1[i];
j=j+1;
}
}
fil=8;
for(i=0;i<j;i++)
{
gotoxy(19,fil);printf("%c", vector2[i]);
fil=fil+1;
}
for(i=0;i<j;i++)
{
for(h=0;h<j;h++)
{
FUNCION DEL BORDE
PROCESO DEL
VECTOR 2
FUNCIÓN DO Y BLANQUEO
DE PANTALLA
PROCESO
DEL
PROGRAMA
LIMITE DE POSICIÓN
PROGRAMACIÓN II
14
if(vector2[i]<vector2[h])
{
aux=vector2[i];
vector2[i]=vector2[h];
vector2[h]=aux;
}
}
}
fil=8;
for(i=0;i<j;i++)
{
gotoxy(24,fil);printf("%c", vector2[i]);
fil=fil+1;
}
gotoxy(25,20);printf(" Continuar1 o Finalizar ==> " );scanf("%d",&op);
}
while(op==1);
getch();
}
CORRIDO DEL PROGRAMA
IMPRESIÓN DEL
VECTOR 2
TERMINACIÓN DEL
PROGRAMA
PROGRAMACIÓN II
15
3.- Diseñe un programa utilizando funciones que me permita diseñar un menu
de opciones con las siguientes alternativas.
ANÁLISIS
Para realizar este programa debemos declarar las librerías principales como son:
#include <conio.h>, # include<stdio.h>,#include<string.h> luego declaramos las
variables que sean necesarias para realizar, en este caso, vamos a utilizar variables
globales para números enteros y para cadenas de caracteres variable tipo chair luego
inicializamos el programa con void main(), la y luego hacemos un blanqueo de pantalla
utilizando clrscr(); después declaramos la posición de filas y columnas para realizar el
programa, luego realizamos una función para el borde para que de mas realce al
programa, luego declaramos la instrucción gotoxy ya que este nos permite
posesionarnos en pantalla; utilizamos también printf y scanf ya que estas variables nos
permiten la entrada y salida de datos; para poder visualizar las el nombre que deseemos
poner en la cadena ya que solo vamos a ingresar datos de tipo chair solo para cadenas,
en este programa utilizamos un “%c” porque este nos permite ver la cadena que estamos
realizando y esta instrucción solo se utiliza para cadenas de caracteres,luego hacemos de
utilizar la sentencia swuitch ya que esta sentencia nos permite realizar un menú de
opciones , luego damos una estructura al programa declarando una opción que diga
Continuar 1 y Finalizar 0 y por ultimo declaramos getch(); ya este instrucción nos
permite que el programa que estamos ejecutando pare y por ultimo cerramos llaves ya
que esta pequeña instrucción es muy importante para que el programa se ejecute; para
poder ejecutar el programa debemos compilar presionando las teclas ALT + F9.
ESTRUCTURA DEL PROGRAMA
1) Cadenas con vocales.
2) Cadenas con consonantes.
3) Salir.
#include <stdio.h>
#include <conio.h>
int cadena,i,fil,col,aux,h,j,op;
char vector1[20],vector2[20];
LIBRERIAS PRINCIPALES Y
VARIABLES TIPO CHAR Y
ENTERAS
PROGRAMACIÓN II
16
void borde()
{
int i,j;
for(i=1;i<=80;i++)
{
gotoxy(i,1);printf("*");
gotoxy(i,24);printf("*");
}
for(i=1;i<=24;i++)
{
gotoxy(1,i);printf("*");
gotoxy(80,i);printf("*");
}
}
void vocales()
{
clrscr();
borde();
fil=8;
j=0;
gotoxy(20,2),printf("***CONTAR VOCALES***");
gotoxy(20,5),printf("Ingrese una cadena : ");
flushall();
gets(vector1);
cadena=strlen(vector1);
for(i=0;i<cadena;i++)
{
if(vector1[i]=='a')
{
vector2[j]=vector1[i];
j=j+1;
}
if(vector1[i]=='e')
{
vector2[j]=vector1[i];
j=j+1;
}
if(vector1[i]=='i')
{
vector2[j]=vector1[i];
FUNCION DEL BORDE
FUNCION DE LAS
VOCALES
MENSAJES DEL
PROGRAMA
PROGRAMACIÓN II
17
j=j+1;
}
if(vector1[i]=='o')
{
vector2[j]=vector1[i];
j=j+1;
}
if(vector1[i]=='u')
{
vector2[j]=vector1[i];
j=j+1;
}
}
fil=8;
for(i=0;i<j;i++)
{
gotoxy(19,fil);printf("%c", vector2[i]);
fil=fil+1;
}
for(i=0;i<j;i++)
{
for(h=0;h<j;h++)
{
if(vector2[i]<vector2[h])
{
aux=vector2[i];
vector2[i]=vector2[h];
vector2[h]=aux;
}
}
}
fil=8;
for(i=0;i<j;i++)
{
gotoxy(24,fil);printf("%c", vector2[i]);
fil=fil+1;
}
}
FUNCION DE LAS
VOCALES
MATRIZ PASADA A OTRO
VECTOR
PROGRAMACIÓN II
18
void consonantes()
{
clrscr();
borde();
fil=8;
j=0;
gotoxy(20,2),printf("***CONTAR LAS CONSONANTES***");
gotoxy(20,5),printf("Ingrese una cadena : ");
flushall();
gets(vector1);
cadena=strlen(vector1); for(i=0;i<cadena;i++)
{
if(vector1[i]!='a'&&vector1[i]!='e'&&vector1[i]!='i'&&vector1[i]!='o'&&v
ector1[i]!='u')
{
vector2[j]=vector1[i];
j=j+1;
}
}
fil=8;
for(i=0;i<j;i++)
{
gotoxy(19,fil);printf("%c", vector2[i]);
fil=fil+1;
}
for(i=0;i<j;i++)
{
for(h=0;h<j;h++)
{
if(vector2[i]<vector2[h])
{
aux=vector2[i];
vector2[i]=vector2[h];
vector2[h]=aux;
}
}
}
fil=8;
for(i=0;i<j;i++)
{
FUNCION DE LAS
CONSONANTES
LLAMAMIENTO A LAS
FUNCIONES
MENSAJE
DEL
PROGRAMA
PROGRAMACIÓN II
19
gotoxy(24,fil);printf("%c", vector2[i]);
fil=fil+1;
}
}
void main()
{
do
{
clrscr();
borde();
textcolor(3);
gotoxy(10,3);printf("***MENÚ DE CADENAS ***");
gotoxy(17,4); printf("1.-CADENA DE VOCALES ");
gotoxy(17,5); printf("2.-CADENA DE CONSONANTES ");
gotoxy(17,6); printf("3.-SALIR ");
gotoxy(15,9); printf("Ingrese la opcion que desea ==>
");scanf("%d",&op);
switch(op)
{
case 1:
{
vocales();
}
break;
case 2:
{
consonantes();
}
break;
case 3:
{
exit();
}
break;
INICIO DEL PROGRAMA Y
DEL DO
PROCESO DEL SWITCH
OPCIONES
PARA
ESCOGER DEL
PROGRAMA
PROGRAMACIÓN II
20
}
gotoxy(30,20);printf("Continuar 1o Finalizar ==> ");scanf("%d",&op);
}
while(op==1);
getch();
}
CORRIDO DEL PROGRAMA
CIERRE DEL DO
PROGRAMACIÓN II
21
4.- Diseñe un programa que me permita ingresar n elementos en una matriz
cuadrática entre 3 y 35, presente la matriz resultante.
ANÁLISIS
Para realizar este programa debemos declarar las librerías principales como son:
#include <conio.h>, # include<stdio.h>,#include<string.h> luego declaramos las
variables que sean necesarias para realizar, en este caso, vamos a utilizar variables
globales para números enteros y para cadenas de caracteres variable tipo chair luego
inicializamos el programa con void main(), la y luego hacemos un blanqueo de pantalla
utilizando clrscr(); después declaramos la posición de filas y columnas para realizar el
programa, luego realizamos una función para el borde para que de mas realce al
programa, luego declaramos la instrucción gotoxy ya que este nos permite
posesionarnos en pantalla; utilizamos también printf y scanf ya que estas variables nos
permiten la entrada y salida de datos; para poder visualizar las el nombre que deseemos
poner en la cadena ya que solo vamos a ingresar datos de tipo chair solo para cadenas,
en este programa utilizamos un “%c” porque este nos permite ver la cadena que estamos
realizando y esta instrucción solo se utiliza para cadenas de caracteres,luego hacemos de
utilizar la sentencia swuitch ya que esta sentencia nos permite realizar un menú de
opciones , luego damos una estructura al programa declarando una opción que diga
Continuar 1 y Finalizar 0 y por ultimo declaramos getch(); ya este instrucción nos
permite que el programa que estamos ejecutando pare y por ultimo cerramos llaves ya
que esta pequeña instrucción es muy importante para que el programa se ejecute; para
poder ejecutar el programa debemos compilar presionando las teclas ALT + F9.
ESTRUCTURA DEL PROGRAMA
# include<stdio.h>
# include<conio.h>
int i,j,op,col,fila,limt,matriz[10][10];
void borde()
{
for(i=1;i<=80;i++)
{
LIBRERIAS
PRINCIPALES Y
VARIABLES DE TIPO
ENTERO0
PROGRAMACIÓN II
22
gotoxy(i,1);printf("*");
gotoxy(i,24);printf("*");
}
for(i=1;i<=24;i++)
{
gotoxy(1,i);printf("*");
gotoxy(80,i);printf("*");
}
}
void ingresar (int limite)
{
fila=10;
col=10;
gotoxy(5,7);printf("²MATRIZ DE INGRESO²");
for(i=1;i<=limite;i++)
{
for(j=1;j<=limite;j++)
{
do
{
gotoxy(col,fila);printf(" ");
gotoxy(col,fila);scanf("%d",&matriz[i][j]);
}
while(matriz[i][j]<3 || matriz[i][j]>35);
col=col+5;
}
fila=fila+1;
col=10;
}
}
void visualizar (int limite)
{
fila=10;
col=36;
gotoxy(30,7);printf("²MATRIZ DE SALIDA²");
for(i=1;i<=limite;i++)
{
for(j=1;j<=limite;j++)
{
gotoxy(col,fila);printf("%d",matriz[i][j]);
col=col+5;
}
FUNCION DEL
BORDE
FUNCION DEL
INGRESO
FUNCION
VISUALIZAR
PROGRAMACIÓN II
23
col=36;
fila=fila+1;
}
}
void main ()
{
do
{
clrscr();
borde();
gotoxy(25,2);printf(" ***MATRICES***");
gotoxy(22,4);printf("Ingresar el limite = ");scanf("%d",&limt);
ingresar(limt);
visualizar(limt);
gotoxy(25,20);printf("² Desea continuar [1] o [0] para finalizar ² =
");scanf("%d",&op);
}
while(op==1);
getch();
}
CORRIDO DEL PROGRAMA
INICIO DEL PROGRAMA Y
DEL DO
CIERRE DEL DO Y FINALIZACIÓN
DEL PROGRAMA
MENSAJES
DEL
PROGRAMA
PROGRAMACIÓN II
24
5.- Diseñe un programa utilizando matrices y funciones que me
permita generar un matriz de cualquier orden con cualquier factor
ingresado desde teclado.
ANÁLISIS
Para realizar este programa debemos declarar las librerías principales como son:
#include <conio.h>, # include<stdio.h>,#include<string.h> luego declaramos las
variables que sean necesarias para realizar, en este caso, vamos a utilizar variables
globales para números enteros y para cadenas de caracteres variable tipo chair luego
inicializamos el programa con void main(), la y luego hacemos un blanqueo de pantalla
utilizando clrscr(); después declaramos la posición de filas y columnas para realizar el
programa, luego realizamos una función para el borde para que de mas realce al
programa, luego declaramos la instrucción gotoxy ya que este nos permite
posesionarnos en pantalla; utilizamos también printf y scanf ya que estas variables nos
permiten la entrada y salida de datos; para poder visualizar las el nombre que deseemos
poner en la cadena ya que solo vamos a ingresar datos de tipo chair solo para cadenas,
en este programa utilizamos un “%c” porque este nos permite ver la cadena que estamos
realizando y esta instrucción solo se utiliza para cadenas de caracteres,luego hacemos de
utilizar la sentencia swuitch ya que esta sentencia nos permite realizar un menú de
opciones , luego damos una estructura al programa declarando una opción que diga
Continuar 1 y Finalizar 0 y por ultimo declaramos getch(); ya este instrucción nos
permite que el programa que estamos ejecutando pare y por ultimo cerramos llaves ya
que esta pequeña instrucción es muy importante para que el programa se ejecute; para
poder ejecutar el programa debemos compilar presionando las teclas ALT + F9.
ESTRUCTURA DEL PROGRAMA
# include<stdio.h>
# include<conio.h>
int cot,fact,i,j,op,col,fila,limt,matriz[10][10];
void borde()
{
for(i=1;i<=80;i++)
{
LIBRERIAS
PRINCIPALES Y
VARIABLES ENTERAS
PROGRAMACIÓN II
25
gotoxy(i,1);printf("*");
gotoxy(i,24);printf("*");
}
for(i=1;i<=24;i++)
{
gotoxy(1,i);printf("*");
gotoxy(80,i);printf("*");
}
}
void ingresar (int limite, int factor)
{
fila=10;
col=5;
cot=0;
gotoxy(8,8);printf("²MATRIZ DE INGRESO²");
for(i=1;i<=limite;i++)
{
for(j=1;j<=limite;j++)
{
cot=cot+1;
matriz[i][j]=factor*cot;
gotoxy(col,fila);printf("%d",matriz[i][j]);
col=col+4;
}
fila=fila+1;
col=5;
}
}
void visualizar (int limite)
{
fila=10;
col=38;
gotoxy(35,8);printf("²MATRIZ DE SALIDA²");
for(i=1;i<=limite;i++)
{
for(j=1;j<=limite;j++)
{
gotoxy(col,fila);printf("%d",matriz[i][j]);
VOID INGRESO DE
LA MATRIZ
FUNCION
VISUALIZAR MATRIZ
FUNCIÓN DEL BORDE
PROGRAMACIÓN II
26
col=col+4;
}
fila=fila+1;
col=38;
}
}
void main ()
{
do
{
clrscr();
borde();
textcolor(3);
gotoxy(17,2);printf(" ***MATRIZ DE CUALQUIER FACTOR
INGRESADO***");
gotoxy(22,4);printf("Ingresar el limite = ");scanf("%d",&limt);
gotoxy(22,6);printf("Ingresar el factor = ");scanf("%d",&fact);
ingresar(limt,fact);
visualizar(limt);
gotoxy(25,20);printf("² Desea continuar [1] o [0] para finalizar ² =
");scanf("%d",&op);
}
while(op==1);
getch();
}
CORRIDO DEL PROGRAMA
INICIO DEL PROGRAMA Y DEL
DO
CIERE DEL DO
PROGRAMACIÓN II
27
6.- Diseñe un programa que me permita llenar una matriz de
cualquier orden con valores pares.
ANÁLISIS
Para realizar este programa debemos declarar las librerías principales como son:
#include <conio.h>, # include<stdio.h>,#include<string.h> luego declaramos las
variables que sean necesarias para realizar, en este caso, vamos a utilizar variables
globales para números enteros y para cadenas de caracteres variable tipo chair luego
inicializamos el programa con void main(), la y luego hacemos un blanqueo de pantalla
utilizando clrscr(); después declaramos la posición de filas y columnas para realizar el
programa, luego realizamos una función para el borde para que de mas realce al
programa, luego declaramos la instrucción gotoxy ya que este nos permite
posesionarnos en pantalla; utilizamos también printf y scanf ya que estas variables nos
permiten la entrada y salida de datos; para poder visualizar las el nombre que deseemos
poner en la cadena ya que solo vamos a ingresar datos de tipo chair solo para cadenas,
en este programa utilizamos un “%c” porque este nos permite ver la cadena que estamos
realizando y esta instrucción solo se utiliza para cadenas de caracteres,luego hacemos de
utilizar la sentencia swuitch ya que esta sentencia nos permite realizar un menú de
opciones , luego damos una estructura al programa declarando una opción que diga
Continuar 1 y Finalizar 0 y por ultimo declaramos getch(); ya este instrucción nos
permite que el programa que estamos ejecutando pare y por ultimo cerramos llaves ya
que esta pequeña instrucción es muy importante para que el programa se ejecute; para
poder ejecutar el programa debemos compilar presionando las teclas ALT + F9.
ESTRUCTURA DEL PROGRAMA
# include<stdio.h>
# include<conio.h>
int i,j,op,col,fila,par,limt,matriz[10][10];
void borde()
{
for(i=1;i<=80;i++)
{
gotoxy(i,1);printf("*");
gotoxy(i,24);printf("*");
LIBRERIAS PRINCIPALES
Y VARIABLES DE TIPO
ENTERO
FUNCION DEL BORDE
PROGRAMACIÓN II
28
}
for(i=1;i<=24;i++)
{
gotoxy(1,i);printf("*");
gotoxy(80,i);printf("*");
}
}
void ingresar (int limite)
{
fila=10;
col=10;
par=0;
gotoxy(11,7);printf("²MATRIZ DE INGRESO²");
for(i=1;i<=limite;i++)
{
for(j=1;j<=limite;j++)
{
par=par+2;
matriz[i][j]=par;
gotoxy(col,fila);printf("%d",matriz[i][j]);
col=col+5;
}
fila=fila+1;
col=10;
}
}
void visualizar (int limite)
{
fila=10;
col=42;
gotoxy(43,7);printf("²MATRIZ DE SALIDA²");
for(i=1;i<=limite;i++)
{
for(j=1;j<=limite;j++)
{
gotoxy(col,fila);printf("%d",matriz[i][j]);
col=col+5;
}
col=42;
fila=fila+1;
FUNCION DEL BORDE
FUNCION DE LA
MATRIZ
FUNCION VISUALIZAR
PROGRAMACIÓN II
29
}
}
void main ()
{
do
{
clrscr();
borde();
textcolor(3);
gotoxy(17,2);printf(" ***MATRICES DE CUALQUIER ORDEN CON
VALOR PARES***");
gotoxy(22,4);printf("Ingresar el limite = ");scanf("%d",&limt);
ingresar(limt);
visualizar(limt);
gotoxy(25,20);printf("² Desea continuar [1] o [0] para finalizar ² =
");scanf("%d",&op);
}
while(op==1);
getch();
}
CORRIDO DEL PROGRAMA
INICIO DEL PROGRAMA Y DEL DO
CIERRE DEL DO
PROGRAMACIÓN II
30
7.- Generar una matriz de cualquier orden con valores ceros, a acepción de la
diagonal principal, la misma que se llena con valores unos, recorra la matriz y
guarde los datos de la diagonal principal en un vector y presente los datos en
forma ordenado.
ANÁLISIS
Para realizar este programa debemos declarar las librerías principales como son:
#include <conio.h>, # include<stdio.h>,#include<string.h> luego declaramos las
variables que sean necesarias para realizar, en este caso, vamos a utilizar variables
globales para números enteros y para cadenas de caracteres variable tipo chair luego
inicializamos el programa con void main(), la y luego hacemos un blanqueo de pantalla
utilizando clrscr(); después declaramos la posición de filas y columnas para realizar el
programa, luego realizamos una función para el borde para que de mas realce al
programa, luego declaramos la instrucción gotoxy ya que este nos permite
posesionarnos en pantalla; utilizamos también printf y scanf ya que estas variables nos
permiten la entrada y salida de datos; para poder visualizar las el nombre que deseemos
poner en la cadena ya que solo vamos a ingresar datos de tipo chair solo para cadenas,
en este programa utilizamos un “%c” porque este nos permite ver la cadena que estamos
realizando y esta instrucción solo se utiliza para cadenas de caracteres,luego hacemos de
utilizar la sentencia swuitch ya que esta sentencia nos permite realizar un menú de
opciones , luego damos una estructura al programa declarando una opción que diga
Continuar 1 y Finalizar 0 y por ultimo declaramos getch(); ya este instrucción nos
permite que el programa que estamos ejecutando pare y por ultimo cerramos llaves ya
que esta pequeña instrucción es muy importante para que el programa se ejecute; para
poder ejecutar el programa debemos compilar presionando las teclas ALT + F9.
ESTRUCTURA DEL PROGRAMA
#include<stdio.h>
#include<conio.h>
#include<string.h>
int i,j,x,col,c,h,fil,limt,limite,op,matriz[15][15];vector[15];
LIBRERIAS
PRINCIPALES Y
VARIABLES
ENTERAS
PROGRAMACIÓN II
31
void borde()
{
for(i=1;i<=80;i++)
{
gotoxy(i,1);printf("*");
gotoxy(i,24);printf("*");
}
for(i=1;i<=24;i++)
{
gotoxy(1,i);printf("*");
gotoxy(80,i);printf("*");
}
}
void ingresar (int limite)
{
fil=10;
col=10;
h=1;
gotoxy(8,8);printf("²MATRIZ DE INGRESO²");
for(i=1;i<=limite;i++)
{
for(j=1;j<=limite;j++)
{
if(i==j)
{
c=1;
matriz[i][j]=c;
gotoxy(col,fil);printf("%d",matriz[i][j]);
col=col+3;
}
else
{
c=0;
matriz[i][j]=c;
gotoxy(col,fil);printf("%d",matriz[i][j]);
col=col+3;
}
}
FUNCION DEL BORDE
FUNCION DEL
INGRESO
PROGRAMACIÓN II
32
fil=fil+2;
col=10;
}
}
void visualizar(int limite)
{
col=35;
fil=10;
for(i=1;i<=limite;i++)
{
for(j=1;j<=limite;j++)
{
if(i==j)
{
vector[h]=matriz[i][j];
h=h+1;
gotoxy(35,8);printf("²MATRIZ DIAGONAL PRIV");
gotoxy(col,fil);printf("%d",matriz[i][j]);
col=col+3;
fil=fil+2;
}
}
}
}
void ordenar(int limite)
{
col=65;
fil=10;
for(i=1;i<h;i++)
{
gotoxy(col,fil);printf("%d",vector[i]);
fil=fil+2;
}
}
void main ( )
{
do
{
FUNCION
VISUALIZAR
FUNCION ORDENAR
INICIO DEL PROGRAMA Y
DEL DO
PROGRAMACIÓN II
33
clrscr();
borde();
gotoxy(25,2);printf(" ***MATRICES***");
gotoxy(22,4);printf("Ingresar el limite = ");scanf("%d",&limt);
ingresar(limt);
visualizar(limt);
ordenar(limt);
gotoxy(25,20);printf(" Continuar 1 o Finalizar 0 == > ");scanf("%d",&op);
}
while(op==1);
getch();
}
CORRIDO DEL PROGRAMA
CIERRE DEL DO Y
DEL PROGRAMA
LLAMAMIENTO DE
FUNCIONES
LLAMAMIENTO DE
FUNCIONES
PROGRAMACIÓN II
34
8.- Diseñe un programa utilizando funciones que la una matriz de enteros de n
números y n números y que se muestre en pantalla la matriz transpuesta.
ANÁLISIS
Para este programa debemos declarar las 2 librerías principales como son;#include
<conio.h>,#include<stdio.h> luego iniciamos el programa con declaración de la
variables que vayamos a utilizar pueden ser globales, luego hacemos para iniciar el
programa con una estructura de control para realizar el margen, luego debemos declara
el posicionamiento de filas y columnas, después declaramos una estructura para poder
ingresar los datos de una matriz, una ves realizado la entrada de la matriz debemos
realizar la entrada principal para utilizar la serie del Fibonacci y el factorial, una vez
realizado esta estructura debemos guardarlos en un vector para poder visualizar el
factorial y el fibonacci luego, debemos iniciar con el programa principal con void main
( ),luego declaramos variables que sean necesarias utilizando una definición global en
este caso el int, ya que nos permite ingresar números enteros, después abrimos un lazo
do, que es una Instrucción repetitiva ….mientras la condición sea verdadera, hacemos
un blanqueado de pantalla, y realizamos una estructura para poder visualizar cuantas
filas y columnas vamos a utilizar, luego abrimos un lazo for el cual nos permite hacer
un control, para poder entrar al programa debemos declarar “printf”; para la salida de
datos y “scanf”, para tener una posición en la pantalla debemos utilizar la instrucción
gotoxy(col,fila), utilizamos el while para serrar la condición del do, y finalmente
realizamos un mensaje que diga continuar presione 1 y para finalizar presione 0
cerramos el lazo for para que se repita las veces que sea necesario si deseamos debemos
controlar para que el Fibonacci baya controlado de tal numero al que desea
EJECUCIÓN DEL PROGRAMA
#include<stdio.h>
#include<conio.h>
#include<math.h>
int mat1[10][10],a=1,b=0,c=0;
int i,j,fil=0,k=0,l=0,fil2=0,fact=0,cont=0,x=0; VARIABLES DE TIPO ENTERO
int f,aux=0,op,lim;
void borde ()
LIBRERÍAS PRINCIPALES
PROGRAMACIÓN II
35
FUNCION BORDE
{
clrscr();
for (i=1;i<=80;i++)
{
gotoxy(i,1); printf("6");
gotoxy(i,24); printf("6");
}
for (i=1;i<=24;i++)
{
gotoxy(1,i); printf("6");
gotoxy(80,i); printf("6");
}
}
}
void encero(int m)
{
for(i=1;i<=m;i++)
{
for(j=1;j<=m;j++)
{
mat1[i][j] = 0;
}
}
}
ENCERADO PARA QUE
EMPIEZA EN CERO
PROGRAMACIÓN II
36
void Fibonacci(int m)
{
a=1;
b=0;
c=0;
for(i=1;i<=m;i++)
{
for(j=1;j<=m;j++)
{
if (i==j)
{
c=a+b;
a=b;
b=c;
mat1[i][j] = c;
}
}
}
}
void diago(int a)
{
k=(-1+(5*a));
fact = 1;
fil=4;
for(j=1;j<=a;j++)
{
VARIABLES DE
LA FIBONACCI
TIENE QUE TENER UN
FOR Y IF
FORMULAS DE
LA FIBONNACI
FORMULA PARA
SACAR LA
DIAGONAL
PROGRAMACIÓN II
37
for(x=1;x<=j;x++)
{
fact = fact * x;
}
if (a%2!=0)
{
if(((a/2)+1)==j)
{
aux =fact;
}
else
{
mat1[j][(a+1)-j] = fact;
}
}
else
{
mat1[j][(a+1)-j] = fact;
}
fact=1;
k=k-5;
fil=fil+2;
}
}
void impresion(int a)
{
k=4;
fil=6;
if (a%2==0)
{
for(i=1;i<=a;i++)
{
for(j=1;j<=a;j++)
FORMULA PARA LA
IMPRESION
ESTRUCTURA DEL
PROGRAMA
PROGRAMACIÓN II
38
{
gotoxy(k,f1);printf("%d",mat1[i][j]);
k=k+6;
}
k=3;
fil=fil+2;
}
}
else
{
for(i=1;i<=a;i++)
{
for(j=1;j<=a;j++)
{
if((((a/2)+1)==j) && (((a/2)+1)==i))
{
gotoxy(t-2,fil);printf("%d / %d",mat1[i][j],aux);
}
else
{
gotoxy(t,f1);printf("%d",mat1[i][j]);
}
k=k+6;
}
k=3;
fil=fil+2;
}
}
}
Void impre2 (int a)
{
k=(-1+(5*a)) + 16;
fil=6;
if (a%2==0)
IMPRIMIR
MATRIZ 1
ESTRUCTURA
DE LA
MATRIZ
POSICION DE FILAS
Y COLUMNAS
FÓRMULA PARA LA
IMPRESION2
PROGRAMACIÓN II
39
{
for(i=1;i<=a;i++)
{
for(j=1;j<=a;j++)
{
if (mat1[i][j]!=0)
{
gotoxy(t,fil);printf("%d",mat1[i][j]);
}
k=k+6;
}
k=(-1+(5*a)) + 16;
fil=fil+2;
}
}
else
{
for(i=1;i<=a;i++)
{
for(j=1;j<=a;j++)
{
if(((a/2)+1)==j)
{
if (mat1[i][j]!=0)
{
gotoxy(k-2,fil);printf("%d / %d",mat1[i][j],aux);
}
}
else
{
if (mat1[i][j]!=0)
{
gotoxy(k,fil);printf("%d",mat1[i][j]);
}
}
ESTRUCTURA
DEL FACTORIAL
LIMITE DE LA MATRIZ
PROGRAMACIÓN II
40
k=k+6;
}
k=(-1+(5*a)) + 16;
fil=fil+2;
}
}
}
void main()
{
Do
textcolor(2);
clrscr();
borde();
do
{
gotoxy(55,8); printf(" ");
gotoxy(10,8); printf(" INGRE EL LIMITE: ");scanf("%d",&lim);
gotoxy(55,8); scanf("%d",&f);
}
while (f<1 || f >4);
borde();
gotoxy(12,2); printf(" MATRIZ PRINCIP DIAGONALPRIN y SECU ");
encero(f);
fibonaci(f);
diago(f);
impresion(f);
impre2(f);
REALIZAMOS LA
FUNCION PRINCIPAL
EL MAIN
LLAMAMIENTO DE
LAS FUNCIONES
MENSAJE
PARA
INGRESAR EL
LIMITE
PROGRAMACIÓN II
41
gotoxy(4,23); printf("CONTINUAR 1 O FINALIZAR 0 ==>");
scanf("%d",&op);
}
while (op != 0);
}
CORRIDO DEL PROGRAMA
FIN DEL
PROGRAMA
PROGRAMACIÓN II
42
9.- Diseñe un programa en c que permita obtener el producto
algebraico de dos matrices cuadráticas de n elementos ingresados
desde teclado que se encuentren entre 1 y 23
ANÁLISIS
Para este programa debemos declarar las 2 librerías principales como son;#include
<conio.h>,#include<stdio.h> luego iniciamos el programa con declaración de la
variables que vayamos a utilizar pueden ser globales, luego hacemos para iniciar el
programa con una estructura de control para realizar el margen, luego debemos declara
el posicionamiento de filas y columnas, después declaramos una estructura para poder
ingresar los datos de una matriz, una ves realizado la entrada de la matriz debemos
realizar la entrada principal para utilizar la serie del Fibonacci y el factorial, una vez
realizado esta estructura debemos guardarlos en un vector para poder visualizar el
factorial y el fibonacci luego, debemos iniciar con el programa principal con void main
( ),luego declaramos variables que sean necesarias utilizando una definición global en
este caso el int, ya que nos permite ingresar números enteros, después abrimos un lazo
do, que es una Instrucción repetitiva ….mientras la condición sea verdadera, hacemos
un blanqueado de pantalla, y realizamos una estructura para poder visualizar cuantas
filas y columnas vamos a utilizar, luego abrimos un lazo for el cual nos permite hacer
un control, para poder entrar al programa debemos declarar “printf”; para la salida de
datos y “scanf”, para tener una posición en la pantalla debemos utilizar la instrucción
gotoxy(col,fila), utilizamos el while para serrar la condición del do, y finalmente
realizamos un mensaje que diga continuar presione 1 y para finalizar presione 0
cerramos el lazo for para que se repita las veces que sea necesario si deseamos debemos
controlar para que el Fibonacci baya controlado de tal numero al que desea
ESTRUCTURA DEL PROGRAMA
#include<stdio.h>
#include<conio.h>
int li,col1,c,col2,f,fil1,fil2,m,i,j,op;
int mat1[10][10],mat2[10][10],mat3[10][10];
LIBRERIAS
PRINCIPALES
VARIABLES
ENTERAS
PROGRAMACIÓN II
43
void borde()
{
for(i=1;i<=24;i++)
{
gotoxy(1,i);printf("6");
gotoxy(80,i);printf("%");
}
for(i=1;i<=80;i++)
{
gotoxy(i,2);printf("6");
gotoxy(i,24);printf("%");
}
}
void ingreso()
{
for(i=1;i<=li;i++)
{
for(j=1;j<=li;j++)
{
do
{
gotoxy(c,f);scanf("%d",&mat1[i][j]);
}
while(mat1[i][j]<1 || mat1[i][j]>23);
c=c+5;
}
c=5;
f=f+1;
FUNCION DEL BORDE
FUNCIONES DEL FOR CON I
Y J
INICIO DEL DO
IMPRIMIMOS LA
MATRIZ
FUNCION DE INGRESO
MATRIZ DE 1 A 23
PROGRAMACIÓN II
44
}
for(i=1;i<=li;i++)
{
for(j=1;j<=li;j++)
{
do
{
gotoxy(col1,fil1);scanf("%d",&mat2[i][j]);
}
while(mat2[i][j]<1 || mat2[i][j]>23);
col1=col1+5;
}
col1=30;
fil1=fil1+1;
}
}
void producto()
{
for(i=0;i<=li;i++)
{
for(j=0;j<=li;j++)
{
mat3[i][j]=0;
for(m=0;m<=li;m++)
FUNCION DEL FOR
INICIO DEL SEGUNDO DO
DESDE 1 HASTA EL 23
LA MATRIZ ENCERADA
EN CERO
IMPRESIÓN DE LA
SEGUNDA MATRIZ
POSICION DE FILAS Y
COLUMNAS
FUNCION DEL
PRODUCTO
FUNCION DEL FOR
CON EL I Y J
PROGRAMACIÓN II
45
{
mat3[i][j]=mat3[i][j]+mat1[i][m]*mat2[m][j];
}
}
}
for(i=1;i<=li;i++)
{
for(m=1;m<=li;m++)
{
gotoxy(col2,fil2);printf("%d",mat3[i][m]);
col2=col2+5;
}
col2=47;
fil2=fil2+1;
}
}
void main()
{
do
{
clrscr();
borde();
c=5;
col1=30;
MATRIZ3[I][J]=MATRIZ3[I][J]
+MAT1[I][M]*MAT2[M][J]
FUNCION DEL FOR I Y J
IMPRIMO LA MATRIZ 3
FUNCION MAIN
INICIO DEL DO DEL
MAIN
LLAMAMIENTO
DE FUNCIONES
PROGRAMACIÓN II
46
col2=47;
f=12;
fil1=12;
fil2=12;
gotoxy(19,3);printf("++PRODUCTO ALGEBRAICO DE DOS
MATRIZES++");
gotoxy(10,5);printf("INGRESE EL LIMITE QUE DESEE INGRESAR=
");scanf("%d",&li);
gotoxy(6,7);printf("PRIMERA MATRIZ SEGUNDA MATRIZ
MATRIZ RESULTANTE +++");
ingreso();
producto();
textcolor(2);
gotoxy(3,21);printf("CONTINUAR 1 O FINALIZAR 0== ");scanf("%d",&op);
}
while(op==1);
}
CORRIDO DEL PROGRAMA
IMPRESIÓN DE LAS
FUNCIONES
FIN DEL PROGRAMA
POSICION DE FILAS Y
COLUMNAS
PROGRAMACIÓN II
47
10.- Diseñe un programa utilizando matrices y funciones, que me permita generar
una matriz de n elementos con la serie de fibonacci, y la diagonal secundaria se
llena con el factorial, guarde los datos de la diagonal secundaria en un vector y
presente.
Para este programa debemos declarar las 2 librerías principales como son;#include
<conio.h>,#include<stdio.h> luego iniciamos el programa con declaración de la
variables que vayamos a utilizar pueden ser globales, luego hacemos para iniciar el
programa con una estructura de control para realizar el margen, luego debemos declara
el posicionamiento de filas y columnas, después declaramos una estructura para poder
ingresar los datos de una matriz, una ves realizado la entrada de la matriz debemos
realizar la entrada principal para utilizar la serie del Fibonacci y el factorial, una vez
realizado esta estructura debemos guardarlos en un vector para poder visualizar el
factorial y el fibonacci luego, debemos iniciar con el programa principal con void main
( ),luego declaramos variables que sean necesarias utilizando una definición global en
este caso el int, ya que nos permite ingresar números enteros, después abrimos un lazo
do, que es una Instrucción repetitiva ….mientras la condición sea verdadera, hacemos
un blanqueado de pantalla, y realizamos una estructura para poder visualizar cuantas
filas y columnas vamos a utilizar, luego abrimos un lazo for el cual nos permite hacer
un control, para poder entrar al programa debemos declarar “printf”; para la salida de
datos y “scanf”, para tener una posición en la pantalla debemos utilizar la instrucción
gotoxy(col,fila), utilizamos el while para serrar la condición del do, y finalmente
realizamos un mensaje que diga continuar presione 1 y para finalizar presione 0
cerramos el lazo for para que se repita las veces que sea necesario si deseamos debemos
controlar para que el Fibonacci baya controlado de tal numero al que desea
ESTRUCTURA DEL PROGRAMA
# include<stdio.h>
# include<conio.h>
int d,factorial,fact,c,a,b,i,j,op,ctv:
int col,fila,limt,matriz[10][10],vector[12],h;
LIBRERIAS
PRINCIPALES Y
VARIABLES
ENTERAS
PROGRAMACIÓN II
48
void borde()
{
for(i=1;i<=80;i++)
{
gotoxy(i,1);printf("*");
gotoxy(i,24);printf("*");
}
for(i=1;i<=24;i++)
{
gotoxy(1,i);printf("*");
gotoxy(80,i);printf("*");
}
}
void ingresar (int limite, int factor)
{
gotoxy(2,8);printf("²MATRIZ DE INGRESO²");
fila=10;
col=5;
factorial=1;
h=1;
a=1;
b=0;
d=limite;
for(i=1;i<=limite;i++)
{
for(j=1;j<=limite;j++)
{
if(i==j);
{
c=a+b;
a=b;
b=c;
matriz[i][j]=c;
gotoxy(col,fila);printf("%d",matriz[i][j]);
}
col=col+5;
}
fila=fila+4;
col=5;
FUNCION DEL BORDE
FUNCION DEL
INGRESO
POSICION DE FILAS
Y COLUMNAS
PROGRAMACIÓN II
49
}
fila=10;
d=limite;
for(i=1;i<=limite;i++)
{
for(j=1;j<=limite;j++)
{
if(d==j)
{
factorial=factorial*i;
matriz[i][j]=factorial;
gotoxy(col,fila);printf("%d",matriz[i][j]);
delay(900);
}
col=col+5;
}
fila=fila+4;
d--;
col=5;
}
}
void vector1 (int limite)
{
gotoxy(26,8);printf("² DIGONAL SECUNDARIO ²");
fila=10;
col=40;
d=limite;
for(i=1;i<=limite;i++)
{
for(j=1;j<=limite;j++)
{
if(d==j)
{
vector[h]=matriz[i][j];
h=h+1;
gotoxy(col,fila);printf("%d",matriz[i][j]);
col=col-2;
FUNCION
DEL VECTOR
ESTRUCTURA DEL
PROGRAMA
FIBONACCI
PROGRAMACIÓN II
50
fila=fila+2;
d--;
}
}
}
}
void ordenar(int limite, int factor)
{
gotoxy(54,8);printf("² VECTOR ORDENADO ²");
col=65;
fila=10;
for(i=1;i<h;i++)
{
gotoxy(col,fila);printf("%d",vector[i]);
fila=fila+2;
}
}
void main ()
{
do
{
clrscr();
borde();
textcolor(3);
gotoxy(3,2);printf(" ***GENERACION DE MATRIZ CON FIBONACI
YDIAGONAL SECUNDARIA DE FACTORIAL***");
gotoxy(22,4);printf("Ingresar el limite = ");scanf("%d",&limt);
gotoxy(22,6);printf("Ingresar el factorial = ");scanf("%d",&fact);
ingresar(limt,fact);
vector1(limt);
ordenar(limt,fact);
gotoxy(25,23);printf("Continuar 1 o Finalizar 0 == > ");scanf("%d",&op);
}
while(op==1);
getch();
}
FUNCION DE
ORDENAR
INICIO DEL
PROGRAMA Y DEL DO
FINASLIZAR EL
PROGRAMA
PROGRAMACIÓN II
51
CORRIDO DEL PROGRAMA
PROGRAMACIÓN II
52
11.-Relice un programa utilizando funciones que lea una matriz de enteros de n
números de filas y de n números de columnas y se muestre en pantalla la
matriz transpuesta.
Para este programa debemos declarar las 2 librerías principales como son;#include
<conio.h>,#include<stdio.h> luego iniciamos el programa con declaración de la
variables que vayamos a utilizar pueden ser globales, luego hacemos para iniciar el
programa con una estructura de control para realizar el margen, luego debemos declara
el posicionamiento de filas y columnas, después declaramos una estructura para poder
ingresar los datos de una matriz, una ves realizado la entrada de la matriz debemos
realizar la entrada principal para utilizar la serie del Fibonacci y el factorial, una vez
realizado esta estructura debemos guardarlos en un vector para poder visualizar el
factorial y el fibonacci luego, debemos iniciar con el programa principal con void main
( ),luego declaramos variables que sean necesarias utilizando una definición global en
este caso el int, ya que nos permite ingresar números enteros, después abrimos un lazo
do, que es una Instrucción repetitiva ….mientras la condición sea verdadera, hacemos
un blanqueado de pantalla, y realizamos una estructura para poder visualizar cuantas
filas y columnas vamos a utilizar, luego abrimos un lazo for el cual nos permite hacer
un control, para poder entrar al programa debemos declarar “printf”; para la salida de
datos y “scanf”, para tener una posición en la pantalla debemos utilizar la instrucción
gotoxy(col,fila), utilizamos el while para serrar la condición del do, y finalmente
realizamos un mensaje que diga continuar presione 1 y para finalizar presione 0
cerramos el lazo for para que se repita las veces que sea necesario si deseamos debemos
controlar para que el Fibonacci baya controlado de tal numero al que desea
ESTRUCTURA DEL PROGRAMA
# include<stdio.h>
# include<conio.h>
int matriz1[10][10],matriz2[10][10];
int col,fil,i,j,op,fila,colum,a,b;
void borde()
LIBRERÍAS PRINCIPALES
Y VARIABLES DE TIPO
ENTERA
PROGRAMACIÓN II
53
{
for(i=1;i<=80;i++)
{
gotoxy(i,1);printf("*");
gotoxy(i,24);printf("*");
}
for(i=1;i<=24;i++)
{
gotoxy(1,i);printf("*");
gotoxy(80,i);printf("*");
}
}
void ingresar (int a,int b)
{
gotoxy(2,8);printf("²MATRIZ DE INGRESO²");
fila=10;
col=5;
for(i=1;i<=a;i++)
{
for(j=1;j<=b;j++)
{
gotoxy(col,fila);scanf("%d",&matriz1[i][j]);
matriz2[j][i]=matriz1[i][j];
col=col+3;
}
col=5;
fila=fila+2;
}
}
void traspaso(int a,int b)
{
gotoxy(35,8);printf("²MATRIZ TRANSPUESTA²");
fila=10;
col=39;
for(i=1;i<=b;i++)
{
for(j=1;j<=a;j++)
{
gotoxy(col,fila);printf("%d",matriz2[i][j]);
col=col+3;
}
FUNCION DEL BORDE
FUNCION DEL
INGRESO
ESTRUCTURA DE
LA MATRIZ
TRANSPUESTA
PROGRAMACIÓN II
54
fila=fila+2;
col=39;
}
}
void main ()
{
do
{
clrscr();
borde();
textcolor(3);
gotoxy(25,2);printf(" ***GENERACION DE MATRIZ
TRANSPUESTA***");
gotoxy(22,4);printf("Ingresar las filas = ");scanf("%d",&fil);
gotoxy(22,6);printf("Ingresar las columnas = ");scanf("%d",&colum);
ingresar(fil,colum);
traspaso(fil,colum);
gotoxy(25,23);printf("Continuar 1 o Finalizar = = > ");scanf("%d",&op);
}
while(op==1);
getch();
}
CORRIDO DEL PROGRAMA
INICIO DEL PROGRAMA Y
DEL DO
FINALIZACIÓN DEL
PROGRAMA
POSICION DE FILAS Y
COLUMNAS
LLAMAMIENTO A LAS
FUNCIONES
LLAMAMIENTO A LAS
FUNCIONES
PROGRAMACIÓN II
55
PROGRAMACIÓN II
56
12.-Diseñe un programa utilizando matrices y funciones que me permita generar
una matriz con ceros solo las diagonales principal y secundaria y la demás
posiciones muestren vacías.
#include<conio.h>
#include<stdio.h>
int i,j,c,limite,fila,limt,col,matriz[15][15],op,d;
void borde()
{
for(i=1;i<=80;i++)
{
gotoxy(i,1);printf("*");
gotoxy(i,24);printf("*");
}
for(i=1;i<=24;i++)
{
gotoxy(1,i);printf("*");
gotoxy(80,i);printf("*");
}
}
void principal(int limite)
{
col=8;
fila=10;
for(i=1;i<=limite;i++)
{
for(j=1;j<=limite;j++)
{
if(i==j)
{
c=0;
matriz[i][j]=0;
gotoxy(col,fila);printf("%d",matriz[i][j]);
}
col=col+3;
}
fila=fila+2;
col=8;
LIBRERIAS
PRINCIPALES Y
VARIABLES DE
TIPO ENTERA
FUNCION DEL
BORDE
FUNCION DE LA
MATRIZ
PRINCIPAL
POSICION DE FILAS Y
COLUMNAS
PROGRAMACIÓN II
57
}
}
void diagonal(int limite)
{
fila=10;
d=limite;
for(i=1;i<=limite;i++)
{
for(j=1;j<=limite;j++)
{
if(d==j)
{
c=0;
matriz[i][j]=0;
gotoxy(col,fila);printf("%d",matriz[i][j]);
}
col=col+3;
}
fila=fila+2;
d--;
col=8;
}
}
void main ()
{
do
{
clrscr();
borde();
textcolor(5);
gotoxy(27,2);cprintf(" ***MATRIZ DE CEROS***");
textcolor(9);
gotoxy(3,8);cprintf(" ² MATRIZ PRINCIPAL Y DIAGONAL ²");
gotoxy(22,4);printf("Ingresar el limite = ");scanf("%d",&limt);
principal(limt);
diagonal(limt);
textcolor(2);
gotoxy(27,23);cprintf("Continuar 1 0 finalizar 0== >");scanf("%d",&op);
}
FUNCION DE
LA DIAGONAL
DE LA MATRIZ
INICIO DEL PROGRAMA
Y DEL DO
LLAMAMIENTO A
LAS FUNCIONES
PROGRAMACIÓN II
58
while(op==1);
getch();
}
CORRIDO DEL PROGRAMA
FINALIZAZCION
DEL PROGRAMA
PROGRAMACIÓN II
59
13.-Diseñe un programa utilizando matrices y funciones que me permita ingresar
n términos en una matriz entre 5 y 35 encontrar todo los valores impares
ingresado en la matriz, pasar los datos a un vector y presentar dicho vector
ordenado ascendente y descendente, el proceso se repite n veces.
Para este programa debemos declarar las 2 librerías principales como son;#include
<conio.h>,#include<stdio.h> luego iniciamos el programa con declaración de la
variables que vayamos a utilizar pueden ser globales, luego hacemos para iniciar el
programa con una estructura de control para realizar el margen, luego debemos declara
el posicionamiento de filas y columnas, después declaramos una estructura para poder
ingresar los datos de una matriz, una ves realizado la entrada de la matriz debemos
realizar la entrada principal para utilizar la serie del Fibonacci y el factorial, una vez
realizado esta estructura debemos guardarlos en un vector para poder visualizar el
factorial y el fibonacci luego, debemos iniciar con el programa principal con void main
( ),luego declaramos variables que sean necesarias utilizando una definición global en
este caso el int, ya que nos permite ingresar números enteros, después abrimos un lazo
do, que es una Instrucción repetitiva ….mientras la condición sea verdadera, hacemos
un blanqueado de pantalla, y realizamos una estructura para poder visualizar cuantas
filas y columnas vamos a utilizar, luego abrimos un lazo for el cual nos permite hacer
un control, para poder entrar al programa debemos declarar “printf”; para la salida de
datos y “scanf”, para tener una posición en la pantalla debemos utilizar la instrucción
gotoxy(col,fila), utilizamos el while para serrar la condición del do, y finalmente
realizamos un mensaje que diga continuar presione 1 y para finalizar presione 0
cerramos el lazo for para que se repita las veces que sea necesario si deseamos debemos
controlar para que el Fibonacci baya controlado de tal numero al que desea
ESTRUCTURA DEL PROGRAMA
#include<conio.h>
#include<stdio.h>
int vector[12],matriz[12][12],limit,i,j,op,fila,col,v,aux;
void borde ()
LIBRERIAS
PRINCIPALES Y
VARIABLES DE TIPO
ENTERA
PROGRAMACIÓN II
60
{
for (i=1;i<=80;i++)
{
gotoxy(i,1); printf("*");
gotoxy(i,24);printf("*");
}
for (i=1;i<=24;i++)
{
gotoxy(1,i); printf("*");
gotoxy(80,i);printf("*");
}
}
void ingreso(int limite)
{
fila=10;
col=9;
for(i=1;i<=limite;i++)
{
for(j=1;j<=limite;j++)
{
do
{
gotoxy(col,fila);printf(" ");
gotoxy(col,fila);scanf("%d",&matriz[i][j]);
}
while(matriz[i][j]<5||matriz[i][j]>35);
col=col+4;
}
col=9;
fila=fila+2;
}
}
void impar(int limite)
{
v=1;
col=35;
fila=10;
for(i=1;i<=limite;i++)
{
for(j=1;j<=limite;j++)
{
if(matriz[i][j]%2==1)
FUNCION DEL BORDE
FUNCION DEL
INGRESO
FUNCION DEL IMPAR
PROGRAMACIÓN II
61
{
vector[v]=matriz[i][j];
gotoxy(col,fila);printf("%d",vector[v]);
v=v+1;
fila=fila+1;
}
col=35;
}
}
}
void asendente(int limite)
{
col=55;
fila=10;
for(i=1;i<v;i++)
{
for(j=1;j<v;j++)
{
if(vector[i]<vector[j])
{
aux=vector[i];
vector[i]=vector[j];
vector[j]=aux;
}
}
}
}
impresion1 (limite)
{
for(i=1;i<v;i++)
{
gotoxy(col,fila);printf("%d",vector[i]);
fila=fila+1;
}
}
FUNCION ASCENDENTE
IMPRESIÓN
ASCENDENTE
MATRIZ A UN
NUEVO VECTOR
PROGRAMACIÓN II
62
void desendente(int limite)
{
col=70;
fila=10;
for(i=1;i<v;i++)
{
for(j=1;j<v;j++)
{
if(vector[i]>vector[j])
{
aux=vector[i];
vector[i]=vector[j];
vector[j]=aux;
}
}
}
}
impresion2 (limite)
{
for(i=1;i<v;i++)
{
gotoxy(col,fila);printf("%d",vector[i]);
fila=fila+1;
}
}
void main()
{
do
{
clrscr();
borde();
gotoxy(20,3);printf("*** ENCONTRAR NUMEROS IMPARES ***");
gotoxy(20,5); printf(" Ingrese un numero : ");scanf("%d",&limit);
gotoxy(5,7); printf("² MATRIZ DE INGRESO ²");
gotoxy(29,7); printf("² VECT DESORDEN ²");
gotoxy(49,7); printf("² VECT ASEND ²");
gotoxy(65,7); printf("² VECT DESEN ²");
ingreso(limit);
impar(limit);
asendente(limit);
impresion1(limit);
desendente(limit);
IMPRESIÓN DEL
DESCENDENTE
FUNCION DESCENDENTE
INICIO DEL PROGRAMA Y
DEL DO
LLAMAMIENTO DE
LAS FUNCIONES
MENSAJES DEL
PROGRAMA
PROGRAMACIÓN II
63
impresion2(limit);
gotoxy(30,23);printf("Continuar 1 o Finalizar = => ");scanf("%d",&op);
}
while(op==1);
getch();
}
CORRIDO DEL PROGRAMA
CIERRE DEL
PROGRAMA
PROGRAMACIÓN II
64
14.- Diseñe un programa utilizando matrices y funciones que me permita generar
una matriz con cualquier factor ingresado desde teclado, recorre la matriz y
encontrar todas las posiciones pares ya sea en filas y en columnas y guarde los
datos en un vector.
Para este programa debemos declarar las 2 librerías principales como son;#include
<conio.h>,#include<stdio.h> luego iniciamos el programa con declaración de la
variables que vayamos a utilizar pueden ser globales, luego hacemos para iniciar el
programa con una estructura de control para realizar el margen, luego debemos declara
el posicionamiento de filas y columnas, después declaramos una estructura para poder
ingresar los datos de una matriz, una ves realizado la entrada de la matriz debemos
realizar la entrada principal para utilizar la serie del Fibonacci y el factorial, una vez
realizado esta estructura debemos guardarlos en un vector para poder visualizar el
factorial y el fibonacci luego, debemos iniciar con el programa principal con void main
( ),luego declaramos variables que sean necesarias utilizando una definición global en
este caso el int, ya que nos permite ingresar números enteros, después abrimos un lazo
do, que es una Instrucción repetitiva ….mientras la condición sea verdadera, hacemos
un blanqueado de pantalla, y realizamos una estructura para poder visualizar cuantas
filas y columnas vamos a utilizar, luego abrimos un lazo for el cual nos permite hacer
un control, para poder entrar al programa debemos declarar “printf”; para la salida de
datos y “scanf”, para tener una posición en la pantalla debemos utilizar la instrucción
gotoxy(col,fila), utilizamos el while para serrar la condición del do, y finalmente
realizamos un mensaje que diga continuar presione 1 y para finalizar presione 0
cerramos el lazo for para que se repita las veces que sea necesario si deseamos debemos
controlar para que el Fibonacci baya controlado de tal numero al que desea
ESTRUCTURA DEL PROGRAMA
# include<stdio.h>
# include<conio.h>
int cot,fact,i,j,op,col,fila,limt,matriz[10][10],vector[20],cotvector;
LIBRERIAS
PRINCIPALES
Y
VARIABLES
DE TIPO
ENTERO
PROGRAMACIÓN II
65
void borde()
{
for(i=1;i<=80;i++)
{
gotoxy(i,1);printf("*");
gotoxy(i,24);printf("*");
}
for(i=1;i<=24;i++)
{
gotoxy(1,i);printf("*");
gotoxy(80,i);printf("*");
}
}
void ingresar (int limite, int factor)
{
fila=10;
col=5;
cot=0;
cotvector=0;
gotoxy(8,8);printf("²MATRIZ DE INGRESO²");
for(i=1;i<=limite;i++)
{
for(j=1;j<=limite;j++)
{
cot=cot+1;
matriz[i][j]=factor*cot;
gotoxy(col,fila);printf("%d",matriz[i][j]);
if((i%2==0)|| (j%2==0))
{
cotvector=cotvector+1;
vector[cotvector]=matriz[i][j];
}
col=col+4;
}
fila=fila+1;
col=5;
}
}
FUNCION DEL
BORDE
FUNCION DEL
INGRESO
POSICION DE FILAS Y
COLUMNAS
PROGRAMACIÓN II
66
void impresion (int limite)
{
fila=10;
col=38;
gotoxy(35,8);printf("²MATRIZ DE POSICIONES PARES²");
for(i=1;i<=cotvector;i++)
{
gotoxy(col,fila);printf("%d",vector[i]);
fila=fila+1;
col=38;
}
}
void main ()
{
do
{
clrscr();
borde();
textcolor(7);
gotoxy(10,2);printf(" ***PROGRAMA PARA ENCONTRAR LAS
POSICIONES PARES DE UNA MATRIZ* **");
gotoxy(22,4);printf("Ingresar el limite = ");scanf("%d",&limt);
gotoxy(22,6);printf("Ingresar el factor = ");scanf("%d",&fact);
ingresar(limt,fact);
impresion(limt);
gotoxy(30,23);printf("Continuar 1 o Finalizar = => ");scanf("%d",&op);
}
while(op==1);
getch();
}
INICIO DEL PROGRAMA Y
DEL DO
FUNCION
DE LA
IMPRESIÓN
FINALIZACION
DEL PROGRAMA
PROGRAMACIÓN II
67
CORRIDO DEL PROGRAMA
PROGRAMACIÓN II
68
BIBLIOGRAFIA
Http://es.wikipedia.org/wiki/Vector_(inform%C3%a1tica)
Http://www.zator.com/Cpp/E4_3.htm
http://www.atc.us.es/asignaturas/fi/curso_de_c/Array_bidimensional_o_ma
triz.html
http://www.educared.org/wikiEducared/%C2%BFQu%C3%A9_es_u
na_matriz%3F.html
http://ronnyml.wordpress.com/2009/07/04/vectores-matrices-y-
punteros-en-c/