Lenguaje Pascal

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 35

Introduccin al Lenguaje de Programacin Pascal Ing. Rafael Montenegro B.

Lenguaje
Qu es Programacin o que significa Programar?
Programar es escribir nuestras ideas sobre un lenguaje de programacin, para que estas puedan ser entendidas por las computadoras, y as esta poder trabajar bajo las rdenes que se dan en las mismas, con el fin de resolver problemas.

Tipos de Programacin.
1. Programacin Estructurada: Consiste en dotar al programa de un cierto orden, dividindolo en bloques independientes unos de otros, que se encargan de cada una de las tareas necesarias. Esto hace un programa ms fcil de leer y modificar. 2. Programacin Orientada a Objetos: Es la programacin basada en darle instrucciones a cada objeto dentro de nuestro programa, para que esta cumpla una funcin especfica, cuando se trabaje con ella. El ejemplo ms claro es el lenguaje de Visual Basic.

Definicin de Pascal.
Lenguaje estructurado por excelencia, y que en algunas versiones tiene una potencia comparable a la del lenguaje C, como es el caso de Turbo Pascal en programacin para DOS y Windows. Frente al C tiene el inconveniente de que es menos portable, y la ventaja de que en el caso concreto de la programacin para DOS, Turbo Pascal no tiene nada que envidiar a la mayora de versiones del lenguaje C en cuanto a potencia, y adems resulta ms fcil de aprender, es muy rpido, crea ficheros EXE ms pequeos, etc..

Historia y Desarrollo de Pascal.


La versin original de Turbo Pascal fue escrita en 1982 por un joven dans llamado Anders Heilsberg y vendida en Europa como Kompass Pascal. Philipe Kahn la llevo a Estados Unidos y cre la empresa Borland International con la filosofa de venta directa del compilador a los usuarios y a un precio mdico. El primer compilador comercializado incorporaba un editor y un compilador integrado, lo cual supuso una novedad en el campo de los compiladores, ya que normalmente se comercializaban ambos programas por separado. Esta primera versin(1.0) estaba disponible para mquinas que corran bajo CP/M y MS-DOS. Posteriormente, las versiones 2.0 y 3.0 que se comercializaron en 1984 y 1985 respectivamente; incrementaron las caractersticas del compilador, permitiendo 64k para cdigo, datos y pila. La versin 3.0 (1985) incluy soporte de solapamientos,

Introduccin al Lenguaje de Programacin Pascal Ing. Rafael Montenegro B. grficos, rutinas de configuracin de pantallas y cajas de herramientas; esta versin supuso el auge de Pascal. En 1987 apareci la versin 4.0, que supuso la aparicin del concepto de unidades. Cada unidad tena su propio segmento de cdigo, hasta 64k, y una vez que una unidad era compilada, otros programas o unidades podan utilizarla sin recompilacin. El resultado fue que los programas Turbo Pascal (ahora archivos .EXE en lugar de .COM) estaban limitados en tamao solo por la memoria disponible. Con la versin 4.0 lleg el entorno integrado de desarrollo, EID (Integrated Development Environment, IDE). La versin 5.0 lleg en 1988 y aport esencialmente herramientas de depuracin. El depurador integrador incorporado a TP 5.0 permita seguimiento (traza) del cdigo, establecer puntos de ruptura y observar a modificar variables, todo ello sin dejar el EID. Otras caractersticas fueron la emulacin de coprocesadores matemticos y la incorporacin del Turbo Debbugger. En el ao 1989 supuso la introduccin de los conceptos de programacin orientada a objetos (POO), en un compilador potente y econmico: La versin 5.5. El Turbo Debbugger fue mejorado para manejar objetos. Por fin, la profesionalizacin de la POO lleg en 1990 con la incorporacin al programa de Turbo Vision (Una librera de objetos y la nueva versin 6.0). Otras propiedades especficas son: nuevo EID con soporte ratn, ensamblador incoprporado(BASM), campos privados y mtodos para objetos y compilador en la lnea de rdenes con modo protegido. En el ao 1992 Borland present la que sera ltima versin de Turbo Pascal 7.0, compatible con todas la anteriores y que ha introducido mejoras significativas, tanto el entorno integrado de desarrollo como el propio lenguaje Pascal y bibliotecas en tiempo de ejecucin, as como nuevas directivas y unidades.

Actualidad.
Hoy en da pascal, ya no es un lenguaje utilizado para la creacin de programas para empresas u otro campo, en los cuales era usado con anterioridad, debido a la mejora de muchos otros lenguajes, como lo son C++, FoxPro, BasicSin embargo, sigue siendo el lenguaje bsico para aprender otro lenguaje, y es por ello, que en los centros educativos, que ensean a programar, siempre inician con pascal. Tambin por se un lenguaje netamente estructurado, ayuda a mejorar la habilidad mental para estructurar nuestras ideas.

Introduccin al Lenguaje de Programacin Pascal Ing. Rafael Montenegro B.

Primeros Pasos.
Conceptos Importantes:
Identificador: nombre. Caractersticas del Identificador: 1. No puede iniciar con nmeros. 2. No puede contener caracteres especiales. 3. No puede contener espacios. Nombre: espacio de memoria para un valor que puede ser constante o variable. Constante: Datos que permanecer con el mismo valor dentro del programa. Slo se podr modificar desde el cdigo fuente o cdigo del programa. Ejemplo: velocidad de la luz=300000 Km/s. Variable: dato que puede variar dentro del programa, es decir, que es susceptible a tener cualquier valor. Ejemplo: x, y, z Comentario: informacin acerca de lo que se hace en las lneas de cdigo, con el fin de hacer el mismo, ms legible para nosotros y para cualquier otra persona. Los comentarios son ingnorados por el compilador. La estructura de un comentario es: (*comentario*) o {comentario}. Estructura Bsica de un Programa en Pascal.
Program x; Uses crt; Const Encabezado Var Begin Clrscr; Cuerpo del Programa (Instrucciones) Readln; End. Fin del Programa Ingresar Datos. Procesar Datos. Mostrar Datos.

Algo que hay que tener muy en cuenta es que todas las palabras reservadas de Pascal as como de la mayora de lenguajes de programacin, estn escritas en ingls, como lo

Introduccin al Lenguaje de Programacin Pascal Ing. Rafael Montenegro B. son program, beginPascal no encuentra diferencia entre mayscula o minscula de las misma, por ello BEGIN es igual Begin o begin. La escritura, es diferente segn el estilo del programador; en mi caso, por lo regular siempre trabajo con inicial maysculas y luego todas minsculas.

