FACULTAD DE CIENCIAS HUMANAS Y DE LA EDUCACION CARRERA DE DOCENCIA EN INFORMATICA PROGRAMACION II ALEX TOMAREMA PATRICIO YUGZA IVAN VILLACIS
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: Este programa permite ingresar una serie de letras las cuales se imprimen las vocales en un vector en forma ascendente y otra en un nuevo vector que imprime en forma descendente. #include<stdio.h> #include<conio.h> Declaración de variables int limite,i,fila,op; char nombre[15]; void main() { do Lazo do while para ejecutar mientras el usuario presione 1 { clrscr(); fila=8; for(i=1;i<=80;i++) { gotoxy(i,1);printf("*"); gotoxy(i,24);printf("*"); Funcion para colocar borde en pantalla } 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(); Lineas de codigo para ingresar una gets(nombre); cadena, ordenarlos limite=strlen(nombre); ascendentemente y descendentemente. 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; } gotoxy(25,20);printf("Continuar 1o Finalizar 0= => ");scanf("%d",&op); } while(op==1); getch(); }
EJECUCION DEL PROGRAMA
2.- Dise単e un programa que me permita leer una cadena de caracteres y encontrar todas aquellas que sean consonantes vector en forma ordenada.
y pasarlas a un nuevo
An谩lisis: Este programa permite ingresar una serie de letras las cuales se imprimen las consonantes en un vector en forma ascendente y otra en un nuevo vector que imprime en forma descendente. #include<stdio.h> #include<conio.h> Declaraci贸n de variables #include<string.h> int cadena,i,fil,col,contador,aux,h,j,op; char vector1[20],vector2[20]; void main() { Lazo do while para ejecutar mientras el usuario presione 1 do { clrscr(); fil=8; j=0; for(i=1;i<=80;i++) { gotoxy(i,1);printf("*"); gotoxy(i,24);printf("*"); Funcion para colocar borde en pantalla } 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(); Proceso para el ingreso de la gets(vector1); cadena de caracteres cadena=strlen(vector1); for(i=0;i<cadena;i++) { if(vector1[i]!='a'&&vector1[i]!='e'&&vector1[i]!='i'&&vector1[i]!='o'&&vector1[i]!='u') { vector2[j]=vector1[i]; Decisi贸n para determinar si es vocal o no j=j+1; } } fil=8; for(i=0;i<j;i++) { gotoxy(19,fil);printf("%c", vector2[i]); Impresi贸n del vector desordenado
fil=fil+1; } for(i=0;i<j;i++) { for(h=0;h<j;h++) { if(vector2[i]<vector2[h]) { Impresi贸n del vector ordenado aux=vector2[i]; utilizando m茅todo burbuja 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(" Continuar 1 o Finalizar 0 = = > " );scanf("%d",&op); } while(op==1); getch(); }
EJECUCION DEL PROGRAMA
3.- Diseñe un programa utilizando funciones que me permita diseñar un menú de opciones con las siguientes alternativas. 1) Cadenas con vocales. 2) Cadenas con consonantes. 3) Salir. Análisis: Este programa permite ingresar una serie de letras las cuales se
imprimen las vocales y las consonantes en un vector en forma ascendente y otra en un nuevo vector que imprime en forma descendente utilizando un menú de opciones. #include <stdio.h> #include <conio.h> int cadena,i,fil,col,aux,h,j,op; char vector1[20],vector2[20]; 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("*"); } }
Declaración de variables
Funcion para colocar borde en pantalla
void vocales() { clrscr(); borde(); fil=8; j=0; gotoxy(20,2),printf("***CONTAR VOCALES***"); gotoxy(20,5),printf("Ingrese una cadena = =>"); flushall();
Inicion funcion vocales. - Ingreso de la cadena - Condicion para verificar si el vector es vocal o no.
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]; 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];
Impresi贸n de la cadena vocal en forma desordenada
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; }
Impresión de la cadena vocal en forma ordenada
} void consonantes() { clrscr(); borde(); fil=8; j=0;
Inicio de la función consonate
gotoxy(20,2),printf("***CONTAR LAS CONSONANTES***"); gotoxy(20,5),printf("Ingrese una cadena : "); Proceso para el ingreso de la flushall(); cadena de caracteres gets(vector1); cadena=strlen(vector1); for(i=0;i<cadena;i++) { if(vector1[i]!='a'&&vector1[i]!='e'&&vector1[i]!='i'&&vector1[i]!='o'&&vector1[i]!='u') Decisión para determinar si es vocal o no { vector2[j]=vector1[i]; j=j+1; } } fil=8; Impresión del vector for(i=0;i<j;i++) desordenado { gotoxy(19,fil);printf("%c", vector2[i]); fil=fil+1; } for(i=0;i<j;i++) Impresión del vector ordenado { utilizando método burbuja 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; } } Inicio del programa principal void main() { do Lazo do while para ejecutar mientras el usuario presione 1 { 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 opción que desea ==> ");scanf("%d",&op); switch(op) { case 1: { vocales(); } Proceso para break; ingresar una opcion case 2: con utilización de un { switch consonantes(); } break; case 3: {
exit();
} break; } gotoxy(30,20);printf(â&#x20AC;&#x153;Continuar 1 o Finalizar 0 = => ");scanf("%d",&op); } while(op==1); getch(); }
EJECUCION DEL PROGRAMA
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: Este programa permite ingresar datos desde el número 3 hasta el 35 en una matriz de cualquier orden y la imprime en una nueva matriz # include<stdio.h> # include<conio.h> int i,j,op,col,fila,limt,matriz[10][10];
Declaración de variables
void borde() { Inicio de la función borde for(i=1;i<=80;i++) - Proceso para { generar el borde gotoxy(i,1);printf("*"); en pantalla gotoxy(i,24);printf("*"); } for(i=1;i<=24;i++) { gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); } } void ingresar (int limite) { Inicio de la función ingreso fila=10; - Proceso para ingresar col=10; una matriz por teclado 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; } col=36; fila=fila+1; } }
Inicio de la funci贸n visualizar -
Proceso para imprimir la matriz ingresada por teclado
Inicio del programa principal void main () { Lazo do while para ejecutar mientras el usuario presione 1 do { clrscr(); borde(); Proceso para el ingreso del textcolor(3); l铆mite y llamado de las gotoxy(25,2);printf(" ***MATRICES***"); funciones gotoxy(22,4);printf("Ingresar el limite = ");scanf("%d",&limt); ingresar(limt); visualizar(limt); gotoxy(25,20);printf("Continuar 1o Finalizar = => ");scanf("%d",&op); } while(op==1); getch(); }
EJECUCION DEL PROGRAMA
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: Este programa permite ingresar datos en una matriz de cualquier orden y la imprime en una nueva matriz. # 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++) { 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) {
Ingreso de variable
Inicio de la funciĂłn borde - Proceso para generar borde en pantalla
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;
Inicio de la funci贸n ingreso - Proceso para generar la matriz - Proceso para generar los factores de la matriz
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]); col=col+4; } fila=fila+1; col=38;
Inicio de la funci贸n visualizar - Proceso para imprimir la matriz
} } Inicio del programa principal void main () { do Lazo do while para ejecutar mientras el usuario presione 1 { 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("Continuar 1o Finalizar = => ");scanf("%d",&op); } while(op==1); getch(); }
6.- Diseñe un programa que me permita llenar una matriz de cualquier orden con valores pares. Análisis: Este programa permite ingresar datos pares de cualquier orden en una matriz y la imprime en una nueva matriz. # include<stdio.h> Ingreso de variables # include<conio.h> int i,j,op,col,fila,par,limt,matriz[10][10]; void borde() { for(i=1;i<=80;i++) { Inicio de la función borde gotoxy(i,1);printf("*"); - Proceso para generar gotoxy(i,24);printf("*"); borde en pantalla } for(i=1;i<=24;i++) { gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); } } void ingresar (int limite) { Inicio de la función ingreso fila=10; - Proceso para ingresar col=10; datos pares en la par=0; matriz 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;
Inicio de la función visualizar - Proceso para imprimir los daros pares de la matriz
} } Inicio del programa principal void main () { Lazo do while para ejecutar mientras el usuario presione 1 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); Ingreso del limite y llamado de las ingresar(limt); funciones visualizar(limt); gotoxy(25,20);printf("² Desea continuar [1] o [0] para finalizar ² = ");scanf("%d",&op); } while(op==1); getch(); }
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: Este programa permite generar una matriz de cualquier orden con valores ceros y la diagonal principal se formara con valores unos y se imprime en un vector en forma ordenada. #include<stdio.h> Ingreso de variables #include<conio.h> #include<string.h> int i,j,x,col,c,h,fil,limt,limite,op,matriz[15][15];vector[15]; void borde() { Inicio de la función borde for(i=1;i<=80;i++) - Proceso para generar { borde en pantalla gotoxy(i,1);printf("*"); gotoxy(i,24);printf("*"); } for(i=1;i<=24;i++) { gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); Inicio de la función ingreso } - Proceso para ingresar } datos ´0´o ´1´ en la void ingresar (int limite) matriz { 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;
} } 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++) {
} } }
Inicio de la funci贸n visualizar
-proceso para imprimir la matriz
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;
Inicio de la funci贸n ordenar -
Proceso para ordenar las matriz
for(i=1;i<h;i++) { gotoxy(col,fil);printf("%d",vector[i]); fil=fil+2; } } Inicio del programa principal void main ( ) { Lazo do while para ejecutar mientras el usuario presione 1 do { clrscr(); borde(); textcolor(3); Ingreso del limite y llamado de las gotoxy(25,2);printf(" ***MATRICES***"); funciones gotoxy(22,4);printf("Ingresar el limite = ");scanf("%d",&limt); ingresar(limt); visualizar(limt); ordenar(limt); gotoxy(25,20);printf("² Desea continuar [1] o [0] para finalizar ² = ");scanf("%d",&op); } while(op==1); getch(); }
8.- 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. Análisis: Este programa permite generar una matriz de cualquier orden en la diagonal principal se generara la serie del Fibonacci y la secundaria se formara el factorial de cualquier numero y se imprimen en vector. # include<stdio.h> # include<conio.h> int d,factorial,fact,c,a,b,i,j,op,ctv,col,fila,limt,matriz[10][10],vector[12],h; 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("*"); } }
Inicio de la función borde - Proceso para generar borde en pantalla
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++)
Inicio de la función ingresar - Proceso para generar la serie del Fibonacci
Ingreso de variables
{ 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; } 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 ²");
Proceso para ingresar la matriz de un número factorial cualquiera.
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; fila=fila+2; d--; } } } } void ordenar(int limite, int factor) { gotoxy(54,8);printf("² VECTOR ORDENADO ²"); col=65; fila=10;
Inicio de la función vector1 -Proceso para imprimir la factorial en la diagonal secundaria
Inicio de la función ordenar -Proceso para ordenar los números factoriales.
for(i=1;i<h;i++) { gotoxy(col,fila);printf("%d",vector[i]); fila=fila+2; } }
Inicio del programa principal void main () { Lazo do while para ejecutar mientras el usuario presione 1 do { clrscr(); borde(); textcolor(3); gotoxy(3,2);printf(" ***GENERACION DE MATRIZ CON FIBONACI YDIAGONAL SECUNDARIA DE FACTORIAL***"); Ingreso del límite y del numero factorial -Llamado de las funciones
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("² Desea continuar [1] o [0] para finalizar ² = ");scanf("%d",&op); } while(op==1); getch(); }
9.-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. Análisis: Este programa permite ingresar una matriz de cualquier numero de filas y columnas imprime la matriz y la imprime en una nueva en otro orden. # include<stdio.h> Ingreso de variables # include<conio.h> int matriz1[10][10],matriz2[10][10],col,fil,i,j,op,fila,colum,a,b; void borde() { for(i=1;i<=80;i++) { gotoxy(i,1);printf("*"); gotoxy(i,24);printf("*"); Inicio de la función borde } - Proceso para generar borde en pantalla 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++) { Inicio de la función ingresar for(j=1;j<=b;j++) - Proceso para ingresar { la matriz por teclado 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++) {
Inicio de la función trasponer - Proceso para cambiar el orden de los factores
gotoxy(col,fila);printf("%d",matriz2[i][j]); col=col+3; } fila=fila+2; col=39; } } Inicio del programa principal void main () { Lazo do while para ejecutar mientras el usuario presione 1 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("² Desea continuar [1] o [0] para finalizar ² = ");scanf("%d",&op); } while(op==1); Ingreso de numero de filas y columnas -Llamado de las funciones getch(); }
10.- 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. Análisis: Este programa permite generar una matriz de números ceros solo las diagonales principales y secundarias y las demás números de la matriz no se muestran. #include<conio.h> #include<stdio.h> Ingreso de variables 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("*"); } Inicio de la función borde for(i=1;i<=24;i++) - Proceso para generar borde en pantalla { 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) { Inicio de la función principal c=0; - Proceso para generar la diagonal matriz[i][j]=0; principal en ceros gotoxy(col,fila);printf("%d",matriz[i][j]); } col=col+3;
} fila=fila+2; col=8; } } 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]);
Inicio de la función diagonal - Proceso para generar la diagonal secundaria en ceros
} col=col+3; } fila=fila+2; d--; col=8; } } Inicio del programa principal void main () { Lazo do while para ejecutar mientras el usuario presione 1 do { clrscr(); borde(); textcolor(5); gotoxy(27,2);cprintf(" ***MATRIZ DE CEROS***"); textcolor(9); gotoxy(3,8);cprintf(" ² MATRIZ PRINCIPAL Y DIAGONAL ²"); Ingreso del limite gotoxy(22,4);printf("Ingresar el limite = ");scanf("%d",&limt); -Llamado de las funciones principal(limt); diagonal(limt); textcolor(2);
gotoxy(27,23);cprintf("² Desea continuar [1] o [0] para finalizar ² = ");scanf("%d",&op); } while(op==1); getch(); }
11.-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. #include<conio.h> #include<stdio.h> int vector[12],matriz[12][12],limit,i,j,op,fila,col,v,aux; 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 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) { 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; } } 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(); textcolor(4); gotoxy(20,3);cprintf("*** ENCONTRAR NUMEROS IMPARES ***"); textcolor(7); gotoxy(20,5); cprintf(" Ingrese un numero : ");scanf("%d",&limit); textcolor(5); gotoxy(5,7); cprintf("² MATRIZ DE INGRESO ²"); gotoxy(29,7); cprintf("² VECT DESORDEN ²");
gotoxy(49,7); cprintf("² VECT ASEND ²"); gotoxy(65,7); cprintf("² VECT DESEN ²"); ingreso(limit); impar(limit); asendente(limit); impresion1(limit); desendente(limit); impresion2(limit); textcolor(10); gotoxy(30,23);cprintf("² Desea continuar [1] o [0] para finalizar ² = ");scanf("%d",&op); } while(op==1); getch(); }
12.- 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. # include<stdio.h> # include<conio.h> int cot,fact,i,j,op,col,fila,limt,matriz[10][10],vector[20],cotvector; 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;
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("² Desea continuar [1] o [0] para finalizar ² = ");scanf("%d",&op); } while(op==1); getch(); }
13.-Diseñe un programa que me permita generar una matriz cuya diagonal principal se genera la serie del fivonassi y la diagonal secundaria se genere el factorial de cualquier número y los demás números de la matriz sean ceros, imprimar las diagonales en una nueva matriz y guarde la matriz. Librerias principales #include<stdio.h> #include<conio.h> Declaración de variables Inicio del int matriz[15][15],i,j,limit,a,b,c,l,f,d,op1,col,fila; Programa void borde() { for(i=1;i<=80;i++) { gotoxy(i,1);printf("*"); gotoxy(i,24);printf("+"); } Lazo i, j para generar borde for(j=1;j<=24;j++) { gotoxy(1,j);printf("*"); gotoxy(80,j);printf("+"); } } void entrada(int limi) { col=8; fila=8; for(i=1;i<=limi;i++) {
Inicio función entrada
for(j=1;j<=limi;j++) { l=0; matriz[i][j]=l; gotoxy(col,fila);printf("%d",matriz[i][j]); col=col+2; } fila=fila+1; col=8; } }
Proceso para generar toda la matriz con valores cero
void entradaprincipal(int limi) Inicio funci贸n entrada principal { col=8; fila=8; a=1; b=0; c=0; for(i=1;i<=limi;i++) { Proceso para generar la for(j=1;j<=limi;j++) serie del fivonassi { if(i==j) { c = a+b; a = b; b = c; matriz[i][j]=c; gotoxy(col,fila);printf("%d",matriz[i][j]); } col=col+2; } fila=fila+1; col=8; } } void entradasecundaria(int limi) { col=8; fila=8;
Inicio funci贸n entrada principal
f=1; d=limit; for(i=1;i<=limi;i++) { for(j=1;j<=limi;j++) Proceso para generar el { factorial de un numero if(d==j) { f=f*i; matriz[i][j]=f; gotoxy(col,fila);printf("%d",matriz[i][j]); d=d-1; } col=col+2; } fila=fila+1; col=8; } } Inicio funci贸n diagonal void diagonalprincipal1(int limi) principal { col=30; fila=8; a=1; b=0; c=0; for(i=1;i<=limi;i++) { Proceso guardar e imprimir for(j=1;j<=limi;j++) en una nueva matriz la { diagonal principal if(i==j) { c = a+b; a = b; b = c; matriz[i][j]=c; gotoxy(col,fila);printf("%d",matriz[i][j]); } col=col+2; } fila=fila+1; col=30; } }
Inicio función diagonal void diagonalsecundaria1(int limi) principal { col=30; fila=8; f=1; d=limit; for(i=1;i<=limi;i++) { for(j=1;j<=limi;j++) Proceso guardar e imprimir { en una nueva matriz la if(d==j) diagonal secundaria { f=f*i; matriz[i][j]=f; gotoxy(col,fila);printf("%d",matriz[i][j]); d=d-1; } col=col+2; } fila=fila+1; col=30; } } Inicio del programa principal void main() { do Inicio de ciclo repetitivo ‘do’ { clrscr(); Blanqueo de pantalla y llamada de la función borde borde(); gotoxy(25,2);printf("MATRIZ FACTORIAL Y FIVONASSI"); gotoxy(10,5);printf("Ingrese el limite => ");scanf("%d",&limit); entrada (limit); entradaprincipal(limit); entradasecundaria(limit); diagonalprincipal1(limit); diagonalsecundaria1(limit); gotoxy(10,22);printf("Para Continuar --1-- o Salir --0-- ==> "); scanf("%d",&op1); } while(op1==1); getch(); Fin del programa }
Proceso del límite de la matriz y llamado de las funciones
Fin del lazo repetitivo do-while
Ejecuci贸n del programa
13.- Diseñe un programa que permita generar una matriz cuadrática con números primos
Librerias principales #include<stdio.h> #include<conio.h> Declaración de int matriz1[10][10],i,j,fila,col,op,limite,primo=1,x=1,conpri=0,sw=0; variables Inicio del Programa void borde () { clrscr(); for (i=1;i<=80;i++) { gotoxy(i,1); printf("*"); gotoxy(i,24);printf("+"); Lazo i, j para generar borde } for (i=1;i<=24;i++) { gotoxy(1,i); printf("*"); gotoxy(80,i); printf("+"); } } void primo1(int limite) { primo=1; sw=0; for(i=1;i<=limite;i++) { for(j=1;j<=limite;j++) { do { conpri=0; sw=0; for(x=1;x<=primo;x++) { if((primo%x)==0) { conpri++; } } if(conpri<=2)
Inicio función entrada
Proceso para generar los números primos
{ matriz1[i][j] = primo; primo++; sw=1; } else { sw=0; primo++; } } while (sw==0); } } } void imprimir(int limite) Inicio función imprimir { col=10; fila=10; for(i=1;i<=limite;i++) { for(j=1;j<=limite;j++) { Proceso para imprimir, matriz gotoxy(col,fila);printf("%d",matriz1[i][j]); números primos col=col+6; } col=10; fila=fila+2; } } Inicio del programa principal void main() { Inicio de ciclo repetitivo ‘do’ do { Blanqueo de pantalla y llamada de la función borde clrscr(); borde();
gotoxy(25,2); printf(" MATRIZ NUMEROS PRIMOS"); gotoxy(7,6); printf(" Ingrese limite => ");scanf("%d",&limite); primo1(limite); Proceso llamado de las funciones imprimir(limite); gotoxy(4,23); printf("Para continuar --1-- o Salir --0-- => ");scanf("%d",&op); Fin del programa
Fin del lazo repetitivo do-while
} while (op==1); }
Ejecuci贸n
14.-Dise帽e un programa que permita ingresar n elementos en una matriz entre 3 y 36 presentar la matriz resultante ordenada en forma ascendente.
#include<stdio.h> Librerias principales #include<conio.h> #include<math.h> Declaraci贸n de variables Inicio del int matriz1[10][10],i,j,fila,col,limite,c,aux=0,op,i1,j1; Programa void borde () { for (i=1;i<=80;i++) { gotoxy(i,1); printf("*"); gotoxy(i,24); printf("*"); Lazo i, j para generar borde } for (i=1;i<=24;i++) { gotoxy(1,i); printf("*"); gotoxy(80,i); printf("*"); } } void cero(int limite) { for(i=1;i<=limite;i++) { for(j=1;j<=limite;j++) { matriz1[i][j] = 0; } } }
void ingreso(int limite) {
Inicio funci贸n cero
Proceso para generar toda la matriz con valores cero
Inicio funci贸n ingreso
col=10; fila=10; for(i=1;i<=limite;i++) { for(j=1;j<=limite;j++) { do { gotoxy(col,fila);scanf("%d",&matriz1[i][j]); }while(matriz[i][j]<3 || matriz[i][j]>36); col=col+4; } col=10; fila=fila+2; } }
void ordena(int limite) { for(i=1;i<=limite;i++) { for(j=1;j<=limite;j++) { for(i1=1;i1<=limite;i1++) { for(j1=1;j1<=limite;j1++) { if(matriz1[i][j]<matriz1[i1][j1]) { aux=matriz1[i][j]; matriz1[i][j]=matriz1[i1][j1]; matriz1[i1][j1]=aux; } } } } } }
Proceso para datos desde teclado
Proceso para ordenar la matriz utilizando el m茅todo burbuja
void imprimir(int limite) Inicio funci贸n entrada principal
{ col=50; fila=9; for(i=1;i<=limite;i++) { for(j=1;j<=limite;j++) Proceso para imprimir { matriz gotoxy(col,fila);cprintf("%d",matriz1[i][j]); col=col+6; } col=50; fila=fila+2; } } Inicio del programa principal void main() { do Inicio de ciclo repetitivo ‘do’ { clrscr(); Blanqueo de pantalla y llamada de la función borde borde(); gotoxy(25,2); printf(" MATRIZ ORDENADO"); gotoxy(10,5); printf(" Ingrese limite ");scanf("%d",&limite); gotoxy(12,7); printf("Matriz Ingreso"); Proceso del límite de gotoxy(50,7); printf("Matriz Ordenado"); la matriz y llamado cero(limite); de las funciones ingreso(limite); ordena(limite); imprimir(limite); gotoxy(4,23); printf("Para continuar --1-- o Salir --0-- => ");scanf("%d",&op); } while (op==1); Fin del programa } Fin del lazo repetitivo do-while
Ejecuci贸n
ESTRUCTURAS DE DATOS 1.- Diseñe un programa que me permita ingresar los datos en una estructura y posteriormente realizar la impresión de dichos datos. ANALISIS: Este programa permite ingresar datos personales de un grupo de personas, luego imprimir en otra pantalla los datos ingresados, esta impresión tendrá un diseño exclusivo mejorando así la imagen de la presentación. Análisis y Desarrollo #include<stdio.h> #include<conio.h> #include <stdlib.h> #include <math.h> int i=0,j=0, numreg=0,fila=0; struct datos { char nombre[20]; char apellido[20]; char telefono[10]; int edad; } persona[10]; void borde () { clrscr(); 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("*"); }
Pongo en uso las librerías
Declaración de las variables
For para dibujar el borde superior e inferior
For para dibujar el borde izquierdo y derecho
for (i=1; i<35; i++) { gotoxy(10+i,23); printf(" Jesús Alcívar Motero Carrasco"); delay(5); }
For para ingresar el nombre
gotoxy(27,2); printf("UNIVERSIDAD TECNICA DE AMBATO"); gotoxy(17,3); printf("FACULTA DE CIENCIAS HUMANAS Y DE LA EDUCACIàN"); gotoxy(25,4); printf("CARRERA DE DOCENCIA EN INFORMµTICA"); gotoxy(32,5); printf("TeRcEr SeMeStRe"); gotoxy(32,7); printf("AGENDA DE AMIGOS"); } void main() Método principal { borde(); gotoxy(4,9); printf("Ingrese el numero de registros : "); gotoxy(44,9); scanf("%d",&numreg); borde(); fila=9;
for (i=1;i<=numreg;i++) { flushall(); gotoxy(2,7); printf(" NOMBRE APELLIDO textcolor(3); gotoxy(64,7); cprintf("registro %d/%d",i,numreg); gotoxy(3,fila); gets(persona[i].nombre); gotoxy(20,fila); gets(persona[i].apellido); gotoxy(35,fila); gets(persona[i].telefono); gotoxy(53,fila);scanf("%d",&persona[i].edad); fila++; } fila=9; borde();
for (i=1;i<=numreg;i++) {
TELEFONO
EDAD");
Ingreso de la estructura de datos
textcolor(3); gotoxy(2,7); printf(" NOMBRE APELLIDO TELEFONO EDAD"); gotoxy(64,fila); cprintf("registro %d/%d",i,numreg); gotoxy(3,fila); puts(persona[i].nombre); gotoxy(20,fila);puts(persona[i].apellido); gotoxy(35,fila);puts(persona[i].telefono); gotoxy(53,fila);printf("%d",persona[i].edad); fila++; } getch(); }
Impresión de la estructura de datos
2.-Diseñar un programa simuladando el ingreso de notas de un alumno, calcular su promedio individual y posteriormente desplegar el listado del curso y su promedio general todo esto se realizara con estructuras.
ANALISIS: Este programa permitirá a quienes lo usen ingresar las notas de un grupo de estudiantes calcular un promedio individual y un promedio grupal, sirve de mucha ayuda para quienes desean obtener los promedios de un curso sin mayor dificultad… #include<stdio.h> #include<conio.h> #include <stdlib.h> #include <math.h> #include <string.h> #include <ctype.h>
Pongo en uso las librerías
extern unsigned _floatconvert; #pragma extref _floatconvert struct factura { char equiva[20]; char nombre[20]; char modulo[20]; int matri; float nota1,nota2,nota3,proind; } datos[30];
Declaración de las variables
int i,j,fila=8,conalu=0; float progene; char op2='S'; char opcion='S';
for (i=12;i<58;i++) { gotoxy(i,1); printf ("Í"); gotoxy(i,20);printf ("Í"); } for (i=1;i<20;i++) { gotoxy(12,i); printf ("º"); gotoxy(58,i);printf ("º"); } gotoxy(12,1); printf ("É"); gotoxy(58,1); printf ("»"); gotoxy(12,20);printf ("È"); gotoxy(58,20);printf ("¼"); gotoxy(17,2); printf ("ACADEMIA MILITAR 'Gotitas del Saber'"); gotoxy(22,3); printf ("Formando giles desde 1920"); gotoxy(14,5); printf ("Matricula # :"); gotoxy(45,5); printf ("Estu. # :"); gotoxy(14,7); printf ("Estudiante :"); gotoxy(14,9); printf ("Modulo :"); gotoxy(14,11); printf ("Nota # 1 :"); gotoxy(14,13); printf ("Nota # 2 :"); gotoxy(14,15); printf ("Nota # 3 :"); gotoxy(14,17); printf ("Promedio :"); gotoxy(14,19); printf ("Equivalencia:"); } void ingreso() { gotoxy(52,5); printf("%d",conalu); gotoxy(28,5); scanf("%d",&datos[conalu].matri); fflush(stdin); gotoxy(28,7); printf(" "); gotoxy(28,9); printf(" "); gotoxy(28,7); gets(datos[conalu].nombre); gotoxy(28,9); gets(datos[conalu].modulo); do { gotoxy(28,11); printf(" "); gotoxy(28,11); scanf("%f",&datos[conalu].nota1);
Código fuente que nos permite el diseño del carnet del estudiante
} while(datos[conalu].nota1<1 || datos[conalu].nota1>10);
Ingresando los datos
do { gotoxy(28,13); printf(" "); gotoxy(28,13); scanf("%f",&datos[conalu].nota2); } while(datos[conalu].nota2<1 || datos[conalu].nota2>10);
del estudiante en la estructura.
do { gotoxy(28,15); printf(" "); gotoxy(28,15); scanf("%f",&datos[conalu].nota3); } while(datos[conalu].nota3<1 || datos[conalu].nota3>10); datos[conalu].proind = (datos[conalu].nota1+datos[conalu].nota2+datos[conalu].nota3)/3; gotoxy(28,17); printf ("%2.2f",datos[conalu].proind); if(datos[conalu].proind>=7.0) { strcat(datos[conalu].equiva, "Aprobado"); gotoxy(28,19); printf (datos[conalu].equiva); } else { if(datos[conalu].proind>=5.5) { strcat(datos[conalu].equiva, "Suple por vago"); gotoxy(28,19); printf (datos[conalu].equiva); } else { strcat(datos[conalu].equiva, "Marchas por gil"); gotoxy(28,19); printf (datos[conalu].equiva); } } progene=progene+datos[conalu].proind; }
/*Funci¢n Dise¤o del listado general de alumnos void listado()
*/
{ for (i=1;i<80;i++) { gotoxy(i,1); printf ("Í"); gotoxy(i,5);printf ("Í"); } gotoxy(27,2); printf ("ACADEMIA MILITAR 'Gotitas del Saber'"); gotoxy(32,3); printf ("Formando giles desde 1920"); gotoxy(2,4); printf ("Mat# Estudiante Modulo Nota#1 Nota#2 Nota#3 Prome Equivalencia"); gotoxy(34,24);printf ("MUCHAS GRACIAS"); for (i=1;i<=conalu;i++) { gotoxy(2,5+i); printf("%d",datos[i].matri); gotoxy(8,5+i); puts(datos[i].nombre); gotoxy(24,5+i); puts(datos[i].modulo); gotoxy(36,5+i); printf("%2.2f",datos[i].nota1); gotoxy(43,5+i); printf("%2.2f",datos[i].nota2); gotoxy(50,5+i); printf("%2.2f",datos[i].nota3); gotoxy(57,5+i); printf ("%2.2f",datos[i].proind); gotoxy(65,5+i); puts(datos[i].equiva); } gotoxy(57,5+i); printf ("_____"); gotoxy(57,6+i); printf ("%2.2f",progene); progene= progene / conalu; gotoxy(23,7+i); printf("El promedio de los %d alumnos es : %2.2f",conalu,progene); getch(); }
void main() { do { clrscr(); diseno(); conalu++; Método principal datos[conalu].proind = 0.0; llamado a los fila = 8; datos[conalu].nota1 = 0.0; métodos datos[conalu].nota2 = 0.0; secundarios. datos[conalu].nota3 = 0.0 ; ingreso(); gotoxy(12,22);printf (" "); gotoxy(12,22);printf ("....otro Alumno? <<SI>> <<NO>>"); gotoxy(50,22); opcion=getch(); }
y
Listado general para los alumnos
while((opcion=='S') || (opcion=='s')); clrscr(); listado(); }
3.-Diseñar un programa que me permita simular el funcionamiento de una factura en la cual se visualiza los datos ingresados del cliente, los datos de la factura, va preguntando se desea otro producto, se ingresa los productos con sus respectivos datos si no desea ingresar mas productos calcular el subtotal, IVA,total de la factura todo esto se realizara con estructuras. ANALISIS: Este programa sirve de mucha ayuda para las personas quienes realizan ventas ya sea en un local o en ventas a domicilio ya que le permite almacenar datos de los clientes, cálculo de IVA valores parciales y totales…Espero les ayude en sus necesidades. #include<stdio.h> #include<conio.h> #include <stdlib.h> #include <math.h> #include <string.h> #include <ctype.h>
Pongo en uso las librerías
extern unsigned _floatconvert; #pragma extref _floatconvert
struct factura { char producto[20]; int cantidad,numefact; float valoruni,subtotal,total1,iva,totalfac; char cliente[20],cel[10],ruc[12],dire[12]; char detalle[20]; } factura[30]; int i,j,fila=8,confact=0; float totaldia; char op2='S'; char opcion='S'; void diseno()
Declaro variables globales y variables tipo vector para el correcto funcionamiento del programa.
{ gotoxy(68,21); printf (" "); gotoxy(68,22); printf (" "); gotoxy(68,23); printf (" "); for (i=2;i<12;i++) { for (j=9;j<20;j++) { gotoxy(i,j);printf(" "); } } for (i=13;i<53;i++) { for (j=9;j<20;j++) { gotoxy(i,j);printf(" "); } } for (i=54;i<65;i++) { for (j=9;j<20;j++) { gotoxy(i,j);printf(" "); } } for (i=56;i<79;i++) { for (j=9;j<20;j++) { gotoxy(i,j);printf(" "); } } for (i=1;i<80;i++) { gotoxy(i,1); printf ("Í"); gotoxy(i,24);printf ("Í"); gotoxy(i,6);printf ("Í"); gotoxy(i,8);printf ("Í"); gotoxy(i,20);printf ("Í"); } for (i=1;i<24;i++) { gotoxy(1,i); printf ("º"); gotoxy(80,i);printf ("º"); } gotoxy(1,1); printf ("É");
Diseño de la factura
gotoxy(80,1); printf ("»"); gotoxy(1,24);printf ("È"); gotoxy(80,24);printf ("¼"); gotoxy(1,6);printf ("Ì"); gotoxy(80,6);printf ("¹"); gotoxy(1,8);printf ("Ì"); gotoxy(80,8);printf ("¹"); gotoxy(1,20);printf ("Ì"); gotoxy(80,20);printf ("¹"); gotoxy(26,2); printf ("'MINIMARKET "); gotoxy(25,3); printf ("AV. SIEMPRE VIVA 245 - SPRINGFIELD FACT #:"); gotoxy(2,4); printf ("CLIENTE : RUC: CEL:"); gotoxy(2,5); printf ("DIRECCION : "); gotoxy(2,7); printf (" CANTIDAD DETALLE V.UNI gotoxy(54,21); printf ("subtotal :"); gotoxy(54,22); printf ("IVA :"); gotoxy(54,23); printf ("Total :"); for (i=6;i<20;i++) { gotoxy(12,i); printf ("º"); gotoxy(53,i);printf ("º"); } for (i=6;i<24;i++) { gotoxy(65,i); printf ("º"); } gotoxy(12,6);printf ("Ë"); gotoxy(53,6);printf ("Ë"); gotoxy(65,6);printf ("Ë"); gotoxy(12,8);printf ("Î"); Diseño de la factura gotoxy(53,8);printf ("Î"); gotoxy(65,8);printf ("Î"); gotoxy(12,20);printf ("Ê"); gotoxy(53,20);printf ("Ê"); gotoxy(65,20);printf ("Ê"); gotoxy(65,20);printf ("Î"); gotoxy(65,24);printf ("Ê"); } { gotoxy(75,3); printf("%d",confact); factura[confact].numefact=confact; fflush(stdin); gotoxy(12,4); printf(" "); gotoxy(37,4); printf(" "); gotoxy(60,4); printf(" ");
Diseño de la factura
TOTAL");
Ingreso de los productos a la factura.
gotoxy(14,5); printf(" "); gotoxy(12,4); gets(factura[confact].cliente); gotoxy(37,4); gets(factura[confact].ruc); gotoxy(60,4); gets(factura[confact].cel); gotoxy(14,5); gets(factura[confact].dire); do { factura[confact].cantidad = 0; factura[confact].valoruni = 0; factura[confact].total1=0; fila++; gotoxy(2,fila); scanf("%d",&factura[confact].cantidad); fflush(stdin); gotoxy(14,fila); gets(factura[confact].detalle); gotoxy(56,fila); scanf("%f",&factura[confact].valoruni); factura[confact].total1 = factura[confact].total1 + (factura[confact].cantidad*factura[confact].valoruni); gotoxy(70,fila); printf("%2.2f",factura[confact].total1); factura[confact].subtotal = factura[confact].subtotal + gotoxy(40,22); printf(" "); gotoxy(2,22);printf ("....otra Producto? <<SI>> <<NO>>"); gotoxy(40,22); op2=getch(); } while((op2=='S') || (op2=='s')); }
void main() { do { clrscr(); diseno(); confact++; factura[confact].total1 = 0.0; fila = 8; factura[confact].subtotal = 0.0; factura[confact].iva = 0.0; factura[confact].totalfac = 0.0 ;
Do while para controlar el ingreso de otro producto factura[confact].total1;
MĂŠtodo principal
ingreso(); gotoxy(68,21); printf ("%2.2f",factura[confact].subtotal); factura[confact].iva = factura[confact].subtotal * 12 / 100; gotoxy(68,22); printf ("%2.2f",factura[confact].iva); factura[confact].totalfac = factura[confact].totalfac + factura[confact].subtotal + factura[confact].iva; gotoxy(68,23); printf ("%2.2f",factura[confact].totalfac); totaldia = totaldia + factura[confact].totalfac; gotoxy(2,23);printf ("El total del dia es : %2.2f dolares",totaldia); gotoxy(2,22);printf (" "); gotoxy(2,22);printf ("....otra Factura? 1<<SI>> 0<<NO>>"); gotoxy(40,22); opcion=getch(); } while((opcion=='S') || (opcion=='s')); }
4.-Dise¤e un programa en c que me permita llevar el control de registro de citas de pacientes de un hospital, bajo los siguientes parametros el hospital posee 3 especialidades basicas que son : - Odontolog¡a costo de $5 - Pediatr¡a costo de $3 - Medicina General costo de $4 2.- El m ximo numero de citas por especialidad son 5 3.- Se necesita vizualizar el n£mero de citas por cada especialidad, el total recaudado por especialidad al final presentar el total de turnos entregados y el total recaudado
ANALISIS: Este programa nos ayudara a controlar el ingreso de pacientes a un hospital contabilizar la recaudación del día y controlar el número de pacientes que ingresaron todo el día. #include<stdio.h> #include<conio.h> #include <stdlib.h> #include <math.h> #include <string.h>
Pongo en uso las librerías
#include <ctype.h> extern unsigned _floatconvert; #pragma extref _floatconvert
struct cita { char paciente[20]; char especia[20]; int ficha,conodo,conped,conmed; float costo; } fichas[15]; float totodo=0.0,totped=0.0,totmed=0.0; int i,j,fila=8,confi=0; int co=0,cp=0,cm=0,compara=0; float totdia; char opcion='S';
Declaro variables globales y variables tipo vector que necesito en este programa
char especia=' '; void diseno() { for (i=12;i<58;i++) { Creando la pantalla gotoxy(i,1); printf ("Í"); de la ficha medica gotoxy(i,20);printf ("Í"); } for (i=1;i<20;i++) { gotoxy(12,i); printf ("º"); gotoxy(58,i);printf ("º"); } gotoxy(12,1); printf ("É"); gotoxy(58,1); printf ("»"); gotoxy(12,20);printf ("È"); gotoxy(58,20);printf ("¼"); gotoxy(19,2); printf ("HOSPITAL GENERAL 'Entran 3 sale 1'"); gotoxy(18,3); printf ("'Si entras sano aqui te enfermamos'"); gotoxy(14,5); printf ("ficha # :"); gotoxy(14,7); printf ("Nombre Paciente :"); gotoxy(14,9); printf ("Especialidad :"); gotoxy(14,11); printf ("Odontolog¡a <<O>>"); gotoxy(14,13); printf ("Pediatr¡a <<P>>"); gotoxy(14,15); printf ("Medicina G. <<M>>"); gotoxy(14,17); printf ("Costo :"); gotoxy(14,19); printf ("Numero de Turno :"); } void ingreso() { confi++; fichas[confi].ficha = confi; gotoxy(24,5); printf("%d",fichas[confi].ficha); fflush(stdin); gotoxy(35,7); printf(" "); gotoxy(35,9); printf(" "); gotoxy(35,7); gets(fichas[confi].paciente); do
Creando la pantalla de la ficha medica
{ gotoxy(35,9); especia=getch(); } while (((especia!='O') && (especia!='o')) && ((especia!='P') && (especia!='p')) && ((especia!='M') && (especia!='m'))); if((especia=='O') || (especia=='o')) { gotoxy(35,9); printf ("Odontologยกa"); co++;
}
if (co == 6) { gotoxy(12,22);printf (" "); gotoxy(12,22);printf ("Lo siento se Terminaron los turnos"); getch(); gotoxy(12,22);printf (" "); co--; confi--; } else { strcat(fichas[confi].especia, "Odontologยกa"); fichas[confi].conodo = co; fichas[confi].costo = fichas[confi].costo + 5; gotoxy(35,17); printf ("$5.00"); gotoxy(35,19); printf ("%d",fichas[confi].conodo); totdia = totdia + 5; totodo = totodo + 5; }
if((especia=='P') || (especia=='p')) { gotoxy(35,9); printf ("Pediatria"); cp++; if (cp == 6) { gotoxy(12,22);printf (" "); gotoxy(12,22);printf ("Lo siento se Terminaron los turnos"); getch();
Ingresando los pacientes a la estructura
}
gotoxy(12,22);printf (" "); cp--; confi--; } else { fichas[confi].conped = cp; strcat(fichas[confi].especia, "Pediatrยกa"); fichas[confi].costo = fichas[confi].costo + 3; gotoxy(35,17); printf ("$3.00"); gotoxy(35,19); printf ("%d",fichas[confi].conped); totdia = totdia + 3; totped = totped + 3; }
if((especia=='M') || (especia=='m')) { gotoxy(35,9); printf ("Med. General"); cm++; if (cm == 6) { gotoxy(12,22);printf (" "); gotoxy(12,22);printf ("Lo siento se Terminaron los turnos"); getch(); gotoxy(12,22);printf (" "); cm--; confi--; } else { fichas[confi].conmed = cm; strcat(fichas[confi].especia, "Med. General"); fichas[confi].costo = fichas[confi].costo + 4; gotoxy(35,17); printf ("$4.00"); gotoxy(35,19); printf ("%d",fichas[confi].conmed); totdia = totdia + 4; totmed = totmed + 4; } } }
Ingresando los pacientes a la estructura
void listado() { for (i=1;i<80;i++) { gotoxy(i,1); printf ("Í"); gotoxy(i,5);printf ("Í"); } gotoxy(27,2); printf ("Hospital Regional 'Ambato'"); gotoxy(2,4); printf ("ficha Paciente Especialidad gotoxy(34,24);printf ("MUCHAS GRACIAS");
Costo
Turno");
for (i=1;i<=confi;i++) { gotoxy(2,5+i); printf("%d",fichas[i].ficha); gotoxy(8,5+i); puts(fichas[i].paciente); gotoxy(24,5+i); puts(fichas[i].especia); gotoxy(50,5+i); printf("%2.2f",fichas[i].costo); compara = strcmp(fichas[i].especia,"Odontolog¡a"); if (compara==0) { gotoxy(65,5+i); printf("%d Odo.",fichas[i].conodo); } compara = strcmp(fichas[i].especia,"Pediatr¡a"); if (compara==0) { gotoxy(65,5+i); printf("%d Ped.",fichas[i].conped); } compara = strcmp(fichas[i].especia,"Med. General"); if (compara==0) { gotoxy(65,5+i); printf("%d Med. G.",fichas[i].conmed); } } gotoxy(50,5+i); printf ("_____"); gotoxy(50,6+i); printf ("%2.2f",totdia);
Diseñando el listado de los pacientes
gotoxy(14,7+i); printf("Total de Odontolog¡a : %d turnos * $ 5.0 = $ %2.2f",co,totodo); gotoxy(14,8+i); printf("Total de Pediatr¡a : %d turnos * $ 3.0 = $ %2.2f",cp,totped); gotoxy(14,9+i); printf("Total de Med. General : %d turnos * $ 4.0 = $ %2.2f",cm,totmed); getch(); }
{ float totodo=0.0,totped=0.0,totmed=0.0; do { clrscr(); diseno(); fila = 8; ingreso(); gotoxy(12,22);printf (" "); gotoxy(12,22);printf ("....otra Ficha ? <<SI>> <<NO>>"); gotoxy(50,22); opcion=getch(); } while((opcion=='S') || (opcion=='s')); clrscr(); listado(); }
Diseñando el listado de los pacientes
#in clu de <gr aph ics. h> #in clu de <stdlib.h> # include<process.h> LIBRERIAS # include <conio.h> #include<stdio.h> int i; void main()
// LLAMADO A DIFERENTES
{ int driver = VGA; int modo = VGAHI;
//* VARIABLES QUE UTILIZAMOS PARA EL
MODO GRAFICO int resultado; initgraph(&driver,&modo,"c:\\TC\\bin"); resultado=graphresult(); if(resultado!=grOk) { getch(); exit(0); } else { circle( 50, 50, 40 ); circle( 50, 50, 20 ); circle( 50, 130, 20 ); circle( 50, 180, 20 ); circle( 50, 230, 20 ); circle( 50, 280, 20 ); circle( 50, 330, 20 ); circle( 50, 415, 40 ); circle( 50, 415, 20 );
/*margen 1*/
//* INICIO DE MODO GRAFICO
circle( 580, 50, 40 ); circle( 580, 50, 20 ); circle( 580, 130, 20 ); circle( 580, 180, 20 ); circle( 580, 230, 20 );
/*Margen 2*/
circle( 580, 280, 20 ); circle( 580, 330, 20 ); circle( 580, 415, 40 ); circle( 580, 415, 20 );
circle( 140, 50, 20 ); circle( 190, 50, 20 ); circle( 240, 50, 20 ); circle( 290, 50, 20 ); circle( 340, 50, 20 );
/*margen3*/
circle( 390, 50, 20 ); circle( 440, 50, 20 ); circle( 490, 50, 20 );
circle( 140, 415, 20 ); circle( 190, 415, 20 ); circle( 240, 415, 20 ); circle( 290, 415, 20 );
/*margen4*/
Se implement贸 varios c铆rculos para dar un efecto de margen a nuestra caratula.
circle( 340, 415, 20 ); circle( 390, 415, 20 ); circle( 440, 415, 20 ); circle( 490, 415, 20 ); gotoxy(27,7);printf("UNIVERSIDAD TECNICA DE AMBATO"); gotoxy(17,9);printf("FACULTAD DE CIENCIAS HUMANAS Y DE LA EDUCACION"); gotoxy(25,12);printf("CARRERA DE DOCENCIA EN INFORMATICA"); gotoxy(34,15);printf("IVAN VILLACIS"); gotoxy(34,16);printf("PATRICIO LLUGSA");
PORTADA DE NUESTRA CARATULA AQUÍ CONTIENE VARIAS PRINTF
gotoxy(34,17);printf("ALEX TOMAREMA"); gotoxy(33,20);printf("TERCER SEMESTRE"); gotoxy(31,23);printf("Ing.WILMA GAVILANES"); } getch(); closegraph();
// CERRAMOS MODO GRAFICO
}
EJERCICIO # 02 Análisis del programa En este programa ingresamos varias librerías, las cuales están por defecto en el programa iniciamos modo grafico y también insertamos circles y rectangles los circles nos dará la apariencia de un sol y los rectangles serán las calles, para dar el efecto de un edificio utilizamos una barra bar 3d y asi programamos nuestra calle con un sol y un edificio con sus respectivas ventanas. #include<graphics.h> #include<stdio.h> #include<conio.h> main()
// LLAMADO A DIFERENTES LIBRERIAS
{ int tarjeta,modo,error,estilo; int x,y,i,x1,y1; detectgraph(&tarjeta,&modo); initgraph(&tarjeta,&modo,"C:\\TC\\BGI"); //* Inicio de modo grafico error=graphresult();
//* error de modo grafico.
if(error) { printf("%s",grapherrormsg(error)); } else { x=getmaxx()/1.5; y=getmaxy()/3.7;
Posicionamiento en pantalla
x1=getmaxx()/2; y1=getmaxy()/1.8; for(estilo=SOLID_LINE;estilo<=USERBIT_LINE;estilo++) { setlinestyle(estilo,1,3); /*rectangle(1,200,625,270); setcolor(YELLOW);
*/
setfillstyle(SOLID_LINE,LIGHTGRAY); bar3d(x1-295,y1-10,x1+280,y1+10,70,1);
rectangle(1,400,625,470); setfillstyle(SOLID_LINE,CYAN); bar3d(x-50,y-80,x+50,y+80,50,1); setcolor(15); setfillstyle(SOLID_LINE,BLACK); rectangle(385,70,400,80); rectangle(385,90,400,100); rectangle(385,110,400,120); rectangle(385,130,400,140); rectangle(413,70,428,80); rectangle(413,90,428,100); rectangle(413,110,428,120); rectangle(413,130,428,140); rectangle(441,70,456,80); rectangle(441,90,456,100); rectangle(441,110,456,120); rectangle(441,130,456,140); rectangle(395,165,419,200); rectangle(421,165,445,200); putpixel(413,181,WHITE); putpixel(427,181,WHITE); ellipse(420,170,0,180,25,25); setcolor(YELLOW);
AquĂ insertamos una barra 3d y con varios rectangles vamos a formar nuestro edificio
line(1,335,100,335); line(150,335,250,335); line(300,335,400,335); line(450,335,550,335); line(600,335,700,335); /* setfillstyle(SOLID_FILL,YELLOW); */ circle(35,35,30); settextstyle(SANS_SERIF_FONT,HORIZ_DIR,4); outtextxy(150,50,"GRUPO 3"); getch(); } return(); closegraph(); // Fin Modo grafico } }
CORRIDO DEL PROGRAMA
EJERCICIO # 03 #include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> #include <dos.h>
int i,j,x6,y6; int x,y; char op; int poly[10];
void borde() { cleardevice(); //limpia la pantalla setcolor(3); //color de linea setlinestyle(0,3,2);//define es estilo de linea rectangle(1,1,getmaxx(),getmaxy());//dibuja un rectangulo setcolor(4); //color de linea setlinestyle(0,3,2); rectangle(3,3,getmaxx()-3,getmaxy()-3); setcolor(3); //color de linea setlinestyle(0,3,2); rectangle(6,6,getmaxx()-6,getmaxy()-6); }
void main() {
//AQUI ACTIVAMOS EN MODO GRAFICO int gdriver = DETECT, gmode, errorcode;//variables para detectar modo grafico clrscr(); initgraph(&gdriver, &gmode, "c:\\turboc3\\bgi"); //inicializar modo grafico
errorcode = graphresult();//almacena el error de inicio de modo grafico if (errorcode != grOk) //detecta si hay algun error { printf("Giles Error en modo grafico: %s\n", grapherrormsg(errorcode)); printf("andate a FILE, CHANGE DIR.., y cambiamos el directorio a BGI:"); getch(); exit(1);//forzar la salida del programa }
x6=getmaxx();//devuelve el numero de columnas en la pantalla y6=getmaxy();//devuelve el numero de filas en la pantalla gotoxy(30,2); printf("getmaxx = %d
getmaxy =
%d",x6,y6);
//AQUI GENERAMOS LA PANTALLA INICIA for(j=1;j<=36;j++)//for para mover el PACMAN de un extremo a otro { setcolor(4); //color de linea setfillstyle(1,4); //tipo de rellenado y color
settextstyle(3,0,8);//define estilo de letra, tipo, orientacion y tamanio outtextxy(50,10,"Programacion II");//imprime texto en pantall
setcolor(3); //color de linea setfillstyle(1,3); //tipo de rellenado y color settextstyle(1,0,6); outtextxy(230,90,"Grupo 4");
setcolor(2); //color de linea setfillstyle(1,2); //tipo de rellenado y color settextstyle(1,0,3); outtextxy(150,200,"Integrantes :");
setcolor(8); //color de linea setfillstyle(1,8); //tipo de rellenado y color settextstyle(5,0,3);
setcolor(0); //color de linea setfillstyle(1,0); //tipo de rellenado y color bar(10,310,80+(j*16),390);//barra que borrara el texto haciendo parecer //que el PACMAN se come las letras
setcolor(9); //color de linea setfillstyle(1,9); //tipo de rellenado y color settextstyle(1,0,6); outtextxy(125,310,"Bar - Bar 3d - Arc");
setcolor(0); //color de linea setfillstyle(1,0); //tipo de rellenado y color bar(10,310,80+(j*16),390);//barra que borrara el texto haciendo parecer //que el PACMAN se come las letras
for(i=0;i<=45;i++)
//for para abrir boca del
PACMAN { i++; setcolor(0); //color de linea setfillstyle(1,14); //tipo de rellenado y color sector(50+(j*15), 350, i, 360-i, 40, 40); //rellena el arco setcolor(0); //color de linea setfillstyle(1,0); //tipo de rellenado y color fillellipse(58+(j*15),329, 4, 4);//coloco ojos al PACMAN
}
for(i=0;i<=45;i++)
//for para cerrar boca del
PACMAN { i++; setcolor(0); //color de linea setfillstyle(1,14); //tipo de rellenado y color sector(50+(j*15), 350, 45-i, 315+i, 40, 40); //rellena el arco setcolor(0); //color de linea setfillstyle(1,0); //tipo de rellenado y color fillellipse(58+(j*15),329, 4, 4);//coloco ojos al PACMAN
} }
for(j=1;j<=16;j++) //for para dar efecto de encendidoapagado al texto { setcolor(9); //color de linea setfillstyle(1,9); //tipo de rellenado y color settextstyle(1,0,3);
outtextxy(65,330,"Presione una tecla para continuar"); delay(45);
setcolor(0); //color de linea setfillstyle(1,0); //tipo de rellenado y color settextstyle(1,0,3); outtextxy(65,330,"Presione una tecla para continuar"); delay(25);
setcolor(4); //color de linea setfillstyle(1,4); //tipo de rellenado y color settextstyle(1,0,3); outtextxy(65,330,"Presione una tecla para continuar"); delay(45); } getch();
// AQUI INICIAMOS LAS SEGUNDA PANTALLA EXPLICACION DE FUNCION BAR borde();// llamamos a funcion borde
setcolor(3); //color de linea setfillstyle(1,3); //tipo de rellenado y color settextstyle(3,0,6); outtextxy(250,2,"B a r");
setcolor(8); //color de linea setfillstyle(1,8); //tipo de rellenado y color settextstyle(5,0,3); outtextxy(10,50,"Dibuja una barra solida es decir con relleno,hay que acla_"); outtextxy(10,80,"rar que aunque tenga los parametros similares a la funcion"); outtextxy(10,110,"Rectangle, la diferencia entre las dos es el relleno que la"); outtextxy(10,140,"Funcion Bar posee."); setcolor(3); //color de linea setfillstyle(1,3); //tipo de rellenado y color outtextxy(10,170,"Su Sintaxis es :"); setcolor(8); //color de linea setfillstyle(1,8); //tipo de rellenado y color outtextxy(10,200,"bar(int left, int top, int right, int bottom);"); setcolor(3); //color de linea setfillstyle(1,3); //tipo de rellenado y color outtextxy(10,230,"En donde:");
setcolor(8); //color de linea setfillstyle(1,8); //tipo de rellenado y color settextstyle(5,0,2); outtextxy(10,260,"left
==> indica la columna del
vertice sup. izquierdo de la barra"); outtextxy(10,290,"top
==> indica la fila del vertice
sup. izquierdo de la barra"); outtextxy(10,320,"right
==> indica la columna del
vertice inf. derecho de la barra"); outtextxy(10,350,"botton ==> indica la fila del vertice inf. derecho de la barra"); settextstyle(4,0,3); setcolor(9); //color de linea setfillstyle(1,9); //tipo de rellenado y color outtextxy(60,400,"Presione enter para ver el ejemplo de funcion BAR"); getch(); setcolor(0); //color de linea setfillstyle(1,0); //tipo de rellenado y color bar(30,390,620,450); setcolor(3); //color de linea setlinestyle(0,3,2); rectangle(30,390,620,450); setcolor(4); //color de linea setlinestyle(0,3,2);
rectangle(33,393,617,447); setcolor(3); //color de linea setlinestyle(0,3,2); rectangle(36,396,614,444);
for(i=0;i<=60;i++)//for para mediante funcion BAR simulamos barra de //progreso { setcolor(2); //color de linea setfillstyle(1,2); //tipo de rellenado y color bar(50,405,60+(i*9),435);//barra que se incrementa segun el for
setcolor(2); //color de linea setfillstyle(1,2); //tipo de rellenado y color bar(240,410,420,430);//bara que sirve de fondo para el mensaje
settextstyle(1,0,3); setcolor(4); //color de linea setfillstyle(1,4); //tipo de rellenado y color outtextxy(260,405,"Pensando.");
for(j=0;j<=5;j++)//for para simular puntos suspensivos { outtextxy(370+(j*5),405,"."); delay(45);//funcion para espera en milisegundos } } setcolor(2); //color de linea setfillstyle(1,2); //tipo de rellenado y color bar(50,410,600,430); settextstyle(1,0,3); setcolor(4); //color de linea setfillstyle(1,4); //tipo de rellenado y color outtextxy(260,405,"Terminado"); getch();
//AQUI EXPLICACION DE BARRA 3D borde(); setcolor(3); //color de linea setfillstyle(1,3); //tipo de rellenado y color settextstyle(3,0,6); outtextxy(250,2,"Bar 3D");
setcolor(8); //color de linea setfillstyle(1,8); //tipo de rellenado y color settextstyle(5,0,3); outtextxy (10,50,"Dibuja una barra en 3D (tres dimensiones, alto, ancho y"); outtextxy (10,80,"profundidad) los parametros que utiliza son los mismos q"); outtextxy(10,110,"la funcion Bar, pero se suma ademas el parametro de profun_"); outtextxy(10,140,"didad y el de si se coloca tapa o no en la barra 3D"); setcolor(3); //color de linea setfillstyle(1,3); //tipo de rellenado y color outtextxy(10,170,"Su Sintaxis es :"); setcolor(8); //color de linea setfillstyle(1,8); //tipo de rellenado y color outtextxy(10,200,"bar3d(int left, int top, int right, int bottom,int depth, int topflag)"); setcolor(3); //color de linea setfillstyle(1,3); //tipo de rellenado y color outtextxy(10,230,"En donde:"); setcolor(8); //color de linea setfillstyle(1,8); //tipo de rellenado y color settextstyle(5,0,2);
outtextxy(10,260,"left
==> indica la columna del
vertice sup. izq. de la barra3D"); outtextxy(10,290,"top
==> indica la fila del vertice
sup. izq. de la barra3D"); outtextxy(10,320,"right
==> indica la columna del
vertice inf. der. de la barra3D"); outtextxy(10,350,"botton ==> indica la fila del vertice inf. der. de la barra3D"); outtextxy(10,380,"depth
==> indica la profundidad
que tendra la barra3D"); outtextxy(10,410,"topflag ==> indica si tendra o no tapa la barra3D");
settextstyle(4,0,3); setcolor(9); //color de linea setfillstyle(1,9); //tipo de rellenado y color outtextxy(50,440,"Presione enter para ver el ejemplo de funcion BAR3D"); getch();
//PANTALLA PARA EJEMPLO DE BARRAS 3D borde(); settextstyle(3,0,2); setcolor(6); outtextxy(245,5,"Ejemplo de Barra 3D");
setlinestyle(0,0,2);
line(100,420,100,60);//Dibuja una linea line(100,420,600,420); line(90,70,100,60); line(110,70,100,60); line(590,410,600,420); line(590,430,600,420); line(100,420,120,400);
outtextxy(95,35,"Y"); outtextxy(610,405,"X"); outtextxy(85,415,"O"); outtextxy(120,370,"Z");
settextstyle(4,0,2); outtextxy(160,50,"con tapa"); setfillstyle(5,1); //coloca tipo de relleno y su color bar3d(150,100,200,419,10,1); //coloca barra 3d
settextstyle(4,0,2); outtextxy(225,110,"sin tapa"); setfillstyle(1,2);
bar3d(225,150,275,419,10,0);
setfillstyle(2,3); bar3d(300,200,350,419,10,1);
setfillstyle(3,4); bar3d(375,125,425,419,10,0);
setfillstyle(4,5); bar3d(450,175,500,419,10,1);
getch();
//EXPLICACION DE FUNCION ARC borde(); setcolor(3); //color de linea setfillstyle(1,3); //tipo de rellenado y color settextstyle(3,0,6); outtextxy(250,2,"A r c"); setcolor(8); //color de linea setfillstyle(1,8); //tipo de rellenado y color
settextstyle(5,0,3); outtextxy (10,50,"Dibuja una Arco circular, dentro de este tipo de funciones"); outtextxy (10,80,"tenemos tambien : circle, pieslice "); setcolor(3); //color de linea setfillstyle(1,3); //tipo de rellenado y color outtextxy(10,110,"Su Sintaxis es :"); setcolor(8); //color de linea setfillstyle(1,8); //tipo de rellenado y color outtextxy(10,140,"arc(int x, int y, int stangle, int endangle, int radius)"); setcolor(3); //color de linea setfillstyle(1,3); //tipo de rellenado y color outtextxy(10,230,"En donde:"); setcolor(8); //color de linea setfillstyle(1,8); //tipo de rellenado y color settextstyle(5,0,2); outtextxy(10,260,"X
==> indica la columna del punto
central del arco"); outtextxy(10,290,"Y
==> indica la fila del punto
central del arco"); outtextxy(10,320,"stangle
==> indica el angulo inicial
del arco"); outtextxy(10,350,"endangle ==> indica el angulo final del arco");
outtextxy(10,380,"radius
==> indica el tamano del
radio");
settextstyle(4,0,3); setcolor(9); //color de linea setfillstyle(1,9); //tipo de rellenado y color outtextxy(50,440,"Presione enter para ver el ejemplo de funcion ARC"); getch();
//EJEMPLO DE FUNCION ARC, SIMULACION DE UN CRONOMETRO SIMPLE i=0; j=360; cleardevice(); borde(); do { i++; settextstyle(4,0,4); setcolor(4); //color de linea setfillstyle(1,4); //tipo de rellenado y color
outtextxy(70,420,"Presione cualquier tecla para salir");
setcolor(0); //color de linea setfillstyle(1,0); //tipo de rellenado y color bar(100,50,480,400);
setcolor(4); //color de linea setfillstyle(1,4); //tipo de rellenado y color gotoxy(41,15);printf("%d",j/6); j--; arc(getmaxx()/2,getmaxy()/2, i, 360, 150); delay(150); if (i==360) { i=0; j=360; } } while (!kbhit());
borde(); setcolor(3); //color de linea
setfillstyle(1,3); //tipo de rellenado y color settextstyle(3,0,4); outtextxy(20,2,"Estilos de relleno"); setcolor(8); //color de linea setfillstyle(1,8); //tipo de rellenado y color settextstyle(2,0,4); outtextxy (10,50,"for (i=0; i<30; i++)"); outtextxy (10,60,"{"); outtextxy(10,70,"setcolor(14); //definimos color de la linea"); outtextxy(10,80,"setfillstyle(1,14);//definimos el color del relleno"); outtextxy(10,90,"circle(450,180,i);//graficamos un circulo"); outtextxy(10,100,"}");
for (i=0; i<30; i++) { setcolor(14); //definimos color de la linea setfillstyle(1,14);//definimos el color del relleno circle(360,80,i);//graficamos un circulo }
setcolor(8); //color de linea setfillstyle(1,8); //tipo de rellenado y color
settextstyle(2,0,4); outtextxy (10,140,"setcolor(14); //definimos color de la linea"); outtextxy (10,150,"setfillstyle(1,14);//definimos el color del relleno "); outtextxy(10,160,"circle(450,50,30);//graficamos un circulo"); outtextxy(10,170,"floodfill(400,50,14);//llenamos el area del circulo");
setcolor(14); //definimos color de la linea setfillstyle(1,14);//definimos el color del relleno circle(360,160,30);//graficamos un circulo floodfill(360,160,14);//llenamos el area del circulo con el color del relleno
setcolor(8); //color de linea setfillstyle(1,8); //tipo de rellenado y color settextstyle(2,0,4); outtextxy (10,220,"setcolor(14); //definimos color de la linea"); outtextxy (10,230,"setfillstyle(1,14);//definimos el color del relleno"); outtextxy (10,240,"ellipse(450,310,0,360,50,30)");
setcolor(14); //definimos color de la linea
setfillstyle(1,14);//definimos el color del relleno ellipse(360,240,0,360,50,30);
setcolor(8); //color de linea setfillstyle(1,8); //tipo de rellenado y color settextstyle(2,0,4); outtextxy (10,300,"setcolor(14); //definimos color de la linea"); outtextxy (10,310,"setfillstyle(1,14);//definimos el color del relleno"); outtextxy (10,320,"fillellipse(450,410,30,30)");
setcolor(14); //definimos color de la linea setfillstyle(1,14);//definimos el color del relleno fillellipse(360,320,30,30);
setcolor(8); //color de linea setfillstyle(1,8); //tipo de rellenado y color settextstyle(2,0,4); outtextxy (10,360,"setcolor(14); //definimos color de la linea"); outtextxy (10,370,"setfillstyle(1,14);//definimos el color del relleno"); outtextxy (10,380,"arc(500,390,0,180,30);//defino un arco");
setcolor(14); //definimos color de la linea setfillstyle(1,14);//definimos el color del relleno arc(360,390,0,180,30);//definimos un arco
setcolor(8); //color de linea setfillstyle(1,8); //tipo de rellenado y color settextstyle(2,0,4); outtextxy (10,420,"setcolor(14); //definimos color d e la linea"); outtextxy (10,430,"setfillstyle(1,14);//definimos el color del relleno"); outtextxy (10,440,"pieslice(500,450,0,180,30);//definimos un pedazo de pie");
setcolor(14); //definimos color de la linea setfillstyle(1,14);//definimos el color del r elleno pieslice(360,450,0,180,30);//definimos un pedazo de pie
//PARA DIBUJAR UN POLIGONO Y COLOCAR RELLENO setcolor(8); //color de linea setfillstyle(1,8); //tipo de rellenado y color settextstyle(2,0,4);
outtextxy (425,260,"poly[0] = 615; //defino 1er.vertice"); outtextxy (425,270,"poly[1] = 60;"); outtextxy (425,290,"poly[2] = 560; //defino 2do.vertice"); outtextxy (425,300,"poly[3] = 80;"); outtextxy (425,320,"poly[4] = 505; //defino 3er.vertice"); outtextxy (425,330,"poly[5] = 120;"); outtextxy (425,350,"poly[6] = 550; //defino 4ta.vertice"); outtextxy (425,360,"poly[7] = 240;"); outtextxy (425,380,"fillpoly no cierra automaticamente"); outtextxy (425,390,"por eso lo debemos cerrar nosotros"); outtextxy (425,410,"poly[8] = poly[0];"); outtextxy (425,420,"poly[9] = poly[1];"); outtextxy (425,440,"fillpoly(5, poly);//creo el poligono");
setcolor(14); //definimos color de la linea setfillstyle(1,14);//definimos el color del relleno
poly[0] = 615; //defino primer vertice
poly[1] = 60;
poly[2] = 560; //defino segundo vertice poly[3] = 80;
poly[4] = 505; //defino tercer vertice poly[5] = 120;
poly[6] = 550; //defino cuarto vertice poly[7] = 240;
//
fillpoly no cierra automaticamente
//
hay que cerrarlo uno mismo
poly[8] = poly[0]; poly[9] = poly[1];
fillpoly(5, poly);//creo el poligono
settextstyle(4,0,2); setcolor(4); //color de linea setfillstyle(1,4); //tipo de rellenado y color outtextxy(150,445,"Presione cualquier tecla para continuar");
getch(); getch();
borde(); setcolor(3); //color de linea setfillstyle(1,3); //tipo de rellenado y color settextstyle(3,0,4); outtextxy(220,2,"Barras 3D"); setcolor(8); //color de linea setfillstyle(1,8); //tipo de rellenado y color settextstyle(2,0,4); outtextxy (10,50,"settextstyle(4,0,2);"); outtextxy (10,60,"setfillstyle(2,2);"); outtextxy (10,70,"for (i=0; i<270; i++)"); outtextxy (10,80,"{"); outtextxy (10,90,"bar3d(425,420i,550,419,30,1);//creamos el edificio"); outtextxy (10,100,"delay(10);"); outtextxy (10,110,"}");
outtextxy (10,130,"settextstyle(4,0,0);"); outtextxy (10,140,"setfillstyle(1,0);"); outtextxy (10,150,"bar(435,170,470,200);// creamos las ventana1");
outtextxy (10,160,"delay(550);");
outtextxy (10,180,"settextstyle(4,0,1);"); outtextxy (10,190,"setfillstyle(1,1);"); outtextxy (10,200,"bar(495,170,530,200);// creamos las ventana2"); outtextxy (10,210,"delay(550);");
outtextxy (10,230,"settextstyle(4,0,2);"); outtextxy (10,240,"setfillstyle(1,2);"); outtextxy (10,250,"bar(435,220,470,250);// creamos las ventana3"); outtextxy (10,260,"delay(550);");
outtextxy (10,280,"settextstyle(4,0,3);"); outtextxy (10,290,"setfillstyle(1,3);"); outtextxy (10,300,"bar(495,220,530,250);// creamos las ventana4"); outtextxy (10,310,"delay(550);");
outtextxy (10,330,"settextstyle(4,0,4);"); outtextxy (10,340,"setfillstyle(1,4);"); outtextxy (10,350,"bar(435,270,470,300);// creamos las ventana5"); outtextxy (10,360,"delay(550);");
outtextxy (10,380,"settextstyle(4,0,5);"); outtextxy (10,390,"setfillstyle(1,5);"); outtextxy (10,400,"bar(495,270,530,300);// creamos las ventana6"); outtextxy (10,410,"delay(550);");
settextstyle(4,0,2); setfillstyle(2,2); for (i=0; i<270; i++) { bar3d(425,420-i,550,419,30,1);//creamos el edificio delay(10); }
settextstyle(4,0,0); setfillstyle(1,0); bar(435,170,470,200);// creamos las ventana1 delay(250);
settextstyle(4,0,1); setfillstyle(1,1); bar(495,170,530,200);// creamos las ventana2
delay(250);
settextstyle(4,0,2); setfillstyle(1,2); bar(435,220,470,250);// creamos las ventana3 delay(250);
settextstyle(4,0,3); setfillstyle(1,3); bar(495,220,530,250);// creamos las ventana4 delay(250);
settextstyle(4,0,4); setfillstyle(1,4); bar(435,270,470,300);// creamos las ventana5 delay(250);
settextstyle(4,0,5); setfillstyle(1,5); bar(495,270,530,300);// creamos las ventana6 delay(250);
settextstyle(4,0,6);
setfillstyle(1,6); bar(435,320,470,350);// creamos las ventana5 delay(250);
settextstyle(4,0,7); setfillstyle(1,7); bar(495,320,530,350);// creamos las ventana6 delay(250);
settextstyle(4,0,8); setfillstyle(1,8); bar(435,370,470,400);// creamos las ventana7 delay(250);
settextstyle(4,0,9); setfillstyle(1,9); bar(495,370,530,400);// creamos las ventana8 delay(250);
for (i=0; i<40; i++) { setcolor(14); //definimos color de la linea setfillstyle(1,14);//definimos el color del relleno
fillellipse(460,60,i,i); delay(15); }
setcolor(0); //definimos color de la linea setfillstyle(1,0);//definimos el color del relleno fillellipse(440,50,5,5); delay(25);
setcolor(0); //definimos color de la linea setfillstyle(1,0);//definimos el color del relleno sector(480,50,0,360,5,5); delay(25);
for (i=0; i<15; i++) { setcolor(0); //definimos color de la linea setfillstyle(1,0);//definimos el color del relleno pieslice(460,70,180,360,i);//definimos un pedazo de pie delay(65); }
for (i=0; i<6; i++)
{ setcolor(14); //definimos color de la linea setfillstyle(1,14);//definimos el color del relleno sector(480,50,0,360,5,i); delay(25); }
for (i=0; i<6; i++) { setcolor(0); //definimos color de la linea setfillstyle(1,0);//definimos el color del relleno sector(480,50,0,360,5,i); delay(155); }
settextstyle(4,0,2); setcolor(4); //color de linea setfillstyle(1,4); //tipo de rellenado y color outtextxy(150,445,"Presione cualquier tecla para continuar"); getch(); closegraph();//cerrar modo grafico return 0;
}
CORRIDO DEL PROGRAMA
EJERCICIO # 04 #include<graphics.h> #include<stdio.h>
Ingreso de libreria
#include<conio.h> void main() { int tarjeta,modo,error,estilo; int x,y,i,x1,y1; detectgraph(&tarjeta,&modo); initgraph(&tarjeta,&modo,"C:\\TurboC3\\BGI"); error=graphresult();
//*Error en modo grafico
if(error) { printf("%s",grapherrormsg(error));
INICIAMOS MODO GRAFICO
} else { x=getmaxx()/1.5; y=getmaxy()/3.7; x1=getmaxx()/2;
POSICIONAMIENTOS EN PANTALLA.
y1=getmaxy()/1.8;
for(estilo=SOLID_LINE;estilo<=USERBIT_LINE;estilo+ +)
//* Laso for utilizado para cambiar
estilo de lineas. { setlinestyle(estilo,1,3); setfillstyle(SOLID_LINE,LIGHTGRAY); bar3d(x1-295,y1-10,x1+280,y1+10,70,1); rectangle(1,400,625,470); setfillstyle(SOLID_LINE,CYAN); bar3d(x-50,y-80,x+50,y+80,50,1); setcolor(15); setfillstyle(SOLID_LINE,BLACK); rectangle(385,70,400,80); rectangle(385,90,400,100); rectangle(385,110,400,120); rectangle(385,130,400,140); rectangle(413,70,428,80);
AquĂ utilizamos una barra 3 d para dar una apariencia de un edificio, con sus respectivas ventanas.
rectangle(413,90,428,100); rectangle(413,110,428,120); rectangle(413,130,428,140); rectangle(441,70,456,80); rectangle(441,90,456,100); rectangle(441,110,456,120); rectangle(441,130,456,140); rectangle(395,165,419,200); rectangle(421,165,445,200); putpixel(413,181,WHITE); putpixel(427,181,WHITE); ellipse(420,170,0,180,25,25); setcolor(YELLOW); setfillstyle(1,14); line(1,335,100,335); line(150,335,250,335);
AquĂ utilizamos rectangles, circles, lines, put pixel para ubicar un punto en pantalla y set color para dar colores a nuestro diseĂąo.
line(300,335,400,335); line(450,335,550,335); line(600,335,700,335); circle(35,35,30); floodfill(36,36,14); settextstyle(SANS_SERIF_FONT,HORIZ_DIR,4); outtextxy(150,50,"GRUPO 4"); texto en pantalla
//* Imprimimos
getch(); } return; closegraph();
//* Cerrramos modo grรกfico
} }
CORRIDO DEL PROGRAMA
Análisis del programa En este programa ingresamos varias librerías, las cuales están por defecto en el programa iniciamos modo grafico y también insertamos circles y rectangles los circles nos dará la apariencia de un sol y los rectangles serán las calles, para dar el efecto de un edificio utilizamos una barra bar 3d y asi programamos nuestra calle con un sol y un edificio con sus respectivas ventanas.