82
GWBASIC

GWBASIC - academicos.ccadet.unam.mx · Instrucciones en GWBASIC • Delete xx – Borra lineas • shell “abc – Vuelve al medio ambiente de MS-DOS sin abandonar GWBASIC • …

Embed Size (px)

Citation preview

GWBASIC

TURBO C++

GWBASIC Ventana Principal

• LIST• RUN• LOAD”• SAVE”xyz

GWBASIC Ventana Principal

• SAVE”xyz• Save”xyz.txt”• Save”xyz.txt”,a

• List xx-• auto• renum• Edit xx

GWBASIC Ventana Principal

• Edit xx• cls• Ctrl l

• Cont• LPT1• TRON• TROFF

GWBASIC Ventana Principal

• TROFF• KEY• SCREEN

Instrucciones en GWBASIC

• Delete xx– Borra lineas

• shell “abc– Vuelve al medio ambiente de MS-DOS sin abandonar

GWBASICGWBASIC• 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

• Inicio• Entrada de Datos• Proceso o Cálculo• Salida de resultados

Partes de un programa

• Salida de resultados• Fin.

• REM• INPUT• LET• PRINT

Instrucciones en GWBASIC

• PRINT• END

• /* Comentario */• #Include<librerias.h>• Declaración de función• void main(){

Encabezado en TURBO C

• void main(){

• Declaración de variables.• scanf( ... );• fscanf( ... );

Entrada de datos en TURBO C

• Ausencia de comando• A=B+C• A=B*C• A=B/C

Proceso en TURBO C

• A=B/C• A=A+1• A =sin(A)

• printf• fprintf

Salida de datos en TURBO C

• }

Fin de bloques o programa en TURBO C

• REM o ‘• Es abreviatura de REMARK (Comentario).

• /* Comentario */

Encabezado (Comnetario)

• /* Comentario */

• Documentación del programa.

• INPUT (Entrada o Introducir)• INPUT#n• INP

• scanf• fscanf

Entrada de datos.

• fscanf

• Permite enviar datos numéricos o literales a la computadora.

• LET (Dejar o Suponer)• Ausencia de comandos.• for ... next• while ... wend

Instrucciones de proceso

• while ... wend• If ... then ...

• Indica operaciones o procesos.

Ausencia de comandos.• for(...) { ... } • while(...) { ... } • If(...) { ... }

Instrucciones de proceso

• If(...) { ... }

• Indica operaciones o procesos.

• PRINT (Imprimir)• PRINT#n,• LPRINT• OUT

Salida de resultados

• printf• fprintf

• Permite la salida de datos o resultados de un proceso, puede ser numéricos o literales.

• STOP• END

• }

Instrucciones en GWBASIC

• }

• Indica que el programa ha terminado.

10 ‘ Programa 120 cls30 PRINT “Dame los sumandos a y b”; 40 INPUT a,b

Programa en GWBASIC

40 INPUT a,b50 c = a + b60 PRINT “La suma es c = “; c70 END

/*Programa 1*/#include<stdio.h>#include<stdlib.h>void main (){

float a,b,c;

Programa en TURBO C++

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);

}

• FOR j=a TO 20 STEP 2

• INSTRUCCIONES

Instrucciones en GWBASIC

• INSTRUCCIONES

• NEXT

for(j=a;j<=20;j=j+2){

Instrucciones en TURBO C

Instrucciones

}

5 ‘PROGRMA 210 CLS20 PRINT “DAME EL VALOR INICIAL”;30 INPUT A

Instrucciones en GWBASIC

30 INPUT A40 FOR I=A TO 20 STEP 250 PRINT I60 NEXT I70 END

/*Programa 2*/#include<stdio.h>#include<stdlib.h>void main (){

int a,j;clrscr();

Instrucciones en TURBO C

clrscr();printf("Dame el valor inicial: ");scanf("%i",&a);for(j=a;j<=20;j=j+2){

printf("%i\n",j);}

}

10 ‘PROGRAMA 320 CLS30 PRINT “DAME UN NUMERO ENTRE 1 Y 10”40 INPUT A50 CLS

Instrucciones en GWBASIC

50 CLS60 PRINT “TABLA DE MULTIPLICAR DEL ”;A70 FOR I=1 TO 10 80 PRINT A;”X”; I; “=“ A*I90 NEXT I100 END

/*Programa 3*/#include<stdio.h>#include<stdlib.h>void main (){

int a,b,j;clrscr();printf("Dame el valor entre 1 Y 10 ");

Instrucciones en TURBO C

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);}

}

• IF Condición THEN línea• SI Condición ENTONCES línea

Instrucciones en GWBASIC

• GOTO línea• VE A línea

Diagrama de Flujo