Primer Programa en Pascal: este programa sumar dos nmeros, mostrando el


nombre del programador. Program suma_programador; (*nombre del programa*) Uses crt; (*asignacin de la librera que se va a utilizar en el programa*) Var a,b,:integer; (*determinacin de las variable con su tipo*) Begin (*comienzo del programa o cuerpo del mismo*) Clrscr; (*borramos pantalla*) Writeln(Programado por: Rafael Montenegro); (*Escribimos en pantalla la frase: Programado por: Rafael Montenegro*) Writeln(Introduzca el primer sumando:); (*Pedimos la introduccin del dato*); Readln(a); (*leemos el dato*) Writeln(Introduzca el segundo sumando:); Readln(b); Writeln(La suma es:,a+b); (*Escribimos en pantalla La suma es, seguidamente calculamos la suma (a+b) para mostrarla en pantalla*) Readln; (*leemos todo el proceso del programa*) End. (*fin del programa*)

Comentando el Programa: en el ejemplo anterior podemos observar las partes


bsicas de la estructura de un programa. Para escribir en pantalla el nombre del programador, simplemente lo escribo con la funcin writeln. Para hallar la suma entre a y b, primero pido al usuario la introduccin de los datos (a y b), los cuales los almacenamos y leemos en memoria con la funcin readln, para luego procesarlos. Para mostrar la suma, volvemos a utilizar writeln, y sumamos a y b utilizando el operador inter-argumental +. Algo muy importante en esto, es la escritura de la sentencia, antes de mostrar la suma (,); Para poder procesar los datos, primero tienen que estar definidos en el programa (a,b:integer), junto con su tipo de dato, lo cual se explicar en

Introduccin al Lenguaje de Programacin Pascal Ing. Rafael Montenegro B. el captulo siguiente. Sobre la entrada y salida de datos, lo presentar mas detalladamente, en su captulo correspondiente.

Programa Diferencia entre Writeln y Write: analice el siguiente programa (ser


necesario que lo compile en pascal), y luego mencione la diferencia entre writeln y write. Intente no leerla primero. Programa diferencia_comandos; Uses crt; Begin Clrscr; Writeln(Mi nombre es: Rafael Montenegro); Write(Soy Profesor de la Aldea Cristo Rey); Readln; End.

Comentando el Programa: este ejemplo, fue creado para verificar la diferencia


que existe entre writeln y write. Antes de todo, Qu diferencia encontr Ud.?. Compare su respuesta con la explicacin siguiente. Los dos comandos sirven para escribir en pantalla, la diferencia radica que writeln, escribe, y posiciona el cursor en la lnea siguiente (en otros trminos, la de abajo); en cambio write, posiciona el cursor a continuacin de lo que se escribe en pantalla.

Ejercicios:
A continuacin realice los programas siguientes. 1. Realice un programa que muestre en pantalla la frase: Hola!!! y su nombre, luego de haber introducido el mismo. (Hola!!! David). 2. Realice un programa que muestre en pantalla: Mi nombre es: su nombre, luego de haberlo introducido (Mi nombre es David).

Por hoy es todo; recuerde, que la programacin es como la matemtica, entre ms se practique, se ser ms gil, y con ello se resolvern ms fcilmente los problemas.

Introduccin al Lenguaje de Programacin Pascal Ing. Rafael Montenegro B.

Consejo de Avance Rpido: Declaracin de Constantes y Posicin de Texto.


Declaracin de Constantes: Una constante tiene un valor fijo dentro del programa, slo se puede cambiar dentro del cdigo fuente. Se declaran luego de la librera que se utiliza, con la siguiente estructura: Const Nombre=valor; Ejemplo: Este programa muestra el valor de pi, utilizando una constante para guardar el valor. Program constante; Uses crt; Const Pi=3.1416; Begin Clrscr; Writeln(pi); Readln; End. Posicin de Texto: para colocar el texto en cierta parte de la pantalla (tome en cuenta que la pantalla contiene 80 columnas y 25 filas) utilizamos la funcin gotoxy(x,y), donde X es el nmero de columna y Y el nmero de fila. Su estructura es la siguiente: Gotoxy(nmero de columna,nmero de fila); Writeln(Aqu va el texto);

Tipos de Datos.
Integer: Es un nmero entero con signo, que puede valer desde -32768 hasta 32767.
Ocupa 2 bytes de memoria.

Byte: Es un nmero entero, que puede valer entre 0 y 255. El espacio que ocupa en
memoria es el de 1 byte, como su propio nombre indica.

Char: Representa a un carcter (letra, nmero o smbolo). Ocupa 1 byte. String: Es una cadena de caracteres, empleado para almacenar y representar
mensajes de ms de una letra (hasta 255). Ocupa 256 bytes.

Real: Es un nmero real con signo. Puede almacenar nmeros con valores entre 2.9e39 y 1.7e38 (en notacin cientfica, e5 equivale a multiplicar por 10 elevado a 5, es decir, podremos guardar nmeros tan grandes como un 17 seguido de 37 ceros, o tan pequeos como 0,00...029 con 38 ceros detrs de la coma). Tendremos 11 o 12 dgitos significativos y ocupan 6 bytes en memoria.

Boolean: Es una variable lgica, que puede valer TRUE (verdadero) o FALSE (falso), y
se usa para comprobar condiciones.

Array: (nota: algunos autores traducen esta palabra como "arreglo"). Se utilizan para
guardar una serie de elementos, todos los cuales son del mismo tipo. Se deber indicar el ndice inferior y superior (desde dnde y hasta dnde queremos contar), separados

Introduccin al Lenguaje de Programacin Pascal Ing. Rafael Montenegro B. por dos puntos (..), as como el tipo de datos. Por ejemplo, para guardar hasta 200 nmeros enteros, usaramos: lista: array[1..200] of integer. Al estar creando programas, es muy importante determinar el tipo de dato correcto para nuestras variables, y con ello, hacer ms eficaz el programa. Por ejemplo, si en su programa, solo necesitar introducir una letra, el tipo de dato de su variable, ser char, y no un estring; aunque claro, que se puede utilizar string, pero lo que buscamos es el mejor rendimiento del programa.

Programa Ejemplo del funcionamiento de los Diferentes tipos de datos:


en este programa, se propone que analice el programa, para verificar como se trabajan con algunos tipos de datos. Program tipos_datos;{nombre del programa} Uses crt;{librera que usamos} Var {a lo que vamos} a: integer; {la variable a tendr el rango de integer} b:byte; {la variable b, no podr ser mayor que 255} c:char; {slo se leer una letra, en el caso de que introduzca una cadena de caracteres} d:string;{leer una o ms letras} e:real;{leer cualquier nmero, decimal o no decimal} writeln(Introduzca un nmero:);{solicitud para el usuario} readln(a); {leemos la variable a} writeln(Introdujo:,a); writeln(Introduzca un nmero:); readln(b); writeln(Introdujo:,b); writeln(Introduzca una letra:); readln(c); writeln(Introdujo:,c); writeln(Introduzca un texto); readln(d); writeln(Introdujo:,d); writeln(Vuelva a introducir un nmero:);

Introduccin al Lenguaje de Programacin Pascal Ing. Rafael Montenegro B. readln(e); writeln(Introdujo:,e); readln; {leemos el proceso del programa} end. {fin del programa}

Comentando el Programa: en este programa, se puede comprobar la diferencia


que existe entre un tipo de dato y otro, ya sea de caracteres o nmeros; por ejemplo, si a la variable b (no puede ser mayor que 255), se le asigna el valor de 310, puede ocurrir que escriba cualquier otro nmero, menos el introducido. Si en caso se introducieran letras, ocurrira el error 116: invalid numeric format. Lo mismo puede ocurrir con los otros tipos de datos, al no introducir el dato, que entre en el rango del tipo de dato. Con ello, vemos la necesidad de definir bien el tipo de dato, al realizar un programa.

Programa Divisin con el inter-argumental /: en este programa se explicar


el porque del uso de /, en una divisin. Program division1; Uses crt; Var a,b:real; {las variables sern de tipo real} begin {inicio} clrscr; {limpio pantalla} writeln(Introduzca un nmero (dividendo):); {peticin al usuario} readln(a); {leemos y almacenasmo en memoria la variable} writeln(Introduzca otro nmero (divisior):); readln(b); writeln(El cociene es:,a/b); {calculamos y mostramos en pantalla la divisin entre a y b(a/b)} Readln; End.

Comentando el Programa: el programa realiza una nica actividad, que es la


divisin entre dos nmeros. Como nuestras variable son de tipo real, es necesario utilizar el operador inter-argumental / (porque nuestro resultado ser de real, incluye decimales, si la divisin no es exacta), de lo contrario, (si utilizamos div), ocurrira el error, 41, operand types do not match operator, por no coincidir el tipo de dato utilizado para las variables, y el inter-argumental, que se desea usar.

Introduccin al Lenguaje de Programacin Pascal Ing. Rafael Montenegro B.

Programa Divisin con Div y utilizacin de Mod: en este, programa se


explicar cuando se debe utilizar div, y para qu se usa mod. Program division_exacta_resto; Uses crt; Var a,b,c,d:integer; {el tipo de dato ahora es integer, para las variables} begin clrscr; writeln(Introduzca un nmero (dividendo)); {solicitud al usuario} readln(a); {leemos el nmero introducido} writeln(Introduzca otro nmero (divisor)); readln(b); c:=a div b; {hallamos la divisin entre a y b} writeln(La divisin es:,a); {mostramos en pantalla la divisin entre a y b} d:=a mod b; {hallamos el residuo entre a y b} writeln(El resto es:,d); {mostramos en pantalla el residuo de la divisin entre a y b} readln; end.

Comentando el programa: como me imagino que ya interpreto el cdigo del


programa, para qu sirve mod, y cundo debemos utilizar div?. El comando div, lo demos utilizar para dividir, nmeros, en donde las variables sean de tipo integer, (o de tipo byte, teniendo en cuenta el rango de este tipo) de lo contario, (si lo usamos con reales), el programa contendr un error. Con div, slo podremos mostrar enteros en el cociente. Por otro lado, el comando mod, lo usamos para hallar el residuo entre dos nmeros, que tienen que ser de tipo integer. Ejemplo: 15 mod 6, el residuo es 3, porque 15 slo puede contener dos, seis.

Introduccin al Lenguaje de Programacin Pascal Ing. Rafael Montenegro B.

Ejercicios.
Realice lo que se le pide. 1. Si tuviera que realizar un programa que sumara dos 2 nmeros menores que 100 (slo nmeros positivos), que tipo de dato utilizara.:___________________________ 2. Si en un programa, tuviera que leer el nombre de una persona que tipo de dato usara:____________________________________________ 3. Cree un programa que reste dos nmeros, ya sean positivos o negativos, y que muestre la diferencia en pantalla. 4. Realice un programa que multiplique x y z, donde dichos nmeros no son mayores que 255.

De aplicacin inmediata: Operandos Aritmticos y Funciones Matemticas. Los operandos aritmticos son de tipo inter-argumental porque van entre dos datos. Ejemplo: a + b; menos elevacin al cuadrado y raz cuadrada, que al igual que las funciones matemticas son de tipo mono argumental, porque no van entre dos datos. Ejemplo: sqr(a).
Operandos Aritmticas. Operando + * / div mod := sqr sqrt Funcin. Suma Resta Multiplicacin Divisin real Divisin entera. Residuo. Asignacin Elevacin al cuadrado Raz cuadrada. Int(var) Frac(var) Trunc(var) Round(var) Abs(var) Ln(var) Exp(var) ArcTan(var) Sin(var) Cos(var) Funciones Matemticas. Devuelve la parte entera de un real Devuelve la parte decimal de un real. Devuelve a var, sin la fraccin. Devuelve el redondeo de var Devuelve el valor absoluto de var Devuelve el logaritmo natural del argumento var Devuelve el exponencial e de var Devuelve en radianes el arco tangente del ngulo var. Devuelve en radianes el seno del ngulo var Devuelve en radianes el coseno del ngulo var

Entrada / Salida de Datos.


Un programa es intil, si no permite la entrada de datos, para poderlos procesar y luego, dar salida a estos. En partes anteriores de este manual, ya estudiamos como mostrar datos en pantalla con la funcin writeln y write, y adems ya utilizamos la funcin readln, para aceptar la informacin introducida por el usuario. Definiendo nuevamente writeln, sabemos que esta funcin posiciona el cursor en la siguiente

Introduccin al Lenguaje de Programacin Pascal Ing. Rafael Montenegro B. lnea, en cambio write posiciona el cursor al final de lo escrito; con la funcin readln, almacenamos en memoria (leemos), la informacin, para luego poderla procesar. Ahora, estudiaremos estas funciones, con sus diferentes posibilidades, que pueden aceptar.

