BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
Revista digital
1. UNIVERSIDAD TÉCNICA
DE AMBATO
FACULTAD DE CIENCIAS HUMANAS Y DE LA
EDUCACIÓN
LIC. EN INFORMÁTICA
CUADERNILLO DE PROGRAMACIÓN DEL
PRIMER PARCIAL.
III SEMESTRE “U”
Maricela Chimbolema.
LIC. WILMA GAVILÁNEZ
2011
2. EL LENGUAJE C
Permite el uso de matrices, es decir, arrays bidimensionales. En general, todo lo que
vamos a estudiar en esta sección se puede extrapolar a arrays incluso n-dimensionales (o
tensores), aunque en la práctica el uso de arrays con más de 2 dimensiones no es muy
común.
El C++ es un derivado del mítico lenguaje C. Este lenguaje apareció en la década de los
70 de la mano de Dennis Ritchie para la programación en sistemas operativos Unix (el
mejor ejemplo actual de un sistema operativo Unix es GNU/Linux), el cual surgió como
un lenguaje generalista recomendado sobre todo para programadores ya expertos, ya
que no llevaba implementadas muchas funciones que hacen a un lenguaje más
comprensible. Sin embargo, aunque esto en un principio puede convertirse en un
problema, en la práctica es su mayor virtud,ya que permite al programador un mayor
control sobre lo que está haciendo..
MATRIZ
Una matriz es un arraymultidimensional. Se definen igual que los vectores excepto
que se requiere un índice por cada dimensión. Su sintaxis es la siguiente:
VECTOR
Un vector, también llamado array(arreglo) unidimensional, es una estructura de datos
que permite agrupar elementos del mismo tipo y almacenarlos en un solo bloque de
memoria juntos, uno despues de otro. A este grupo de elementos se les identifica por un
mismo nombre y la posición en la que se encuentran. La primera posición del array es la
posicon 0.
La instrucción for es la única instrucción que realmente difiere de las instrucciones for
conocidas de otros lenguajes. Todas las otras instrucciones más o menos difieren
solamente en la sintaxis. Lo que sigue son dos bloques exactamente equivalentes en su
funcionalidad. Uno usa el bucle while mientras que el otro usa la variante for:
3. EJERCICIOS DE APLICACIÒN REALIZADOS EN CLASES
EJERCICIO #1
/*Diseñe un programa que me permita ingresar n elementos en una matriz cuadrática*/
ANALISIS
Primero escribo las Librerías.
Declaro Variables para usarlas en el programa
Uso un ciclo DO{}WHILE();para realizar un Nuevo programa cada vez que el usuario lo
requiera.
Realizo el Diseño de pantalla.
Posteriormente para realizar el Ingreso de Matrices necesito leer un límite propuesto por el
usuario que en este caso será (lim).
A lo posterior se usará dos FOR para el ingreso de la Matriz, i-> para fila y j-> para
columna los que serán limitados hasta que i<=lim de igual modo j.
A continuación se usaran dos FOR mas para imprimir la matriz, de igual modo se lo
limitara de la misma manera.
#include<conio.h>
#include<stdio.h>
void main()
{
/*Declaración de variables a usar en el programa*/
int op,b,c,i,j,col,fila,lim,matriz1[10][10];
do{
clrscr();
textcolor(125);
5. textcolor(38);
col=15;fila=10;
for(i=1;i<=lim;i++)
{
for(j=1;j<=lim;j++)
{
gotoxy(col,fila);cprintf("%d",matriz1[i][j]);
col=col+5;
}
fila=fila+3;
col=15;
}
textcolor(28);
gotoxy(5,20);cprintf("Presione 1 si desea continuar caso contrario 0 para salir==>
");scanf("%d",&op);
}while(op==1);
}
Pantallas de lo que va realizando el programa:
1) Aquí vamos a ingresar el limite para eso declaramos al limite de tipo entero para
después ir rellenando la Matriz dependiendo el limite que vayamos ingresando.
6. EJERCICIO #2
/*Diseñe un programa que me permita ingresar n elementos de cualquier factor
ingresados desde teclado que se encuentre dicho factor entre 2 y 9, la matriz
es de orden cuadrática se visualiza la entrada y la salida*/
ANALISIS
Primero escribo las Librerías.
Declaro Variables para usarlas en el programa
Uso un ciclo DO{}WHILE(); para realizar un Nuevo programa cada vez que el usuario lo
requiera.
Realizo el diseño de pantalla.
Posteriormente para generar la matrices necesito leer un factor y un límite propuesto por el
usuario que en este caso será (fac) y (lim).
A lo posterior se usará dos FOR para el generar de la matriz además se usara un contador
(x) inicializado en 1 que se irá incrementando cada vez que j se incremente i-> para fila y j-
> para columna los que serán limitados hasta que i<=lim de igual modo j.
A continuación se usaran dos FOR mas para imprimir la matriz, de igual modo se lo
limitara de la misma manera.
7. #include<conio.h>
#include<stdio.h>
void main()
{
/*Declaración de variables a usar en el programa*/
int i,j,a,matriz[10][10],col,fila,lim,fac,x,m;
do{
clrscr();
textcolor(125);
for(i=4;i<=76;i++)
{
gotoxy(i,2);cprintf("*");
gotoxy(i,24);cprintf("*");
}
for(i=3;i<=23;i++)
{
gotoxy(3,i);cprintf("*");
gotoxy(77,i);cprintf("*");
}
do{
textcolor(35);
gotoxy(10,5);cprintf("Ingrese el Factor==> ");scanf("%d",&fac);
9. col=col+5;x=x+1;
}
fila=fila+3;
col=55;
}
textcolor(42);
gotoxy(18,23);cprintf("<==Presione 1 si desea continuar 0 para salir==>
");scanf("%d",&a);
}while(a==1);
}
Pantallas de lo que va realizando el programa:
10.
11. EJERCICIO #3
/*Diseñe un programa que me permita ingresar n números enteros en una matriz cuadrática
recorra sus posiciones y obtenga los datos de su diagonal principal*/
ANALISIS
Primero escribo las Librerías.
Declaro Variables para usarlas en el programa
Uso un ciclo DO{}WHILE(); para realizar un Nuevo programa cada vez que el usuario lo
requiera.
Realizo el diseño de pantalla.
Posteriormente para realizar el ingreso de matrices necesito leer un límite propuesto por el
usuario que en este caso será (lim).
A lo posterior se usará dos FOR para el ingreso de la matriz i-> para fila y j-> para columna
los que serán limitados hasta que i<=lim de igual modo j.
A continuación se usaran dos FOR mas para imprimir la matriz, de igual modo se lo
limitara de la misma manera.
Luego se usara otros dos FOR para imprimir la diagonal principal y esto se logra gracias a un
IF() en donde se compara i==j para poder imprimir la Diagonal Principal
#include<conio.h>
#include<stdio.h>
/*Declaración de variables a usar en el programa*/
int op,i,j,col,fila,lim,num,dnp[10],b,matrize[10][10],matrizs[10][10];
void main()
{
do{
clrscr();
textcolor(130);
14. gotoxy(col+=5,fila);cprintf("%d",matrize[i][j]);
}
else
{
gotoxy(col+=5,fila);cprintf(" ");
}
}
fila=fila+3;
col=40;
}
textcolor(28);
gotoxy(18,23);cprintf("Presione 1 si desea continuar 0 para salir==> ");scanf("%d",&op);
}while(op==1);
}
Pantallas de lo que va realizando el programa:
15.
16. EJERCICIO #4
/* Diseñe un Programa que me permita generar multiplos de cualquier factor
solo en las diagonales principal y secundaria las demás posiciones se llenen
con las posiciones 0. */
#include<conio.h>
#include<stdio.h>
void main()
{
/*Declaración de variables a usar en el programa*/
int lim,col,fila,op,a,b,c,i,j,matriz[10][10],fac1,fac2;
do{
clrscr();
textcolor(35);
for(i=3;i<=77;i++)
{
gotoxy(i,2);cprintf("*");
gotoxy(i,23);cprintf("*");
}
for(i=3;i<=22;i++)
{
gotoxy(2,i);cprintf("*");
gotoxy(78,i);cprintf("*");
17. }
textcolor(62);
gotoxy(10,4);cprintf("Ingrese el L¡mite==> ");scanf("%d",&lim);
textcolor(63);
gotoxy(10,6);cprintf("Ingrese el Factor de la Diagonal Principal==> ");scanf("%d",&fac1);
gotoxy(10,7);cprintf("Ingrese el Factor de la Diagonal Secundaria==>
");scanf("%d",&fac2);
col=30;fila=9;
textcolor(43);
c=1+(lim/2);a=0;
for(i=1;i<=lim;i++)
{
for(j=1;j<=lim;j++)
{
a=col;
if(i==j)
{
if(i==c)
{
matriz[i][j]=fac1*i;
gotoxy(a-=2,fila);cprintf("%d",matriz[i][j]);
}
else
19. gotoxy(a+=1,fila);cprintf("%d",matriz[i][b]);
b++;a=a-6;fila=fila+3;
}
else
{
matriz[i][b]=fac2*b;
gotoxy(a,fila);cprintf("%d",matriz[i][b]);
b++;a=a-5;fila=fila+3;
}
}
textcolor(44);
gotoxy(4,21);cprintf("Desea continuar presione 1 caso contrario 0 para salir
");scanf("%d",&op);
}while(op==1);
}
Pantallas de lo que va realizando el programa:
20.
21. EJERCICIO #5
/*Diseñe un programa que me permita ingresar n elementos enteros en una matriz
cuadráticalos mismos que deben estar en un rango desde 5 hasta 45 ,recorra la matriz y
encuentre todos los elementos impares de la matriz y guardelos en un vector el mismo
quese debe presentar en forma ordenada */
ANALISIS
Primero escribo las Librerías.
Declaro Variables para usarlas en el programa
Uso un ciclo DO{}WHILE(); para realizar un Nuevo programa cada vez que el usuario lo
requiera.
Realizo el diseño de pantalla.
Posteriormente para realizar el ingreso de matrices necesito leer un límite propuesto por el
usuario que en este caso será (lim).
A lo posterior se usará dos FOR para el ingreso de la matriz i-> para fila y j-> para columna
los que serán limitados hasta que i<=lim de igual modo j, dentro de este se usara un
DO{}WHILE(); para condicionar que los elementos sean entre 5 y 45.
A continuación se usaran dos FOR mas para a cada elemento de la matriz dividir para 2 y
saber si es par o impar, si es impar se procederá a guardar en un vector.
Para ordenar el vector se usa 3 auxiliares en donde ira intercambiando los valores y
ordenando el vector.
#include<conio.h>
#include<stdio.h>
void main()
{
/*Declaración de variables a usar en el programa*/
int lim,a,b,c,i,j,col,fila,matriz[10][10],vec[20],op;
25. for(i=1;i<=a;i++)
{
gotoxy(col,fila+=3);cprintf("%d",vec[i]);
if(fila>20)
{
col=col+3;
fila=7;
}
}
textcolor(356);
textcolor(11);
gotoxy(5,22);cprintf("Desea continuar presione 1 caso contrario 0 para salir
");scanf("%d",&op);
}while(op==1);
}
Pantallas de lo que va realizando el programa:
26. EJERCICIO #6
/* Diseñe un programa utilizando matrices y funciones que permita generar n elementos en
una
matriz cuadratica, con valores pares en la diagonal principal, valores impares en la diagonal
secundaria y las demas posiciones con valores 0*/
ANALISIS
Primero escribo las Librerías.
Declaro Variables para usarlas en el programa
Uso un ciclo DO{}WHILE(); para realizar un Nuevo programa cada vez que el usuario lo
requiera.
Realizo el diseño de pantalla.
Posteriormente para generar las matrices necesito leer un límite y 2 factores propuestos por
el usuario que en este caso será (lim), (fac1), (fac2).
A lo posterior se usará dos FOR para el ingreso de la matriz i-> para fila y j-> para columna
los que serán limitados hasta que i<=lim de igual modo j.
Para la Diagonal Principal si i==j genera los múltiplos del fac1 caso contrario imprimo 0.
27. Para la Diagonal Secundaria [i][b] es igual a los múltiplos del fac2.
A continuación se usaran dos FOR mas para imprimir la matriz, de igual modo se lo
limitara de la misma manera.
#include<stdio.h>
#include<conio.h>
/*Declaración de variables a usar en el programa*/
int matriz[20][20],lim,a,b,c,d,op,col,fila,i,j;
void borde()
{
for(i=3;i<=77;i++)
{
gotoxy(i,2);printf("Í");
gotoxy(i,24);printf("Í");
}
for(i=3;i<=23;i++)
{
gotoxy(3,i);printf("º");
gotoxy(78,i);printf("º");
}
}
void par(int lim)
{
30. clrscr();
borde();
gotoxy(10,6);printf("Ingrese el L¡mite ==> ");scanf("%d",&lim);
par(lim);
impar(lim);
gotoxy(10,23);printf("Presione I si desea continuar 0 para salir==> ");scanf("%d",&op);
}while(op==1);
}
Pantallas de lo que va realizando el programa: