Lección 13 · 13 de 20
Procedimientos · Pascal
Agrupe código con nombre en procedimientos de Pascal, con parámetros y variables locales, para imprimir el tique de una panadería.

Un procedimiento es un bloque de código con nombre que se escribe una vez y se llama tantas veces como haga falta. Se declara antes del begin principal, con `procedure`, su nombre y, entre paréntesis, sus parámetros.
PrintLine(width: Integer; symbol: Char) recibe dos datos: cuántos caracteres dibujar y cuál. Se llama con PrintLine(26, '=') y con PrintLine(26, '-'): el mismo código dibuja dos líneas distintas. En la declaración los parámetros se separan con punto y coma; en la llamada, con comas.
i es una variable local: se declara en el var del propio procedimiento y solo existe mientras este se ejecuta. Otro procedimiento puede tener su propia i sin que se mezclen.
PrintItem escribe una línea del tique y calcula el importe, qty * price, sin que el programa principal tenga que saber cómo. Greet saluda a cada cliente. Así, el programa principal queda corto y se lee como una lista de pasos.
En las aplicaciones de escritorio con Lazarus que genera DMarlon Studio, cada clic en un botón llama a un procedimiento como estos: es su manejador de eventos.
Código · main.pas
program main;// A procedure is a named block of code that you can call again and again.procedure PrintLine(width: Integer; symbol: Char);var i: Integer; // a local variable: it only exists insidebegin for i := 1 to width do Write(symbol); WriteLn;end;procedure PrintItem(name: String; qty: Integer; price: Double);begin WriteLn(name:8, qty:3, ' x', price:6:2, qty * price:8:2);end;procedure Greet(customer: String);begin WriteLn('Welcome, ', customer, '!');end;begin Greet('Marta'); PrintLine(26, '='); PrintItem('Bread', 2, 1.20); PrintItem('Milk', 3, 0.95); PrintItem('Cheese', 1, 4.50); PrintLine(26, '-'); Greet('Luis');end.Salida · fpc main.pas && ./main
Welcome, Marta!
==========================
Bread 2 x 1.20 2.40
Milk 3 x 0.95 2.85
Cheese 1 x 4.50 4.50
--------------------------
Welcome, Luis!Para recordar
procedure Nombre(parámetros);declara un procedimiento.- Se llama por su nombre, con los valores entre paréntesis.
- Las variables de su
varson locales. - Un procedimiento evita repetir el mismo código.
Ejercicio
Escriba un procedimiento PrintTotal(amount: Double) que escriba la línea del total alineada con los importes y llámelo al final con 9.75.