Revista digital

379 views

Published on

LENGUAJE DE PROGRAMACION II

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
379
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
20
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Revista digital

  1. 1. UNIVERSIDAD TÉCNICA DE AMBATOFACULTAD 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. 2. EL LENGUAJE CPermite el uso de matrices, es decir, arrays bidimensionales. En general, todo lo quevamos a estudiar en esta sección se puede extrapolar a arrays incluso n-dimensionales (otensores), aunque en la práctica el uso de arrays con más de 2 dimensiones no es muycomún.El C++ es un derivado del mítico lenguaje C. Este lenguaje apareció en la década de los70 de la mano de Dennis Ritchie para la programación en sistemas operativos Unix (elmejor ejemplo actual de un sistema operativo Unix es GNU/Linux), el cual surgió comoun lenguaje generalista recomendado sobre todo para programadores ya expertos, yaque no llevaba implementadas muchas funciones que hacen a un lenguaje máscomprensible. Sin embargo, aunque esto en un principio puede convertirse en unproblema, en la práctica es su mayor virtud,ya que permite al programador un mayorcontrol sobre lo que está haciendo..MATRIZUna matriz es un arraymultidimensional. Se definen igual que los vectores exceptoque se requiere un índice por cada dimensión. Su sintaxis es la siguiente:VECTORUn vector, también llamado array(arreglo) unidimensional, es una estructura de datosque permite agrupar elementos del mismo tipo y almacenarlos en un solo bloque dememoria juntos, uno despues de otro. A este grupo de elementos se les identifica por unmismo nombre y la posición en la que se encuentran. La primera posición del array es laposicon 0.La instrucción for es la única instrucción que realmente difiere de las instrucciones forconocidas de otros lenguajes. Todas las otras instrucciones más o menos difierensolamente en la sintaxis. Lo que sigue son dos bloques exactamente equivalentes en sufuncionalidad. Uno usa el bucle while mientras que el otro usa la variante for:
  3. 3. EJERCICIOS DE APLICACIÒN REALIZADOS EN CLASESEJERCICIO #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);
  4. 4. for(i=1;i<=80;i++){ gotoxy(i,1);cprintf("_"); gotoxy(i,24);cprintf("_");}for(i=1;i<=24;i++){ gotoxy(1,i);cprintf("_"); gotoxy(80,i);cprintf("_");}textcolor(35);gotoxy(15,5);cprintf("Ingrese el L¡mite==> ");scanf("%d",&lim);col=15;fila=10;b=14;c=9;for(i=1;i<=lim;i++){ for(j=1;j<=lim;j++) { gotoxy(col,fila);scanf("%d",&matriz1[i][j]); col=col+5; } fila=fila+3; col=15;b=14;}
  5. 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. 6. EJERCICIO #2/*Diseñe un programa que me permita ingresar n elementos de cualquier factoringresados desde teclado que se encuentre dicho factor entre 2 y 9, la matrizes 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. 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);
  8. 8. }while(fac<1 && fac>10);gotoxy(10,7);cprintf("Ingrese el L¡mite de la Matriz==> ");scanf("%d",&lim);col=15;fila=10;x=1;textcolor(125);for(i=1;i<=lim;i++){ for(j=1;j<=lim;j++) { matriz[i][j]=fac*x; gotoxy(col,fila);cprintf("%d",matriz[i][j]); col=col+5;x=x+1; } fila=fila+3; col=15;}col=55;fila=10;x=1;textcolor(125);for(i=1;i<=lim;i++){ for(j=1;j<=lim;j++) { matriz[i][j]=fac*x; gotoxy(col,fila);cprintf("%d",matriz[i][j]);
  9. 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. 10. EJERCICIO #3/*Diseñe un programa que me permita ingresar n números enteros en una matriz cuadráticarecorra 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 unIF() 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);
  11. 11. for(i=3;i<=77;i++){ gotoxy(i,2);cprintf("@"); gotoxy(i,24);cprintf("@");}for(i=3;i<=23;i++){ gotoxy(2,i);cprintf("@"); gotoxy(78,i);cprintf("@");}gotoxy(2,2);cprintf("@");gotoxy(2,24);cprintf("@");gotoxy(77,2);cprintf("@");gotoxy(77,24);cprintf("@");do{ textcolor(45); gotoxy(15,5);cprintf("Ingrese el L¡mite==> ");scanf("%d",&lim);}while(lim<=8&&lim>=58);col=5;fila=10;for(i=1;i<=lim;i++){ for(j=1;j<=lim;j++) {
  12. 12. gotoxy(col+=3,fila);scanf("%d",&matrize[i][j]); } fila=fila+3; col=5;}col=25;fila=10;for(i=1;i<=lim;i++){ for(j=1;j<=lim;j++) { gotoxy(col+=3,fila);printf("%d",matrize[i][j]); } fila=fila+3; col=25;}textcolor(35);col=40;fila=10;for(i=1;i<=lim;i++){ for(j=1;j<=lim;j++) { if(i==j) {
  13. 13. 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:
  14. 14. EJERCICIO #4/* Diseñe un Programa que me permita generar multiplos de cualquier factorsolo en las diagonales principal y secundaria las demás posiciones se llenencon 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("*");
  15. 15. } 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
  16. 16. { matriz[i][j]=fac1*i; gotoxy(col,fila);cprintf("%d",matriz[i][j]); } } else { gotoxy(col,fila);printf("0"); } a=col; col=col+5; } fila=fila+3; col=30;}b=1;fila=9;textcolor(90);c=1+(lim/2);for(i=lim;i>=1;i--){ if(i==c) { matriz[i][b]=fac2*b;
  17. 17. 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:
  18. 18. EJERCICIO #5/*Diseñe un programa que me permita ingresar n elementos enteros en una matrizcuadráticalos mismos que deben estar en un rango desde 5 hasta 45 ,recorra la matriz yencuentre todos los elementos impares de la matriz y guardelos en un vector el mismoquese 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;
  19. 19. do{clrscr();textcolor(125);for(i=3;i<=77;i++){ gotoxy(i,2);cprintf("^"); gotoxy(i,24);cprintf("^");}for(i=3;i<=23;i++){ gotoxy(2,i);cprintf("|"); gotoxy(78,i);cprintf("|");}textcolor(25);gotoxy(15,5);cprintf("Ingrese el L¡mite==> ");scanf("%d",&lim);col=10;fila=10;textcolor(38);gotoxy(5,8);cprintf("Ingrese la Matriz");for(i=1;i<=lim;i++){ for(j=1;j<=lim;j++) { do{
  20. 20. gotoxy(col,fila);printf(" "); gotoxy(col,fila);scanf("%d",&matriz[i][j]); }while(matriz[i][j]<5||matriz[i][j]>45); col=col+3; } fila=fila+3; col=10;}a=1;col=35;fila=10;textcolor(63);gotoxy(30,8);cprintf("Resultado");for(i=1;i<=lim;i++){ for(j=1;j<=lim;j++) { if(matriz[i][j]%2==0) { } else { vec[a]=matriz[i][j]; gotoxy(col,fila);cprintf("%d",vec[a]); a=a+1;fila=fila+3;
  21. 21. } if(fila>22) { col=col+3; fila=10; } }}for(i=1;i<=a;i++){ for(j=1;j<=a;j++) { if(vec[i]<vec[j]) { b=vec[i]; vec[i]=vec[j]; vec[j]=b; } }}fila=7;col=50;textcolor(44);gotoxy(50,8);cprintf("Vector Ordenado");
  22. 22. 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:
  23. 23. EJERCICIO #6/* Diseñe un programa utilizando matrices y funciones que permita generar n elementos enunamatriz cuadratica, con valores pares en la diagonal principal, valores impares en la diagonalsecundaria 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.
  24. 24. 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){
  25. 25. a=2;col=10;fila=10; for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { c=col; if(i==j) { matriz[i][j]=a*i; gotoxy(col,fila);printf("%d",matriz[i][j]); } else { matriz[i][j]=0; gotoxy(col,fila);printf("%d",matriz[i][j]); } col=col+5; } fila=fila+3; col=10; }}
  26. 26. void impar(int lim){ j=lim;a=1;b=1; fila=10;d=1+(lim/2); for(i=1;i<=lim;i++) { matriz[i][j]=a*b; if(i==d) { op=c; gotoxy(op-=2,fila);printf("%d",matriz[i][j]); } else { gotoxy(c,fila);printf("%d",matriz[i][j]); } a=a+2;j--; c=c-5;fila=fila+3; }}void main(){ do{
  27. 27. 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:

×