Está en la página 1de 12
LENGUAJESLENGUAJES DEDE PROGRAMACIONPROGRAMACION IIIIII PROGRAMACIONPROGRAMACION ENEN PASCALPASCAL
LENGUAJESLENGUAJES DEDE PROGRAMACIONPROGRAMACION IIIIII
PROGRAMACIONPROGRAMACION ENEN PASCALPASCAL
(Estructuras(Estructuras -- ProcedimientosProcedimientos yy Funciones)Funciones)
Ing. Yuri Giovani Román Lazarinos
CIP 79596
T3T3--LP3LP3--FISIFISI--UJCMUJCM
ProgramaciProgramacióónn EstructuradaEstructurada ►► SentenciasSentencias compuestascompuestas ►►
ProgramaciProgramacióónn EstructuradaEstructurada
►► SentenciasSentencias compuestascompuestas
►► SentenciasSentencias repetitivasrepetitivas
CiclosCiclos FORFOR
CiclosCiclos WHILEWHILE
CiclosCiclos REPEATREPEAT--UNTILUNTIL
►► BifurcacionesBifurcaciones condicionalescondicionales
IF
ELSEIF
THEN
THEN
ELSE
IFIF anidadosanidados
CASECASE
T3-LP3-FISI-UJCM
SentenciasSentencias compuestascompuestas ►► LasLas sentenciassentencias compuestascompuestas sonson gruposgrupos
SentenciasSentencias compuestascompuestas
►► LasLas sentenciassentencias compuestascompuestas sonson gruposgrupos dede sentencias,sentencias,
separadasseparadas cadacada unauna porpor unun puntopunto yy comacoma ";"";" queque sonson
tratadastratadas comocomo unauna solasola sentencia.sentencia.
►► ParaPara identificaridentificar unauna sentensentenciacia compuestacompuesta dede unun grupogrupo
sucesivosucesivo dede sentenciassentencias sese enencierrancierran entreentre laslas palabraspalabras
reservadasreservadas BEGINBEGIN yy ENDEND UnoUno dede loslos ejemplosejemplos mmááss clarosclaros
dede unauna sentenciasentencia compuestacompuesta eses elel cuerpocuerpo dede unun programaprograma
principalprincipal enen TurboTurbo Pascal,Pascal, elel lenguajelenguaje tomatoma todotodo lolo queque
existeexiste entreentre estasestas dosdos sentencisentenciasas comocomo unun solosolo elementoelemento aa
ejecutarseejecutarse aaúúnn cuandocuando contengacontenga variasvarias instruccionesinstrucciones oo
sentencias:sentencias:
T3-LP3-FISI-UJCM
SentenciasSentencias compuestascompuestas PROGRAMPROGRAM Prueba;Prueba; BEGINBEGIN
SentenciasSentencias compuestascompuestas
PROGRAMPROGRAM Prueba;Prueba;
BEGINBEGIN
WriteLnWriteLn('Primera('Primera linealinea dede unauna sentenciasentencia compuesta');compuesta');
WriteLnWriteLn('Segunda('Segunda linealinea dede unauna sentenciasentencia compuesta');compuesta');
WriteLnWriteLn('Tercera('Tercera linealinea dede unauna sentenciasentencia compuesta');compuesta');
END.END.
►►
ElEl puntopunto yy comacoma queque sese encuencuentraentra antesantes dede lala palabrapalabra
reservadareservada ENDEND puedepuede serser suprimidosuprimido sinsin afectarafectar aa lala
compilacicompilacióón.n. EnEn ocasionesocasiones eses necesarionecesario repetirrepetir unun
determinadodeterminado nnúúmeromero dede vecesveces lala ejecuciejecucióónn dede unauna
sentencia,sentencia, yaya seasea sencillasencilla oo cocompuesta,mpuesta, parapara realizarrealizar estaesta
tareatarea TurboTurbo PascalPascal cuentacuenta concon instruccionesinstrucciones especespecííficasficas
parapara elel tipotipo dede repeticirepeticióónn queque sese requiera.requiera.
T3-LP3-FISI-UJCM
CiclosCiclos FORFOR ►► ElEl ciclociclo FORFOR repiterepite unauna sentencisentenciaa unun determinadodeterminado
CiclosCiclos FORFOR
►► ElEl ciclociclo FORFOR repiterepite unauna sentencisentenciaa unun determinadodeterminado nnúúmeromero
dede vecesveces queque sese indicaindica alal momentomomento dede llamarllamar alal ciclo.ciclo.
►► LoLo queque hacehace FORFOR eses queque incrementaincrementa unauna variablevariable enen unouno
desdedesde unun valorvalor inicialinicial hastahasta unun valorvalor finalfinal ejecutandoejecutando enen
cadacada incrementoincremento lala sentenciasentencia queque sese quierequiere repetir.repetir. SuSu
sintaxissintaxis es:es:
FORFOR identificadoridentificador :=:= inicioinicio TOTO finfin DODO instrucciinstruccióón;n;
►► DondeDonde elel identificadoridentificador eses lala variablevariable queque sese incrementarincrementaráá,,
inicioinicio eses elel primerprimer valorvalor queque tendrtendráá dichadicha variablevariable yy finfin eses
elel valorvalor hastahasta elel cualcual sese incrementarincrementaráá lala misma;misma; instrucciinstruccióónn
eses lala sentenciasentencia (sencilla(sencilla oo compuesta)compuesta) queque sese ejecutarejecutaráá enen
cadacada incrementoincremento dede lala variable.variable.
T3-LP3-FISI-UJCM
CiclosCiclos FORFOR ►► ElEl siguientesiguiente ejemploejemplo escribeescribe loslos nnúúmerosmeros deldel 11 alal
CiclosCiclos FORFOR
►► ElEl siguientesiguiente ejemploejemplo escribeescribe loslos nnúúmerosmeros deldel 11 alal 5050 enen
pantalla.pantalla. LaLa variablevariable utilizadautilizada eses "Numero"."Numero".
PROGRAMPROGRAM Ciclo_FORCiclo_FOR;;
VARVAR
NumeroNumero :: IntegerInteger;;
BEGINBEGIN
FORFOR NumeroNumero :=:= 11 toto 5050 DODO
WriteLn(NumeroWriteLn(Numero););
END.END.
►► UnaUna dede laslas limitacioneslimitaciones dede loloss ciclosciclos FORFOR eses queque unauna vezvez
iniciadoiniciado elel ciclociclo sese ejecutarejecutaráá elel nnúúmeromero dede vecesveces
predefinidopredefinido sinsin posibilidadposibilidad dede agregaragregar oo eliminareliminar ciclos.ciclos.
T3-LP3-FISI-UJCM
CiclosCiclos FORFOR ►► EsEs posibleposible hacerhacer queque unun ciclociclo cuentecuente haciahacia atratráás,s,
CiclosCiclos FORFOR
►►
EsEs posibleposible hacerhacer queque unun ciclociclo cuentecuente haciahacia atratráás,s, eses decirdecir
queque lala variablevariable enen lugarlugar dede incrementarseincrementarse sese decrementedecremente
ParaPara ééstosto cambiamoscambiamos lala palabrapalabra TOTO porpor DOWNTODOWNTO,, yy
colocamoscolocamos elel valorvalor mayormayor aa lala izquierdaizquierda yy elel menormenor aa lala
derecha.derecha. Ejemplo:Ejemplo:
PROGRAMPROGRAM Ciclo_FORCiclo_FOR_2;_2;
VARVAR
NumeroNumero :: IntegerInteger;;
BEGINBEGIN
FORFOR NumeroNumero :=:= 5050 DOWNTODOWNTO 11 DODO
WriteLn(NumeroWriteLn(Numero););
END.END.
T3-LP3-FISI-UJCM
CiclosCiclos WHILEWHILE ►► LosLos ciclosciclos WHILEWHILE ofrecenofrecen lala ventajaventaja dede queque lala
CiclosCiclos WHILEWHILE
►► LosLos ciclosciclos WHILEWHILE ofrecenofrecen lala ventajaventaja dede queque lala
ejecuciejecucióónn sese realizarealiza mientrasmientras sese cumplacumpla unauna
condicicondicióón,n, porpor lolo tantotanto eses posibleposible controlarcontrolar elel
nnúúmeromero dede repeticionesrepeticiones unauna vezvez iniciadoiniciado elel ciclo.ciclo.
SuSu sintaxissintaxis es:es:
WHILEWHILE condicicondicióónn DODO instrucciinstruccióónn
►► DondeDonde condicicondicióónn eses lala condicicondicióónn queque sese evaluarevaluaráá,,
mientrasmientras
ééstasta
seasea
verdaderaverdadera
sese
ejecutarejecutaráá
lala
instrucciinstruccióón,n,
queque
eses
unauna
sentenciasentencia
simplesimple
oo
compuesta.compuesta.
T3-LP3-FISI-UJCM
CiclosCiclos WHILEWHILE ►► UnUn programaprograma queque escribaescriba loslos nnúúmerosmeros deldel 11 alal 50,50,
CiclosCiclos WHILEWHILE
►►
UnUn programaprograma queque escribaescriba loslos nnúúmerosmeros deldel 11 alal 50,50, utilizandoutilizando elel ciclociclo
WHILEWHILE sese ververííaa comocomo sigue:sigue:
PROGRAMPROGRAM Ciclo_WHILECiclo_WHILE;;
VARVAR
NumeroNumero :: IntegerInteger;;
BEGINBEGIN
NumeroNumero :=:= 1;1;
WHILEWHILE NumeroNumero <=<= 5050 DODO
BEGINBEGIN
WriteLnWriteLn (Numero);(Numero);
NumeroNumero :=:= NumeroNumero +1;+1;
END;END;
END.END.
►► AlAl finalfinal deldel programaprograma lala variablevariable NumeroNumero guardarguardaráá elel valorvalor 51,51, queque fufuéé
elel valorvalor queque nono cumplicumplióó concon lala condicicondicióónn establecidaestablecida enen elel ciclociclo WHILE.WHILE.
T3-LP3-FISI-UJCM
CiclosCiclos REPEATREPEAT--UNTILUNTIL ►► EsteEste tipotipo dede ciclosciclos eses muymuy parecidoparecido aa loslos
CiclosCiclos REPEATREPEAT--UNTILUNTIL
►►
EsteEste tipotipo dede ciclosciclos eses muymuy parecidoparecido aa loslos ciclosciclos WHILE,WHILE, lala diferdiferenciaencia entreentre
ambosambos eses queque enen WHILEWHILE lala condicicondicióónn sese evalevalúúaa alal principioprincipio deldel ciclo,ciclo, enen cambiocambio
enen REPEATREPEAT--UNTILUNTIL sese evalevalúúaa alal final,final, lolo queque significasignifica queque enen unun ciclociclo REPEATREPEAT--
UNTILUNTIL lala sentenciasentencia sese ejecutarejecutaráá porpor lolo menosmenos unauna vez,vez, cosacosa queque puedepuede nono
ocurrirocurrir enen elel ciclcicloo WHILE.WHILE. Ejemplo:Ejemplo:
PROGRAMPROGRAM Ciclo_RepeatUntilCiclo_RepeatUntil;;
VARVAR
NumeroNumero :: IntegerInteger;;
BEGINBEGIN
NumeroNumero :=:= 1;1;
REPEATREPEAT
WriteLnWriteLn (Numero);(Numero);
NumeroNumero :=:= NumeroNumero ++ 1;1;
UNTILUNTIL NumeroNumero == 50;50;
END.END.
►►
ParaPara crearcrear unun buenbuen programaprograma eses necesarionecesario dotarlodotarlo concon capacidadcapacidad ddee desicidesicióónn
concon basebase enen laslas variablesvariables oo eveneventostos definidosdefinidos porpor elel programadorprogramador,, parapara queque elel
programaprograma seasea aplicableaplicable enen unun entornoentorno mmááss generalizadogeneralizado yy nono solosolo parapara unun
problemaproblema especespecíífico.fico.
T3-LP3-FISI-UJCM
SENTENCIASSENTENCIAS DEDE CONTROLCONTROL ►► SentenciaSentencia IF ELSEIF THEN THEN ELSE ►► EstaEsta
SENTENCIASSENTENCIAS DEDE CONTROLCONTROL
►► SentenciaSentencia IF
ELSEIF
THEN
THEN
ELSE
►►
EstaEsta expresiexpresióónn eses utilizadautilizada parapara ejecutarejecutar unauna
sentenciasentencia enen elel casocaso queque unauna condicicondicióónn establecidaestablecida
seasea verdadera,verdadera, dede lolo contrariocontrario sese podrapodra ejecutarejecutar
unauna sentenciasentencia distinta.distinta. SuSu sintaxissintaxis es:es:
IFIF condicicondicióónn THENTHEN instrucciinstruccióónn ELSEELSE otrootro
►►
DondeDonde condicicondicióónn eses lala expresiexpresióónn queque sese evaluarevaluaráá,,
enen casocaso dede serser verdaderaverdadera sese ejecutarejecutaráá lala sentenciasentencia
dadadada comocomo instrucciinstruccióón,n, enen casocaso dede queque lala
condicicondicióónn seasea falsafalsa sese ejecutaraejecutara lala sentenciasentencia dadadada
comocomo otro.otro.
T3-LP3-FISI-UJCM
ESTRUCTURASESTRUCTURAS DEDE CONTROLCONTROL ►► SentenciaSentencia IF ELSEIF THEN THEN ELSE ►► EstaEsta
ESTRUCTURASESTRUCTURAS DEDE CONTROLCONTROL
►► SentenciaSentencia IF
ELSEIF
THEN
THEN
ELSE
►►
EstaEsta expresiexpresióónn eses utilizadautilizada parapara ejecutarejecutar unauna
sentenciasentencia enen elel casocaso queque unauna condicicondicióónn establecidaestablecida
seasea verdadera,verdadera, dede lolo contrariocontrario sese podrapodra ejecutarejecutar
unauna sentenciasentencia distinta.distinta. SuSu sintaxissintaxis es:es:
IFIF condicicondicióónn THENTHEN instrucciinstruccióónn ELSEELSE otrootro
►►
DondeDonde condicicondicióónn eses lala expresiexpresióónn queque sese evaluarevaluaráá,,
enen casocaso dede serser verdaderaverdadera sese ejecutarejecutaráá lala sentenciasentencia
dadadada comocomo instrucciinstruccióón,n, enen casocaso dede queque lala
condicicondicióónn seasea falsafalsa sese ejecutaraejecutara lala sentenciasentencia dadadada
comocomo otro.otro.
T3-LP3-FISI-UJCM
ESTRUCTURASESTRUCTURAS DEDE CONTROLCONTROL ►► Ejemplo:Ejemplo: PROGRAMPROGRAM IF_THEN_ELSEIF_THEN_ELSE;; VARVAR
ESTRUCTURASESTRUCTURAS DEDE CONTROLCONTROL
►► Ejemplo:Ejemplo:
PROGRAMPROGRAM IF_THEN_ELSEIF_THEN_ELSE;;
VARVAR
ContadorContador :: IntegerInteger;;
BEGINBEGIN
FORFOR contadorcontador :=:= 11 toto 5050 DODO
BEGINBEGIN
IFIF contadorcontador >> 1010 THENTHEN WriteLn(ContadorWriteLn(Contador)) ELSEELSE WriteLnWriteLn('*');('*');
END;END;
END.END.
►►
►►
EnEn esteeste pequepequeññoo programaprograma lala variablevariable ContadorContador sese incrementarincrementaráá desdedesde 11 hastahasta
50,50, lala sentenciasentencia condicionalcondicional IFIF verificarverificaráá sisi eses verdadverdad queque ContadorContador eses mayormayor aa
10,10, dede serser asasíí sese escribirescribiráá enen pantallapantalla elel valorvalor dede lala variable,variable, dede lolo contrariocontrario sese
escribirescribiráá enen lala pantallapantalla unun carcarááctercter "*"."*". ComoComo elel contadorcontador iniciainicia desdedesde 1,1,
tenemostenemos queque sese imprimirimprimiráánn 1010 asteriscosasteriscos antesantes deldel primerprimer nnúúmero,mero, queque serseráá elel
11,11, valorvalor queque sisi cumplecumple lala condicicondicióónn "Contador"Contador >> 10"10" (la(la hacehace verdadera).verdadera).
LaLa secciseccióónn ELSEELSE concon susu correspondientecorrespondiente sentenciasentencia sonson opcionalesopcionales yy puedenpueden
omitirseomitirse enen casocaso dede nono necesitarse.necesitarse.
T3-LP3-FISI-UJCM
ESTRUCTURASESTRUCTURAS DEDE CONTROLCONTROL ►► SentenciasSentencias IFIF anidadasanidadas ►► EsEs posibleposible
ESTRUCTURASESTRUCTURAS DEDE CONTROLCONTROL
►► SentenciasSentencias IFIF anidadasanidadas
►► EsEs posibleposible utilizarutilizar enen unauna expresiexpresióónn deldel tipotipo IF THEN
ELSEIF
THEN ELSE
unauna sentenciasentencia compuestacompuesta comocomo lala sentenciasentencia aa ejecutarseejecutarse
enen casocaso dede queque lala condicicondicióónn seasea verdadera,verdadera, asasíí comocomo enen lala
sentenciasentencia posteriorposterior aa unun ELSE,ELSE, dede estaesta formaforma podemospodemos
utilizarutilizar otraotra sentenciasentencia IF
ELSEIF
THEN
THEN
ELSE
dentrodentro dede lala anterior,anterior,
parapara dede estaesta formaforma evaluarevaluar variasvarias condicionescondiciones unauna dentrodentro
dede otra.otra. Ejemplo:Ejemplo:
IFIF NumeroNumero >> 55 THENTHEN
BEGINBEGIN
IFIF NumeroNumero <10<10 THENTHEN OpcionOpcion :="Numero;<BR">:="Numero;<BR"> IFIF
NumeroNumero <30<30 THENTHEN Opcion2Opcion2 :="Numero;<BR">:="Numero;<BR"> END;END;
T3-LP3-FISI-UJCM
ESTRUCTURASESTRUCTURAS DEDE CONTROLCONTROL ►► ►► ►► SeleccionesSelecciones CASECASE EstaEsta formaforma
ESTRUCTURASESTRUCTURAS DEDE CONTROLCONTROL
►►
►►
►►
SeleccionesSelecciones CASECASE
EstaEsta formaforma dede controlcontrol sese utilizautiliza cuandocuando sese vava aa evaluarevaluar unauna exprexpresiesióónn queque
puedepuede contenercontener variosvarios datosdatos diferentesdiferentes yy enen cadacada datodato deberdeberáá realizarrealizar unauna
acciaccióónn especial.especial. PorPor ejemplo,ejemplo, sisi sese creacrea unun menmenúú concon diferentesdiferentes opcionesopciones sese
realizarrealizaráá unun determinadodeterminado procesoproceso parapara cadacada acciaccióón,n, aunqueaunque lala selecciseleccióónn porpor
parteparte deldel usuariousuario sese hagahaga desdedesde elel mismomismo lugar.lugar.
ElEl siguientesiguiente programaprograma ilustrailustra elel usouso dede lala formaforma CASE,CASE, elel prograprogramama preguntarpreguntaráá
unun nnúúmeromero alal usuariousuario yy lolo clasificarclasificaráá dede acuerdoacuerdo aa susu valor.valor.
PROGRAMPROGRAM Case;Case;
VARVAR
NumeroNumero :: IntegerInteger;;
BEGINBEGIN
WriteLnWriteLn('Introduzca('Introduzca unun nnúúmeromero enteroentero deldel 11 alal 5:5: ');');
ReadLn(NumeroReadLn(Numero););
CASECASE NumeroNumero OFOF
11
:: WriteLnWriteLn('El('El nnúúmeromero fufuéé 1');1');
22
:: WriteLnWriteLn('El('El nnúúmeromero fufuéé 2');2');
33
:: WriteLnWriteLn('El('El nnúúmeromero fufuéé 3');3');
44
:: WriteLnWriteLn('El('El nnúúmeromero fufuéé 4');4');
55
:: WriteLnWriteLn('El('El nnúúmeromero fufuéé 5');5');
ELSEELSE WriteLnWriteLn('El('El nnúúmeromero nono estabaestaba enen elel rangorango indicado');indicado');
END.END.
T3-LP3-FISI-UJCM
PROCEDIMIENTOSPROCEDIMIENTOS ►► DefiniciDefinicióónn dede procedimientoprocedimiento ► Un procedimiento es un
PROCEDIMIENTOSPROCEDIMIENTOS
►► DefiniciDefinicióónn dede procedimientoprocedimiento
► Un procedimiento es un grupo de sentencias que realizan una tarea
concreta. En lugar de reescribir el código completo de esa tarea cada
vez que se necesite, únicamente se hace una referencia al
procedimiento.
► Por ejemplo, es muy común que se quiera visualizar un título
determinado varias veces en un programa, para evitar teclear ese
título en nuestro programa fuente todas las veces que sea necesario
creamos un procedimiento llamado "Titulo" que se encargará de
escribirlo.
► Una vez creado un procedimiento actuará como una instrucción más
de Turbo Pascal, y para ejecutarlo únicamente teclearemos el nombre
de dicho procedimiento.
► Para poder ejecutar un procedimiento es necesario declararlo en el
programa que se este utilizando.
T3-LP3-FISI-UJCM
PROCEDIMIENTOSPROCEDIMIENTOS ►► CreaciCreacióónn dede loslos procedimientosprocedimientos ► El primer paso para
PROCEDIMIENTOSPROCEDIMIENTOS
►► CreaciCreacióónn dede loslos procedimientosprocedimientos
► El primer paso para crear un procedimiento es saber que queremos
que haga. Una vez definiendo este punto declaramos el procedimiento
después de haber declarado variables y constantes, antes del cuerpo
del programa principal. La palabra reservada para su declaración es
Procedure seguida del nombre del procedimiento. Vamos a crear un
procedimiento encargado de escribir en pantalla el enunciado
"Programa de Turbo Pascal":
PROCEDUREPROCEDURE Titulo;Titulo;
BEGINBEGIN
WriteLnWriteLn ('Programa('Programa dede TurboTurbo Pascal');Pascal');
END;END;
T3-LP3-FISI-UJCM
PROCEDIMIENTOSPROCEDIMIENTOS ►► UsoUso dede loslos procedimientosprocedimientos ► Una vez declarado el
PROCEDIMIENTOSPROCEDIMIENTOS
►►
UsoUso dede loslos procedimientosprocedimientos
Una vez declarado el procedimiento es posible utilizarlo como una instrucción
de Turbo Pascal. Al uso de un procedimiento se le conoce como llamada al
procedimiento.
El siguiente programa ilustra el uso o la llamada al procedimiento creado
anteriormente:
PROGRAMPROGRAM Procedimientos;Procedimientos;
PROCEDUREPROCEDURE Titulo;Titulo;
BEGINBEGIN
WriteLnWriteLn ('Programa('Programa dede TurboTurbo Pascal');Pascal');
END;END;
BEGINBEGIN
WriteLnWriteLn ('Programa('Programa ejemploejemplo deldel usouso dede procedimientos');procedimientos');
Titulo;Titulo;
{Llama{Llama alal procedimiento}procedimiento}
WriteLnWriteLn;;
Titulo;Titulo;
{Vuelve{Vuelve aa llamarllamar alal procedimiento}procedimiento}
END;END;
T3-LP3-FISI-UJCM
PROCEDIMIENTOSPROCEDIMIENTOS ►► ►► VariablesVariables localeslocales yy globalesglobales EnEn TurboTurbo
PROCEDIMIENTOSPROCEDIMIENTOS
►►
►►
VariablesVariables localeslocales yy globalesglobales
EnEn TurboTurbo PascalPascal cadacada identificadoridentificador tienetiene unun campocampo dede acciaccióón,n, solosolo dentrodentro dede éésteste campocampo
eses posibleposible utilizarlo.utilizarlo. LosLos ejemplosejemplos mmááss clarosclaros sonson laslas variables,variables, queque puedenpueden serser globalesglobales
oo locales.locales. LaLa diferenciadiferencia estribaestriba enen queque unauna variablevariable globalglobal puedpuedee serser utilizadautilizada porpor
cualquiercualquier parteparte deldel programa,programa, incluyendoincluyendo aa todostodos loslos procedimienprocedimientos,tos, enen cambiocambio unauna
variablevariable locallocal puedepuede serser utilizadautilizada úúnicamentenicamente porpor elel procedimientoprocedimiento enen elel queque estaesta
declarada,declarada, elel programaprograma principalprincipal yy loslos otrosotros procedimientosprocedimientos lala ttomanoman comocomo inexistente.inexistente.
Ejemplo:Ejemplo:
PROGRAM Variables;
VAR
Hola : String;
PROCEDURE prueba;
VAR
Adios : String;
BEGIN
{En esta sección si es posible usar la variable Hola}
Adios := 'Adios, que les vaya bien';
WriteLn (Adios);
END;
BEGIN
{En esta sección no se reconoce a la
variable Adios}
Hola := 'Hola, bienvenidos al programa';
WriteLn (Hola);
WriteLn (Adios);
{Al compilar el programa se generará un
error ya que la variable Adios es
inexistente en esta sección, para eliminar
el problema quites esta linea}
prueba;
END.
T3-LP3-FISI-UJCM
PROCEDIMIENTOSPROCEDIMIENTOS ►► VariablesVariables localeslocales yy globalesglobales ►► EsEs posibleposible
PROCEDIMIENTOSPROCEDIMIENTOS
►►
VariablesVariables localeslocales yy globalesglobales
►►
EsEs posibleposible darledarle elel mismomismo nombrenombre aa unauna variablevariable locallocal yy aa unauna glglobalobal enen elel mismomismo
programa,programa, peropero entoncesentonces elel procedimientoprocedimiento nono podrpodráá utilizarutilizar lala variablevariable globalglobal yaya queque lele
dada preferenciapreferencia aa laslas localeslocales sobresobre laslas globales.globales. PorPor ejemplo:ejemplo:
PROGRAM Variables_2;
VAR
Saludo : String;
PROCEDURE Mensaje;
VAR
Saludo : String;
BEGIN
Saludo := 'Este mensaje solo es válido para el procedimiento "Mensaje"';
WriteLn('Saludo');
END;
BEGIN
Saludo := 'Primer saludo (Global)';
WriteLn (Saludo);
Mensaje;
WriteLn (Saludo); {Se escribirá el mensaje "Primer saludo"}
END.
T3-LP3-FISI-UJCM
PROCEDIMIENTOSPROCEDIMIENTOS ►► ParParáámetrosmetros ►► ParaPara poderpoder pasarpasar
PROCEDIMIENTOSPROCEDIMIENTOS
►► ParParáámetrosmetros
►►
ParaPara poderpoder pasarpasar informaciinformacióónn entreentre elel programaprograma principalprincipal yy procedimientos,procedimientos, oo
entreentre loslos mismosmismos procedimientosprocedimientos usamosusamos loslos parparáámetros,metros, queque sonson loslos canalescanales
dede comunicacicomunicacióónn dede datos.datos.
►►
LosLos parparáámetrosmetros sonson opcionalesopcionales yy sisi nono sese necesitannecesitan nono sese debendeben usar.usar. ParParaa
utilizarlosutilizarlos eses necesarionecesario declarardeclararloslos sonson lala siguientesiguiente sintaxis:sintaxis:
PROCEDUREPROCEDURE nombrenombre (lista(lista dede parparáámetros);metros);
►►
LaLa listalista dede parparáámetrosmetros estaesta compuestacompuesta dede loslos nombresnombres dede loslos mismosmismos yy deldel
tipotipo dede datosdatos queque representan,representan, loloss deldel mismomismo tipotipo sese separanseparan concon comascomas ",""," yy
cadacada tipotipo diferentediferente sese separasepara concon puntopunto yy comacoma ";".";". Ejemplo:Ejemplo:
ProcedureProcedure Ejemplo(aEjemplo(a,, bb :: IntegerInteger;; c,c, dd :: StringString););
►►
ParaPara llamarllamar aa unun procedimientoprocedimiento queque utilizautiliza parparáámetrosmetros sese puedenpueden utilizarutilizar comocomo
talestales otrasotras variablesvariables oo constantes,constantes, siempresiempre yy cuandocuando seansean deldel mimismosmo tipotipo queque
loslos declarados.declarados. Ejemplo:Ejemplo:
Ejemplo(1,Ejemplo(1, 2,2, 'Hola','Hola', ''AdiosAdios');');
T3-LP3-FISI-UJCM
PROCEDIMIENTOSPROCEDIMIENTOS ►► EjemploEjemplo dede unun programaprograma concon procedimientoprocedimiento queque
PROCEDIMIENTOSPROCEDIMIENTOS
►►
EjemploEjemplo dede unun programaprograma concon procedimientoprocedimiento queque utilizautiliza unun parparáámetro.metro.
PROGRAMPROGRAM ParametrosParametros;;
VARVAR
SaludoSaludo :: StringString;;
PROCEDUREPROCEDURE Imprime_5Imprime_5 (a(a :: StringString););
VARVAR
ContadorContador :: IntegerInteger;;
BEGINBEGIN
FORFOR contadorcontador :=:= 11 toto 55 DODO
{Imprime{Imprime 55 vecesveces lala cadenacadena almacenadaalmacenada }}
WriteLn(aWriteLn(a););
{en{en lala variablevariable "a","a", queque eses lala informaciinformacióón}n}
END;END;
{que{que llegallega comocomo parparáámetrometro }}
Es válido crear un
procedimiento que
llame a otro
procedimiento
siempre y cuando el
procedimiento
llamado haya sido
declarado antes del
que lo usará.
BEGINBEGIN
SaludoSaludo :=:= 'Bienvenidos'Bienvenidos alal programa';programa';
Imprime_5Imprime_5 (Saludo);(Saludo);
{llama{llama alal procedimientoprocedimiento Imprime_5,Imprime_5, usandousando como}como}
{par{paráámetrometro lala variablevariable SaludoSaludo }}
Imprime_5Imprime_5 ('Fin');('Fin');
{Utiliza{Utiliza lala cadenacadena "fin""fin" comocomo parparáámetrometro }}
END.END.
T3-LP3-FISI-UJCM
FUNCIONESFUNCIONES ►► DefiniciDefinicióónn dede laslas funcionesfunciones ►► LasLas funcionesfunciones
FUNCIONESFUNCIONES
►►
DefiniciDefinicióónn dede laslas funcionesfunciones
►►
LasLas funcionesfunciones son,son, alal igualigual queque loslos procedimientos,procedimientos, unun conjuntoconjunto dede sentenciassentencias
queque sese ejecutanejecutan constantemente,constantemente, lala diferenciadiferencia entreentre ééstasstas yy loslos procedimientosprocedimientos
eses queque laslas funcionesfunciones regresanregresan unun valor.valor. LaLa declaracideclaracióónn dede laslas funcionesfunciones sese
realizarealiza dede lala siguientesiguiente forma:forma:
FUNCTIONFUNCTION nombre(parnombre(paráámetrosmetros)) :: tipo_de_datostipo_de_datos;;
►► AA continuacicontinuacióónn sese escribeescribe elel contenidocontenido dede lala funcifuncióónn comocomo unauna sentenciasentencia
normalnormal (sencilla(sencilla oo compuesta),compuesta), normalmentenormalmente terminandoterminando concon lala iguigualacialacióónn dede
lala funcifuncióónn alal valorvalor queque regresarregresaráá Ejemplo:Ejemplo:
FUNCTIONFUNCTION PromedioPromedio (a,(a, bb :: Real)Real) :: Real;Real; {Promedio{Promedio dede dosdos nnúúmerosmeros reales}reales}
BEGINBEGIN
PromedioPromedio :=:= (a(a ++ b)b) // 2;2;
END;END;
T3-LP3-FISI-UJCM
FUNCIONESFUNCIONES ►► UsoUso dede laslas funcionesfunciones ►► ComoComo laslas funcionesfunciones
FUNCIONESFUNCIONES
►►
UsoUso dede laslas funcionesfunciones
►►
ComoComo laslas funcionesfunciones devuelvendevuelven unun valorvalor especespecííficofico lala formaforma mmááss usualusual dede utilizarlasutilizarlas eses porpor
mediomedio dede asignacionesasignaciones dede unauna variablevariable aa lala funcifuncióón.n. Ejemplo:Ejemplo:
PROGRAMPROGRAM Funciones;Funciones;
VARVAR
X,X, Y,Y, ZZ :: Real;Real;
FUNCTIONFUNCTION PromedioPromedio (a,(a, bb :: Real)Real) :: Real;Real;
{Promedio{Promedio dede dosdos nnúúmerosmeros reales}reales}
BEGINBEGIN
PromedioPromedio :=:= (a(a ++ b)b) // 2;2;
END;END;
BEGINBEGIN
XX
:=:= 5.89;5.89;
YY
:=:= 9.23;9.23;
ZZ
:=:= PromedioPromedio (X,(X, Y);Y);
{Iguala{Iguala ZZ alal valorvalor devueltodevuelto porpor lala funcifuncióónn Promedio}Promedio}
WriteLnWriteLn('El('El promediopromedio dede ',',X,'X,' yy ',Y,'',Y,' es:es: ',Z);',Z);
END.END.
T3-LP3-FISI-UJCM