5 ‘Programa 4. Resuelve una ecuación de segundo grado.10 CLS ‘limpia la pantalla15 PRINT “Dame los coeficientes A, B, y C de la ecuación:”; ‘Pide los datos de entrada20 INPUT A,B,C30 IF A=0 THEN 160 ‘Verifica si la ecuación es lineal40 T=B/(2*A) ‘Construye los términos del discriminante50 R=C/A60 D=T^2-R ‘Calcula el discriminante70 IF D<0 THEN 120 ‘Verifica el signo del discriminante80 X1=-T+D^.5 ‘Si el discriminante es positivo, las raíces son reales y

Instrucciones en GWBASIC

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 D130 PRINT "x1="; -T "+"D^.5;"i“ ‘Muestra en pantalla las dos raíces complejas140 PRINT "x2=";-T"-"D^.5;"i"150 GOTO 190 ‘Va al final del programa160 PRINT " La ecuación es lineal“ ‘La ecuación es lineal170 X=-C/B ‘Calcula la raíz de la ecuación lineal180 PRINT X ‘Imprime la raíz.190 END ‘Termina el programa

5 ‘Programa 4a. Resuelve una ecuación de segundo grado.10 CLS ‘limpia la pantalla15 PRINT “Dame los coeficientes A, B, y C de la ecuación:”; ‘Pide los datos de entrada20 INPUT A,B,C30 IF A=0 THEN 160 ‘Verifica si la ecuación es lineal40 T=B/(2*A) ‘Construye los términos del discriminante50 R=C/A60 D=T^2-R ‘Calcula el discriminante70 IF D<0 THEN 120 ‘Verifica el signo del discriminante

Instrucciones en GWBASIC

70 IF D<0 THEN 120 ‘Verifica el signo del discriminante75 IF D=0 THEN 11280 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=“ –T114 GOTO 190

120 D=ABS(D) ‘El discriminante es negativo, calcula el valor absoluto de D130 PRINT "x1="; -T "+"D^.5;"i“ ‘Muestra en pantalla las dos raíces complejas140 PRINT "x2=";-T"-"D^.5;"i"150 GOTO 190 ‘Va al final del programa160 PRINT " La ecuación es lineal“ ‘La ecuación es lineal170 X=-C/B ‘Calcula la raíz de la ecuación lineal180 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 pantalla15 PRINT “Dame los coeficientes A, B, y C de la ecuación:”; ‘Pide los datos de entrada20 INPUT A,B,C30 IF A=0 THEN 160 ‘Verifica si la ecuación es lineal40 T=B/(2*A) ‘Construye los términos del discriminante50 R=C/A60 D=T^2-R ‘Calcula el discriminante70 IF D<0 THEN 120 ‘Verifica el signo del discriminante75 IF D=0 THEN PRINT “X=“-T : END

Instrucciones en GWBASIC

80 X1=-T+D^.5 ‘Si el discriminante es positivo, las raíces son reales y90 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 D130 PRINT "x1="; -T "+"D^.5;"i“ ‘Muestra en pantalla las dos raíces complejas140 PRINT "x2=";-T"-"D^.5;"i"150 GOTO 190 ‘Va al final del programa160 PRINT " La ecuación es lineal“ ‘La ecuación es lineal170 X=-C/B ‘Calcula la raíz de la ecuación lineal180 PRINT X ‘Imprime la raíz.190 END ‘Termina el programa

/*programa 4*//*Programa que resuelve una ecuación de segundo grado*/#include<stdio.h>#include<stdlib.h>#include<math.h>void main(){

float A,B,C,D,S,T,R,S1,S2;

Instrucciones en TURBO C

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);if(A==0){ /*Verifica si la ecuación es lineal*/

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);

}elseif(D==0){

S=-T;printf("\n\nLa raíz de la ecuación es %f\n\n",S);

}else

{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 TURBO C

}}

• WHILE Condición• MIENTRAS

Instrucciones en GWBASIC

• WEND • FIN del MIENTRAS

5 ‘Programa 510 CLS15 PRINT “Iniciando tabla”20 WHILE I<=530 PRINT I, I^2, SIN(I)

Instrucciones en GWBASIC

30 PRINT I, I^2, SIN(I)40 I=I+150 WEND60 PRINT “LLEGUE AL FINAL”70 END.

/*Programa 5*/#include <stdio.h>#include <math.h>#include <stdlib.h>void main(){

int num, c;

Instrucciones en TURBO C

int num, c;float d;num=0;clrscr();printf("\n\nIniciando tabla\n");

while (num<=5){c=num*num;d=sin(num);printf("\n\n%i,%i,%f",num,c,d);num=num+1;

Instrucciones en TURBO C

num=num+1;}