Salida de la Informacin:
Anchura de Texto: quizs es un opcin muy poco utilizada, sin embargo es muy
necesario saber como se utiliza. Su estructura es la siguiente: Writeln(texto:anchura); Ejemplo: el siguiente ejemplo, muestra la anchura de diferentes textos. program texto_anchura; uses crt; var nombre: string[4]; edad: byte; begin clrscr; nombre := 'Gaby'; edad := 18; write ('Hola, ',nombre,' cmo ests? '); writeln('Hola,',nombre:10,'. Tu edad es: ',edad:18); readln; end.

Comentando el Programa: en este programa se demuestra el funcionamiento de


la anchura de un texto, lo cual no es ms que la posicin en la pantalla. En la lnea 11, se escribe el nombre (Pepe), en la columna 10, y la edad en la columna 10. En el programa ya compilado, podr observar mejor esta ubicacin. Otra caractersitica importante, obtenida de este ejemplo, es la de la estructura del tipo de dato; este es de tipo estring, pero no se le podr introducir un nmero mayor de 4 caracteres incluyendo espacios nulos; si se hace lo contario por ejemplo si a la variable nombre le asigna el nombre de Mara, solo se mostrar en pantalla Mar, porque la cadena solo tiene espacio para 4 caracteres.

Anchura de Nmeros: esta opcin si es muy utilizada, ms por personas que


comienzan a programar, ya que deben indicar el nmero de decimales, que desean para sus datos obtenidos; lo anterior es la funcin de dicha opcin, es decir especificar la cantidad de decimales, que puede contener la variable de la respuesta. Su estructura bsica es:

Introduccin al Lenguaje de Programacin Pascal Ing. Rafael Montenegro B. variable:0:cantidad de decimales Ejemplo: el siguiente programa muestra en pantalla la constante pi, con 1, 2, 3 y 4 decimales. Anlicelo. Program anchura_numeros; Uses crt; Cont Pi=3.1416; Begin Clrscr; Writeln(Pi con un decimal:,pi:0:1); Writeln(Pi con dos decimales:,pi:0:2); Writeln(Pi con tres decimales:,pi:0:3); Writeln(Pi con 4 decimales:,pi:0:4); Readln; End.

Comentando el Programa: con este, podemos observar la manera de colocarle


anchura a los nmeros. Primero escribimos la constante pi, con un decimal y en pantalla nos debe mostrar 3.1; con 4 decimales, nos debe mostrar 3.1416.

Entrada de Informacin:

sabemos que para la introduccin de datos, es

necesario leerlos, para poderlos almacenar en memoria y as poder trabajar con ellos; existen 2 comandos para poder hacer dicha accin, los cuales son read, y readln; cul ser la diferencia entre ambos?. El siguiente programa muestra la diferencia existente. Program entrada_datos; Uses crt; Var a,b:integer; begin clrsacr; writeln(Introduzca un nmero); readln(a), wrieln(Introduzca otro nmero); reead(b); readln; end.

Introduccin al Lenguaje de Programacin Pascal Ing. Rafael Montenegro B.

Comentando el Programa: haga trabajar el programa, y analcelo


tranquilamente;Qu diferencia encontr entre readln y read?. La diferencia entre readln y read, es que el primero, posiciona el cursor en la siguiente lnea, para leer los datos en esa ubicacin; en cambio el segundo comando, posiciona el cursor al final de lo que lee, y lee lo que contina.

Ejercicios:
1. Realice un programa que pida un nombre, no mayor a 5 caracteres y lo muestre en pantalla en la ubicacin 18 (columna 18). 2. Hacer un programa que muestre los siguientes datos en sus ubicaciones. (el nombre hay que introducirlo). a. Edad: 15; ubicacin 15. b. Telfono: 7765 8525; ubicacin 18. c. Sobre nombre: el xx; ubicacin 24.
De aplicacin inmediata: Las funciones textbackground y textcolor. Ests dos funciones, nos sirven nicamente para darle una mejor vista a nuestro programa; textbackground sirve para especificar el color de fondo de nuestra ventana; su estructura es la siguiente: textbackcolor(color), ejemplo textbackground(blue). La funcin textcolor sirve para especificar el color para la letra. Su estructura es: textcolor(color), ejemplo textcolor(red). Para verificar estas funciones compruebe y analice el siguiente programa; Program color_fondo_letras; Uses crt; Begin Textbackground(blue); Clrscr; Textcolor(red); Writeln(Yo soy davwa); Txtcolor(blue); Writeln(Aprendiendo a utilizar textbackgroun0064 y textcolor); Readln; End.

Estructuras de Decisin.
Las estructuras de decisin son: if y case. Ests nos sirven para comparar los datos que poseemos, y as trabajar de una u otra forma.

Introduccin al Lenguaje de Programacin Pascal Ing. Rafael Montenegro B.

Sentencia IF.
La sentencia if, nos sirve para que el programa compare datos, y trabaje segn el resultado obtenido. Dicha sentencia tiene dos formatos especiales, el primero es:

1. IFTHEN.
If <condicin>then<sentencias> Traduciendo, esto al espaol, sera: si condicin entonces realice esto

Ejemplo: el siguiente programa solicita un nmero entero , si este es menor que 100,
y mayor o igual que 10 muestra en pantalla: el nmero introducido esta formado por decenas y unidades; si el nmero introducido es menor que 10, y mayor que 0 muestra: el nmero introducido esta formado por unidades.
Program prueba_if1; Uses crt; Var a:byte: begin clrscr; writeln(Introduzca un nmero (>0 y <100):); {peticin al usuario} readln(a); {leemos lo introducido por el usuario} if (a<100) and (a>=10) then {comparamos la variable} writeln(El nmero introducido esta formado por decenas y unidades); {si cumple con nuestra condicin escribimos esto} if (a<10) and (a>0) then {volvemos a comparar la variable} writeln(El nmero introducido esta formado por unidades); {si cumple, escribimos esto} readln; end.

Comentando el Programa: utilizamos la sentencia if, para comparar dos veces la


variable; pero a la vez que comparamos la variable, utilizamos el operador lgico and (y) para hacerle un lmite inferos y superior a nuestro programa; la segunda comparacin tambin utiliza el operador relacional and. Tambin podemos observar que al final de la lnea del ifthen, no termina con punto y coma; sin embargo puede terminar, o no con punto y coma, y el programa corre.

Introduccin al Lenguaje de Programacin Pascal Ing. Rafael Montenegro B. El segundo formato de if es:

2. THENELSE
If <condicin> then <sentencias> else <sentencias> En el lenguaje comn sera: si la condicin se cumple haga esto, de lo contrario esto.

