introducción al lenguaje de programacion basic
DESCRIPTION
Introducción al BASICTRANSCRIPT
![Page 1: Introducción al Lenguaje de programacion BASIC](https://reader031.vdocuments.co/reader031/viewer/2022020218/5571f1c849795947648bade1/html5/thumbnails/1.jpg)
BASIC
Esta Introduccioacuten al Lenguaje Basic la escribiacute en el antildeo 1989 en respuesta a una peticioacutendel PNTIC (hoy CNICE) de elaborar un sencillo Manual para la introduccioacuten a laProgramacioacuten en los curriacuteculos de Informaacutetica en la Ensentildeanza Secundaria de aquellostiempos Hoy en diacutea a nadie se le ocurre programar en Basic (Basic A GW Basic QuickBasic Turbo Basic etc) pero para las personas que quieran introducirse en el mundo delos Lenguajes de Programacioacuten el BASIC tiene un componente didaacutectico muy importanteporque sienta las bases de un meacutetodo que luego puede servir para la mejor comprensioacuten deotros Lenguajes Soy de los que opinan que debe introducirse la Programacioacuten en loscurriacuteculos de Informaacutetica de 3ordm de ESO y nada mejor que el Basic para ello En 4ordm de ESOdeberiacutean abordarse las iniciaciones a otros Lenguajes actuales como C o C++ y enTecnologiacuteas de la Informacioacuten del Bachillerato profundizar en los anteriores o iniciar alalumno en Visual Basic o Java
Es importante resaltar que la inclusioacuten de los siacutembolos ~ y | acompantildeando acomandos variables o funciones deben obviarse para plataformas actuales aunque herespetado el original por la componente nostaacutelgica del documento elaborad o a finales de losochenta y que exigiacutea el uso de estos siacutembolos en determinadas arquitecturas
INDICE
Introduccioacuten al BASIC101
PRINT 102
PRINT (continuacioacuten)103
Variables104
Variables (continuacioacuten)105
LET 106
PRINT y LET 107
Nuacutemeros de liacutenea108
LIST 109
LIST (continuacioacuten)110
RUN 111
INPUT 201
INPUT (continuacioacuten)202
Variables Cadena203
Maacutes sobre LET 204
Maacutes sobre LET (continuacioacuten)205
Maacutes sobre LET (continuacioacuten)206
NEW 207
DATA y READ 301
DATA y READ (continuacioacuten)302
GOTO 303
IF THEN 304
IF THEN (continuacioacuten)305
IF THEN (continuacioacuten)306
Operadores Loacutegicos307
ELSE 308
Liacuteneas con instrucciones muacuteltiples309
REM 401
STOP y END 402
STOP y END (continuacioacuten)403
EDIT 404
AUTO 405
AUTO (continuacioacuten)406
TRON y TROFF 407
TRON y TROFF (continuacioacuten)408
TRON y TROFF (continuacioacuten)409
RND 410
INT 411
ABS 412
ABS y INT (continuacioacuten)413
Introduccioacuten al BASIC
El BASIC es uno de los muchos lenguajes de Ordenador El nombre BASIC viene de|B~eginners |A~ll-purpose |S~ymbolic |I~nstruction |C~ode Dado que es uno de loslenguajes maacutes faacuteciles de aprender el BASIC ha llegado a ser el lenguaje maacutes popular paraintroducirse en la Informaacutetica
El BASIC consta de instrucciones comandos y funciones Estas son
palabras inglesas que tienen un significado especial para el ordenad or Los
programas en BASIC son sencillamente un grupo de instrucciones comandos y
funciones que realizan conjuntamente una tarea determinada
En los proacuteximos capiacutetulos iremos introduciendo estos comandos
funciones e instrucciones y ofrecieacutendole la oportunidad de comprobar de queacute
manera actuacutean Lo maacutes importante es intentar comprobar coacutemo funcionan
No tenga miedo de equivocarse si lo hace el ordenador se lo diraacute Si eacuteste es
el caso intente hacerlo de nuevo de una manera diferente
La instruccioacuten PRINT
Lo primero que tenemos que aprender es coacutemo hacer que el ordenador
escriba algo en la pantalla Esto se hace con la instruccioacuten PRINT Esta
instruccioacuten le indica al ordenador que escriba todo lo que sigue a PRINT
SI TECLEA EL ORDENADOR ESCRIBE
PRINT 5 5
Si queremos que el ordenador escriba la respuesta de un problema
matemaacutetico escribiremos loa caacutelculos a realizar detraacutes del PRINT
SI TECLEA EL ORDENADOR ESCRIBE
PRINT 3+2 5
Ahora realicemos los ejemplos anteriores escribiendo lo que estaacute
debajo de |SI TECLEA y pulsando |return~ a continuacioacuten Con |F2~ continuamos
La instruccioacuten PRINT (continuacioacuten)
Si queremos escribir palabras en la pantalla las debemos escribir
entre comillas ( )
SI TECLEAMOS EL ORDENADOR ESCRIBE
PRINT Lo que se te ocurra Lo que se te ocurra
Si queremos escribir texto junto con la respuesta a un problema
matemaacutetico debemos separar ambos bien con una coma () o punto y coma ()
SI TECLEAMOS EL ORDENADOR ESCRIBE
PRINT La suma de 3+2 es 3+2~ La suma de 3+2 es 5
PRINT La suma de 3+2 es 3+2~ La suma de 3+2 es 5
La diferencia entre usar la coma y el punto y coma es la cantidad de
espacios que el ordenador escribe Realice ahora los ejemplos indicados bajo
las palabras SI TECLEAMOS
(En el BASIC de IBM se puede omitir el punto y coma en otras versiones no)
Variables
Lo siguiente que vamos a aprender es el concepto de variable Una
variable es un siacutembolo (usualmente una letra del alfabeto) que se usa para
representar un nuacutemero Una vari able puede representar varios valores Las
variables son muy importantes en la programacioacuten de un ordenador
En la expresioacuten algebraica
9=X+3
X es la variable Para que |9=X+3~ sea cierto el valor de |X~
debe ser |6~ (porque |9~ y |6+3~ son iguales)
En la expresioacuten
SUM=A+B
|SUM~ |A~ y |B~ son variables |A~ y |B~ pueden tener cualquier valor
y la variable |SUM~ es la suma de esos valores
Variables (continuacioacuten)
Como hemos visto el nombre de un a variable puede tener maacutes de una
letra De hecho puede contener hasta 40 caracteres El primer caraacutecter de
la variable debe ser una letra pero los siguientes 39 pueden ser letras o
nuacutemeros Existen muchas palabras reservadas que no se pueden utilizar como
nombres de variables Estas son las instrucciones del lenguaje BASIC
A continuacioacuten veremos algunos nombres invaacutelidos de variables
|FAT~ - Todos los caracteres deben ser letras o nuacutemeros |~ no lo es
|2TALL~ - El primer caraacutecter tiene que se r una letra |2~ es un nuacutemero
|PRINT~ - |PRINT~ es una palabra reservada en BASIC
Es una buena idea hacer los nombres de las variables tan descriptivos
como sea posible Si queremos escribir un programa que sume dos nuacutemeros
utilizaremos las variables |RESULTADO |NUM1~ y |NUM2~ Esto nos ayudaraacute a
saber queacute hacen las variables pero no ayudaraacute de ninguna manera al ordenador
El nombre de la variable enviacutea al ordenador a una zona de memoria donde esta
almacenado su valor
La instruccioacuten LET
La instruccioacuten LET asigna una expresioacuten a una variable En BASIC IBM
la palabra LET es opcional El signo igual es suficiente como vemos en los
siguientes ejemplos
LET A=3 o A=3
En los dos casos el valors 3 se asigna a la variable A
LET SUM=A+B o SUM=A+B
Aquiacute la suma de las variables |A~ y |B~ se asigna a la variable |SUM~
|LET K=K+1~ o |K=K+1~
En aacutelgebra la expresioacuten |K=K+1~ es falsa (iquestCoacutemo un nuacutemero puede ser
igual al mismo maacutes 1) Pero en BASIC significa que el nuevo valor de |K~
seraacute igual al viejo valor de |K~ mas |1~
Las instrucciones PRINT y LET
Hasta que no hayamos asignado un valor a una variable (mediante LET )
eacutesta seraacute igual a cero Si usamos una variable en una instruccioacuten PRINT se
escribiraacute el valor de la variable no su nombre Escribamos las siguientes
cinco liacuteneas para ver como actuacutean PRINT y LET conjuntamente
|PRINT NUM1 NUM2 SUM~
|LET NUM1=45
LET NUM2=5
|SUM=NUM1+NUM2~
|PRINT La suma de NUM1 y NUM2 es SUM~
Nuacutemeros de LINEA
Como aprendimos anteriormente un programa es un grupo de instrucciones
La manera de que el ordenador ejecute las instrucciones de un programa es
numerando cada instruccioacuten con un nuacutemero de liacutenea El ordenador realiza
cada instruccioacuten en el orden marca do por su nuacutemero de liacutenea
En las siguientes instrucciones
|10~ PRINT 3+2
|20~ PRINT 3+3
|10~ y |20~ son nuacutemeros de liacutenea
El comando LIST
Escribiendo |LIST~ y tras pulsar return se escribiraacute el programa que
estaacute en la memoria Escriba el siguien te programa y despueacutes teclee LIST
|10 PRINT 3+2~
|20 PRINT 3+3~
|30 PRINT 3+4~
|40 PRINT 3+5~
El comando LIST (continuacioacuten)
El ordenador siempre ejecuta el programa en orden creciente empezando
por el numero de liacutenea maacutes bajo Si queremos escribir la instruccioacuten |PRINT 3+1~
antes de la liacutenea |10~ entonces le asignamos un nuacutemero de liacutenea menor de 10
Escribamos lo siguiente
|10 PRINT 3+2~
|20 PRINT 3+3~
|30 PRINT 3+4~
|40 PRINT 3+5~
|5 PRINT 3+1~
Ahora escriba |LIST~ y pulse return El comando LIST mostraraacute el
programa en orden numeacuterico Convencionalmente se asignan nuacutemeros de liacutenea
incrementados de 10 en 10 El ordenador renumeraraacute las liacuteneas si tecleamos
la palabra |RENUM~ y pulsamos return Haacutegalo y despueacutes teclee |LIST~ par a
comprobar lo que ocurre
El comando RUN
El comando |RUN~ ejecuta nuestro programa Cuando antes escribiacuteamos
PRINT 3+2 y pulsaacutebamos return el ordenador ejecutaba la instruccioacuten PRINT
inmediatamente Ahora cuando ponemos un nuacutemero de liacutenea el orden ador guarda en
en su memoria la instruccioacuten y espera la orden RUN para ejecutar el programa
Escriba lo siguiente teclee |RUN~ y pulse return
|10 PRINT 3+1~
|20 PRINT 3+2~
|30 PRINT 3+3~
|40 PRINT 3+4 ~
|50 PRINT 3+5~
(Observe que el punto y coma escribe el |8~ en la misma liacutenea que el |7~)
La instruccioacuten INPUT
La instruccioacuten |INPUT~ nos permite introducir datos desde el teclado
mientras el programa se estaacute ejecutando Cuando el programa encuentra un INPUT
se para y aparece una interrogacioacuten esperando que introduzcamos un nuacutemero para
continuar con la liacutenea siguiente Tras el input debemos poner una variable
ejemplo 10 INPUT X
Podemos poner un texto (palabras entre comillas que nos recuerdan
el dato que el ordenador espera) entre el INPUT y la variable Si un punto y
coma sigue al texto entonces la interrogacioacuten aparece en la pantalla si en su
lugar ponemos una coma la interrogacioacuten no apareceraacute
INPUT (continuacioacuten)
Esto es lo que la instruccioacuten INPUT hace en un programa
|10 INPUT Dime un valor para X X~
|20 PRINT X es igual a X~
Teclee este programa ejecuacutetelo y vea lo que sucede Despueacutes de hacerlo
cambie el punto y coma por una coma en la liacutenea |10~ y haga un |RUN~ Para
ejecutar el programa de nuevo con un valor distinto en la variable ponga |RUN~
de nuevo e introduzca un valor diferente para X
Variables cadena (strings)
Las variables pueden representar tanto texto como nuacutemeros Una variable
que representa una serie de caracteres se llama variable cadena
El nombre de este tipo de variables se diferencian de las numeacutericas
porque al final de su nombre llevan el signo doacutelar
ejemplo |XYZ$~=Aula Informaacutetica IES Celestino Mutis
Podemos asignar una cadena de caracteres a una variable string de la
misma manera que asignaacutebamos un valor a una variable numeacuterica
Ejecutemos el siguiente programa
|10 INPUT Dime tu nombre N$~
|20 PRINT Me alegro de conocerte N$ soy el ordenador personal ATLAS~
Maacutes sobre LET
Ahora que podemos introducir y sacar datos del ordenador hagamos algo
interesante Los caacutelculos matemaacuteticos se hacen en BASIC con la instruccioacuten
LET que aprendimos en la primera leccioacuten La instruccioacuten LET asigna a una
variable una expresioacuten numeacuterica A continuacioacuten vamos a conocer cuaacuteles son los
operadores aritmeacuteticos y como se utilizan en BASIC
SIMBOLO DESCRIPCION EJEMPLOS
|+~ suma A|+~B 6|+~12
|-~ resta A|-~B 23|-~7
|~ multiplicacioacuten A|~B 3|~(2 -1)
|~ divisioacuten A|~B (8+2)|~4
|^~ exponenciacioacuten A|^~B (53)|^~2
Maacutes sobre LET (continuacioacuten)
Aquiacute tenemos dos ejemplos especiacuteficos de la utilizacioacuten de LET
CONVERSION CELSIUS A FAHRENHEIT
|10 LET F=18 C + 32~
INTERES ANUAL
|10 INTERES=CANTIDADPORCENTAJE~
Intente escribir un programa que nos permita introducir una temperatura
en grados Celsius la convierta a grados Fahrenheit y escriba el resultado (use
|INPUT~ |LET~ y |PRINT~ ) Recuerde la versioacuten BASIC de IBM permite la
omisioacuten de la palabra LET si asiacute se desea
Maacutes sobre LET (continuacioacuten)
Esta es una manera de escribir el programa anterior
|10 INPUT Introduzca la temperatura en grados CelsiusC~
|20 F=18C+32~
|30 PRINT F grados Fahrenheit sonCCelsius~
El comando NEW
El comando |NEW~ |BORRA el programa que estaacute en la memoria
Tambieacuten borra los valores que se hayan asignado a las variables en un programa
Siempre que vayamos a introducir un programa nuevo debemos teclear NEW primero
de no hacerlo asiacute las liacuteneas del programa antiguo se mezclaran con el que
estemos introduciendo
El formato del comando NEW es simplemente escribir NEW y pulsar RETURN
Este comando no borra el programa del disco solamente borra el
programa de la memoria del ordenador
Instrucciones DATA y READ
Ya hemos aprendido a utilizar la instruccioacuten INPUT
Otra forma de introducir datos en el ordenador es con |DATA y |READ~
La instruccioacuten DATA no se ejecuta La utiliza el ordenador cuando
ejecuta la instruccioacuten READ Despueacutes de la palabra DATA podemos poner nuacutemeros
o grupos de letras entre comillas separados por comas La liacutenea de datos asiacute
creada se lee de la siguiente manera La primera vez que el programa ejecuta
READ se carga el primer dato de la liacutenea DATA la segunda vez el segundo
etc
Introduzca los siguientes programas de ejemplo y haga un |RUN~
|10 DATA 711 10 DATA LUISPERICO~
|20 READ X 20 READ X$~
|30 PRINT X 30 PRINT X$~
|40 READ X 40 READ X$~
|50 PRINT X 50 PRINT X$~
Intrucciones DATA y READ (continuacioacuten)
Cuando el ordenador no tiene maacutes datos que leer se produce un error
el programa se para y aparece un mensaje de error
Comprueacutebelo con el siguiente programa
|10 DATA 10Veinte~
|20 READ X~
|30 PRINT 1X~
|40 READ X$~
|50 PRINT 2X$~
|60 READ X~
|70 PRINT 3X~
Como no hay un tercer dato que leer el ordenador se para y nos indica
que existe un error en la liacutenea numero 60 Ejecuacutetelo y vea lo que ocurre
Instruccioacuten GOTO
La instruccioacuten |GOTO~ es de las maacutes sencillas de comprender y una de
la maacutes importantes en BASIC Le dice al ordenador que vaya a un nuacutemero de
liacutenea diferente al siguiente que corresponda ejecutar
En el siguiente programa el ordenador estaraacute dando vueltas en las
liacuteneas 20 30 y 40 hasta que no tenga mas datos que leer dando un error
Las instrucciones IF THEN
Las instrucciones |IF THEN~ nos permiten elegir entre dos opciones |IF~ una
condicioacuten es verdadera el ordenador ejecuta lo que sigue a |THEN~ |IF~ |no
es verdadera el ordenador ejecuta la liacutenea siguiente Normalmente un GOTO
suele seguir a THEN
Mediante Operadores de relacion comparamos los dos valores de la
condicioacuten el las instrucciones IF THEN
Los Operadores de Relacioacuten maacutes comunes son los siguientes
|=~ igual a lt menor que |lt=~ menor o igual que
|ltgt~ distinto de |gt~ mayor que |gt=~ mayor o igual que
Las instrucciones IF THEN
Poniendo al final de la liacutenea DATA un nuacutemero de control y utilizando
las instrucciones IF THEN tras el READ podemos utilizar e l nuacutemero de control
para evitar el error |Out of DATA El siguiente programa calcula la media de
los nuacutemeros DATA especificados en DATA y utiliza |99~ como |fin de datos
Las instrucciones IF THEN
Aquiacute tenemos dos ejemplos Uno cuenta la cantidad de datos que hay en
una liacutenea DATA El otro escogeraacute los nuacutemeros que sean mayores de 50 en la
liacutenea DATA y los escribiraacute en la pantalla En ambos casos el numero |999~
hace que se pare el programa Escriacutebalos y haga un |RUN~
|10 DATA 10692451007412999 10 DATA 10692451007412999~
|20 READ X 20 READ X~
|30 IF X=999 THEN GOTO 60 20 IF X=999 THEN STOP
|40 LET K=K+1 40 IF Xlt=50 THEN GOTO 20~
|50 GOTO 20 50 PRINT X~
|60 PRINT K 60 GOTO 20~
Operadores Loacutegicos
Los |Operadores Loacutegicos ~ hacen mas uacutetiles las instrucciones IF THEN
Los operadores loacutegicos mas importantes en el BASIC de IBM son
|AND~ |OR~ -Y y O-
Los operadores |AND~ y |OR~ se utilizan cuando queremos implantar
maacutes de una condicioacuten en las instrucciones |IF THEN~ Vamos a ver un ejemplo
de su utilidad en un programa Primero escriba y haga un |RUN~ en el programa
siguiente A continuacioacuten cambie los datos en la liacutenea DATA y haga otro |RUN~
|10 DATA 52317342945999~
|20 READ X~
|30 IF X=999 THEN GOTO 70~
|40 IF Xlt20 OR Xgt30 THEN LET A=A+1
|50 IF Xgt=20 AND Xlt=30 THEN LET B=B+1
|60 GOTO 20~
|70 PRINT Anuacutemeros menores que 20 o mayores que 30 y~
|Bentre 20 y 30~
La instruccioacuten ELSE
Otra opcioacuten de las instrucciones IF T HEN es la sentencia ELSE
Sin ELSE el programa se saltaraacute las instrucciones IF y THEN si la condicioacuten
establecida tras el IF no se cumple Si la palabra ELSE sigue a IF THEN
entonces se ejecuta lo que sigue a ELSE en vez de continuar con la siguiente
liacutenea
Aquiacute tenemos el uacuteltimo programa modificado para ver la instruccioacuten ELSE
Introduacutezcalo y haga un |RUN~
|10 DATA 52317342945999~
|20 READ X~
|30 IF X=999 THEN GOTO 60~
|40 IF Xlt20 OR Xgt30 THEN LET A=A+1 ELSE LET B=B+1
|50 GOTO 20~
|60 PRINT Ardquonuacutemeros menores que 20 o mayores que 30 y~
|Bentre 20 y 30~
Liacuteneas con instrucciones muacuteltiples
Otra caracteriacutestica del BASIC es la utilizacioacuten de instrucciones
muacuteltiples en una liacutenea Podemos poner varias instrucciones en la misma liacuten ea
separaacutendolas con dos puntos (|~) Resulta muy uacutetil con IF THEN
Aquiacute tenemos un ejemplo que muestra este tipo de liacuteneas
Escriacutebalo y haga un RUN~ modifique los valores en la liacutenea DATA y de nuevo
haga un |RUN~
|10 DATA 52317342945999~
|20 READ X~
|30 IF X=999 THEN PRINT Amenores que 20Bentre 20 y 30 yC~
mayores que 30END
|40 IF Xlt20 THEN PRINT Xes menor que 20LET A=A+1GOTO 20~
|50 IF Xlt30 THEN PRINT Xestaacute entre 20 y 30LET B=B+1GOTO 20
|60 PRINT Xes mayor que 30LET C=C+1GOTO 20~
La instruccioacuten REM
La instruccioacuten |REM nos permite escribir notas aclaratorias dentro de
un programa Estos comentarios son ignorados por el ordenador cuando encuentra
la instruccioacuten REM pero le fac ilitan al programador informacioacuten del programa
Las anotaciones aparecen cuando LISTAMOS en programa Los comentarios pueden
comenzar bien por la palabra REM o por un apoacutestrofe (|~)
Aquiacute tenemos un ejemplo de la utilizacioacuten de REM en un programa
10 DATA 452497654715803877999
20 READ XIF X=999 THEN 60 |Si no hay mas datos va a 60~
30 IF Xgt=50 THEN LET G=G+1 |Cuenta los nuacutemeros mayores o iguales a 50~
40 IF Xlt50 THEN LET L=L+1 |Cuenta los nuacutemeros menores de 50~
50 GOTO 20 |Obtiene el siguiente numero~
60 PRINT De los numerosLson menores de 50 y
70 PRINT Gson mayores o iguales a 50
Introduzca este programa y haga un |RUN~
STOP y END
Existen cuatro maneras de parar la ejecucioacuten de un programa BASIC
1 El programa se para cuando no tiene mas liacuteneas que ejecutar
2 Con STOP Cuando el ordenador encuentra un STOP el programa se
para y aparece en la pantalla|Break in N~ (donde |N~ es la liacutenea
en la que esta situado el STOP)
3 END Es similar a STOP except o en que el ordenador no escribe el
mensaje de interrupcioacuten
4 Pulsando |Ctrl~ y |Break~ (Scroll lock) simultaacuteneamente paramos
la ejecucioacuten de un programa y aparece el mensaje |Break in N~
donde N es la liacutenea donde se ha interrumpido el programa
Si tecleamos |CONT~el programa |continuacutea ejecutaacutendose a partir
del punto donde FUE INTERRUMPIDO
CONT tambieacuten funciona con STOP pero no con END
STOP y END (continuacion)
Veamos como funcionan estas instrucciones |corriendo el siguiente
programa
|10 PRINT Escriba CONT y pulse return
|20 STOP
|30 PRINT BIEN Ha continuado el programa
|40 PRINT Pulse Ctrl y Break simultaneamenteGOTO 40~
El comando EDIT
Cuando cometemos (o descubrimos) un error en una liacutenea podemos
corregirlo simplemente escribiendo encima Sin embargo es mucho mas raacutepido
utilizar el EDITor Para esto sencillamente tecleamos |EDIT N~ (donde |N~ es
el nuacutemero de liacutenea que vamos a editar) y nos movemos con el cursor al punto
donde vamos a corregir para escribir encima insertar o borrar
Si lo que queremos es borrar una liacutenea del programa simplemente
escribimos su nuacutemero y pulsamos RETURN Si son varias las liacuteneas que vamos a
borrar escribimos |DELETE N1-N2 (donde |N1~ es la primera y |N2~ es la ultima
liacutenea a borrar) y pulsamos RETURN Esta instruccioacuten borraraacute todas las liacuteneas
entre |N1~ y |N2~ incluidas estas
El comando AUTO
Con el fin de no perder tiempo escribiendo el nuacutemero de liacutenea de cada
instruccioacuten en un programa podemos utilizar el comando |AUTO
Al poner la palabra AUTO el ordenador numerara las liacuteneas automaacuteticamente
Esta es la forma correcta de poner el comando AUTO
AUTO [|B~[|I~]]
|B~ es el primer nuacutemero de liacutenea que escribiraacute el ordena dor Si no se
pone ninguacuten valor para |B~ el ordenador automaacuteticamente pondraacute el numero 10
|I~ es el incremento Esto es el valor que se le suma a cada liacutenea
para obtener el nuacutemero de liacutenea siguiente Al omitirlo se incrementaraacuten las
liacuteneas de 10 en 10
AUTO (continuacioacuten)
Si queremos comenzar nuestro programa por una liacutenea que no sea la 10
por ejemplo la 200 escribiremos AUTO 200 y nuestro programa empezaraacute en la
liacutenea 200 y se incrementaraacute de 10 en 10 Si queremos comenzar por la liacutenea
100 y en saltos de 5 en 5 escribiremos AUTO 1005
Para terminar de introducir el programa debemos pulsar |Ctrl~ y |Break~ al
aparecer la liacutenea siguiente a la ultima
Introduzca el siguiente programa utilizando AUTO
|100 INPUT Dime el primer num ero A
|105 INPUT Dime el segundo numero B
|110 PRINT A+B=A+B
|115 PRINT A-B=A-B
|120 PRINT AB=AB
Los comandos TRON y TROFF
Cuando un programa no funciona correctamente la primera vez que lo
ejecutamos se dice que contiene errores (BUGS) La mayor parte del tiempo de un
programador se pierde depurando (debuging) un programa
Una instruccioacuten que nos facilita esta labor es el comando |TRON~
Al escribir TRON antes de ejecutar un programa aparece entre corchetes ( |[]~)
el nuacutemero de liacutenea que se estaacute ejecutando junto con los textos de la ejecucioacuten
propia del programa
Para el programa |10 DATA 172399~
|20 READ NUM
|30 IF NUMltgt99 THEN PRINT NUMGOTO 20~
|40 PRINT FIN
Utilizando TRON lo
veriacuteamos asiacute |[10][20][30] 17~
|[20][30] 23~
|[20][30][40]The END
Cuando hemos localizado el error y queremos ejecutar nuestro programa
sin que aparezcan los nuacutemeros de liacutenea tenemos que teclear |TROFF~
Esto devuelve al ordenador a su modo normal de ejecucioacuten
TRON y TROFF (continuacioacuten)
El siguiente programa debe contar y escribir los nuacutemeros de la liacutenea
DATA pero por alguna razoacuten se vuelve loco al escribir el primer valor
Utilizando TRON y TROFF localice y solucione el problema
|10 DATA 3467129653884999~
|20 READ NUMIF NUM=999 THEN GOTO 60~
|30 CON=CON+1
|40 PRINT El valor del numeroCONesNUM
|50 GOTO 30~
|60 PRINT HayCONnuacutemeros en la liacutenea DATA
Primero teclee el programa y haga un |RUN~ Tras unos se gundos pulse
|Ctrl~ y |Break~ para parar el programa Teclee TRON y RETURN para entrar en
el modo TRAZADO De nuevo |RUN~ y cuando localice el problema pare de nuevo
el programa corrija el programa y entre en el modo de EJECUCION con TROFF
para hacer un |RUN~ por tercera vez
TRON y TROFF (continuacioacuten)
Aquiacute tenemos de nuevo el uacuteltimo programa Afortunadamente encontroacute
el problema en la liacutenea |50~
10 DATA 3467129653884999
20 READ NUMIF NUM=999 THEN GOTO 60
30 CON=CON+1
40 PRINT El valor del numeroCONesNUM
|50 GOTO 30~
60 PRINT HayrdquoCONrdquonuacutemeros en la liacutenea DATA
En la liacutenea deberiacutea poner |50 GOTO 20~ Tal como estaba el programa
nunca leeriacutea un nuevo valor para la variable |NUM~ luego nunca leeriacutea |999~
para marcar el fin de programa
La funcioacuten RND
La funcioacuten RND devuelve un nuacutemero al azar entre el 0 y el 1
Si queremos un nuacutemero entre el 0 y el 100 simplemente multiplicamos RND por 100
ejemplo- LET |X=RND [El valor de |X~ cumple que |0~ lt |X~ lt| 1~]
LET |Y=RND100 [El valor de |Y~ cumple que |0 ~lt |Y~ lt| 100~]
Aquiacute tenemos un programa de ejemplo que nos pide el liacutemite superior
y nos devuelve una serie de nuacutemeros al azar entre 0 y el liacutemite
Tendraacute que utilizar |Ctrl~ y |Break~ para parar el programa
|10 INPUT Introduzca el liacutemite superiorMAXIMO
|20 PRINT RNDMAXIMO
|30 GOTO 20~
La funcioacuten INT
La funcioacuten INT suprime la parte decimal de un nuacutemero entre pareacutentesis
y devuelve su parte entera redondeaacutendola
ejemplo- |LET A=INT(92)~ [Aquiacute |A~ vale |9~]
|LET K=INT(76)~ [Aquiacute |K~ vale |8~]
Aquiacute tenemos un programa que utiliza RND e INT conjuntamente
De nuevo pulse |Ctrl~ y |Break~ para acabar el programa
|10 NUMERO=RND200-100 genera un nuacutemero entre -100 y 100
|20 PRINT Cuaacutel es la parte entera deNUMEROINPUT RESPUESTA~
|30 IF RESPUESTAltgtINT(NUMERO) THEN PRINT La respuesta esINT(NUMERO)~
|40 GOTO 10~
La funcioacuten ABS
La funcioacuten ABS devuelve el valor absoluto de una expresioacuten
El valor absoluto es sencillamente el valor positivo de un numero
example LET X=ABS(-5) [Aquiacute |X~ es igual a |5~]
|LET C=ABS(124) [Aquiacute |C~ es igual a |48~]
Aquiacute tenemos un programa que utiliza las funciones RND INT y ABS
De nuevo pulse |Ctrl~ y |Break~ cuando quiera finalizar
|10 NUMERO=INT(RND200-100) Genera un nuacutemero entero entre -100 and 100
|20 PRINT Cuaacutel es el valor ABSOLUTO deNUMEROINPUT RESPUESTA~
|30 IF RESPUESTAltgtABS(NUMERO) THEN PRINT La respuestaesABS(NUMERO)~
|40 GOTO 10~
Las funciones ABS e INT (continuacioacuten)
Aquiacute tenemos un programa muy interesante para los aficionados a las
Matemaacuteticas Calcula el Maacuteximo Comuacuten Denominador de dos nuacutemeros
|10 INPUT Dime el primer nuacutemeroNUM1
|20 INPUT Dime el segundoNUM2
|30 NUM1=ABS(NUM1)NUM2=ABS(NUM2)~
|40 LET R=NUM1-NUM2INT(NUM1NUM2)~
|50 IF R=0 THEN GOTO 70~
|60 NUM1=NUM2NUM2=RGOTO 40~
|70 PRINT El maacuteximo comuacuten denominador esNUM2
copy 1991 Javier de LucasLinares
![Page 2: Introducción al Lenguaje de programacion BASIC](https://reader031.vdocuments.co/reader031/viewer/2022020218/5571f1c849795947648bade1/html5/thumbnails/2.jpg)
INPUT (continuacioacuten)202
Variables Cadena203
Maacutes sobre LET 204
Maacutes sobre LET (continuacioacuten)205
Maacutes sobre LET (continuacioacuten)206
NEW 207
DATA y READ 301
DATA y READ (continuacioacuten)302
GOTO 303
IF THEN 304
IF THEN (continuacioacuten)305
IF THEN (continuacioacuten)306
Operadores Loacutegicos307
ELSE 308
Liacuteneas con instrucciones muacuteltiples309
REM 401
STOP y END 402
STOP y END (continuacioacuten)403
EDIT 404
AUTO 405
AUTO (continuacioacuten)406
TRON y TROFF 407
TRON y TROFF (continuacioacuten)408
TRON y TROFF (continuacioacuten)409
RND 410
INT 411
ABS 412
ABS y INT (continuacioacuten)413
Introduccioacuten al BASIC
El BASIC es uno de los muchos lenguajes de Ordenador El nombre BASIC viene de|B~eginners |A~ll-purpose |S~ymbolic |I~nstruction |C~ode Dado que es uno de loslenguajes maacutes faacuteciles de aprender el BASIC ha llegado a ser el lenguaje maacutes popular paraintroducirse en la Informaacutetica
El BASIC consta de instrucciones comandos y funciones Estas son
palabras inglesas que tienen un significado especial para el ordenad or Los
programas en BASIC son sencillamente un grupo de instrucciones comandos y
funciones que realizan conjuntamente una tarea determinada
En los proacuteximos capiacutetulos iremos introduciendo estos comandos
funciones e instrucciones y ofrecieacutendole la oportunidad de comprobar de queacute
manera actuacutean Lo maacutes importante es intentar comprobar coacutemo funcionan
No tenga miedo de equivocarse si lo hace el ordenador se lo diraacute Si eacuteste es
el caso intente hacerlo de nuevo de una manera diferente
La instruccioacuten PRINT
Lo primero que tenemos que aprender es coacutemo hacer que el ordenador
escriba algo en la pantalla Esto se hace con la instruccioacuten PRINT Esta
instruccioacuten le indica al ordenador que escriba todo lo que sigue a PRINT
SI TECLEA EL ORDENADOR ESCRIBE
PRINT 5 5
Si queremos que el ordenador escriba la respuesta de un problema
matemaacutetico escribiremos loa caacutelculos a realizar detraacutes del PRINT
SI TECLEA EL ORDENADOR ESCRIBE
PRINT 3+2 5
Ahora realicemos los ejemplos anteriores escribiendo lo que estaacute
debajo de |SI TECLEA y pulsando |return~ a continuacioacuten Con |F2~ continuamos
La instruccioacuten PRINT (continuacioacuten)
Si queremos escribir palabras en la pantalla las debemos escribir
entre comillas ( )
SI TECLEAMOS EL ORDENADOR ESCRIBE
PRINT Lo que se te ocurra Lo que se te ocurra
Si queremos escribir texto junto con la respuesta a un problema
matemaacutetico debemos separar ambos bien con una coma () o punto y coma ()
SI TECLEAMOS EL ORDENADOR ESCRIBE
PRINT La suma de 3+2 es 3+2~ La suma de 3+2 es 5
PRINT La suma de 3+2 es 3+2~ La suma de 3+2 es 5
La diferencia entre usar la coma y el punto y coma es la cantidad de
espacios que el ordenador escribe Realice ahora los ejemplos indicados bajo
las palabras SI TECLEAMOS
(En el BASIC de IBM se puede omitir el punto y coma en otras versiones no)
Variables
Lo siguiente que vamos a aprender es el concepto de variable Una
variable es un siacutembolo (usualmente una letra del alfabeto) que se usa para
representar un nuacutemero Una vari able puede representar varios valores Las
variables son muy importantes en la programacioacuten de un ordenador
En la expresioacuten algebraica
9=X+3
X es la variable Para que |9=X+3~ sea cierto el valor de |X~
debe ser |6~ (porque |9~ y |6+3~ son iguales)
En la expresioacuten
SUM=A+B
|SUM~ |A~ y |B~ son variables |A~ y |B~ pueden tener cualquier valor
y la variable |SUM~ es la suma de esos valores
Variables (continuacioacuten)
Como hemos visto el nombre de un a variable puede tener maacutes de una
letra De hecho puede contener hasta 40 caracteres El primer caraacutecter de
la variable debe ser una letra pero los siguientes 39 pueden ser letras o
nuacutemeros Existen muchas palabras reservadas que no se pueden utilizar como
nombres de variables Estas son las instrucciones del lenguaje BASIC
A continuacioacuten veremos algunos nombres invaacutelidos de variables
|FAT~ - Todos los caracteres deben ser letras o nuacutemeros |~ no lo es
|2TALL~ - El primer caraacutecter tiene que se r una letra |2~ es un nuacutemero
|PRINT~ - |PRINT~ es una palabra reservada en BASIC
Es una buena idea hacer los nombres de las variables tan descriptivos
como sea posible Si queremos escribir un programa que sume dos nuacutemeros
utilizaremos las variables |RESULTADO |NUM1~ y |NUM2~ Esto nos ayudaraacute a
saber queacute hacen las variables pero no ayudaraacute de ninguna manera al ordenador
El nombre de la variable enviacutea al ordenador a una zona de memoria donde esta
almacenado su valor
La instruccioacuten LET
La instruccioacuten LET asigna una expresioacuten a una variable En BASIC IBM
la palabra LET es opcional El signo igual es suficiente como vemos en los
siguientes ejemplos
LET A=3 o A=3
En los dos casos el valors 3 se asigna a la variable A
LET SUM=A+B o SUM=A+B
Aquiacute la suma de las variables |A~ y |B~ se asigna a la variable |SUM~
|LET K=K+1~ o |K=K+1~
En aacutelgebra la expresioacuten |K=K+1~ es falsa (iquestCoacutemo un nuacutemero puede ser
igual al mismo maacutes 1) Pero en BASIC significa que el nuevo valor de |K~
seraacute igual al viejo valor de |K~ mas |1~
Las instrucciones PRINT y LET
Hasta que no hayamos asignado un valor a una variable (mediante LET )
eacutesta seraacute igual a cero Si usamos una variable en una instruccioacuten PRINT se
escribiraacute el valor de la variable no su nombre Escribamos las siguientes
cinco liacuteneas para ver como actuacutean PRINT y LET conjuntamente
|PRINT NUM1 NUM2 SUM~
|LET NUM1=45
LET NUM2=5
|SUM=NUM1+NUM2~
|PRINT La suma de NUM1 y NUM2 es SUM~
Nuacutemeros de LINEA
Como aprendimos anteriormente un programa es un grupo de instrucciones
La manera de que el ordenador ejecute las instrucciones de un programa es
numerando cada instruccioacuten con un nuacutemero de liacutenea El ordenador realiza
cada instruccioacuten en el orden marca do por su nuacutemero de liacutenea
En las siguientes instrucciones
|10~ PRINT 3+2
|20~ PRINT 3+3
|10~ y |20~ son nuacutemeros de liacutenea
El comando LIST
Escribiendo |LIST~ y tras pulsar return se escribiraacute el programa que
estaacute en la memoria Escriba el siguien te programa y despueacutes teclee LIST
|10 PRINT 3+2~
|20 PRINT 3+3~
|30 PRINT 3+4~
|40 PRINT 3+5~
El comando LIST (continuacioacuten)
El ordenador siempre ejecuta el programa en orden creciente empezando
por el numero de liacutenea maacutes bajo Si queremos escribir la instruccioacuten |PRINT 3+1~
antes de la liacutenea |10~ entonces le asignamos un nuacutemero de liacutenea menor de 10
Escribamos lo siguiente
|10 PRINT 3+2~
|20 PRINT 3+3~
|30 PRINT 3+4~
|40 PRINT 3+5~
|5 PRINT 3+1~
Ahora escriba |LIST~ y pulse return El comando LIST mostraraacute el
programa en orden numeacuterico Convencionalmente se asignan nuacutemeros de liacutenea
incrementados de 10 en 10 El ordenador renumeraraacute las liacuteneas si tecleamos
la palabra |RENUM~ y pulsamos return Haacutegalo y despueacutes teclee |LIST~ par a
comprobar lo que ocurre
El comando RUN
El comando |RUN~ ejecuta nuestro programa Cuando antes escribiacuteamos
PRINT 3+2 y pulsaacutebamos return el ordenador ejecutaba la instruccioacuten PRINT
inmediatamente Ahora cuando ponemos un nuacutemero de liacutenea el orden ador guarda en
en su memoria la instruccioacuten y espera la orden RUN para ejecutar el programa
Escriba lo siguiente teclee |RUN~ y pulse return
|10 PRINT 3+1~
|20 PRINT 3+2~
|30 PRINT 3+3~
|40 PRINT 3+4 ~
|50 PRINT 3+5~
(Observe que el punto y coma escribe el |8~ en la misma liacutenea que el |7~)
La instruccioacuten INPUT
La instruccioacuten |INPUT~ nos permite introducir datos desde el teclado
mientras el programa se estaacute ejecutando Cuando el programa encuentra un INPUT
se para y aparece una interrogacioacuten esperando que introduzcamos un nuacutemero para
continuar con la liacutenea siguiente Tras el input debemos poner una variable
ejemplo 10 INPUT X
Podemos poner un texto (palabras entre comillas que nos recuerdan
el dato que el ordenador espera) entre el INPUT y la variable Si un punto y
coma sigue al texto entonces la interrogacioacuten aparece en la pantalla si en su
lugar ponemos una coma la interrogacioacuten no apareceraacute
INPUT (continuacioacuten)
Esto es lo que la instruccioacuten INPUT hace en un programa
|10 INPUT Dime un valor para X X~
|20 PRINT X es igual a X~
Teclee este programa ejecuacutetelo y vea lo que sucede Despueacutes de hacerlo
cambie el punto y coma por una coma en la liacutenea |10~ y haga un |RUN~ Para
ejecutar el programa de nuevo con un valor distinto en la variable ponga |RUN~
de nuevo e introduzca un valor diferente para X
Variables cadena (strings)
Las variables pueden representar tanto texto como nuacutemeros Una variable
que representa una serie de caracteres se llama variable cadena
El nombre de este tipo de variables se diferencian de las numeacutericas
porque al final de su nombre llevan el signo doacutelar
ejemplo |XYZ$~=Aula Informaacutetica IES Celestino Mutis
Podemos asignar una cadena de caracteres a una variable string de la
misma manera que asignaacutebamos un valor a una variable numeacuterica
Ejecutemos el siguiente programa
|10 INPUT Dime tu nombre N$~
|20 PRINT Me alegro de conocerte N$ soy el ordenador personal ATLAS~
Maacutes sobre LET
Ahora que podemos introducir y sacar datos del ordenador hagamos algo
interesante Los caacutelculos matemaacuteticos se hacen en BASIC con la instruccioacuten
LET que aprendimos en la primera leccioacuten La instruccioacuten LET asigna a una
variable una expresioacuten numeacuterica A continuacioacuten vamos a conocer cuaacuteles son los
operadores aritmeacuteticos y como se utilizan en BASIC
SIMBOLO DESCRIPCION EJEMPLOS
|+~ suma A|+~B 6|+~12
|-~ resta A|-~B 23|-~7
|~ multiplicacioacuten A|~B 3|~(2 -1)
|~ divisioacuten A|~B (8+2)|~4
|^~ exponenciacioacuten A|^~B (53)|^~2
Maacutes sobre LET (continuacioacuten)
Aquiacute tenemos dos ejemplos especiacuteficos de la utilizacioacuten de LET
CONVERSION CELSIUS A FAHRENHEIT
|10 LET F=18 C + 32~
INTERES ANUAL
|10 INTERES=CANTIDADPORCENTAJE~
Intente escribir un programa que nos permita introducir una temperatura
en grados Celsius la convierta a grados Fahrenheit y escriba el resultado (use
|INPUT~ |LET~ y |PRINT~ ) Recuerde la versioacuten BASIC de IBM permite la
omisioacuten de la palabra LET si asiacute se desea
Maacutes sobre LET (continuacioacuten)
Esta es una manera de escribir el programa anterior
|10 INPUT Introduzca la temperatura en grados CelsiusC~
|20 F=18C+32~
|30 PRINT F grados Fahrenheit sonCCelsius~
El comando NEW
El comando |NEW~ |BORRA el programa que estaacute en la memoria
Tambieacuten borra los valores que se hayan asignado a las variables en un programa
Siempre que vayamos a introducir un programa nuevo debemos teclear NEW primero
de no hacerlo asiacute las liacuteneas del programa antiguo se mezclaran con el que
estemos introduciendo
El formato del comando NEW es simplemente escribir NEW y pulsar RETURN
Este comando no borra el programa del disco solamente borra el
programa de la memoria del ordenador
Instrucciones DATA y READ
Ya hemos aprendido a utilizar la instruccioacuten INPUT
Otra forma de introducir datos en el ordenador es con |DATA y |READ~
La instruccioacuten DATA no se ejecuta La utiliza el ordenador cuando
ejecuta la instruccioacuten READ Despueacutes de la palabra DATA podemos poner nuacutemeros
o grupos de letras entre comillas separados por comas La liacutenea de datos asiacute
creada se lee de la siguiente manera La primera vez que el programa ejecuta
READ se carga el primer dato de la liacutenea DATA la segunda vez el segundo
etc
Introduzca los siguientes programas de ejemplo y haga un |RUN~
|10 DATA 711 10 DATA LUISPERICO~
|20 READ X 20 READ X$~
|30 PRINT X 30 PRINT X$~
|40 READ X 40 READ X$~
|50 PRINT X 50 PRINT X$~
Intrucciones DATA y READ (continuacioacuten)
Cuando el ordenador no tiene maacutes datos que leer se produce un error
el programa se para y aparece un mensaje de error
Comprueacutebelo con el siguiente programa
|10 DATA 10Veinte~
|20 READ X~
|30 PRINT 1X~
|40 READ X$~
|50 PRINT 2X$~
|60 READ X~
|70 PRINT 3X~
Como no hay un tercer dato que leer el ordenador se para y nos indica
que existe un error en la liacutenea numero 60 Ejecuacutetelo y vea lo que ocurre
Instruccioacuten GOTO
La instruccioacuten |GOTO~ es de las maacutes sencillas de comprender y una de
la maacutes importantes en BASIC Le dice al ordenador que vaya a un nuacutemero de
liacutenea diferente al siguiente que corresponda ejecutar
En el siguiente programa el ordenador estaraacute dando vueltas en las
liacuteneas 20 30 y 40 hasta que no tenga mas datos que leer dando un error
Las instrucciones IF THEN
Las instrucciones |IF THEN~ nos permiten elegir entre dos opciones |IF~ una
condicioacuten es verdadera el ordenador ejecuta lo que sigue a |THEN~ |IF~ |no
es verdadera el ordenador ejecuta la liacutenea siguiente Normalmente un GOTO
suele seguir a THEN
Mediante Operadores de relacion comparamos los dos valores de la
condicioacuten el las instrucciones IF THEN
Los Operadores de Relacioacuten maacutes comunes son los siguientes
|=~ igual a lt menor que |lt=~ menor o igual que
|ltgt~ distinto de |gt~ mayor que |gt=~ mayor o igual que
Las instrucciones IF THEN
Poniendo al final de la liacutenea DATA un nuacutemero de control y utilizando
las instrucciones IF THEN tras el READ podemos utilizar e l nuacutemero de control
para evitar el error |Out of DATA El siguiente programa calcula la media de
los nuacutemeros DATA especificados en DATA y utiliza |99~ como |fin de datos
Las instrucciones IF THEN
Aquiacute tenemos dos ejemplos Uno cuenta la cantidad de datos que hay en
una liacutenea DATA El otro escogeraacute los nuacutemeros que sean mayores de 50 en la
liacutenea DATA y los escribiraacute en la pantalla En ambos casos el numero |999~
hace que se pare el programa Escriacutebalos y haga un |RUN~
|10 DATA 10692451007412999 10 DATA 10692451007412999~
|20 READ X 20 READ X~
|30 IF X=999 THEN GOTO 60 20 IF X=999 THEN STOP
|40 LET K=K+1 40 IF Xlt=50 THEN GOTO 20~
|50 GOTO 20 50 PRINT X~
|60 PRINT K 60 GOTO 20~
Operadores Loacutegicos
Los |Operadores Loacutegicos ~ hacen mas uacutetiles las instrucciones IF THEN
Los operadores loacutegicos mas importantes en el BASIC de IBM son
|AND~ |OR~ -Y y O-
Los operadores |AND~ y |OR~ se utilizan cuando queremos implantar
maacutes de una condicioacuten en las instrucciones |IF THEN~ Vamos a ver un ejemplo
de su utilidad en un programa Primero escriba y haga un |RUN~ en el programa
siguiente A continuacioacuten cambie los datos en la liacutenea DATA y haga otro |RUN~
|10 DATA 52317342945999~
|20 READ X~
|30 IF X=999 THEN GOTO 70~
|40 IF Xlt20 OR Xgt30 THEN LET A=A+1
|50 IF Xgt=20 AND Xlt=30 THEN LET B=B+1
|60 GOTO 20~
|70 PRINT Anuacutemeros menores que 20 o mayores que 30 y~
|Bentre 20 y 30~
La instruccioacuten ELSE
Otra opcioacuten de las instrucciones IF T HEN es la sentencia ELSE
Sin ELSE el programa se saltaraacute las instrucciones IF y THEN si la condicioacuten
establecida tras el IF no se cumple Si la palabra ELSE sigue a IF THEN
entonces se ejecuta lo que sigue a ELSE en vez de continuar con la siguiente
liacutenea
Aquiacute tenemos el uacuteltimo programa modificado para ver la instruccioacuten ELSE
Introduacutezcalo y haga un |RUN~
|10 DATA 52317342945999~
|20 READ X~
|30 IF X=999 THEN GOTO 60~
|40 IF Xlt20 OR Xgt30 THEN LET A=A+1 ELSE LET B=B+1
|50 GOTO 20~
|60 PRINT Ardquonuacutemeros menores que 20 o mayores que 30 y~
|Bentre 20 y 30~
Liacuteneas con instrucciones muacuteltiples
Otra caracteriacutestica del BASIC es la utilizacioacuten de instrucciones
muacuteltiples en una liacutenea Podemos poner varias instrucciones en la misma liacuten ea
separaacutendolas con dos puntos (|~) Resulta muy uacutetil con IF THEN
Aquiacute tenemos un ejemplo que muestra este tipo de liacuteneas
Escriacutebalo y haga un RUN~ modifique los valores en la liacutenea DATA y de nuevo
haga un |RUN~
|10 DATA 52317342945999~
|20 READ X~
|30 IF X=999 THEN PRINT Amenores que 20Bentre 20 y 30 yC~
mayores que 30END
|40 IF Xlt20 THEN PRINT Xes menor que 20LET A=A+1GOTO 20~
|50 IF Xlt30 THEN PRINT Xestaacute entre 20 y 30LET B=B+1GOTO 20
|60 PRINT Xes mayor que 30LET C=C+1GOTO 20~
La instruccioacuten REM
La instruccioacuten |REM nos permite escribir notas aclaratorias dentro de
un programa Estos comentarios son ignorados por el ordenador cuando encuentra
la instruccioacuten REM pero le fac ilitan al programador informacioacuten del programa
Las anotaciones aparecen cuando LISTAMOS en programa Los comentarios pueden
comenzar bien por la palabra REM o por un apoacutestrofe (|~)
Aquiacute tenemos un ejemplo de la utilizacioacuten de REM en un programa
10 DATA 452497654715803877999
20 READ XIF X=999 THEN 60 |Si no hay mas datos va a 60~
30 IF Xgt=50 THEN LET G=G+1 |Cuenta los nuacutemeros mayores o iguales a 50~
40 IF Xlt50 THEN LET L=L+1 |Cuenta los nuacutemeros menores de 50~
50 GOTO 20 |Obtiene el siguiente numero~
60 PRINT De los numerosLson menores de 50 y
70 PRINT Gson mayores o iguales a 50
Introduzca este programa y haga un |RUN~
STOP y END
Existen cuatro maneras de parar la ejecucioacuten de un programa BASIC
1 El programa se para cuando no tiene mas liacuteneas que ejecutar
2 Con STOP Cuando el ordenador encuentra un STOP el programa se
para y aparece en la pantalla|Break in N~ (donde |N~ es la liacutenea
en la que esta situado el STOP)
3 END Es similar a STOP except o en que el ordenador no escribe el
mensaje de interrupcioacuten
4 Pulsando |Ctrl~ y |Break~ (Scroll lock) simultaacuteneamente paramos
la ejecucioacuten de un programa y aparece el mensaje |Break in N~
donde N es la liacutenea donde se ha interrumpido el programa
Si tecleamos |CONT~el programa |continuacutea ejecutaacutendose a partir
del punto donde FUE INTERRUMPIDO
CONT tambieacuten funciona con STOP pero no con END
STOP y END (continuacion)
Veamos como funcionan estas instrucciones |corriendo el siguiente
programa
|10 PRINT Escriba CONT y pulse return
|20 STOP
|30 PRINT BIEN Ha continuado el programa
|40 PRINT Pulse Ctrl y Break simultaneamenteGOTO 40~
El comando EDIT
Cuando cometemos (o descubrimos) un error en una liacutenea podemos
corregirlo simplemente escribiendo encima Sin embargo es mucho mas raacutepido
utilizar el EDITor Para esto sencillamente tecleamos |EDIT N~ (donde |N~ es
el nuacutemero de liacutenea que vamos a editar) y nos movemos con el cursor al punto
donde vamos a corregir para escribir encima insertar o borrar
Si lo que queremos es borrar una liacutenea del programa simplemente
escribimos su nuacutemero y pulsamos RETURN Si son varias las liacuteneas que vamos a
borrar escribimos |DELETE N1-N2 (donde |N1~ es la primera y |N2~ es la ultima
liacutenea a borrar) y pulsamos RETURN Esta instruccioacuten borraraacute todas las liacuteneas
entre |N1~ y |N2~ incluidas estas
El comando AUTO
Con el fin de no perder tiempo escribiendo el nuacutemero de liacutenea de cada
instruccioacuten en un programa podemos utilizar el comando |AUTO
Al poner la palabra AUTO el ordenador numerara las liacuteneas automaacuteticamente
Esta es la forma correcta de poner el comando AUTO
AUTO [|B~[|I~]]
|B~ es el primer nuacutemero de liacutenea que escribiraacute el ordena dor Si no se
pone ninguacuten valor para |B~ el ordenador automaacuteticamente pondraacute el numero 10
|I~ es el incremento Esto es el valor que se le suma a cada liacutenea
para obtener el nuacutemero de liacutenea siguiente Al omitirlo se incrementaraacuten las
liacuteneas de 10 en 10
AUTO (continuacioacuten)
Si queremos comenzar nuestro programa por una liacutenea que no sea la 10
por ejemplo la 200 escribiremos AUTO 200 y nuestro programa empezaraacute en la
liacutenea 200 y se incrementaraacute de 10 en 10 Si queremos comenzar por la liacutenea
100 y en saltos de 5 en 5 escribiremos AUTO 1005
Para terminar de introducir el programa debemos pulsar |Ctrl~ y |Break~ al
aparecer la liacutenea siguiente a la ultima
Introduzca el siguiente programa utilizando AUTO
|100 INPUT Dime el primer num ero A
|105 INPUT Dime el segundo numero B
|110 PRINT A+B=A+B
|115 PRINT A-B=A-B
|120 PRINT AB=AB
Los comandos TRON y TROFF
Cuando un programa no funciona correctamente la primera vez que lo
ejecutamos se dice que contiene errores (BUGS) La mayor parte del tiempo de un
programador se pierde depurando (debuging) un programa
Una instruccioacuten que nos facilita esta labor es el comando |TRON~
Al escribir TRON antes de ejecutar un programa aparece entre corchetes ( |[]~)
el nuacutemero de liacutenea que se estaacute ejecutando junto con los textos de la ejecucioacuten
propia del programa
Para el programa |10 DATA 172399~
|20 READ NUM
|30 IF NUMltgt99 THEN PRINT NUMGOTO 20~
|40 PRINT FIN
Utilizando TRON lo
veriacuteamos asiacute |[10][20][30] 17~
|[20][30] 23~
|[20][30][40]The END
Cuando hemos localizado el error y queremos ejecutar nuestro programa
sin que aparezcan los nuacutemeros de liacutenea tenemos que teclear |TROFF~
Esto devuelve al ordenador a su modo normal de ejecucioacuten
TRON y TROFF (continuacioacuten)
El siguiente programa debe contar y escribir los nuacutemeros de la liacutenea
DATA pero por alguna razoacuten se vuelve loco al escribir el primer valor
Utilizando TRON y TROFF localice y solucione el problema
|10 DATA 3467129653884999~
|20 READ NUMIF NUM=999 THEN GOTO 60~
|30 CON=CON+1
|40 PRINT El valor del numeroCONesNUM
|50 GOTO 30~
|60 PRINT HayCONnuacutemeros en la liacutenea DATA
Primero teclee el programa y haga un |RUN~ Tras unos se gundos pulse
|Ctrl~ y |Break~ para parar el programa Teclee TRON y RETURN para entrar en
el modo TRAZADO De nuevo |RUN~ y cuando localice el problema pare de nuevo
el programa corrija el programa y entre en el modo de EJECUCION con TROFF
para hacer un |RUN~ por tercera vez
TRON y TROFF (continuacioacuten)
Aquiacute tenemos de nuevo el uacuteltimo programa Afortunadamente encontroacute
el problema en la liacutenea |50~
10 DATA 3467129653884999
20 READ NUMIF NUM=999 THEN GOTO 60
30 CON=CON+1
40 PRINT El valor del numeroCONesNUM
|50 GOTO 30~
60 PRINT HayrdquoCONrdquonuacutemeros en la liacutenea DATA
En la liacutenea deberiacutea poner |50 GOTO 20~ Tal como estaba el programa
nunca leeriacutea un nuevo valor para la variable |NUM~ luego nunca leeriacutea |999~
para marcar el fin de programa
La funcioacuten RND
La funcioacuten RND devuelve un nuacutemero al azar entre el 0 y el 1
Si queremos un nuacutemero entre el 0 y el 100 simplemente multiplicamos RND por 100
ejemplo- LET |X=RND [El valor de |X~ cumple que |0~ lt |X~ lt| 1~]
LET |Y=RND100 [El valor de |Y~ cumple que |0 ~lt |Y~ lt| 100~]
Aquiacute tenemos un programa de ejemplo que nos pide el liacutemite superior
y nos devuelve una serie de nuacutemeros al azar entre 0 y el liacutemite
Tendraacute que utilizar |Ctrl~ y |Break~ para parar el programa
|10 INPUT Introduzca el liacutemite superiorMAXIMO
|20 PRINT RNDMAXIMO
|30 GOTO 20~
La funcioacuten INT
La funcioacuten INT suprime la parte decimal de un nuacutemero entre pareacutentesis
y devuelve su parte entera redondeaacutendola
ejemplo- |LET A=INT(92)~ [Aquiacute |A~ vale |9~]
|LET K=INT(76)~ [Aquiacute |K~ vale |8~]
Aquiacute tenemos un programa que utiliza RND e INT conjuntamente
De nuevo pulse |Ctrl~ y |Break~ para acabar el programa
|10 NUMERO=RND200-100 genera un nuacutemero entre -100 y 100
|20 PRINT Cuaacutel es la parte entera deNUMEROINPUT RESPUESTA~
|30 IF RESPUESTAltgtINT(NUMERO) THEN PRINT La respuesta esINT(NUMERO)~
|40 GOTO 10~
La funcioacuten ABS
La funcioacuten ABS devuelve el valor absoluto de una expresioacuten
El valor absoluto es sencillamente el valor positivo de un numero
example LET X=ABS(-5) [Aquiacute |X~ es igual a |5~]
|LET C=ABS(124) [Aquiacute |C~ es igual a |48~]
Aquiacute tenemos un programa que utiliza las funciones RND INT y ABS
De nuevo pulse |Ctrl~ y |Break~ cuando quiera finalizar
|10 NUMERO=INT(RND200-100) Genera un nuacutemero entero entre -100 and 100
|20 PRINT Cuaacutel es el valor ABSOLUTO deNUMEROINPUT RESPUESTA~
|30 IF RESPUESTAltgtABS(NUMERO) THEN PRINT La respuestaesABS(NUMERO)~
|40 GOTO 10~
Las funciones ABS e INT (continuacioacuten)
Aquiacute tenemos un programa muy interesante para los aficionados a las
Matemaacuteticas Calcula el Maacuteximo Comuacuten Denominador de dos nuacutemeros
|10 INPUT Dime el primer nuacutemeroNUM1
|20 INPUT Dime el segundoNUM2
|30 NUM1=ABS(NUM1)NUM2=ABS(NUM2)~
|40 LET R=NUM1-NUM2INT(NUM1NUM2)~
|50 IF R=0 THEN GOTO 70~
|60 NUM1=NUM2NUM2=RGOTO 40~
|70 PRINT El maacuteximo comuacuten denominador esNUM2
copy 1991 Javier de LucasLinares
![Page 3: Introducción al Lenguaje de programacion BASIC](https://reader031.vdocuments.co/reader031/viewer/2022020218/5571f1c849795947648bade1/html5/thumbnails/3.jpg)
Introduccioacuten al BASIC
El BASIC es uno de los muchos lenguajes de Ordenador El nombre BASIC viene de|B~eginners |A~ll-purpose |S~ymbolic |I~nstruction |C~ode Dado que es uno de loslenguajes maacutes faacuteciles de aprender el BASIC ha llegado a ser el lenguaje maacutes popular paraintroducirse en la Informaacutetica
El BASIC consta de instrucciones comandos y funciones Estas son
palabras inglesas que tienen un significado especial para el ordenad or Los
programas en BASIC son sencillamente un grupo de instrucciones comandos y
funciones que realizan conjuntamente una tarea determinada
En los proacuteximos capiacutetulos iremos introduciendo estos comandos
funciones e instrucciones y ofrecieacutendole la oportunidad de comprobar de queacute
manera actuacutean Lo maacutes importante es intentar comprobar coacutemo funcionan
No tenga miedo de equivocarse si lo hace el ordenador se lo diraacute Si eacuteste es
el caso intente hacerlo de nuevo de una manera diferente
La instruccioacuten PRINT
Lo primero que tenemos que aprender es coacutemo hacer que el ordenador
escriba algo en la pantalla Esto se hace con la instruccioacuten PRINT Esta
instruccioacuten le indica al ordenador que escriba todo lo que sigue a PRINT
SI TECLEA EL ORDENADOR ESCRIBE
PRINT 5 5
Si queremos que el ordenador escriba la respuesta de un problema
matemaacutetico escribiremos loa caacutelculos a realizar detraacutes del PRINT
SI TECLEA EL ORDENADOR ESCRIBE
PRINT 3+2 5
Ahora realicemos los ejemplos anteriores escribiendo lo que estaacute
debajo de |SI TECLEA y pulsando |return~ a continuacioacuten Con |F2~ continuamos
La instruccioacuten PRINT (continuacioacuten)
Si queremos escribir palabras en la pantalla las debemos escribir
entre comillas ( )
SI TECLEAMOS EL ORDENADOR ESCRIBE
PRINT Lo que se te ocurra Lo que se te ocurra
Si queremos escribir texto junto con la respuesta a un problema
matemaacutetico debemos separar ambos bien con una coma () o punto y coma ()
SI TECLEAMOS EL ORDENADOR ESCRIBE
PRINT La suma de 3+2 es 3+2~ La suma de 3+2 es 5
PRINT La suma de 3+2 es 3+2~ La suma de 3+2 es 5
La diferencia entre usar la coma y el punto y coma es la cantidad de
espacios que el ordenador escribe Realice ahora los ejemplos indicados bajo
las palabras SI TECLEAMOS
(En el BASIC de IBM se puede omitir el punto y coma en otras versiones no)
Variables
Lo siguiente que vamos a aprender es el concepto de variable Una
variable es un siacutembolo (usualmente una letra del alfabeto) que se usa para
representar un nuacutemero Una vari able puede representar varios valores Las
variables son muy importantes en la programacioacuten de un ordenador
En la expresioacuten algebraica
9=X+3
X es la variable Para que |9=X+3~ sea cierto el valor de |X~
debe ser |6~ (porque |9~ y |6+3~ son iguales)
En la expresioacuten
SUM=A+B
|SUM~ |A~ y |B~ son variables |A~ y |B~ pueden tener cualquier valor
y la variable |SUM~ es la suma de esos valores
Variables (continuacioacuten)
Como hemos visto el nombre de un a variable puede tener maacutes de una
letra De hecho puede contener hasta 40 caracteres El primer caraacutecter de
la variable debe ser una letra pero los siguientes 39 pueden ser letras o
nuacutemeros Existen muchas palabras reservadas que no se pueden utilizar como
nombres de variables Estas son las instrucciones del lenguaje BASIC
A continuacioacuten veremos algunos nombres invaacutelidos de variables
|FAT~ - Todos los caracteres deben ser letras o nuacutemeros |~ no lo es
|2TALL~ - El primer caraacutecter tiene que se r una letra |2~ es un nuacutemero
|PRINT~ - |PRINT~ es una palabra reservada en BASIC
Es una buena idea hacer los nombres de las variables tan descriptivos
como sea posible Si queremos escribir un programa que sume dos nuacutemeros
utilizaremos las variables |RESULTADO |NUM1~ y |NUM2~ Esto nos ayudaraacute a
saber queacute hacen las variables pero no ayudaraacute de ninguna manera al ordenador
El nombre de la variable enviacutea al ordenador a una zona de memoria donde esta
almacenado su valor
La instruccioacuten LET
La instruccioacuten LET asigna una expresioacuten a una variable En BASIC IBM
la palabra LET es opcional El signo igual es suficiente como vemos en los
siguientes ejemplos
LET A=3 o A=3
En los dos casos el valors 3 se asigna a la variable A
LET SUM=A+B o SUM=A+B
Aquiacute la suma de las variables |A~ y |B~ se asigna a la variable |SUM~
|LET K=K+1~ o |K=K+1~
En aacutelgebra la expresioacuten |K=K+1~ es falsa (iquestCoacutemo un nuacutemero puede ser
igual al mismo maacutes 1) Pero en BASIC significa que el nuevo valor de |K~
seraacute igual al viejo valor de |K~ mas |1~
Las instrucciones PRINT y LET
Hasta que no hayamos asignado un valor a una variable (mediante LET )
eacutesta seraacute igual a cero Si usamos una variable en una instruccioacuten PRINT se
escribiraacute el valor de la variable no su nombre Escribamos las siguientes
cinco liacuteneas para ver como actuacutean PRINT y LET conjuntamente
|PRINT NUM1 NUM2 SUM~
|LET NUM1=45
LET NUM2=5
|SUM=NUM1+NUM2~
|PRINT La suma de NUM1 y NUM2 es SUM~
Nuacutemeros de LINEA
Como aprendimos anteriormente un programa es un grupo de instrucciones
La manera de que el ordenador ejecute las instrucciones de un programa es
numerando cada instruccioacuten con un nuacutemero de liacutenea El ordenador realiza
cada instruccioacuten en el orden marca do por su nuacutemero de liacutenea
En las siguientes instrucciones
|10~ PRINT 3+2
|20~ PRINT 3+3
|10~ y |20~ son nuacutemeros de liacutenea
El comando LIST
Escribiendo |LIST~ y tras pulsar return se escribiraacute el programa que
estaacute en la memoria Escriba el siguien te programa y despueacutes teclee LIST
|10 PRINT 3+2~
|20 PRINT 3+3~
|30 PRINT 3+4~
|40 PRINT 3+5~
El comando LIST (continuacioacuten)
El ordenador siempre ejecuta el programa en orden creciente empezando
por el numero de liacutenea maacutes bajo Si queremos escribir la instruccioacuten |PRINT 3+1~
antes de la liacutenea |10~ entonces le asignamos un nuacutemero de liacutenea menor de 10
Escribamos lo siguiente
|10 PRINT 3+2~
|20 PRINT 3+3~
|30 PRINT 3+4~
|40 PRINT 3+5~
|5 PRINT 3+1~
Ahora escriba |LIST~ y pulse return El comando LIST mostraraacute el
programa en orden numeacuterico Convencionalmente se asignan nuacutemeros de liacutenea
incrementados de 10 en 10 El ordenador renumeraraacute las liacuteneas si tecleamos
la palabra |RENUM~ y pulsamos return Haacutegalo y despueacutes teclee |LIST~ par a
comprobar lo que ocurre
El comando RUN
El comando |RUN~ ejecuta nuestro programa Cuando antes escribiacuteamos
PRINT 3+2 y pulsaacutebamos return el ordenador ejecutaba la instruccioacuten PRINT
inmediatamente Ahora cuando ponemos un nuacutemero de liacutenea el orden ador guarda en
en su memoria la instruccioacuten y espera la orden RUN para ejecutar el programa
Escriba lo siguiente teclee |RUN~ y pulse return
|10 PRINT 3+1~
|20 PRINT 3+2~
|30 PRINT 3+3~
|40 PRINT 3+4 ~
|50 PRINT 3+5~
(Observe que el punto y coma escribe el |8~ en la misma liacutenea que el |7~)
La instruccioacuten INPUT
La instruccioacuten |INPUT~ nos permite introducir datos desde el teclado
mientras el programa se estaacute ejecutando Cuando el programa encuentra un INPUT
se para y aparece una interrogacioacuten esperando que introduzcamos un nuacutemero para
continuar con la liacutenea siguiente Tras el input debemos poner una variable
ejemplo 10 INPUT X
Podemos poner un texto (palabras entre comillas que nos recuerdan
el dato que el ordenador espera) entre el INPUT y la variable Si un punto y
coma sigue al texto entonces la interrogacioacuten aparece en la pantalla si en su
lugar ponemos una coma la interrogacioacuten no apareceraacute
INPUT (continuacioacuten)
Esto es lo que la instruccioacuten INPUT hace en un programa
|10 INPUT Dime un valor para X X~
|20 PRINT X es igual a X~
Teclee este programa ejecuacutetelo y vea lo que sucede Despueacutes de hacerlo
cambie el punto y coma por una coma en la liacutenea |10~ y haga un |RUN~ Para
ejecutar el programa de nuevo con un valor distinto en la variable ponga |RUN~
de nuevo e introduzca un valor diferente para X
Variables cadena (strings)
Las variables pueden representar tanto texto como nuacutemeros Una variable
que representa una serie de caracteres se llama variable cadena
El nombre de este tipo de variables se diferencian de las numeacutericas
porque al final de su nombre llevan el signo doacutelar
ejemplo |XYZ$~=Aula Informaacutetica IES Celestino Mutis
Podemos asignar una cadena de caracteres a una variable string de la
misma manera que asignaacutebamos un valor a una variable numeacuterica
Ejecutemos el siguiente programa
|10 INPUT Dime tu nombre N$~
|20 PRINT Me alegro de conocerte N$ soy el ordenador personal ATLAS~
Maacutes sobre LET
Ahora que podemos introducir y sacar datos del ordenador hagamos algo
interesante Los caacutelculos matemaacuteticos se hacen en BASIC con la instruccioacuten
LET que aprendimos en la primera leccioacuten La instruccioacuten LET asigna a una
variable una expresioacuten numeacuterica A continuacioacuten vamos a conocer cuaacuteles son los
operadores aritmeacuteticos y como se utilizan en BASIC
SIMBOLO DESCRIPCION EJEMPLOS
|+~ suma A|+~B 6|+~12
|-~ resta A|-~B 23|-~7
|~ multiplicacioacuten A|~B 3|~(2 -1)
|~ divisioacuten A|~B (8+2)|~4
|^~ exponenciacioacuten A|^~B (53)|^~2
Maacutes sobre LET (continuacioacuten)
Aquiacute tenemos dos ejemplos especiacuteficos de la utilizacioacuten de LET
CONVERSION CELSIUS A FAHRENHEIT
|10 LET F=18 C + 32~
INTERES ANUAL
|10 INTERES=CANTIDADPORCENTAJE~
Intente escribir un programa que nos permita introducir una temperatura
en grados Celsius la convierta a grados Fahrenheit y escriba el resultado (use
|INPUT~ |LET~ y |PRINT~ ) Recuerde la versioacuten BASIC de IBM permite la
omisioacuten de la palabra LET si asiacute se desea
Maacutes sobre LET (continuacioacuten)
Esta es una manera de escribir el programa anterior
|10 INPUT Introduzca la temperatura en grados CelsiusC~
|20 F=18C+32~
|30 PRINT F grados Fahrenheit sonCCelsius~
El comando NEW
El comando |NEW~ |BORRA el programa que estaacute en la memoria
Tambieacuten borra los valores que se hayan asignado a las variables en un programa
Siempre que vayamos a introducir un programa nuevo debemos teclear NEW primero
de no hacerlo asiacute las liacuteneas del programa antiguo se mezclaran con el que
estemos introduciendo
El formato del comando NEW es simplemente escribir NEW y pulsar RETURN
Este comando no borra el programa del disco solamente borra el
programa de la memoria del ordenador
Instrucciones DATA y READ
Ya hemos aprendido a utilizar la instruccioacuten INPUT
Otra forma de introducir datos en el ordenador es con |DATA y |READ~
La instruccioacuten DATA no se ejecuta La utiliza el ordenador cuando
ejecuta la instruccioacuten READ Despueacutes de la palabra DATA podemos poner nuacutemeros
o grupos de letras entre comillas separados por comas La liacutenea de datos asiacute
creada se lee de la siguiente manera La primera vez que el programa ejecuta
READ se carga el primer dato de la liacutenea DATA la segunda vez el segundo
etc
Introduzca los siguientes programas de ejemplo y haga un |RUN~
|10 DATA 711 10 DATA LUISPERICO~
|20 READ X 20 READ X$~
|30 PRINT X 30 PRINT X$~
|40 READ X 40 READ X$~
|50 PRINT X 50 PRINT X$~
Intrucciones DATA y READ (continuacioacuten)
Cuando el ordenador no tiene maacutes datos que leer se produce un error
el programa se para y aparece un mensaje de error
Comprueacutebelo con el siguiente programa
|10 DATA 10Veinte~
|20 READ X~
|30 PRINT 1X~
|40 READ X$~
|50 PRINT 2X$~
|60 READ X~
|70 PRINT 3X~
Como no hay un tercer dato que leer el ordenador se para y nos indica
que existe un error en la liacutenea numero 60 Ejecuacutetelo y vea lo que ocurre
Instruccioacuten GOTO
La instruccioacuten |GOTO~ es de las maacutes sencillas de comprender y una de
la maacutes importantes en BASIC Le dice al ordenador que vaya a un nuacutemero de
liacutenea diferente al siguiente que corresponda ejecutar
En el siguiente programa el ordenador estaraacute dando vueltas en las
liacuteneas 20 30 y 40 hasta que no tenga mas datos que leer dando un error
Las instrucciones IF THEN
Las instrucciones |IF THEN~ nos permiten elegir entre dos opciones |IF~ una
condicioacuten es verdadera el ordenador ejecuta lo que sigue a |THEN~ |IF~ |no
es verdadera el ordenador ejecuta la liacutenea siguiente Normalmente un GOTO
suele seguir a THEN
Mediante Operadores de relacion comparamos los dos valores de la
condicioacuten el las instrucciones IF THEN
Los Operadores de Relacioacuten maacutes comunes son los siguientes
|=~ igual a lt menor que |lt=~ menor o igual que
|ltgt~ distinto de |gt~ mayor que |gt=~ mayor o igual que
Las instrucciones IF THEN
Poniendo al final de la liacutenea DATA un nuacutemero de control y utilizando
las instrucciones IF THEN tras el READ podemos utilizar e l nuacutemero de control
para evitar el error |Out of DATA El siguiente programa calcula la media de
los nuacutemeros DATA especificados en DATA y utiliza |99~ como |fin de datos
Las instrucciones IF THEN
Aquiacute tenemos dos ejemplos Uno cuenta la cantidad de datos que hay en
una liacutenea DATA El otro escogeraacute los nuacutemeros que sean mayores de 50 en la
liacutenea DATA y los escribiraacute en la pantalla En ambos casos el numero |999~
hace que se pare el programa Escriacutebalos y haga un |RUN~
|10 DATA 10692451007412999 10 DATA 10692451007412999~
|20 READ X 20 READ X~
|30 IF X=999 THEN GOTO 60 20 IF X=999 THEN STOP
|40 LET K=K+1 40 IF Xlt=50 THEN GOTO 20~
|50 GOTO 20 50 PRINT X~
|60 PRINT K 60 GOTO 20~
Operadores Loacutegicos
Los |Operadores Loacutegicos ~ hacen mas uacutetiles las instrucciones IF THEN
Los operadores loacutegicos mas importantes en el BASIC de IBM son
|AND~ |OR~ -Y y O-
Los operadores |AND~ y |OR~ se utilizan cuando queremos implantar
maacutes de una condicioacuten en las instrucciones |IF THEN~ Vamos a ver un ejemplo
de su utilidad en un programa Primero escriba y haga un |RUN~ en el programa
siguiente A continuacioacuten cambie los datos en la liacutenea DATA y haga otro |RUN~
|10 DATA 52317342945999~
|20 READ X~
|30 IF X=999 THEN GOTO 70~
|40 IF Xlt20 OR Xgt30 THEN LET A=A+1
|50 IF Xgt=20 AND Xlt=30 THEN LET B=B+1
|60 GOTO 20~
|70 PRINT Anuacutemeros menores que 20 o mayores que 30 y~
|Bentre 20 y 30~
La instruccioacuten ELSE
Otra opcioacuten de las instrucciones IF T HEN es la sentencia ELSE
Sin ELSE el programa se saltaraacute las instrucciones IF y THEN si la condicioacuten
establecida tras el IF no se cumple Si la palabra ELSE sigue a IF THEN
entonces se ejecuta lo que sigue a ELSE en vez de continuar con la siguiente
liacutenea
Aquiacute tenemos el uacuteltimo programa modificado para ver la instruccioacuten ELSE
Introduacutezcalo y haga un |RUN~
|10 DATA 52317342945999~
|20 READ X~
|30 IF X=999 THEN GOTO 60~
|40 IF Xlt20 OR Xgt30 THEN LET A=A+1 ELSE LET B=B+1
|50 GOTO 20~
|60 PRINT Ardquonuacutemeros menores que 20 o mayores que 30 y~
|Bentre 20 y 30~
Liacuteneas con instrucciones muacuteltiples
Otra caracteriacutestica del BASIC es la utilizacioacuten de instrucciones
muacuteltiples en una liacutenea Podemos poner varias instrucciones en la misma liacuten ea
separaacutendolas con dos puntos (|~) Resulta muy uacutetil con IF THEN
Aquiacute tenemos un ejemplo que muestra este tipo de liacuteneas
Escriacutebalo y haga un RUN~ modifique los valores en la liacutenea DATA y de nuevo
haga un |RUN~
|10 DATA 52317342945999~
|20 READ X~
|30 IF X=999 THEN PRINT Amenores que 20Bentre 20 y 30 yC~
mayores que 30END
|40 IF Xlt20 THEN PRINT Xes menor que 20LET A=A+1GOTO 20~
|50 IF Xlt30 THEN PRINT Xestaacute entre 20 y 30LET B=B+1GOTO 20
|60 PRINT Xes mayor que 30LET C=C+1GOTO 20~
La instruccioacuten REM
La instruccioacuten |REM nos permite escribir notas aclaratorias dentro de
un programa Estos comentarios son ignorados por el ordenador cuando encuentra
la instruccioacuten REM pero le fac ilitan al programador informacioacuten del programa
Las anotaciones aparecen cuando LISTAMOS en programa Los comentarios pueden
comenzar bien por la palabra REM o por un apoacutestrofe (|~)
Aquiacute tenemos un ejemplo de la utilizacioacuten de REM en un programa
10 DATA 452497654715803877999
20 READ XIF X=999 THEN 60 |Si no hay mas datos va a 60~
30 IF Xgt=50 THEN LET G=G+1 |Cuenta los nuacutemeros mayores o iguales a 50~
40 IF Xlt50 THEN LET L=L+1 |Cuenta los nuacutemeros menores de 50~
50 GOTO 20 |Obtiene el siguiente numero~
60 PRINT De los numerosLson menores de 50 y
70 PRINT Gson mayores o iguales a 50
Introduzca este programa y haga un |RUN~
STOP y END
Existen cuatro maneras de parar la ejecucioacuten de un programa BASIC
1 El programa se para cuando no tiene mas liacuteneas que ejecutar
2 Con STOP Cuando el ordenador encuentra un STOP el programa se
para y aparece en la pantalla|Break in N~ (donde |N~ es la liacutenea
en la que esta situado el STOP)
3 END Es similar a STOP except o en que el ordenador no escribe el
mensaje de interrupcioacuten
4 Pulsando |Ctrl~ y |Break~ (Scroll lock) simultaacuteneamente paramos
la ejecucioacuten de un programa y aparece el mensaje |Break in N~
donde N es la liacutenea donde se ha interrumpido el programa
Si tecleamos |CONT~el programa |continuacutea ejecutaacutendose a partir
del punto donde FUE INTERRUMPIDO
CONT tambieacuten funciona con STOP pero no con END
STOP y END (continuacion)
Veamos como funcionan estas instrucciones |corriendo el siguiente
programa
|10 PRINT Escriba CONT y pulse return
|20 STOP
|30 PRINT BIEN Ha continuado el programa
|40 PRINT Pulse Ctrl y Break simultaneamenteGOTO 40~
El comando EDIT
Cuando cometemos (o descubrimos) un error en una liacutenea podemos
corregirlo simplemente escribiendo encima Sin embargo es mucho mas raacutepido
utilizar el EDITor Para esto sencillamente tecleamos |EDIT N~ (donde |N~ es
el nuacutemero de liacutenea que vamos a editar) y nos movemos con el cursor al punto
donde vamos a corregir para escribir encima insertar o borrar
Si lo que queremos es borrar una liacutenea del programa simplemente
escribimos su nuacutemero y pulsamos RETURN Si son varias las liacuteneas que vamos a
borrar escribimos |DELETE N1-N2 (donde |N1~ es la primera y |N2~ es la ultima
liacutenea a borrar) y pulsamos RETURN Esta instruccioacuten borraraacute todas las liacuteneas
entre |N1~ y |N2~ incluidas estas
El comando AUTO
Con el fin de no perder tiempo escribiendo el nuacutemero de liacutenea de cada
instruccioacuten en un programa podemos utilizar el comando |AUTO
Al poner la palabra AUTO el ordenador numerara las liacuteneas automaacuteticamente
Esta es la forma correcta de poner el comando AUTO
AUTO [|B~[|I~]]
|B~ es el primer nuacutemero de liacutenea que escribiraacute el ordena dor Si no se
pone ninguacuten valor para |B~ el ordenador automaacuteticamente pondraacute el numero 10
|I~ es el incremento Esto es el valor que se le suma a cada liacutenea
para obtener el nuacutemero de liacutenea siguiente Al omitirlo se incrementaraacuten las
liacuteneas de 10 en 10
AUTO (continuacioacuten)
Si queremos comenzar nuestro programa por una liacutenea que no sea la 10
por ejemplo la 200 escribiremos AUTO 200 y nuestro programa empezaraacute en la
liacutenea 200 y se incrementaraacute de 10 en 10 Si queremos comenzar por la liacutenea
100 y en saltos de 5 en 5 escribiremos AUTO 1005
Para terminar de introducir el programa debemos pulsar |Ctrl~ y |Break~ al
aparecer la liacutenea siguiente a la ultima
Introduzca el siguiente programa utilizando AUTO
|100 INPUT Dime el primer num ero A
|105 INPUT Dime el segundo numero B
|110 PRINT A+B=A+B
|115 PRINT A-B=A-B
|120 PRINT AB=AB
Los comandos TRON y TROFF
Cuando un programa no funciona correctamente la primera vez que lo
ejecutamos se dice que contiene errores (BUGS) La mayor parte del tiempo de un
programador se pierde depurando (debuging) un programa
Una instruccioacuten que nos facilita esta labor es el comando |TRON~
Al escribir TRON antes de ejecutar un programa aparece entre corchetes ( |[]~)
el nuacutemero de liacutenea que se estaacute ejecutando junto con los textos de la ejecucioacuten
propia del programa
Para el programa |10 DATA 172399~
|20 READ NUM
|30 IF NUMltgt99 THEN PRINT NUMGOTO 20~
|40 PRINT FIN
Utilizando TRON lo
veriacuteamos asiacute |[10][20][30] 17~
|[20][30] 23~
|[20][30][40]The END
Cuando hemos localizado el error y queremos ejecutar nuestro programa
sin que aparezcan los nuacutemeros de liacutenea tenemos que teclear |TROFF~
Esto devuelve al ordenador a su modo normal de ejecucioacuten
TRON y TROFF (continuacioacuten)
El siguiente programa debe contar y escribir los nuacutemeros de la liacutenea
DATA pero por alguna razoacuten se vuelve loco al escribir el primer valor
Utilizando TRON y TROFF localice y solucione el problema
|10 DATA 3467129653884999~
|20 READ NUMIF NUM=999 THEN GOTO 60~
|30 CON=CON+1
|40 PRINT El valor del numeroCONesNUM
|50 GOTO 30~
|60 PRINT HayCONnuacutemeros en la liacutenea DATA
Primero teclee el programa y haga un |RUN~ Tras unos se gundos pulse
|Ctrl~ y |Break~ para parar el programa Teclee TRON y RETURN para entrar en
el modo TRAZADO De nuevo |RUN~ y cuando localice el problema pare de nuevo
el programa corrija el programa y entre en el modo de EJECUCION con TROFF
para hacer un |RUN~ por tercera vez
TRON y TROFF (continuacioacuten)
Aquiacute tenemos de nuevo el uacuteltimo programa Afortunadamente encontroacute
el problema en la liacutenea |50~
10 DATA 3467129653884999
20 READ NUMIF NUM=999 THEN GOTO 60
30 CON=CON+1
40 PRINT El valor del numeroCONesNUM
|50 GOTO 30~
60 PRINT HayrdquoCONrdquonuacutemeros en la liacutenea DATA
En la liacutenea deberiacutea poner |50 GOTO 20~ Tal como estaba el programa
nunca leeriacutea un nuevo valor para la variable |NUM~ luego nunca leeriacutea |999~
para marcar el fin de programa
La funcioacuten RND
La funcioacuten RND devuelve un nuacutemero al azar entre el 0 y el 1
Si queremos un nuacutemero entre el 0 y el 100 simplemente multiplicamos RND por 100
ejemplo- LET |X=RND [El valor de |X~ cumple que |0~ lt |X~ lt| 1~]
LET |Y=RND100 [El valor de |Y~ cumple que |0 ~lt |Y~ lt| 100~]
Aquiacute tenemos un programa de ejemplo que nos pide el liacutemite superior
y nos devuelve una serie de nuacutemeros al azar entre 0 y el liacutemite
Tendraacute que utilizar |Ctrl~ y |Break~ para parar el programa
|10 INPUT Introduzca el liacutemite superiorMAXIMO
|20 PRINT RNDMAXIMO
|30 GOTO 20~
La funcioacuten INT
La funcioacuten INT suprime la parte decimal de un nuacutemero entre pareacutentesis
y devuelve su parte entera redondeaacutendola
ejemplo- |LET A=INT(92)~ [Aquiacute |A~ vale |9~]
|LET K=INT(76)~ [Aquiacute |K~ vale |8~]
Aquiacute tenemos un programa que utiliza RND e INT conjuntamente
De nuevo pulse |Ctrl~ y |Break~ para acabar el programa
|10 NUMERO=RND200-100 genera un nuacutemero entre -100 y 100
|20 PRINT Cuaacutel es la parte entera deNUMEROINPUT RESPUESTA~
|30 IF RESPUESTAltgtINT(NUMERO) THEN PRINT La respuesta esINT(NUMERO)~
|40 GOTO 10~
La funcioacuten ABS
La funcioacuten ABS devuelve el valor absoluto de una expresioacuten
El valor absoluto es sencillamente el valor positivo de un numero
example LET X=ABS(-5) [Aquiacute |X~ es igual a |5~]
|LET C=ABS(124) [Aquiacute |C~ es igual a |48~]
Aquiacute tenemos un programa que utiliza las funciones RND INT y ABS
De nuevo pulse |Ctrl~ y |Break~ cuando quiera finalizar
|10 NUMERO=INT(RND200-100) Genera un nuacutemero entero entre -100 and 100
|20 PRINT Cuaacutel es el valor ABSOLUTO deNUMEROINPUT RESPUESTA~
|30 IF RESPUESTAltgtABS(NUMERO) THEN PRINT La respuestaesABS(NUMERO)~
|40 GOTO 10~
Las funciones ABS e INT (continuacioacuten)
Aquiacute tenemos un programa muy interesante para los aficionados a las
Matemaacuteticas Calcula el Maacuteximo Comuacuten Denominador de dos nuacutemeros
|10 INPUT Dime el primer nuacutemeroNUM1
|20 INPUT Dime el segundoNUM2
|30 NUM1=ABS(NUM1)NUM2=ABS(NUM2)~
|40 LET R=NUM1-NUM2INT(NUM1NUM2)~
|50 IF R=0 THEN GOTO 70~
|60 NUM1=NUM2NUM2=RGOTO 40~
|70 PRINT El maacuteximo comuacuten denominador esNUM2
copy 1991 Javier de LucasLinares
![Page 4: Introducción al Lenguaje de programacion BASIC](https://reader031.vdocuments.co/reader031/viewer/2022020218/5571f1c849795947648bade1/html5/thumbnails/4.jpg)
PRINT Lo que se te ocurra Lo que se te ocurra
Si queremos escribir texto junto con la respuesta a un problema
matemaacutetico debemos separar ambos bien con una coma () o punto y coma ()
SI TECLEAMOS EL ORDENADOR ESCRIBE
PRINT La suma de 3+2 es 3+2~ La suma de 3+2 es 5
PRINT La suma de 3+2 es 3+2~ La suma de 3+2 es 5
La diferencia entre usar la coma y el punto y coma es la cantidad de
espacios que el ordenador escribe Realice ahora los ejemplos indicados bajo
las palabras SI TECLEAMOS
(En el BASIC de IBM se puede omitir el punto y coma en otras versiones no)
Variables
Lo siguiente que vamos a aprender es el concepto de variable Una
variable es un siacutembolo (usualmente una letra del alfabeto) que se usa para
representar un nuacutemero Una vari able puede representar varios valores Las
variables son muy importantes en la programacioacuten de un ordenador
En la expresioacuten algebraica
9=X+3
X es la variable Para que |9=X+3~ sea cierto el valor de |X~
debe ser |6~ (porque |9~ y |6+3~ son iguales)
En la expresioacuten
SUM=A+B
|SUM~ |A~ y |B~ son variables |A~ y |B~ pueden tener cualquier valor
y la variable |SUM~ es la suma de esos valores
Variables (continuacioacuten)
Como hemos visto el nombre de un a variable puede tener maacutes de una
letra De hecho puede contener hasta 40 caracteres El primer caraacutecter de
la variable debe ser una letra pero los siguientes 39 pueden ser letras o
nuacutemeros Existen muchas palabras reservadas que no se pueden utilizar como
nombres de variables Estas son las instrucciones del lenguaje BASIC
A continuacioacuten veremos algunos nombres invaacutelidos de variables
|FAT~ - Todos los caracteres deben ser letras o nuacutemeros |~ no lo es
|2TALL~ - El primer caraacutecter tiene que se r una letra |2~ es un nuacutemero
|PRINT~ - |PRINT~ es una palabra reservada en BASIC
Es una buena idea hacer los nombres de las variables tan descriptivos
como sea posible Si queremos escribir un programa que sume dos nuacutemeros
utilizaremos las variables |RESULTADO |NUM1~ y |NUM2~ Esto nos ayudaraacute a
saber queacute hacen las variables pero no ayudaraacute de ninguna manera al ordenador
El nombre de la variable enviacutea al ordenador a una zona de memoria donde esta
almacenado su valor
La instruccioacuten LET
La instruccioacuten LET asigna una expresioacuten a una variable En BASIC IBM
la palabra LET es opcional El signo igual es suficiente como vemos en los
siguientes ejemplos
LET A=3 o A=3
En los dos casos el valors 3 se asigna a la variable A
LET SUM=A+B o SUM=A+B
Aquiacute la suma de las variables |A~ y |B~ se asigna a la variable |SUM~
|LET K=K+1~ o |K=K+1~
En aacutelgebra la expresioacuten |K=K+1~ es falsa (iquestCoacutemo un nuacutemero puede ser
igual al mismo maacutes 1) Pero en BASIC significa que el nuevo valor de |K~
seraacute igual al viejo valor de |K~ mas |1~
Las instrucciones PRINT y LET
Hasta que no hayamos asignado un valor a una variable (mediante LET )
eacutesta seraacute igual a cero Si usamos una variable en una instruccioacuten PRINT se
escribiraacute el valor de la variable no su nombre Escribamos las siguientes
cinco liacuteneas para ver como actuacutean PRINT y LET conjuntamente
|PRINT NUM1 NUM2 SUM~
|LET NUM1=45
LET NUM2=5
|SUM=NUM1+NUM2~
|PRINT La suma de NUM1 y NUM2 es SUM~
Nuacutemeros de LINEA
Como aprendimos anteriormente un programa es un grupo de instrucciones
La manera de que el ordenador ejecute las instrucciones de un programa es
numerando cada instruccioacuten con un nuacutemero de liacutenea El ordenador realiza
cada instruccioacuten en el orden marca do por su nuacutemero de liacutenea
En las siguientes instrucciones
|10~ PRINT 3+2
|20~ PRINT 3+3
|10~ y |20~ son nuacutemeros de liacutenea
El comando LIST
Escribiendo |LIST~ y tras pulsar return se escribiraacute el programa que
estaacute en la memoria Escriba el siguien te programa y despueacutes teclee LIST
|10 PRINT 3+2~
|20 PRINT 3+3~
|30 PRINT 3+4~
|40 PRINT 3+5~
El comando LIST (continuacioacuten)
El ordenador siempre ejecuta el programa en orden creciente empezando
por el numero de liacutenea maacutes bajo Si queremos escribir la instruccioacuten |PRINT 3+1~
antes de la liacutenea |10~ entonces le asignamos un nuacutemero de liacutenea menor de 10
Escribamos lo siguiente
|10 PRINT 3+2~
|20 PRINT 3+3~
|30 PRINT 3+4~
|40 PRINT 3+5~
|5 PRINT 3+1~
Ahora escriba |LIST~ y pulse return El comando LIST mostraraacute el
programa en orden numeacuterico Convencionalmente se asignan nuacutemeros de liacutenea
incrementados de 10 en 10 El ordenador renumeraraacute las liacuteneas si tecleamos
la palabra |RENUM~ y pulsamos return Haacutegalo y despueacutes teclee |LIST~ par a
comprobar lo que ocurre
El comando RUN
El comando |RUN~ ejecuta nuestro programa Cuando antes escribiacuteamos
PRINT 3+2 y pulsaacutebamos return el ordenador ejecutaba la instruccioacuten PRINT
inmediatamente Ahora cuando ponemos un nuacutemero de liacutenea el orden ador guarda en
en su memoria la instruccioacuten y espera la orden RUN para ejecutar el programa
Escriba lo siguiente teclee |RUN~ y pulse return
|10 PRINT 3+1~
|20 PRINT 3+2~
|30 PRINT 3+3~
|40 PRINT 3+4 ~
|50 PRINT 3+5~
(Observe que el punto y coma escribe el |8~ en la misma liacutenea que el |7~)
La instruccioacuten INPUT
La instruccioacuten |INPUT~ nos permite introducir datos desde el teclado
mientras el programa se estaacute ejecutando Cuando el programa encuentra un INPUT
se para y aparece una interrogacioacuten esperando que introduzcamos un nuacutemero para
continuar con la liacutenea siguiente Tras el input debemos poner una variable
ejemplo 10 INPUT X
Podemos poner un texto (palabras entre comillas que nos recuerdan
el dato que el ordenador espera) entre el INPUT y la variable Si un punto y
coma sigue al texto entonces la interrogacioacuten aparece en la pantalla si en su
lugar ponemos una coma la interrogacioacuten no apareceraacute
INPUT (continuacioacuten)
Esto es lo que la instruccioacuten INPUT hace en un programa
|10 INPUT Dime un valor para X X~
|20 PRINT X es igual a X~
Teclee este programa ejecuacutetelo y vea lo que sucede Despueacutes de hacerlo
cambie el punto y coma por una coma en la liacutenea |10~ y haga un |RUN~ Para
ejecutar el programa de nuevo con un valor distinto en la variable ponga |RUN~
de nuevo e introduzca un valor diferente para X
Variables cadena (strings)
Las variables pueden representar tanto texto como nuacutemeros Una variable
que representa una serie de caracteres se llama variable cadena
El nombre de este tipo de variables se diferencian de las numeacutericas
porque al final de su nombre llevan el signo doacutelar
ejemplo |XYZ$~=Aula Informaacutetica IES Celestino Mutis
Podemos asignar una cadena de caracteres a una variable string de la
misma manera que asignaacutebamos un valor a una variable numeacuterica
Ejecutemos el siguiente programa
|10 INPUT Dime tu nombre N$~
|20 PRINT Me alegro de conocerte N$ soy el ordenador personal ATLAS~
Maacutes sobre LET
Ahora que podemos introducir y sacar datos del ordenador hagamos algo
interesante Los caacutelculos matemaacuteticos se hacen en BASIC con la instruccioacuten
LET que aprendimos en la primera leccioacuten La instruccioacuten LET asigna a una
variable una expresioacuten numeacuterica A continuacioacuten vamos a conocer cuaacuteles son los
operadores aritmeacuteticos y como se utilizan en BASIC
SIMBOLO DESCRIPCION EJEMPLOS
|+~ suma A|+~B 6|+~12
|-~ resta A|-~B 23|-~7
|~ multiplicacioacuten A|~B 3|~(2 -1)
|~ divisioacuten A|~B (8+2)|~4
|^~ exponenciacioacuten A|^~B (53)|^~2
Maacutes sobre LET (continuacioacuten)
Aquiacute tenemos dos ejemplos especiacuteficos de la utilizacioacuten de LET
CONVERSION CELSIUS A FAHRENHEIT
|10 LET F=18 C + 32~
INTERES ANUAL
|10 INTERES=CANTIDADPORCENTAJE~
Intente escribir un programa que nos permita introducir una temperatura
en grados Celsius la convierta a grados Fahrenheit y escriba el resultado (use
|INPUT~ |LET~ y |PRINT~ ) Recuerde la versioacuten BASIC de IBM permite la
omisioacuten de la palabra LET si asiacute se desea
Maacutes sobre LET (continuacioacuten)
Esta es una manera de escribir el programa anterior
|10 INPUT Introduzca la temperatura en grados CelsiusC~
|20 F=18C+32~
|30 PRINT F grados Fahrenheit sonCCelsius~
El comando NEW
El comando |NEW~ |BORRA el programa que estaacute en la memoria
Tambieacuten borra los valores que se hayan asignado a las variables en un programa
Siempre que vayamos a introducir un programa nuevo debemos teclear NEW primero
de no hacerlo asiacute las liacuteneas del programa antiguo se mezclaran con el que
estemos introduciendo
El formato del comando NEW es simplemente escribir NEW y pulsar RETURN
Este comando no borra el programa del disco solamente borra el
programa de la memoria del ordenador
Instrucciones DATA y READ
Ya hemos aprendido a utilizar la instruccioacuten INPUT
Otra forma de introducir datos en el ordenador es con |DATA y |READ~
La instruccioacuten DATA no se ejecuta La utiliza el ordenador cuando
ejecuta la instruccioacuten READ Despueacutes de la palabra DATA podemos poner nuacutemeros
o grupos de letras entre comillas separados por comas La liacutenea de datos asiacute
creada se lee de la siguiente manera La primera vez que el programa ejecuta
READ se carga el primer dato de la liacutenea DATA la segunda vez el segundo
etc
Introduzca los siguientes programas de ejemplo y haga un |RUN~
|10 DATA 711 10 DATA LUISPERICO~
|20 READ X 20 READ X$~
|30 PRINT X 30 PRINT X$~
|40 READ X 40 READ X$~
|50 PRINT X 50 PRINT X$~
Intrucciones DATA y READ (continuacioacuten)
Cuando el ordenador no tiene maacutes datos que leer se produce un error
el programa se para y aparece un mensaje de error
Comprueacutebelo con el siguiente programa
|10 DATA 10Veinte~
|20 READ X~
|30 PRINT 1X~
|40 READ X$~
|50 PRINT 2X$~
|60 READ X~
|70 PRINT 3X~
Como no hay un tercer dato que leer el ordenador se para y nos indica
que existe un error en la liacutenea numero 60 Ejecuacutetelo y vea lo que ocurre
Instruccioacuten GOTO
La instruccioacuten |GOTO~ es de las maacutes sencillas de comprender y una de
la maacutes importantes en BASIC Le dice al ordenador que vaya a un nuacutemero de
liacutenea diferente al siguiente que corresponda ejecutar
En el siguiente programa el ordenador estaraacute dando vueltas en las
liacuteneas 20 30 y 40 hasta que no tenga mas datos que leer dando un error
Las instrucciones IF THEN
Las instrucciones |IF THEN~ nos permiten elegir entre dos opciones |IF~ una
condicioacuten es verdadera el ordenador ejecuta lo que sigue a |THEN~ |IF~ |no
es verdadera el ordenador ejecuta la liacutenea siguiente Normalmente un GOTO
suele seguir a THEN
Mediante Operadores de relacion comparamos los dos valores de la
condicioacuten el las instrucciones IF THEN
Los Operadores de Relacioacuten maacutes comunes son los siguientes
|=~ igual a lt menor que |lt=~ menor o igual que
|ltgt~ distinto de |gt~ mayor que |gt=~ mayor o igual que
Las instrucciones IF THEN
Poniendo al final de la liacutenea DATA un nuacutemero de control y utilizando
las instrucciones IF THEN tras el READ podemos utilizar e l nuacutemero de control
para evitar el error |Out of DATA El siguiente programa calcula la media de
los nuacutemeros DATA especificados en DATA y utiliza |99~ como |fin de datos
Las instrucciones IF THEN
Aquiacute tenemos dos ejemplos Uno cuenta la cantidad de datos que hay en
una liacutenea DATA El otro escogeraacute los nuacutemeros que sean mayores de 50 en la
liacutenea DATA y los escribiraacute en la pantalla En ambos casos el numero |999~
hace que se pare el programa Escriacutebalos y haga un |RUN~
|10 DATA 10692451007412999 10 DATA 10692451007412999~
|20 READ X 20 READ X~
|30 IF X=999 THEN GOTO 60 20 IF X=999 THEN STOP
|40 LET K=K+1 40 IF Xlt=50 THEN GOTO 20~
|50 GOTO 20 50 PRINT X~
|60 PRINT K 60 GOTO 20~
Operadores Loacutegicos
Los |Operadores Loacutegicos ~ hacen mas uacutetiles las instrucciones IF THEN
Los operadores loacutegicos mas importantes en el BASIC de IBM son
|AND~ |OR~ -Y y O-
Los operadores |AND~ y |OR~ se utilizan cuando queremos implantar
maacutes de una condicioacuten en las instrucciones |IF THEN~ Vamos a ver un ejemplo
de su utilidad en un programa Primero escriba y haga un |RUN~ en el programa
siguiente A continuacioacuten cambie los datos en la liacutenea DATA y haga otro |RUN~
|10 DATA 52317342945999~
|20 READ X~
|30 IF X=999 THEN GOTO 70~
|40 IF Xlt20 OR Xgt30 THEN LET A=A+1
|50 IF Xgt=20 AND Xlt=30 THEN LET B=B+1
|60 GOTO 20~
|70 PRINT Anuacutemeros menores que 20 o mayores que 30 y~
|Bentre 20 y 30~
La instruccioacuten ELSE
Otra opcioacuten de las instrucciones IF T HEN es la sentencia ELSE
Sin ELSE el programa se saltaraacute las instrucciones IF y THEN si la condicioacuten
establecida tras el IF no se cumple Si la palabra ELSE sigue a IF THEN
entonces se ejecuta lo que sigue a ELSE en vez de continuar con la siguiente
liacutenea
Aquiacute tenemos el uacuteltimo programa modificado para ver la instruccioacuten ELSE
Introduacutezcalo y haga un |RUN~
|10 DATA 52317342945999~
|20 READ X~
|30 IF X=999 THEN GOTO 60~
|40 IF Xlt20 OR Xgt30 THEN LET A=A+1 ELSE LET B=B+1
|50 GOTO 20~
|60 PRINT Ardquonuacutemeros menores que 20 o mayores que 30 y~
|Bentre 20 y 30~
Liacuteneas con instrucciones muacuteltiples
Otra caracteriacutestica del BASIC es la utilizacioacuten de instrucciones
muacuteltiples en una liacutenea Podemos poner varias instrucciones en la misma liacuten ea
separaacutendolas con dos puntos (|~) Resulta muy uacutetil con IF THEN
Aquiacute tenemos un ejemplo que muestra este tipo de liacuteneas
Escriacutebalo y haga un RUN~ modifique los valores en la liacutenea DATA y de nuevo
haga un |RUN~
|10 DATA 52317342945999~
|20 READ X~
|30 IF X=999 THEN PRINT Amenores que 20Bentre 20 y 30 yC~
mayores que 30END
|40 IF Xlt20 THEN PRINT Xes menor que 20LET A=A+1GOTO 20~
|50 IF Xlt30 THEN PRINT Xestaacute entre 20 y 30LET B=B+1GOTO 20
|60 PRINT Xes mayor que 30LET C=C+1GOTO 20~
La instruccioacuten REM
La instruccioacuten |REM nos permite escribir notas aclaratorias dentro de
un programa Estos comentarios son ignorados por el ordenador cuando encuentra
la instruccioacuten REM pero le fac ilitan al programador informacioacuten del programa
Las anotaciones aparecen cuando LISTAMOS en programa Los comentarios pueden
comenzar bien por la palabra REM o por un apoacutestrofe (|~)
Aquiacute tenemos un ejemplo de la utilizacioacuten de REM en un programa
10 DATA 452497654715803877999
20 READ XIF X=999 THEN 60 |Si no hay mas datos va a 60~
30 IF Xgt=50 THEN LET G=G+1 |Cuenta los nuacutemeros mayores o iguales a 50~
40 IF Xlt50 THEN LET L=L+1 |Cuenta los nuacutemeros menores de 50~
50 GOTO 20 |Obtiene el siguiente numero~
60 PRINT De los numerosLson menores de 50 y
70 PRINT Gson mayores o iguales a 50
Introduzca este programa y haga un |RUN~
STOP y END
Existen cuatro maneras de parar la ejecucioacuten de un programa BASIC
1 El programa se para cuando no tiene mas liacuteneas que ejecutar
2 Con STOP Cuando el ordenador encuentra un STOP el programa se
para y aparece en la pantalla|Break in N~ (donde |N~ es la liacutenea
en la que esta situado el STOP)
3 END Es similar a STOP except o en que el ordenador no escribe el
mensaje de interrupcioacuten
4 Pulsando |Ctrl~ y |Break~ (Scroll lock) simultaacuteneamente paramos
la ejecucioacuten de un programa y aparece el mensaje |Break in N~
donde N es la liacutenea donde se ha interrumpido el programa
Si tecleamos |CONT~el programa |continuacutea ejecutaacutendose a partir
del punto donde FUE INTERRUMPIDO
CONT tambieacuten funciona con STOP pero no con END
STOP y END (continuacion)
Veamos como funcionan estas instrucciones |corriendo el siguiente
programa
|10 PRINT Escriba CONT y pulse return
|20 STOP
|30 PRINT BIEN Ha continuado el programa
|40 PRINT Pulse Ctrl y Break simultaneamenteGOTO 40~
El comando EDIT
Cuando cometemos (o descubrimos) un error en una liacutenea podemos
corregirlo simplemente escribiendo encima Sin embargo es mucho mas raacutepido
utilizar el EDITor Para esto sencillamente tecleamos |EDIT N~ (donde |N~ es
el nuacutemero de liacutenea que vamos a editar) y nos movemos con el cursor al punto
donde vamos a corregir para escribir encima insertar o borrar
Si lo que queremos es borrar una liacutenea del programa simplemente
escribimos su nuacutemero y pulsamos RETURN Si son varias las liacuteneas que vamos a
borrar escribimos |DELETE N1-N2 (donde |N1~ es la primera y |N2~ es la ultima
liacutenea a borrar) y pulsamos RETURN Esta instruccioacuten borraraacute todas las liacuteneas
entre |N1~ y |N2~ incluidas estas
El comando AUTO
Con el fin de no perder tiempo escribiendo el nuacutemero de liacutenea de cada
instruccioacuten en un programa podemos utilizar el comando |AUTO
Al poner la palabra AUTO el ordenador numerara las liacuteneas automaacuteticamente
Esta es la forma correcta de poner el comando AUTO
AUTO [|B~[|I~]]
|B~ es el primer nuacutemero de liacutenea que escribiraacute el ordena dor Si no se
pone ninguacuten valor para |B~ el ordenador automaacuteticamente pondraacute el numero 10
|I~ es el incremento Esto es el valor que se le suma a cada liacutenea
para obtener el nuacutemero de liacutenea siguiente Al omitirlo se incrementaraacuten las
liacuteneas de 10 en 10
AUTO (continuacioacuten)
Si queremos comenzar nuestro programa por una liacutenea que no sea la 10
por ejemplo la 200 escribiremos AUTO 200 y nuestro programa empezaraacute en la
liacutenea 200 y se incrementaraacute de 10 en 10 Si queremos comenzar por la liacutenea
100 y en saltos de 5 en 5 escribiremos AUTO 1005
Para terminar de introducir el programa debemos pulsar |Ctrl~ y |Break~ al
aparecer la liacutenea siguiente a la ultima
Introduzca el siguiente programa utilizando AUTO
|100 INPUT Dime el primer num ero A
|105 INPUT Dime el segundo numero B
|110 PRINT A+B=A+B
|115 PRINT A-B=A-B
|120 PRINT AB=AB
Los comandos TRON y TROFF
Cuando un programa no funciona correctamente la primera vez que lo
ejecutamos se dice que contiene errores (BUGS) La mayor parte del tiempo de un
programador se pierde depurando (debuging) un programa
Una instruccioacuten que nos facilita esta labor es el comando |TRON~
Al escribir TRON antes de ejecutar un programa aparece entre corchetes ( |[]~)
el nuacutemero de liacutenea que se estaacute ejecutando junto con los textos de la ejecucioacuten
propia del programa
Para el programa |10 DATA 172399~
|20 READ NUM
|30 IF NUMltgt99 THEN PRINT NUMGOTO 20~
|40 PRINT FIN
Utilizando TRON lo
veriacuteamos asiacute |[10][20][30] 17~
|[20][30] 23~
|[20][30][40]The END
Cuando hemos localizado el error y queremos ejecutar nuestro programa
sin que aparezcan los nuacutemeros de liacutenea tenemos que teclear |TROFF~
Esto devuelve al ordenador a su modo normal de ejecucioacuten
TRON y TROFF (continuacioacuten)
El siguiente programa debe contar y escribir los nuacutemeros de la liacutenea
DATA pero por alguna razoacuten se vuelve loco al escribir el primer valor
Utilizando TRON y TROFF localice y solucione el problema
|10 DATA 3467129653884999~
|20 READ NUMIF NUM=999 THEN GOTO 60~
|30 CON=CON+1
|40 PRINT El valor del numeroCONesNUM
|50 GOTO 30~
|60 PRINT HayCONnuacutemeros en la liacutenea DATA
Primero teclee el programa y haga un |RUN~ Tras unos se gundos pulse
|Ctrl~ y |Break~ para parar el programa Teclee TRON y RETURN para entrar en
el modo TRAZADO De nuevo |RUN~ y cuando localice el problema pare de nuevo
el programa corrija el programa y entre en el modo de EJECUCION con TROFF
para hacer un |RUN~ por tercera vez
TRON y TROFF (continuacioacuten)
Aquiacute tenemos de nuevo el uacuteltimo programa Afortunadamente encontroacute
el problema en la liacutenea |50~
10 DATA 3467129653884999
20 READ NUMIF NUM=999 THEN GOTO 60
30 CON=CON+1
40 PRINT El valor del numeroCONesNUM
|50 GOTO 30~
60 PRINT HayrdquoCONrdquonuacutemeros en la liacutenea DATA
En la liacutenea deberiacutea poner |50 GOTO 20~ Tal como estaba el programa
nunca leeriacutea un nuevo valor para la variable |NUM~ luego nunca leeriacutea |999~
para marcar el fin de programa
La funcioacuten RND
La funcioacuten RND devuelve un nuacutemero al azar entre el 0 y el 1
Si queremos un nuacutemero entre el 0 y el 100 simplemente multiplicamos RND por 100
ejemplo- LET |X=RND [El valor de |X~ cumple que |0~ lt |X~ lt| 1~]
LET |Y=RND100 [El valor de |Y~ cumple que |0 ~lt |Y~ lt| 100~]
Aquiacute tenemos un programa de ejemplo que nos pide el liacutemite superior
y nos devuelve una serie de nuacutemeros al azar entre 0 y el liacutemite
Tendraacute que utilizar |Ctrl~ y |Break~ para parar el programa
|10 INPUT Introduzca el liacutemite superiorMAXIMO
|20 PRINT RNDMAXIMO
|30 GOTO 20~
La funcioacuten INT
La funcioacuten INT suprime la parte decimal de un nuacutemero entre pareacutentesis
y devuelve su parte entera redondeaacutendola
ejemplo- |LET A=INT(92)~ [Aquiacute |A~ vale |9~]
|LET K=INT(76)~ [Aquiacute |K~ vale |8~]
Aquiacute tenemos un programa que utiliza RND e INT conjuntamente
De nuevo pulse |Ctrl~ y |Break~ para acabar el programa
|10 NUMERO=RND200-100 genera un nuacutemero entre -100 y 100
|20 PRINT Cuaacutel es la parte entera deNUMEROINPUT RESPUESTA~
|30 IF RESPUESTAltgtINT(NUMERO) THEN PRINT La respuesta esINT(NUMERO)~
|40 GOTO 10~
La funcioacuten ABS
La funcioacuten ABS devuelve el valor absoluto de una expresioacuten
El valor absoluto es sencillamente el valor positivo de un numero
example LET X=ABS(-5) [Aquiacute |X~ es igual a |5~]
|LET C=ABS(124) [Aquiacute |C~ es igual a |48~]
Aquiacute tenemos un programa que utiliza las funciones RND INT y ABS
De nuevo pulse |Ctrl~ y |Break~ cuando quiera finalizar
|10 NUMERO=INT(RND200-100) Genera un nuacutemero entero entre -100 and 100
|20 PRINT Cuaacutel es el valor ABSOLUTO deNUMEROINPUT RESPUESTA~
|30 IF RESPUESTAltgtABS(NUMERO) THEN PRINT La respuestaesABS(NUMERO)~
|40 GOTO 10~
Las funciones ABS e INT (continuacioacuten)
Aquiacute tenemos un programa muy interesante para los aficionados a las
Matemaacuteticas Calcula el Maacuteximo Comuacuten Denominador de dos nuacutemeros
|10 INPUT Dime el primer nuacutemeroNUM1
|20 INPUT Dime el segundoNUM2
|30 NUM1=ABS(NUM1)NUM2=ABS(NUM2)~
|40 LET R=NUM1-NUM2INT(NUM1NUM2)~
|50 IF R=0 THEN GOTO 70~
|60 NUM1=NUM2NUM2=RGOTO 40~
|70 PRINT El maacuteximo comuacuten denominador esNUM2
copy 1991 Javier de LucasLinares
![Page 5: Introducción al Lenguaje de programacion BASIC](https://reader031.vdocuments.co/reader031/viewer/2022020218/5571f1c849795947648bade1/html5/thumbnails/5.jpg)
nombres de variables Estas son las instrucciones del lenguaje BASIC
A continuacioacuten veremos algunos nombres invaacutelidos de variables
|FAT~ - Todos los caracteres deben ser letras o nuacutemeros |~ no lo es
|2TALL~ - El primer caraacutecter tiene que se r una letra |2~ es un nuacutemero
|PRINT~ - |PRINT~ es una palabra reservada en BASIC
Es una buena idea hacer los nombres de las variables tan descriptivos
como sea posible Si queremos escribir un programa que sume dos nuacutemeros
utilizaremos las variables |RESULTADO |NUM1~ y |NUM2~ Esto nos ayudaraacute a
saber queacute hacen las variables pero no ayudaraacute de ninguna manera al ordenador
El nombre de la variable enviacutea al ordenador a una zona de memoria donde esta
almacenado su valor
La instruccioacuten LET
La instruccioacuten LET asigna una expresioacuten a una variable En BASIC IBM
la palabra LET es opcional El signo igual es suficiente como vemos en los
siguientes ejemplos
LET A=3 o A=3
En los dos casos el valors 3 se asigna a la variable A
LET SUM=A+B o SUM=A+B
Aquiacute la suma de las variables |A~ y |B~ se asigna a la variable |SUM~
|LET K=K+1~ o |K=K+1~
En aacutelgebra la expresioacuten |K=K+1~ es falsa (iquestCoacutemo un nuacutemero puede ser
igual al mismo maacutes 1) Pero en BASIC significa que el nuevo valor de |K~
seraacute igual al viejo valor de |K~ mas |1~
Las instrucciones PRINT y LET
Hasta que no hayamos asignado un valor a una variable (mediante LET )
eacutesta seraacute igual a cero Si usamos una variable en una instruccioacuten PRINT se
escribiraacute el valor de la variable no su nombre Escribamos las siguientes
cinco liacuteneas para ver como actuacutean PRINT y LET conjuntamente
|PRINT NUM1 NUM2 SUM~
|LET NUM1=45
LET NUM2=5
|SUM=NUM1+NUM2~
|PRINT La suma de NUM1 y NUM2 es SUM~
Nuacutemeros de LINEA
Como aprendimos anteriormente un programa es un grupo de instrucciones
La manera de que el ordenador ejecute las instrucciones de un programa es
numerando cada instruccioacuten con un nuacutemero de liacutenea El ordenador realiza
cada instruccioacuten en el orden marca do por su nuacutemero de liacutenea
En las siguientes instrucciones
|10~ PRINT 3+2
|20~ PRINT 3+3
|10~ y |20~ son nuacutemeros de liacutenea
El comando LIST
Escribiendo |LIST~ y tras pulsar return se escribiraacute el programa que
estaacute en la memoria Escriba el siguien te programa y despueacutes teclee LIST
|10 PRINT 3+2~
|20 PRINT 3+3~
|30 PRINT 3+4~
|40 PRINT 3+5~
El comando LIST (continuacioacuten)
El ordenador siempre ejecuta el programa en orden creciente empezando
por el numero de liacutenea maacutes bajo Si queremos escribir la instruccioacuten |PRINT 3+1~
antes de la liacutenea |10~ entonces le asignamos un nuacutemero de liacutenea menor de 10
Escribamos lo siguiente
|10 PRINT 3+2~
|20 PRINT 3+3~
|30 PRINT 3+4~
|40 PRINT 3+5~
|5 PRINT 3+1~
Ahora escriba |LIST~ y pulse return El comando LIST mostraraacute el
programa en orden numeacuterico Convencionalmente se asignan nuacutemeros de liacutenea
incrementados de 10 en 10 El ordenador renumeraraacute las liacuteneas si tecleamos
la palabra |RENUM~ y pulsamos return Haacutegalo y despueacutes teclee |LIST~ par a
comprobar lo que ocurre
El comando RUN
El comando |RUN~ ejecuta nuestro programa Cuando antes escribiacuteamos
PRINT 3+2 y pulsaacutebamos return el ordenador ejecutaba la instruccioacuten PRINT
inmediatamente Ahora cuando ponemos un nuacutemero de liacutenea el orden ador guarda en
en su memoria la instruccioacuten y espera la orden RUN para ejecutar el programa
Escriba lo siguiente teclee |RUN~ y pulse return
|10 PRINT 3+1~
|20 PRINT 3+2~
|30 PRINT 3+3~
|40 PRINT 3+4 ~
|50 PRINT 3+5~
(Observe que el punto y coma escribe el |8~ en la misma liacutenea que el |7~)
La instruccioacuten INPUT
La instruccioacuten |INPUT~ nos permite introducir datos desde el teclado
mientras el programa se estaacute ejecutando Cuando el programa encuentra un INPUT
se para y aparece una interrogacioacuten esperando que introduzcamos un nuacutemero para
continuar con la liacutenea siguiente Tras el input debemos poner una variable
ejemplo 10 INPUT X
Podemos poner un texto (palabras entre comillas que nos recuerdan
el dato que el ordenador espera) entre el INPUT y la variable Si un punto y
coma sigue al texto entonces la interrogacioacuten aparece en la pantalla si en su
lugar ponemos una coma la interrogacioacuten no apareceraacute
INPUT (continuacioacuten)
Esto es lo que la instruccioacuten INPUT hace en un programa
|10 INPUT Dime un valor para X X~
|20 PRINT X es igual a X~
Teclee este programa ejecuacutetelo y vea lo que sucede Despueacutes de hacerlo
cambie el punto y coma por una coma en la liacutenea |10~ y haga un |RUN~ Para
ejecutar el programa de nuevo con un valor distinto en la variable ponga |RUN~
de nuevo e introduzca un valor diferente para X
Variables cadena (strings)
Las variables pueden representar tanto texto como nuacutemeros Una variable
que representa una serie de caracteres se llama variable cadena
El nombre de este tipo de variables se diferencian de las numeacutericas
porque al final de su nombre llevan el signo doacutelar
ejemplo |XYZ$~=Aula Informaacutetica IES Celestino Mutis
Podemos asignar una cadena de caracteres a una variable string de la
misma manera que asignaacutebamos un valor a una variable numeacuterica
Ejecutemos el siguiente programa
|10 INPUT Dime tu nombre N$~
|20 PRINT Me alegro de conocerte N$ soy el ordenador personal ATLAS~
Maacutes sobre LET
Ahora que podemos introducir y sacar datos del ordenador hagamos algo
interesante Los caacutelculos matemaacuteticos se hacen en BASIC con la instruccioacuten
LET que aprendimos en la primera leccioacuten La instruccioacuten LET asigna a una
variable una expresioacuten numeacuterica A continuacioacuten vamos a conocer cuaacuteles son los
operadores aritmeacuteticos y como se utilizan en BASIC
SIMBOLO DESCRIPCION EJEMPLOS
|+~ suma A|+~B 6|+~12
|-~ resta A|-~B 23|-~7
|~ multiplicacioacuten A|~B 3|~(2 -1)
|~ divisioacuten A|~B (8+2)|~4
|^~ exponenciacioacuten A|^~B (53)|^~2
Maacutes sobre LET (continuacioacuten)
Aquiacute tenemos dos ejemplos especiacuteficos de la utilizacioacuten de LET
CONVERSION CELSIUS A FAHRENHEIT
|10 LET F=18 C + 32~
INTERES ANUAL
|10 INTERES=CANTIDADPORCENTAJE~
Intente escribir un programa que nos permita introducir una temperatura
en grados Celsius la convierta a grados Fahrenheit y escriba el resultado (use
|INPUT~ |LET~ y |PRINT~ ) Recuerde la versioacuten BASIC de IBM permite la
omisioacuten de la palabra LET si asiacute se desea
Maacutes sobre LET (continuacioacuten)
Esta es una manera de escribir el programa anterior
|10 INPUT Introduzca la temperatura en grados CelsiusC~
|20 F=18C+32~
|30 PRINT F grados Fahrenheit sonCCelsius~
El comando NEW
El comando |NEW~ |BORRA el programa que estaacute en la memoria
Tambieacuten borra los valores que se hayan asignado a las variables en un programa
Siempre que vayamos a introducir un programa nuevo debemos teclear NEW primero
de no hacerlo asiacute las liacuteneas del programa antiguo se mezclaran con el que
estemos introduciendo
El formato del comando NEW es simplemente escribir NEW y pulsar RETURN
Este comando no borra el programa del disco solamente borra el
programa de la memoria del ordenador
Instrucciones DATA y READ
Ya hemos aprendido a utilizar la instruccioacuten INPUT
Otra forma de introducir datos en el ordenador es con |DATA y |READ~
La instruccioacuten DATA no se ejecuta La utiliza el ordenador cuando
ejecuta la instruccioacuten READ Despueacutes de la palabra DATA podemos poner nuacutemeros
o grupos de letras entre comillas separados por comas La liacutenea de datos asiacute
creada se lee de la siguiente manera La primera vez que el programa ejecuta
READ se carga el primer dato de la liacutenea DATA la segunda vez el segundo
etc
Introduzca los siguientes programas de ejemplo y haga un |RUN~
|10 DATA 711 10 DATA LUISPERICO~
|20 READ X 20 READ X$~
|30 PRINT X 30 PRINT X$~
|40 READ X 40 READ X$~
|50 PRINT X 50 PRINT X$~
Intrucciones DATA y READ (continuacioacuten)
Cuando el ordenador no tiene maacutes datos que leer se produce un error
el programa se para y aparece un mensaje de error
Comprueacutebelo con el siguiente programa
|10 DATA 10Veinte~
|20 READ X~
|30 PRINT 1X~
|40 READ X$~
|50 PRINT 2X$~
|60 READ X~
|70 PRINT 3X~
Como no hay un tercer dato que leer el ordenador se para y nos indica
que existe un error en la liacutenea numero 60 Ejecuacutetelo y vea lo que ocurre
Instruccioacuten GOTO
La instruccioacuten |GOTO~ es de las maacutes sencillas de comprender y una de
la maacutes importantes en BASIC Le dice al ordenador que vaya a un nuacutemero de
liacutenea diferente al siguiente que corresponda ejecutar
En el siguiente programa el ordenador estaraacute dando vueltas en las
liacuteneas 20 30 y 40 hasta que no tenga mas datos que leer dando un error
Las instrucciones IF THEN
Las instrucciones |IF THEN~ nos permiten elegir entre dos opciones |IF~ una
condicioacuten es verdadera el ordenador ejecuta lo que sigue a |THEN~ |IF~ |no
es verdadera el ordenador ejecuta la liacutenea siguiente Normalmente un GOTO
suele seguir a THEN
Mediante Operadores de relacion comparamos los dos valores de la
condicioacuten el las instrucciones IF THEN
Los Operadores de Relacioacuten maacutes comunes son los siguientes
|=~ igual a lt menor que |lt=~ menor o igual que
|ltgt~ distinto de |gt~ mayor que |gt=~ mayor o igual que
Las instrucciones IF THEN
Poniendo al final de la liacutenea DATA un nuacutemero de control y utilizando
las instrucciones IF THEN tras el READ podemos utilizar e l nuacutemero de control
para evitar el error |Out of DATA El siguiente programa calcula la media de
los nuacutemeros DATA especificados en DATA y utiliza |99~ como |fin de datos
Las instrucciones IF THEN
Aquiacute tenemos dos ejemplos Uno cuenta la cantidad de datos que hay en
una liacutenea DATA El otro escogeraacute los nuacutemeros que sean mayores de 50 en la
liacutenea DATA y los escribiraacute en la pantalla En ambos casos el numero |999~
hace que se pare el programa Escriacutebalos y haga un |RUN~
|10 DATA 10692451007412999 10 DATA 10692451007412999~
|20 READ X 20 READ X~
|30 IF X=999 THEN GOTO 60 20 IF X=999 THEN STOP
|40 LET K=K+1 40 IF Xlt=50 THEN GOTO 20~
|50 GOTO 20 50 PRINT X~
|60 PRINT K 60 GOTO 20~
Operadores Loacutegicos
Los |Operadores Loacutegicos ~ hacen mas uacutetiles las instrucciones IF THEN
Los operadores loacutegicos mas importantes en el BASIC de IBM son
|AND~ |OR~ -Y y O-
Los operadores |AND~ y |OR~ se utilizan cuando queremos implantar
maacutes de una condicioacuten en las instrucciones |IF THEN~ Vamos a ver un ejemplo
de su utilidad en un programa Primero escriba y haga un |RUN~ en el programa
siguiente A continuacioacuten cambie los datos en la liacutenea DATA y haga otro |RUN~
|10 DATA 52317342945999~
|20 READ X~
|30 IF X=999 THEN GOTO 70~
|40 IF Xlt20 OR Xgt30 THEN LET A=A+1
|50 IF Xgt=20 AND Xlt=30 THEN LET B=B+1
|60 GOTO 20~
|70 PRINT Anuacutemeros menores que 20 o mayores que 30 y~
|Bentre 20 y 30~
La instruccioacuten ELSE
Otra opcioacuten de las instrucciones IF T HEN es la sentencia ELSE
Sin ELSE el programa se saltaraacute las instrucciones IF y THEN si la condicioacuten
establecida tras el IF no se cumple Si la palabra ELSE sigue a IF THEN
entonces se ejecuta lo que sigue a ELSE en vez de continuar con la siguiente
liacutenea
Aquiacute tenemos el uacuteltimo programa modificado para ver la instruccioacuten ELSE
Introduacutezcalo y haga un |RUN~
|10 DATA 52317342945999~
|20 READ X~
|30 IF X=999 THEN GOTO 60~
|40 IF Xlt20 OR Xgt30 THEN LET A=A+1 ELSE LET B=B+1
|50 GOTO 20~
|60 PRINT Ardquonuacutemeros menores que 20 o mayores que 30 y~
|Bentre 20 y 30~
Liacuteneas con instrucciones muacuteltiples
Otra caracteriacutestica del BASIC es la utilizacioacuten de instrucciones
muacuteltiples en una liacutenea Podemos poner varias instrucciones en la misma liacuten ea
separaacutendolas con dos puntos (|~) Resulta muy uacutetil con IF THEN
Aquiacute tenemos un ejemplo que muestra este tipo de liacuteneas
Escriacutebalo y haga un RUN~ modifique los valores en la liacutenea DATA y de nuevo
haga un |RUN~
|10 DATA 52317342945999~
|20 READ X~
|30 IF X=999 THEN PRINT Amenores que 20Bentre 20 y 30 yC~
mayores que 30END
|40 IF Xlt20 THEN PRINT Xes menor que 20LET A=A+1GOTO 20~
|50 IF Xlt30 THEN PRINT Xestaacute entre 20 y 30LET B=B+1GOTO 20
|60 PRINT Xes mayor que 30LET C=C+1GOTO 20~
La instruccioacuten REM
La instruccioacuten |REM nos permite escribir notas aclaratorias dentro de
un programa Estos comentarios son ignorados por el ordenador cuando encuentra
la instruccioacuten REM pero le fac ilitan al programador informacioacuten del programa
Las anotaciones aparecen cuando LISTAMOS en programa Los comentarios pueden
comenzar bien por la palabra REM o por un apoacutestrofe (|~)
Aquiacute tenemos un ejemplo de la utilizacioacuten de REM en un programa
10 DATA 452497654715803877999
20 READ XIF X=999 THEN 60 |Si no hay mas datos va a 60~
30 IF Xgt=50 THEN LET G=G+1 |Cuenta los nuacutemeros mayores o iguales a 50~
40 IF Xlt50 THEN LET L=L+1 |Cuenta los nuacutemeros menores de 50~
50 GOTO 20 |Obtiene el siguiente numero~
60 PRINT De los numerosLson menores de 50 y
70 PRINT Gson mayores o iguales a 50
Introduzca este programa y haga un |RUN~
STOP y END
Existen cuatro maneras de parar la ejecucioacuten de un programa BASIC
1 El programa se para cuando no tiene mas liacuteneas que ejecutar
2 Con STOP Cuando el ordenador encuentra un STOP el programa se
para y aparece en la pantalla|Break in N~ (donde |N~ es la liacutenea
en la que esta situado el STOP)
3 END Es similar a STOP except o en que el ordenador no escribe el
mensaje de interrupcioacuten
4 Pulsando |Ctrl~ y |Break~ (Scroll lock) simultaacuteneamente paramos
la ejecucioacuten de un programa y aparece el mensaje |Break in N~
donde N es la liacutenea donde se ha interrumpido el programa
Si tecleamos |CONT~el programa |continuacutea ejecutaacutendose a partir
del punto donde FUE INTERRUMPIDO
CONT tambieacuten funciona con STOP pero no con END
STOP y END (continuacion)
Veamos como funcionan estas instrucciones |corriendo el siguiente
programa
|10 PRINT Escriba CONT y pulse return
|20 STOP
|30 PRINT BIEN Ha continuado el programa
|40 PRINT Pulse Ctrl y Break simultaneamenteGOTO 40~
El comando EDIT
Cuando cometemos (o descubrimos) un error en una liacutenea podemos
corregirlo simplemente escribiendo encima Sin embargo es mucho mas raacutepido
utilizar el EDITor Para esto sencillamente tecleamos |EDIT N~ (donde |N~ es
el nuacutemero de liacutenea que vamos a editar) y nos movemos con el cursor al punto
donde vamos a corregir para escribir encima insertar o borrar
Si lo que queremos es borrar una liacutenea del programa simplemente
escribimos su nuacutemero y pulsamos RETURN Si son varias las liacuteneas que vamos a
borrar escribimos |DELETE N1-N2 (donde |N1~ es la primera y |N2~ es la ultima
liacutenea a borrar) y pulsamos RETURN Esta instruccioacuten borraraacute todas las liacuteneas
entre |N1~ y |N2~ incluidas estas
El comando AUTO
Con el fin de no perder tiempo escribiendo el nuacutemero de liacutenea de cada
instruccioacuten en un programa podemos utilizar el comando |AUTO
Al poner la palabra AUTO el ordenador numerara las liacuteneas automaacuteticamente
Esta es la forma correcta de poner el comando AUTO
AUTO [|B~[|I~]]
|B~ es el primer nuacutemero de liacutenea que escribiraacute el ordena dor Si no se
pone ninguacuten valor para |B~ el ordenador automaacuteticamente pondraacute el numero 10
|I~ es el incremento Esto es el valor que se le suma a cada liacutenea
para obtener el nuacutemero de liacutenea siguiente Al omitirlo se incrementaraacuten las
liacuteneas de 10 en 10
AUTO (continuacioacuten)
Si queremos comenzar nuestro programa por una liacutenea que no sea la 10
por ejemplo la 200 escribiremos AUTO 200 y nuestro programa empezaraacute en la
liacutenea 200 y se incrementaraacute de 10 en 10 Si queremos comenzar por la liacutenea
100 y en saltos de 5 en 5 escribiremos AUTO 1005
Para terminar de introducir el programa debemos pulsar |Ctrl~ y |Break~ al
aparecer la liacutenea siguiente a la ultima
Introduzca el siguiente programa utilizando AUTO
|100 INPUT Dime el primer num ero A
|105 INPUT Dime el segundo numero B
|110 PRINT A+B=A+B
|115 PRINT A-B=A-B
|120 PRINT AB=AB
Los comandos TRON y TROFF
Cuando un programa no funciona correctamente la primera vez que lo
ejecutamos se dice que contiene errores (BUGS) La mayor parte del tiempo de un
programador se pierde depurando (debuging) un programa
Una instruccioacuten que nos facilita esta labor es el comando |TRON~
Al escribir TRON antes de ejecutar un programa aparece entre corchetes ( |[]~)
el nuacutemero de liacutenea que se estaacute ejecutando junto con los textos de la ejecucioacuten
propia del programa
Para el programa |10 DATA 172399~
|20 READ NUM
|30 IF NUMltgt99 THEN PRINT NUMGOTO 20~
|40 PRINT FIN
Utilizando TRON lo
veriacuteamos asiacute |[10][20][30] 17~
|[20][30] 23~
|[20][30][40]The END
Cuando hemos localizado el error y queremos ejecutar nuestro programa
sin que aparezcan los nuacutemeros de liacutenea tenemos que teclear |TROFF~
Esto devuelve al ordenador a su modo normal de ejecucioacuten
TRON y TROFF (continuacioacuten)
El siguiente programa debe contar y escribir los nuacutemeros de la liacutenea
DATA pero por alguna razoacuten se vuelve loco al escribir el primer valor
Utilizando TRON y TROFF localice y solucione el problema
|10 DATA 3467129653884999~
|20 READ NUMIF NUM=999 THEN GOTO 60~
|30 CON=CON+1
|40 PRINT El valor del numeroCONesNUM
|50 GOTO 30~
|60 PRINT HayCONnuacutemeros en la liacutenea DATA
Primero teclee el programa y haga un |RUN~ Tras unos se gundos pulse
|Ctrl~ y |Break~ para parar el programa Teclee TRON y RETURN para entrar en
el modo TRAZADO De nuevo |RUN~ y cuando localice el problema pare de nuevo
el programa corrija el programa y entre en el modo de EJECUCION con TROFF
para hacer un |RUN~ por tercera vez
TRON y TROFF (continuacioacuten)
Aquiacute tenemos de nuevo el uacuteltimo programa Afortunadamente encontroacute
el problema en la liacutenea |50~
10 DATA 3467129653884999
20 READ NUMIF NUM=999 THEN GOTO 60
30 CON=CON+1
40 PRINT El valor del numeroCONesNUM
|50 GOTO 30~
60 PRINT HayrdquoCONrdquonuacutemeros en la liacutenea DATA
En la liacutenea deberiacutea poner |50 GOTO 20~ Tal como estaba el programa
nunca leeriacutea un nuevo valor para la variable |NUM~ luego nunca leeriacutea |999~
para marcar el fin de programa
La funcioacuten RND
La funcioacuten RND devuelve un nuacutemero al azar entre el 0 y el 1
Si queremos un nuacutemero entre el 0 y el 100 simplemente multiplicamos RND por 100
ejemplo- LET |X=RND [El valor de |X~ cumple que |0~ lt |X~ lt| 1~]
LET |Y=RND100 [El valor de |Y~ cumple que |0 ~lt |Y~ lt| 100~]
Aquiacute tenemos un programa de ejemplo que nos pide el liacutemite superior
y nos devuelve una serie de nuacutemeros al azar entre 0 y el liacutemite
Tendraacute que utilizar |Ctrl~ y |Break~ para parar el programa
|10 INPUT Introduzca el liacutemite superiorMAXIMO
|20 PRINT RNDMAXIMO
|30 GOTO 20~
La funcioacuten INT
La funcioacuten INT suprime la parte decimal de un nuacutemero entre pareacutentesis
y devuelve su parte entera redondeaacutendola
ejemplo- |LET A=INT(92)~ [Aquiacute |A~ vale |9~]
|LET K=INT(76)~ [Aquiacute |K~ vale |8~]
Aquiacute tenemos un programa que utiliza RND e INT conjuntamente
De nuevo pulse |Ctrl~ y |Break~ para acabar el programa
|10 NUMERO=RND200-100 genera un nuacutemero entre -100 y 100
|20 PRINT Cuaacutel es la parte entera deNUMEROINPUT RESPUESTA~
|30 IF RESPUESTAltgtINT(NUMERO) THEN PRINT La respuesta esINT(NUMERO)~
|40 GOTO 10~
La funcioacuten ABS
La funcioacuten ABS devuelve el valor absoluto de una expresioacuten
El valor absoluto es sencillamente el valor positivo de un numero
example LET X=ABS(-5) [Aquiacute |X~ es igual a |5~]
|LET C=ABS(124) [Aquiacute |C~ es igual a |48~]
Aquiacute tenemos un programa que utiliza las funciones RND INT y ABS
De nuevo pulse |Ctrl~ y |Break~ cuando quiera finalizar
|10 NUMERO=INT(RND200-100) Genera un nuacutemero entero entre -100 and 100
|20 PRINT Cuaacutel es el valor ABSOLUTO deNUMEROINPUT RESPUESTA~
|30 IF RESPUESTAltgtABS(NUMERO) THEN PRINT La respuestaesABS(NUMERO)~
|40 GOTO 10~
Las funciones ABS e INT (continuacioacuten)
Aquiacute tenemos un programa muy interesante para los aficionados a las
Matemaacuteticas Calcula el Maacuteximo Comuacuten Denominador de dos nuacutemeros
|10 INPUT Dime el primer nuacutemeroNUM1
|20 INPUT Dime el segundoNUM2
|30 NUM1=ABS(NUM1)NUM2=ABS(NUM2)~
|40 LET R=NUM1-NUM2INT(NUM1NUM2)~
|50 IF R=0 THEN GOTO 70~
|60 NUM1=NUM2NUM2=RGOTO 40~
|70 PRINT El maacuteximo comuacuten denominador esNUM2
copy 1991 Javier de LucasLinares
![Page 6: Introducción al Lenguaje de programacion BASIC](https://reader031.vdocuments.co/reader031/viewer/2022020218/5571f1c849795947648bade1/html5/thumbnails/6.jpg)
|PRINT NUM1 NUM2 SUM~
|LET NUM1=45
LET NUM2=5
|SUM=NUM1+NUM2~
|PRINT La suma de NUM1 y NUM2 es SUM~
Nuacutemeros de LINEA
Como aprendimos anteriormente un programa es un grupo de instrucciones
La manera de que el ordenador ejecute las instrucciones de un programa es
numerando cada instruccioacuten con un nuacutemero de liacutenea El ordenador realiza
cada instruccioacuten en el orden marca do por su nuacutemero de liacutenea
En las siguientes instrucciones
|10~ PRINT 3+2
|20~ PRINT 3+3
|10~ y |20~ son nuacutemeros de liacutenea
El comando LIST
Escribiendo |LIST~ y tras pulsar return se escribiraacute el programa que
estaacute en la memoria Escriba el siguien te programa y despueacutes teclee LIST
|10 PRINT 3+2~
|20 PRINT 3+3~
|30 PRINT 3+4~
|40 PRINT 3+5~
El comando LIST (continuacioacuten)
El ordenador siempre ejecuta el programa en orden creciente empezando
por el numero de liacutenea maacutes bajo Si queremos escribir la instruccioacuten |PRINT 3+1~
antes de la liacutenea |10~ entonces le asignamos un nuacutemero de liacutenea menor de 10
Escribamos lo siguiente
|10 PRINT 3+2~
|20 PRINT 3+3~
|30 PRINT 3+4~
|40 PRINT 3+5~
|5 PRINT 3+1~
Ahora escriba |LIST~ y pulse return El comando LIST mostraraacute el
programa en orden numeacuterico Convencionalmente se asignan nuacutemeros de liacutenea
incrementados de 10 en 10 El ordenador renumeraraacute las liacuteneas si tecleamos
la palabra |RENUM~ y pulsamos return Haacutegalo y despueacutes teclee |LIST~ par a
comprobar lo que ocurre
El comando RUN
El comando |RUN~ ejecuta nuestro programa Cuando antes escribiacuteamos
PRINT 3+2 y pulsaacutebamos return el ordenador ejecutaba la instruccioacuten PRINT
inmediatamente Ahora cuando ponemos un nuacutemero de liacutenea el orden ador guarda en
en su memoria la instruccioacuten y espera la orden RUN para ejecutar el programa
Escriba lo siguiente teclee |RUN~ y pulse return
|10 PRINT 3+1~
|20 PRINT 3+2~
|30 PRINT 3+3~
|40 PRINT 3+4 ~
|50 PRINT 3+5~
(Observe que el punto y coma escribe el |8~ en la misma liacutenea que el |7~)
La instruccioacuten INPUT
La instruccioacuten |INPUT~ nos permite introducir datos desde el teclado
mientras el programa se estaacute ejecutando Cuando el programa encuentra un INPUT
se para y aparece una interrogacioacuten esperando que introduzcamos un nuacutemero para
continuar con la liacutenea siguiente Tras el input debemos poner una variable
ejemplo 10 INPUT X
Podemos poner un texto (palabras entre comillas que nos recuerdan
el dato que el ordenador espera) entre el INPUT y la variable Si un punto y
coma sigue al texto entonces la interrogacioacuten aparece en la pantalla si en su
lugar ponemos una coma la interrogacioacuten no apareceraacute
INPUT (continuacioacuten)
Esto es lo que la instruccioacuten INPUT hace en un programa
|10 INPUT Dime un valor para X X~
|20 PRINT X es igual a X~
Teclee este programa ejecuacutetelo y vea lo que sucede Despueacutes de hacerlo
cambie el punto y coma por una coma en la liacutenea |10~ y haga un |RUN~ Para
ejecutar el programa de nuevo con un valor distinto en la variable ponga |RUN~
de nuevo e introduzca un valor diferente para X
Variables cadena (strings)
Las variables pueden representar tanto texto como nuacutemeros Una variable
que representa una serie de caracteres se llama variable cadena
El nombre de este tipo de variables se diferencian de las numeacutericas
porque al final de su nombre llevan el signo doacutelar
ejemplo |XYZ$~=Aula Informaacutetica IES Celestino Mutis
Podemos asignar una cadena de caracteres a una variable string de la
misma manera que asignaacutebamos un valor a una variable numeacuterica
Ejecutemos el siguiente programa
|10 INPUT Dime tu nombre N$~
|20 PRINT Me alegro de conocerte N$ soy el ordenador personal ATLAS~
Maacutes sobre LET
Ahora que podemos introducir y sacar datos del ordenador hagamos algo
interesante Los caacutelculos matemaacuteticos se hacen en BASIC con la instruccioacuten
LET que aprendimos en la primera leccioacuten La instruccioacuten LET asigna a una
variable una expresioacuten numeacuterica A continuacioacuten vamos a conocer cuaacuteles son los
operadores aritmeacuteticos y como se utilizan en BASIC
SIMBOLO DESCRIPCION EJEMPLOS
|+~ suma A|+~B 6|+~12
|-~ resta A|-~B 23|-~7
|~ multiplicacioacuten A|~B 3|~(2 -1)
|~ divisioacuten A|~B (8+2)|~4
|^~ exponenciacioacuten A|^~B (53)|^~2
Maacutes sobre LET (continuacioacuten)
Aquiacute tenemos dos ejemplos especiacuteficos de la utilizacioacuten de LET
CONVERSION CELSIUS A FAHRENHEIT
|10 LET F=18 C + 32~
INTERES ANUAL
|10 INTERES=CANTIDADPORCENTAJE~
Intente escribir un programa que nos permita introducir una temperatura
en grados Celsius la convierta a grados Fahrenheit y escriba el resultado (use
|INPUT~ |LET~ y |PRINT~ ) Recuerde la versioacuten BASIC de IBM permite la
omisioacuten de la palabra LET si asiacute se desea
Maacutes sobre LET (continuacioacuten)
Esta es una manera de escribir el programa anterior
|10 INPUT Introduzca la temperatura en grados CelsiusC~
|20 F=18C+32~
|30 PRINT F grados Fahrenheit sonCCelsius~
El comando NEW
El comando |NEW~ |BORRA el programa que estaacute en la memoria
Tambieacuten borra los valores que se hayan asignado a las variables en un programa
Siempre que vayamos a introducir un programa nuevo debemos teclear NEW primero
de no hacerlo asiacute las liacuteneas del programa antiguo se mezclaran con el que
estemos introduciendo
El formato del comando NEW es simplemente escribir NEW y pulsar RETURN
Este comando no borra el programa del disco solamente borra el
programa de la memoria del ordenador
Instrucciones DATA y READ
Ya hemos aprendido a utilizar la instruccioacuten INPUT
Otra forma de introducir datos en el ordenador es con |DATA y |READ~
La instruccioacuten DATA no se ejecuta La utiliza el ordenador cuando
ejecuta la instruccioacuten READ Despueacutes de la palabra DATA podemos poner nuacutemeros
o grupos de letras entre comillas separados por comas La liacutenea de datos asiacute
creada se lee de la siguiente manera La primera vez que el programa ejecuta
READ se carga el primer dato de la liacutenea DATA la segunda vez el segundo
etc
Introduzca los siguientes programas de ejemplo y haga un |RUN~
|10 DATA 711 10 DATA LUISPERICO~
|20 READ X 20 READ X$~
|30 PRINT X 30 PRINT X$~
|40 READ X 40 READ X$~
|50 PRINT X 50 PRINT X$~
Intrucciones DATA y READ (continuacioacuten)
Cuando el ordenador no tiene maacutes datos que leer se produce un error
el programa se para y aparece un mensaje de error
Comprueacutebelo con el siguiente programa
|10 DATA 10Veinte~
|20 READ X~
|30 PRINT 1X~
|40 READ X$~
|50 PRINT 2X$~
|60 READ X~
|70 PRINT 3X~
Como no hay un tercer dato que leer el ordenador se para y nos indica
que existe un error en la liacutenea numero 60 Ejecuacutetelo y vea lo que ocurre
Instruccioacuten GOTO
La instruccioacuten |GOTO~ es de las maacutes sencillas de comprender y una de
la maacutes importantes en BASIC Le dice al ordenador que vaya a un nuacutemero de
liacutenea diferente al siguiente que corresponda ejecutar
En el siguiente programa el ordenador estaraacute dando vueltas en las
liacuteneas 20 30 y 40 hasta que no tenga mas datos que leer dando un error
Las instrucciones IF THEN
Las instrucciones |IF THEN~ nos permiten elegir entre dos opciones |IF~ una
condicioacuten es verdadera el ordenador ejecuta lo que sigue a |THEN~ |IF~ |no
es verdadera el ordenador ejecuta la liacutenea siguiente Normalmente un GOTO
suele seguir a THEN
Mediante Operadores de relacion comparamos los dos valores de la
condicioacuten el las instrucciones IF THEN
Los Operadores de Relacioacuten maacutes comunes son los siguientes
|=~ igual a lt menor que |lt=~ menor o igual que
|ltgt~ distinto de |gt~ mayor que |gt=~ mayor o igual que
Las instrucciones IF THEN
Poniendo al final de la liacutenea DATA un nuacutemero de control y utilizando
las instrucciones IF THEN tras el READ podemos utilizar e l nuacutemero de control
para evitar el error |Out of DATA El siguiente programa calcula la media de
los nuacutemeros DATA especificados en DATA y utiliza |99~ como |fin de datos
Las instrucciones IF THEN
Aquiacute tenemos dos ejemplos Uno cuenta la cantidad de datos que hay en
una liacutenea DATA El otro escogeraacute los nuacutemeros que sean mayores de 50 en la
liacutenea DATA y los escribiraacute en la pantalla En ambos casos el numero |999~
hace que se pare el programa Escriacutebalos y haga un |RUN~
|10 DATA 10692451007412999 10 DATA 10692451007412999~
|20 READ X 20 READ X~
|30 IF X=999 THEN GOTO 60 20 IF X=999 THEN STOP
|40 LET K=K+1 40 IF Xlt=50 THEN GOTO 20~
|50 GOTO 20 50 PRINT X~
|60 PRINT K 60 GOTO 20~
Operadores Loacutegicos
Los |Operadores Loacutegicos ~ hacen mas uacutetiles las instrucciones IF THEN
Los operadores loacutegicos mas importantes en el BASIC de IBM son
|AND~ |OR~ -Y y O-
Los operadores |AND~ y |OR~ se utilizan cuando queremos implantar
maacutes de una condicioacuten en las instrucciones |IF THEN~ Vamos a ver un ejemplo
de su utilidad en un programa Primero escriba y haga un |RUN~ en el programa
siguiente A continuacioacuten cambie los datos en la liacutenea DATA y haga otro |RUN~
|10 DATA 52317342945999~
|20 READ X~
|30 IF X=999 THEN GOTO 70~
|40 IF Xlt20 OR Xgt30 THEN LET A=A+1
|50 IF Xgt=20 AND Xlt=30 THEN LET B=B+1
|60 GOTO 20~
|70 PRINT Anuacutemeros menores que 20 o mayores que 30 y~
|Bentre 20 y 30~
La instruccioacuten ELSE
Otra opcioacuten de las instrucciones IF T HEN es la sentencia ELSE
Sin ELSE el programa se saltaraacute las instrucciones IF y THEN si la condicioacuten
establecida tras el IF no se cumple Si la palabra ELSE sigue a IF THEN
entonces se ejecuta lo que sigue a ELSE en vez de continuar con la siguiente
liacutenea
Aquiacute tenemos el uacuteltimo programa modificado para ver la instruccioacuten ELSE
Introduacutezcalo y haga un |RUN~
|10 DATA 52317342945999~
|20 READ X~
|30 IF X=999 THEN GOTO 60~
|40 IF Xlt20 OR Xgt30 THEN LET A=A+1 ELSE LET B=B+1
|50 GOTO 20~
|60 PRINT Ardquonuacutemeros menores que 20 o mayores que 30 y~
|Bentre 20 y 30~
Liacuteneas con instrucciones muacuteltiples
Otra caracteriacutestica del BASIC es la utilizacioacuten de instrucciones
muacuteltiples en una liacutenea Podemos poner varias instrucciones en la misma liacuten ea
separaacutendolas con dos puntos (|~) Resulta muy uacutetil con IF THEN
Aquiacute tenemos un ejemplo que muestra este tipo de liacuteneas
Escriacutebalo y haga un RUN~ modifique los valores en la liacutenea DATA y de nuevo
haga un |RUN~
|10 DATA 52317342945999~
|20 READ X~
|30 IF X=999 THEN PRINT Amenores que 20Bentre 20 y 30 yC~
mayores que 30END
|40 IF Xlt20 THEN PRINT Xes menor que 20LET A=A+1GOTO 20~
|50 IF Xlt30 THEN PRINT Xestaacute entre 20 y 30LET B=B+1GOTO 20
|60 PRINT Xes mayor que 30LET C=C+1GOTO 20~
La instruccioacuten REM
La instruccioacuten |REM nos permite escribir notas aclaratorias dentro de
un programa Estos comentarios son ignorados por el ordenador cuando encuentra
la instruccioacuten REM pero le fac ilitan al programador informacioacuten del programa
Las anotaciones aparecen cuando LISTAMOS en programa Los comentarios pueden
comenzar bien por la palabra REM o por un apoacutestrofe (|~)
Aquiacute tenemos un ejemplo de la utilizacioacuten de REM en un programa
10 DATA 452497654715803877999
20 READ XIF X=999 THEN 60 |Si no hay mas datos va a 60~
30 IF Xgt=50 THEN LET G=G+1 |Cuenta los nuacutemeros mayores o iguales a 50~
40 IF Xlt50 THEN LET L=L+1 |Cuenta los nuacutemeros menores de 50~
50 GOTO 20 |Obtiene el siguiente numero~
60 PRINT De los numerosLson menores de 50 y
70 PRINT Gson mayores o iguales a 50
Introduzca este programa y haga un |RUN~
STOP y END
Existen cuatro maneras de parar la ejecucioacuten de un programa BASIC
1 El programa se para cuando no tiene mas liacuteneas que ejecutar
2 Con STOP Cuando el ordenador encuentra un STOP el programa se
para y aparece en la pantalla|Break in N~ (donde |N~ es la liacutenea
en la que esta situado el STOP)
3 END Es similar a STOP except o en que el ordenador no escribe el
mensaje de interrupcioacuten
4 Pulsando |Ctrl~ y |Break~ (Scroll lock) simultaacuteneamente paramos
la ejecucioacuten de un programa y aparece el mensaje |Break in N~
donde N es la liacutenea donde se ha interrumpido el programa
Si tecleamos |CONT~el programa |continuacutea ejecutaacutendose a partir
del punto donde FUE INTERRUMPIDO
CONT tambieacuten funciona con STOP pero no con END
STOP y END (continuacion)
Veamos como funcionan estas instrucciones |corriendo el siguiente
programa
|10 PRINT Escriba CONT y pulse return
|20 STOP
|30 PRINT BIEN Ha continuado el programa
|40 PRINT Pulse Ctrl y Break simultaneamenteGOTO 40~
El comando EDIT
Cuando cometemos (o descubrimos) un error en una liacutenea podemos
corregirlo simplemente escribiendo encima Sin embargo es mucho mas raacutepido
utilizar el EDITor Para esto sencillamente tecleamos |EDIT N~ (donde |N~ es
el nuacutemero de liacutenea que vamos a editar) y nos movemos con el cursor al punto
donde vamos a corregir para escribir encima insertar o borrar
Si lo que queremos es borrar una liacutenea del programa simplemente
escribimos su nuacutemero y pulsamos RETURN Si son varias las liacuteneas que vamos a
borrar escribimos |DELETE N1-N2 (donde |N1~ es la primera y |N2~ es la ultima
liacutenea a borrar) y pulsamos RETURN Esta instruccioacuten borraraacute todas las liacuteneas
entre |N1~ y |N2~ incluidas estas
El comando AUTO
Con el fin de no perder tiempo escribiendo el nuacutemero de liacutenea de cada
instruccioacuten en un programa podemos utilizar el comando |AUTO
Al poner la palabra AUTO el ordenador numerara las liacuteneas automaacuteticamente
Esta es la forma correcta de poner el comando AUTO
AUTO [|B~[|I~]]
|B~ es el primer nuacutemero de liacutenea que escribiraacute el ordena dor Si no se
pone ninguacuten valor para |B~ el ordenador automaacuteticamente pondraacute el numero 10
|I~ es el incremento Esto es el valor que se le suma a cada liacutenea
para obtener el nuacutemero de liacutenea siguiente Al omitirlo se incrementaraacuten las
liacuteneas de 10 en 10
AUTO (continuacioacuten)
Si queremos comenzar nuestro programa por una liacutenea que no sea la 10
por ejemplo la 200 escribiremos AUTO 200 y nuestro programa empezaraacute en la
liacutenea 200 y se incrementaraacute de 10 en 10 Si queremos comenzar por la liacutenea
100 y en saltos de 5 en 5 escribiremos AUTO 1005
Para terminar de introducir el programa debemos pulsar |Ctrl~ y |Break~ al
aparecer la liacutenea siguiente a la ultima
Introduzca el siguiente programa utilizando AUTO
|100 INPUT Dime el primer num ero A
|105 INPUT Dime el segundo numero B
|110 PRINT A+B=A+B
|115 PRINT A-B=A-B
|120 PRINT AB=AB
Los comandos TRON y TROFF
Cuando un programa no funciona correctamente la primera vez que lo
ejecutamos se dice que contiene errores (BUGS) La mayor parte del tiempo de un
programador se pierde depurando (debuging) un programa
Una instruccioacuten que nos facilita esta labor es el comando |TRON~
Al escribir TRON antes de ejecutar un programa aparece entre corchetes ( |[]~)
el nuacutemero de liacutenea que se estaacute ejecutando junto con los textos de la ejecucioacuten
propia del programa
Para el programa |10 DATA 172399~
|20 READ NUM
|30 IF NUMltgt99 THEN PRINT NUMGOTO 20~
|40 PRINT FIN
Utilizando TRON lo
veriacuteamos asiacute |[10][20][30] 17~
|[20][30] 23~
|[20][30][40]The END
Cuando hemos localizado el error y queremos ejecutar nuestro programa
sin que aparezcan los nuacutemeros de liacutenea tenemos que teclear |TROFF~
Esto devuelve al ordenador a su modo normal de ejecucioacuten
TRON y TROFF (continuacioacuten)
El siguiente programa debe contar y escribir los nuacutemeros de la liacutenea
DATA pero por alguna razoacuten se vuelve loco al escribir el primer valor
Utilizando TRON y TROFF localice y solucione el problema
|10 DATA 3467129653884999~
|20 READ NUMIF NUM=999 THEN GOTO 60~
|30 CON=CON+1
|40 PRINT El valor del numeroCONesNUM
|50 GOTO 30~
|60 PRINT HayCONnuacutemeros en la liacutenea DATA
Primero teclee el programa y haga un |RUN~ Tras unos se gundos pulse
|Ctrl~ y |Break~ para parar el programa Teclee TRON y RETURN para entrar en
el modo TRAZADO De nuevo |RUN~ y cuando localice el problema pare de nuevo
el programa corrija el programa y entre en el modo de EJECUCION con TROFF
para hacer un |RUN~ por tercera vez
TRON y TROFF (continuacioacuten)
Aquiacute tenemos de nuevo el uacuteltimo programa Afortunadamente encontroacute
el problema en la liacutenea |50~
10 DATA 3467129653884999
20 READ NUMIF NUM=999 THEN GOTO 60
30 CON=CON+1
40 PRINT El valor del numeroCONesNUM
|50 GOTO 30~
60 PRINT HayrdquoCONrdquonuacutemeros en la liacutenea DATA
En la liacutenea deberiacutea poner |50 GOTO 20~ Tal como estaba el programa
nunca leeriacutea un nuevo valor para la variable |NUM~ luego nunca leeriacutea |999~
para marcar el fin de programa
La funcioacuten RND
La funcioacuten RND devuelve un nuacutemero al azar entre el 0 y el 1
Si queremos un nuacutemero entre el 0 y el 100 simplemente multiplicamos RND por 100
ejemplo- LET |X=RND [El valor de |X~ cumple que |0~ lt |X~ lt| 1~]
LET |Y=RND100 [El valor de |Y~ cumple que |0 ~lt |Y~ lt| 100~]
Aquiacute tenemos un programa de ejemplo que nos pide el liacutemite superior
y nos devuelve una serie de nuacutemeros al azar entre 0 y el liacutemite
Tendraacute que utilizar |Ctrl~ y |Break~ para parar el programa
|10 INPUT Introduzca el liacutemite superiorMAXIMO
|20 PRINT RNDMAXIMO
|30 GOTO 20~
La funcioacuten INT
La funcioacuten INT suprime la parte decimal de un nuacutemero entre pareacutentesis
y devuelve su parte entera redondeaacutendola
ejemplo- |LET A=INT(92)~ [Aquiacute |A~ vale |9~]
|LET K=INT(76)~ [Aquiacute |K~ vale |8~]
Aquiacute tenemos un programa que utiliza RND e INT conjuntamente
De nuevo pulse |Ctrl~ y |Break~ para acabar el programa
|10 NUMERO=RND200-100 genera un nuacutemero entre -100 y 100
|20 PRINT Cuaacutel es la parte entera deNUMEROINPUT RESPUESTA~
|30 IF RESPUESTAltgtINT(NUMERO) THEN PRINT La respuesta esINT(NUMERO)~
|40 GOTO 10~
La funcioacuten ABS
La funcioacuten ABS devuelve el valor absoluto de una expresioacuten
El valor absoluto es sencillamente el valor positivo de un numero
example LET X=ABS(-5) [Aquiacute |X~ es igual a |5~]
|LET C=ABS(124) [Aquiacute |C~ es igual a |48~]
Aquiacute tenemos un programa que utiliza las funciones RND INT y ABS
De nuevo pulse |Ctrl~ y |Break~ cuando quiera finalizar
|10 NUMERO=INT(RND200-100) Genera un nuacutemero entero entre -100 and 100
|20 PRINT Cuaacutel es el valor ABSOLUTO deNUMEROINPUT RESPUESTA~
|30 IF RESPUESTAltgtABS(NUMERO) THEN PRINT La respuestaesABS(NUMERO)~
|40 GOTO 10~
Las funciones ABS e INT (continuacioacuten)
Aquiacute tenemos un programa muy interesante para los aficionados a las
Matemaacuteticas Calcula el Maacuteximo Comuacuten Denominador de dos nuacutemeros
|10 INPUT Dime el primer nuacutemeroNUM1
|20 INPUT Dime el segundoNUM2
|30 NUM1=ABS(NUM1)NUM2=ABS(NUM2)~
|40 LET R=NUM1-NUM2INT(NUM1NUM2)~
|50 IF R=0 THEN GOTO 70~
|60 NUM1=NUM2NUM2=RGOTO 40~
|70 PRINT El maacuteximo comuacuten denominador esNUM2
copy 1991 Javier de LucasLinares
![Page 7: Introducción al Lenguaje de programacion BASIC](https://reader031.vdocuments.co/reader031/viewer/2022020218/5571f1c849795947648bade1/html5/thumbnails/7.jpg)
|30 PRINT 3+4~
|40 PRINT 3+5~
|5 PRINT 3+1~
Ahora escriba |LIST~ y pulse return El comando LIST mostraraacute el
programa en orden numeacuterico Convencionalmente se asignan nuacutemeros de liacutenea
incrementados de 10 en 10 El ordenador renumeraraacute las liacuteneas si tecleamos
la palabra |RENUM~ y pulsamos return Haacutegalo y despueacutes teclee |LIST~ par a
comprobar lo que ocurre
El comando RUN
El comando |RUN~ ejecuta nuestro programa Cuando antes escribiacuteamos
PRINT 3+2 y pulsaacutebamos return el ordenador ejecutaba la instruccioacuten PRINT
inmediatamente Ahora cuando ponemos un nuacutemero de liacutenea el orden ador guarda en
en su memoria la instruccioacuten y espera la orden RUN para ejecutar el programa
Escriba lo siguiente teclee |RUN~ y pulse return
|10 PRINT 3+1~
|20 PRINT 3+2~
|30 PRINT 3+3~
|40 PRINT 3+4 ~
|50 PRINT 3+5~
(Observe que el punto y coma escribe el |8~ en la misma liacutenea que el |7~)
La instruccioacuten INPUT
La instruccioacuten |INPUT~ nos permite introducir datos desde el teclado
mientras el programa se estaacute ejecutando Cuando el programa encuentra un INPUT
se para y aparece una interrogacioacuten esperando que introduzcamos un nuacutemero para
continuar con la liacutenea siguiente Tras el input debemos poner una variable
ejemplo 10 INPUT X
Podemos poner un texto (palabras entre comillas que nos recuerdan
el dato que el ordenador espera) entre el INPUT y la variable Si un punto y
coma sigue al texto entonces la interrogacioacuten aparece en la pantalla si en su
lugar ponemos una coma la interrogacioacuten no apareceraacute
INPUT (continuacioacuten)
Esto es lo que la instruccioacuten INPUT hace en un programa
|10 INPUT Dime un valor para X X~
|20 PRINT X es igual a X~
Teclee este programa ejecuacutetelo y vea lo que sucede Despueacutes de hacerlo
cambie el punto y coma por una coma en la liacutenea |10~ y haga un |RUN~ Para
ejecutar el programa de nuevo con un valor distinto en la variable ponga |RUN~
de nuevo e introduzca un valor diferente para X
Variables cadena (strings)
Las variables pueden representar tanto texto como nuacutemeros Una variable
que representa una serie de caracteres se llama variable cadena
El nombre de este tipo de variables se diferencian de las numeacutericas
porque al final de su nombre llevan el signo doacutelar
ejemplo |XYZ$~=Aula Informaacutetica IES Celestino Mutis
Podemos asignar una cadena de caracteres a una variable string de la
misma manera que asignaacutebamos un valor a una variable numeacuterica
Ejecutemos el siguiente programa
|10 INPUT Dime tu nombre N$~
|20 PRINT Me alegro de conocerte N$ soy el ordenador personal ATLAS~
Maacutes sobre LET
Ahora que podemos introducir y sacar datos del ordenador hagamos algo
interesante Los caacutelculos matemaacuteticos se hacen en BASIC con la instruccioacuten
LET que aprendimos en la primera leccioacuten La instruccioacuten LET asigna a una
variable una expresioacuten numeacuterica A continuacioacuten vamos a conocer cuaacuteles son los
operadores aritmeacuteticos y como se utilizan en BASIC
SIMBOLO DESCRIPCION EJEMPLOS
|+~ suma A|+~B 6|+~12
|-~ resta A|-~B 23|-~7
|~ multiplicacioacuten A|~B 3|~(2 -1)
|~ divisioacuten A|~B (8+2)|~4
|^~ exponenciacioacuten A|^~B (53)|^~2
Maacutes sobre LET (continuacioacuten)
Aquiacute tenemos dos ejemplos especiacuteficos de la utilizacioacuten de LET
CONVERSION CELSIUS A FAHRENHEIT
|10 LET F=18 C + 32~
INTERES ANUAL
|10 INTERES=CANTIDADPORCENTAJE~
Intente escribir un programa que nos permita introducir una temperatura
en grados Celsius la convierta a grados Fahrenheit y escriba el resultado (use
|INPUT~ |LET~ y |PRINT~ ) Recuerde la versioacuten BASIC de IBM permite la
omisioacuten de la palabra LET si asiacute se desea
Maacutes sobre LET (continuacioacuten)
Esta es una manera de escribir el programa anterior
|10 INPUT Introduzca la temperatura en grados CelsiusC~
|20 F=18C+32~
|30 PRINT F grados Fahrenheit sonCCelsius~
El comando NEW
El comando |NEW~ |BORRA el programa que estaacute en la memoria
Tambieacuten borra los valores que se hayan asignado a las variables en un programa
Siempre que vayamos a introducir un programa nuevo debemos teclear NEW primero
de no hacerlo asiacute las liacuteneas del programa antiguo se mezclaran con el que
estemos introduciendo
El formato del comando NEW es simplemente escribir NEW y pulsar RETURN
Este comando no borra el programa del disco solamente borra el
programa de la memoria del ordenador
Instrucciones DATA y READ
Ya hemos aprendido a utilizar la instruccioacuten INPUT
Otra forma de introducir datos en el ordenador es con |DATA y |READ~
La instruccioacuten DATA no se ejecuta La utiliza el ordenador cuando
ejecuta la instruccioacuten READ Despueacutes de la palabra DATA podemos poner nuacutemeros
o grupos de letras entre comillas separados por comas La liacutenea de datos asiacute
creada se lee de la siguiente manera La primera vez que el programa ejecuta
READ se carga el primer dato de la liacutenea DATA la segunda vez el segundo
etc
Introduzca los siguientes programas de ejemplo y haga un |RUN~
|10 DATA 711 10 DATA LUISPERICO~
|20 READ X 20 READ X$~
|30 PRINT X 30 PRINT X$~
|40 READ X 40 READ X$~
|50 PRINT X 50 PRINT X$~
Intrucciones DATA y READ (continuacioacuten)
Cuando el ordenador no tiene maacutes datos que leer se produce un error
el programa se para y aparece un mensaje de error
Comprueacutebelo con el siguiente programa
|10 DATA 10Veinte~
|20 READ X~
|30 PRINT 1X~
|40 READ X$~
|50 PRINT 2X$~
|60 READ X~
|70 PRINT 3X~
Como no hay un tercer dato que leer el ordenador se para y nos indica
que existe un error en la liacutenea numero 60 Ejecuacutetelo y vea lo que ocurre
Instruccioacuten GOTO
La instruccioacuten |GOTO~ es de las maacutes sencillas de comprender y una de
la maacutes importantes en BASIC Le dice al ordenador que vaya a un nuacutemero de
liacutenea diferente al siguiente que corresponda ejecutar
En el siguiente programa el ordenador estaraacute dando vueltas en las
liacuteneas 20 30 y 40 hasta que no tenga mas datos que leer dando un error
Las instrucciones IF THEN
Las instrucciones |IF THEN~ nos permiten elegir entre dos opciones |IF~ una
condicioacuten es verdadera el ordenador ejecuta lo que sigue a |THEN~ |IF~ |no
es verdadera el ordenador ejecuta la liacutenea siguiente Normalmente un GOTO
suele seguir a THEN
Mediante Operadores de relacion comparamos los dos valores de la
condicioacuten el las instrucciones IF THEN
Los Operadores de Relacioacuten maacutes comunes son los siguientes
|=~ igual a lt menor que |lt=~ menor o igual que
|ltgt~ distinto de |gt~ mayor que |gt=~ mayor o igual que
Las instrucciones IF THEN
Poniendo al final de la liacutenea DATA un nuacutemero de control y utilizando
las instrucciones IF THEN tras el READ podemos utilizar e l nuacutemero de control
para evitar el error |Out of DATA El siguiente programa calcula la media de
los nuacutemeros DATA especificados en DATA y utiliza |99~ como |fin de datos
Las instrucciones IF THEN
Aquiacute tenemos dos ejemplos Uno cuenta la cantidad de datos que hay en
una liacutenea DATA El otro escogeraacute los nuacutemeros que sean mayores de 50 en la
liacutenea DATA y los escribiraacute en la pantalla En ambos casos el numero |999~
hace que se pare el programa Escriacutebalos y haga un |RUN~
|10 DATA 10692451007412999 10 DATA 10692451007412999~
|20 READ X 20 READ X~
|30 IF X=999 THEN GOTO 60 20 IF X=999 THEN STOP
|40 LET K=K+1 40 IF Xlt=50 THEN GOTO 20~
|50 GOTO 20 50 PRINT X~
|60 PRINT K 60 GOTO 20~
Operadores Loacutegicos
Los |Operadores Loacutegicos ~ hacen mas uacutetiles las instrucciones IF THEN
Los operadores loacutegicos mas importantes en el BASIC de IBM son
|AND~ |OR~ -Y y O-
Los operadores |AND~ y |OR~ se utilizan cuando queremos implantar
maacutes de una condicioacuten en las instrucciones |IF THEN~ Vamos a ver un ejemplo
de su utilidad en un programa Primero escriba y haga un |RUN~ en el programa
siguiente A continuacioacuten cambie los datos en la liacutenea DATA y haga otro |RUN~
|10 DATA 52317342945999~
|20 READ X~
|30 IF X=999 THEN GOTO 70~
|40 IF Xlt20 OR Xgt30 THEN LET A=A+1
|50 IF Xgt=20 AND Xlt=30 THEN LET B=B+1
|60 GOTO 20~
|70 PRINT Anuacutemeros menores que 20 o mayores que 30 y~
|Bentre 20 y 30~
La instruccioacuten ELSE
Otra opcioacuten de las instrucciones IF T HEN es la sentencia ELSE
Sin ELSE el programa se saltaraacute las instrucciones IF y THEN si la condicioacuten
establecida tras el IF no se cumple Si la palabra ELSE sigue a IF THEN
entonces se ejecuta lo que sigue a ELSE en vez de continuar con la siguiente
liacutenea
Aquiacute tenemos el uacuteltimo programa modificado para ver la instruccioacuten ELSE
Introduacutezcalo y haga un |RUN~
|10 DATA 52317342945999~
|20 READ X~
|30 IF X=999 THEN GOTO 60~
|40 IF Xlt20 OR Xgt30 THEN LET A=A+1 ELSE LET B=B+1
|50 GOTO 20~
|60 PRINT Ardquonuacutemeros menores que 20 o mayores que 30 y~
|Bentre 20 y 30~
Liacuteneas con instrucciones muacuteltiples
Otra caracteriacutestica del BASIC es la utilizacioacuten de instrucciones
muacuteltiples en una liacutenea Podemos poner varias instrucciones en la misma liacuten ea
separaacutendolas con dos puntos (|~) Resulta muy uacutetil con IF THEN
Aquiacute tenemos un ejemplo que muestra este tipo de liacuteneas
Escriacutebalo y haga un RUN~ modifique los valores en la liacutenea DATA y de nuevo
haga un |RUN~
|10 DATA 52317342945999~
|20 READ X~
|30 IF X=999 THEN PRINT Amenores que 20Bentre 20 y 30 yC~
mayores que 30END
|40 IF Xlt20 THEN PRINT Xes menor que 20LET A=A+1GOTO 20~
|50 IF Xlt30 THEN PRINT Xestaacute entre 20 y 30LET B=B+1GOTO 20
|60 PRINT Xes mayor que 30LET C=C+1GOTO 20~
La instruccioacuten REM
La instruccioacuten |REM nos permite escribir notas aclaratorias dentro de
un programa Estos comentarios son ignorados por el ordenador cuando encuentra
la instruccioacuten REM pero le fac ilitan al programador informacioacuten del programa
Las anotaciones aparecen cuando LISTAMOS en programa Los comentarios pueden
comenzar bien por la palabra REM o por un apoacutestrofe (|~)
Aquiacute tenemos un ejemplo de la utilizacioacuten de REM en un programa
10 DATA 452497654715803877999
20 READ XIF X=999 THEN 60 |Si no hay mas datos va a 60~
30 IF Xgt=50 THEN LET G=G+1 |Cuenta los nuacutemeros mayores o iguales a 50~
40 IF Xlt50 THEN LET L=L+1 |Cuenta los nuacutemeros menores de 50~
50 GOTO 20 |Obtiene el siguiente numero~
60 PRINT De los numerosLson menores de 50 y
70 PRINT Gson mayores o iguales a 50
Introduzca este programa y haga un |RUN~
STOP y END
Existen cuatro maneras de parar la ejecucioacuten de un programa BASIC
1 El programa se para cuando no tiene mas liacuteneas que ejecutar
2 Con STOP Cuando el ordenador encuentra un STOP el programa se
para y aparece en la pantalla|Break in N~ (donde |N~ es la liacutenea
en la que esta situado el STOP)
3 END Es similar a STOP except o en que el ordenador no escribe el
mensaje de interrupcioacuten
4 Pulsando |Ctrl~ y |Break~ (Scroll lock) simultaacuteneamente paramos
la ejecucioacuten de un programa y aparece el mensaje |Break in N~
donde N es la liacutenea donde se ha interrumpido el programa
Si tecleamos |CONT~el programa |continuacutea ejecutaacutendose a partir
del punto donde FUE INTERRUMPIDO
CONT tambieacuten funciona con STOP pero no con END
STOP y END (continuacion)
Veamos como funcionan estas instrucciones |corriendo el siguiente
programa
|10 PRINT Escriba CONT y pulse return
|20 STOP
|30 PRINT BIEN Ha continuado el programa
|40 PRINT Pulse Ctrl y Break simultaneamenteGOTO 40~
El comando EDIT
Cuando cometemos (o descubrimos) un error en una liacutenea podemos
corregirlo simplemente escribiendo encima Sin embargo es mucho mas raacutepido
utilizar el EDITor Para esto sencillamente tecleamos |EDIT N~ (donde |N~ es
el nuacutemero de liacutenea que vamos a editar) y nos movemos con el cursor al punto
donde vamos a corregir para escribir encima insertar o borrar
Si lo que queremos es borrar una liacutenea del programa simplemente
escribimos su nuacutemero y pulsamos RETURN Si son varias las liacuteneas que vamos a
borrar escribimos |DELETE N1-N2 (donde |N1~ es la primera y |N2~ es la ultima
liacutenea a borrar) y pulsamos RETURN Esta instruccioacuten borraraacute todas las liacuteneas
entre |N1~ y |N2~ incluidas estas
El comando AUTO
Con el fin de no perder tiempo escribiendo el nuacutemero de liacutenea de cada
instruccioacuten en un programa podemos utilizar el comando |AUTO
Al poner la palabra AUTO el ordenador numerara las liacuteneas automaacuteticamente
Esta es la forma correcta de poner el comando AUTO
AUTO [|B~[|I~]]
|B~ es el primer nuacutemero de liacutenea que escribiraacute el ordena dor Si no se
pone ninguacuten valor para |B~ el ordenador automaacuteticamente pondraacute el numero 10
|I~ es el incremento Esto es el valor que se le suma a cada liacutenea
para obtener el nuacutemero de liacutenea siguiente Al omitirlo se incrementaraacuten las
liacuteneas de 10 en 10
AUTO (continuacioacuten)
Si queremos comenzar nuestro programa por una liacutenea que no sea la 10
por ejemplo la 200 escribiremos AUTO 200 y nuestro programa empezaraacute en la
liacutenea 200 y se incrementaraacute de 10 en 10 Si queremos comenzar por la liacutenea
100 y en saltos de 5 en 5 escribiremos AUTO 1005
Para terminar de introducir el programa debemos pulsar |Ctrl~ y |Break~ al
aparecer la liacutenea siguiente a la ultima
Introduzca el siguiente programa utilizando AUTO
|100 INPUT Dime el primer num ero A
|105 INPUT Dime el segundo numero B
|110 PRINT A+B=A+B
|115 PRINT A-B=A-B
|120 PRINT AB=AB
Los comandos TRON y TROFF
Cuando un programa no funciona correctamente la primera vez que lo
ejecutamos se dice que contiene errores (BUGS) La mayor parte del tiempo de un
programador se pierde depurando (debuging) un programa
Una instruccioacuten que nos facilita esta labor es el comando |TRON~
Al escribir TRON antes de ejecutar un programa aparece entre corchetes ( |[]~)
el nuacutemero de liacutenea que se estaacute ejecutando junto con los textos de la ejecucioacuten
propia del programa
Para el programa |10 DATA 172399~
|20 READ NUM
|30 IF NUMltgt99 THEN PRINT NUMGOTO 20~
|40 PRINT FIN
Utilizando TRON lo
veriacuteamos asiacute |[10][20][30] 17~
|[20][30] 23~
|[20][30][40]The END
Cuando hemos localizado el error y queremos ejecutar nuestro programa
sin que aparezcan los nuacutemeros de liacutenea tenemos que teclear |TROFF~
Esto devuelve al ordenador a su modo normal de ejecucioacuten
TRON y TROFF (continuacioacuten)
El siguiente programa debe contar y escribir los nuacutemeros de la liacutenea
DATA pero por alguna razoacuten se vuelve loco al escribir el primer valor
Utilizando TRON y TROFF localice y solucione el problema
|10 DATA 3467129653884999~
|20 READ NUMIF NUM=999 THEN GOTO 60~
|30 CON=CON+1
|40 PRINT El valor del numeroCONesNUM
|50 GOTO 30~
|60 PRINT HayCONnuacutemeros en la liacutenea DATA
Primero teclee el programa y haga un |RUN~ Tras unos se gundos pulse
|Ctrl~ y |Break~ para parar el programa Teclee TRON y RETURN para entrar en
el modo TRAZADO De nuevo |RUN~ y cuando localice el problema pare de nuevo
el programa corrija el programa y entre en el modo de EJECUCION con TROFF
para hacer un |RUN~ por tercera vez
TRON y TROFF (continuacioacuten)
Aquiacute tenemos de nuevo el uacuteltimo programa Afortunadamente encontroacute
el problema en la liacutenea |50~
10 DATA 3467129653884999
20 READ NUMIF NUM=999 THEN GOTO 60
30 CON=CON+1
40 PRINT El valor del numeroCONesNUM
|50 GOTO 30~
60 PRINT HayrdquoCONrdquonuacutemeros en la liacutenea DATA
En la liacutenea deberiacutea poner |50 GOTO 20~ Tal como estaba el programa
nunca leeriacutea un nuevo valor para la variable |NUM~ luego nunca leeriacutea |999~
para marcar el fin de programa
La funcioacuten RND
La funcioacuten RND devuelve un nuacutemero al azar entre el 0 y el 1
Si queremos un nuacutemero entre el 0 y el 100 simplemente multiplicamos RND por 100
ejemplo- LET |X=RND [El valor de |X~ cumple que |0~ lt |X~ lt| 1~]
LET |Y=RND100 [El valor de |Y~ cumple que |0 ~lt |Y~ lt| 100~]
Aquiacute tenemos un programa de ejemplo que nos pide el liacutemite superior
y nos devuelve una serie de nuacutemeros al azar entre 0 y el liacutemite
Tendraacute que utilizar |Ctrl~ y |Break~ para parar el programa
|10 INPUT Introduzca el liacutemite superiorMAXIMO
|20 PRINT RNDMAXIMO
|30 GOTO 20~
La funcioacuten INT
La funcioacuten INT suprime la parte decimal de un nuacutemero entre pareacutentesis
y devuelve su parte entera redondeaacutendola
ejemplo- |LET A=INT(92)~ [Aquiacute |A~ vale |9~]
|LET K=INT(76)~ [Aquiacute |K~ vale |8~]
Aquiacute tenemos un programa que utiliza RND e INT conjuntamente
De nuevo pulse |Ctrl~ y |Break~ para acabar el programa
|10 NUMERO=RND200-100 genera un nuacutemero entre -100 y 100
|20 PRINT Cuaacutel es la parte entera deNUMEROINPUT RESPUESTA~
|30 IF RESPUESTAltgtINT(NUMERO) THEN PRINT La respuesta esINT(NUMERO)~
|40 GOTO 10~
La funcioacuten ABS
La funcioacuten ABS devuelve el valor absoluto de una expresioacuten
El valor absoluto es sencillamente el valor positivo de un numero
example LET X=ABS(-5) [Aquiacute |X~ es igual a |5~]
|LET C=ABS(124) [Aquiacute |C~ es igual a |48~]
Aquiacute tenemos un programa que utiliza las funciones RND INT y ABS
De nuevo pulse |Ctrl~ y |Break~ cuando quiera finalizar
|10 NUMERO=INT(RND200-100) Genera un nuacutemero entero entre -100 and 100
|20 PRINT Cuaacutel es el valor ABSOLUTO deNUMEROINPUT RESPUESTA~
|30 IF RESPUESTAltgtABS(NUMERO) THEN PRINT La respuestaesABS(NUMERO)~
|40 GOTO 10~
Las funciones ABS e INT (continuacioacuten)
Aquiacute tenemos un programa muy interesante para los aficionados a las
Matemaacuteticas Calcula el Maacuteximo Comuacuten Denominador de dos nuacutemeros
|10 INPUT Dime el primer nuacutemeroNUM1
|20 INPUT Dime el segundoNUM2
|30 NUM1=ABS(NUM1)NUM2=ABS(NUM2)~
|40 LET R=NUM1-NUM2INT(NUM1NUM2)~
|50 IF R=0 THEN GOTO 70~
|60 NUM1=NUM2NUM2=RGOTO 40~
|70 PRINT El maacuteximo comuacuten denominador esNUM2
copy 1991 Javier de LucasLinares
![Page 8: Introducción al Lenguaje de programacion BASIC](https://reader031.vdocuments.co/reader031/viewer/2022020218/5571f1c849795947648bade1/html5/thumbnails/8.jpg)
coma sigue al texto entonces la interrogacioacuten aparece en la pantalla si en su
lugar ponemos una coma la interrogacioacuten no apareceraacute
INPUT (continuacioacuten)
Esto es lo que la instruccioacuten INPUT hace en un programa
|10 INPUT Dime un valor para X X~
|20 PRINT X es igual a X~
Teclee este programa ejecuacutetelo y vea lo que sucede Despueacutes de hacerlo
cambie el punto y coma por una coma en la liacutenea |10~ y haga un |RUN~ Para
ejecutar el programa de nuevo con un valor distinto en la variable ponga |RUN~
de nuevo e introduzca un valor diferente para X
Variables cadena (strings)
Las variables pueden representar tanto texto como nuacutemeros Una variable
que representa una serie de caracteres se llama variable cadena
El nombre de este tipo de variables se diferencian de las numeacutericas
porque al final de su nombre llevan el signo doacutelar
ejemplo |XYZ$~=Aula Informaacutetica IES Celestino Mutis
Podemos asignar una cadena de caracteres a una variable string de la
misma manera que asignaacutebamos un valor a una variable numeacuterica
Ejecutemos el siguiente programa
|10 INPUT Dime tu nombre N$~
|20 PRINT Me alegro de conocerte N$ soy el ordenador personal ATLAS~
Maacutes sobre LET
Ahora que podemos introducir y sacar datos del ordenador hagamos algo
interesante Los caacutelculos matemaacuteticos se hacen en BASIC con la instruccioacuten
LET que aprendimos en la primera leccioacuten La instruccioacuten LET asigna a una
variable una expresioacuten numeacuterica A continuacioacuten vamos a conocer cuaacuteles son los
operadores aritmeacuteticos y como se utilizan en BASIC
SIMBOLO DESCRIPCION EJEMPLOS
|+~ suma A|+~B 6|+~12
|-~ resta A|-~B 23|-~7
|~ multiplicacioacuten A|~B 3|~(2 -1)
|~ divisioacuten A|~B (8+2)|~4
|^~ exponenciacioacuten A|^~B (53)|^~2
Maacutes sobre LET (continuacioacuten)
Aquiacute tenemos dos ejemplos especiacuteficos de la utilizacioacuten de LET
CONVERSION CELSIUS A FAHRENHEIT
|10 LET F=18 C + 32~
INTERES ANUAL
|10 INTERES=CANTIDADPORCENTAJE~
Intente escribir un programa que nos permita introducir una temperatura
en grados Celsius la convierta a grados Fahrenheit y escriba el resultado (use
|INPUT~ |LET~ y |PRINT~ ) Recuerde la versioacuten BASIC de IBM permite la
omisioacuten de la palabra LET si asiacute se desea
Maacutes sobre LET (continuacioacuten)
Esta es una manera de escribir el programa anterior
|10 INPUT Introduzca la temperatura en grados CelsiusC~
|20 F=18C+32~
|30 PRINT F grados Fahrenheit sonCCelsius~
El comando NEW
El comando |NEW~ |BORRA el programa que estaacute en la memoria
Tambieacuten borra los valores que se hayan asignado a las variables en un programa
Siempre que vayamos a introducir un programa nuevo debemos teclear NEW primero
de no hacerlo asiacute las liacuteneas del programa antiguo se mezclaran con el que
estemos introduciendo
El formato del comando NEW es simplemente escribir NEW y pulsar RETURN
Este comando no borra el programa del disco solamente borra el
programa de la memoria del ordenador
Instrucciones DATA y READ
Ya hemos aprendido a utilizar la instruccioacuten INPUT
Otra forma de introducir datos en el ordenador es con |DATA y |READ~
La instruccioacuten DATA no se ejecuta La utiliza el ordenador cuando
ejecuta la instruccioacuten READ Despueacutes de la palabra DATA podemos poner nuacutemeros
o grupos de letras entre comillas separados por comas La liacutenea de datos asiacute
creada se lee de la siguiente manera La primera vez que el programa ejecuta
READ se carga el primer dato de la liacutenea DATA la segunda vez el segundo
etc
Introduzca los siguientes programas de ejemplo y haga un |RUN~
|10 DATA 711 10 DATA LUISPERICO~
|20 READ X 20 READ X$~
|30 PRINT X 30 PRINT X$~
|40 READ X 40 READ X$~
|50 PRINT X 50 PRINT X$~
Intrucciones DATA y READ (continuacioacuten)
Cuando el ordenador no tiene maacutes datos que leer se produce un error
el programa se para y aparece un mensaje de error
Comprueacutebelo con el siguiente programa
|10 DATA 10Veinte~
|20 READ X~
|30 PRINT 1X~
|40 READ X$~
|50 PRINT 2X$~
|60 READ X~
|70 PRINT 3X~
Como no hay un tercer dato que leer el ordenador se para y nos indica
que existe un error en la liacutenea numero 60 Ejecuacutetelo y vea lo que ocurre
Instruccioacuten GOTO
La instruccioacuten |GOTO~ es de las maacutes sencillas de comprender y una de
la maacutes importantes en BASIC Le dice al ordenador que vaya a un nuacutemero de
liacutenea diferente al siguiente que corresponda ejecutar
En el siguiente programa el ordenador estaraacute dando vueltas en las
liacuteneas 20 30 y 40 hasta que no tenga mas datos que leer dando un error
Las instrucciones IF THEN
Las instrucciones |IF THEN~ nos permiten elegir entre dos opciones |IF~ una
condicioacuten es verdadera el ordenador ejecuta lo que sigue a |THEN~ |IF~ |no
es verdadera el ordenador ejecuta la liacutenea siguiente Normalmente un GOTO
suele seguir a THEN
Mediante Operadores de relacion comparamos los dos valores de la
condicioacuten el las instrucciones IF THEN
Los Operadores de Relacioacuten maacutes comunes son los siguientes
|=~ igual a lt menor que |lt=~ menor o igual que
|ltgt~ distinto de |gt~ mayor que |gt=~ mayor o igual que
Las instrucciones IF THEN
Poniendo al final de la liacutenea DATA un nuacutemero de control y utilizando
las instrucciones IF THEN tras el READ podemos utilizar e l nuacutemero de control
para evitar el error |Out of DATA El siguiente programa calcula la media de
los nuacutemeros DATA especificados en DATA y utiliza |99~ como |fin de datos
Las instrucciones IF THEN
Aquiacute tenemos dos ejemplos Uno cuenta la cantidad de datos que hay en
una liacutenea DATA El otro escogeraacute los nuacutemeros que sean mayores de 50 en la
liacutenea DATA y los escribiraacute en la pantalla En ambos casos el numero |999~
hace que se pare el programa Escriacutebalos y haga un |RUN~
|10 DATA 10692451007412999 10 DATA 10692451007412999~
|20 READ X 20 READ X~
|30 IF X=999 THEN GOTO 60 20 IF X=999 THEN STOP
|40 LET K=K+1 40 IF Xlt=50 THEN GOTO 20~
|50 GOTO 20 50 PRINT X~
|60 PRINT K 60 GOTO 20~
Operadores Loacutegicos
Los |Operadores Loacutegicos ~ hacen mas uacutetiles las instrucciones IF THEN
Los operadores loacutegicos mas importantes en el BASIC de IBM son
|AND~ |OR~ -Y y O-
Los operadores |AND~ y |OR~ se utilizan cuando queremos implantar
maacutes de una condicioacuten en las instrucciones |IF THEN~ Vamos a ver un ejemplo
de su utilidad en un programa Primero escriba y haga un |RUN~ en el programa
siguiente A continuacioacuten cambie los datos en la liacutenea DATA y haga otro |RUN~
|10 DATA 52317342945999~
|20 READ X~
|30 IF X=999 THEN GOTO 70~
|40 IF Xlt20 OR Xgt30 THEN LET A=A+1
|50 IF Xgt=20 AND Xlt=30 THEN LET B=B+1
|60 GOTO 20~
|70 PRINT Anuacutemeros menores que 20 o mayores que 30 y~
|Bentre 20 y 30~
La instruccioacuten ELSE
Otra opcioacuten de las instrucciones IF T HEN es la sentencia ELSE
Sin ELSE el programa se saltaraacute las instrucciones IF y THEN si la condicioacuten
establecida tras el IF no se cumple Si la palabra ELSE sigue a IF THEN
entonces se ejecuta lo que sigue a ELSE en vez de continuar con la siguiente
liacutenea
Aquiacute tenemos el uacuteltimo programa modificado para ver la instruccioacuten ELSE
Introduacutezcalo y haga un |RUN~
|10 DATA 52317342945999~
|20 READ X~
|30 IF X=999 THEN GOTO 60~
|40 IF Xlt20 OR Xgt30 THEN LET A=A+1 ELSE LET B=B+1
|50 GOTO 20~
|60 PRINT Ardquonuacutemeros menores que 20 o mayores que 30 y~
|Bentre 20 y 30~
Liacuteneas con instrucciones muacuteltiples
Otra caracteriacutestica del BASIC es la utilizacioacuten de instrucciones
muacuteltiples en una liacutenea Podemos poner varias instrucciones en la misma liacuten ea
separaacutendolas con dos puntos (|~) Resulta muy uacutetil con IF THEN
Aquiacute tenemos un ejemplo que muestra este tipo de liacuteneas
Escriacutebalo y haga un RUN~ modifique los valores en la liacutenea DATA y de nuevo
haga un |RUN~
|10 DATA 52317342945999~
|20 READ X~
|30 IF X=999 THEN PRINT Amenores que 20Bentre 20 y 30 yC~
mayores que 30END
|40 IF Xlt20 THEN PRINT Xes menor que 20LET A=A+1GOTO 20~
|50 IF Xlt30 THEN PRINT Xestaacute entre 20 y 30LET B=B+1GOTO 20
|60 PRINT Xes mayor que 30LET C=C+1GOTO 20~
La instruccioacuten REM
La instruccioacuten |REM nos permite escribir notas aclaratorias dentro de
un programa Estos comentarios son ignorados por el ordenador cuando encuentra
la instruccioacuten REM pero le fac ilitan al programador informacioacuten del programa
Las anotaciones aparecen cuando LISTAMOS en programa Los comentarios pueden
comenzar bien por la palabra REM o por un apoacutestrofe (|~)
Aquiacute tenemos un ejemplo de la utilizacioacuten de REM en un programa
10 DATA 452497654715803877999
20 READ XIF X=999 THEN 60 |Si no hay mas datos va a 60~
30 IF Xgt=50 THEN LET G=G+1 |Cuenta los nuacutemeros mayores o iguales a 50~
40 IF Xlt50 THEN LET L=L+1 |Cuenta los nuacutemeros menores de 50~
50 GOTO 20 |Obtiene el siguiente numero~
60 PRINT De los numerosLson menores de 50 y
70 PRINT Gson mayores o iguales a 50
Introduzca este programa y haga un |RUN~
STOP y END
Existen cuatro maneras de parar la ejecucioacuten de un programa BASIC
1 El programa se para cuando no tiene mas liacuteneas que ejecutar
2 Con STOP Cuando el ordenador encuentra un STOP el programa se
para y aparece en la pantalla|Break in N~ (donde |N~ es la liacutenea
en la que esta situado el STOP)
3 END Es similar a STOP except o en que el ordenador no escribe el
mensaje de interrupcioacuten
4 Pulsando |Ctrl~ y |Break~ (Scroll lock) simultaacuteneamente paramos
la ejecucioacuten de un programa y aparece el mensaje |Break in N~
donde N es la liacutenea donde se ha interrumpido el programa
Si tecleamos |CONT~el programa |continuacutea ejecutaacutendose a partir
del punto donde FUE INTERRUMPIDO
CONT tambieacuten funciona con STOP pero no con END
STOP y END (continuacion)
Veamos como funcionan estas instrucciones |corriendo el siguiente
programa
|10 PRINT Escriba CONT y pulse return
|20 STOP
|30 PRINT BIEN Ha continuado el programa
|40 PRINT Pulse Ctrl y Break simultaneamenteGOTO 40~
El comando EDIT
Cuando cometemos (o descubrimos) un error en una liacutenea podemos
corregirlo simplemente escribiendo encima Sin embargo es mucho mas raacutepido
utilizar el EDITor Para esto sencillamente tecleamos |EDIT N~ (donde |N~ es
el nuacutemero de liacutenea que vamos a editar) y nos movemos con el cursor al punto
donde vamos a corregir para escribir encima insertar o borrar
Si lo que queremos es borrar una liacutenea del programa simplemente
escribimos su nuacutemero y pulsamos RETURN Si son varias las liacuteneas que vamos a
borrar escribimos |DELETE N1-N2 (donde |N1~ es la primera y |N2~ es la ultima
liacutenea a borrar) y pulsamos RETURN Esta instruccioacuten borraraacute todas las liacuteneas
entre |N1~ y |N2~ incluidas estas
El comando AUTO
Con el fin de no perder tiempo escribiendo el nuacutemero de liacutenea de cada
instruccioacuten en un programa podemos utilizar el comando |AUTO
Al poner la palabra AUTO el ordenador numerara las liacuteneas automaacuteticamente
Esta es la forma correcta de poner el comando AUTO
AUTO [|B~[|I~]]
|B~ es el primer nuacutemero de liacutenea que escribiraacute el ordena dor Si no se
pone ninguacuten valor para |B~ el ordenador automaacuteticamente pondraacute el numero 10
|I~ es el incremento Esto es el valor que se le suma a cada liacutenea
para obtener el nuacutemero de liacutenea siguiente Al omitirlo se incrementaraacuten las
liacuteneas de 10 en 10
AUTO (continuacioacuten)
Si queremos comenzar nuestro programa por una liacutenea que no sea la 10
por ejemplo la 200 escribiremos AUTO 200 y nuestro programa empezaraacute en la
liacutenea 200 y se incrementaraacute de 10 en 10 Si queremos comenzar por la liacutenea
100 y en saltos de 5 en 5 escribiremos AUTO 1005
Para terminar de introducir el programa debemos pulsar |Ctrl~ y |Break~ al
aparecer la liacutenea siguiente a la ultima
Introduzca el siguiente programa utilizando AUTO
|100 INPUT Dime el primer num ero A
|105 INPUT Dime el segundo numero B
|110 PRINT A+B=A+B
|115 PRINT A-B=A-B
|120 PRINT AB=AB
Los comandos TRON y TROFF
Cuando un programa no funciona correctamente la primera vez que lo
ejecutamos se dice que contiene errores (BUGS) La mayor parte del tiempo de un
programador se pierde depurando (debuging) un programa
Una instruccioacuten que nos facilita esta labor es el comando |TRON~
Al escribir TRON antes de ejecutar un programa aparece entre corchetes ( |[]~)
el nuacutemero de liacutenea que se estaacute ejecutando junto con los textos de la ejecucioacuten
propia del programa
Para el programa |10 DATA 172399~
|20 READ NUM
|30 IF NUMltgt99 THEN PRINT NUMGOTO 20~
|40 PRINT FIN
Utilizando TRON lo
veriacuteamos asiacute |[10][20][30] 17~
|[20][30] 23~
|[20][30][40]The END
Cuando hemos localizado el error y queremos ejecutar nuestro programa
sin que aparezcan los nuacutemeros de liacutenea tenemos que teclear |TROFF~
Esto devuelve al ordenador a su modo normal de ejecucioacuten
TRON y TROFF (continuacioacuten)
El siguiente programa debe contar y escribir los nuacutemeros de la liacutenea
DATA pero por alguna razoacuten se vuelve loco al escribir el primer valor
Utilizando TRON y TROFF localice y solucione el problema
|10 DATA 3467129653884999~
|20 READ NUMIF NUM=999 THEN GOTO 60~
|30 CON=CON+1
|40 PRINT El valor del numeroCONesNUM
|50 GOTO 30~
|60 PRINT HayCONnuacutemeros en la liacutenea DATA
Primero teclee el programa y haga un |RUN~ Tras unos se gundos pulse
|Ctrl~ y |Break~ para parar el programa Teclee TRON y RETURN para entrar en
el modo TRAZADO De nuevo |RUN~ y cuando localice el problema pare de nuevo
el programa corrija el programa y entre en el modo de EJECUCION con TROFF
para hacer un |RUN~ por tercera vez
TRON y TROFF (continuacioacuten)
Aquiacute tenemos de nuevo el uacuteltimo programa Afortunadamente encontroacute
el problema en la liacutenea |50~
10 DATA 3467129653884999
20 READ NUMIF NUM=999 THEN GOTO 60
30 CON=CON+1
40 PRINT El valor del numeroCONesNUM
|50 GOTO 30~
60 PRINT HayrdquoCONrdquonuacutemeros en la liacutenea DATA
En la liacutenea deberiacutea poner |50 GOTO 20~ Tal como estaba el programa
nunca leeriacutea un nuevo valor para la variable |NUM~ luego nunca leeriacutea |999~
para marcar el fin de programa
La funcioacuten RND
La funcioacuten RND devuelve un nuacutemero al azar entre el 0 y el 1
Si queremos un nuacutemero entre el 0 y el 100 simplemente multiplicamos RND por 100
ejemplo- LET |X=RND [El valor de |X~ cumple que |0~ lt |X~ lt| 1~]
LET |Y=RND100 [El valor de |Y~ cumple que |0 ~lt |Y~ lt| 100~]
Aquiacute tenemos un programa de ejemplo que nos pide el liacutemite superior
y nos devuelve una serie de nuacutemeros al azar entre 0 y el liacutemite
Tendraacute que utilizar |Ctrl~ y |Break~ para parar el programa
|10 INPUT Introduzca el liacutemite superiorMAXIMO
|20 PRINT RNDMAXIMO
|30 GOTO 20~
La funcioacuten INT
La funcioacuten INT suprime la parte decimal de un nuacutemero entre pareacutentesis
y devuelve su parte entera redondeaacutendola
ejemplo- |LET A=INT(92)~ [Aquiacute |A~ vale |9~]
|LET K=INT(76)~ [Aquiacute |K~ vale |8~]
Aquiacute tenemos un programa que utiliza RND e INT conjuntamente
De nuevo pulse |Ctrl~ y |Break~ para acabar el programa
|10 NUMERO=RND200-100 genera un nuacutemero entre -100 y 100
|20 PRINT Cuaacutel es la parte entera deNUMEROINPUT RESPUESTA~
|30 IF RESPUESTAltgtINT(NUMERO) THEN PRINT La respuesta esINT(NUMERO)~
|40 GOTO 10~
La funcioacuten ABS
La funcioacuten ABS devuelve el valor absoluto de una expresioacuten
El valor absoluto es sencillamente el valor positivo de un numero
example LET X=ABS(-5) [Aquiacute |X~ es igual a |5~]
|LET C=ABS(124) [Aquiacute |C~ es igual a |48~]
Aquiacute tenemos un programa que utiliza las funciones RND INT y ABS
De nuevo pulse |Ctrl~ y |Break~ cuando quiera finalizar
|10 NUMERO=INT(RND200-100) Genera un nuacutemero entero entre -100 and 100
|20 PRINT Cuaacutel es el valor ABSOLUTO deNUMEROINPUT RESPUESTA~
|30 IF RESPUESTAltgtABS(NUMERO) THEN PRINT La respuestaesABS(NUMERO)~
|40 GOTO 10~
Las funciones ABS e INT (continuacioacuten)
Aquiacute tenemos un programa muy interesante para los aficionados a las
Matemaacuteticas Calcula el Maacuteximo Comuacuten Denominador de dos nuacutemeros
|10 INPUT Dime el primer nuacutemeroNUM1
|20 INPUT Dime el segundoNUM2
|30 NUM1=ABS(NUM1)NUM2=ABS(NUM2)~
|40 LET R=NUM1-NUM2INT(NUM1NUM2)~
|50 IF R=0 THEN GOTO 70~
|60 NUM1=NUM2NUM2=RGOTO 40~
|70 PRINT El maacuteximo comuacuten denominador esNUM2
copy 1991 Javier de LucasLinares
![Page 9: Introducción al Lenguaje de programacion BASIC](https://reader031.vdocuments.co/reader031/viewer/2022020218/5571f1c849795947648bade1/html5/thumbnails/9.jpg)
|+~ suma A|+~B 6|+~12
|-~ resta A|-~B 23|-~7
|~ multiplicacioacuten A|~B 3|~(2 -1)
|~ divisioacuten A|~B (8+2)|~4
|^~ exponenciacioacuten A|^~B (53)|^~2
Maacutes sobre LET (continuacioacuten)
Aquiacute tenemos dos ejemplos especiacuteficos de la utilizacioacuten de LET
CONVERSION CELSIUS A FAHRENHEIT
|10 LET F=18 C + 32~
INTERES ANUAL
|10 INTERES=CANTIDADPORCENTAJE~
Intente escribir un programa que nos permita introducir una temperatura
en grados Celsius la convierta a grados Fahrenheit y escriba el resultado (use
|INPUT~ |LET~ y |PRINT~ ) Recuerde la versioacuten BASIC de IBM permite la
omisioacuten de la palabra LET si asiacute se desea
Maacutes sobre LET (continuacioacuten)
Esta es una manera de escribir el programa anterior
|10 INPUT Introduzca la temperatura en grados CelsiusC~
|20 F=18C+32~
|30 PRINT F grados Fahrenheit sonCCelsius~
El comando NEW
El comando |NEW~ |BORRA el programa que estaacute en la memoria
Tambieacuten borra los valores que se hayan asignado a las variables en un programa
Siempre que vayamos a introducir un programa nuevo debemos teclear NEW primero
de no hacerlo asiacute las liacuteneas del programa antiguo se mezclaran con el que
estemos introduciendo
El formato del comando NEW es simplemente escribir NEW y pulsar RETURN
Este comando no borra el programa del disco solamente borra el
programa de la memoria del ordenador
Instrucciones DATA y READ
Ya hemos aprendido a utilizar la instruccioacuten INPUT
Otra forma de introducir datos en el ordenador es con |DATA y |READ~
La instruccioacuten DATA no se ejecuta La utiliza el ordenador cuando
ejecuta la instruccioacuten READ Despueacutes de la palabra DATA podemos poner nuacutemeros
o grupos de letras entre comillas separados por comas La liacutenea de datos asiacute
creada se lee de la siguiente manera La primera vez que el programa ejecuta
READ se carga el primer dato de la liacutenea DATA la segunda vez el segundo
etc
Introduzca los siguientes programas de ejemplo y haga un |RUN~
|10 DATA 711 10 DATA LUISPERICO~
|20 READ X 20 READ X$~
|30 PRINT X 30 PRINT X$~
|40 READ X 40 READ X$~
|50 PRINT X 50 PRINT X$~
Intrucciones DATA y READ (continuacioacuten)
Cuando el ordenador no tiene maacutes datos que leer se produce un error
el programa se para y aparece un mensaje de error
Comprueacutebelo con el siguiente programa
|10 DATA 10Veinte~
|20 READ X~
|30 PRINT 1X~
|40 READ X$~
|50 PRINT 2X$~
|60 READ X~
|70 PRINT 3X~
Como no hay un tercer dato que leer el ordenador se para y nos indica
que existe un error en la liacutenea numero 60 Ejecuacutetelo y vea lo que ocurre
Instruccioacuten GOTO
La instruccioacuten |GOTO~ es de las maacutes sencillas de comprender y una de
la maacutes importantes en BASIC Le dice al ordenador que vaya a un nuacutemero de
liacutenea diferente al siguiente que corresponda ejecutar
En el siguiente programa el ordenador estaraacute dando vueltas en las
liacuteneas 20 30 y 40 hasta que no tenga mas datos que leer dando un error
Las instrucciones IF THEN
Las instrucciones |IF THEN~ nos permiten elegir entre dos opciones |IF~ una
condicioacuten es verdadera el ordenador ejecuta lo que sigue a |THEN~ |IF~ |no
es verdadera el ordenador ejecuta la liacutenea siguiente Normalmente un GOTO
suele seguir a THEN
Mediante Operadores de relacion comparamos los dos valores de la
condicioacuten el las instrucciones IF THEN
Los Operadores de Relacioacuten maacutes comunes son los siguientes
|=~ igual a lt menor que |lt=~ menor o igual que
|ltgt~ distinto de |gt~ mayor que |gt=~ mayor o igual que
Las instrucciones IF THEN
Poniendo al final de la liacutenea DATA un nuacutemero de control y utilizando
las instrucciones IF THEN tras el READ podemos utilizar e l nuacutemero de control
para evitar el error |Out of DATA El siguiente programa calcula la media de
los nuacutemeros DATA especificados en DATA y utiliza |99~ como |fin de datos
Las instrucciones IF THEN
Aquiacute tenemos dos ejemplos Uno cuenta la cantidad de datos que hay en
una liacutenea DATA El otro escogeraacute los nuacutemeros que sean mayores de 50 en la
liacutenea DATA y los escribiraacute en la pantalla En ambos casos el numero |999~
hace que se pare el programa Escriacutebalos y haga un |RUN~
|10 DATA 10692451007412999 10 DATA 10692451007412999~
|20 READ X 20 READ X~
|30 IF X=999 THEN GOTO 60 20 IF X=999 THEN STOP
|40 LET K=K+1 40 IF Xlt=50 THEN GOTO 20~
|50 GOTO 20 50 PRINT X~
|60 PRINT K 60 GOTO 20~
Operadores Loacutegicos
Los |Operadores Loacutegicos ~ hacen mas uacutetiles las instrucciones IF THEN
Los operadores loacutegicos mas importantes en el BASIC de IBM son
|AND~ |OR~ -Y y O-
Los operadores |AND~ y |OR~ se utilizan cuando queremos implantar
maacutes de una condicioacuten en las instrucciones |IF THEN~ Vamos a ver un ejemplo
de su utilidad en un programa Primero escriba y haga un |RUN~ en el programa
siguiente A continuacioacuten cambie los datos en la liacutenea DATA y haga otro |RUN~
|10 DATA 52317342945999~
|20 READ X~
|30 IF X=999 THEN GOTO 70~
|40 IF Xlt20 OR Xgt30 THEN LET A=A+1
|50 IF Xgt=20 AND Xlt=30 THEN LET B=B+1
|60 GOTO 20~
|70 PRINT Anuacutemeros menores que 20 o mayores que 30 y~
|Bentre 20 y 30~
La instruccioacuten ELSE
Otra opcioacuten de las instrucciones IF T HEN es la sentencia ELSE
Sin ELSE el programa se saltaraacute las instrucciones IF y THEN si la condicioacuten
establecida tras el IF no se cumple Si la palabra ELSE sigue a IF THEN
entonces se ejecuta lo que sigue a ELSE en vez de continuar con la siguiente
liacutenea
Aquiacute tenemos el uacuteltimo programa modificado para ver la instruccioacuten ELSE
Introduacutezcalo y haga un |RUN~
|10 DATA 52317342945999~
|20 READ X~
|30 IF X=999 THEN GOTO 60~
|40 IF Xlt20 OR Xgt30 THEN LET A=A+1 ELSE LET B=B+1
|50 GOTO 20~
|60 PRINT Ardquonuacutemeros menores que 20 o mayores que 30 y~
|Bentre 20 y 30~
Liacuteneas con instrucciones muacuteltiples
Otra caracteriacutestica del BASIC es la utilizacioacuten de instrucciones
muacuteltiples en una liacutenea Podemos poner varias instrucciones en la misma liacuten ea
separaacutendolas con dos puntos (|~) Resulta muy uacutetil con IF THEN
Aquiacute tenemos un ejemplo que muestra este tipo de liacuteneas
Escriacutebalo y haga un RUN~ modifique los valores en la liacutenea DATA y de nuevo
haga un |RUN~
|10 DATA 52317342945999~
|20 READ X~
|30 IF X=999 THEN PRINT Amenores que 20Bentre 20 y 30 yC~
mayores que 30END
|40 IF Xlt20 THEN PRINT Xes menor que 20LET A=A+1GOTO 20~
|50 IF Xlt30 THEN PRINT Xestaacute entre 20 y 30LET B=B+1GOTO 20
|60 PRINT Xes mayor que 30LET C=C+1GOTO 20~
La instruccioacuten REM
La instruccioacuten |REM nos permite escribir notas aclaratorias dentro de
un programa Estos comentarios son ignorados por el ordenador cuando encuentra
la instruccioacuten REM pero le fac ilitan al programador informacioacuten del programa
Las anotaciones aparecen cuando LISTAMOS en programa Los comentarios pueden
comenzar bien por la palabra REM o por un apoacutestrofe (|~)
Aquiacute tenemos un ejemplo de la utilizacioacuten de REM en un programa
10 DATA 452497654715803877999
20 READ XIF X=999 THEN 60 |Si no hay mas datos va a 60~
30 IF Xgt=50 THEN LET G=G+1 |Cuenta los nuacutemeros mayores o iguales a 50~
40 IF Xlt50 THEN LET L=L+1 |Cuenta los nuacutemeros menores de 50~
50 GOTO 20 |Obtiene el siguiente numero~
60 PRINT De los numerosLson menores de 50 y
70 PRINT Gson mayores o iguales a 50
Introduzca este programa y haga un |RUN~
STOP y END
Existen cuatro maneras de parar la ejecucioacuten de un programa BASIC
1 El programa se para cuando no tiene mas liacuteneas que ejecutar
2 Con STOP Cuando el ordenador encuentra un STOP el programa se
para y aparece en la pantalla|Break in N~ (donde |N~ es la liacutenea
en la que esta situado el STOP)
3 END Es similar a STOP except o en que el ordenador no escribe el
mensaje de interrupcioacuten
4 Pulsando |Ctrl~ y |Break~ (Scroll lock) simultaacuteneamente paramos
la ejecucioacuten de un programa y aparece el mensaje |Break in N~
donde N es la liacutenea donde se ha interrumpido el programa
Si tecleamos |CONT~el programa |continuacutea ejecutaacutendose a partir
del punto donde FUE INTERRUMPIDO
CONT tambieacuten funciona con STOP pero no con END
STOP y END (continuacion)
Veamos como funcionan estas instrucciones |corriendo el siguiente
programa
|10 PRINT Escriba CONT y pulse return
|20 STOP
|30 PRINT BIEN Ha continuado el programa
|40 PRINT Pulse Ctrl y Break simultaneamenteGOTO 40~
El comando EDIT
Cuando cometemos (o descubrimos) un error en una liacutenea podemos
corregirlo simplemente escribiendo encima Sin embargo es mucho mas raacutepido
utilizar el EDITor Para esto sencillamente tecleamos |EDIT N~ (donde |N~ es
el nuacutemero de liacutenea que vamos a editar) y nos movemos con el cursor al punto
donde vamos a corregir para escribir encima insertar o borrar
Si lo que queremos es borrar una liacutenea del programa simplemente
escribimos su nuacutemero y pulsamos RETURN Si son varias las liacuteneas que vamos a
borrar escribimos |DELETE N1-N2 (donde |N1~ es la primera y |N2~ es la ultima
liacutenea a borrar) y pulsamos RETURN Esta instruccioacuten borraraacute todas las liacuteneas
entre |N1~ y |N2~ incluidas estas
El comando AUTO
Con el fin de no perder tiempo escribiendo el nuacutemero de liacutenea de cada
instruccioacuten en un programa podemos utilizar el comando |AUTO
Al poner la palabra AUTO el ordenador numerara las liacuteneas automaacuteticamente
Esta es la forma correcta de poner el comando AUTO
AUTO [|B~[|I~]]
|B~ es el primer nuacutemero de liacutenea que escribiraacute el ordena dor Si no se
pone ninguacuten valor para |B~ el ordenador automaacuteticamente pondraacute el numero 10
|I~ es el incremento Esto es el valor que se le suma a cada liacutenea
para obtener el nuacutemero de liacutenea siguiente Al omitirlo se incrementaraacuten las
liacuteneas de 10 en 10
AUTO (continuacioacuten)
Si queremos comenzar nuestro programa por una liacutenea que no sea la 10
por ejemplo la 200 escribiremos AUTO 200 y nuestro programa empezaraacute en la
liacutenea 200 y se incrementaraacute de 10 en 10 Si queremos comenzar por la liacutenea
100 y en saltos de 5 en 5 escribiremos AUTO 1005
Para terminar de introducir el programa debemos pulsar |Ctrl~ y |Break~ al
aparecer la liacutenea siguiente a la ultima
Introduzca el siguiente programa utilizando AUTO
|100 INPUT Dime el primer num ero A
|105 INPUT Dime el segundo numero B
|110 PRINT A+B=A+B
|115 PRINT A-B=A-B
|120 PRINT AB=AB
Los comandos TRON y TROFF
Cuando un programa no funciona correctamente la primera vez que lo
ejecutamos se dice que contiene errores (BUGS) La mayor parte del tiempo de un
programador se pierde depurando (debuging) un programa
Una instruccioacuten que nos facilita esta labor es el comando |TRON~
Al escribir TRON antes de ejecutar un programa aparece entre corchetes ( |[]~)
el nuacutemero de liacutenea que se estaacute ejecutando junto con los textos de la ejecucioacuten
propia del programa
Para el programa |10 DATA 172399~
|20 READ NUM
|30 IF NUMltgt99 THEN PRINT NUMGOTO 20~
|40 PRINT FIN
Utilizando TRON lo
veriacuteamos asiacute |[10][20][30] 17~
|[20][30] 23~
|[20][30][40]The END
Cuando hemos localizado el error y queremos ejecutar nuestro programa
sin que aparezcan los nuacutemeros de liacutenea tenemos que teclear |TROFF~
Esto devuelve al ordenador a su modo normal de ejecucioacuten
TRON y TROFF (continuacioacuten)
El siguiente programa debe contar y escribir los nuacutemeros de la liacutenea
DATA pero por alguna razoacuten se vuelve loco al escribir el primer valor
Utilizando TRON y TROFF localice y solucione el problema
|10 DATA 3467129653884999~
|20 READ NUMIF NUM=999 THEN GOTO 60~
|30 CON=CON+1
|40 PRINT El valor del numeroCONesNUM
|50 GOTO 30~
|60 PRINT HayCONnuacutemeros en la liacutenea DATA
Primero teclee el programa y haga un |RUN~ Tras unos se gundos pulse
|Ctrl~ y |Break~ para parar el programa Teclee TRON y RETURN para entrar en
el modo TRAZADO De nuevo |RUN~ y cuando localice el problema pare de nuevo
el programa corrija el programa y entre en el modo de EJECUCION con TROFF
para hacer un |RUN~ por tercera vez
TRON y TROFF (continuacioacuten)
Aquiacute tenemos de nuevo el uacuteltimo programa Afortunadamente encontroacute
el problema en la liacutenea |50~
10 DATA 3467129653884999
20 READ NUMIF NUM=999 THEN GOTO 60
30 CON=CON+1
40 PRINT El valor del numeroCONesNUM
|50 GOTO 30~
60 PRINT HayrdquoCONrdquonuacutemeros en la liacutenea DATA
En la liacutenea deberiacutea poner |50 GOTO 20~ Tal como estaba el programa
nunca leeriacutea un nuevo valor para la variable |NUM~ luego nunca leeriacutea |999~
para marcar el fin de programa
La funcioacuten RND
La funcioacuten RND devuelve un nuacutemero al azar entre el 0 y el 1
Si queremos un nuacutemero entre el 0 y el 100 simplemente multiplicamos RND por 100
ejemplo- LET |X=RND [El valor de |X~ cumple que |0~ lt |X~ lt| 1~]
LET |Y=RND100 [El valor de |Y~ cumple que |0 ~lt |Y~ lt| 100~]
Aquiacute tenemos un programa de ejemplo que nos pide el liacutemite superior
y nos devuelve una serie de nuacutemeros al azar entre 0 y el liacutemite
Tendraacute que utilizar |Ctrl~ y |Break~ para parar el programa
|10 INPUT Introduzca el liacutemite superiorMAXIMO
|20 PRINT RNDMAXIMO
|30 GOTO 20~
La funcioacuten INT
La funcioacuten INT suprime la parte decimal de un nuacutemero entre pareacutentesis
y devuelve su parte entera redondeaacutendola
ejemplo- |LET A=INT(92)~ [Aquiacute |A~ vale |9~]
|LET K=INT(76)~ [Aquiacute |K~ vale |8~]
Aquiacute tenemos un programa que utiliza RND e INT conjuntamente
De nuevo pulse |Ctrl~ y |Break~ para acabar el programa
|10 NUMERO=RND200-100 genera un nuacutemero entre -100 y 100
|20 PRINT Cuaacutel es la parte entera deNUMEROINPUT RESPUESTA~
|30 IF RESPUESTAltgtINT(NUMERO) THEN PRINT La respuesta esINT(NUMERO)~
|40 GOTO 10~
La funcioacuten ABS
La funcioacuten ABS devuelve el valor absoluto de una expresioacuten
El valor absoluto es sencillamente el valor positivo de un numero
example LET X=ABS(-5) [Aquiacute |X~ es igual a |5~]
|LET C=ABS(124) [Aquiacute |C~ es igual a |48~]
Aquiacute tenemos un programa que utiliza las funciones RND INT y ABS
De nuevo pulse |Ctrl~ y |Break~ cuando quiera finalizar
|10 NUMERO=INT(RND200-100) Genera un nuacutemero entero entre -100 and 100
|20 PRINT Cuaacutel es el valor ABSOLUTO deNUMEROINPUT RESPUESTA~
|30 IF RESPUESTAltgtABS(NUMERO) THEN PRINT La respuestaesABS(NUMERO)~
|40 GOTO 10~
Las funciones ABS e INT (continuacioacuten)
Aquiacute tenemos un programa muy interesante para los aficionados a las
Matemaacuteticas Calcula el Maacuteximo Comuacuten Denominador de dos nuacutemeros
|10 INPUT Dime el primer nuacutemeroNUM1
|20 INPUT Dime el segundoNUM2
|30 NUM1=ABS(NUM1)NUM2=ABS(NUM2)~
|40 LET R=NUM1-NUM2INT(NUM1NUM2)~
|50 IF R=0 THEN GOTO 70~
|60 NUM1=NUM2NUM2=RGOTO 40~
|70 PRINT El maacuteximo comuacuten denominador esNUM2
copy 1991 Javier de LucasLinares
![Page 10: Introducción al Lenguaje de programacion BASIC](https://reader031.vdocuments.co/reader031/viewer/2022020218/5571f1c849795947648bade1/html5/thumbnails/10.jpg)
programa de la memoria del ordenador
Instrucciones DATA y READ
Ya hemos aprendido a utilizar la instruccioacuten INPUT
Otra forma de introducir datos en el ordenador es con |DATA y |READ~
La instruccioacuten DATA no se ejecuta La utiliza el ordenador cuando
ejecuta la instruccioacuten READ Despueacutes de la palabra DATA podemos poner nuacutemeros
o grupos de letras entre comillas separados por comas La liacutenea de datos asiacute
creada se lee de la siguiente manera La primera vez que el programa ejecuta
READ se carga el primer dato de la liacutenea DATA la segunda vez el segundo
etc
Introduzca los siguientes programas de ejemplo y haga un |RUN~
|10 DATA 711 10 DATA LUISPERICO~
|20 READ X 20 READ X$~
|30 PRINT X 30 PRINT X$~
|40 READ X 40 READ X$~
|50 PRINT X 50 PRINT X$~
Intrucciones DATA y READ (continuacioacuten)
Cuando el ordenador no tiene maacutes datos que leer se produce un error
el programa se para y aparece un mensaje de error
Comprueacutebelo con el siguiente programa
|10 DATA 10Veinte~
|20 READ X~
|30 PRINT 1X~
|40 READ X$~
|50 PRINT 2X$~
|60 READ X~
|70 PRINT 3X~
Como no hay un tercer dato que leer el ordenador se para y nos indica
que existe un error en la liacutenea numero 60 Ejecuacutetelo y vea lo que ocurre
Instruccioacuten GOTO
La instruccioacuten |GOTO~ es de las maacutes sencillas de comprender y una de
la maacutes importantes en BASIC Le dice al ordenador que vaya a un nuacutemero de
liacutenea diferente al siguiente que corresponda ejecutar
En el siguiente programa el ordenador estaraacute dando vueltas en las
liacuteneas 20 30 y 40 hasta que no tenga mas datos que leer dando un error
Las instrucciones IF THEN
Las instrucciones |IF THEN~ nos permiten elegir entre dos opciones |IF~ una
condicioacuten es verdadera el ordenador ejecuta lo que sigue a |THEN~ |IF~ |no
es verdadera el ordenador ejecuta la liacutenea siguiente Normalmente un GOTO
suele seguir a THEN
Mediante Operadores de relacion comparamos los dos valores de la
condicioacuten el las instrucciones IF THEN
Los Operadores de Relacioacuten maacutes comunes son los siguientes
|=~ igual a lt menor que |lt=~ menor o igual que
|ltgt~ distinto de |gt~ mayor que |gt=~ mayor o igual que
Las instrucciones IF THEN
Poniendo al final de la liacutenea DATA un nuacutemero de control y utilizando
las instrucciones IF THEN tras el READ podemos utilizar e l nuacutemero de control
para evitar el error |Out of DATA El siguiente programa calcula la media de
los nuacutemeros DATA especificados en DATA y utiliza |99~ como |fin de datos
Las instrucciones IF THEN
Aquiacute tenemos dos ejemplos Uno cuenta la cantidad de datos que hay en
una liacutenea DATA El otro escogeraacute los nuacutemeros que sean mayores de 50 en la
liacutenea DATA y los escribiraacute en la pantalla En ambos casos el numero |999~
hace que se pare el programa Escriacutebalos y haga un |RUN~
|10 DATA 10692451007412999 10 DATA 10692451007412999~
|20 READ X 20 READ X~
|30 IF X=999 THEN GOTO 60 20 IF X=999 THEN STOP
|40 LET K=K+1 40 IF Xlt=50 THEN GOTO 20~
|50 GOTO 20 50 PRINT X~
|60 PRINT K 60 GOTO 20~
Operadores Loacutegicos
Los |Operadores Loacutegicos ~ hacen mas uacutetiles las instrucciones IF THEN
Los operadores loacutegicos mas importantes en el BASIC de IBM son
|AND~ |OR~ -Y y O-
Los operadores |AND~ y |OR~ se utilizan cuando queremos implantar
maacutes de una condicioacuten en las instrucciones |IF THEN~ Vamos a ver un ejemplo
de su utilidad en un programa Primero escriba y haga un |RUN~ en el programa
siguiente A continuacioacuten cambie los datos en la liacutenea DATA y haga otro |RUN~
|10 DATA 52317342945999~
|20 READ X~
|30 IF X=999 THEN GOTO 70~
|40 IF Xlt20 OR Xgt30 THEN LET A=A+1
|50 IF Xgt=20 AND Xlt=30 THEN LET B=B+1
|60 GOTO 20~
|70 PRINT Anuacutemeros menores que 20 o mayores que 30 y~
|Bentre 20 y 30~
La instruccioacuten ELSE
Otra opcioacuten de las instrucciones IF T HEN es la sentencia ELSE
Sin ELSE el programa se saltaraacute las instrucciones IF y THEN si la condicioacuten
establecida tras el IF no se cumple Si la palabra ELSE sigue a IF THEN
entonces se ejecuta lo que sigue a ELSE en vez de continuar con la siguiente
liacutenea
Aquiacute tenemos el uacuteltimo programa modificado para ver la instruccioacuten ELSE
Introduacutezcalo y haga un |RUN~
|10 DATA 52317342945999~
|20 READ X~
|30 IF X=999 THEN GOTO 60~
|40 IF Xlt20 OR Xgt30 THEN LET A=A+1 ELSE LET B=B+1
|50 GOTO 20~
|60 PRINT Ardquonuacutemeros menores que 20 o mayores que 30 y~
|Bentre 20 y 30~
Liacuteneas con instrucciones muacuteltiples
Otra caracteriacutestica del BASIC es la utilizacioacuten de instrucciones
muacuteltiples en una liacutenea Podemos poner varias instrucciones en la misma liacuten ea
separaacutendolas con dos puntos (|~) Resulta muy uacutetil con IF THEN
Aquiacute tenemos un ejemplo que muestra este tipo de liacuteneas
Escriacutebalo y haga un RUN~ modifique los valores en la liacutenea DATA y de nuevo
haga un |RUN~
|10 DATA 52317342945999~
|20 READ X~
|30 IF X=999 THEN PRINT Amenores que 20Bentre 20 y 30 yC~
mayores que 30END
|40 IF Xlt20 THEN PRINT Xes menor que 20LET A=A+1GOTO 20~
|50 IF Xlt30 THEN PRINT Xestaacute entre 20 y 30LET B=B+1GOTO 20
|60 PRINT Xes mayor que 30LET C=C+1GOTO 20~
La instruccioacuten REM
La instruccioacuten |REM nos permite escribir notas aclaratorias dentro de
un programa Estos comentarios son ignorados por el ordenador cuando encuentra
la instruccioacuten REM pero le fac ilitan al programador informacioacuten del programa
Las anotaciones aparecen cuando LISTAMOS en programa Los comentarios pueden
comenzar bien por la palabra REM o por un apoacutestrofe (|~)
Aquiacute tenemos un ejemplo de la utilizacioacuten de REM en un programa
10 DATA 452497654715803877999
20 READ XIF X=999 THEN 60 |Si no hay mas datos va a 60~
30 IF Xgt=50 THEN LET G=G+1 |Cuenta los nuacutemeros mayores o iguales a 50~
40 IF Xlt50 THEN LET L=L+1 |Cuenta los nuacutemeros menores de 50~
50 GOTO 20 |Obtiene el siguiente numero~
60 PRINT De los numerosLson menores de 50 y
70 PRINT Gson mayores o iguales a 50
Introduzca este programa y haga un |RUN~
STOP y END
Existen cuatro maneras de parar la ejecucioacuten de un programa BASIC
1 El programa se para cuando no tiene mas liacuteneas que ejecutar
2 Con STOP Cuando el ordenador encuentra un STOP el programa se
para y aparece en la pantalla|Break in N~ (donde |N~ es la liacutenea
en la que esta situado el STOP)
3 END Es similar a STOP except o en que el ordenador no escribe el
mensaje de interrupcioacuten
4 Pulsando |Ctrl~ y |Break~ (Scroll lock) simultaacuteneamente paramos
la ejecucioacuten de un programa y aparece el mensaje |Break in N~
donde N es la liacutenea donde se ha interrumpido el programa
Si tecleamos |CONT~el programa |continuacutea ejecutaacutendose a partir
del punto donde FUE INTERRUMPIDO
CONT tambieacuten funciona con STOP pero no con END
STOP y END (continuacion)
Veamos como funcionan estas instrucciones |corriendo el siguiente
programa
|10 PRINT Escriba CONT y pulse return
|20 STOP
|30 PRINT BIEN Ha continuado el programa
|40 PRINT Pulse Ctrl y Break simultaneamenteGOTO 40~
El comando EDIT
Cuando cometemos (o descubrimos) un error en una liacutenea podemos
corregirlo simplemente escribiendo encima Sin embargo es mucho mas raacutepido
utilizar el EDITor Para esto sencillamente tecleamos |EDIT N~ (donde |N~ es
el nuacutemero de liacutenea que vamos a editar) y nos movemos con el cursor al punto
donde vamos a corregir para escribir encima insertar o borrar
Si lo que queremos es borrar una liacutenea del programa simplemente
escribimos su nuacutemero y pulsamos RETURN Si son varias las liacuteneas que vamos a
borrar escribimos |DELETE N1-N2 (donde |N1~ es la primera y |N2~ es la ultima
liacutenea a borrar) y pulsamos RETURN Esta instruccioacuten borraraacute todas las liacuteneas
entre |N1~ y |N2~ incluidas estas
El comando AUTO
Con el fin de no perder tiempo escribiendo el nuacutemero de liacutenea de cada
instruccioacuten en un programa podemos utilizar el comando |AUTO
Al poner la palabra AUTO el ordenador numerara las liacuteneas automaacuteticamente
Esta es la forma correcta de poner el comando AUTO
AUTO [|B~[|I~]]
|B~ es el primer nuacutemero de liacutenea que escribiraacute el ordena dor Si no se
pone ninguacuten valor para |B~ el ordenador automaacuteticamente pondraacute el numero 10
|I~ es el incremento Esto es el valor que se le suma a cada liacutenea
para obtener el nuacutemero de liacutenea siguiente Al omitirlo se incrementaraacuten las
liacuteneas de 10 en 10
AUTO (continuacioacuten)
Si queremos comenzar nuestro programa por una liacutenea que no sea la 10
por ejemplo la 200 escribiremos AUTO 200 y nuestro programa empezaraacute en la
liacutenea 200 y se incrementaraacute de 10 en 10 Si queremos comenzar por la liacutenea
100 y en saltos de 5 en 5 escribiremos AUTO 1005
Para terminar de introducir el programa debemos pulsar |Ctrl~ y |Break~ al
aparecer la liacutenea siguiente a la ultima
Introduzca el siguiente programa utilizando AUTO
|100 INPUT Dime el primer num ero A
|105 INPUT Dime el segundo numero B
|110 PRINT A+B=A+B
|115 PRINT A-B=A-B
|120 PRINT AB=AB
Los comandos TRON y TROFF
Cuando un programa no funciona correctamente la primera vez que lo
ejecutamos se dice que contiene errores (BUGS) La mayor parte del tiempo de un
programador se pierde depurando (debuging) un programa
Una instruccioacuten que nos facilita esta labor es el comando |TRON~
Al escribir TRON antes de ejecutar un programa aparece entre corchetes ( |[]~)
el nuacutemero de liacutenea que se estaacute ejecutando junto con los textos de la ejecucioacuten
propia del programa
Para el programa |10 DATA 172399~
|20 READ NUM
|30 IF NUMltgt99 THEN PRINT NUMGOTO 20~
|40 PRINT FIN
Utilizando TRON lo
veriacuteamos asiacute |[10][20][30] 17~
|[20][30] 23~
|[20][30][40]The END
Cuando hemos localizado el error y queremos ejecutar nuestro programa
sin que aparezcan los nuacutemeros de liacutenea tenemos que teclear |TROFF~
Esto devuelve al ordenador a su modo normal de ejecucioacuten
TRON y TROFF (continuacioacuten)
El siguiente programa debe contar y escribir los nuacutemeros de la liacutenea
DATA pero por alguna razoacuten se vuelve loco al escribir el primer valor
Utilizando TRON y TROFF localice y solucione el problema
|10 DATA 3467129653884999~
|20 READ NUMIF NUM=999 THEN GOTO 60~
|30 CON=CON+1
|40 PRINT El valor del numeroCONesNUM
|50 GOTO 30~
|60 PRINT HayCONnuacutemeros en la liacutenea DATA
Primero teclee el programa y haga un |RUN~ Tras unos se gundos pulse
|Ctrl~ y |Break~ para parar el programa Teclee TRON y RETURN para entrar en
el modo TRAZADO De nuevo |RUN~ y cuando localice el problema pare de nuevo
el programa corrija el programa y entre en el modo de EJECUCION con TROFF
para hacer un |RUN~ por tercera vez
TRON y TROFF (continuacioacuten)
Aquiacute tenemos de nuevo el uacuteltimo programa Afortunadamente encontroacute
el problema en la liacutenea |50~
10 DATA 3467129653884999
20 READ NUMIF NUM=999 THEN GOTO 60
30 CON=CON+1
40 PRINT El valor del numeroCONesNUM
|50 GOTO 30~
60 PRINT HayrdquoCONrdquonuacutemeros en la liacutenea DATA
En la liacutenea deberiacutea poner |50 GOTO 20~ Tal como estaba el programa
nunca leeriacutea un nuevo valor para la variable |NUM~ luego nunca leeriacutea |999~
para marcar el fin de programa
La funcioacuten RND
La funcioacuten RND devuelve un nuacutemero al azar entre el 0 y el 1
Si queremos un nuacutemero entre el 0 y el 100 simplemente multiplicamos RND por 100
ejemplo- LET |X=RND [El valor de |X~ cumple que |0~ lt |X~ lt| 1~]
LET |Y=RND100 [El valor de |Y~ cumple que |0 ~lt |Y~ lt| 100~]
Aquiacute tenemos un programa de ejemplo que nos pide el liacutemite superior
y nos devuelve una serie de nuacutemeros al azar entre 0 y el liacutemite
Tendraacute que utilizar |Ctrl~ y |Break~ para parar el programa
|10 INPUT Introduzca el liacutemite superiorMAXIMO
|20 PRINT RNDMAXIMO
|30 GOTO 20~
La funcioacuten INT
La funcioacuten INT suprime la parte decimal de un nuacutemero entre pareacutentesis
y devuelve su parte entera redondeaacutendola
ejemplo- |LET A=INT(92)~ [Aquiacute |A~ vale |9~]
|LET K=INT(76)~ [Aquiacute |K~ vale |8~]
Aquiacute tenemos un programa que utiliza RND e INT conjuntamente
De nuevo pulse |Ctrl~ y |Break~ para acabar el programa
|10 NUMERO=RND200-100 genera un nuacutemero entre -100 y 100
|20 PRINT Cuaacutel es la parte entera deNUMEROINPUT RESPUESTA~
|30 IF RESPUESTAltgtINT(NUMERO) THEN PRINT La respuesta esINT(NUMERO)~
|40 GOTO 10~
La funcioacuten ABS
La funcioacuten ABS devuelve el valor absoluto de una expresioacuten
El valor absoluto es sencillamente el valor positivo de un numero
example LET X=ABS(-5) [Aquiacute |X~ es igual a |5~]
|LET C=ABS(124) [Aquiacute |C~ es igual a |48~]
Aquiacute tenemos un programa que utiliza las funciones RND INT y ABS
De nuevo pulse |Ctrl~ y |Break~ cuando quiera finalizar
|10 NUMERO=INT(RND200-100) Genera un nuacutemero entero entre -100 and 100
|20 PRINT Cuaacutel es el valor ABSOLUTO deNUMEROINPUT RESPUESTA~
|30 IF RESPUESTAltgtABS(NUMERO) THEN PRINT La respuestaesABS(NUMERO)~
|40 GOTO 10~
Las funciones ABS e INT (continuacioacuten)
Aquiacute tenemos un programa muy interesante para los aficionados a las
Matemaacuteticas Calcula el Maacuteximo Comuacuten Denominador de dos nuacutemeros
|10 INPUT Dime el primer nuacutemeroNUM1
|20 INPUT Dime el segundoNUM2
|30 NUM1=ABS(NUM1)NUM2=ABS(NUM2)~
|40 LET R=NUM1-NUM2INT(NUM1NUM2)~
|50 IF R=0 THEN GOTO 70~
|60 NUM1=NUM2NUM2=RGOTO 40~
|70 PRINT El maacuteximo comuacuten denominador esNUM2
copy 1991 Javier de LucasLinares
![Page 11: Introducción al Lenguaje de programacion BASIC](https://reader031.vdocuments.co/reader031/viewer/2022020218/5571f1c849795947648bade1/html5/thumbnails/11.jpg)
que existe un error en la liacutenea numero 60 Ejecuacutetelo y vea lo que ocurre
Instruccioacuten GOTO
La instruccioacuten |GOTO~ es de las maacutes sencillas de comprender y una de
la maacutes importantes en BASIC Le dice al ordenador que vaya a un nuacutemero de
liacutenea diferente al siguiente que corresponda ejecutar
En el siguiente programa el ordenador estaraacute dando vueltas en las
liacuteneas 20 30 y 40 hasta que no tenga mas datos que leer dando un error
Las instrucciones IF THEN
Las instrucciones |IF THEN~ nos permiten elegir entre dos opciones |IF~ una
condicioacuten es verdadera el ordenador ejecuta lo que sigue a |THEN~ |IF~ |no
es verdadera el ordenador ejecuta la liacutenea siguiente Normalmente un GOTO
suele seguir a THEN
Mediante Operadores de relacion comparamos los dos valores de la
condicioacuten el las instrucciones IF THEN
Los Operadores de Relacioacuten maacutes comunes son los siguientes
|=~ igual a lt menor que |lt=~ menor o igual que
|ltgt~ distinto de |gt~ mayor que |gt=~ mayor o igual que
Las instrucciones IF THEN
Poniendo al final de la liacutenea DATA un nuacutemero de control y utilizando
las instrucciones IF THEN tras el READ podemos utilizar e l nuacutemero de control
para evitar el error |Out of DATA El siguiente programa calcula la media de
los nuacutemeros DATA especificados en DATA y utiliza |99~ como |fin de datos
Las instrucciones IF THEN
Aquiacute tenemos dos ejemplos Uno cuenta la cantidad de datos que hay en
una liacutenea DATA El otro escogeraacute los nuacutemeros que sean mayores de 50 en la
liacutenea DATA y los escribiraacute en la pantalla En ambos casos el numero |999~
hace que se pare el programa Escriacutebalos y haga un |RUN~
|10 DATA 10692451007412999 10 DATA 10692451007412999~
|20 READ X 20 READ X~
|30 IF X=999 THEN GOTO 60 20 IF X=999 THEN STOP
|40 LET K=K+1 40 IF Xlt=50 THEN GOTO 20~
|50 GOTO 20 50 PRINT X~
|60 PRINT K 60 GOTO 20~
Operadores Loacutegicos
Los |Operadores Loacutegicos ~ hacen mas uacutetiles las instrucciones IF THEN
Los operadores loacutegicos mas importantes en el BASIC de IBM son
|AND~ |OR~ -Y y O-
Los operadores |AND~ y |OR~ se utilizan cuando queremos implantar
maacutes de una condicioacuten en las instrucciones |IF THEN~ Vamos a ver un ejemplo
de su utilidad en un programa Primero escriba y haga un |RUN~ en el programa
siguiente A continuacioacuten cambie los datos en la liacutenea DATA y haga otro |RUN~
|10 DATA 52317342945999~
|20 READ X~
|30 IF X=999 THEN GOTO 70~
|40 IF Xlt20 OR Xgt30 THEN LET A=A+1
|50 IF Xgt=20 AND Xlt=30 THEN LET B=B+1
|60 GOTO 20~
|70 PRINT Anuacutemeros menores que 20 o mayores que 30 y~
|Bentre 20 y 30~
La instruccioacuten ELSE
Otra opcioacuten de las instrucciones IF T HEN es la sentencia ELSE
Sin ELSE el programa se saltaraacute las instrucciones IF y THEN si la condicioacuten
establecida tras el IF no se cumple Si la palabra ELSE sigue a IF THEN
entonces se ejecuta lo que sigue a ELSE en vez de continuar con la siguiente
liacutenea
Aquiacute tenemos el uacuteltimo programa modificado para ver la instruccioacuten ELSE
Introduacutezcalo y haga un |RUN~
|10 DATA 52317342945999~
|20 READ X~
|30 IF X=999 THEN GOTO 60~
|40 IF Xlt20 OR Xgt30 THEN LET A=A+1 ELSE LET B=B+1
|50 GOTO 20~
|60 PRINT Ardquonuacutemeros menores que 20 o mayores que 30 y~
|Bentre 20 y 30~
Liacuteneas con instrucciones muacuteltiples
Otra caracteriacutestica del BASIC es la utilizacioacuten de instrucciones
muacuteltiples en una liacutenea Podemos poner varias instrucciones en la misma liacuten ea
separaacutendolas con dos puntos (|~) Resulta muy uacutetil con IF THEN
Aquiacute tenemos un ejemplo que muestra este tipo de liacuteneas
Escriacutebalo y haga un RUN~ modifique los valores en la liacutenea DATA y de nuevo
haga un |RUN~
|10 DATA 52317342945999~
|20 READ X~
|30 IF X=999 THEN PRINT Amenores que 20Bentre 20 y 30 yC~
mayores que 30END
|40 IF Xlt20 THEN PRINT Xes menor que 20LET A=A+1GOTO 20~
|50 IF Xlt30 THEN PRINT Xestaacute entre 20 y 30LET B=B+1GOTO 20
|60 PRINT Xes mayor que 30LET C=C+1GOTO 20~
La instruccioacuten REM
La instruccioacuten |REM nos permite escribir notas aclaratorias dentro de
un programa Estos comentarios son ignorados por el ordenador cuando encuentra
la instruccioacuten REM pero le fac ilitan al programador informacioacuten del programa
Las anotaciones aparecen cuando LISTAMOS en programa Los comentarios pueden
comenzar bien por la palabra REM o por un apoacutestrofe (|~)
Aquiacute tenemos un ejemplo de la utilizacioacuten de REM en un programa
10 DATA 452497654715803877999
20 READ XIF X=999 THEN 60 |Si no hay mas datos va a 60~
30 IF Xgt=50 THEN LET G=G+1 |Cuenta los nuacutemeros mayores o iguales a 50~
40 IF Xlt50 THEN LET L=L+1 |Cuenta los nuacutemeros menores de 50~
50 GOTO 20 |Obtiene el siguiente numero~
60 PRINT De los numerosLson menores de 50 y
70 PRINT Gson mayores o iguales a 50
Introduzca este programa y haga un |RUN~
STOP y END
Existen cuatro maneras de parar la ejecucioacuten de un programa BASIC
1 El programa se para cuando no tiene mas liacuteneas que ejecutar
2 Con STOP Cuando el ordenador encuentra un STOP el programa se
para y aparece en la pantalla|Break in N~ (donde |N~ es la liacutenea
en la que esta situado el STOP)
3 END Es similar a STOP except o en que el ordenador no escribe el
mensaje de interrupcioacuten
4 Pulsando |Ctrl~ y |Break~ (Scroll lock) simultaacuteneamente paramos
la ejecucioacuten de un programa y aparece el mensaje |Break in N~
donde N es la liacutenea donde se ha interrumpido el programa
Si tecleamos |CONT~el programa |continuacutea ejecutaacutendose a partir
del punto donde FUE INTERRUMPIDO
CONT tambieacuten funciona con STOP pero no con END
STOP y END (continuacion)
Veamos como funcionan estas instrucciones |corriendo el siguiente
programa
|10 PRINT Escriba CONT y pulse return
|20 STOP
|30 PRINT BIEN Ha continuado el programa
|40 PRINT Pulse Ctrl y Break simultaneamenteGOTO 40~
El comando EDIT
Cuando cometemos (o descubrimos) un error en una liacutenea podemos
corregirlo simplemente escribiendo encima Sin embargo es mucho mas raacutepido
utilizar el EDITor Para esto sencillamente tecleamos |EDIT N~ (donde |N~ es
el nuacutemero de liacutenea que vamos a editar) y nos movemos con el cursor al punto
donde vamos a corregir para escribir encima insertar o borrar
Si lo que queremos es borrar una liacutenea del programa simplemente
escribimos su nuacutemero y pulsamos RETURN Si son varias las liacuteneas que vamos a
borrar escribimos |DELETE N1-N2 (donde |N1~ es la primera y |N2~ es la ultima
liacutenea a borrar) y pulsamos RETURN Esta instruccioacuten borraraacute todas las liacuteneas
entre |N1~ y |N2~ incluidas estas
El comando AUTO
Con el fin de no perder tiempo escribiendo el nuacutemero de liacutenea de cada
instruccioacuten en un programa podemos utilizar el comando |AUTO
Al poner la palabra AUTO el ordenador numerara las liacuteneas automaacuteticamente
Esta es la forma correcta de poner el comando AUTO
AUTO [|B~[|I~]]
|B~ es el primer nuacutemero de liacutenea que escribiraacute el ordena dor Si no se
pone ninguacuten valor para |B~ el ordenador automaacuteticamente pondraacute el numero 10
|I~ es el incremento Esto es el valor que se le suma a cada liacutenea
para obtener el nuacutemero de liacutenea siguiente Al omitirlo se incrementaraacuten las
liacuteneas de 10 en 10
AUTO (continuacioacuten)
Si queremos comenzar nuestro programa por una liacutenea que no sea la 10
por ejemplo la 200 escribiremos AUTO 200 y nuestro programa empezaraacute en la
liacutenea 200 y se incrementaraacute de 10 en 10 Si queremos comenzar por la liacutenea
100 y en saltos de 5 en 5 escribiremos AUTO 1005
Para terminar de introducir el programa debemos pulsar |Ctrl~ y |Break~ al
aparecer la liacutenea siguiente a la ultima
Introduzca el siguiente programa utilizando AUTO
|100 INPUT Dime el primer num ero A
|105 INPUT Dime el segundo numero B
|110 PRINT A+B=A+B
|115 PRINT A-B=A-B
|120 PRINT AB=AB
Los comandos TRON y TROFF
Cuando un programa no funciona correctamente la primera vez que lo
ejecutamos se dice que contiene errores (BUGS) La mayor parte del tiempo de un
programador se pierde depurando (debuging) un programa
Una instruccioacuten que nos facilita esta labor es el comando |TRON~
Al escribir TRON antes de ejecutar un programa aparece entre corchetes ( |[]~)
el nuacutemero de liacutenea que se estaacute ejecutando junto con los textos de la ejecucioacuten
propia del programa
Para el programa |10 DATA 172399~
|20 READ NUM
|30 IF NUMltgt99 THEN PRINT NUMGOTO 20~
|40 PRINT FIN
Utilizando TRON lo
veriacuteamos asiacute |[10][20][30] 17~
|[20][30] 23~
|[20][30][40]The END
Cuando hemos localizado el error y queremos ejecutar nuestro programa
sin que aparezcan los nuacutemeros de liacutenea tenemos que teclear |TROFF~
Esto devuelve al ordenador a su modo normal de ejecucioacuten
TRON y TROFF (continuacioacuten)
El siguiente programa debe contar y escribir los nuacutemeros de la liacutenea
DATA pero por alguna razoacuten se vuelve loco al escribir el primer valor
Utilizando TRON y TROFF localice y solucione el problema
|10 DATA 3467129653884999~
|20 READ NUMIF NUM=999 THEN GOTO 60~
|30 CON=CON+1
|40 PRINT El valor del numeroCONesNUM
|50 GOTO 30~
|60 PRINT HayCONnuacutemeros en la liacutenea DATA
Primero teclee el programa y haga un |RUN~ Tras unos se gundos pulse
|Ctrl~ y |Break~ para parar el programa Teclee TRON y RETURN para entrar en
el modo TRAZADO De nuevo |RUN~ y cuando localice el problema pare de nuevo
el programa corrija el programa y entre en el modo de EJECUCION con TROFF
para hacer un |RUN~ por tercera vez
TRON y TROFF (continuacioacuten)
Aquiacute tenemos de nuevo el uacuteltimo programa Afortunadamente encontroacute
el problema en la liacutenea |50~
10 DATA 3467129653884999
20 READ NUMIF NUM=999 THEN GOTO 60
30 CON=CON+1
40 PRINT El valor del numeroCONesNUM
|50 GOTO 30~
60 PRINT HayrdquoCONrdquonuacutemeros en la liacutenea DATA
En la liacutenea deberiacutea poner |50 GOTO 20~ Tal como estaba el programa
nunca leeriacutea un nuevo valor para la variable |NUM~ luego nunca leeriacutea |999~
para marcar el fin de programa
La funcioacuten RND
La funcioacuten RND devuelve un nuacutemero al azar entre el 0 y el 1
Si queremos un nuacutemero entre el 0 y el 100 simplemente multiplicamos RND por 100
ejemplo- LET |X=RND [El valor de |X~ cumple que |0~ lt |X~ lt| 1~]
LET |Y=RND100 [El valor de |Y~ cumple que |0 ~lt |Y~ lt| 100~]
Aquiacute tenemos un programa de ejemplo que nos pide el liacutemite superior
y nos devuelve una serie de nuacutemeros al azar entre 0 y el liacutemite
Tendraacute que utilizar |Ctrl~ y |Break~ para parar el programa
|10 INPUT Introduzca el liacutemite superiorMAXIMO
|20 PRINT RNDMAXIMO
|30 GOTO 20~
La funcioacuten INT
La funcioacuten INT suprime la parte decimal de un nuacutemero entre pareacutentesis
y devuelve su parte entera redondeaacutendola
ejemplo- |LET A=INT(92)~ [Aquiacute |A~ vale |9~]
|LET K=INT(76)~ [Aquiacute |K~ vale |8~]
Aquiacute tenemos un programa que utiliza RND e INT conjuntamente
De nuevo pulse |Ctrl~ y |Break~ para acabar el programa
|10 NUMERO=RND200-100 genera un nuacutemero entre -100 y 100
|20 PRINT Cuaacutel es la parte entera deNUMEROINPUT RESPUESTA~
|30 IF RESPUESTAltgtINT(NUMERO) THEN PRINT La respuesta esINT(NUMERO)~
|40 GOTO 10~
La funcioacuten ABS
La funcioacuten ABS devuelve el valor absoluto de una expresioacuten
El valor absoluto es sencillamente el valor positivo de un numero
example LET X=ABS(-5) [Aquiacute |X~ es igual a |5~]
|LET C=ABS(124) [Aquiacute |C~ es igual a |48~]
Aquiacute tenemos un programa que utiliza las funciones RND INT y ABS
De nuevo pulse |Ctrl~ y |Break~ cuando quiera finalizar
|10 NUMERO=INT(RND200-100) Genera un nuacutemero entero entre -100 and 100
|20 PRINT Cuaacutel es el valor ABSOLUTO deNUMEROINPUT RESPUESTA~
|30 IF RESPUESTAltgtABS(NUMERO) THEN PRINT La respuestaesABS(NUMERO)~
|40 GOTO 10~
Las funciones ABS e INT (continuacioacuten)
Aquiacute tenemos un programa muy interesante para los aficionados a las
Matemaacuteticas Calcula el Maacuteximo Comuacuten Denominador de dos nuacutemeros
|10 INPUT Dime el primer nuacutemeroNUM1
|20 INPUT Dime el segundoNUM2
|30 NUM1=ABS(NUM1)NUM2=ABS(NUM2)~
|40 LET R=NUM1-NUM2INT(NUM1NUM2)~
|50 IF R=0 THEN GOTO 70~
|60 NUM1=NUM2NUM2=RGOTO 40~
|70 PRINT El maacuteximo comuacuten denominador esNUM2
copy 1991 Javier de LucasLinares
![Page 12: Introducción al Lenguaje de programacion BASIC](https://reader031.vdocuments.co/reader031/viewer/2022020218/5571f1c849795947648bade1/html5/thumbnails/12.jpg)
|20 READ X 20 READ X~
|30 IF X=999 THEN GOTO 60 20 IF X=999 THEN STOP
|40 LET K=K+1 40 IF Xlt=50 THEN GOTO 20~
|50 GOTO 20 50 PRINT X~
|60 PRINT K 60 GOTO 20~
Operadores Loacutegicos
Los |Operadores Loacutegicos ~ hacen mas uacutetiles las instrucciones IF THEN
Los operadores loacutegicos mas importantes en el BASIC de IBM son
|AND~ |OR~ -Y y O-
Los operadores |AND~ y |OR~ se utilizan cuando queremos implantar
maacutes de una condicioacuten en las instrucciones |IF THEN~ Vamos a ver un ejemplo
de su utilidad en un programa Primero escriba y haga un |RUN~ en el programa
siguiente A continuacioacuten cambie los datos en la liacutenea DATA y haga otro |RUN~
|10 DATA 52317342945999~
|20 READ X~
|30 IF X=999 THEN GOTO 70~
|40 IF Xlt20 OR Xgt30 THEN LET A=A+1
|50 IF Xgt=20 AND Xlt=30 THEN LET B=B+1
|60 GOTO 20~
|70 PRINT Anuacutemeros menores que 20 o mayores que 30 y~
|Bentre 20 y 30~
La instruccioacuten ELSE
Otra opcioacuten de las instrucciones IF T HEN es la sentencia ELSE
Sin ELSE el programa se saltaraacute las instrucciones IF y THEN si la condicioacuten
establecida tras el IF no se cumple Si la palabra ELSE sigue a IF THEN
entonces se ejecuta lo que sigue a ELSE en vez de continuar con la siguiente
liacutenea
Aquiacute tenemos el uacuteltimo programa modificado para ver la instruccioacuten ELSE
Introduacutezcalo y haga un |RUN~
|10 DATA 52317342945999~
|20 READ X~
|30 IF X=999 THEN GOTO 60~
|40 IF Xlt20 OR Xgt30 THEN LET A=A+1 ELSE LET B=B+1
|50 GOTO 20~
|60 PRINT Ardquonuacutemeros menores que 20 o mayores que 30 y~
|Bentre 20 y 30~
Liacuteneas con instrucciones muacuteltiples
Otra caracteriacutestica del BASIC es la utilizacioacuten de instrucciones
muacuteltiples en una liacutenea Podemos poner varias instrucciones en la misma liacuten ea
separaacutendolas con dos puntos (|~) Resulta muy uacutetil con IF THEN
Aquiacute tenemos un ejemplo que muestra este tipo de liacuteneas
Escriacutebalo y haga un RUN~ modifique los valores en la liacutenea DATA y de nuevo
haga un |RUN~
|10 DATA 52317342945999~
|20 READ X~
|30 IF X=999 THEN PRINT Amenores que 20Bentre 20 y 30 yC~
mayores que 30END
|40 IF Xlt20 THEN PRINT Xes menor que 20LET A=A+1GOTO 20~
|50 IF Xlt30 THEN PRINT Xestaacute entre 20 y 30LET B=B+1GOTO 20
|60 PRINT Xes mayor que 30LET C=C+1GOTO 20~
La instruccioacuten REM
La instruccioacuten |REM nos permite escribir notas aclaratorias dentro de
un programa Estos comentarios son ignorados por el ordenador cuando encuentra
la instruccioacuten REM pero le fac ilitan al programador informacioacuten del programa
Las anotaciones aparecen cuando LISTAMOS en programa Los comentarios pueden
comenzar bien por la palabra REM o por un apoacutestrofe (|~)
Aquiacute tenemos un ejemplo de la utilizacioacuten de REM en un programa
10 DATA 452497654715803877999
20 READ XIF X=999 THEN 60 |Si no hay mas datos va a 60~
30 IF Xgt=50 THEN LET G=G+1 |Cuenta los nuacutemeros mayores o iguales a 50~
40 IF Xlt50 THEN LET L=L+1 |Cuenta los nuacutemeros menores de 50~
50 GOTO 20 |Obtiene el siguiente numero~
60 PRINT De los numerosLson menores de 50 y
70 PRINT Gson mayores o iguales a 50
Introduzca este programa y haga un |RUN~
STOP y END
Existen cuatro maneras de parar la ejecucioacuten de un programa BASIC
1 El programa se para cuando no tiene mas liacuteneas que ejecutar
2 Con STOP Cuando el ordenador encuentra un STOP el programa se
para y aparece en la pantalla|Break in N~ (donde |N~ es la liacutenea
en la que esta situado el STOP)
3 END Es similar a STOP except o en que el ordenador no escribe el
mensaje de interrupcioacuten
4 Pulsando |Ctrl~ y |Break~ (Scroll lock) simultaacuteneamente paramos
la ejecucioacuten de un programa y aparece el mensaje |Break in N~
donde N es la liacutenea donde se ha interrumpido el programa
Si tecleamos |CONT~el programa |continuacutea ejecutaacutendose a partir
del punto donde FUE INTERRUMPIDO
CONT tambieacuten funciona con STOP pero no con END
STOP y END (continuacion)
Veamos como funcionan estas instrucciones |corriendo el siguiente
programa
|10 PRINT Escriba CONT y pulse return
|20 STOP
|30 PRINT BIEN Ha continuado el programa
|40 PRINT Pulse Ctrl y Break simultaneamenteGOTO 40~
El comando EDIT
Cuando cometemos (o descubrimos) un error en una liacutenea podemos
corregirlo simplemente escribiendo encima Sin embargo es mucho mas raacutepido
utilizar el EDITor Para esto sencillamente tecleamos |EDIT N~ (donde |N~ es
el nuacutemero de liacutenea que vamos a editar) y nos movemos con el cursor al punto
donde vamos a corregir para escribir encima insertar o borrar
Si lo que queremos es borrar una liacutenea del programa simplemente
escribimos su nuacutemero y pulsamos RETURN Si son varias las liacuteneas que vamos a
borrar escribimos |DELETE N1-N2 (donde |N1~ es la primera y |N2~ es la ultima
liacutenea a borrar) y pulsamos RETURN Esta instruccioacuten borraraacute todas las liacuteneas
entre |N1~ y |N2~ incluidas estas
El comando AUTO
Con el fin de no perder tiempo escribiendo el nuacutemero de liacutenea de cada
instruccioacuten en un programa podemos utilizar el comando |AUTO
Al poner la palabra AUTO el ordenador numerara las liacuteneas automaacuteticamente
Esta es la forma correcta de poner el comando AUTO
AUTO [|B~[|I~]]
|B~ es el primer nuacutemero de liacutenea que escribiraacute el ordena dor Si no se
pone ninguacuten valor para |B~ el ordenador automaacuteticamente pondraacute el numero 10
|I~ es el incremento Esto es el valor que se le suma a cada liacutenea
para obtener el nuacutemero de liacutenea siguiente Al omitirlo se incrementaraacuten las
liacuteneas de 10 en 10
AUTO (continuacioacuten)
Si queremos comenzar nuestro programa por una liacutenea que no sea la 10
por ejemplo la 200 escribiremos AUTO 200 y nuestro programa empezaraacute en la
liacutenea 200 y se incrementaraacute de 10 en 10 Si queremos comenzar por la liacutenea
100 y en saltos de 5 en 5 escribiremos AUTO 1005
Para terminar de introducir el programa debemos pulsar |Ctrl~ y |Break~ al
aparecer la liacutenea siguiente a la ultima
Introduzca el siguiente programa utilizando AUTO
|100 INPUT Dime el primer num ero A
|105 INPUT Dime el segundo numero B
|110 PRINT A+B=A+B
|115 PRINT A-B=A-B
|120 PRINT AB=AB
Los comandos TRON y TROFF
Cuando un programa no funciona correctamente la primera vez que lo
ejecutamos se dice que contiene errores (BUGS) La mayor parte del tiempo de un
programador se pierde depurando (debuging) un programa
Una instruccioacuten que nos facilita esta labor es el comando |TRON~
Al escribir TRON antes de ejecutar un programa aparece entre corchetes ( |[]~)
el nuacutemero de liacutenea que se estaacute ejecutando junto con los textos de la ejecucioacuten
propia del programa
Para el programa |10 DATA 172399~
|20 READ NUM
|30 IF NUMltgt99 THEN PRINT NUMGOTO 20~
|40 PRINT FIN
Utilizando TRON lo
veriacuteamos asiacute |[10][20][30] 17~
|[20][30] 23~
|[20][30][40]The END
Cuando hemos localizado el error y queremos ejecutar nuestro programa
sin que aparezcan los nuacutemeros de liacutenea tenemos que teclear |TROFF~
Esto devuelve al ordenador a su modo normal de ejecucioacuten
TRON y TROFF (continuacioacuten)
El siguiente programa debe contar y escribir los nuacutemeros de la liacutenea
DATA pero por alguna razoacuten se vuelve loco al escribir el primer valor
Utilizando TRON y TROFF localice y solucione el problema
|10 DATA 3467129653884999~
|20 READ NUMIF NUM=999 THEN GOTO 60~
|30 CON=CON+1
|40 PRINT El valor del numeroCONesNUM
|50 GOTO 30~
|60 PRINT HayCONnuacutemeros en la liacutenea DATA
Primero teclee el programa y haga un |RUN~ Tras unos se gundos pulse
|Ctrl~ y |Break~ para parar el programa Teclee TRON y RETURN para entrar en
el modo TRAZADO De nuevo |RUN~ y cuando localice el problema pare de nuevo
el programa corrija el programa y entre en el modo de EJECUCION con TROFF
para hacer un |RUN~ por tercera vez
TRON y TROFF (continuacioacuten)
Aquiacute tenemos de nuevo el uacuteltimo programa Afortunadamente encontroacute
el problema en la liacutenea |50~
10 DATA 3467129653884999
20 READ NUMIF NUM=999 THEN GOTO 60
30 CON=CON+1
40 PRINT El valor del numeroCONesNUM
|50 GOTO 30~
60 PRINT HayrdquoCONrdquonuacutemeros en la liacutenea DATA
En la liacutenea deberiacutea poner |50 GOTO 20~ Tal como estaba el programa
nunca leeriacutea un nuevo valor para la variable |NUM~ luego nunca leeriacutea |999~
para marcar el fin de programa
La funcioacuten RND
La funcioacuten RND devuelve un nuacutemero al azar entre el 0 y el 1
Si queremos un nuacutemero entre el 0 y el 100 simplemente multiplicamos RND por 100
ejemplo- LET |X=RND [El valor de |X~ cumple que |0~ lt |X~ lt| 1~]
LET |Y=RND100 [El valor de |Y~ cumple que |0 ~lt |Y~ lt| 100~]
Aquiacute tenemos un programa de ejemplo que nos pide el liacutemite superior
y nos devuelve una serie de nuacutemeros al azar entre 0 y el liacutemite
Tendraacute que utilizar |Ctrl~ y |Break~ para parar el programa
|10 INPUT Introduzca el liacutemite superiorMAXIMO
|20 PRINT RNDMAXIMO
|30 GOTO 20~
La funcioacuten INT
La funcioacuten INT suprime la parte decimal de un nuacutemero entre pareacutentesis
y devuelve su parte entera redondeaacutendola
ejemplo- |LET A=INT(92)~ [Aquiacute |A~ vale |9~]
|LET K=INT(76)~ [Aquiacute |K~ vale |8~]
Aquiacute tenemos un programa que utiliza RND e INT conjuntamente
De nuevo pulse |Ctrl~ y |Break~ para acabar el programa
|10 NUMERO=RND200-100 genera un nuacutemero entre -100 y 100
|20 PRINT Cuaacutel es la parte entera deNUMEROINPUT RESPUESTA~
|30 IF RESPUESTAltgtINT(NUMERO) THEN PRINT La respuesta esINT(NUMERO)~
|40 GOTO 10~
La funcioacuten ABS
La funcioacuten ABS devuelve el valor absoluto de una expresioacuten
El valor absoluto es sencillamente el valor positivo de un numero
example LET X=ABS(-5) [Aquiacute |X~ es igual a |5~]
|LET C=ABS(124) [Aquiacute |C~ es igual a |48~]
Aquiacute tenemos un programa que utiliza las funciones RND INT y ABS
De nuevo pulse |Ctrl~ y |Break~ cuando quiera finalizar
|10 NUMERO=INT(RND200-100) Genera un nuacutemero entero entre -100 and 100
|20 PRINT Cuaacutel es el valor ABSOLUTO deNUMEROINPUT RESPUESTA~
|30 IF RESPUESTAltgtABS(NUMERO) THEN PRINT La respuestaesABS(NUMERO)~
|40 GOTO 10~
Las funciones ABS e INT (continuacioacuten)
Aquiacute tenemos un programa muy interesante para los aficionados a las
Matemaacuteticas Calcula el Maacuteximo Comuacuten Denominador de dos nuacutemeros
|10 INPUT Dime el primer nuacutemeroNUM1
|20 INPUT Dime el segundoNUM2
|30 NUM1=ABS(NUM1)NUM2=ABS(NUM2)~
|40 LET R=NUM1-NUM2INT(NUM1NUM2)~
|50 IF R=0 THEN GOTO 70~
|60 NUM1=NUM2NUM2=RGOTO 40~
|70 PRINT El maacuteximo comuacuten denominador esNUM2
copy 1991 Javier de LucasLinares
![Page 13: Introducción al Lenguaje de programacion BASIC](https://reader031.vdocuments.co/reader031/viewer/2022020218/5571f1c849795947648bade1/html5/thumbnails/13.jpg)
Introduacutezcalo y haga un |RUN~
|10 DATA 52317342945999~
|20 READ X~
|30 IF X=999 THEN GOTO 60~
|40 IF Xlt20 OR Xgt30 THEN LET A=A+1 ELSE LET B=B+1
|50 GOTO 20~
|60 PRINT Ardquonuacutemeros menores que 20 o mayores que 30 y~
|Bentre 20 y 30~
Liacuteneas con instrucciones muacuteltiples
Otra caracteriacutestica del BASIC es la utilizacioacuten de instrucciones
muacuteltiples en una liacutenea Podemos poner varias instrucciones en la misma liacuten ea
separaacutendolas con dos puntos (|~) Resulta muy uacutetil con IF THEN
Aquiacute tenemos un ejemplo que muestra este tipo de liacuteneas
Escriacutebalo y haga un RUN~ modifique los valores en la liacutenea DATA y de nuevo
haga un |RUN~
|10 DATA 52317342945999~
|20 READ X~
|30 IF X=999 THEN PRINT Amenores que 20Bentre 20 y 30 yC~
mayores que 30END
|40 IF Xlt20 THEN PRINT Xes menor que 20LET A=A+1GOTO 20~
|50 IF Xlt30 THEN PRINT Xestaacute entre 20 y 30LET B=B+1GOTO 20
|60 PRINT Xes mayor que 30LET C=C+1GOTO 20~
La instruccioacuten REM
La instruccioacuten |REM nos permite escribir notas aclaratorias dentro de
un programa Estos comentarios son ignorados por el ordenador cuando encuentra
la instruccioacuten REM pero le fac ilitan al programador informacioacuten del programa
Las anotaciones aparecen cuando LISTAMOS en programa Los comentarios pueden
comenzar bien por la palabra REM o por un apoacutestrofe (|~)
Aquiacute tenemos un ejemplo de la utilizacioacuten de REM en un programa
10 DATA 452497654715803877999
20 READ XIF X=999 THEN 60 |Si no hay mas datos va a 60~
30 IF Xgt=50 THEN LET G=G+1 |Cuenta los nuacutemeros mayores o iguales a 50~
40 IF Xlt50 THEN LET L=L+1 |Cuenta los nuacutemeros menores de 50~
50 GOTO 20 |Obtiene el siguiente numero~
60 PRINT De los numerosLson menores de 50 y
70 PRINT Gson mayores o iguales a 50
Introduzca este programa y haga un |RUN~
STOP y END
Existen cuatro maneras de parar la ejecucioacuten de un programa BASIC
1 El programa se para cuando no tiene mas liacuteneas que ejecutar
2 Con STOP Cuando el ordenador encuentra un STOP el programa se
para y aparece en la pantalla|Break in N~ (donde |N~ es la liacutenea
en la que esta situado el STOP)
3 END Es similar a STOP except o en que el ordenador no escribe el
mensaje de interrupcioacuten
4 Pulsando |Ctrl~ y |Break~ (Scroll lock) simultaacuteneamente paramos
la ejecucioacuten de un programa y aparece el mensaje |Break in N~
donde N es la liacutenea donde se ha interrumpido el programa
Si tecleamos |CONT~el programa |continuacutea ejecutaacutendose a partir
del punto donde FUE INTERRUMPIDO
CONT tambieacuten funciona con STOP pero no con END
STOP y END (continuacion)
Veamos como funcionan estas instrucciones |corriendo el siguiente
programa
|10 PRINT Escriba CONT y pulse return
|20 STOP
|30 PRINT BIEN Ha continuado el programa
|40 PRINT Pulse Ctrl y Break simultaneamenteGOTO 40~
El comando EDIT
Cuando cometemos (o descubrimos) un error en una liacutenea podemos
corregirlo simplemente escribiendo encima Sin embargo es mucho mas raacutepido
utilizar el EDITor Para esto sencillamente tecleamos |EDIT N~ (donde |N~ es
el nuacutemero de liacutenea que vamos a editar) y nos movemos con el cursor al punto
donde vamos a corregir para escribir encima insertar o borrar
Si lo que queremos es borrar una liacutenea del programa simplemente
escribimos su nuacutemero y pulsamos RETURN Si son varias las liacuteneas que vamos a
borrar escribimos |DELETE N1-N2 (donde |N1~ es la primera y |N2~ es la ultima
liacutenea a borrar) y pulsamos RETURN Esta instruccioacuten borraraacute todas las liacuteneas
entre |N1~ y |N2~ incluidas estas
El comando AUTO
Con el fin de no perder tiempo escribiendo el nuacutemero de liacutenea de cada
instruccioacuten en un programa podemos utilizar el comando |AUTO
Al poner la palabra AUTO el ordenador numerara las liacuteneas automaacuteticamente
Esta es la forma correcta de poner el comando AUTO
AUTO [|B~[|I~]]
|B~ es el primer nuacutemero de liacutenea que escribiraacute el ordena dor Si no se
pone ninguacuten valor para |B~ el ordenador automaacuteticamente pondraacute el numero 10
|I~ es el incremento Esto es el valor que se le suma a cada liacutenea
para obtener el nuacutemero de liacutenea siguiente Al omitirlo se incrementaraacuten las
liacuteneas de 10 en 10
AUTO (continuacioacuten)
Si queremos comenzar nuestro programa por una liacutenea que no sea la 10
por ejemplo la 200 escribiremos AUTO 200 y nuestro programa empezaraacute en la
liacutenea 200 y se incrementaraacute de 10 en 10 Si queremos comenzar por la liacutenea
100 y en saltos de 5 en 5 escribiremos AUTO 1005
Para terminar de introducir el programa debemos pulsar |Ctrl~ y |Break~ al
aparecer la liacutenea siguiente a la ultima
Introduzca el siguiente programa utilizando AUTO
|100 INPUT Dime el primer num ero A
|105 INPUT Dime el segundo numero B
|110 PRINT A+B=A+B
|115 PRINT A-B=A-B
|120 PRINT AB=AB
Los comandos TRON y TROFF
Cuando un programa no funciona correctamente la primera vez que lo
ejecutamos se dice que contiene errores (BUGS) La mayor parte del tiempo de un
programador se pierde depurando (debuging) un programa
Una instruccioacuten que nos facilita esta labor es el comando |TRON~
Al escribir TRON antes de ejecutar un programa aparece entre corchetes ( |[]~)
el nuacutemero de liacutenea que se estaacute ejecutando junto con los textos de la ejecucioacuten
propia del programa
Para el programa |10 DATA 172399~
|20 READ NUM
|30 IF NUMltgt99 THEN PRINT NUMGOTO 20~
|40 PRINT FIN
Utilizando TRON lo
veriacuteamos asiacute |[10][20][30] 17~
|[20][30] 23~
|[20][30][40]The END
Cuando hemos localizado el error y queremos ejecutar nuestro programa
sin que aparezcan los nuacutemeros de liacutenea tenemos que teclear |TROFF~
Esto devuelve al ordenador a su modo normal de ejecucioacuten
TRON y TROFF (continuacioacuten)
El siguiente programa debe contar y escribir los nuacutemeros de la liacutenea
DATA pero por alguna razoacuten se vuelve loco al escribir el primer valor
Utilizando TRON y TROFF localice y solucione el problema
|10 DATA 3467129653884999~
|20 READ NUMIF NUM=999 THEN GOTO 60~
|30 CON=CON+1
|40 PRINT El valor del numeroCONesNUM
|50 GOTO 30~
|60 PRINT HayCONnuacutemeros en la liacutenea DATA
Primero teclee el programa y haga un |RUN~ Tras unos se gundos pulse
|Ctrl~ y |Break~ para parar el programa Teclee TRON y RETURN para entrar en
el modo TRAZADO De nuevo |RUN~ y cuando localice el problema pare de nuevo
el programa corrija el programa y entre en el modo de EJECUCION con TROFF
para hacer un |RUN~ por tercera vez
TRON y TROFF (continuacioacuten)
Aquiacute tenemos de nuevo el uacuteltimo programa Afortunadamente encontroacute
el problema en la liacutenea |50~
10 DATA 3467129653884999
20 READ NUMIF NUM=999 THEN GOTO 60
30 CON=CON+1
40 PRINT El valor del numeroCONesNUM
|50 GOTO 30~
60 PRINT HayrdquoCONrdquonuacutemeros en la liacutenea DATA
En la liacutenea deberiacutea poner |50 GOTO 20~ Tal como estaba el programa
nunca leeriacutea un nuevo valor para la variable |NUM~ luego nunca leeriacutea |999~
para marcar el fin de programa
La funcioacuten RND
La funcioacuten RND devuelve un nuacutemero al azar entre el 0 y el 1
Si queremos un nuacutemero entre el 0 y el 100 simplemente multiplicamos RND por 100
ejemplo- LET |X=RND [El valor de |X~ cumple que |0~ lt |X~ lt| 1~]
LET |Y=RND100 [El valor de |Y~ cumple que |0 ~lt |Y~ lt| 100~]
Aquiacute tenemos un programa de ejemplo que nos pide el liacutemite superior
y nos devuelve una serie de nuacutemeros al azar entre 0 y el liacutemite
Tendraacute que utilizar |Ctrl~ y |Break~ para parar el programa
|10 INPUT Introduzca el liacutemite superiorMAXIMO
|20 PRINT RNDMAXIMO
|30 GOTO 20~
La funcioacuten INT
La funcioacuten INT suprime la parte decimal de un nuacutemero entre pareacutentesis
y devuelve su parte entera redondeaacutendola
ejemplo- |LET A=INT(92)~ [Aquiacute |A~ vale |9~]
|LET K=INT(76)~ [Aquiacute |K~ vale |8~]
Aquiacute tenemos un programa que utiliza RND e INT conjuntamente
De nuevo pulse |Ctrl~ y |Break~ para acabar el programa
|10 NUMERO=RND200-100 genera un nuacutemero entre -100 y 100
|20 PRINT Cuaacutel es la parte entera deNUMEROINPUT RESPUESTA~
|30 IF RESPUESTAltgtINT(NUMERO) THEN PRINT La respuesta esINT(NUMERO)~
|40 GOTO 10~
La funcioacuten ABS
La funcioacuten ABS devuelve el valor absoluto de una expresioacuten
El valor absoluto es sencillamente el valor positivo de un numero
example LET X=ABS(-5) [Aquiacute |X~ es igual a |5~]
|LET C=ABS(124) [Aquiacute |C~ es igual a |48~]
Aquiacute tenemos un programa que utiliza las funciones RND INT y ABS
De nuevo pulse |Ctrl~ y |Break~ cuando quiera finalizar
|10 NUMERO=INT(RND200-100) Genera un nuacutemero entero entre -100 and 100
|20 PRINT Cuaacutel es el valor ABSOLUTO deNUMEROINPUT RESPUESTA~
|30 IF RESPUESTAltgtABS(NUMERO) THEN PRINT La respuestaesABS(NUMERO)~
|40 GOTO 10~
Las funciones ABS e INT (continuacioacuten)
Aquiacute tenemos un programa muy interesante para los aficionados a las
Matemaacuteticas Calcula el Maacuteximo Comuacuten Denominador de dos nuacutemeros
|10 INPUT Dime el primer nuacutemeroNUM1
|20 INPUT Dime el segundoNUM2
|30 NUM1=ABS(NUM1)NUM2=ABS(NUM2)~
|40 LET R=NUM1-NUM2INT(NUM1NUM2)~
|50 IF R=0 THEN GOTO 70~
|60 NUM1=NUM2NUM2=RGOTO 40~
|70 PRINT El maacuteximo comuacuten denominador esNUM2
copy 1991 Javier de LucasLinares
![Page 14: Introducción al Lenguaje de programacion BASIC](https://reader031.vdocuments.co/reader031/viewer/2022020218/5571f1c849795947648bade1/html5/thumbnails/14.jpg)
Aquiacute tenemos un ejemplo de la utilizacioacuten de REM en un programa
10 DATA 452497654715803877999
20 READ XIF X=999 THEN 60 |Si no hay mas datos va a 60~
30 IF Xgt=50 THEN LET G=G+1 |Cuenta los nuacutemeros mayores o iguales a 50~
40 IF Xlt50 THEN LET L=L+1 |Cuenta los nuacutemeros menores de 50~
50 GOTO 20 |Obtiene el siguiente numero~
60 PRINT De los numerosLson menores de 50 y
70 PRINT Gson mayores o iguales a 50
Introduzca este programa y haga un |RUN~
STOP y END
Existen cuatro maneras de parar la ejecucioacuten de un programa BASIC
1 El programa se para cuando no tiene mas liacuteneas que ejecutar
2 Con STOP Cuando el ordenador encuentra un STOP el programa se
para y aparece en la pantalla|Break in N~ (donde |N~ es la liacutenea
en la que esta situado el STOP)
3 END Es similar a STOP except o en que el ordenador no escribe el
mensaje de interrupcioacuten
4 Pulsando |Ctrl~ y |Break~ (Scroll lock) simultaacuteneamente paramos
la ejecucioacuten de un programa y aparece el mensaje |Break in N~
donde N es la liacutenea donde se ha interrumpido el programa
Si tecleamos |CONT~el programa |continuacutea ejecutaacutendose a partir
del punto donde FUE INTERRUMPIDO
CONT tambieacuten funciona con STOP pero no con END
STOP y END (continuacion)
Veamos como funcionan estas instrucciones |corriendo el siguiente
programa
|10 PRINT Escriba CONT y pulse return
|20 STOP
|30 PRINT BIEN Ha continuado el programa
|40 PRINT Pulse Ctrl y Break simultaneamenteGOTO 40~
El comando EDIT
Cuando cometemos (o descubrimos) un error en una liacutenea podemos
corregirlo simplemente escribiendo encima Sin embargo es mucho mas raacutepido
utilizar el EDITor Para esto sencillamente tecleamos |EDIT N~ (donde |N~ es
el nuacutemero de liacutenea que vamos a editar) y nos movemos con el cursor al punto
donde vamos a corregir para escribir encima insertar o borrar
Si lo que queremos es borrar una liacutenea del programa simplemente
escribimos su nuacutemero y pulsamos RETURN Si son varias las liacuteneas que vamos a
borrar escribimos |DELETE N1-N2 (donde |N1~ es la primera y |N2~ es la ultima
liacutenea a borrar) y pulsamos RETURN Esta instruccioacuten borraraacute todas las liacuteneas
entre |N1~ y |N2~ incluidas estas
El comando AUTO
Con el fin de no perder tiempo escribiendo el nuacutemero de liacutenea de cada
instruccioacuten en un programa podemos utilizar el comando |AUTO
Al poner la palabra AUTO el ordenador numerara las liacuteneas automaacuteticamente
Esta es la forma correcta de poner el comando AUTO
AUTO [|B~[|I~]]
|B~ es el primer nuacutemero de liacutenea que escribiraacute el ordena dor Si no se
pone ninguacuten valor para |B~ el ordenador automaacuteticamente pondraacute el numero 10
|I~ es el incremento Esto es el valor que se le suma a cada liacutenea
para obtener el nuacutemero de liacutenea siguiente Al omitirlo se incrementaraacuten las
liacuteneas de 10 en 10
AUTO (continuacioacuten)
Si queremos comenzar nuestro programa por una liacutenea que no sea la 10
por ejemplo la 200 escribiremos AUTO 200 y nuestro programa empezaraacute en la
liacutenea 200 y se incrementaraacute de 10 en 10 Si queremos comenzar por la liacutenea
100 y en saltos de 5 en 5 escribiremos AUTO 1005
Para terminar de introducir el programa debemos pulsar |Ctrl~ y |Break~ al
aparecer la liacutenea siguiente a la ultima
Introduzca el siguiente programa utilizando AUTO
|100 INPUT Dime el primer num ero A
|105 INPUT Dime el segundo numero B
|110 PRINT A+B=A+B
|115 PRINT A-B=A-B
|120 PRINT AB=AB
Los comandos TRON y TROFF
Cuando un programa no funciona correctamente la primera vez que lo
ejecutamos se dice que contiene errores (BUGS) La mayor parte del tiempo de un
programador se pierde depurando (debuging) un programa
Una instruccioacuten que nos facilita esta labor es el comando |TRON~
Al escribir TRON antes de ejecutar un programa aparece entre corchetes ( |[]~)
el nuacutemero de liacutenea que se estaacute ejecutando junto con los textos de la ejecucioacuten
propia del programa
Para el programa |10 DATA 172399~
|20 READ NUM
|30 IF NUMltgt99 THEN PRINT NUMGOTO 20~
|40 PRINT FIN
Utilizando TRON lo
veriacuteamos asiacute |[10][20][30] 17~
|[20][30] 23~
|[20][30][40]The END
Cuando hemos localizado el error y queremos ejecutar nuestro programa
sin que aparezcan los nuacutemeros de liacutenea tenemos que teclear |TROFF~
Esto devuelve al ordenador a su modo normal de ejecucioacuten
TRON y TROFF (continuacioacuten)
El siguiente programa debe contar y escribir los nuacutemeros de la liacutenea
DATA pero por alguna razoacuten se vuelve loco al escribir el primer valor
Utilizando TRON y TROFF localice y solucione el problema
|10 DATA 3467129653884999~
|20 READ NUMIF NUM=999 THEN GOTO 60~
|30 CON=CON+1
|40 PRINT El valor del numeroCONesNUM
|50 GOTO 30~
|60 PRINT HayCONnuacutemeros en la liacutenea DATA
Primero teclee el programa y haga un |RUN~ Tras unos se gundos pulse
|Ctrl~ y |Break~ para parar el programa Teclee TRON y RETURN para entrar en
el modo TRAZADO De nuevo |RUN~ y cuando localice el problema pare de nuevo
el programa corrija el programa y entre en el modo de EJECUCION con TROFF
para hacer un |RUN~ por tercera vez
TRON y TROFF (continuacioacuten)
Aquiacute tenemos de nuevo el uacuteltimo programa Afortunadamente encontroacute
el problema en la liacutenea |50~
10 DATA 3467129653884999
20 READ NUMIF NUM=999 THEN GOTO 60
30 CON=CON+1
40 PRINT El valor del numeroCONesNUM
|50 GOTO 30~
60 PRINT HayrdquoCONrdquonuacutemeros en la liacutenea DATA
En la liacutenea deberiacutea poner |50 GOTO 20~ Tal como estaba el programa
nunca leeriacutea un nuevo valor para la variable |NUM~ luego nunca leeriacutea |999~
para marcar el fin de programa
La funcioacuten RND
La funcioacuten RND devuelve un nuacutemero al azar entre el 0 y el 1
Si queremos un nuacutemero entre el 0 y el 100 simplemente multiplicamos RND por 100
ejemplo- LET |X=RND [El valor de |X~ cumple que |0~ lt |X~ lt| 1~]
LET |Y=RND100 [El valor de |Y~ cumple que |0 ~lt |Y~ lt| 100~]
Aquiacute tenemos un programa de ejemplo que nos pide el liacutemite superior
y nos devuelve una serie de nuacutemeros al azar entre 0 y el liacutemite
Tendraacute que utilizar |Ctrl~ y |Break~ para parar el programa
|10 INPUT Introduzca el liacutemite superiorMAXIMO
|20 PRINT RNDMAXIMO
|30 GOTO 20~
La funcioacuten INT
La funcioacuten INT suprime la parte decimal de un nuacutemero entre pareacutentesis
y devuelve su parte entera redondeaacutendola
ejemplo- |LET A=INT(92)~ [Aquiacute |A~ vale |9~]
|LET K=INT(76)~ [Aquiacute |K~ vale |8~]
Aquiacute tenemos un programa que utiliza RND e INT conjuntamente
De nuevo pulse |Ctrl~ y |Break~ para acabar el programa
|10 NUMERO=RND200-100 genera un nuacutemero entre -100 y 100
|20 PRINT Cuaacutel es la parte entera deNUMEROINPUT RESPUESTA~
|30 IF RESPUESTAltgtINT(NUMERO) THEN PRINT La respuesta esINT(NUMERO)~
|40 GOTO 10~
La funcioacuten ABS
La funcioacuten ABS devuelve el valor absoluto de una expresioacuten
El valor absoluto es sencillamente el valor positivo de un numero
example LET X=ABS(-5) [Aquiacute |X~ es igual a |5~]
|LET C=ABS(124) [Aquiacute |C~ es igual a |48~]
Aquiacute tenemos un programa que utiliza las funciones RND INT y ABS
De nuevo pulse |Ctrl~ y |Break~ cuando quiera finalizar
|10 NUMERO=INT(RND200-100) Genera un nuacutemero entero entre -100 and 100
|20 PRINT Cuaacutel es el valor ABSOLUTO deNUMEROINPUT RESPUESTA~
|30 IF RESPUESTAltgtABS(NUMERO) THEN PRINT La respuestaesABS(NUMERO)~
|40 GOTO 10~
Las funciones ABS e INT (continuacioacuten)
Aquiacute tenemos un programa muy interesante para los aficionados a las
Matemaacuteticas Calcula el Maacuteximo Comuacuten Denominador de dos nuacutemeros
|10 INPUT Dime el primer nuacutemeroNUM1
|20 INPUT Dime el segundoNUM2
|30 NUM1=ABS(NUM1)NUM2=ABS(NUM2)~
|40 LET R=NUM1-NUM2INT(NUM1NUM2)~
|50 IF R=0 THEN GOTO 70~
|60 NUM1=NUM2NUM2=RGOTO 40~
|70 PRINT El maacuteximo comuacuten denominador esNUM2
copy 1991 Javier de LucasLinares
![Page 15: Introducción al Lenguaje de programacion BASIC](https://reader031.vdocuments.co/reader031/viewer/2022020218/5571f1c849795947648bade1/html5/thumbnails/15.jpg)
|30 PRINT BIEN Ha continuado el programa
|40 PRINT Pulse Ctrl y Break simultaneamenteGOTO 40~
El comando EDIT
Cuando cometemos (o descubrimos) un error en una liacutenea podemos
corregirlo simplemente escribiendo encima Sin embargo es mucho mas raacutepido
utilizar el EDITor Para esto sencillamente tecleamos |EDIT N~ (donde |N~ es
el nuacutemero de liacutenea que vamos a editar) y nos movemos con el cursor al punto
donde vamos a corregir para escribir encima insertar o borrar
Si lo que queremos es borrar una liacutenea del programa simplemente
escribimos su nuacutemero y pulsamos RETURN Si son varias las liacuteneas que vamos a
borrar escribimos |DELETE N1-N2 (donde |N1~ es la primera y |N2~ es la ultima
liacutenea a borrar) y pulsamos RETURN Esta instruccioacuten borraraacute todas las liacuteneas
entre |N1~ y |N2~ incluidas estas
El comando AUTO
Con el fin de no perder tiempo escribiendo el nuacutemero de liacutenea de cada
instruccioacuten en un programa podemos utilizar el comando |AUTO
Al poner la palabra AUTO el ordenador numerara las liacuteneas automaacuteticamente
Esta es la forma correcta de poner el comando AUTO
AUTO [|B~[|I~]]
|B~ es el primer nuacutemero de liacutenea que escribiraacute el ordena dor Si no se
pone ninguacuten valor para |B~ el ordenador automaacuteticamente pondraacute el numero 10
|I~ es el incremento Esto es el valor que se le suma a cada liacutenea
para obtener el nuacutemero de liacutenea siguiente Al omitirlo se incrementaraacuten las
liacuteneas de 10 en 10
AUTO (continuacioacuten)
Si queremos comenzar nuestro programa por una liacutenea que no sea la 10
por ejemplo la 200 escribiremos AUTO 200 y nuestro programa empezaraacute en la
liacutenea 200 y se incrementaraacute de 10 en 10 Si queremos comenzar por la liacutenea
100 y en saltos de 5 en 5 escribiremos AUTO 1005
Para terminar de introducir el programa debemos pulsar |Ctrl~ y |Break~ al
aparecer la liacutenea siguiente a la ultima
Introduzca el siguiente programa utilizando AUTO
|100 INPUT Dime el primer num ero A
|105 INPUT Dime el segundo numero B
|110 PRINT A+B=A+B
|115 PRINT A-B=A-B
|120 PRINT AB=AB
Los comandos TRON y TROFF
Cuando un programa no funciona correctamente la primera vez que lo
ejecutamos se dice que contiene errores (BUGS) La mayor parte del tiempo de un
programador se pierde depurando (debuging) un programa
Una instruccioacuten que nos facilita esta labor es el comando |TRON~
Al escribir TRON antes de ejecutar un programa aparece entre corchetes ( |[]~)
el nuacutemero de liacutenea que se estaacute ejecutando junto con los textos de la ejecucioacuten
propia del programa
Para el programa |10 DATA 172399~
|20 READ NUM
|30 IF NUMltgt99 THEN PRINT NUMGOTO 20~
|40 PRINT FIN
Utilizando TRON lo
veriacuteamos asiacute |[10][20][30] 17~
|[20][30] 23~
|[20][30][40]The END
Cuando hemos localizado el error y queremos ejecutar nuestro programa
sin que aparezcan los nuacutemeros de liacutenea tenemos que teclear |TROFF~
Esto devuelve al ordenador a su modo normal de ejecucioacuten
TRON y TROFF (continuacioacuten)
El siguiente programa debe contar y escribir los nuacutemeros de la liacutenea
DATA pero por alguna razoacuten se vuelve loco al escribir el primer valor
Utilizando TRON y TROFF localice y solucione el problema
|10 DATA 3467129653884999~
|20 READ NUMIF NUM=999 THEN GOTO 60~
|30 CON=CON+1
|40 PRINT El valor del numeroCONesNUM
|50 GOTO 30~
|60 PRINT HayCONnuacutemeros en la liacutenea DATA
Primero teclee el programa y haga un |RUN~ Tras unos se gundos pulse
|Ctrl~ y |Break~ para parar el programa Teclee TRON y RETURN para entrar en
el modo TRAZADO De nuevo |RUN~ y cuando localice el problema pare de nuevo
el programa corrija el programa y entre en el modo de EJECUCION con TROFF
para hacer un |RUN~ por tercera vez
TRON y TROFF (continuacioacuten)
Aquiacute tenemos de nuevo el uacuteltimo programa Afortunadamente encontroacute
el problema en la liacutenea |50~
10 DATA 3467129653884999
20 READ NUMIF NUM=999 THEN GOTO 60
30 CON=CON+1
40 PRINT El valor del numeroCONesNUM
|50 GOTO 30~
60 PRINT HayrdquoCONrdquonuacutemeros en la liacutenea DATA
En la liacutenea deberiacutea poner |50 GOTO 20~ Tal como estaba el programa
nunca leeriacutea un nuevo valor para la variable |NUM~ luego nunca leeriacutea |999~
para marcar el fin de programa
La funcioacuten RND
La funcioacuten RND devuelve un nuacutemero al azar entre el 0 y el 1
Si queremos un nuacutemero entre el 0 y el 100 simplemente multiplicamos RND por 100
ejemplo- LET |X=RND [El valor de |X~ cumple que |0~ lt |X~ lt| 1~]
LET |Y=RND100 [El valor de |Y~ cumple que |0 ~lt |Y~ lt| 100~]
Aquiacute tenemos un programa de ejemplo que nos pide el liacutemite superior
y nos devuelve una serie de nuacutemeros al azar entre 0 y el liacutemite
Tendraacute que utilizar |Ctrl~ y |Break~ para parar el programa
|10 INPUT Introduzca el liacutemite superiorMAXIMO
|20 PRINT RNDMAXIMO
|30 GOTO 20~
La funcioacuten INT
La funcioacuten INT suprime la parte decimal de un nuacutemero entre pareacutentesis
y devuelve su parte entera redondeaacutendola
ejemplo- |LET A=INT(92)~ [Aquiacute |A~ vale |9~]
|LET K=INT(76)~ [Aquiacute |K~ vale |8~]
Aquiacute tenemos un programa que utiliza RND e INT conjuntamente
De nuevo pulse |Ctrl~ y |Break~ para acabar el programa
|10 NUMERO=RND200-100 genera un nuacutemero entre -100 y 100
|20 PRINT Cuaacutel es la parte entera deNUMEROINPUT RESPUESTA~
|30 IF RESPUESTAltgtINT(NUMERO) THEN PRINT La respuesta esINT(NUMERO)~
|40 GOTO 10~
La funcioacuten ABS
La funcioacuten ABS devuelve el valor absoluto de una expresioacuten
El valor absoluto es sencillamente el valor positivo de un numero
example LET X=ABS(-5) [Aquiacute |X~ es igual a |5~]
|LET C=ABS(124) [Aquiacute |C~ es igual a |48~]
Aquiacute tenemos un programa que utiliza las funciones RND INT y ABS
De nuevo pulse |Ctrl~ y |Break~ cuando quiera finalizar
|10 NUMERO=INT(RND200-100) Genera un nuacutemero entero entre -100 and 100
|20 PRINT Cuaacutel es el valor ABSOLUTO deNUMEROINPUT RESPUESTA~
|30 IF RESPUESTAltgtABS(NUMERO) THEN PRINT La respuestaesABS(NUMERO)~
|40 GOTO 10~
Las funciones ABS e INT (continuacioacuten)
Aquiacute tenemos un programa muy interesante para los aficionados a las
Matemaacuteticas Calcula el Maacuteximo Comuacuten Denominador de dos nuacutemeros
|10 INPUT Dime el primer nuacutemeroNUM1
|20 INPUT Dime el segundoNUM2
|30 NUM1=ABS(NUM1)NUM2=ABS(NUM2)~
|40 LET R=NUM1-NUM2INT(NUM1NUM2)~
|50 IF R=0 THEN GOTO 70~
|60 NUM1=NUM2NUM2=RGOTO 40~
|70 PRINT El maacuteximo comuacuten denominador esNUM2
copy 1991 Javier de LucasLinares
![Page 16: Introducción al Lenguaje de programacion BASIC](https://reader031.vdocuments.co/reader031/viewer/2022020218/5571f1c849795947648bade1/html5/thumbnails/16.jpg)
100 y en saltos de 5 en 5 escribiremos AUTO 1005
Para terminar de introducir el programa debemos pulsar |Ctrl~ y |Break~ al
aparecer la liacutenea siguiente a la ultima
Introduzca el siguiente programa utilizando AUTO
|100 INPUT Dime el primer num ero A
|105 INPUT Dime el segundo numero B
|110 PRINT A+B=A+B
|115 PRINT A-B=A-B
|120 PRINT AB=AB
Los comandos TRON y TROFF
Cuando un programa no funciona correctamente la primera vez que lo
ejecutamos se dice que contiene errores (BUGS) La mayor parte del tiempo de un
programador se pierde depurando (debuging) un programa
Una instruccioacuten que nos facilita esta labor es el comando |TRON~
Al escribir TRON antes de ejecutar un programa aparece entre corchetes ( |[]~)
el nuacutemero de liacutenea que se estaacute ejecutando junto con los textos de la ejecucioacuten
propia del programa
Para el programa |10 DATA 172399~
|20 READ NUM
|30 IF NUMltgt99 THEN PRINT NUMGOTO 20~
|40 PRINT FIN
Utilizando TRON lo
veriacuteamos asiacute |[10][20][30] 17~
|[20][30] 23~
|[20][30][40]The END
Cuando hemos localizado el error y queremos ejecutar nuestro programa
sin que aparezcan los nuacutemeros de liacutenea tenemos que teclear |TROFF~
Esto devuelve al ordenador a su modo normal de ejecucioacuten
TRON y TROFF (continuacioacuten)
El siguiente programa debe contar y escribir los nuacutemeros de la liacutenea
DATA pero por alguna razoacuten se vuelve loco al escribir el primer valor
Utilizando TRON y TROFF localice y solucione el problema
|10 DATA 3467129653884999~
|20 READ NUMIF NUM=999 THEN GOTO 60~
|30 CON=CON+1
|40 PRINT El valor del numeroCONesNUM
|50 GOTO 30~
|60 PRINT HayCONnuacutemeros en la liacutenea DATA
Primero teclee el programa y haga un |RUN~ Tras unos se gundos pulse
|Ctrl~ y |Break~ para parar el programa Teclee TRON y RETURN para entrar en
el modo TRAZADO De nuevo |RUN~ y cuando localice el problema pare de nuevo
el programa corrija el programa y entre en el modo de EJECUCION con TROFF
para hacer un |RUN~ por tercera vez
TRON y TROFF (continuacioacuten)
Aquiacute tenemos de nuevo el uacuteltimo programa Afortunadamente encontroacute
el problema en la liacutenea |50~
10 DATA 3467129653884999
20 READ NUMIF NUM=999 THEN GOTO 60
30 CON=CON+1
40 PRINT El valor del numeroCONesNUM
|50 GOTO 30~
60 PRINT HayrdquoCONrdquonuacutemeros en la liacutenea DATA
En la liacutenea deberiacutea poner |50 GOTO 20~ Tal como estaba el programa
nunca leeriacutea un nuevo valor para la variable |NUM~ luego nunca leeriacutea |999~
para marcar el fin de programa
La funcioacuten RND
La funcioacuten RND devuelve un nuacutemero al azar entre el 0 y el 1
Si queremos un nuacutemero entre el 0 y el 100 simplemente multiplicamos RND por 100
ejemplo- LET |X=RND [El valor de |X~ cumple que |0~ lt |X~ lt| 1~]
LET |Y=RND100 [El valor de |Y~ cumple que |0 ~lt |Y~ lt| 100~]
Aquiacute tenemos un programa de ejemplo que nos pide el liacutemite superior
y nos devuelve una serie de nuacutemeros al azar entre 0 y el liacutemite
Tendraacute que utilizar |Ctrl~ y |Break~ para parar el programa
|10 INPUT Introduzca el liacutemite superiorMAXIMO
|20 PRINT RNDMAXIMO
|30 GOTO 20~
La funcioacuten INT
La funcioacuten INT suprime la parte decimal de un nuacutemero entre pareacutentesis
y devuelve su parte entera redondeaacutendola
ejemplo- |LET A=INT(92)~ [Aquiacute |A~ vale |9~]
|LET K=INT(76)~ [Aquiacute |K~ vale |8~]
Aquiacute tenemos un programa que utiliza RND e INT conjuntamente
De nuevo pulse |Ctrl~ y |Break~ para acabar el programa
|10 NUMERO=RND200-100 genera un nuacutemero entre -100 y 100
|20 PRINT Cuaacutel es la parte entera deNUMEROINPUT RESPUESTA~
|30 IF RESPUESTAltgtINT(NUMERO) THEN PRINT La respuesta esINT(NUMERO)~
|40 GOTO 10~
La funcioacuten ABS
La funcioacuten ABS devuelve el valor absoluto de una expresioacuten
El valor absoluto es sencillamente el valor positivo de un numero
example LET X=ABS(-5) [Aquiacute |X~ es igual a |5~]
|LET C=ABS(124) [Aquiacute |C~ es igual a |48~]
Aquiacute tenemos un programa que utiliza las funciones RND INT y ABS
De nuevo pulse |Ctrl~ y |Break~ cuando quiera finalizar
|10 NUMERO=INT(RND200-100) Genera un nuacutemero entero entre -100 and 100
|20 PRINT Cuaacutel es el valor ABSOLUTO deNUMEROINPUT RESPUESTA~
|30 IF RESPUESTAltgtABS(NUMERO) THEN PRINT La respuestaesABS(NUMERO)~
|40 GOTO 10~
Las funciones ABS e INT (continuacioacuten)
Aquiacute tenemos un programa muy interesante para los aficionados a las
Matemaacuteticas Calcula el Maacuteximo Comuacuten Denominador de dos nuacutemeros
|10 INPUT Dime el primer nuacutemeroNUM1
|20 INPUT Dime el segundoNUM2
|30 NUM1=ABS(NUM1)NUM2=ABS(NUM2)~
|40 LET R=NUM1-NUM2INT(NUM1NUM2)~
|50 IF R=0 THEN GOTO 70~
|60 NUM1=NUM2NUM2=RGOTO 40~
|70 PRINT El maacuteximo comuacuten denominador esNUM2
copy 1991 Javier de LucasLinares
![Page 17: Introducción al Lenguaje de programacion BASIC](https://reader031.vdocuments.co/reader031/viewer/2022020218/5571f1c849795947648bade1/html5/thumbnails/17.jpg)
TRON y TROFF (continuacioacuten)
El siguiente programa debe contar y escribir los nuacutemeros de la liacutenea
DATA pero por alguna razoacuten se vuelve loco al escribir el primer valor
Utilizando TRON y TROFF localice y solucione el problema
|10 DATA 3467129653884999~
|20 READ NUMIF NUM=999 THEN GOTO 60~
|30 CON=CON+1
|40 PRINT El valor del numeroCONesNUM
|50 GOTO 30~
|60 PRINT HayCONnuacutemeros en la liacutenea DATA
Primero teclee el programa y haga un |RUN~ Tras unos se gundos pulse
|Ctrl~ y |Break~ para parar el programa Teclee TRON y RETURN para entrar en
el modo TRAZADO De nuevo |RUN~ y cuando localice el problema pare de nuevo
el programa corrija el programa y entre en el modo de EJECUCION con TROFF
para hacer un |RUN~ por tercera vez
TRON y TROFF (continuacioacuten)
Aquiacute tenemos de nuevo el uacuteltimo programa Afortunadamente encontroacute
el problema en la liacutenea |50~
10 DATA 3467129653884999
20 READ NUMIF NUM=999 THEN GOTO 60
30 CON=CON+1
40 PRINT El valor del numeroCONesNUM
|50 GOTO 30~
60 PRINT HayrdquoCONrdquonuacutemeros en la liacutenea DATA
En la liacutenea deberiacutea poner |50 GOTO 20~ Tal como estaba el programa
nunca leeriacutea un nuevo valor para la variable |NUM~ luego nunca leeriacutea |999~
para marcar el fin de programa
La funcioacuten RND
La funcioacuten RND devuelve un nuacutemero al azar entre el 0 y el 1
Si queremos un nuacutemero entre el 0 y el 100 simplemente multiplicamos RND por 100
ejemplo- LET |X=RND [El valor de |X~ cumple que |0~ lt |X~ lt| 1~]
LET |Y=RND100 [El valor de |Y~ cumple que |0 ~lt |Y~ lt| 100~]
Aquiacute tenemos un programa de ejemplo que nos pide el liacutemite superior
y nos devuelve una serie de nuacutemeros al azar entre 0 y el liacutemite
Tendraacute que utilizar |Ctrl~ y |Break~ para parar el programa
|10 INPUT Introduzca el liacutemite superiorMAXIMO
|20 PRINT RNDMAXIMO
|30 GOTO 20~
La funcioacuten INT
La funcioacuten INT suprime la parte decimal de un nuacutemero entre pareacutentesis
y devuelve su parte entera redondeaacutendola
ejemplo- |LET A=INT(92)~ [Aquiacute |A~ vale |9~]
|LET K=INT(76)~ [Aquiacute |K~ vale |8~]
Aquiacute tenemos un programa que utiliza RND e INT conjuntamente
De nuevo pulse |Ctrl~ y |Break~ para acabar el programa
|10 NUMERO=RND200-100 genera un nuacutemero entre -100 y 100
|20 PRINT Cuaacutel es la parte entera deNUMEROINPUT RESPUESTA~
|30 IF RESPUESTAltgtINT(NUMERO) THEN PRINT La respuesta esINT(NUMERO)~
|40 GOTO 10~
La funcioacuten ABS
La funcioacuten ABS devuelve el valor absoluto de una expresioacuten
El valor absoluto es sencillamente el valor positivo de un numero
example LET X=ABS(-5) [Aquiacute |X~ es igual a |5~]
|LET C=ABS(124) [Aquiacute |C~ es igual a |48~]
Aquiacute tenemos un programa que utiliza las funciones RND INT y ABS
De nuevo pulse |Ctrl~ y |Break~ cuando quiera finalizar
|10 NUMERO=INT(RND200-100) Genera un nuacutemero entero entre -100 and 100
|20 PRINT Cuaacutel es el valor ABSOLUTO deNUMEROINPUT RESPUESTA~
|30 IF RESPUESTAltgtABS(NUMERO) THEN PRINT La respuestaesABS(NUMERO)~
|40 GOTO 10~
Las funciones ABS e INT (continuacioacuten)
Aquiacute tenemos un programa muy interesante para los aficionados a las
Matemaacuteticas Calcula el Maacuteximo Comuacuten Denominador de dos nuacutemeros
|10 INPUT Dime el primer nuacutemeroNUM1
|20 INPUT Dime el segundoNUM2
|30 NUM1=ABS(NUM1)NUM2=ABS(NUM2)~
|40 LET R=NUM1-NUM2INT(NUM1NUM2)~
|50 IF R=0 THEN GOTO 70~
|60 NUM1=NUM2NUM2=RGOTO 40~
|70 PRINT El maacuteximo comuacuten denominador esNUM2
copy 1991 Javier de LucasLinares
![Page 18: Introducción al Lenguaje de programacion BASIC](https://reader031.vdocuments.co/reader031/viewer/2022020218/5571f1c849795947648bade1/html5/thumbnails/18.jpg)
La funcioacuten RND devuelve un nuacutemero al azar entre el 0 y el 1
Si queremos un nuacutemero entre el 0 y el 100 simplemente multiplicamos RND por 100
ejemplo- LET |X=RND [El valor de |X~ cumple que |0~ lt |X~ lt| 1~]
LET |Y=RND100 [El valor de |Y~ cumple que |0 ~lt |Y~ lt| 100~]
Aquiacute tenemos un programa de ejemplo que nos pide el liacutemite superior
y nos devuelve una serie de nuacutemeros al azar entre 0 y el liacutemite
Tendraacute que utilizar |Ctrl~ y |Break~ para parar el programa
|10 INPUT Introduzca el liacutemite superiorMAXIMO
|20 PRINT RNDMAXIMO
|30 GOTO 20~
La funcioacuten INT
La funcioacuten INT suprime la parte decimal de un nuacutemero entre pareacutentesis
y devuelve su parte entera redondeaacutendola
ejemplo- |LET A=INT(92)~ [Aquiacute |A~ vale |9~]
|LET K=INT(76)~ [Aquiacute |K~ vale |8~]
Aquiacute tenemos un programa que utiliza RND e INT conjuntamente
De nuevo pulse |Ctrl~ y |Break~ para acabar el programa
|10 NUMERO=RND200-100 genera un nuacutemero entre -100 y 100
|20 PRINT Cuaacutel es la parte entera deNUMEROINPUT RESPUESTA~
|30 IF RESPUESTAltgtINT(NUMERO) THEN PRINT La respuesta esINT(NUMERO)~
|40 GOTO 10~
La funcioacuten ABS
La funcioacuten ABS devuelve el valor absoluto de una expresioacuten
El valor absoluto es sencillamente el valor positivo de un numero
example LET X=ABS(-5) [Aquiacute |X~ es igual a |5~]
|LET C=ABS(124) [Aquiacute |C~ es igual a |48~]
Aquiacute tenemos un programa que utiliza las funciones RND INT y ABS
De nuevo pulse |Ctrl~ y |Break~ cuando quiera finalizar
|10 NUMERO=INT(RND200-100) Genera un nuacutemero entero entre -100 and 100
|20 PRINT Cuaacutel es el valor ABSOLUTO deNUMEROINPUT RESPUESTA~
|30 IF RESPUESTAltgtABS(NUMERO) THEN PRINT La respuestaesABS(NUMERO)~
|40 GOTO 10~
Las funciones ABS e INT (continuacioacuten)
Aquiacute tenemos un programa muy interesante para los aficionados a las
Matemaacuteticas Calcula el Maacuteximo Comuacuten Denominador de dos nuacutemeros
|10 INPUT Dime el primer nuacutemeroNUM1
|20 INPUT Dime el segundoNUM2
|30 NUM1=ABS(NUM1)NUM2=ABS(NUM2)~
|40 LET R=NUM1-NUM2INT(NUM1NUM2)~
|50 IF R=0 THEN GOTO 70~
|60 NUM1=NUM2NUM2=RGOTO 40~
|70 PRINT El maacuteximo comuacuten denominador esNUM2
copy 1991 Javier de LucasLinares
![Page 19: Introducción al Lenguaje de programacion BASIC](https://reader031.vdocuments.co/reader031/viewer/2022020218/5571f1c849795947648bade1/html5/thumbnails/19.jpg)
|10 NUMERO=INT(RND200-100) Genera un nuacutemero entero entre -100 and 100
|20 PRINT Cuaacutel es el valor ABSOLUTO deNUMEROINPUT RESPUESTA~
|30 IF RESPUESTAltgtABS(NUMERO) THEN PRINT La respuestaesABS(NUMERO)~
|40 GOTO 10~
Las funciones ABS e INT (continuacioacuten)
Aquiacute tenemos un programa muy interesante para los aficionados a las
Matemaacuteticas Calcula el Maacuteximo Comuacuten Denominador de dos nuacutemeros
|10 INPUT Dime el primer nuacutemeroNUM1
|20 INPUT Dime el segundoNUM2
|30 NUM1=ABS(NUM1)NUM2=ABS(NUM2)~
|40 LET R=NUM1-NUM2INT(NUM1NUM2)~
|50 IF R=0 THEN GOTO 70~
|60 NUM1=NUM2NUM2=RGOTO 40~
|70 PRINT El maacuteximo comuacuten denominador esNUM2
copy 1991 Javier de LucasLinares