Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Pascal - Pascal problema
Forum - Pascal - Pascal problema

Avatar
Crisped (Normal User)
Newbie


Messaggi: 11
Iscritto: 22/02/2013

Segnala al moderatore
Postato alle 19:44
Domenica, 31/03/2013
Ho un altro problema, il programma sembra essere giusto infatti il programma me lo compila correttamente solo che il risulato non è quello sperato :(

il programma è questo:
Codice sorgente - presumibilmente Delphi

  1. program esercizio2;
  2. uses crt;
  3. type q_nome= string [20];
  4. var i, n: integer;
  5.     nome, nome_max, nome_min: q_nome;
  6.     valore, valore_max, valore_min: real;
  7.  
  8. procedure q_max(valore: real; nome: q_nome;
  9.                 var valore_max: real; var nome_max: q_nome);
  10.  
  11. Begin
  12.   if (valore>valore_max) then
  13.   begin
  14.     valore:=valore_max;
  15.     nome:=nome_max;
  16.   end;
  17. End;
  18.  
  19. procedure q_min(valore: real; nome: q_nome;
  20.                 var valore_min: real; var nome_min: q_nome);
  21.  
  22. Begin
  23.   if (valore>valore_min) then
  24.   begin
  25.     valore:=valore_min;
  26.     nome:=nome_min;
  27.   end;
  28. End;
  29.  
  30. Begin
  31.   clrscr;
  32.   valore_max:=0;
  33.   valore_min:=100;
  34.   writeln('Inserisci il numero dei titoli quotati in borsa');
  35.   readln(n);
  36.  
  37.   for i:=1 to n do
  38.   begin
  39.     writeln('Inserisci il nome del titolo');
  40.     readln(nome);
  41.     writeln('Inserisci il valore del titolo');
  42.     readln(valore);
  43.     q_max(valore, nome, valore_max, nome_max);
  44.     q_min(valore, nome, valore_min, nome_min);
  45.  
  46.   end;
  47.   writeln('Il titolo con pi— valore vale ', valore_max:6:2,
  48.           ' e si chiama ', nome_max);
  49.   writeln('Il titolo con meno valore vale ', valore_min:6:2,
  50.           ' e si chiama ', nome_min);
  51.   readln;
  52. End.



Il problema è che il risultato dovrebbe essere:
"Visualizzare il nome e il valore della quotazione più alta e quella più bassa"
ma esce così:
"Il titolo con più valore vale 0.00 e si chiama"
"Il titolo con meno valore vale 100.00 e si chiama"
Grazie per l'aiuto ;)

PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 11:12
Lunedì, 01/04/2013
Ciao!

Ho letto il codice, e ho trovato alcune piccole imperfezioni.
Ecco le procedure corrette:
Codice sorgente - presumibilmente Delphi

  1. procedure q_max(valore: real; nome: q_nome;
  2.                 var valore_max: real; var nome_max: q_nome);
  3. Begin
  4.   if (valore>valore_max) then
  5.   begin
  6.     valore_max:=valore;  
  7.     nome_max:=nome;
  8.     {Ho invertito termini dell' uguaglianza}
  9.   end;
  10. End;
  11.  
  12. procedure q_min(valore: real; nome: q_nome;
  13.                 var valore_min: real; var nome_min: q_nome);
  14. Begin
  15.   if (valore<valore_min) then {Ho inserito l' operatore minore}
  16.   begin
  17.     valore_min:=valore;
  18.     nome_min:=nome;
  19.     {Ho invertito termini dell' uguaglianza}
  20.   end;
  21. End;


PM Quote
Avatar
Crisped (Normal User)
Newbie


Messaggi: 11
Iscritto: 22/02/2013

Segnala al moderatore
Postato alle 20:26
Lunedì, 01/04/2013
Grazie mille, ora va :)

PM Quote