printf("\Llegue al final\n");}

/*Programa 6*/#include <stdio.h>#include <math.h>#include <stdlib.h>void main(){

Instrucciones en TURBO C

void main(){int num, c;float d;num=0;clrscr();printf("\n\nIniciando tabla\n");

for(num=1;num<=5;num=num+1){c=num*num;d=sin(num);printf("\n\n%i,%i,%f",num,c,d);

Instrucciones en TURBO C

printf("\n\n%i,%i,%f",num,c,d);}

printf("\Llegue al final\n");}

5 ‘Programa 610 CLS15 PRINT “Iniciando tabla”20 FOR I=1 TO 5

Instrucciones en GWBASIC

20 FOR I=1 TO 530 PRINT I, I^2, SIN(I)40 NEXT I50 END

• DIM• Dimensión de vector o matriz

Instrucciones en GWBASIC

• DEF FNF(X) = función• Define una función de x

• Funciones (sub-rutinas)– Declaración.– Definición.– Llamado.

Instrucciones en TURBO C++

– Llamado.

Definición:• Subproceso

• RETURN

• GOSUB línea• VE A LA SUBRRUTINA EN línea

• Subproceso

Instrucciones en GWBASIC

• Subproceso

• RETURN• REGRESA

5 ‘Programa 7a10 'programa que muestra el uso de DIM y DEF FNF20 DIM A(4,4) 'definimos una matriz de 4 x 430 DEF FNF(I)=I+J 'definimos una función de i, j40 FOR I=1 TO 4 50 FOR J=1 TO 4 ‘Se asignan valores a cada

Instrucciones en GWBASIC

50 FOR J=1 TO 4 ‘Se asignan valores a cada60 A(I,J)=FNF(I) ‘componente de la matriz70 PRINT A(I,J); ‘Se imprime un reglón de A80 NEXT J90 PRINT CHR$(13) ‘Imprime un CR100 NEXT I ‘Imprime otro renglón110 END ‘Fin del programa.

10 'programa 720 CLS ‘Limpia pantalla30 DEF FNP(X)=X*(X*(X-9)+9)-8 ‘Define la función polinomial40 FOR I=1 TO 10 ‘Lo hace de 1 a 1050 PRINT "P("I")", FNP(I) ‘Evalúa el polinomio60 NEXT I

Instrucciones en GWBASIC

60 NEXT I70 END ‘Fin de programa

/*programa 7*/#include<stdio.h>#include<math.h>

float pol(float a); /*Declara la función polinomial*/

float main(void){int i; /*Define variables*/

Instrucciones en TURBO C++

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;}

float pol(float a) /*Define la función*/{float e; /*Define variables*/e=a*(a*(a-9)+9)-8; /*Evalua el Polinomio*/return e;}

Instrucciones en TURBO C++

}

Uso de subrrutinas

5 ‘Programa 810 'programa que resuelve un sistema de ecuaciones20 'por el método de determinantes.30 CLS40 DIM A(2,3), B(2,3) ‘Define 2 matrices, inicialmente iguales50 PRINT "dame los coeficientes del sistema“ ‘Solicita los coeficientes del sistema60 FOR I=1 TO 270 FOR J=1 TO 380 PRINT "coeficiente" I","J; ‘Indica cual coeficiente requiere

Instrucciones en GWBASIC

80 PRINT "coeficiente" I","J; ‘Indica cual coeficiente requiere90 INPUT B(I,J)100 A(I,J)=B(I,J) ‘A=B para no perder los datos110 NEXT J120 NEXT I130 GOSUB 300 ‘Va a Calcular el determinante de A140 DELTA=DET ‘Determinante de A = delta145 IF DELTA = 0 THEN 290 ‘Verifica la existencia de solución150 FOR I=1 TO 2 ‘Sustituye los términos independientes de B160 A(I,1)=B(I,3) ‘en la primera columna de A170 NEXT I

180 GOSUB 300 ‘Va a calcular el nuevo determinante de A190 DELTAX=DET ‘Determinante de A = deltax200 FOR I=1 TO 2 ‘Retoma la matriz A y sustituye los210 A(I,1)=B(I,1) ‘términos independientes de B en la220 A(I,2)=B(I,3) ‘segunda columna de A230 NEXT I240 GOSUB 300 ‘Calcula el determinante de A250 DELTAY=DET ‘Determinante de A = deltay

Instrucciones en GWBASIC

250 DELTAY=DET ‘Determinante de A = deltay260 X=DELTAX/DELTA ‘Evalua X270 Y=DELTAY/DELTA ‘Evalua Y280 PRINT " La solucion del sistema es“; ‘Imprime la solución del sistema285 PRINT “x=“x,”y=“y290 END ‘Fin de programa300 'Subrrutina que evalúa un determinante. ‘Subrrutina310 DET=A(1,1)*A(2,2)-A(2,1)*A(1,2) ‘Calcula el determinante de A320 RETURN ‘Fin de subrrutina

