Shock (Normal User)
Newbie
Messaggi: 9
Iscritto: 29/10/2008
|
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 |
|
Anonymous (Member)
Guru
Messaggi: 1059
Iscritto: 30/07/2006
|
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
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...
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 |
... 3 or 4 or 5: write('bla bla'); ...
|
devi mettere cosi:
Codice sorgente - presumibilmente Plain Text |
...
3,4,5: write('bla bla');
...
|
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
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... evidentemente l'else del costrutto case of accetta anche il punto e virgola prima della riga precedente...
Ultima modifica effettuata da Anonymous il 26/04/2009 alle 20:19 |
|
Shock (Normal User)
Newbie
Messaggi: 9
Iscritto: 29/10/2008
|
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?).
|
|
Anonymous (Member)
Guru
Messaggi: 1059
Iscritto: 30/07/2006
|
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..
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 |
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,4,5: write('Il numero premuto e'' fra 3 e 5'); else begin c:=sqr(n); writeln(c,' e'' il quadrato di ',n); end; end; readln end.
|
Ultima modifica effettuata da Anonymous il 26/04/2009 alle 20:17 |
|
Shock (Normal User)
Newbie
Messaggi: 9
Iscritto: 29/10/2008
|
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!
|
|
gigisoft (Member)
Guru
Messaggi: 696
Iscritto: 11/10/2008
|
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 |
var n:byte; [...] readln(n);
|
metti
Codice sorgente - presumibilmente Pascal |
var n:char; [...] n := readkey;
|
naturalmente mettendo nel case i valori '1' '2' ecc...
Cosi' dovrebbe funzionare.
Ciao
Luigi |
|
Shock (Normal User)
Newbie
Messaggi: 9
Iscritto: 29/10/2008
|
Grazie...comunque no,non sono riuscito a risolvere.Potresti riscrivermi tutto il codice per esteso con le modifiche da te apportate???Grazie mille!
|
|
Anonymous (Member)
Guru
Messaggi: 1059
Iscritto: 30/07/2006
|
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 |
|
gigisoft (Member)
Guru
Messaggi: 696
Iscritto: 11/10/2008
|
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
Ciao.
Luigi Ultima modifica effettuata da gigisoft il 28/04/2009 alle 10:39 |
|