Está en la página 1de 10

lntroduccin o /o lnformtico - conceptos bsicos de Posco/ - 2009

1
kCGkAMACICN LN ASCAL
Cue es programar?
rogramar una compuLadora slgnlflca dar una serle de lnsLrucclones a la mqulna con una secuencla
lglca, ba[o un lengua[e de programacln, sea esLe de ba[o, medlo, alLo nlvel o de cuarLa generacln,
con el fln de slsLemaLlzar un deLermlnado proceso o dar solucln a un problema.

Cue es programar en 1urbo ascal?
ascal es un lengua[e de programacln desarrollado por el profesor sulzo nlklaus WlrLh a flnales de
los anos 60. Su ob[eLlvo era crear un lengua[e que faclllLara el aprendlza[e de la programacln
a sus alumnos. Sln embargo con el Llempo su uLlllzacln excedl el mblLo academlco para
converLlrse en una herramlenLa para la creacln de apllcaclones de Lodo Llpo. ascal se caracLerlza por
ser un lengua[e de programacln esLrucLurado fuerLemenLe Llplflcado.

LsLo lmpllca que:

1. Ll cdlgo esLa dlvldldo en porclones fcllmenLe leglbles llamadas fooclooes o ptoceJlmleotos.
ue esLa forma loscol faclllLa la uLlllzacln de la ptoqtomoclo esttoctotoJo en oposlcln al
anLlguo esLllo de ptoqtomoclo mooolltlco.
2. Ll tlpo Je Joto de Lodas las varlables debe ser declarado prevlamenLe para que su uso
quede hablllLado.

Ll nombre de ascal fue escogldo en honor al maLemLlco 8lalse ascal.

Lstructura de un programa en 1urbo asca|
Lmpecemos con un e[emplo.

AnLes de enLrar en maLerla y expllcar cada parLe por separado, puedes ver el slgulenLe e[emplo
que Le permlLe observar algunas cosas del cdlgo en ascal.

rogram identificodor , (cobecero opciono/ en 1urbo Posco/}
Uses identificodores
Labe| /isto de etiquetos , (seccin de etiquetos}
Const
definiciones de constontes
1ype
dec/orocin de tipos de dotos definidos por e/ usuorio
Var
rocedure
definiciones de procedimientos
Iunct|on
definiciones de funciones
beg|n (cuerpo de/ proqromo}
sentencios
end.
jemp/o:

lntroduccin o /o lnformtico - conceptos bsicos de Posco/ - 2009
2
Program MiPrimerPrograma; {cabecera}
Uses
Crt; {declaraciones}
Const
iva =0.10;
Type
cadena =string[35];
meses =1..12;
Var
sueldo :real;
numero :integer;
nombre :cadena;
Nmes :meses;
Begin
ClrScr; {Limpia la pantalla}
Write ('Escribe tu nombre : '); {Visualiza informacin en
pantalla}
ReadLn(nombre); {Leer un dato del teclado}
WriteLn ('Bienvenido ', nombre); {Visualiza informacin en
pantalla}
Readkey; {Espera la pulsacin de una tecla}
ClrScr
end.

nombre del rograma

LsLa llnea de cdlgo conslsLe en la palabra rogram segulda de un nombre ldenLlflcador que se lo da el
usuarlo de acuerdo al Llpo de programa que se esLe reallzando, cabe desLacar de que al lgual que
oLros lengua[es no se permlLen el uso de palabras reservadas porque se produclrn errores de
compllacln. L[emplos de nombres vlldos:
rogram facLorlal,
rogram nomlna_empleados,

uso de unldades

Las unldades son aquellos bloques de cdlgo que proporclonan funclones y procedlmlenLos que
1u88C ASCAL Lrae lncluldas en el archlvo 1u88C.1L (1urbo ascal Llbrarles), slempre se
lnvocan precedldas por la palabra reservada Uses. or e[emplo: uses crL, uses graph, uses dos.
uolJoJes loclolJos.

Crt (catode ray tube)
LsLa unldad provee ruLlnas de conLrol sobre el modo de la panLalla, cdlgos exLendldos de
Leclado, colores, venLanas y sonldos.
lntroduccin o /o lnformtico - conceptos bsicos de Posco/ - 2009
3
Graph
ermlLe hacer desde una slmple llnea o un clrculo hasLa una slmulacln maLemLlca o un
vldeo[uego.
Dos
LsLa unldad nos brlnda las ruLlnas necesarlas para lnLeracLuar con el slsLema operaLlvo u.C.S.
permlLlendo Lomar desde la hora o fecha del slsLema hasLa e[ecuLar programas o comandos.
r|nter
ermlLe lmprlmlr llneas y archlvos de Llpo LexLo, sl se quleren lmprlmlr grflcos hay que recurrlr a
una serle de LruqulLos.

ConsLanLes
LsLas slrven para esLablecer valores que no camblaran duranLe la e[ecucln del programa,
slempre van precedldas de la palabra reservada CCNS1, luego se coloca el ldenLlflcador o nombre,
un lgual (=) y el valor al cual se qulere aslgnar la consLanLe.

jemplo.
CCNS1
I=3.1416,
MLNSAIL='V|va Argent|na',
NUMLkC_LN1LkC=12,

varlables

una varlable es un nombre o ldenLlflcador que "represenLa" a una porcln de memorla donde se
almacenan LemporalmenLe los daLos que camblaran duranLe la e[ecucln del programa, para
deflnlr una varlable se debe escrlblr la palabra reservada vA8 en la seccln de deflnlcln de varlables,
luego el nombre o ldenLlflcador y por ulLlmo el Llpo de daLos al que va a perLenecer.

5intoxis jemp/o:
VAk VAk
Nombre_var|ab|e : 1|po de dato Contador: Integer,

rocedlmlenLos y funclones

LsLa seccln es muy lmporLanLe, aunque para Lus prlmeros programas no la neceslLars. Ln ella puedes
declarar procedlmlenLos y funclones (subprogramas) para que los uses en oLros
subprogramas o en el cuerpo prlnclpal.

uedes lnclulr cuanLos procedlmlenLos y funclones desees, lncluso alLernar enLre ellos. Aunque
debes de Lener culdado con el orden en el que los escrlbes. ?a que sl un subprograma llama a oLro,
deberla esLar declarado prlmero el que es llamado.

La dlferencla prlnclpal enLre una funcln y un procedlmlenLo es que la prlmera devuelve un valor y
el segundo no devuelve nada. A conLlnuacln, Llenes un e[emplo en el que se declaran una funcln y
un procedlmlenLo:

...
function Suma (a:integer;b:integer):integer;
begin
Suma := a + b
end;
lntroduccin o /o lnformtico - conceptos bsicos de Posco/ - 2009
4
procedure Escribe(frase:string);
begin
writeln(frase)
end;
...

Son dos subprogramas muy senclllos. La func|n reclbe como parmetros dos varlables de Llpo
enLero, las suma y devuelve su valor. Ll proced|m|ento reclbe una cadena de caracLeres e lnvoca a
wrlLeln para escrlblrla en panLalla.

ComenLarlos y aslgnaclones

CCMLN1AkICS

Son cadenas de LexLo aclaraLorlas que slrven para documenLar un programa y asl Lener una
mayor clarldad de como esLe funclona.

ara lnserLar un comenLarlo se usan los slmbolos [} o (* *)
L[emplo: [ml prlmer comenLarlo}
(*ml segundo comenLarlo*)
Los comenLarlos no afecLan el cdlgo del programa

ASIGNACICNLS

Aslgnar es darle un deLermlnado valor a una varlable, para hacer esLo se usa :=
L[emplo:
Cadena_de_LexLo:='hola argenLlna', [LsLa es una varlable de Llpo sLrlng}
CaracLer:='c', (*LsLa es una varlable de Llpo char*)
valor_LoLal:=32.43, [LsLa es una varlable de Llpo 8eal}
Ldad:=28, (*LsLa es una varlable de Llpo lnLeger*)
Pombre:=Lrue, [LsLa es una varlable de Llpo boolean}
Cuerpo prlnclpal del programa

1amblen se le llama b|oque de| programa, y es [unLo con la cabecera, la unlca seccln
obllgaLorla en un programa ascal. uebe comenzar y flnallzar con las palabras reservadas beg|n
y end respecLlvamenLe.

Muy |mportante: uespues de la palabra end, slempre Llene que lr un punLo que lndlca el flnal del
programa.

LnLre beg|n y end se escrlben una o ms senLenclas, ya sean slmples o compuesLas. Las
senLenclas pueden ser varlas: aslgnaclones, llamadas a procedlmlenLos y funclones, senLenclas
selecLlvas (senLenclas |f), senLenclas lLeraLlvas (senLenclas for, wh||e). veamos un pequeno e[emplo:

lntroduccin o /o lnformtico - conceptos bsicos de Posco/ - 2009
3
begin
i := 0;
while i<10 do
begin
writeln('El valor de i es ',i);
i := i + 1
end
end.

Ll e[emplo es muy senclllo. Se LraLa de un bucle que escrlbe en panLalla llneas que conslsLen en la frase
"l volot Je l es" seguldas del valor que Llene en ese momenLo la varlable i (0..9).

1|pos de datos

Ln prlnclplo vamos a esLudlar, brevemenLe, clnco Llpos de daLos:
LnLeros
Lglcos
CarcLer
8eales
Cadenas
Datos de t|po entero
Ln 1urbo ascal, exlsLen clnco Llpos de daLos enLeros predeflnldos (ShorLlnL, lnLeger, LonglnL, 8yLe y
Word). ue ellos, slo vamos uLlllzar, por ahora, el Llpo de daLo IN1LGLk que emplea 16 blLs para
almacenar un daLo. or LanLo, un daLo de Llpo lnLeger es aquel que puede Lomar por valor un numero
perLeneclenLe al subcon[unLo:
[ -32768, ..., 32767 }
Datos de t|po rea|
Ln 1urbo ascal, exlsLen clnco Llpos de daLos reales predeflnldos (real, slngle, double, exLended y
comp). ue ellos, slo vamos uLlllzar, de momenLo, el Llpo de daLo kLAL que emplea 6 byLes para
almacenar un daLo. un daLo de Llpo real es aquel que puede Lomar por valor un numero perLeneclenLe
al rango:
2.9L-39 ... 1.7L38

Datos de t|po carcter
un daLo de Llpo carcLer (CnAk) es aquel que puede Lomar por valor un carcLer perLeneclenLe al
con[unLo de los caracLeres del ASCll exLendldo.
Ln ascal, el valor de un daLo de Llpo carcLer se debe represenLar enLre comlllas slmples (').

Datos de t|po cadena
Los daLos de Llpo cadena (S1kING) son aquellos que pueden Lomar por valor una secuencla de
caracLeres.
Ln ascal, el valor de un daLo de Llpo cadena se debe represenLar enLre comlllas slmples (').
L[emplo 3: Ll LlLulo de un llbro y el nombre de su auLor, son daLos de Llpo cadena.

1lLulo...: 'La Cdlsea' (cadena de 9 caracLeres)
AuLor....: 'Pomero' (cadena de 6 caracLeres)
lntroduccin o /o lnformtico - conceptos bsicos de Posco/ - 2009
6
Datos de t|po |g|co
Ln ascal, un daLo de Llpo lglco es aquel que puede Lomar por valor slo uno de los dos slgulenLes:
[ lALSL, 18uL }

Los valores lALSL y 18uL (verdadero y falso) son conLrapuesLos, de manera que, un daLo de Llpo lglco
slempre esL asoclado a que algo se cumpla o no se cumpla.
Ln 1urbo ascal, exlsLen cuaLro Llpos de daLos lglcos predeflnldos (8oolean, Word8ool, Long8ool y
8yLe8ool). ue ellos, slo vamos uLlllzar, por ahora, el Llpo de daLo 8CCLLAN que emplea 8 blLs.

Lntrada y sa||da de datos
Pay muchas formas de lnLroduclr lnformacln en una compuLadora, desde Leclado, con el mouse,
desde dlsco flexlble, con una unldad de Cu-8CM, y un sln numero de mecanlsmos que por ahora no
alcanzo a menclonar, del mlsmo modo Lamblen hay mulLlples formas de sacar lnformacln, por
el monlLor, la lmpresora , un mdem, enLre oLros. Ln esLe caplLulo se expllca como leer
lnformacln desde el Leclado y desplegar esLa en la panLalla de Lu compuLadora.

kLAD (Nombre_Var|ab|e)

LsLe comando para el programa y espera a que el usuarlo lnLroduzca un daLo, el cual sera
almacenado en la varlable "nombre_varlable", como es 8LAu se lee la lnformacln y se queda en la
mlsma llnea.

kLADLN(Nombre_Var|ab|e)

LsLe comando hace exacLamenLe lo mlsmo que el anLerlor, solo que se produce un salLo de llnea.

WkI1L(Nombre_Var|ab|e)

LsLe comando escrlbe el conLenldo de la varlable "nombre_varlable" sln produclr salLo de llnea.

WkI1LLN(Nombre_Var|ab|e) Slmllar al anLerlor pero con salLo de llnea.
Cperac|ones Ar|tmt|cas

A conLlnuacln se expllca la forma como
funclonan las cuaLro operaclones arlLmeLlcas
bslcas, suma, resLa, mulLlpllcacln y dlvlsln.
arLlmos de 4 varlables de Llpo real deflnldas
prevlamenLe:
Suma := 7+10, [Aqul se le lndlca a la compuLadora
que adlclone 7 mas 10 y se lo aslgne
a la varlable Suma}
8esLa:=20-3,
MulLlpllcaclon:=3*3,
ulvlslon:=10/3,

1amblen podemos reallzar comblnaclones de
operandos como se muesLra a conLlnuacln:

8LSuLS1A := 3+(2+6)*4,
Operodores 4ritmticos en 1urbo Posco/:
+ Suma
- 8esLa
* MulLlpllcacln
] ulvlsln real
d|v ulvlsln enLera
mod Mdulo (resLo de la dlvlsln enLera)

+ Slgno ms
- Slgno menos
lntroduccin o /o lnformtico - conceptos bsicos de Posco/ - 2009
7
Iunc|ones D|v Mod

LsLos son dos operadores especlales, ulv Loma el resulLado de la dlvlsln y MCu el reslduo, L[emplo:

8LSuL1AuC:=12 ulv 7, [8LSuL1AuC Loma el valor de 1}

8LSluuC:=12 MCu 7, [8LSluuC Loma el valor de 3}

roced|m|entos INC y DLC

Ll procedlmlenLo INC lncremenLa en 1 el conLenldo de cualquler varlable de Llpo enLero, es lo mlsmo
en un programa Leclear:

varlable := varlable + 1, es lgual a lnc(varlable),

Ll procedlmlenLo DLC decremenLa en 1 el valor de cualquler varlable de Llpo enLero que se le lndlque,
se usa lgual que lnC, por e[emplo:

varlable := varlable - 1, es lgual a uLC (varlable),

1runcam|ento y kedondeo
Ln algunas ocaslones se debe redondear un numero de Llpo real, par ello 1urbo ascal Llene a la
funcln kound (nmero), esLa redondea un numero real al enLero ms cercano y devuelve el resulLado
como un numero real.

La funcln 1runc (nmero) ellmlna la parLe declmal del numero real y devuelve el resulLado como Llpo
enLero.
Cperadores ke|ac|ona|es
una 8LLAClCn conslsLe de dos operandos separados
por un operador relaclonal. Sl la relacln es
saLlsfecha, el resulLado Lendr un valor booleano
Lrue, sl la relacln no se saLlsface, el resulLado Lendr
un valor false. Los operadores deben ser del mlsmo
Llpo, aunque los valores de Llpo real, lnLeger y byLe
pueden comblnarse como operandos en las
relaclones.

ara escrlblr una expres|n re|ac|ona| (lglca) se
uLlllza la slnLaxls:

<expresln_1> <operador_de_relacln> <expresln_2>

5leoJo <expresln_1> y <expresln_2> del mlsmo Llpo (arlLmeLlca, lglca, de carcLer o de cadena).
L[emplos:

Operodores ke/ociono/es en 1urbo Posco/:
< Menor que
<= Menor o lgual que
> Mayor que
>= Mayor o lgual que
= lgual que
<> ulsLlnLo que
ke|ac|n kesu|tado
20 = 11 false
13 < 20 Lrue
l > 3.14 Lrue
lntroduccin o /o lnformtico - conceptos bsicos de Posco/ - 2009
8
Cperadores Lg|cos

Al lgual que las relaclones, en las operaclones con
operadores lglcos se Llenen resulLados cuyo valor de
verdad Loma uno de los valores booleanos Lrue o false.
Los operadores and y or slempre acLuan sobre dos
operandos, mlenLras que, el operador not slo acLua sobre
un operando, o dlcho de oLra forma, es un operador unarlo.

Lstructuras De Contro|

Las esLrucLuras de conLrol son las encargadas de dlrlglr el flu[o del programa. Se pueden claslflcar en
los slgulenLes grupos:
Secuenclacln
Seleccln
o |f-then-e|se
o case
lLeracln
o deflnlda: for
o lndeflnlda: wh||e, repeat
SenLencla lf - 1hen - Llse

LsLa nos permlLe evaluar una expresln y e[ecuLa un bloque de cdlgo sl es verdadera la condlcln.

5intoxis

II (Lxpresln en evaluacln) then
8egln
[Condlcln verdadera
bloque de cdlgo a e[ecuLar}
Lnd,

LsLa senLencla lleva 8LCln - Lnu, sl Llene ms de una expresln por evaluar, en caso conLrarlo va sln
nada.

Llse
La senLencla LLSL e[ecuLa la opcln falsa de la evaluacln con ll.
5intoxis
II (Lxpresln en evaluacln) then
8egln
[Condlcln verdadera
8loque de cdlgo a e[ecuLar}
Lnd [Ll Lnu que va anLes del LLSL no lleva punLo y coma ","}
LLSL
Operodores Lqicos en 1urbo Posco/:
and Con[uncln
or ulsyuncln
not negacln
lntroduccin o /o lnformtico - conceptos bsicos de Posco/ - 2009
9
8egln
[Condlcln lalsa
8loque de cdlgo a e[ecuLar}
Lnd

La senLencla Case

La senLencla case al lgual que las lf permlLe eleglr enLre dlferenLes alLernaLlvas. 1lene la esLrucLura
slgulenLe:
case selecLor of
llsLa_consLanLes1 : senLencla1,
llsLa_consLanLes2 : senLencla2,
...
llsLa consLanLesn : senLenclan

else senLecla_Llse
end,

veamos un e[emplo:
rogram prueba_CASL,
Var
Cpclon : char,
...
8eg|n
...
readln(Cpclon),
case Cpclon of
'1' : nuevaLnLrada,
'2' : camblaruaLos,
'3' : borrarLnLrada,
'0' : sallr
e|se wrlLeln('Cpclon no vallda!!')
Lnd,
...
Lnd.

Clclo lor - uo (ara - Paga)

LsLe clclo e[ecuLa una serle de lnsLrucclones lncremenLando o decremenLando una varlable hasLa un
Lope deLermlnado.

lntroduccin o /o lnformtico - conceptos bsicos de Posco/ - 2009
10
5intoxis 6enero/
Ior varlable:=lnlclo 1o 1ope Do
8eg|n
[8loque ue lnsLrucclones}
Lnd,

Clclo Whlle - uo (MlenLras - Paga)

5intoxis
Wh||e (Lxpresln_A_Lvaluar) Do
8eg|n
[8loque ue lnsLrucclones}
Lnd,

Clclo 8epeaL - unLll (8eplLa - PasLa)

5intoxis
kepeat
[8loque de lnsLrucclones}
Unt|| (Lxpresln_a_evaluar)

Lste mater|a| fue e|aborado por |as a|umnas Mar|a de |a Merced Dom|nguez y Dan|e|a Demchum
como parte de su p|an de traba[o de adscr|pc|n a |a as|gnatura Introducc|n a |a Informt|ca en e|
ao 2008.

Llnks de referencla:
hLLp://www.forLuneclLy.com/skyscraper/seagaLe/1072/LuLorpas.hLm
hLLp://Leleformaclon.edu.ayLolacoruna.es/ASCAL/documenL/esLrucL.hLm#cabecera
hLLp://www.carlospes.com/curso_de_pascal/01_08_operadores_y_expreslones.php
hLLp://es.geoclLles.com/davld1024Lb/operadores.hLml

También podría gustarte