Salve a tutti, innanzitutto non cominciate a chiedermi "Ma perché usi ancora il Pascal": perché è un linguaggio semplice da imparare e dalle buone potenzialità(IMHO)
Ora, ho un problema. Sto scrivendo un programma per il calcolo della dilatazione termica(programmino semplice per imparare a lavorare con array e funzioni che non metto nel codice sotto perché non fanno parte del problema). Il problema è che non riesco a farmi accettare dal compilatore(Free Pascal) la moltiplicazione di una variabile reale per una stringa il cui valore corrisponde al nome di una costante. Mi spiego(codice non corrispondende al programma reale, con svariate costanti e altre scelte, es. calcolo del coefficiente di dilatazione lineare, volumica, lunghezza originale ecc.).
Codice:
program dilataz;
uses crt;
const materialerandom = 0.000047;
const materialerandom2 = 0.000055;
const materialerandom3 = 0.000011;
var dt,lo,dl: real;
var mat:string;
begin
clrscr;
write('Inserire la lunghezza iniziale in m: ');
readln(lo);
write('Inserire la variazione di temperatura in K: ');
readln(dt);
write('Materiali disponibili:');
writeln('materialerandom1, materialerandom2, materialerandom3');
readln(mat);
dl:=lo*dt*mat;
writeln('La variazione di lunghezza è ',dl:0:10,'m.');
end.
Penso che, se conoscete il Pascal, abbiate capito il funzionamento di questo programma, in caso contrario, spiego:
Dopo l'inizializzazione di variabili e costanti, vengono chiesti lunghezza iniziale e variazione di temperatura, poi elencati i materiali disponibili, e letta una variabile di tipo stringa(mat). Teoricamente, se io inserissi materialerandom1, dovrebbe moltiplicarmi lo * dt * 0.000047. Invece non mi compila nemmeno il programma, dandomi errore di impossibilità di moltiplicare un reale per una variabile. Esiste un metodo per evitare questo problema?
EDIT: Oddio, avevo messo i invece di mat nel calcolo della dilatazione. Sono un coglione. Sowwy.