Oppure

Loading
25/04/09 19:01
Shock
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 25/04/09 19:16
aaa
25/04/09 21:48
Anonymous
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:
...
3 or 4 or 5: write('bla bla');
...


devi mettere cosi:
...
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... :D evidentemente l'else del costrutto case of accetta anche il punto e virgola prima della riga precedente... :D
Ultima modifica effettuata da Anonymous 26/04/09 18:19
aaa
26/04/09 18:04
Shock
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?).
aaa
26/04/09 18:16
Anonymous
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

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 26/04/09 18:17
aaa
26/04/09 19:40
Shock
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!
aaa
27/04/09 8:47
gigisoft
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'

var n:byte;
[...]
readln(n);


metti

var n:char;
[...]
n := readkey;


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

Cosi' dovrebbe funzionare.

Ciao :k:

Luigi
aaa
27/04/09 17:54
Shock
Grazie...comunque no,non sono riuscito a risolvere.Potresti riscrivermi tutto il codice per esteso con le modifiche da te apportate???Grazie mille!
aaa
27/04/09 18:11
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
Ultima modifica effettuata da Anonymous 27/04/09 18:12
aaa