/*Programa 8*/#include<stdio.h>#include<math.h>float det(float a, float b, float c, float d);float main(void){

int i,j;

Instrucciones en TURBO C

int i,j;float delta,deltax,deltay,e,x,y;float ma[2][3];clrscr();

for(i=0;i<=1;i++){for(j=0;j<=2;j++)

{printf("\nIntroduce el elemento %i,%i ",i+1,j+1);

Instrucciones en TURBO C

printf("\nIntroduce el elemento %i,%i ",i+1,j+1);scanf("%f",&ma[i][j]);}

}

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]);

Instrucciones en TURBO C

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;

}

float det(float a,float b, float c, float d){float e;e=a*d-b*c;return e;

Instrucciones en TURBO C

return e;}

• OPEN “nombre" FOR OUTPUT AS #1

• PRINT#1, resultado

Instrucciones en GWBASIC

5’ Programa 910 CLS20 OPEN "mario.txt" FOR OUTPUT AS #130 WHILE I=<540 PRINT#1, I, I^2, SIN(I)

Instrucciones en GWBASIC

40 PRINT#1, I, I^2, SIN(I)50 I=I+160 WEND70 PRINT “LLEGUE AL FINAL”80 END.

5 ‘Programa 1010 CLS20 OPEN "mario.txt" FOR OUTPUT AS #125 PRINT#1, “Inicia la tabla”27 PRINT#1, “I”,”I*I”,”seno(I)”

Instrucciones en GWBASIC

27 PRINT#1, “I”,”I*I”,”seno(I)”30 FOR I=1 TO 540 PRINT#1, I, I^2, SIN(I)50 NEXT I55 PRINT “LLEGUE AL FINAL”60 END

5’ Programa 1110 CLS20 OPEN "mario.txt" FOR OUTPUT AS #130 I=140 IF I>5 THEN 60

Instrucciones en GWBASIC

40 IF I>5 THEN 6050 PRINT#1, I, I^2, SIN(I)60 I=I+170 GOTO 4080 PRINT “LLEGUE AL FINAL”90 END.

/*Programa 10*/#include <stdio.h>#include <math.h>#include <stdlib.h>void main(){

int num, c;

Instrucciones en TURBO C

int num, c;float d;FILE *archivo;char nombre[10] = “mario.txt";archivo = fopen( nombre, "w" );num=0;

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);

Instrucciones en TURBO C

d=sin(num);fprintf(archivo, "\n\n%i,%i,%f",num,c,d);}

}

/* Netodo de la Regla Falsa */#include<stdio.h>#include<math.h>#include<conio.h>float fun(float a); /* Declara la función */float main(void){

Regla falsa Encabezado del programa

float main(void){int i,n; /* Define variables */float a,b,x,fa,fx,fb,e,er,f,xn;

Regla falsa Proceso

• clrscr(); /* Limpia pantalla */• printf("\n\Dame los limites del intervalo, y el error: ");• scanf("%f,%f,%f",&a,&b,&e);• {• er=1; /* Define un error muy grande */• while(er>e){ /* Repite la rutina mientras no se alcance el error */• while(er>e){ /* Repite la rutina mientras no se alcance el error */• fa=fun(a); /* Llama a la funcion y la evalua en un extremo */• fb=fun(b); /* Llama a la funcion y la evalua en otro extremo */• xn = (a*fb - b*fa)/(fb - fa); /* Evalua la expresion de recurrencia*/• /* xn = (a+b)/2; recurrencia para biseccion */

• fx = fun(xn); /* Llama a la funcion y la evalua en el• nuevo extremo */• er = fabs(x - xn); /* Calcula el error */• x = xn;• if (fa*fx<0){ /* Verifica el cambio de signo */

Regla falsa Proceso

• if (fa*fx<0){ /* Verifica el cambio de signo */• b=x; } /* Localiza el nuevo intervalo */• else{• a=x; /* Localiza el nuevo intervalo */• }• }

• printf("\n\tLa raiz es x=%f, tiene un error de er=%f\n",x,er);

• printf("\n\tP(%f) = %f \n",x,fx);

• getch();

• }

• }

Regla falsa Salida de datos

Definición de función

• float fun(float ax) /* Define la funcion */• {• float f; /* Define variables */• f=ax*(ax-2)-4; /* Evaluala funcionusando las• f=ax*(ax-2)-4; /* Evaluala funcionusando las• reglas para minimizar los • errores*/• return f; /* Regresa el valor de la funcion• al programa principal */• }

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