introducción al lenguaje de programacion basic

19
BASIC Esta Introducción al Lenguaje Basic la escribí en el año 1989, en respuesta a una petición del PNTIC, (hoy CNICE) de elaborar un sencillo Manual para la introducción a la Programación en los currículos de Informática en la Enseñanza Secundaria de aquellos tiempos. Hoy en día, a nadie se le ocurre programar en Basic (Basic A, GW Basic, Quick Basic, Turbo Basic, etc.), pero para las personas que quieran introducirse en el mundo de los Lenguajes de Programación, el BASIC tiene un componente didáctico muy importante, porque sienta las bases de un método que luego puede servir para la mejor comprensión de otros Lenguajes. Soy de los que opinan que debe introducirse la Programación en los currículos de Informática de 3º de ESO, y nada mejor que el Basic para ello. En 4º de ESO deberían abordarse las iniciaciones a otros Lenguajes actuales, como C o C++, y en Tecnologías de la Información del Bachillerato, profundizar en los anteriores, o iniciar al alumno en Visual Basic o Java. Es importante resaltar que la inclusión de los símbolos " ~" y " |" acompañando a comandos, variables o funciones, deben obviarse para plataformas actuales, aunque he respetado el original por la componente nostálgica del documento elaborad o a finales de los ochenta, y que exigía el uso de estos símbolos en determinadas arquitecturas. INDICE Introducción al BASIC......................................................1.01 PRINT .............................................................. .......1.02 PRINT (continuación).......................................................1.03 Variables..................................................................1.04 Variables (continuación)...................................................1.05 LET .......................................................................1.06 PRINT y LET ...............................................................1.07 Números de línea...........................................................1.08 LIST ......................................................................1.09 LIST (continuación)........................................................1.10 RUN .......................................................................1.11 INPUT .....................................................................2.01

Upload: laqr

Post on 06-Jun-2015

1.640 views

Category:

Documents


5 download

DESCRIPTION

Introducción al BASIC

TRANSCRIPT

Page 1: Introducción al Lenguaje de programacion  BASIC

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

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

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

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

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

|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

|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

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

|+~ 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

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

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

|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

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

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

|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

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

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

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

|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