Visualizzazione dei risultati da 1 a 6 su 6

Discussione: [PASCAL] Problem

  1. #1

    [PASCAL] Problem

    Ciao.. chi mi può aiutare col problema sotto??
    il problema credo di averlo risolto tuttavia non so come collegare tra loro le procedure nel modo corretto nel MAIN e dunque chiedo un aiuto dimostrativo e se possibile anche una spegazione illuminante.. grazie anticipatamente

    Non riesco a far funzionare la funzione MEAN e dunque il prog non funziona come dovrebbe, c'è sicuramente un problema per quanto riguarda il passaggio dei parametri..

    (************************************************* *******************
    ESAME 3:
    Hai in input un file di testo che contiene un elenco di voti.
    Ogni linea del file di testo contiene un solo voto. Devi calcolare la media di questi voti e assegnare un grado a ciascun studente (se il voto e' inferiore di dieci punti alla media allora il grado e' insoddisfacente, altrimenti il grado e' soddisfacente) L'output deve essere mostrato sul monitor e deve essere organizzato su due colonne contenenti rispettivamente il voto e il grado.
    ************************************************** ******************)
    program Esame3(input,output);
    uses crt;
    Const
    MaxNumStudenti=20;
    type
    vettore=array[1..MaxNumStudenti]of integer;
    VAR
    voti:vettore;
    cont:integer;
    rigavoti:text;
    media:real;
    troppi:boolean;

    (*legge i voti dal file di testo RigaVoti nel vettore Voti. Cont indica il numero
    degli studenti letti e quindi indica la dimensione reale del vettore. Troppi è
    vero se RigaVoti contiene più voti della dimensione massima del vettore Voti*)
    PROCEDURE LeggiStud(VAR RigaVoti:text;
    VAR Voti:vettore;
    VAR Cont:integer;
    VAR troppi:boolean);
    begin
    while ((not(eof(rigavoti))) and (not(Troppi))) do
    begin
    readln(rigavoti,voti[Cont]);
    Cont:=Cont+1;
    if (Cont > MaxNumStudenti) then
    Troppi:=True;
    end;
    end(*procedura LeggiStud*);

    (*Mostra il grado dopo aver confontato Unvoto con Media*)
    PROCEDURE ScriviGrado(unvoto:integer; media:real);
    begin
    if ((unvoto - media)<9) and ((unvoto - media)>-9) then
    writeln('SODDISFACENTE')
    else
    if (unvoto - media)>10 then
    writeln('NOTEVOLE')
    else
    if (unvoto - media)<-10 then
    writeln('INSODDISFACENTE');
    end(*procedura ScriviGrado*);

    (*Calcola la media del vettore Voti di Cont studenti*)
    FUNCTION Mean(Voti:Vettore; cont:integer):real;
    begin
    media:=voti[cont];
    for cont:=2 to MaxNumStudenti do
    media:=media+voti[cont];
    media:=media/MaxNumStudenti;
    end(*function Mean*);

    (*Scrive la tabella di output. La procedura ScriviTabella chiama la procedura
    ScriviGrado*)
    PROCEDURE ScriviTabella(voti:vettore; cont:integer);
    var
    voto:integer;
    begin
    writeln('VOTO GRADO');
    writeln;
    for cont:=1 to MaxNumStudenti do
    begin
    write(voti[cont],' ');
    voto:=voti[cont];
    scrivigrado(voto, media);
    end(*for*);
    end(*procedura ScriviTabella*);


    (*--programma principale--*)
    BEGIN
    assign(rigavoti,'C:\dev-pas\prog\Ex\3\voti.txt');
    reset(rigavoti);
    cont:=1;
    troppi:=false;
    leggistud (rigavoti, voti, cont, troppi);
    close(rigavoti);

    media:=mean(voti, cont);

    scrivitabella(voti, cont);
    readln;
    END.
    (******************************END**************** ******************)

  2. #2
    Hai passato il vettore "voti" come parametro variabile alle procedure che effettuano la lettura dei dati?

  3. #3
    ma nessuno può aiutarmi??

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    72
    Quando scrivi utilizza il code prima cosa se no esco pazzo poi sicuramente potrò aiutarti...

  5. #5
    ma così non è interpretabile?? come faccio a scrivere in code??
    non capisco perchè nessuno riesci a darmi una mano eppure il problema dovrebbe essere semplice.. tra qualche giorno non avrò più tempo e sarò constretto a consegnarlo così.. ringrazio tutti ugualmente..

  6. #6
    aiuto???

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 © 2025 vBulletin Solutions, Inc. All rights reserved.