Pascal: Funciones y Procedimientos con Menú Interactivo – Código Completo Comentado

Inglés4,82 KB

Programa en Pascal con Menú de Funciones y Procedimientos

A continuación se presenta un programa en Pascal que utiliza funciones y procedimientos para realizar diversas operaciones matemáticas, organizadas mediante un menú interactivo.

Estructura general del programa

El programa se denomina MENU_FUNCIONES_O_PROCEDIMIENTOS y utiliza la unidad crt para el control de la pantalla. Sus variables globales son:

  • B: opción seleccionada en el menú.
  • X, Y: valores de entrada.
  • R: resultado de las funciones.

Funciones

1. Función SUMATORIA

Calcula la suma de los primeros N números naturales (1 + 2 + … + N).

FUNCTION SUMATORIA(N:INTEGER):INTEGER;
VAR I,S,Y:INTEGER;
BEGIN
  S:=0;
  Y:=0;
  FOR I:=1 TO N DO BEGIN
    Y:=Y+1;
    S:=S+Y;
  END;
  SUMATORIA:=S;
END;

2. Función FACTORIAL

Calcula el factorial de un número N (N!).

FUNCTION FACTORIAL(N:INTEGER):INTEGER;
VAR I,F,Y:INTEGER;
BEGIN
  Y:=0;
  F:=1;
  FOR I:=1 TO N DO BEGIN
    Y:=Y+1;
    F:=F*Y;
  END;
  FACTORIAL:=F;
END;

3. Función POTENCIA

Eleva la base X al exponente Y mediante multiplicaciones sucesivas.

FUNCTION POTENCIA(X,Y:INTEGER):INTEGER;
VAR Z,C,P,I,D:integer;
BEGIN
  P:=1;
  FOR I:=1 TO Y DO BEGIN
    P:=P*X;
  END;
  POTENCIA:=P;
END;

Procedimientos

4. Procedimiento INTERCAMBIO

Intercambia los valores de dos variables mediante paso por referencia (VAR).

PROCEDURE INTERCAMBIO(VAR X,Y:INTEGER);
VAR X1: INTEGER;
BEGIN
  X1:=X;
  X:=Y;
  Y:=X1;
END;

5. Procedimiento SECUENCIA

Muestra en pantalla una secuencia de números desde X hasta Y.

PROCEDURE SECUENCIA(X,Y:INTEGER);
VAR S:INTEGER;
BEGIN
  S:=1;
  REPEAT
    WRITE(X,' ');
    X:=X+S;
  UNTIL X=Y+1;
END;

6. Procedimiento IMPARES

Muestra los números impares comprendidos entre X e Y.

PROCEDURE IMPARES(X,Y:INTEGER);
BEGIN
  REPEAT
    IF NOT (X MOD 2=0) THEN
      WRITE(X,' ');
    X:=X+1;
  UNTIL X=Y+1;
END;

7. Procedimiento PARES

Muestra los números pares comprendidos entre X e Y.

PROCEDURE PARES(X,Y:INTEGER);
BEGIN
  REPEAT
    IF (X MOD 2=0) THEN
      WRITE(X,' ');
    X:=X+1;
  UNTIL X=Y+1;
END;

8. Procedimiento TABLA

Muestra la tabla de multiplicar del número X del 1 al 10.

PROCEDURE TABLA(X:INTEGER);
VAR S,I:INTEGER;
BEGIN
  FOR I:=1 TO 10 DO BEGIN
    S:=X*I;
    WRITELN(X,' * ',I,' = ',S);
  END;
END;

9. Procedimientos para cálculo de áreas y perímetros

Cuadrado
PROCEDURE CUADRADO(X:INTEGER);
VAR A,P:INTEGER;
BEGIN
  A:=X*X;
  P:=4*X;
  WRITELN('EL PERIMETRO ES: ',P,' EL AREA ES: ',A);
END;
Rectángulo
PROCEDURE RECTANGULO(X,Y:INTEGER);
VAR AR,PR:INTEGER;
BEGIN
  AR:=X*Y;
  PR:=2*X+2*Y;
  WRITELN('EL PERIMETRO ES: ',PR,' EL AREA ES: ',AR);
END;
Triángulo
PROCEDURE TRIANGULO(X,Y:INTEGER);
VAR AT:INTEGER;
BEGIN
  AT:=X*Y;
  AT:=AT DIV 2;
  WRITELN('EL AREA DEL TRIANGULO ES: ',AT);
END;
Círculo
PROCEDURE CIRCULO(X:INTEGER);
VAR A,P:REAL;
BEGIN
  A:=3.1415*X*X;
  P:=3.1415*X;
  WRITELN('EL PERIMETRO ES: ',P:2:3,' EL AREA ES: ',A:2:3);
END;

Programa principal

El bloque principal muestra un menú general con 10 opciones (0 a 9). Según la elección del usuario, se solicitan los datos necesarios y se llama a la función o procedimiento correspondiente. La opción 9 abre un submenú para el cálculo de figuras geométricas.

Menú principal

  1. Salir
  2. Sumatoria
  3. Factorial
  4. Potencia
  5. Intercambio
  6. Secuencia
  7. Muestra impares
  8. Muestra pares
  9. Tabla de multiplicar
  10. Cálculo de áreas y perímetros

Control de errores

Si el usuario introduce una opción no válida, el programa muestra un mensaje de advertencia y vuelve a solicitar una opción, hasta que se seleccione 0 para finalizar la ejecución.

Conclusiones

Este programa es un buen ejemplo de programación estructurada en Pascal, ya que demuestra cómo dividir un problema en funciones y procedimientos reutilizables, así como el uso de estructuras de control (FOR, REPEAT, CASE) y de un menú interactivo para facilitar la interacción con el usuario.

Descargar

PDF Word HTML