Ejemplo: este ejemplo, es el mismo que el anterior con el primer formato de if;
Program prueba_if2; Uses crt; Var a:byte: begin clrscr; writeln(Introduzca un nmero (>0 y <100):); {peticin al usuario} readln(a); {leemos lo introducido por el usuario} if (a<100) and (a>=10) then {comparamos la variable} writeln(El nmero introducido esta formado por decenas y unidades) {si cumple con nuestra condicin escribimos esto} else {de lo contrario} writeln(El nmero introducido esta formado por unidades); {si cumple, escribimos esto} readln; end.

Comentando el Programa: como podemos observar con ELSE, ya no es necesario


compara nuevamente la variable, sino que slo, con que no se cumpla la condicin, el programa pasa a la sentencia else. Es muy importante notar que la lnea anterior de else, no lleva punto y coma, ni tampoco else. Si colocaramos punto y coma, el programa no funcionaria adecuadamente. Haga la prueba. Tambin con la estrucutra if, se pueden crear if anidadados, junto con else.

Introduccin al Lenguaje de Programacin Pascal Ing. Rafael Montenegro B.

Por ejemplo: el siguiente programa comprueba los nmero del 1 al 5;


program ifanidados; uses crt; var a:byte; begin clrscr; writeln('Introduzca un nmero (>0 y <=5):'); readln(a); if a=5 then writeln('el nmero introducido es 5') else if a=4 then writeln('el nmero introducido es 4') else if a=3 then writeln('el nmero introducido es 3') else if a=2 then writeln('el nmero introducido es 2') else writeln('el nmero introducido es 1'); readln; end.

Comentando el Programa: hay formas ms fciles de hacer el programa anterior.


Comparamos la variable, y si cumple escribimos en pantalla. Utilizamos else if, para hacer lo contrario de la condicin anterior, por si esta no se cumple; es muy importante saber, que else, hace lo contario de la sentencia anterior. Y as la sentencia else if a=4 hace lo contrario de else if a=3, y no lo contario de if a=5.

EJERCICIOS:
Una empresa necesita contratar a empleados para la seccin de administracin, pero las personas tienen que cumplir con lo siguiente: Si es: a. Masculino; edad entre 18 y 25; aceptado;

Introduccin al Lenguaje de Programacin Pascal Ing. Rafael Montenegro B.


De aplicacin inmediata: Operandos Aritmticos y Funciones Matemticas. Operandos Relacionales Operandos Lgicos.. Operando < > <= >= <> = Funcin. Menor que Mayor que Menor o igual que Mayor o igual que Desigualdad Igualdad Operando And O Xor Not Ord() Succ() Pred() Inc() Dec() Funcin Y Y Bicondicional Negacin Ordinal Sucesor Antecesor Incremento Decremento

Case.
La estructura de decisin case, nos sirve para trabajar con casos. Es muy til en la creacin de mens, porque nos permite darle instrucciones al programa, si el caso es x, o si el caso es y. Es muy importante saber, que el tipo de dato, de la opcin tiene que ser INTEGER. Tiene dos formatos bsicos que son:

Formato 1:
Case <opcin> of Case 1: sentencias; Case 2: sentencias; Case n: sentencias Else Sentencias; End;

Introduccin al Lenguaje de Programacin Pascal Ing. Rafael Montenegro B.

Ejemplo: el siguiente programa pide un nmero <5 y escribe en pantalla los nmero
del 0 al 5, con letras. program casosejemplos; uses crt; var a:integer; begin clrscr; writeln('Introduzca un nmero (<5):');readln(a); case a of {lee el caso} 1:writeln('uno'); {si es el caso 1, escribe uno} 2:writeln('dos'); 3:writeln('tres'); 4:writeln('cuatro'); 5:writeln('cicno'); 0:writeln('cero') Else{si se introduce un caso no disponible} Writeln(ERROR en introduccin de datos); end; {final de los casos} readln; end.

Comentando el Programa: el programa comprueba los casos, y segn el caso


introducido, es lo que escribe en pantalla; tambin hago uso de un else, para que el programa al recibir un caso no estipulado, muestre en pantalla, un mensaje de error. Terminamos el caso con un end; el else, funciona de la misma manera que con la estructura if.

El formato 2:
Case <opcin> of 1:begin <sentencias> End; 2:begin <sentencias> End;

Introduccin al Lenguaje de Programacin Pascal Ing. Rafael Montenegro B. n:begin <sentencias> End; End; {final de los casos} Este formato puede ayudarnos a crear programas ms complejos ya que dentro de cada caso, podemos incluir otras estructuras como lo son los If

Ejemplo: el siguiente programa pide la introduccin de un nmero menor o igual que


2; si el caso es uno le suma 5, si el caso es 2 le suma 10. program formato2_casos; uses crt; var a:integer; begin clrscr; writeln('Introduzca un nmero (<3):'); readln(a); case a of 1:begin{inicio del caso 1} a:=a+5; writeln('El caso 1 da un valor de:',a); end;{fin del caso 1} 2:begin{inicio del caso 2} a:=a+10; writeln('El caso 2 da un valor de:',a); end{fin del caso 2} else{si el caso introducido no existe} writeln('ERROR en introduccin de datos');{escribe mensaje de error} end; readln; end.

Introduccin al Lenguaje de Programacin Pascal Ing. Rafael Montenegro B.

Comentando el Programa: vuelvo a usar else, para dar un mensaje de error, si el


caso introducido no existe; en la estructura del programa se puede notar que cada caso inicia con un begin y termina con un end, de lo contario el programa no reconocer el caso 2, porque esta dentro del caso 1. En este ejemplo, las sentencias entre el begin y end, de cada caso son muy simples, pero sin embargo, de acuerdo al programa que se este creando pueden ser ms complejas.

Ejercicios:
1. ree una calculadora, utilizando un men. a. l usuario debe escoger la operacin que quiera realizar. b. a calculadora debe contener las siguientes operaciones: suma, resta, producto, cociente. C E L

Consejo de Avance Rpido: Procedimientos y Funciones. Los procedimientos son muy tiles, para hacer subdivisiones del programa. Tienen la caracterstica especial, de que no devuelven valores resultados. En cambio las funciones, si devuelven resultados. A continuacin se presenta la estructura bsica de los procedimientos y funciones. Procedimiento Funcin. Procedure nombre (variable: Function nombre(variable:integer):real integer) Var Var Begin Begin Sentencia; Sentencias; varReal:=variable; End; end; Begin Begin Sentencias (Nombre (variable)); A:=nombre(x); End. End.

Ciclos Repetitivos.
En esta parte se aprender la utilizacin de los mencionados bucles, los cuales son partes de programas que se repiten una serie de veces. Entre ellos estn: Fortodo Whiledo Repeatuntil.

