Implementación de Algoritmos Matemáticos Fundamentales en Pascal
Clasificado en Matemáticas
Escrito el en
español con un tamaño de 4,22 KB
Implementación de Algoritmos Matemáticos en Pascal
A continuación, se presentan cuatro ejercicios de programación que abordan conceptos matemáticos fundamentales, utilizando estructuras de control y variables típicas del lenguaje Pascal. Se han estandarizado las palabras clave del lenguaje (como PROGRAM, VAR, BEGIN, END, WRITE, READLN) para mejorar la legibilidad.
1. Cálculo de Múltiplos y Sumatoria (Programa Multiplos235)
Este programa solicita un número inicial N dentro de un rango específico (1 < N < 5000) y luego itera, identificando los múltiplos de 5 y calculando una sumatoria acumulada.
PROGRAM Multiplos235(input, output);
VAR
suma, n: INTEGER;
BEGIN
suma := 0;
REPEAT
WRITE('Introduzca un número entre 1 y 5000 (1<n<5000) : ');
READLN(n);
UNTIL (n > 1) AND (n < 5000);
WHILE (n < 5000) DO
BEGIN
IF n MOD 5 = 0 THEN
WRITE(n:2, ' ');
n := n + 1;
suma := suma + n;
WRITE(suma);
END;
READLN
END.
2. Determinación del Número Mayor (Programa NumeroMayor)
Este algoritmo compara tres números reales (A, B, C) introducidos por el usuario para determinar cuál de ellos es el mayor, mostrando el resultado con un decimal de precisión.
PROGRAM NumeroMayor (input, output);
VAR
a, b, c: REAL;
BEGIN
WRITE ('Introduce un número: '); READLN (a);
WRITE ('Introduce otro número: '); READLN (b);
WRITE ('Introduce un tercer número: '); READLN (c);
IF (a > b) AND (a > c) THEN
WRITELN(a:2:1, ' es el número mayor de los tres introducidos')
ELSE
BEGIN
IF (b > a) AND (b > c) THEN
WRITELN (b:2:1, ' es el número mayor de los tres introducidos')
ELSE
BEGIN
IF (c > a) AND (c > b) THEN
WRITELN (c:2:1, ' es el número mayor de los tres introducidos')
END;
END;
READLN;
END.
3. Generación de Tablas de Multiplicar (Programa Tabla)
Implementación de un bucle REPEAT...UNTIL para generar y mostrar la tabla de multiplicar de un número dado, desde 0 hasta 10.
PROGRAM Tabla (input, output);
VAR
Numero, n, Resultado: INTEGER;
BEGIN
WRITE('Escriba de qué número quiere la tabla: ');
READLN(n);
Numero := 0;
REPEAT
Resultado := n * Numero;
WRITELN(n:20, ' x ', Numero, ' = ', Resultado);
Numero := Numero + 1;
UNTIL Numero > 10;
WRITE('Pulse Enter');
READLN
END.
4. Cálculo de Raíces de Ecuaciones Cuadráticas (Programa Raiz)
Este programa calcula las raíces (x1 y x2) de una ecuación cuadrática (Ax² + Bx + C = 0) utilizando la fórmula general. Se han corregido las referencias a la función de potencia (Pow 2) por la multiplicación estándar (b * b) para compatibilidad con Pascal, y se han mantenido los bloques de validación originales, aunque estos no representan un manejo robusto de errores matemáticos (como el cálculo de raíces complejas).
Fórmula utilizada:
$$x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}$$
PROGRAM Raiz (input, output);
VAR
a, b, c, x1, x2, raiz :REAL;
BEGIN
WRITE ('Introduzca a: '); READLN (a);
WRITE ('Introduzca b: '); READLN (b);
WRITE ('Introduzca c: '); READLN (c);
(* Cálculo de la raíz cuadrada del discriminante *)
raiz := SQRT ((b * b) - 4 * a * c);
x1 := (-b + raiz)/(2*a);
x2 := (-b - raiz)/(2*a);
(* Bloques de validación *)
IF a = 0 THEN
BEGIN
WRITE ('Introduzca a: ');
READLN(a);
END;
IF (raiz < 0) AND ((b * b) < (4 * a * c)) THEN
BEGIN
WRITE ('Introduzca b: ');
READLN (b);
END;
IF (raiz < 0) AND (a < 0) THEN
BEGIN
WRITE ('Introduzca a: ');
READLN (a);
END;
IF (raiz < 0) AND (c < 0) THEN
BEGIN
WRITE ('Introduzca c: ');
READLN (c);
END;
WRITELN('Raíz 1 (x1): ', x1:6:2);
WRITELN('Raíz 2 (x2): ', x2:6:2);
WRITE('Pulse Enter');
READLN;
END.