Newsgroup: it.comp.lang.pascal
Titolo: Problema con i record [lungo]

Salve a tutti! Ho riscontrato dei problemi con il seguente programma:
Program  prova;
Uses crt;
Const max = 100;
TYPE
     contab = Record
                   data : string[20];
                   mov  : string[25];         (* tipo di movimento *)
                   ent  : real;               (* entrate *)
                   usc  : real;               (* uscite *)
                   riman : real;              (* rimanenza *)
             end;
       dimens = 1..max;
       tabella = ARRAY[dimens] of contab;
Var
   dim : dimens;
   tab : tabella;
   i : integer;
   r : char;
Procedure Caricatabellao;
begin
     for i := 1 to dim do
         with tab[i] do
              begin
                   writeln  ('Scrivi la data: ');
                   readln (data);
                   writeln ('Scrivi il tipo di movimento da effettuare in
entrata: ');
                   readln (mov);
                   writeln ('Scrivi la somma in entrata: ');
                   readln (ent);
                   readln;
              end;
     end; (* Caricatabellao *)
Procedure Caricatabellat;
begin
     for i := 1 to dim do
         with tab[i] do
              begin
                   writeln  ('Scrivi la data: ');
                   readln (data);
                   writeln ('Scrivi il tipo di movimento da effettuare in
uscita: ');
                   readln (mov);
                   writeln ('Scrivi la somma in uscita: ');
                   readln (ent);
                   readln;
              end;
     end; (* Caricatabellat *)
Procedure  MostraTabella;
begin
     for i:=  1 to dim do
         with tab[i] do
              begin
                   writeln (data);
                   writeln (mov);
                   readln;
              end;
end; (* MostraTabella *)
begin
     clrscr;
     gotoxy (12,3);
     writeln ('Digita e per effettuare un movimento nelle entrate');
     gotoxy (12,4);
     writeln ('Digita u per effettuare un movimento nelle uscite');
     gotoxy (6,5);
     writeln ('Digita m per mostrate tutti i movimenti effettuati sino ad
ora');
     readln (r);
            CASE r OF
            'E', 'e' :  Caricatabellao;
            'U', 'u' :  Caricatabellat;
            end;
     readln
end.
Il problema è che nonostante in fase di compilazione non mi vengono
segnalati errori, quando eseguo il programma, e vado a digitare o e o u o m,
non mi appare nulla...
Come mai? Cosa ho sbagliato? Non riesco proprio a capire...
Grazie un saluto!
--
----------------------------------------------
ICQ NUMBER: 147421455
http://www.posieidon.3000.it
http://posieidon.supereva.it

      for i := 1 to dim do   ***************
[end CUT]
Basta questo per capire l'errore che hai commesso, se guardi le righe
contrassegnate con gli (*)
puoi notare una cosa
type dimens : 1..max;
con questa riga hai dichiarato un tipo "insieme" di nome dimens e che può
assumere valori da 1 a max
dim  : dimens;
con questa riga hai dichiarato una variabile di tipo dimens
"Fortuna" vuole che il copilatore inizializzi a 0 tutti le variabili
dichiarate quindi il suo valore dovrebbe essere uno 0, in questo caso
probabilmente la setta ad 1
quando entri nella funzione esegui un ciclo         for i:=1 to dim do
ma è stata inizializzata e per default sta ad 1 quindi non entra mai nel
ciclo !
Ciao ReDiCuori
--
L'informatica è un arte
---------------------------------------------------------
 
www.pascallike.too.it
 
http://utenti.lycos.it/pascallike
 il sito sulla programmazione pascal e non solo
---------------------------------------------------------

Senti io ho provato quindi ad inizializzare a 0 la variabile i, ma la
situazione rimane identica...
A questo punto cosa mi consiglieresti di fare?
Grazie ciao
ReDiCuori <redicu...@NOSPAMinwind.it> wrote in message
D1U89.12521$xi1.6...@news2.tin.it...


 [cut]
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha scritto nel messaggio
news:1393281aaac60740e0f...@mygate.mailgate.org...


ok risolto! :-) Grazie Rdc!
ReDiCuori <redicu...@NOSPAMinwind.it> wrote in message
3Id99.3787$pX1....@news2.tin.it...
