GWBASIC TURBO C++ GWBASIC Ventana Principal GWBASIC Ventana Principal • • • • • • LIST RUN LOAD” SAVE”xyz Save”xyz.txt” Save”xyz.txt”,a GWBASIC Ventana Principal • • • • • • List xxauto renum Edit xx cls Ctrl l GWBASIC Ventana Principal • • • • • • Cont LPT1 TRON TROFF KEY SCREEN Instrucciones en GWBASIC • Delete xx – Borra lineas • shell “abc – Vuelve al medio ambiente de MS-DOS sin abandonar GWBASIC • exit – Vuelve al medio ambiente de CWBASIC • Ctrl + PAUSA ó Ctrl + z – Finaliza el modo de edición • System – Termina la sesión de GWBASIC TURBO C++ Ventana Principal TURBO C++ Menu TURBO C++ Menu TURBO C++ Menu TURBO C++ Menu TURBO C++ Menu TURBO C++ Menu TURBO C++ Menu TURBO C++ Menu TURBO C++ Menu TURBO C++ Menu Partes de un programa • • • • • Inicio Entrada de Datos Proceso o Cálculo Salida de resultados Fin. Instrucciones en GWBASIC • • • • • REM INPUT LET PRINT END Encabezado en TURBO C • • • • /* Comentario */ #Include<librerias.h> Declaración de función void main(){ Entrada de datos en TURBO C • Declaración de variables. • scanf( ... ); • fscanf( ... ); Proceso en TURBO C • • • • • • Ausencia de comando A=B+C A=B*C A=B/C A=A+1 A =sin(A) Salida de datos en TURBO C • printf • fprintf Fin de bloques o programa en TURBO C • } Encabezado (Comnetario) • REM o ‘ • Es abreviatura de REMARK (Comentario). • /* Comentario */ • Documentación del programa. Entrada de datos. • INPUT (Entrada o Introducir) • INPUT#n • INP • scanf • fscanf • Permite enviar datos numéricos o literales a la computadora. Instrucciones de proceso • • • • • LET (Dejar o Suponer) Ausencia de comandos. for ... next while ... wend If ... then ... • Indica operaciones o procesos. Instrucciones de proceso Ausencia de comandos. • for(...) { ... } • while(...) { ... } • If(...) { ... } • Indica operaciones o procesos. Salida de resultados • • • • PRINT (Imprimir) PRINT#n, LPRINT OUT • printf • fprintf • Permite la salida de datos o resultados de un proceso, puede ser numéricos o literales. Instrucciones en GWBASIC • STOP • END • } • Indica que el programa ha terminado. Programa en GWBASIC 10 ‘ Programa 1 20 cls 30 PRINT “Dame los sumandos a y b”; 40 INPUT a,b 50 c = a + b 60 PRINT “La suma es c = “; c 70 END Programa en TURBO C++ /*Programa 1*/ #include<stdio.h> #include<conio.h> void main (){ float a,b,c; clrscr(); printf("Dame los sumandos a y b : "); scanf("%f,%f",&a,&b); c=a+b; printf("\nLa suma es c= %d\n",c); } Instrucciones en GWBASIC • FOR j=a TO 20 STEP 2 • INSTRUCCIONES • NEXT Instrucciones en TURBO C for(j=a;j<=20;j=j+2){ Instrucciones } Instrucciones en GWBASIC 5 ‘PROGRMA 2 10 CLS 20 PRINT “DAME EL VALOR INICIAL”; 30 INPUT A 40 FOR I=A TO 20 STEP 2 50 PRINT I 60 NEXT I 70 END Instrucciones en TURBO C /*Programa 2*/ #include<stdio.h> #include<conio.h> void main (){ int a,j; clrscr(); printf("Dame el valor inicial: "); scanf("%i",&a); for(j=a;j<=20;j=j+2){ printf("%i\n",j); } } Instrucciones en GWBASIC 10 ‘PROGRAMA 3 20 CLS 30 PRINT “DAME UN NUMERO ENTRE 1 Y 10” 40 INPUT A 50 CLS 60 PRINT “TABLA DE MULTIPLICAR DEL ”;A 70 FOR I=1 TO 10 80 PRINT A;”X”; I; “=“ A*I 90 NEXT I 100 END Instrucciones en TURBO C /*Programa 3*/ #include<stdio.h> #include<conio.h> void main (){ int a,b,j; clrscr(); printf("Dame el valor entre 1 Y 10 "); scanf("%i",&a); printf("\ntabla de multiplicar del %i\n",a); for(j=1;j<=10;j=j+1){ b=a*j; printf("%i X %i = %i\n",a,j,b); } } Instrucciones en GWBASIC • IF Condición THEN línea • SI Condición ENTONCES línea • GOTO línea • VE A línea Diagrama de Flujo Instrucciones en GWBASIC 5 ‘Programa 4. Resuelve una ecuación de segundo grado. 10 CLS ‘limpia la pantalla 15 PRINT “Dame los coeficientes A, B, y C de la ecuación:”; ‘Pide los datos de entrada 20 INPUT A,B,C 30 IF A=0 THEN 160 ‘Verifica si la ecuación es lineal 40 T=B/(2*A) ‘Construye los términos del discriminante 50 R=C/A 60 D=T^2-R ‘Calcula el discriminante 70 IF D<0 THEN 120 ‘Verifica el signo del discriminante 80 X1=-T+D^.5 ‘Si el discriminante es positivo, las raíces son reales y 90 X2=-T-D^.5 ‘las calcula. 100 PRINT "X1=" X1, "x2=" X2 ‘Muestra en pantalla ambas raíces reales. 110 GOTO 190 ‘salta al final del programa. 120 D=ABS(D) ‘El discriminante es negativo, calcula el valor absoluto de D 130 PRINT "x1="; -T "+"D^.5;"i“ ‘Muestra en pantalla las dos raíces complejas 140 PRINT "x2=";-T"-"D^.5;"i" ‘Va al final del programa 150 GOTO 190 160 PRINT " La ecuación es lineal“ ‘La ecuación es lineal 170 X=-C/B ‘Calcula la raíz de la ecuación lineal 180 PRINT X ‘Imprime la raíz. 190 END ‘Termina el programa Instrucciones en GWBASIC 5 ‘Programa 4a. Resuelve una ecuación de segundo grado. 10 CLS ‘limpia la pantalla 15 PRINT “Dame los coeficientes A, B, y C de la ecuación:”; ‘Pide los datos de entrada 20 INPUT A,B,C 30 IF A=0 THEN 160 ‘Verifica si la ecuación es lineal 40 T=B/(2*A) ‘Construye los términos del discriminante 50 R=C/A ‘Calcula el discriminante 60 D=T^2-R 70 IF D<0 THEN 120 ‘Verifica el signo del discriminante 75 IF D=0 THEN 112 80 X1=-T+D^.5 ‘Si el discriminante es positivo, las raíces son reales 90 X2=-T-D^.5 ‘y las calcula. 100 PRINT "X1=" X1, "x2=" X2 ‘Muestra en pantalla ambas raíces reales. 110 GOTO 190 ‘salta al final del programa. 112 PRINT “X=“ –T 114 GOTO 190 Instrucciones en GWBASIC 120 D=ABS(D) ‘El discriminante es negativo, calcula el valor absoluto de D 130 PRINT "x1="; -T "+"D^.5;"i“ ‘Muestra en pantalla las dos raíces complejas 140 PRINT "x2=";-T"-"D^.5;"i" 150 GOTO 190 ‘Va al final del programa 160 PRINT " La ecuación es lineal“ ‘La ecuación es lineal 170 X=-C/B ‘Calcula la raíz de la ecuación lineal 180 PRINT X ‘Imprime la raíz. 190 END ‘Termina el programa Instrucciones en GWBASIC 5 ‘Programa 4b. Resuelve una ecuación de segundo grado. 10 CLS ‘limpia la pantalla 15 PRINT “Dame los coeficientes A, B, y C de la ecuación:”; ‘Pide los datos de entrada 20 INPUT A,B,C 30 IF A=0 THEN 160 ‘Verifica si la ecuación es lineal 40 T=B/(2*A) ‘Construye los términos del discriminante 50 R=C/A 60 D=T^2-R ‘Calcula el discriminante 70 IF D<0 THEN 120 ‘Verifica el signo del discriminante 75 IF D=0 THEN PRINT “X=“-T : END 80 X1=-T+D^.5 ‘Si el discriminante es positivo, las raíces son reales y 90 X2=-T-D^.5 ‘las calcula. 100 PRINT "X1=" X1, "x2=" X2 ‘Muestra en pantalla ambas raíces reales. 110 GOTO 190 ‘salta al final del programa. 120 D=ABS(D) ‘El discriminante es negativo, calcula el valor absoluto de D 130 PRINT "x1="; -T "+"D^.5;"i“ ‘Muestra en pantalla las dos raíces complejas 140 PRINT "x2=";-T"-"D^.5;"i" ‘Va al final del programa 150 GOTO 190 160 PRINT " La ecuación es lineal“ ‘La ecuación es lineal 170 X=-C/B ‘Calcula la raíz de la ecuación lineal 180 PRINT X ‘Imprime la raíz. 190 END ‘Termina el programa Instrucciones en TURBO C /*programa 4*/ /*Programa que resuelve una ecuación de segundo grado*/ #include<stdio.h> #include<conio.h> #include<math.h> void main(){ float A,B,C,D,S,T,R,S1,S2; clrscr(); /*limpia la pantalla*/ printf("\ Dame los coeficientes A, B, y C de la ecuación"); scanf("%f,%f,%f",&A,&B,&C); /*Verifica si la ecuación es lineal*/ if(A==0){ S=-C/B; /*Calcula la raíz de la ecuación lineal*/ printf("\n\nLa ecuación es lineal y su solución es: "); printf("\nx= %f\n\n“,S); }else Instrucciones en TURBO C { T=B/(2*A); /*Construye los términos del discriminante*/ R=C/A; D=T*T-R; /*Calcula el discriminante*/ if(D<0){ D=fabs(D); printf("\n\nLas raíces son complejas X1 = %f + %fi \n",-T,D); printf(" X2 = %f - %fi \n\n",-T,D); }else if(D==0){ S=-T; printf("\n\nLa raíz de la ecuación es %f\n\n",S); }else Instrucciones en TURBO C { S1=-T+sqrt(D); S2=-T-sqrt(D); printf("\n\nLas raíces de la ecuación son X1=%f y X2=%f\n\n",S1,S2); } } } Instrucciones en GWBASIC • WHILE Condición • MIENTRAS • WEND • FIN del MIENTRAS Instrucciones en GWBASIC 5 ‘Programa 5 10 CLS 15 PRINT “Iniciando tabla” 20 WHILE I<=5 30 PRINT I, I^2, SIN(I) 40 I=I+1 50 WEND 60 PRINT “LLEGUE AL FINAL” 70 END. Instrucciones en TURBO C /*Programa 5*/ #include <stdio.h> #include <math.h> #include <conio.h> void main(){ int num, c; float d; num=0; clrscr(); printf("\n\nIniciando tabla\n"); Instrucciones en TURBO C while (num<=5){ c=num*num; d=sin(num); printf("\n\n%i,%i,%f",num,c,d); num=num+1; } printf("\Llegue al final\n"); } Instrucciones en TURBO C /*Programa 6*/ #include <stdio.h> #include <math.h> #include <conio.h> void main(){ int num, c; float d; num=0; clrscr(); printf("\n\nIniciando tabla\n"); Instrucciones en TURBO C for(num=1;num<=5;num=num+1){ c=num*num; d=sin(num); printf("\n\n%i,%i,%f",num,c,d); } printf("\Llegue al final\n"); } Instrucciones en GWBASIC 5 ‘Programa 6 10 CLS 15 PRINT “Iniciando tabla” 20 FOR I=1 TO 5 30 PRINT I, I^2, SIN(I) 40 NEXT I 50 END Instrucciones en GWBASIC • DIM • Dimensión de vector o matriz • DEF FNF(X) = función • Define una función de x Instrucciones en TURBO C++ • Funciones (sub-rutinas) – Declaración. – Definición. – Llamado. Definición: • Subproceso • RETURN Instrucciones en GWBASIC • GOSUB línea • VE A LA SUBRRUTINA EN línea • Subproceso • RETURN • REGRESA Instrucciones en GWBASIC 5 ‘Programa 7a 10 'programa que muestra el uso de DIM y DEF FNF 20 DIM A(4,4) 'definimos una matriz de 4 x 4 30 DEF FNF(I)=I+J 'definimos una función de i, j 40 FOR I=1 TO 4 50 FOR J=1 TO 4 ‘Se asignan valores a cada 60 A(I,J)=FNF(I) ‘componente de la matriz 70 PRINT A(I,J); ‘Se imprime un reglón de A 80 NEXT J 90 PRINT CHR$(13) ‘Imprime un CR 100 NEXT I ‘Imprime otro renglón 110 END ‘Fin del programa. Instrucciones en GWBASIC 10 'programa 7 ‘Limpia pantalla 20 CLS 30 DEF FNP(X)=X*(X*(X-9)+9)-8 ‘Define la función polinomial 40 FOR I=1 TO 10 ‘Lo hace de 1 a 10 50 PRINT "P("I")", FNP(I) ‘Evalúa el polinomio 60 NEXT I 70 END ‘Fin de programa Instrucciones en TURBO C++ /*programa 7*/ #include<stdio.h> #include<math.h> #include<conio.h> float pol(float a); /*Declara la función polinomial*/ float main(void){ int i; /*Define variables*/ float a,e; clrscr(); /*Limpia pantalla*/ for(i=0;i<=10;i++) /*Lo hace de 1 a 10*/ { e=pol(i); /* Llama a la función y evalúa el polinomio*/ printf("\P(%i) = %f \n\n",i,e); } return 0; } Instrucciones en TURBO C++ float pol(float a) { float e; e=a*(a*(a-9)+9)-8; return e; } /*Define la función*/ /*Define variables*/ /*Evalua el Polinomio*/ Uso de subrrutinas Instrucciones en GWBASIC 5 ‘Programa 8 10 'programa que resuelve un sistema de ecuaciones 20 'por el método de determinantes. 30 CLS 40 DIM A(2,3), B(2,3) ‘Define 2 matrices, inicialmente iguales 50 PRINT "dame los coeficientes del sistema“ ‘Solicita los coeficientes del sistema 60 FOR I=1 TO 2 70 FOR J=1 TO 3 80 PRINT "coeficiente" I","J; ‘Indica cual coeficiente requiere 90 INPUT B(I,J) 100 A(I,J)=B(I,J) ‘A=B para no perder los datos 110 NEXT J 120 NEXT I ‘Va a Calcular el determinante de A 130 GOSUB 300 140 DELTA=DET ‘Determinante de A = delta 145 IF DELTA = 0 THEN 290 ‘Verifica la existencia de solución 150 FOR I=1 TO 2 ‘Sustituye los términos independientes de B 160 A(I,1)=B(I,3) ‘en la primera columna de A 170 NEXT I Instrucciones en GWBASIC 180 GOSUB 300 ‘Va a calcular el nuevo determinante de A 190 DELTAX=DET ‘Determinante de A = deltax 200 FOR I=1 TO 2 ‘Retoma la matriz A y sustituye los 210 A(I,1)=B(I,1) ‘términos independientes de B en la 220 A(I,2)=B(I,3) ‘segunda columna de A 230 NEXT I 240 GOSUB 300 ‘Calcula el determinante de A 250 DELTAY=DET ‘Determinante de A = deltay 260 X=DELTAX/DELTA ‘Evalua X 270 Y=DELTAY/DELTA ‘Evalua Y 280 PRINT " La solucion del sistema es“; ‘Imprime la solución del sistema 285 PRINT “x=“x,”y=“y 290 END ‘Fin de programa 300 'Subrrutina que evalúa un determinante. ‘Subrrutina 310 DET=A(1,1)*A(2,2)-A(2,1)*A(1,2) ‘Calcula el determinante de A 320 RETURN ‘Fin de subrrutina Instrucciones en TURBO C /*Programa 8*/ #include<stdio.h> #include<math.h> float det(float a, float b, float c, float d); float main(void){ int i,j; float delta,deltax,deltay,e,x,y; float ma[2][3]; clrscr(); Instrucciones en TURBO C for(i=0;i<=1;i++) { for(j=0;j<=2;j++) { printf("\nIntroduce el elemento %i,%i ",i+1,j+1); scanf("%f",&ma[i][j]); } } Instrucciones en TURBO C e=det(ma[0][0],ma[0][1],ma[1][0],ma[1][1]); delta=e; e=det(ma[0][2],ma[0][1],ma[1][2],ma[1][1]); deltax=e; e=det(ma[0][0],ma[0][2],ma[1][0],ma[1][2]); deltay=e; x=deltax/delta; y=deltay/delta; printf("\nLa solucion es x=%f y y=%f ",x,y); return 0; } Instrucciones en TURBO C float det(float a,float b, float c, float d) { float e; e=a*d-b*c; return e; } Instrucciones en GWBASIC • OPEN “nombre" FOR OUTPUT AS #1 • PRINT#1, resultado Instrucciones en GWBASIC 5’ Programa 9 10 CLS 20 OPEN "mario.txt" FOR OUTPUT AS #1 30 WHILE I=<5 40 PRINT#1, I, I^2, SIN(I) 50 I=I+1 60 WEND 70 PRINT “LLEGUE AL FINAL” 80 END. Instrucciones en GWBASIC 5 ‘Programa 10 10 CLS 20 OPEN "mario.txt" FOR OUTPUT AS #1 25 PRINT#1, “Inicia la tabla” 27 PRINT#1, “I”,”I*I”,”seno(I)” 30 FOR I=1 TO 5 40 PRINT#1, I, I^2, SIN(I) 50 NEXT I 55 PRINT “LLEGUE AL FINAL” 60 END Instrucciones en GWBASIC 5’ Programa 11 10 CLS 20 OPEN "mario.txt" FOR OUTPUT AS #1 30 I=1 40 IF I>5 THEN 60 50 PRINT#1, I, I^2, SIN(I) 60 I=I+1 70 GOTO 40 80 PRINT “LLEGUE AL FINAL” 90 END. Instrucciones en TURBO C /*Programa 10*/ #include <stdio.h> #include <math.h> #include <stdlib.h> void main(){ int num, c; float d; FILE *archivo; char nombre[10] = “mario.txt"; archivo = fopen( nombre, "w" ); num=0; Instrucciones en TURBO C clrscr(); fprintf(archivo, "\n\nIniciando tabla\n"); fprintf(archivo, "\n\nI, I*I , seno(i)\n"); for(num=1;num<=5;num=num+1){ c=num*num; d=sin(num); fprintf(archivo, "\n\n%i,%i,%f",num,c,d); } } Punto fijo en GWBASIC 10 'metodo de punto fijo 20 DEF FNF(X)=(12*X+300)/(X+13) ‘Se define la funcion 30 INPUT "dame el valor x0, el error y cuentamax";X0,EPS, CM ‘Inicia el contador 40 C=1 50 XN=FNF(X0) ‘Evalua la funcion en x0 60 ER=ABS(XN-X0) ‘Calcula el error 70 IF ER<EPS THEN 120 80 X0=XN ‘Actualiza la x 90 IF C>CM THEN PRINT "no llegue" : END ‘verifica contador 100 C=C+1 ‘Incrementa contador 110 GOTO 50 ‘Inicia siguiente iteracion 120 PRINT "la raiz es "; X0 ‘Imprime la raiz 130 END Punto fijo en TURBO C /*Metodo de Punto fijo*/ #include<stdio.h> #include<math.h> #include<conio.h> float fun(float x); float main(void){ int i; float x,e,eps,er; clrscr(); er=1; printf("\Dame X0, error\n\n"); scanf("%f,%f",&x,&eps); Punto fijo en TURBO C while(er>eps){ e=fun(x); er=fabs(e-x); x=e; } printf("\La raiz es = %f \n\n",e); return 0; } Punto fijo en TURBO C float fun(float x) { float e; e=(12*x+300)/(x+13); return e; } Referencias bibliográficas http://informaticos53.webcindario.com/programacion.htm http://decsai.ugr.es/~jfv/ed1/c/cdrom/cap3/f_cap34.htm http://en.wikibooks.org/wiki/C_Programming/Procedures_and_functions http://platea.pntic.mec.es/jdelucas/basic.htm