-- Nome file: seno.adb -- Autore: Samuel Ribi; -- Data: 19.01.2001; -- Esercizio 1 Serie 4. -- Scopo: Visualizza i valori di x, sin(x), f(x), abs(f(x)-sin(x),(f(x)-sin(x))/sin(x)per i valori di x da 0 a 1 with ADA.TEXT_IO, ADA.FLOAT_TEXT_IO, ADA.NUMERICS.ELEMENTARY_FUNCTIONS; use ADA.TEXT_IO, ADA.FLOAT_TEXT_IO, ADA.NUMERICS.ELEMENTARY_FUNCTIONS; procedure seno is function f(x:FLOAT) return FLOAT is result : FLOAT; begin result := (x - (x**3)/6.0 + (x**5)/120.0); return result; end f; function val_ass(x : FLOAT) return FLOAT is result : FLOAT; begin result := abs(sin(x) - f(x)); return result; end val_ass; function err_rel(x : FLOAT) return FLOAT is result : FLOAT; begin result := (sin(x) - f(x))/sin(x); return result; end err_rel; x : FLOAT := 0.0; char: CHARACTER; begin Put(" ___________________________________________________________________________"); New_line; Put(" | | | | | |"); New_line; Put(" | X | sin(X) | f(x) | |sin(X)-f(X)| | (sin(X)-f(X))/sin(X) |"); New_line; Put(" |_______|___________|____________|__________________|_______________________|"); New_line; loop Put(" | | | | | |"); New_line; Put(" | "); Put(x, Exp => 0, aft => 2); Put(" | "); Put(sin(x), Exp => 0, aft => 6); Put(" | "); Put(f(x), Exp => 0, aft => 6); Put(" | "); Put(val_ass(x), Exp => 0, aft => 9); Put(" | "); if x > 0.0 then Put(err_rel(x), Exp => 0, aft => 9); else Put(" indefinito "); end if; Put(" |"); New_line; Put(" |_______|___________|____________|__________________|_______________________|"); New_line; x:= x + 0.05; exit when x>1.05; end loop; New_line; Get_Immediate(char); end seno;