program Tabula;
const
ColIstogramma = 70;
var
inferiore,
superiore,
passo,
min,
max : real;
function F (x : real) : real;
begin
F := 3.0 * x * x - 4.0 * x + 5.0
end;
procedure Tabulazione (inf, sup, passo : real;
var minimo,
massimo : real);
var
x : real;
i : integer;
valore : real;
begin
x := inf;
minimo := F(inf);
massimo := minimo;
writeln('x':8, 'F(x)':10);
for i := 0 to trunc((sup - inf) / passo) do
begin
valore := F(x);
if valore < minimo then
minimo := valore
else if valore > massimo then
massimo := valore;
writeln(x:8:3, valore:10:3);
x := x + passo
end
end;
procedure Istogramma (inf, sup, passo, minimo, massimo : real);
var
x,
val : real;
j, k : integer;
begin
x := inf;
writeln(minimo:12:3, massimo:67:3);
for j := 0 to trunc((sup - inf) / passo) do
begin
val := F(x);
write(x:8:3, ' ');
for k := 1 to round((val-minimo)*ColIstogramma / (massimo-minimo)) do
write('*');
x := x + passo;
writeln
end
end;
begin
writeln('Estremo inferiore, estremo superiore e passo della funzione ?');
readln(inferiore, superiore, passo);
writeln;
writeln('TABULAZIONE DELLA FUNZIONE:');
Tabulazione(inferiore, superiore, passo, min, max);
writeln;
writeln('Minimo: ', min:8:4);
writeln('Massimo: ', max:8:4);
writeln;
writeln('ISTOGRAMMA DELLA FUNZIONE:');
Istogramma(inferiore, superiore, passo, min, max)
end.