El programa en Haskell¶
module Main where
import System.IO
import Text.Printf
main = do
a <- pideLimite "inferior" 0 -- rechaza a < 0
b <- pideLimite "superior" a -- rechaza b < a
printf "Suma de raíces de %f a %f: %f.\n"
a b $ sumaSerieRaices a b
sumaSerieRaices a b = sum [sqrt ns | ns <- [a..b]]
pideLimite tipo minimo = do
temp <- prompt $ "Introduzca el límite " ++ tipo ++ ": "
if temp >= minimo -- si es mayor o igual al minimo
then return temp -- devuelve el valor introducido
else do limiteErroneo minimo -- o recuerda el mínimo
pideLimite tipo minimo -- y pide otro número
prompt s = putStr s >> hFlush stdout >> readLn :: IO Float
limiteErroneo = printf "El número no puede ser menor a %f\n\n"
El programa en Python¶
from math import *
# Pedir límites inferior y superior.
a = int(raw_input(’Límite inferior:’))
while a < 0:
print ’No puede ser negativo’
a = int(raw_input(’Límite inferior:’))
b = int(raw_input(’Límite superior:’))
while b < a:
print ’No puede ser menor que %d’ %a
b = int(raw_input(’Límite superior:’))
# Calcular el sumatorio de la raíz cuadrada de i para i entre a y b.
s = 0.0
for i in range(a, b+1):
s += sqrt(i)
# Mostrar el resultado.
print ’Sumatorio de raíces’,
print ’de %d a %d: %f’ %(a, b, s)
El programa en C¶
#include <stdio.h>
#include <math.h>
int main(void)
{
int a, b, i;
float s;
/* Pedir límites inferior y superior. */
printf("Límite inferior:");
scanf("%d", &a);
while (a < 0) {
printf("No puede ser negativo\n");
printf("Límite inferior:");
scanf("%d", &a);
}
printf("Límite superior:");
scanf("%d", &b);
while (b < a) {
printf("No puede ser menor que %d\n", a);
printf("Límite superior:");
scanf("%d", &b);
}
/* Mostrar el resultado */
printf("Sumatorio de raíces ");
printf("de %d a %d: %f\n", a, b, s);
return 0;
}