Tommaso95 (Normal User)
Newbie
Messaggi: 17
Iscritto: 17/10/2012
|
Ciao a tutti, stavo facendo un nuovo programma quando mi sono trovato davanti a due dubbi a cui non riesco a dare una risposta:
1) Ho 10 variabili che leggo tramite un readln. Successivamente devo controllare se sono tutte comprese tra 0 e 20. Devo fare per ogni variabile una cosa del tipo if (numa>20) OR (numa<0) OR if(numb>20)...... oppure c'è qualche tecnica per velocizzare il tutto?
2) E' corretto fare una procedure senza parametri?
grazie
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6379
Iscritto: 03/01/2010
|
Studia ed usa i vettori
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
Tommaso95 (Normal User)
Newbie
Messaggi: 17
Iscritto: 17/10/2012
|
Uhm, in che senso?
Io ho questa parte di codice che riceva i valori di input:
Codice sorgente - presumibilmente Plain Text |
Write('Inserisci 10 numeri separati da uno spazio da 1 a 20: ');
Readln(numa,numb,numc,numd,nume,numf,numg,numh,numi,numl);
|
e poi dovrei controllare se ogni numero è compreso tra 1 e 20. Con i vettori come si può fare?
Grazie
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6379
Iscritto: 03/01/2010
|
Postato originariamente da Tommaso95:
Uhm, in che senso? |
C'è un solo senso ... usa i vettori ...
Con i vettori come si può fare? |
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
Tommaso95 (Normal User)
Newbie
Messaggi: 17
Iscritto: 17/10/2012
|
Sono stupido, mi ero messo in testa che all'interno di Read non potevo leggere i dati sotto forma di array.
Ho risolto, grazie
|
|
Tommaso95 (Normal User)
Newbie
Messaggi: 17
Iscritto: 17/10/2012
|
Scusate se riuppo il topic ma dato che mi è sorta un problemino relativo a quello che avevo scritto non mi sembrava il caso di aprirne un altro.
In pratica adesso sto cercando di controllare se i 10 numeri che l'utente inserisce sono compresi tra 1 e 20. Se non lo sono dovrei dare la possibilità all'utente di modificare quel numero.
Purtroppo quello che ho provato a creare non funziona, consigli?
Codice sorgente - presumibilmente Delphi |
Write('Inserisci 10 numeri separati da uno spazio da 1 a 20: '); for b:=1 to 10 do begin Read(aux); errore := (aux>20) OR (aux<1); if errore then begin writeln('Errore, valore non corrretto'); Writeln('Inserisci un''altro numero tra 1 e 20'); readln(aux); end else aux:=nu[b]; end;
|
Ultima modifica effettuata da Tommaso95 il 05/11/2012 alle 22:30 |
|
nessuno (Normal User)
Guru^2
Messaggi: 6379
Iscritto: 03/01/2010
|
Cosa vuol dire questa linea
aux:=nu;
secondo te?
Ultima modifica effettuata da nessuno il 05/11/2012 alle 22:31
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
Tommaso95 (Normal User)
Newbie
Messaggi: 17
Iscritto: 17/10/2012
|
aux è una variabile ausiliaria.
Se rispetta le condizioni la "copio" nell'array vero e proprio contenente i 10 valori definitivi.
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6379
Iscritto: 03/01/2010
|
Postato originariamente da Tommaso95:
aux è una variabile ausiliaria.
Se rispetta le condizioni la "copio" nell'array vero e proprio contenente i 10 valori definitivi. |
Ma in quel modo fai il contrario ... copi l'elemento dell'array nella variabile ...
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità. |
|