Introduccin al Lenguaje de Programacin Pascal Ing. Rafael Montenegro B.

For To
Este bucle tiene el siguiente formato: For (variable): <valor inicial> to <valor final> do

Ejemplo: el siguiente programa muestra en pantalla los nmeros del 1 al 25;


program prueba_for1; uses crt; var valor:integer; begin clrscr; for valor:= 1 to 25 do {asigna el rango a escribir a la variable} writeln(valor); {escribimos el valor} readln; end.

Comentando el Programa: como se puede observar, la utilizacin del bucle for es


sencilla. Del anterior programa lo que es muy importante es observar que el final del bucle for no termina con punto y coma, ya que si as fuera, slo se escribira en pantalla el ltimo nmero (valor final).

Ejemplo: Tambin se puede utilizar for, para trabajar con letras. El siguiente
programa muestra en pantalla las letras de la a a la h. program prueba_for2; uses crt; var a:char; begin clrscr; for a:= 'a' to 'h' do writeln(a); readln; end.

Introduccin al Lenguaje de Programacin Pascal Ing. Rafael Montenegro B.

Comentando el Programa: para la utilizacin de letras con for, es de la misma


manera que con nmeros. Sigue la ausencia de punto y coma al final de la lnea de for, de lo contrario, sucede lo mismo que con los nmeros. Hasta ahora, toda va bien, pero se ha preguntado si se puede contar al revs, es decir, comenzar del valor final al valor inicial. Ahora vallamos a eso:

Ejemplo: el siguiente programa escribe las letras de la z a la g;


program prueba_for3; uses crt; var a:char; begin clrscr; For a:='z' downto 'g' do writeln(a); readln; end.

Comentando el Programa: toda la estructura para escribir del valor final al valor
inicial es la misma, rescatando el cambio de to en la lnea de for, por downto. Entonces, concluimos que downto es el comando, que se utiliza para escribir de dicha manera.

Ejercicios:
1. Realice un programa que muestre la tabla de multiplicar de 1 a 12 con 10 factores.

Introduccin al Lenguaje de Programacin Pascal Ing. Rafael Montenegro B. Consejo de Avance: Funciones de Cadena.
A continuacin se describen las funciones o comandos bsicos para trabajar con cadenas. Cadenas, podemos definirla como series de texto, o simplemente texto; entonces estos son los comandos bsicos para trabajar con texto. Comando Funcin. Clreol Concat(cad1, cad2) Copy(cad,ndice,lim); Delete(cad,ndice,lim); Borra lnea actual Une dos cadenas dejando el resultado en cadena 1 Devuelve una cadena que va desde el ndice hasta el lmite Borra una subcadena que se encuentra en cadena de ndice hasta el lmite Borra lnea de texto donde esta el cursor Inserta en cad1, cad2 desde la posicin de ndice. Inserta una lnea vaca en la posicin actual Devuelve la longitud de la cadena. Devuelve la posicin de cad1 dentro de cad2 Devuelve la posicin del cursor en la horizontal. Devuelve la posicin del cursor en la vertical. Convierte una cadena a un nmero n si hay xito Num=0

Deline Insert(cad1,cad2,ndice) Insline Length(cad) Pos(cad1,cad2) WhereX Where Y Val(cad,N,num)

While do
Este es un bucle que se ejecuta si su condicin es verdadera, de lo contario, no se ejecutar. Su estructura principal es: While <condicin>do Sentencias;

Ejemplo: el siguiente programa muestra mi nombre si se pulsa el nmero 1, de lo


contario el programa se detiene. program prueba_while1; uses crt; var a:integer; begin clrscr; writeln('Introduzca cdigo del nombre:'); readln(a); while a=1 do writeln('Mi nombre es:Davwa'); readln; end.

Introduccin al Lenguaje de Programacin Pascal Ing. Rafael Montenegro B.

Comentando el Programa: como se menciono anteriormente el bucle while slo


se ejecuta si la condicin es verdadera de lo contario, no se ejecutara, por ello, si al programa se le introduce un nmero que no que no sea 1 entonces el programa no mostrar nada en pantalla; pero si se introduce uno que es la condicin establecida, el programa mostrar mi nombre. Sin embargo este programa tiene un error, que es que al introducir uno, la pantalla escribe en pantalla un sinfn de veces la sentencia. Esto se debe a que while es un bucle, y sabemos que estos, repiten una parte del programa varias veces. Comprubelo, e intente resolver el problema.

Ejercicios:
1. programa que al introducir s o S, suma dos nmeros. 2. Un programa que pida el ingreso de una oracin, y si la oracin no es nula, mostrar la longitud (cantidad de caracteres) de la frase. Realice un

Consejo de Avance: Funciones de Sistema. Aunque en el presente manual, no se estudiar el Servicio del DOS (o lo que es en la actualidad el smbolo del sistema),dentro de el lenguaje de pascal, a continuacin se presentan algunas de las funciones bsicas de ste. Si tiene el deseo de ser un buen programador, el estudio de ests as como otras funciones, son la forma que se lo demuestre a s mismo. Funcin Descripcin. ChDir(cad) diskFree(unidad); DiskSize(unidad); DosExitCode; DosVersion; Exec(prog,ordenes) Exit; FreeMem(apuntador,num) Fsearch(arch,path,listDir); Fslipt(arch,path,Dir,Nombre,ext); GetDir(unidad,cad); GetFTime(apuntador,hora); GetMem(apuntador,n); GetTime(hora, min,seg,cent); GetVerify(opcin) Keep(cdigo), MkDir(cad); Rename (apuntador, cad); RmDir(dir); Cambia de directorio actual Devuelve la cantidad de bytes libres en un disco Devuelve la cantidad de bytes en un disco Devuelve el cdigo de salida de un programa hijo. Devuelve el nmero de versin actual del DOS. Se ejecuta un prog, con lneas de rdenes. Se termina un programa o subprograma. Libera num de memoria de la pila asociada con apuntador. Devuelve cadena y busca en la ListDir un nombre de archivo. Divide un arhivo, en unidad, directorio, nombre y extensin. Devuelve el directorio actual en la unidad especfica. Devuelve hora del archivo que apunta el apuntador. Reserva n bytes de memoria asigna la direccin de apuntador. Obtiene el tiempo actual del sistema. Pone el estado de verificacin de el DOS. Deja un programa residente, el DOS toma el cdigo de salida. Crea un directorio con nombre que tiene cad. Renombre un archivo apuntado con el nombre que tiene cad. Elimina un directorio especificado sin archivos dentro.

Sugerencia: al utilizar funciones del DOS, asegrese de estar usando la librera de ste (uses dos).

Introduccin al Lenguaje de Programacin Pascal Ing. Rafael Montenegro B.

Repeat Until.
Como sabemos, esta es otra sentencia de repeticin o simplemente es otro tipo de bucle. Esta se repite mientras su condicin no sea verdadera. Es muy til en contraseas para los programas. Su estructura bsica es la siguiente: Repeat Sentencias; Until (condicin);

Ejemplo de Clave de Ingreso: el siguiente programa pide la introduccin de


clave de entrada al programa; este muestra en pantalla, mi nombre. program prueba_repeat1; uses crt; var clav:string[3]; begin repeat clrscr; writeln('introduzca clave de ingreso:'); readln(clav); until (clav='666'); writeln('Mi nombre es:Rafael'); readln; end.

Comentando el Programa: al ejecutar el programa y al no introducir la clave


correcta el programa vuelve a pedirla, siendo esta parte del programa manejada por la sentencia repeatuntil. El repeat, va despus del begin, y el ntil va al final de las sentencias, que deseamos que estn involucradas con entre ellos, imponiendo una condicin. En este caso, la condicin esta escrita en apstrofes, ya que de lo contario, el programa no lo reconocera. El programa escribir el nombre en pantalla hasta que la clave de entrada sea 666.

Introduccin al Lenguaje de Programacin Pascal Ing. Rafael Montenegro B.

Ejemplo de Clave de Salida: aqu va otro ejemplo, que realiza lo contrario del
anterior. program prueba_repeat2; uses crt; var clav:string[3]; begin clrscr; writeln('Mi nombre es:Rafael'); writeln;writeln;{dos lineas de espacio vertical} readkey; repeat clrscr; writeln('Introduzca clave de salida:'); readln(clav); until (clav='666'); readln; end.

Comentando el Programa: este programa tiene la estructura bsica del


programa de clave de ingreso, teniendo de distinto lo siguiente: Luego de observar el nombre, y pulsamos una tecla (para ello se utiliza readkey), se borra la pantalla y se pide el ingreso de clave de salida; esta seguir siendo solicitada hasta que se introduzca la correcta, y automticamente el programa se detendr. Algo que hay que tomar muy en cuenta, es la declaracin de la variable de la clave, la cual slo admite 3 caracteres de longitud. (clav:string[3]).

Ejercicio:
Hacer un programa que adivinar un nmero el cual debe funcionar as: Una persona ingresa el nmero de oportunidades a admitir para adivinar el nmero, y a la vez tambin introduce el nmero. Otra persona, ingresa el nmero que supone que es el verdadero. Si la persona adivinante no acierta, mostrar en pantalla el nmero de oportunidades restantes.

Consejo de Avance: Funciones de La cualidad de un buen programador, debe ser la creatividad y la duda del funcionamiento de ciertas funciones del lenguaje en que se esta programando, por ello, a continuacin se describen las funciones bsicas sobre archivos, para que las pueda examinar. Funcin. Descripcin. variableArch:text variableArch:file of integer. Assign(variableArch,nombre) Reset(variableArch) Append(variableArch) Rewrite(variableArch) Seek(variableArch,Num) FileSize(VariableArch) Flush(variableArch) Close(variableArch) Write(variableArch,Hola) Read(variableArch,Variable) EOF(variableArch) EOLN(VariableArch) {$I+-} Ioresult=0 Declara una variable de archivo de texto. Declara una variable de archivo tipificado. Asigna un apuntador a un archivo llamado nombre. Aade a un archivo tipificado. Aade a un archivo de texto. Crea y escribe en un archivo. Se posiciona en el registro con posicin num. Nmero de datos en el archivo empezando en cero. Fuerza al bfer a escribir al archivo. Cierra un archivo. Escribe al archivo. Lee de el archivo y deja informacin en variable. Fin de archivo. Fin de lnea. Conecta o desconecta verificacin de entrada/salida. Si el archivo existe ioresult=0

Introduccin al Lenguaje de Programacin Pascal Ing. Rafael Montenegro B. Archivos.

Ejercicios Resueltos.
En esta parte, se muestra el cdigo fuente de las soluciones de los ejercicios propuestas en cada parte del manual. Hay que recordar, que en la programacin, un mismo programa se puede resolver de varias maneras, y por ello aqu slo se presenta una de las varias formas que pueden existir.

Primeros Pasos.
Program primpasos1; uses crt; var nombre:string; begin clrscr; writeln('Introduzca su nombre:'); readln(nombre); clrscr;{borramos todo lo anterior} writeln('HOLA!!!',nombre);{escribimos frase, y la variable} readln; end. program primpasos2; uses crt; var nombre:string; {el tipo de dato para caracteres string} begin clrscr; writeln('Introduzca su nombre:'); readln(nombre); clrscr;{borramos todo lo anterior para que solo aparezca la frase} writeln('Mi nombre es:',nombre);{escribimos:mi nombre es, luego la variable} readln; end.

Introduccin al Lenguaje de Programacin Pascal Ing. Rafael Montenegro B.

Tipos de Datos.
program TipDat1; uses crt; var m,s:real; begin clrscr; writeln('Introuzca el minuendo:'); readln(m); writeln('Introduzca el sustraendo:'); readln(s); writeln('La diferencia es:',(ms):0);{anchura de nmeros} readln; end. program TipDat2; uses crt; var x,z:byte; begin clrscr; writeln('Introduzca X (>0 y <256):');{especifica el rango del numero a introducir} readln(x); writeln('Introduzca Z (>0 y <256):'); readln(z); writeln('El producto XZ es:',(x*z):0); readln; end.

Entrada/Salida de Datos.
program ES1; uses crt; var nom:string[5];{determinamos longitud mxima del nombre} begin clrscr; writeln('Ingrese un nombre:'); readln(nom); writeln(nom:18); readln; end. program ES2; uses crt; var nom:string; begin clrscr; writeln('Introduzca un nombre:'); readln(nom); clrscr; writeln('Nombre:',nom:24);{especificacin de anchura de texto} writeln('Edad:',15:15); writeln('Telfono:',77658525:18); readln; end.

Introduccin al Lenguaje de Programacin Pascal Ing. Rafael Montenegro B.

Estructuras de Desicin: If.


program mayoredad; uses crt; var ed:integer; begin clrscr; writeln('Introduzca su edad:'); readln(ed); if ed<18 then writeln('Es menor de edad:') else {delo contario} writeln('Es mayor de edad:'); readln; end. program empresa_empleados; uses crt; var g:char; e:integer; begin clrscr; write('Sexo (m/f):'); readln(g); write('Edad:'); readln(e); begin if ((g='m') or (g='M')) and ((e>=18) and (e<=25)) then writeln('Aceptado') else writeln('No Aceptado:'); end; readln; end.

