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 - Errori nel codice???
Forum - Pascal - Errori nel codice???

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
Shock (Normal User)
Newbie


Messaggi: 9
Iscritto: 29/10/2008

Segnala al moderatore
Postato alle 21:01
Sabato, 25/04/2009
Scusate ho dei problemi con questo codice in piu parti:
-----------------------------------------------------------------------------------------
program Esempio;
uses Crt;
var n:byte;
    c:word;

begin
    clrscr;
    write(‘Inserisci un numero: ‘);
    readln(n);
    case n of
         1: writeln(‘E’’ stato premuto il pulsante 1’);
         2: begin
            sound(440);
            delay(1000);
            nosound;
            end;
         3 or 4 or 5: write(‘Il numero premuto è fra 3 e 5’);
    else
      begin
      c:=sqr(n);
      writeln(c,’ è il quadrato di ‘,n);
      end;
    end;
    readln
end.

------------------------------------------------------------------------------------------
1 Alla pressione del tasto 2 dovrebbe seguire un suono di 440 Hz ,ma a me non succede niente apparte il lampeggiare del cursore.

2 La "è" nel codice quando viene compilato mi viene visualizzata con un simbolo strano.

3 Alla pressione dei tasti (3-4-5) dovrebbe seguire un testo mentre a me viene solo il quadrato dei numeri (3-4-5)A proposito potete spiegarmi a cosa servono SQR e DELAY ?

4 Alla fine della 16 riga c'è un ";" (Non andrebbe tolto dato che prima di ELSE non ci vorrebbe?E perche invece se lo metto non mi risulta alcun errore?

In conclusione vi saluto tutti complimentandomi per il fantastico sito...spero riusciate a darmi una mano(potete rispondermi alle domande nell'ordine che vele ho poste?Cioè 1-2-3-4???Come compilatore uso Dev-Pascal non so se puo risulatarvi utile!

Ultima modifica effettuata da Shock il 25/04/2009 alle 21:16
PM Quote
Avatar
Anonymous (Member)
Guru


Messaggi: 1059
Iscritto: 30/07/2006

Segnala al moderatore
Postato alle 23:48
Sabato, 25/04/2009
Testo quotato


1 Alla pressione del tasto 2 dovrebbe seguire un suono di 440 Hz ,ma a me non succede niente apparte il lampeggiare del cursore.



a me il suono si sente... magari se accendi le casse lo senti anche tu XD

Testo quotato


2 La "è" nel codice quando viene compilato mi viene visualizzata con un simbolo strano.


perché usa una codifica diversa..... cmq tu metti una è direttamente nel compilatore (cioè una volta aperto il file sorgente, gli digiti la e accentata sul sorgente dal compilatore.. in quel modo non dovrebbe comparirti più il simbolo quando lo lanci...) non so se mi son spiegato...

Testo quotato


3 Alla pressione dei tasti (3-4-5) dovrebbe seguire un testo mentre a me viene solo il quadrato dei numeri (3-4-5)A proposito potete spiegarmi a cosa servono SQR e DELAY ?



devi sostituire gli or mettendoci le virgole..
cioè cosi:

invece di:
Codice sorgente - presumibilmente Pascal

  1. ...
  2. 3 or 4 or 5: write('bla bla');
  3. ...



devi mettere cosi:
Codice sorgente - presumibilmente Plain Text

  1. ...
  2. 3,4,5: write('bla bla');
  3. ...




cmq sqr è la funzione che ti fa l'elevamento a potenza.. infatti sqr è l'abbreviazione di square.. cioè quadrato...

e delay invece serve per far durare il suono quanto vuoi... mettendo 1000 significa che deve durare 1 secondo, cioè 1000 millisecondi, se metti 2000 dura 2 secondi e cosi via...
se lo togliessi, dopo l'istruzione sound, verrebbe immediatamente eseguita l'istruzione nosound e quindi non faresti in tempo a sentire niente, invece con il comando delay di mezzo, puoi decidere quanto tempo aspettare prima che venga effettuato il comando successivo
Testo quotato


4 Alla fine della 16 riga c'è un ";" (Non andrebbe tolto dato che prima di ELSE non ci vorrebbe?E perche invece se lo metto non mi risulta alcun errore?



eh.. si.. boh... :D evidentemente l'else del costrutto case of accetta anche il punto e virgola prima della riga precedente... :D

Ultima modifica effettuata da Anonymous il 26/04/2009 alle 20:19
PM Quote
Avatar
Shock (Normal User)
Newbie


Messaggi: 9
Iscritto: 29/10/2008

Segnala al moderatore
Postato alle 20:04
Domenica, 26/04/2009
Grazie per la risposta immediata Anonymous ...mi sei stato di grande aiuto.Però rimangono i problemi:

1 Alla pressione del tasto 2 dovrebbe seguire un suono di 440 Hz ,ma a me non succede niente apparte il lampeggiare del cursore.(Le casse sono accese! XD).

2 La "è" nel codice quando viene compilato mi viene visualizzata con un simbolo strano.(Potresti spirgarmi meglio il procedimento?).

PM Quote
Avatar
Anonymous (Member)
Guru


Messaggi: 1059
Iscritto: 30/07/2006

Segnala al moderatore
Postato alle 20:16
Domenica, 26/04/2009
Testo quotato


1 Alla pressione del tasto 2 dovrebbe seguire un suono di 440 Hz ,ma a me non succede niente apparte il lampeggiare del cursore.(Le casse sono accese! XD).



boh allora non so che dirti.... provalo su un altro computer... a me funziona e cmq sia il codice per far emettere un suono è scritto correttamente....  per cui il problema risiede nel tuo pc... boh..
Testo quotato


2 La "è" nel codice quando viene compilato mi viene visualizzata con un simbolo strano.(Potresti spirgarmi meglio il procedimento?).  



prova a copiare e compilare questo qui....
e dimmi se ti fa vedere ancora i simboli strani

Codice sorgente - presumibilmente Delphi

  1. program Esempio;
  2. uses Crt;
  3. var n:byte;
  4.     c:word;
  5.  
  6. begin
  7.     clrscr;
  8.     write('Inserisci un numero: ');
  9.     readln(n);
  10.     case n of
  11.          1: writeln('E'' stato premuto il pulsante 1');
  12.          2: begin
  13.             sound(440);
  14.             delay(1000);
  15.             nosound;
  16.             end;
  17.          3,4,5: write('Il numero premuto e'' fra 3 e 5');
  18.     else
  19.       begin
  20.       c:=sqr(n);
  21.       writeln(c,' e'' il quadrato di ',n);
  22.       end;
  23.     end;
  24.     readln
  25. end.


Ultima modifica effettuata da Anonymous il 26/04/2009 alle 20:17
PM Quote
Avatar
Shock (Normal User)
Newbie


Messaggi: 9
Iscritto: 29/10/2008

Segnala al moderatore
Postato alle 21:40
Domenica, 26/04/2009
Grazie!Sono riucito a risolvere il problema della (e accentata),seguirò il tuo consiglio riguardo la compilazione del codice su un altro computer...Ciao,grazie ancora e alla prossima!

PM Quote
Avatar
gigisoft (Member)
Guru


Messaggi: 696
Iscritto: 11/10/2008

Segnala al moderatore
Postato alle 10:47
Lunedì, 27/04/2009
Testo quotato

Postato originariamente da Shock:

1 Alla pressione del tasto 2 dovrebbe seguire un suono di 440 Hz ,ma a me non succede niente apparte il lampeggiare del cursore.(Le casse sono accese! XD).




Ciao,

non so se hai gia' risolto, comunque prova in uno dei modi seguenti:

1) esegui il tuo codice e digita 2 + [invio]

