1
Escuela Superior de Ingeniería Mecánica y Eléctrica. (ESIME) Fundamentos de la Programación Ingeniería en Comunicaciones y Electrónica. (ICE) Integrantes: Aguirre Juárez Alejandro. Minguela Rodríguez Jesús Alberto. EQUIPO: 6 GRUPO: 1CV3 Profesor: Garduño Medina Jorge Adrián MATERIA: FUNDAMENTOS DE PROGRAMACION
2
Índice Contenido Introducción ........................................................................................................................... 3
Códigos ............................................................................ Error! Bookmark not defined. PRACTICA 2. “TECLAS DIRECCION”. ................................................................................... 4 PRACTICA 3. “PIANO”......................................................................................................... 5 PRACTICA 4. “RESISTENCIAS”. ........................................................................................... 6 PRACTICA 5. “CARÁCTER DESPLAZAMIENTO HORIZONTAL”. .......................................... 7 PRACTICA 6. “CARÁCTER DESPLAAMIENTO CIRCULAR”. .................................................. 7 PRACTICA 7. “ESCALERA” ................................................................................................... 8 PRACTICA 8. “CODIGO ASCII”. ........................................................................................... 8 PRACTICA 9. “ESTATURAS”. ............................................................................................... 9 PRACTICA 10. “SERIE DE ULAM”. ....................................................................................... 9 PRACTICA 11. “SERIE FIBONACCI”. .................................................................................. 10 PRACTICA 12. “MCD Y MCM”. ......................................................................................... 10 PRACTICA 15. “NUMERO FACTORIAL”. ........................................................................... 11 PRACTICA 17. “CARÁCTER RANDOM PANTALLA”. .......................................................... 11 PRACTICA 18. “CARÁCTER RANDOM DESPLIEGUE VERTICAL”. ...................................... 12 PRACTICA 19. “CARÁCTER CHOQUE/REBOTE”. ............................................................... 12 PRACTICA 20. “NUMERO FACTORIAL CON WHILE”. ....................................................... 13 PRACTICA 21.“SERIE ULAM DO WHILE”. ......................................................................... 13 PRACTICA 22. “CARÁCTER RANDOM PANTALLA CON WHILE Y EVENTUAL”. ................ 13 PRACTICA 23. “MCD Y MCM CON DO WHILE Y EVENTUAL”........................................... 14 CONCLUSIONES ................................................................................................................. 15
3
Introducción
Una vez empleado lo principal de aquellos conceptos que influyen a la hora de hacer un programa, como Visores; que básicamente te muestran el tipo de formato en el que quieres ver tu dato, otro serían los Operadores Aritméticos, Relaciones y Lógicos; los cuales indican al compilador realizar manipulación matemáticas o lógicas especiales, Conocer de igual forma los Tipos de Variables, Conocer las Funciones y su acción, las funciones de las Bibliotecas como la “math.h” que es donde se emplean funciones trigonométricas, lógicas, exp,etc, Sentencia Selectiva if, else; para una o más preguntas condicionales, nuestras Funciones de Usuario; que juegan un papel muy importante en la programación modular y en la forma en como desarrollamos nuestros programas , con esto Juntamos suficiente experiencia de lógica para utilizar nuevas funciones como la sentencia Swtich, en la cual nos permite comparar una variable por igualdad frente a una lista de constantes o casos y los ciclos, que sería lo fundamental en casi cualquier programa pues en base a esto nos permiten repetir una acción determinado número de veces a partir de los diferentes campos que cada tipo de ciclo nos presentan, aprendimos cada uno de los pasos a seguir para la implementación de un correcto ciclo con su respectiva acción dependiendo si era “For”,”While!,”Do While” .
4
Códigos PRACTICA 1. “PANTALLA COLORES (MENU)”. #include <stdio.h> #include #include "Terminado.c" char menu(void) {char opcion; gotoxy(40,25);printf("Presione la tecla [ESC] Para cerrar el programa"); gotoxy(30,2);printf("Seleccione el Número Correspondiente para el fondo de pantalla"); gotoxy(3,4);printf("0= (Fondo Negro)"); gotoxy(3,6);printf("1= (Fondo Azul)"); gotoxy(3,8);printf("2= (Fondo Verde)"); gotoxy(3,10);printf("3= (Fondo AzulMarino)"); gotoxy(3,12);printf("4= (Fondo Rojo)"); gotoxy(3,14);printf("5= (Fondo Purpura)"); gotoxy(3,16);printf("6= (Fondo Amarillo)"); gotoxy(3,18);printf("7= (Fondo Blanco)"); gotoxy(3,20);printf("8= (Fondo Gris)"); gotoxy(3,22);printf("9= (fondo Azul LLoroso)"); opcion=getch(); return (opcion); }void Fondos(char p) {switch(p) {case‘0':textcolor(15);textbackground(0);break; case '1':textbackground(1);break; case '2':textbackground(2);break; case '3':textbackground(3);break; case '4':textbackground(4);break; case '5':textbackground(5);break; case '6':textbackground(6);break; case '7':textbackground(7);break; case '8':textbackground(8);break; case '9':textbackground(9);break; case 27:exit(0);break; default:gotoxy(60,10);printf("Valor incorrecto");sleep(200); }clrscr(); } int main(void) { char tecla; Caratula();clrscr();;textcolor(0); while(1){ tecla=menu(); Fondos(tecla); } }
PRACTICA 2. “TECLAS DIRECCION”. #include <stdio.h> #include #include "Terminado.c" char menu(void) { char opcion; gotoxy(40,25);printf("Presione la tecla [ESC] Para cerrar el programa"); gotoxy(4,4);printf("Oprimir cualquier tecla de direccion"); gotoxy(4,6);printf("\30"); gotoxy(4,8);printf("\31 "); gotoxy(4,10);printf("\32 "); gotoxy(4,12);printf("\33 "); opcion=getch(); return (opcion); } void Direccion(char p) { switch(p) { case 72:gotoxy(8,6);printf("Arriba");break; case 80:gotoxy(8,8);printf("Abajo");break; case 75:gotoxy(8,12);printf("Izquiera");break; case 77:gotoxy(8,10);printf("Derecha");break; case 27:exit(0);break; } } int main(void) { char Flecha; Caratula();clrscr();textcolor(0); while(1) { Flecha=menu();clrscr(); Direccion(Flecha); } //getch(); //return 0; }
5
PRACTICA 3. “PIANO”. #include <stdio.h> #include #include <windows.h> #include <math.h> int z=5;int h=3; int p=2; int c=1; int t=1; void edicion(void){ switch (c){ //horizontales case 1: if(t==3){h=2; p=3; t=1; c++; edicion();} else{ if(h==118){h=3; p=20; t++; edicion();} else {gotoxy(h,p); printf("\315"); h++; edicion();}} break; //paralelas case 2: if (t==3){h=17; p=20; t=1; c++; edicion();} else{ if (p==20){h=118; p=3; t++; edicion();} else {gotoxy(h,p);printf("\272"); p++; edicion();}}break; //teclas case 3: if(t==7){c++; p=10; h=15; t=1; edicion();} else{ if(p==10){p=19; h+=17; t++; edicion();} else{gotoxy(h,p);printf("\272");p--; edicion();}break; } //negras case 4: if(t==6){} else{ if(p==2){p=10; h++; t++; edicion();} else{gotoxy(h,p); printf("\333");p-;edicion();}} break;}} void edicion2(void){ gotoxy(2,2); printf("\311"); gotoxy(118,2); printf("\273"); gotoxy(2,20); printf("\310");
gotoxy(118,20); printf("\274"); gotoxy(17,20); printf("\312"); gotoxy(34,20); printf("\312"); gotoxy(51,20); printf("\312"); gotoxy(68,20); printf("\312"); gotoxy(85,20); printf("\312"); gotoxy(102,20); printf("\312"); gotoxy(17,2);printf("\334"); gotoxy(34,2);printf("\334"); gotoxy(68,2);printf("\334"); gotoxy(85,2);printf("\334"); gotoxy(102,2);printf("\334");} char menu(void){char opcion; opcion = getch();}
int frec (int a, int b){ return (440* 4)*log(2)));}
exp((((10.0-a)/12)+b-
void teclado (char a){ switch(a){ case 'a': Beep(frec(1,z),180);break; case 's': Beep(frec(3,z),180);break; case 'd': Beep(frec(5,z),180);break; case 'f': Beep(frec(6,z),180);break; case 'g': Beep(frec(8,z),180);break; case 'h': Beep(frec(10,z),180);break; case 'j': Beep(frec(12,z),180);break; case 'w': Beep(frec(2,z),180);break; case 'e': Beep(frec(4,z),180);break; case 't': Beep(frec(7,z),180);break; case 'y': Beep(frec(9,z),180);break; case 'u': Beep(frec(11,z),180);break; case 27 : exit(0); case '+': z++; break; case '-': z--; break;}} int main(void) { char tecla; textbackground(15);textcolor(0);clrscr(); gotoxy(50,1); printf("Teclado"); edicion (); edicion2(); while (1){ tecla = menu(); teclado (tecla); edicion();} }
6
PRACTICA 4. “RESISTENCIAS”. #include <stdio.h> #include #include <math.h> void menu(void){ gotoxy(40,2);printf("Calculo de Resistencias"); gotoxy(30,4);printf("a. Negro."); gotoxy(30,6);printf("b. Cafe."); gotoxy(30,8);printf("c. Rojo."); gotoxy(30,10);printf("d. Naranja."); gotoxy(30,12);printf("e. Amarillo."); gotoxy(30,14);printf("f. Verde."); gotoxy(30,16);printf("g. Azul."); gotoxy(30,18);printf("h. Violeta."); gotoxy(30,20);printf("i. Gris."); gotoxy(30,22);printf("j. Blanco."); }char leer(void){char opcion; opcion = getch();} int color(char a,int *b){ if((a>='a'&&a<='z')||a==27){ switch(a){ case 'a': *b=0; break; case 'b': *b=1; break; case 'c': *b=2; break; case 'd': *b=3; break; case 'e': *b=4; break; case 'f': *b=5; break; case 'g': *b=6; break; case 'h': *b=7; break; case 'i': *b=8; break; case 'j': *b=9; break; default: gotoxy(60,13);printf("Elija una opcion de a hasta j"); gotoxy(60,20);printf("Presione cualquier tecla para ctinuar");getch();clrscr();menu();}} else if ((a>='A'&&a<='Z')||a==27){ switch(a){ case 'A': *b=0; break; case 'B': *b=1; break; case 'C': *b=2; break; case 'D': *b=3; break; case 'E': *b=4; break; case 'F': *b=5; break; case 'G': *b=6; break; case 'H': *b=7; break; case 'I': *b=8; break; case 'J': *b=9; break; case 27 : exit(0); default: gotoxy(60,13);printf("Elija una opcion de a hasta j");
gotoxy(60,20);printf("Presione cualquier tecla para continuar");getch();clrscr();} clrscr();}} void valor(int a, int b, int c){ gotoxy(55,14);printf("%d%d",a,b); switch (c){ case 0: gotoxy(57,14);printf(" ohms"); break; case 1: gotoxy(57,14);printf("0 ohms"); break; case 2: gotoxy(57,14);printf("00 ohms"); break; case 3: gotoxy(57,14);printf(" Kohms"); break; case 4: gotoxy(57,14);printf("0 Kohms"); break; case 5: gotoxy(57,14);printf("00 Kohms"); break; case 6: gotoxy(57,14);printf(" Mohms"); break; case 7: gotoxy(57,14);printf("0 Mohms"); break; case 8: gotoxy(57,14);printf("00 Mohms"); break; case 9: gotoxy(57,14);printf(" Gohms"); break;}} int main(void) { char tecla; int b,c,d; textbackground(3);clrscr(); textcolor(0); menu(); gotoxy(57,9); printf("Primer banda de color"); tecla = leer(); color(tecla,&b); if (b<=9&&b>=0){} else{ gotoxy(57,9); printf("Primer banda de color"); tecla = leer(); color(tecla,&b);} gotoxy(57,9); printf("Segunda banda de color"); tecla = leer(); color(tecla,&c); gotoxy(57,9); printf(" "); gotoxy(57,9); printf("Tercer banda de color"); tecla = leer(); color(tecla,&d); gotoxy(1,27);printf("%d",b); gotoxy(1,28);printf("%d",c); gotoxy(1,29);printf("%d",d); valor(b,c,d); gotoxy(85,28);printf("Presione cualquier tecla para salir"); getch(); return 0; }
7
PRACTICA 5. “CARÁCTER DESPLAZAMIENTO HORIZONTAL”.
#include <stdio.h> #include #include <stdlib.h> #include "Terminado.c" char Leer(void) {char opcion; printf("Caracter= "); opcion=getch(); return(opcion);} void tabla(char x) {char t; for(t=1;t<120;t++) {gotoxy(t,10);printf(" %c");sleep(40);}
PRACTICA 6. “CARÁCTER DESPLAAMIENTO CIRCULAR”. #include <stdio.h> #include #include <math.h> #include "P.1.c" char menu(void){char opcion; textcolor(0); gotoxy(1,1);printf("Caracter: "); gotoxy(97,30); printf("Presione Esc para salir"); opcion = getch(); return(opcion);}
for (;t>0;t--) {gotoxy(t,10);printf("%c ");sleep(40);} }
void ciclo(int a){ int x; int y; for (x=1, y=2; x<=119;x++){ gotoxy(x,y);textcolor(4); printf(" %c",a); sleep(20);} for (y=2; y<29; y++){ gotoxy(x,y);textcolor(2); printf("%c",a); sleep(20); gotoxy(x,y);printf(" ");} for(;x>=1;x--){ gotoxy(x,y);textcolor(3);printf("%c ",a);sleep(20);} for(x=1;y>1;y--){
int main(void) {Caratula();textcolor(0);clrscr(); char z; z=Leer(); tabla(z);
gotoxy(x,y);textcolor(5);printf("%c",a);sleep( 20); gotoxy(x,y);printf(" ");}}
getch(); return 0; }
int main() { int tecla; portada(); textbackground(15);clrscr(); for(;1;){ tecla=menu(); switch(tecla){ case 27: exit(0); break; default:ciclo(tecla);}} }
8
PRACTICA 7. “ESCALERA” #include <stdio.h> #include #include "P.1.c" void escalera(int x, int y, int L, int c, int b){ textcolor(c); switch(b){ case 1: L=x+L; for(;x2;y--){ gotoxy(x,y); printf("\272");} x=x+L+1; for(y=3;y<16;y++){ gotoxy(x,y); printf("\272");}break; }} int main(void) { int b=1, a=3; portada();textbackground(15);clrscr(); for(;a<=15;a+=2){ escalera(40,a,10,1,b); }b=2; //for(;b<=2;b++){ escalera(40,a-2,10,1,b); //} getch(); return 0; }
PRACTICA 8. “CODIGO ASCII”.
#include <stdio.h> #include #include <math.h> #include "P.1.c" void columna(void){ int x=1, y=1; unsigned char c=0; for (;c<256;c++,y++){ gotoxy(x,y); printf("%d.%c",c,c); if(y==25){x+=11; y=0;} if (c==255){ gotoxy(85,27); printf("Presione una tecla para salir."); getch();}}}
int main() { portada();textbackground(4); textcolor(15); clrscr(); columna(); }
9
PRACTICA 9. “ESTATURAS”.
#include <stdio.h> #include #include <math.h> #include "P.1.c" void leer(int *a){ gotoxy(40,5);printf("Numero de personas: ");scanf("%d",a);} void promedio(int a){ int b=1; float c,d=0; for(b=1;b>=a;b++){ gotoxy(40,7); printf("Altura No.%d : ",b);scanf("%f",&c); gotoxy(53,7);printf(" "); d+=c;} d/=a; gotoxy(40,10); printf("Estatura Promedio: %.3f m",d);} int main(void) { int a, portada();textbackground(4); textcolor(15);clrscr(); gotoxy(40,2); printf("Promedio de estatura de n Personas"); leer(&a); promedio(a); getch(); return 0; }
PRACTICA 10. “SERIE DE ULAM”. #include #include <stdio.h> #include "Terminado.c" int NUM(void) {int num;gotoxy(50,2);printf("Serie de ULAM"); gotoxy(5,5);printf(" Ingresa un Numero: "); scanf("%d",&num); return(num); } void Sentencia(int num) { for(;num!=1;) { if(num%2==0) {num/=2;} else{num*=3;num+=1;} printf(",%d",num); } } int main() { Caratula();textcolor(0);clrscr(); int z; z=NUM(); Sentencia(z); getch(); }
10
PRACTICA 12. “MCD Y MCM”. PRACTICA 11. “SERIE FIBONACCI”. #include <stdio.h> #include int Leer(void){ int numero; gotoxy(50,2);printf("SERIE DE FIBONACCI"); gotoxy(30,4);printf("Indique hasta que numero quiere ver la serie de fibonacci: "); scanf("%d",&numero); return(numero); }
int anterior1=1,anterior2=1,fibo=1; printf("%d,",anterior1); for(i=2;i<=num;i++) { printf("%d,",fibo); fibo=anterior1+anterior2; anterior1=anterior2; anterior2=fibo; if(fibo%2==0){par++;} else{imp++;}
}
int mcd(int a,int b) {int c,aux; for(;a%b;){ c=a%b; a=b; b=c; if(a
int Operacion(int num){ int i,par=0,imp=1;
} gotoxy(40,7);printf("Numeros %d",par); gotoxy(40,8);printf("Numeros %d",imp); } int main(void) { int z; z=Leer(); Operacion(z); getch();
#include <stdio.h> #include #include "Terminado.c" void Leer(int *a,int *b) {gotoxy(50,2);printf("MINIMO COMUN MULTIPLO y MAXIMO COMUN DIVISOR"); gotoxy(5,5);printf("Valor [A]= ");scanf("%d",a); gotoxy(5,6);printf("Valor [B]= ");scanf("%d",b);}
void mcm(int a,int b,int c) { int mcm; mcm=(a*b)/c;gotoxy(9,9);printf("[MCM]= %d",mcm);
pares
=
impares
=
} int main(void) { int a, b,z; Caratula();textcolor(0);clrscr(); Leer(&a,&b); z=mcd(a,b); mcm(a,b,z); getch(); }
11
PRACTICA 15. “NUMERO FACTORIAL”. #include <stdio.h> #include #include "Terminado.c" int Leer(void) {int num;gotoxy(40,2);printf("Programa para saber el numero [FACTORIAL] "); gotoxy(6,6);printf("Ingresar un numero entero positivo: "); scanf("%d",&num);return(num); } void Operacion(int num) { double factorial=1,z; for(z=1;z<=num;z++){ factorial=factorial*z;} textcolor(0);gotoxy(8,8);printf("La Respuesta es: %f",factorial); } int main(void) { int z; Caratula();textcolor(0);clrscr(); z=Leer(); Operacion(z); getch(); }
PRACTICA 17. “CARÁCTER RANDOM PANTALLA”. #include <stdio.h> #include #include <math.h> #include "P.1.c" void leer(char *a){ gotoxy(50,1); printf("Ingrese un caracter: "); *a=getch();printf("%c",*a);} void ciclo(char a){ for(;!kbhit();){ gotoxy(2+rand()%118,2+rand()%29); textcolor(rand()%15); printf("%c",a);}} int main(void) { char a; portada();textcolor(0);textbackground(15);clr scr(); leer(&a); ciclo(a); getch(); return 0; }
12
PRACTICA 18. “CARÁCTER RANDOM DESPLIEGUE VERTICAL”. #include <stdio.h> #include #include <math.h> #include "P.1.c" void leer(char *a){ gotoxy(50,1); printf("Ingrese un caracter: "); *a=getch();printf("%c",*a);} void ciclo(char a){ int y,x; for(;!kbhit();){ x=2+rand()%118; for(y=2;y<=30;y++) { gotoxy(x,y);textcolor(15);printf("%c",a); sleep(70); gotoxy(x,y);printf(" ");} } }
int main(void) { char a; portada();textcolor(15);textbackground(4);clr scr(); leer(&a); ciclo(a); }
PRACTICA 19. “CARÁCTER CHOQUE/REBOTE”. #include <stdio.h> #include #include <math.h> #include "P.1.c" void leer(char *a){ gotoxy(50,1); printf("Ingrese un caracter: "); *a=getch();printf("%c",*a);} int ciclo(char a){ int n=1,m=1; int x1=1+rand()%119, y1=1+rand()%29; gotoxy(x1,y1); printf("\333"); int x=1+rand()%119, y=1+rand()%29; for(;!kbhit();){ switch (n){ case 1: x++; y++; break; case 2: x++; y--; break; case 3: x--; y--; break; case 4: x--; y++; break;} if (x==119){m=2;} if(x==1){m=1;} switch(m){ case 1: if(x==1&&n==3){n=2;} if(x==1&&n==4){n=1;} else if(y==29){n=2;} else if(y==2){n=1;} break; case 2: if(x==119&&n==1){n=4;} else if(x==119&&n==2){n=3;} else if(y==29){n=3;} else if(y==2){n=4;} break;} gotoxy(x,y); printf("%c",a);sleep(25); gotoxy(x,y); printf(" "); if(x==x1&&y==y1){gotoxy(50,15); printf("Ha chocado");return 0;} if((x==1&&y==1)||(x==119&&y==1)||(x==1& &y==29)||(x==119&&y==29)){return 0;} }}int main(void) { char a; portada();textcolor(15);textbackground(4);clr scr(); leer(&a); ciclo(a); getch(); }
13
PRACTICA 20. “NUMERO FACTORIAL CON WHILE”.
#include <stdio.h> #include #include "Terminado.c" int Leer(void) {int num; gotoxy(40,2);printf("Programa para saber el numero [FACTORIAL] "); gotoxy(6,6);printf("Ingresar entero positivo: ");
un
numero
PRACTICA 21.“SERIE ULAM DO WHILE”. #include <stdio.h> #include #include <math.h> #include"P.1.c" void leer(int *a){ gotoxy(40,5);printf("Ingrese un numero: "); scanf("%d",a);} void serie(int a){int b=40; do {gotoxy(b,7);printf("%d",a); if(a==1){a--;} else { if (a%2==0){a=a/2;} else{a=(a*3)+1;}} b+=3;} while(a); }
scanf("%d",&num); return(num); } void Operacion(int num) { double factorial=1,z=1;
int main() { int x; portada();textbackground(4);textcolor(15);
while(z<=num){ factorial=factorial*z;z++; gotoxy(6,8);printf("La Respuesta %f",factorial); } }
es:
clrscr(); gotoxy(50,2); printf("Serie de Ulam"); leer(&x); serie(x); }
int main(void) {int z; Caratula();textcolor(7); textbackground(0);clrscr(); z=Leer(); Operacion(z); getch(); }
PRACTICA 22. “CARÁCTER RANDOM PANTALLA CON WHILE Y EVENTUAL”.
14
#include <stdio.h> #include #include <math.h> #include "P.1.c" void leer(char *a){ gotoxy(50,1); printf("Ingrese un caracter: "); *a=getch();printf("%c",*a);} void ciclo(char a){ while(!kbhit()) { gotoxy(2+rand()%118,2+rand()%29); textcolor(rand()%15); printf("%c",a);}}
int main(void) { char a; portada(); textcolor(0);textbackground(15);clrscr(); leer(&a); ciclo(a); gotoxy(50,15); printf("Desea repetir? [S\\N]"); }
PRACTICA 23. “MCD Y MCM CON DO WHILE Y EVENTUAL”.
#include <stdio.h> #include #include "Terminado.c" void Leer(int *a,int *b) {textcolor(7);gotoxy(45,2);printf("MINIMO COMUN MULTIPLO y MAXIMO COMUN DIVISOR"); textcolor(7);gotoxy(5,5);printf("Valor [A]= ");scanf("%d",a); textcolor(7);gotoxy(5,6);printf("Valor [B]= ");scanf("%d",b);} int mcd(int a,int b) {int c,aux; do{ c=a%b; a=b; b=c; if(a
15
CONCLUSIONES