Case:

Introduccin al Lenguaje de Programacin Pascal program calculadora; Ing. Rafael Montenegro B. uses crt; var a,b,opc:integer; begin clrscr; writeln('MENU'); writeln('1. Suma'); writeln('2. Resta'); writeln('3. Producto'); writeln('4. Cociente'); writeln;writeln;{2 espacios verticales} writeln('Introduzca opcin:');{nmero de la operacin} readln(opc); case opc of 1:begin{inicio de suma} writeln('Introduzca el primer numero:'); readln(a); writeln('Introduzca el segundo nmero:'); readln(b); writeln('La suma es:',(a+b):0); readln; end;{fin suma} 2:begin{inicio de resta} writeln('Introduzca el primer nmero:'); readln(a); writeln('Introduzca el segundo nmero:'); readln(b); writeln('La resta es:',(a-b):0); readln; end;{fin resta} 3:begin{inicio de producto} writeln('Introduzca el primer nmero:'); readln(a); writeln('Introduzca el segundo nmero:'); readln(b); writeln('El producto es:',(a*b):0); readln; end;{fin producto} 4:begin{inicio de divisin} writeln('Introduzca el primer nmero:'); readln(a); writeln('Introduzca el segundo nmero:'); readln(b); writeln('El cociente es:',(a div b):0); readln; end;{fin divisin} end;{fin casos} end.

Introduccin al Lenguaje de Programacin Pascal Ing. Rafael Montenegro B.

For:
program tablas; uses crt; var tabla,numero:integer; begin for tabla:=1 to 10 do for numero:=1 to 12 do writeln(tabla,'por',numero,'es',tabla*numero); readln; end. program tabladividir; uses crt; var dividendo,divisor:integer; begin for dividendo:=1 to 10 do for divisor:=1 to 12 do writeln(dividendo,'/',divisor,'es:',dividendo div divisor); readln; end.

While:
program while_suma; uses crt; var o:char; a,b:real; begin clrscr; writeln('Introduzca cdigo de suma:'); readln(o); while (o='s') or (o='S') do writeln('Ingrese un nmero:'); readln(a); writeln('Ingrese otro nmero:'); readln(b); writeln('La suma es:',(a+b):0); readln; end. program longitud; uses crt; var a:string; begin clrscr; writeln('Introduzca una oracin'); readln(a); while a<> ' ' do {comprobamos que la oracin no sea nula} writeln('Lontitud:',length(a));{hallamos lontidud} readln; end.

Repeat:

Introduccin al Lenguaje de Programacin Pascal program repeat_until; Ing. Rafael Montenegro B. uses crt; var a,b,c,maxint:integer; begin clrscr; writeln('Introduzca cantidad de intentos a admitir:'); readln(a); writeln('Introduzca numero a adivinar:'); readln(b); clrscr; repeat writeln('Introduzca el numero:'); readln(c); if (c=b) then writeln('Adivino') else writeln('Siga intentandolo'); until maxint=a; readln; end.

Introduccin al Lenguaje de Programacin Pascal Ing. Rafael Montenegro B. Programa donde introduzca su masa en lb, y su altura en cm, y muestre el ndice de masa corporal. <20 =desnutricin. Entre 20 y 25=normal. Entre 25 y 30=sobrepeso. Mayor que 30=obeso.
program indice_masa_corporal;{indice de la masa corporal} uses crt; var h,m,imc:real; clav:string; begin repeat; clrscr;textbackground(black); textcolor(red); gotoxy(30,2); writeln('Programador:Rafael Montenegro'); gotoxy(30,3); writeln('*Programa:IMC'); gotoxy(30,4); writeln('*Fecha:4/02/008'); textcolor(yellow); gotoxy(30,6); write('Introduzca su masa(lb):'); textcolor(lightblue); readln(m); gotoxy(30,8); textcolor(yellow); write('Introduzca su altura (cm)'); textcolor(lightblue); readln(h); m:=(m*460)/1000; h:=h/100; imc:=m/sqr(h); textcolor(magenta); gotoxy(30,10); writeln('Su masa corporal es:',imc:0:2); begin gotoxy(30,11); if imc<20 then writeln('Presenta Desnutricin') else if (imc>=20) and (imc <=25) then writeln('Estado Normal') else if (imc>25) and (imc<=30) then writeln('Presenta Sobrepeso') else if imc>30 then writeln('Presenta obesidad'); end; gotoxy(30,15); textcolor(10); write('Introduzca clave de salida:'); textcolor(green); readln(clav); until (clav='imc'); end.

Introduccin al Lenguaje de Programacin Pascal Ing. Rafael Montenegro B. Programa donde se introduzca una cantidad (en nmeros) y esta se muestre escrita con letras.
program numeros_letras; uses crt; var cant,x:integer; begin clrscr; writeln('Ingrese un nmero:'); readln(cant); x:=cant div 100; case x of 9:write('Novecientos'); 8:write('Ochocientos'); 7:write('Setecientos'); 6:write('Seiscientos'); 5:write('Quinientos'); 4:write('Cuatrocientos'); 3:write('Trescientos'); 2:write('Doscientos'); 1:begin if (cant mod 100>0) then write('Ciento') else write('Cien'); end; {case centenas} end; cant:=cant mod 100; x:=cant div 10; case x of 9:write(' noventa'); 8:write(' ochenta'); 7:write(' setenta'); 6:write(' sesenta'); 5:write(' cincuenta'); 4:write(' cuarenta'); 3:write(' treinta'); 2:write( 'veinte'); 1:begin if (cant mod 10>5) or (cant mod 10=0) then write('diez') else if (cant mod 10=1) then write(' once') else if (cant mod 10=2) then write(' doce') else if (cant mod 10=3) then write(' trece') else if (cant mod 10=4) then write(' catorce') else if (cant mod 10=5) then write(' quince'); end; end; {case decenas} if (x=1) and (cant mod 10<6) then write('') else begin write(' y'); cant:=cant mod 10; case cant of 9:write(' nueve'); 8:write(' ocho'); 7:write(' siete'); 6:write(' seis'); 5:write(' cinco'); 4:write(' cuatro'); 3:write(' tres'); 2:write(' dos'); 1:write(' uno'); end; end; readkey; end.

Introduccin al Lenguaje de Programacin Pascal Ing. Rafael Montenegro B.

También podría gustarte