SOLUZIONE 22-06-99 (PASCAL)
Questionario cartaceo
- Vero; infatti i numeri in base 3 rappresentabili con 20 cifre
decimali sono 3 elevato alla 20 (più di 3 elevato alla 10 =
59049),
mentre quelli in base 5 rappresentabili con 5 cifre sono 3125.
- (Notare che tutti i parametri delle varie funzioni sono parametri
valore)
2.3 7.8
2.3 7.8
- Un disco rigido oppure un CD.
-
program ESAME2;
procedure RIGHE;
{la procedura RIGHE costruisce un file su disco di nome 'righe.text' }
{che contiene tante righe con esattamentre un solo carattere }
{quante sono le righe del file su disco di nome 'rows.text'}
var c: char;
F, G: text;
begin
reset(F, 'rows.text');
rewrite(G, 'righe.text');
while not EOF(F) do
begin
while not EOLN(F) do
read(F, c);
readln(F);
writeln(G, ' ');
end;
close(F);
close(G);
end;
begin
RIGHE;
end.
Parte laboratorio
program ESAME3;
const
MAX = 100;
type
POLI = array[0..MAX] of integer;
{gli elementi del tipo POLI sono i polinomi in una variabile di grado massimo MAX }
{con coefficienti interi}
{si assume che i valori di tutti i coefficenti devono essere fissati}
{quindi 3 e rappresentato dall 'array dove il primo coefficente e'}
{uguale a 3 e tutti gli altri sono uguali a 0}
var
A, B, C: POLI;
I: integer;
procedure STAMPA (P: POLI);
var
i: integer;
begin
for i := MAX downto 2 do
begin
if P[i] > 0 then
write('+', P[i] : 2, 'X^', i : 1, ' ');
if P[i] < 0 then
write(P[i] : 2, 'X^', i : 1, ' ');
end;
if P[1] > 0 then
write('+', P[1] : 2, 'X ');
if P[1] < 0 then
write(P[1] : 2, 'X ');
if P[0] > 0 then
write('+', P[0] : 2, ' ');
if P[0] < 0 then
write(P[0] : 2, ' ');
writeln;
end;
procedure SOMMA (P1, P2: POLI;
var P3: POLI);
var
i: integer;
begin
for i := MAX downto 0 do
P3[i] := P1[i] + P2[i];
end;
procedure DERIVA (P1: POLI;
var P2: POLI);
var
i: integer;
begin
for i := 0 to MAX - 1 do
P2[i] := P1[i + 1] * (i + 1);
P2[MAX] := 0;
end;
begin
{assegnare ad A il polinomio 3 X3 + 7x -8}
for I := 0 to MAX do
A[i] := 0;
A[3] := 3;
A[1] := 7;
A[0] := -8;
{assegnare a B il polinomio 2 X2 - 7x + 18}
for I := 0 to MAX do
B[i] := 0;
B[2] := 2;
B[1] := -7;
B[0] := +18;
{stampare A e B}
STAMPA(A);
STAMPA(B);
{stampare la somma di A e B}
SOMMA(A, B, C);
STAMPA(C);
{stampare la derivata di A}
DERIVA(A, C);
STAMPA(C);
end.