2. Algoritmo
Es un conjunto prescrito de instrucciones o reglas bien
definidas, ordenadas y finitas que permite realizar una
actividad mediante pasos sucesivos que no generen dudas
a quien lo ejecute. Siempre viene definido un inicio y un
fin
• Pseudocódigo
• Diagrama de flujo
3. Pseudocódigo
El pseudocódigo (falso lenguaje, el
prefijo pseudo significa falso) es una descripción de alto
nivel de un algoritmo que emplea una mezcla de lenguaje
natural con algunas convenciones sintácticas propias de
lenguajes de programación, como asignaciones, ciclos y
condicionales, aunque no está regido por ningún estándar
4. Diagrama de flujo
Los diagramas de flujo son descripciones gráficas de
algoritmos; usan símbolos conectados con flechas para
indicar la secuencia de instrucciones
Los diagramas de flujo son usados para representar
algoritmos pequeños
Por su facilidad de lectura son usados como introducción a
los algoritmos, descripción de un lenguaje y descripción de
procesos a personas ajenas a la computación
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. Binario
BINARIO
11011000011100
CONVERSION 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. Binario
CONVERSION 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 0
2 dividido entre 2 da 1 y el resto es igual a 0
1 dividido entre 2 da 0 y el resto es igual a 1
Ordenamos los restos, del último al primero: 100
11. Pascal
Es un lenguaje de alto nivel desarrollado en
Alemania a fines de la década del 70 por iklaus
Wirth. La idea fue crear un lenguaje que permitiese
la enseñanza y el aprendizaje de la programación. A
tal fin, la sintaxis del Pascal es muy similar a la del
idioma inglés y los programas son fáciles de leer e
interpretar. Además, Pascal no toma en
consideración el hecho que las letras estén en
mayúsculas o minúsculas.
12. Compiladores
En el Laboratorio de Informática se emplea el
compilador de Pascal de Borland, que ofrece
muchas facilidades para el aprendizaje, como el
realzado de sintaxis y la ubicación de los errores en
la línea de código en que ocurren.
13. Tres conceptos fundamentales
Antes de ver en mayor detalle el lenguaje de
programació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. ¿Qué es un programa?
Un programa no es más que una serie de líneas de
texto, cada una de las cuales contiene alguna
definición sobre la información a ser usada en el
programa o bien alguna instrucción que se desea que
la computadora ejecute.
15. Definiciones
Constante:
como su nombre lo indica, es un valor que a lo
largo 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 la
ejecución del programa.
16. Definiciones
Identificador:
Es una combinación de letras, números y el caracter
'_', pudiendo empezar con cualquiera de ellos
excepto números.
Es un concepto muy importante en Pascal, ya que
sirve para nombrar las constantes, las variables e
incluso el mismo programa.
17. Tipos de Datos
En Pascal se debe especificar a la computadora qué
clase de datos va a contener una variable.
A simple vista, podemos distinguir entre una palabra
como 'Hola' o un número como 47.
18. Tipos de Datos
Integer: número entero entre -32,768 y 32,767
LongInt: número entero entre -2*10^31 y 2*10^31
-1
Real: número con coma decimal entre 2.9*10-39^y
1.7*10^38
String: cadena de caracteres (conjunto de números,
letras, símbolos; palabras y frases)
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. Tipos Definidos por el Usuario
Existen dos tipos de datos simples definidos por el
usuario:
Tipos enumerados: Se componen de una lista de
identificadores encerrados entre paréntesis y
separados por comas.
Tipos subrango: Es un subconjunto de un tipo
ordinal (enteros, boolean, carácter y enumerado)
que se especifica indicando el primero y el último
elemento del conjunto.
21. Tipos Enumerados
Cada uno lleva asociado un número entero: al
primero se le asigna el O, al segundo un 1, y así
sucesivamente, por lo que no es independiente el
orden de declaración.
Un valor de tipo enumerado no puede pertenecer a
dos declaraciones de tipo distintas y no pueden
leerse desde teclado, ni escribirse en pantalla.
23. Tipos Subrango. Ejemplos
otación:
Type
Identificador = primerelemento..ultimoelemento;
Ejemplos:
Type Dias = 1..31;
Meses = 1..12;
24. Asignación de tipos a variables
Para decirle a Pascal el tipo de una variable,
se usa una de las siguientes palabras clave en
el lugar indicado en el esqueleto del
programa.
Ejemplo:
var i: integer;
a: boolean;
25. Esqueleto de un Programa en
Pascal
Todos los programas de Pascal comparten ciertas
características comunes, algunas de las cuales son
opcionales. Esto se llama esqueleto del programa y
se muestra a continuación.
26. Convención
En este esqueleto, lo que se ponga entre signos de
mayor y menor (<>) indicarán elementos que
deben reemplazarse en un programa real.
27. Esqueleto de un Programa en
Pascal
Program <identificador>;
Uses WinCrt;
Const {constantes}
<identificador> = <valor>;
Var {variables}
<identificador> : <tipo>;
Begin {instrucciones}
...
End.
28. Componentes del Esqueleto de
un programa
La línea Program es opcional y sirve para ponerle un nombre
al programa.
La línea Uses WinCrt es una forma de que Pascal active la
capacidad de leer desde el teclado y de escribir hacia la
pantalla; en Windows, se hace esto sobre una pequeña
ventana blanca, y en DOS sobre la pantalla completa (se debe
escribir 'Uses Crt' en compiladores de DOS).
29. Componentes del Esqueleto de
un programa
Las secciones llamadas Const y Var son para declarar las
constantes y las variables, respectivamente.
Son opcionales e intercambiables. Se pone un identificador
que será el nombre con el que, tanto Pascal como el
programador, la conocerán.
• A una constante no se le especifica el tipo, sólo el
valor.
• A una variable no se le puede dar un valor cuando
se la declara.
30. Componentes del Esqueleto de
un programa
La sección entre las palabras Begin y End es la parte
principal del programa y es aquí donde van las
instrucciones del programa.
Estas palabras actúan como paréntesis.
El último End debe terminar con un punto, para que
Pascal sepa que el programa ha terminado.
31. Componentes del Esqueleto de
un programa
Al final de varias líneas del esqueleto aparece un
punto y coma. En general, todas las líneas de código
Pascal terminan en punto y coma, a menos que
terminen en una palabra reservada.
Las palabras entre llaves ({}) son comentarios, y
Pascal las ignora por completo. Son una forma
valiosa de incluir información para los humanos
dentro del código para la computadora.
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 salida
llegue al archivo de salida. Las variables o argumentos de esta
sentencia pueden ser: expresiones. constantes o variables
numéricas, de carácter, de cadena o booleanas.
34. Operadores Aritméticos
Operador 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. Operador de asignación
La combinación de símbolos := es el operador de
asignación y sirve, al igual que el ReadLn, para
darle 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 derecha
del operador de asignación) y se copia hacia la
variable cuyo nombre está a la izquierda.
36. Funciones Predefinidas
Instrucción Función
Abs(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. Funciones Predefinidas
Instrucció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. Estructuras de Control
Se denominan estructuras de control a aquellas que
determinan 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. Estructuras Alternativas
Son aquellas que bifurcan o dirigen la ejecución de
un programa hacia un grupo de sentencias u otro
dependiendo del resultado de una condición. Las
dos sentencias alternativas de Pascal son:
• Sentencia alternativa simple IF-THEN-ELSE
• Sentencia alternativa múltiple CASE-OF.
40. IF THE ELSE
IF (expresión lógica o booleana)
THE
Sentencia1 (simple o compuesta)
ELSE
Sentencia2 (simple o compuesta);
41. Ejemplo
Ejemplo:
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 de
una palabra ELSE ya que sería interpretado como final de
IF.
42. CASE OF
CASE (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. Ejemplo
Program 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. Estructuras Repetitivas
Son aquellas que crean un bucle (repetición continua de un
conjunto de instrucciones) en la ejecución de un programa
respecto de un grupo de sentencias en función de una
condición.
Las tres sentencias repetitivas de Turbo Pascal son:
• SENTENCIA WHILE
• SENTENCIA REPEAT-UNTIL
• SENTENCIA FOR
• CUÁNDO SE USA CADA UNO
45. Sentencia While
Indica al ordenador que se ejecuten una o más
sentencias mientras se cumpla una determinada
condición establecida por una variable o expresión
booleana.
46. Sentencia While
Esta sentencia comprueba inicialmente si la
condición es verdadera. Si la condición es
verdadera se ejecutan las sentencias mientras la
condición de su enunciado sea verdadera y finaliza
cuando la condición es falsa.
Dado que la condición puede ser falsa inicialmente,
es decir antes de comenzar el bucle, habrá casos en
que el bucle no se ejecute.
48. Características del Bucle
While
Se ejecuta mientras la condición sea verdadera, y dentro del
bucle debe existir, por lo menos, una sentencia que
modifique el valor de la variable o expresión, de lo
contrario se puede producir una situación de bucle infinito.
Si la expresión lógica es falsa al comenzar el bucle, éste no
se realizará.
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
Begin
Write (contador:5); Contador:=contador+1;
End;
Writeln ('Fin de programa. Contador = ',contador);
End.
50. Características del Bucle For
Aunque a primera vista pueda resultar más atractivo FOR,
existen limitaciones en su aplicación ya que en el bucle FOR
siempre se incrementa o decrementa (de uno en uno) los
valores de la variable de control de bucle y no de dos en dos
o de tres en tres, o con valores fraccionarios.
El número de iteraciones de un bucle FOR siempre es fijo y
se conoce de antemano:
Valor final - Valor inicial +1.
52. Cuándo Utilizar
While/Repeat/For
Utilizar 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. Sentencia Repeat Until
Ejecuta las sentencias comprendidas entre las
palabras reservadas REPEAT y U TIL hasta que
la expresión o variable sea verdadera.
55. Características del Bucle
Repeat
Se ejecutan siempre una vez, por lo menos, y la
terminación del bucle se produce cuando el valor de
la expresión lógica o condición de salida es
verdadera. Se ejecuta hasta que la expresión es
verdadera, es decir, se ejecuta mientras la expresión
sea falsa.
56. Ejemplo
Program 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. Sentencia For
Repite la ejecución de una o varias sentencias un
número fijo de veces. previamente establecido.
Necesita una variable de control del bucle que es
necesariamente de tipo ordinal, ya que el bucle se
ejecuta mientras la variable de control toma una
serie consecutiva de valores de tipo ordinal,
comprendidos entre dos valores extremos (inferior
y superior).
58. Sentencia For
Formato ascendente:
FOR variablecontrol:=valorinicial TO valorfinal DO
(sentencia);
Formato descendente:
FOR variablecontrol:=valorincial DOW TO valorfinal
DO
(sentencia);
donde (sentencia) puede ser una sentencia simple o
compuesta.
59. La Estructura Array
Es una estructura homogénea de datos de tamaño
constante accediendo a cada uno de sus elementos
mediante 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ón
del programa.
60. La Estructura Array
Accedemos a un elemento de la estructura mediante
un identificador común, el nombre del array, y con
el valor que toman uno o varios índices. Al número
de índices necesarios para designar un elemento del
array se le denomina dimensión del array.
El número máximo de valores posibles que puede
tomar cada índice se denomina rango de esa
dimensión o índice. Los valores han de ser
consecutivos, por lo que el índice ha de ser de un
tipo ordinal
61. Declaración de tipos y
variables Array
La declaración más general de un array es la siguiente:
Type
Rango1 = tipoordinal1;
Rango2 = tipoordinal2;
...
rangon = tipoordinaln;
tipobase = (*cualquier predefinido o definido por el
usuario*)
tipoarray = array [rango1,rango2,...,rangon] of tipobase,
62. Ejemplo 1
Arreglo de una dimensión:
const n = 10;
var arr: array [1..n] of integer;
63. Ejemplo 2
Arreglo de varias dimensiones: Para almacenar las notas
correspondiente a todos los alumnos de un colegio.
Suponiendo lo siguiente:
Numero de cursos 5
Grupos por curso 3
Numero de evaluaciones 3
Numero de asignaturas 6
Numero de alumnos por curso 20
64. Ejemplo 2.1
Const
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. Ejemplo 2.2
Var
Notas: tiponotas;
Curso: cursos;
Grupo: grupos;
Evaluacion: eval;
Materia: asign;
Alumno: alum;
Con los elementos de un array podemos realizar las mismas
operaciones que el tipo base al que pertenecen.
66. String: Cadenas de Caracteres
Las cadenas de caracteres son arrays especiales.
Una cadena de caracteres (string) consiste en una
serie o secuencia de caracteres cuyo número
(longitud) puede estar entre 0 y 255.
Se puede definir la longitud de la cadena poniendo
string [n] donde n está entre 0 y 255.
Longitud física: corresponde al máximo número de
caracteres que puede almacenar.
Longitud lógica: corresponde al número de
caracteres que tiene en un instante determinado.
67. Operaciones y Tratamiento de
cadenas
Las dos operaciones básicas son:
•Comparación
•Concatenación.
Operador de concatenación (+) Se utiliza para reunir
varias cadenas en una sola
Ejemplo: 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. Operaciones y Tratamiento de
cadenas
La función concat realiza la misma función que el operador
de concatenación. La sintaxis es:
Function concat (cad1,cad2,...:string): string;
La cadena vacía o nula se representa con dos caracteres
apóstrofes seguidos ' '.
El acceso a los elementos de una cadena individualmente se
hace como si fuera un array.
Ejemplo: cad1:='ejemplo';
cad1[1] devuelve el primer elemento, la letra ´e’.
69. Operaciones y Tratamiento de
cadenas
La función Length proporciona la longitud lógica
de una cadena de caracteres.
Ejemplo:
Longitud:=length(cad1);
La variable longitud tomaría el valor 7.
70. Funciones de tratamiento de
cadenas
Instrucción Función
COPY Extrae una subcadena de caracteres de otra
cadena de caracteres
Copy (cadl,po,num) po: primera posición del caracter a extraer.
Num: número de caracteres que se extraen.
Po y Num deben ser enteros
POS 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 indiquemos
Delete (Cad,Po,Num)
71. Funciones de tratamiento de
cadenas
Instrucción Función
INSERT 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
insertar
UPCASE Devuelve el caracter mayúscula
Upcase(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. Funciones de tratamiento de
cadenas
Instrucción Función
VAL 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. Registros
Un 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 la
sección de tipos.
La única operación (a parte de la lectura) que se puede
realizar con una variable registro como tal es la
asignación, es decir, se pueden copiar todos los campos
de una variable registro a otra variable registro del mismo
tipo. Además un registro puede ser pasado como
parámetro a una función o procedimiento.
74. Ejemplo
Type
Tiporegistro = record
Campo 1 :tipol;
.
.
Campo N : tipoN;
End;
Var
Registro1 : tiporegistro;
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.86
end
76. Procedimientos y Funciones
Pascal ofrece dos herramientas básicas para realizar
programación descendente:
•los procedimientos (procedure)
•las funciones (function),
a los que nos referiremos genéricamente con el
término de subprogramas. Turbo pascal incorpora
además el concepto de unidad (unit), que permite
aprovechar módulos independientes ya compilados.
77. Los Parámetros
Los parámetros son canales de comunicación para
pasar datos entre programas y subprogramas en
ambos sentidos.
Los parámetros van asociados a variables
constantes, expresiones, etc., y por tanto, se indican
mediante los correspondientes identificadores o
expresiones.
78. Los Parámetros
Los parámetros que se utilizan en la llamada o
invocación al subprograma se denominan
parámetros actuales, reales o argumentos, y son
los que entregan la información al subprograma.
Los parámetros que la reciben en el subprograma
se denominan parámetros formales o ficticios y se
declaran en la cabecera del subprograma.
79. Los Parámetros
En una llamada a un subprograma tiene que
verificarse que:
El número de parámetros formales debe ser igual
al de actuales.
Los parámetros que ocupen el mismo orden en
cada una de las Listas deben ser compatibles en
tipo.
80. Declaración de parámetros
formales
Se declaran encerrados entre paréntesis, indicando
el identificador y el tipo correspondiente asociado
a cada uno, separados por ':', y terminando en ';'.
La palabra reservada VAR precediendo a un
identificador de parámetro formal indica al
compilador que el paso del parámetro es pro
Variable. Su ausencia u omisión indica que el paso
de parámetro se realiza por VALOR.
81. Estructura, declaración y empleo de
procedimientos y funciones
Se declaran inmediatamente después de las
variables del programa principal, teniendo
la precaución de que si un subprograma
referencia o llama a otro, el referenciado
debe declararse primero.
82. Declaración de procedimiento
Cabecera procedure nombreproced (lista de parámetros);
Declaraciones const
Locales
Type...
Var...
Declaración de otros procedimientos y funciones
Cuerpo begin
...
end; (*obseiwar; final de procedimiento*)
84. Declaración de función
Cabecera function nombrefunc (lista de parámet.):tiporetornado;
Declaraciones const
Locales
Type...
Var...
Declaración de otros procedimientos y funciones
Cuerpo begin
...
Nombrefunc:=valorderetorno;
end;
86. Llamada a un procedimiento
Se realiza desde el programa principal indicando
el identificador del procedimiento seguido de la
lista de parámetros actuales encerrados entre
paréntesis y separados por comas.
Ejemplo:
Identificador (PAl ,PA2,PA3)
87. Llamada a una función
Se realiza desde el programa principal indicando el
identificador de la función seguido de la lista de
parámetros actuales encerrados entre paréntesis y
separados por comas. Asignándolo a una variable o
invocándolo dentro de una condición.
Ejemplo:
a := Identificadorf (PAl ,PA2);
if (Identificadorf (PAl ,PA2) > 10) then ...
88. Ejemplo - Declaración
Ejemplo: Procedimiento para intercambiar los valores de
dos variables.
Procedure intercambio (var pfl ,p12:integer);
Var Aux:integer; {variable local uso exclusivo en
procedimiento}
Begin
Aux := pfl;
Pfl := pf2;
Pfl := aux
End;
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. Ejemplo
Ejemplo: Función que, dados dos números a y b, retorna
a*b si a<b, sino retorna a+b
Function suma_prod (a, b:integer): integer;
Begin
if a<b then suma_prod:=a*b
else suma_prod:=a+b;
End;
91. ¿Funciones o procedimientos?
Deben utilizarse funciones cuando solo
tenga que devolverse un solo valor
simple al programa llamador. En todos
los demás casos utilizaremos
procedimientos.