Programacion en Lenguaje C

Page 1

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(“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.


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.