2) se non vuoi digitare anche [invio], nel codice anziche'

Codice sorgente - presumibilmente Pascal

  1. var n:byte;
  2. [...]
  3. readln(n);



metti

Codice sorgente - presumibilmente Pascal

  1. var n:char;
  2. [...]
  3. n := readkey;



naturalmente mettendo nel case i valori '1' '2' ecc...

Cosi' dovrebbe funzionare.

Ciao :k:

Luigi

PM Quote
Avatar
Shock (Normal User)
Newbie


Messaggi: 9
Iscritto: 29/10/2008

Segnala al moderatore
Postato alle 19:54
Lunedì, 27/04/2009
Grazie...comunque no,non sono riuscito a risolvere.Potresti riscrivermi tutto il codice per esteso con le modifiche da te apportate???Grazie mille!

PM Quote
Avatar
Anonymous (Member)
Guru


Messaggi: 1059
Iscritto: 30/07/2006

Segnala al moderatore
Postato alle 20:11
Lunedì, 27/04/2009
ma cmq non credo che sia questo il punto perché a te è il suono che non ti si sente, quindi o che usi readln (e quindi per sentirlo devi pigiare invio) o che usi readkey (e quindi basta che premi solo il 2) è la stessa cosa

Ultima modifica effettuata da Anonymous il 27/04/2009 alle 20:12
PM Quote
Avatar
gigisoft (Member)
Guru


Messaggi: 696
Iscritto: 11/10/2008

Segnala al moderatore
Postato alle 10:38
Martedì, 28/04/2009
Testo quotato

Postato originariamente da Anonymous:

ma cmq non credo che sia questo il punto perché a te è il suono che non ti si sente, quindi o che usi readln (e quindi per sentirlo devi pigiare invio) o che usi readkey (e quindi basta che premi solo il 2) è la stessa cosa



Forse ho capito male io, ma se lui diceva

[...] Alla pressione del tasto 2 [...]

ho pensato che premesse solo il 2, e ovviamente il suono non si sentiva perche' il programma aspettava che venisse premuto il tasto [invio].

Se il problema non e' questo, allora non so :d

Ciao.

Luigi

Ultima modifica effettuata da gigisoft il 28/04/2009 alle 10:39
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo