23.4.07

OGGI PRIMA ORA


L’INFORMATICA risolve i problemi con un metodo ingegneristico riconoscibile come metodo delle trasformate:
il problema è analizzato, trasformato magari anche subito risolto, dal problema originale si riformula il problema..
trasformo un maxi problema in problemi più semplici,tanto semplici da renderli accessibili alla macchina.
La macchina proporrà poi il risultato ma la soluzione non è garantita, quindi in fine testiamo NOI IL RISULTATO!

Esempio che rimanda alla Susi:
R = 20 c1
S = 9 c2
T = 6 c3
A = (c1*x)+(c2*y)+(c3*z)
Posso combinare le 3 scatole x,y,z per avere la soluzione?
Utilizziamo il down to per fare un controllo, ad esempio down to 1000, da mille in giù.

SOLUZIONE IN PASCAL:

Program Susi 854;
uses crt;
const s=20,r=9,t=6;
var a,x,y,z:integre;
e:boolean;
begin
a:=1001;
repeat dec(a);
e:=false;
for x:=0 to a div r do
for y:=0 to a div s do
for z :=0 to a div t do
if x*r+y*s+z*t =a then e=true;
write not(e);
writeln (a);
end.

Nessun commento: