Pascal [modo de compatibilidad]

2,124 views

Published on

Fundamentos de programación

1 Comment
0 Likes
Statistics
Notes
  • Está muy bueno, muchas gracias por compartirlo, bien explicado de forma sencilla y claro, sin ser utilizar un lenguaje muy avanzado, gracias nuevamente.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

No Downloads
Views
Total views
2,124
On SlideShare
0
From Embeds
0
Number of Embeds
365
Actions
Shares
0
Downloads
72
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

Pascal [modo de compatibilidad]

  1. 1. FU DAME TOS DE PROGRAMACIÓ
  2. 2. AlgoritmoEs un conjunto prescrito de instrucciones o reglas biendefinidas, ordenadas y finitas que permite realizar unaactividad mediante pasos sucesivos que no generen dudasa quien lo ejecute. Siempre viene definido un inicio y unfin • Pseudocódigo • Diagrama de flujo
  3. 3. PseudocódigoEl pseudocódigo (falso lenguaje, elprefijo pseudo significa falso) es una descripción de altonivel de un algoritmo que emplea una mezcla de lenguajenatural con algunas convenciones sintácticas propias delenguajes de programación, como asignaciones, ciclos ycondicionales, aunque no está regido por ningún estándar
  4. 4. Diagrama de flujoLos diagramas de flujo son descripciones gráficas dealgoritmos; usan símbolos conectados con flechas paraindicar la secuencia de instruccionesLos diagramas de flujo son usados para representaralgoritmos pequeñosPor su facilidad de lectura son usados como introducción alos algoritmos, descripción de un lenguaje y descripción deprocesos a personas ajenas a la computación
  5. 5. Diagrama de flujoEJEMPLO:
  6. 6. Diagrama de flujoLEYENDA
  7. 7. Diagrama de flujoLEYENDA
  8. 8. Reglas para los diagrama• Los Diagramas deben ir de arriba hacia abajo o de izq. a der• Los símbolos se unen con flechas que indica la dirección que fluye la información procesos• Se debe evitar el cruce de líneas• No deben quedar líneas de flujo sin conectar• Todo texto escrito dentro de un símbolo debe ser legible, preciso, evitando el uso de muchas palabras• Todos los símbolos pueden tener más de una línea de entrada, a excepción del símbolo final• Los símbolos de decisión deben tener mas de una línea de flujo de salida.
  9. 9. BinarioBINARIO 11011000011100CONVERSION DE BINARIO A DECIMAL • A cada numero binario se le asigna una posición de derecha a izquierda comenzando por cero • Se multiplica cada numero binario por 2^posicion • Luego se suma Ejemplo: 101 = (2^2)*1 + (2^1)*0 + (2^0)*1 = 5
  10. 10. BinarioCONVERSION DE DECIMAL A BINARIO • Se divide entre 2 el numero decimal • El resto si es uno o cero se va listando • La resultado de la división entera se vuelve a dividir • Cuando el resultado es cero se termina • El numero binario es la ordenación de abajo hacia arriba de los restos Ejemplo: Transformar el número decimal 4 en binario.4 dividido entre 2 da 2 y el resto es igual a 02 dividido entre 2 da 1 y el resto es igual a 01 dividido entre 2 da 0 y el resto es igual a 1 Ordenamos los restos, del último al primero: 100
  11. 11. PascalEs un lenguaje de alto nivel desarrollado enAlemania a fines de la década del 70 por iklausWirth. La idea fue crear un lenguaje que permitiesela enseñanza y el aprendizaje de la programación. Atal fin, la sintaxis del Pascal es muy similar a la delidioma inglés y los programas son fáciles de leer einterpretar. Además, Pascal no toma enconsideración el hecho que las letras estén enmayúsculas o minúsculas.
  12. 12. CompiladoresEn el Laboratorio de Informática se emplea elcompilador de Pascal de Borland, que ofrecemuchas facilidades para el aprendizaje, como elrealzado de sintaxis y la ubicación de los errores enla línea de código en que ocurren.
  13. 13. Tres conceptos fundamentalesAntes de ver en mayor detalle el lenguaje deprogramación Pascal, es bueno tener claro que son : •las constantes, •las variables y •los identificadores.Para eso debe tener una noción (por vaga que sea)de programa.
  14. 14. ¿Qué es un programa?Un programa no es más que una serie de líneas detexto, cada una de las cuales contiene algunadefinición sobre la información a ser usada en elprograma o bien alguna instrucción que se desea quela computadora ejecute.
  15. 15. DefinicionesConstante:como su nombre lo indica, es un valor que a lolargo de la ejecución de un programa no varía.Variable:este es un espacio o contenedor, es como un vaso,que puede almacenar diversos valores durante laejecución del programa.
  16. 16. DefinicionesIdentificador:Es una combinación de letras, números y el caracter_, pudiendo empezar con cualquiera de ellosexcepto números.Es un concepto muy importante en Pascal, ya quesirve para nombrar las constantes, las variables eincluso el mismo programa.
  17. 17. Tipos de DatosEn Pascal se debe especificar a la computadora quéclase de datos va a contener una variable.A simple vista, podemos distinguir entre una palabracomo Hola o un número como 47.
  18. 18. Tipos de DatosInteger: número entero entre -32,768 y 32,767LongInt: número entero entre -2*10^31 y 2*10^31 -1Real: número con coma decimal entre 2.9*10-39^y 1.7*10^38String: cadena de caracteres (conjunto de números, letras, símbolos; palabras y frases)
  19. 19. Tipos de Datos• Char: un caracter (un dígito o una letra o un símbolo) Boolean: Pueden tomar dos valores True (verdadero) False (falso). Existen otros tipos de datos
  20. 20. Tipos Definidos por el UsuarioExisten dos tipos de datos simples definidos por elusuario:Tipos enumerados: Se componen de una lista deidentificadores encerrados entre paréntesis yseparados por comas.Tipos subrango: Es un subconjunto de un tipoordinal (enteros, boolean, carácter y enumerado)que se especifica indicando el primero y el últimoelemento del conjunto.
  21. 21. Tipos EnumeradosCada uno lleva asociado un número entero: alprimero se le asigna el O, al segundo un 1, y asísucesivamente, por lo que no es independiente elorden de declaración.Un valor de tipo enumerado no puede pertenecer ados declaraciones de tipo distintas y no puedenleerse desde teclado, ni escribirse en pantalla.
  22. 22. Tipos Enumerados. EjemplosType Estaciones = (primavera, verano, otoño, invierno); Colores = (rojo, amarillo, verde, azul, violeta);
  23. 23. Tipos Subrango. Ejemplos otación:Type Identificador = primerelemento..ultimoelemento;Ejemplos:Type Dias = 1..31; Meses = 1..12;
  24. 24. Asignación de tipos a variablesPara decirle a Pascal el tipo de una variable,se usa una de las siguientes palabras clave enel lugar indicado en el esqueleto delprograma.Ejemplo: var i: integer; a: boolean;
  25. 25. Esqueleto de un Programa en PascalTodos los programas de Pascal comparten ciertascaracterísticas comunes, algunas de las cuales sonopcionales. Esto se llama esqueleto del programa yse muestra a continuación.
  26. 26. ConvenciónEn este esqueleto, lo que se ponga entre signos demayor y menor (<>) indicarán elementos quedeben reemplazarse en un programa real.
  27. 27. Esqueleto de un Programa en PascalProgram <identificador>;Uses WinCrt;Const {constantes} <identificador> = <valor>;Var {variables} <identificador> : <tipo>;Begin {instrucciones}...End.
  28. 28. Componentes del Esqueleto de un programaLa línea Program es opcional y sirve para ponerle un nombreal programa.La línea Uses WinCrt es una forma de que Pascal active lacapacidad de leer desde el teclado y de escribir hacia lapantalla; en Windows, se hace esto sobre una pequeñaventana blanca, y en DOS sobre la pantalla completa (se debeescribir Uses Crt en compiladores de DOS).
  29. 29. Componentes del Esqueleto de un programaLas secciones llamadas Const y Var son para declarar lasconstantes y las variables, respectivamente.Son opcionales e intercambiables. Se pone un identificadorque será el nombre con el que, tanto Pascal como elprogramador, la conocerán.• A una constante no se le especifica el tipo, sólo elvalor.• A una variable no se le puede dar un valor cuandose la declara.
  30. 30. Componentes del Esqueleto de un programaLa sección entre las palabras Begin y End es la parteprincipal del programa y es aquí donde van lasinstrucciones del programa.Estas palabras actúan como paréntesis.El último End debe terminar con un punto, para quePascal sepa que el programa ha terminado.
  31. 31. Componentes del Esqueleto de un programaAl final de varias líneas del esqueleto aparece unpunto y coma. En general, todas las líneas de códigoPascal terminan en punto y coma, a menos queterminen en una palabra reservada.Las palabras entre llaves ({}) son comentarios, yPascal las ignora por completo. Son una formavaliosa de incluir información para los humanosdentro del código para la computadora.
  32. 32. Operaciones de Entrada/Salida Sentencias de salida o escritura.Write o Writeln (NombreArchivo, Nomvarl ,Nomvar2...):Realizan conversión de tipos de datos antes de que la salidallegue al archivo de salida. Las variables o argumentos de estasentencia pueden ser: expresiones. constantes o variablesnuméricas, de carácter, de cadena o booleanas.
  33. 33. Operaciones de Entrada/Salida Sentencia de entrada o lectura. Read o Readln (NombreArchivo,Nomvarl ,Nomvar2..);
  34. 34. Operadores AritméticosOperador Función - Operador unario. Invierte el signo. + Operador binario suma. - Operador binario resta. * Operador binario producto. / Operador binario división real. div Operador binario división entera. Mod Operador binario resto entero.
  35. 35. Operador de asignaciónLa combinación de símbolos := es el operador deasignación y sirve, al igual que el ReadLn, paradarle valor a una variable.El valor que se da a la variable no se lee del teclado,sino que se toma de una constante, de otra variable,o de una expresión aritmética (situadas a la derechadel operador de asignación) y se copia hacia lavariable cuyo nombre está a la izquierda.
  36. 36. Funciones PredefinidasInstrucción FunciónAbs(x) Proporciona el valor absoluto de una variable numérica x.ArcTan(x) El arco cuya tangente es x.Chr(x) Devuelve el carácter ASCII de un entero entre O y 255.Cos(x) Proporciona el valor del coseno de x.Exp(x) La exponencial de x(eX).Frac(x) Parte decimal de x.Int(x) Parte entera de x.Ln(x) Logaritmo neperiano de x.Odd(x) True si x es impar, y false si es par.Ord(x) Ordinal de una variable tipo ordinal x.Pred(x) Ordinal anterior a la variable ordinal x.
  37. 37. Funciones PredefinidasInstrucción Función.Round(x) Entero más próximo al valor x.Succ(x) Ordinal siguiente a la variable ordinal x.Sin(x) Seno de x.Sqr(x) Cuadrado de x.Sqrt(x) Raiz cuadrada de x, para x>=O.Trunc(x) Parte entera de x.
  38. 38. Estructuras de ControlSe denominan estructuras de control a aquellas quedeterminan qué instrucciones deben ejecutarse y quénúmero de veces.Existen dos tipos de estructuras de control: •alternativas o de selección •repetitivas o de iteración.
  39. 39. Estructuras AlternativasSon aquellas que bifurcan o dirigen la ejecución deun programa hacia un grupo de sentencias u otrodependiendo del resultado de una condición. Lasdos sentencias alternativas de Pascal son: • Sentencia alternativa simple IF-THEN-ELSE • Sentencia alternativa múltiple CASE-OF.
  40. 40. IF THE ELSEIF (expresión lógica o booleana)THE Sentencia1 (simple o compuesta)ELSE Sentencia2 (simple o compuesta);
  41. 41. EjemploEjemplo:IF n>O then Writeln (`Número positivo);IF n>O then Writeln (`Número positivo) ELSE Writeln (`Negativo o cero);No puede existir un punto y coma inmediatamente antes deuna palabra ELSE ya que sería interpretado como final deIF.
  42. 42. CASE OFCASE (expresión o variable) OF (lista de constantes1):(sentencia1); (lista de conslantes2):(sentencia2); (lista de constantes3):(senteneia3); ... (lista de constantesN):(sentenciaN); ELSE (SENTENCIA) ...END;
  43. 43. EjemploProgram menu;Var Numerodia: integer;Begin Write(introduzca el ordinal de un día laborable de la semana:); Readln (numerodia); Write (`Hoy es ); Case numerodia Of 1:Writeln (Lunes); 2:Writeln (Martes); 3:Writeln (Miercoles); 4:Writeln (Jueves); 5:Writeln (Viernes); 6:Writeln (Sábado) Else Writeln (¡¡¡Domingo!!! No es día laborable);End.
  44. 44. Estructuras RepetitivasSon aquellas que crean un bucle (repetición continua de unconjunto de instrucciones) en la ejecución de un programarespecto de un grupo de sentencias en función de unacondición.Las tres sentencias repetitivas de Turbo Pascal son:• SENTENCIA WHILE• SENTENCIA REPEAT-UNTIL• SENTENCIA FOR• CUÁNDO SE USA CADA UNO
  45. 45. Sentencia WhileIndica al ordenador que se ejecuten una o mássentencias mientras se cumpla una determinadacondición establecida por una variable o expresiónbooleana.
  46. 46. Sentencia WhileEsta sentencia comprueba inicialmente si lacondición es verdadera. Si la condición esverdadera se ejecutan las sentencias mientras lacondición de su enunciado sea verdadera y finalizacuando la condición es falsa.Dado que la condición puede ser falsa inicialmente,es decir antes de comenzar el bucle, habrá casos enque el bucle no se ejecute.
  47. 47. Sentencia WhileWHILE condición DOBEGI (sentencia1); ... (sentenciaN);E D;WHILE condición DO (sentencia);
  48. 48. Características del Bucle WhileSe ejecuta mientras la condición sea verdadera, y dentro delbucle debe existir, por lo menos, una sentencia quemodifique el valor de la variable o expresión, de locontrario se puede producir una situación de bucle infinito.Si la expresión lógica es falsa al comenzar el bucle, éste nose realizará.
  49. 49. Ejemplo Escribir los N primeros números naturales, donde N es un valor introducido por el usuario.Program escribeenteros;Var N,contador: integer;Begin Write (Introduzca numero máximo de enteros: ); Readln (N); Contador:=1; While contador<=N do BeginWrite (contador:5); Contador:=contador+1; End; Writeln (Fin de programa. Contador = ,contador);End.
  50. 50. Características del Bucle ForAunque a primera vista pueda resultar más atractivo FOR,existen limitaciones en su aplicación ya que en el bucle FORsiempre se incrementa o decrementa (de uno en uno) losvalores de la variable de control de bucle y no de dos en doso de tres en tres, o con valores fraccionarios.El número de iteraciones de un bucle FOR siempre es fijo yse conoce de antemano:Valor final - Valor inicial +1.
  51. 51. EjemploProgram escribeenteros;Var N,contador: integer; Begin Write (Introduzca numero máximo de enteros: ); Readln (N); For contador:=1 to n do Write (contador:5); WritelnEnd.
  52. 52. Cuándo Utilizar While/Repeat/ForUtilizar la sentencia o estructura FOR cuando se conozca el número de iteraciones, y siempre que la variable de control de bucle sea de tipo ordinal.Utilizar la estructura REPEAT-UNTIL cuando el bucle se realice por lo menos una vez.En todos los demás casos utilizar la sentencia WHILE
  53. 53. Sentencia Repeat UntilEjecuta las sentencias comprendidas entre laspalabras reservadas REPEAT y U TIL hasta quela expresión o variable sea verdadera.
  54. 54. Sentencia Repeat Until REPEATbegin (Sentencia); (Sentencia); ...end; U TIL condición;
  55. 55. Características del Bucle RepeatSe ejecutan siempre una vez, por lo menos, y laterminación del bucle se produce cuando el valor dela expresión lógica o condición de salida esverdadera. Se ejecuta hasta que la expresión esverdadera, es decir, se ejecuta mientras la expresiónsea falsa.
  56. 56. EjemploProgram escribeenteros;Var N,contador:integer;Begin Write (Introduzca número máximo de enteros: ); Readin (N); Contador:= O; Repeat Contador:=contador+1; Write (contador:5) Until contador = N; Writeln (Fin de programa. Contador = ,contador)End.
  57. 57. Sentencia ForRepite la ejecución de una o varias sentencias unnúmero fijo de veces. previamente establecido.Necesita una variable de control del bucle que esnecesariamente de tipo ordinal, ya que el bucle seejecuta mientras la variable de control toma unaserie consecutiva de valores de tipo ordinal,comprendidos entre dos valores extremos (inferiory superior).
  58. 58. Sentencia ForFormato ascendente:FOR variablecontrol:=valorinicial TO valorfinal DO (sentencia);Formato descendente:FOR variablecontrol:=valorincial DOW TO valorfinalDO (sentencia); donde (sentencia) puede ser una sentencia simple ocompuesta.
  59. 59. La Estructura ArrayEs una estructura homogénea de datos de tamañoconstante accediendo a cada uno de sus elementosmediante un identificador común y uno o variosíndices.• Todos los elementos del array son del mismo tipo.• El número de ellos no varía durante la ejecucióndel programa.
  60. 60. La Estructura ArrayAccedemos a un elemento de la estructura medianteun identificador común, el nombre del array, y conel valor que toman uno o varios índices. Al númerode índices necesarios para designar un elemento delarray se le denomina dimensión del array.El número máximo de valores posibles que puedetomar cada índice se denomina rango de esadimensión o índice. Los valores han de serconsecutivos, por lo que el índice ha de ser de untipo ordinal
  61. 61. Declaración de tipos y variables ArrayLa declaración más general de un array es la siguiente:Type Rango1 = tipoordinal1; Rango2 = tipoordinal2; ... rangon = tipoordinaln; tipobase = (*cualquier predefinido o definido por elusuario*) tipoarray = array [rango1,rango2,...,rangon] of tipobase,
  62. 62. Ejemplo 1Arreglo de una dimensión:const n = 10;var arr: array [1..n] of integer;
  63. 63. Ejemplo 2Arreglo de varias dimensiones: Para almacenar las notascorrespondiente a todos los alumnos de un colegio.Suponiendo lo siguiente:Numero de cursos 5Grupos por curso 3Numero de evaluaciones 3Numero de asignaturas 6Numero de alumnos por curso 20
  64. 64. Ejemplo 2.1Const Numcurso=5; Numasig=6; Numalum=20;Type Cursos=1.. nurneurso; Grupos=A..C; Eval=(primera,segunda,tercera); Asign=1.. numasin; Alum=1. .numalum; Tiponotas=array[cursos,grupos,eval,asign,alum] of real;
  65. 65. Ejemplo 2.2Var Notas: tiponotas; Curso: cursos; Grupo: grupos; Evaluacion: eval; Materia: asign; Alumno: alum;Con los elementos de un array podemos realizar las mismasoperaciones que el tipo base al que pertenecen.
  66. 66. String: Cadenas de CaracteresLas cadenas de caracteres son arrays especiales.Una cadena de caracteres (string) consiste en unaserie o secuencia de caracteres cuyo número(longitud) puede estar entre 0 y 255.Se puede definir la longitud de la cadena poniendostring [n] donde n está entre 0 y 255.Longitud física: corresponde al máximo número decaracteres que puede almacenar.Longitud lógica: corresponde al número decaracteres que tiene en un instante determinado.
  67. 67. Operaciones y Tratamiento de cadenasLas dos operaciones básicas son: •Comparación •Concatenación.Operador de concatenación (+) Se utiliza para reunirvarias cadenas en una solaEjemplo: Cad1:=esto es un ejemplo; Cad2:=de concatenación de cadenas; Cadr:=cad1+cad2; Write (cadr); esto es un ejemplo de concatenación de cadenas
  68. 68. Operaciones y Tratamiento de cadenasLa función concat realiza la misma función que el operadorde concatenación. La sintaxis es: Function concat (cad1,cad2,...:string): string;La cadena vacía o nula se representa con dos caracteresapóstrofes seguidos .El acceso a los elementos de una cadena individualmente sehace como si fuera un array.Ejemplo: cad1:=ejemplo; cad1[1] devuelve el primer elemento, la letra ´e’.
  69. 69. Operaciones y Tratamiento de cadenasLa función Length proporciona la longitud lógicade una cadena de caracteres.Ejemplo:Longitud:=length(cad1);La variable longitud tomaría el valor 7.
  70. 70. Funciones de tratamiento de cadenasInstrucción FunciónCOPY Extrae una subcadena de caracteres de otra cadena de caracteresCopy (cadl,po,num) po: primera posición del caracter a extraer. Num: número de caracteres que se extraen. Po y Num deben ser enterosPOS Determina si una cadena es subcadena de otra, en caso afirmativo devuelve la posición donde comienza la subcadena, en caso negativo devolvería cero.Pos (subcadena,cadena)DELETE Suprime el numero de caracteres que le digamos de una cadena a partir de la posición que le indiquemosDelete (Cad,Po,Num)
  71. 71. Funciones de tratamiento de cadenasInstrucción FunciónINSERT Inserta una cadena de caracteres en otra a partir de una posicion dada.Insert (subcadena,destino,posicion) Subcadena: Cadena a insertar Destino: Cadena donde se va a insertar Posicion: Lugar a partir del cual se va a insertarUPCASE Devuelve el caracter mayúsculaUpcase(x)Donde x es una variable de tipo char.STR Convierte un valor numérico a la correspondiente cadena de caracteres que lo representa.Str(valor,cad)
  72. 72. Funciones de tratamiento de cadenasInstrucción FunciónVAL Procedimiento inverso a Str, es decir, devuelve el valor numérico de una cadena.Val(cad,variable,codigo)Cad: la cadena a convertir en valor numérico.Variable: el numero que se obtenga.Codigo: cero si se ha podido convertir.
  73. 73. RegistrosUn registro es una estructura heterogénea de datos,denominados campos y a los que accedemos por nombre.Al igual que cualquier otro dato, el tipo registro (Record)antes de poder ser utilizado debe ser declarado en lasección de tipos.La única operación (a parte de la lectura) que se puederealizar con una variable registro como tal es laasignación, es decir, se pueden copiar todos los camposde una variable registro a otra variable registro del mismotipo. Además un registro puede ser pasado comoparámetro a una función o procedimiento.
  74. 74. EjemploType Tiporegistro = record Campo 1 :tipol; . . Campo N : tipoN; End;Var Registro1 : tiporegistro;
  75. 75. Ejemplo Type Empleado = record NbrApell : string; EstadoCivil: (casado, viudo, soltero, divorciado); Sexo: (M, F); Antig: integer; Salario: real; End; Var emp1 : Empleado;begin brApell:= Eduardo Lopez; emp1.EstadoCivil:= casado; emp1.Salario:= 450.86end
  76. 76. Procedimientos y FuncionesPascal ofrece dos herramientas básicas para realizarprogramación descendente: •los procedimientos (procedure) •las funciones (function),a los que nos referiremos genéricamente con eltérmino de subprogramas. Turbo pascal incorporaademás el concepto de unidad (unit), que permiteaprovechar módulos independientes ya compilados.
  77. 77. Los ParámetrosLos parámetros son canales de comunicación parapasar datos entre programas y subprogramas enambos sentidos.Los parámetros van asociados a variablesconstantes, expresiones, etc., y por tanto, se indicanmediante los correspondientes identificadores oexpresiones.
  78. 78. Los ParámetrosLos parámetros que se utilizan en la llamada oinvocación al subprograma se denominanparámetros actuales, reales o argumentos, y sonlos que entregan la información al subprograma.Los parámetros que la reciben en el subprogramase denominan parámetros formales o ficticios y sedeclaran en la cabecera del subprograma.
  79. 79. Los ParámetrosEn una llamada a un subprograma tiene queverificarse que:El número de parámetros formales debe ser igualal de actuales.Los parámetros que ocupen el mismo orden encada una de las Listas deben ser compatibles entipo.
  80. 80. Declaración de parámetros formalesSe declaran encerrados entre paréntesis, indicandoel identificador y el tipo correspondiente asociadoa cada uno, separados por :, y terminando en ;.La palabra reservada VAR precediendo a unidentificador de parámetro formal indica alcompilador que el paso del parámetro es proVariable. Su ausencia u omisión indica que el pasode parámetro se realiza por VALOR.
  81. 81. Estructura, declaración y empleo de procedimientos y funcionesSe declaran inmediatamente después de lasvariables del programa principal, teniendola precaución de que si un subprogramareferencia o llama a otro, el referenciadodebe declararse primero.
  82. 82. Declaración de procedimientoCabecera procedure nombreproced (lista de parámetros);Declaraciones constLocales Type... Var... Declaración de otros procedimientos y funcionesCuerpo begin ... end; (*obseiwar; final de procedimiento*)
  83. 83. Ejemplo: ProcedimientoEjemplo.:Procedure Identificador (PF1 :tipol ;PF2:típo2; var PW:tipo3);PFl y PF2 se pasan por valor.PF3 se pasa por variable.
  84. 84. Declaración de funciónCabecera function nombrefunc (lista de parámet.):tiporetornado;Declaraciones constLocales Type... Var... Declaración de otros procedimientos y funcionesCuerpo begin ... Nombrefunc:=valorderetorno; end;
  85. 85. Ejemplo: FunciónEjemplo.:function Identificadorf (PF1 :tipol ;PF2:típo2):integer;PFl y PF2 se pasan por valor.
  86. 86. Llamada a un procedimientoSe realiza desde el programa principal indicandoel identificador del procedimiento seguido de lalista de parámetros actuales encerrados entreparéntesis y separados por comas.Ejemplo: Identificador (PAl ,PA2,PA3)
  87. 87. Llamada a una funciónSe realiza desde el programa principal indicando elidentificador de la función seguido de la lista deparámetros actuales encerrados entre paréntesis yseparados por comas. Asignándolo a una variable oinvocándolo dentro de una condición.Ejemplo: a := Identificadorf (PAl ,PA2); if (Identificadorf (PAl ,PA2) > 10) then ...
  88. 88. Ejemplo - DeclaraciónEjemplo: Procedimiento para intercambiar los valores dedos variables.Procedure intercambio (var pfl ,p12:integer);Var Aux:integer; {variable local uso exclusivo enprocedimiento} Begin Aux := pfl; Pfl := pf2; Pfl := aux End;
  89. 89. Ejemplo - Invocación {La llamada a este procedimiento se haría ...} {... por ejemplo desde el siguiente programa:} Program Uno; Uses crt; Var Entero 1 ,entero2 : integer; Procedure intercambio (var pfl ,p12:integer);...begin clrscr; {*borrado de pantalla*} Write (introduzca 2 variables enteras: ); Readln(entero1,entero2); Writeln (valores de las variables antes de la llamada); Writeln (Entero 1 = ,enterol,entero 2 = ,entero2); intercambio (enterol,entero2); {llamada al procedimiento} Writeln (Valor de las variables después de la llamada); Writeln (entero 1 = ,enterol,entero 2 = ,entero2);end;
  90. 90. EjemploEjemplo: Función que, dados dos números a y b, retornaa*b si a<b, sino retorna a+bFunction suma_prod (a, b:integer): integer;Begin if a<b then suma_prod:=a*b else suma_prod:=a+b;End;
  91. 91. ¿Funciones o procedimientos?Deben utilizarse funciones cuando solotenga que devolverse un solo valorsimple al programa llamador. En todoslos demás casos utilizaremosprocedimientos.

×