Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [pascal] aiuto alla risoluzione di un problema

    Ho suddiviso il programma in procedure ma al momento di leggerle mi da l seguente errore 'too few arguments to function 'leggidati' e 'aggiorna'. come mai.
    codice:
    Program giacenza;
    type
    codprodotto=1..9999;
    Prodotti =RECORD
              prodotto:string;
              codice:codprodotto;
              prezzo:real;
              Giacenza:integer;
              END;
    
    Var
    prodotto:prodotti;
    I:Integer;  (*contatore*)
    
    PROCEDURE leggidati (var prodotto:prodotti; i:integer);  (*procedura per leggere i dati*)
    VAR
    txtmagazzino:text;
    BEGIN
     Assign (txtmagazzino,'c:\magazzino.txt');  (*file di testo da cui legge i dati*)
     Reset (txtmagazzino);          (*posizionamento al prima riga*)
     I:=1;
       while not eof(txtmagazzino) do  (*lettura dei dati e posizionamento nel record*)
        begin
        readln(txtmagazzino, prodotto.prodotto, prodotto.codice, prodotto.prezzo, prodotto.giacenza);
        I:=I+1;
       end;
    close(txtmagazzino);              (*chiusura del file di testo*)
    end;                             (*fine procedure leggi*)
    
    PROCEDURE aggiorna (var i:integer; prodotto:prodotti);
    VAR
    trovato:boolean;
    n:integer;
    spesa:real;
    codice:codprodotto;
    Begin
    N:=I;         (*poniamo n uguale a i*)
    writeln ('Inserisci il numero del prodotto acquistato?o digita 0 per uscire');
    Readln (codice);
    repeat
    If Not(codice=0) then begin    (*se il codice=0 allora esce dal programma*)
    i:=1;                           (*assegnamo i=1 e trovato =false*)
    trovato:=FALSE;
    (*se troviamo il codice allora sottraiamo -1 alla giacenza e sommiamo il prezzo alla spesa*)
    While Not (trovato=false) and (i<=N) do
    if codice=prodotto.codice then begin
    trovato:=true;
    prodotto.giacenza:=prodotto.giacenza+1;
    spesa:=spesa+ prodotto.prezzo;
    end
    else begin
    i:=i+1;
    end;
    (*se il codice non è esatto visualizziamo sullo schermo un messaggio d'errore*)
    if trovato=false then writeln
    ('Codice non trovato');
    writeln;
    end
    else until codice=0;
    end; (*procedure*)
    BEGIN
    leggidati;
    aggiorna; 
    end.
    
    
    
    ;

  2. #2

    : )

    :rollo:

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.