Oggi è 27/06/2022, 15:47

Tutti gli orari sono UTC + 1 ora [ ora legale ]





 Pagina 1 di 1 [ 6 messaggi ] 

  Apri un nuovo argomento Rispondi all’argomento

  Stampa pagina

Autore Messaggio
 Oggetto del messaggio: [GUIDA] Operatori e iterazioni
MessaggioInviato: 07/11/2010, 17:36 
Utente

Iscritto il: 06/11/2010
Messaggi: 197
Favourite GTA: San Andreas

Karma
1


Non connesso
Operatori

Gli operatori permettono di lavorare su delle variabili e fare appunto delle operazioni che permettono di estrapolare un determinato valore dal frutto di queste.
Molti già li conoscerete, essendo molto comuni, ma ve ne parlo lo stesso...
Ci sono vari tipi di operatori, che verranno spiegati uno ad uno in questo topic.


Operatori aritmetici
Questi sono i più comuni e sono:

- Addizione
Questa viene rappresentata attraverso il simbolo +.
Ecco degli esempi:
Codice:
new x = 1;
new y = 2;
if(x + y) return 1;
return 0;

Quindi ritorna 1 perché x + y è true, essendo il risultato maggiore o uguale ad 1.
Codice:
new x = 5 + 1;

Viene assegnato ad x il valore 5 + 1, ovvero 6.
Inoltre potete addizionare ad una variabile un determinato numero usando +=.
Codice:
x+=5;

Quindi il valore di x è stato incrementato di 5.
Oppure potete semplicemente incrementare di 1 il valore di una variabile usando ++, come in questo caso:
Codice:
x++;


- Sottrazione
Questa viene rappresentata attraverso il simbolo -.
Ecco degli esempi:
Codice:
new x = 2;
new y = 2;
if(x - y) return 1;
return 0;

Quindi ritorna 0 perché x - y è false, essendo il risultato uguale a 0.
Codice:
new x = 5 - 1;

Viene assegnato ad x il valore 5 - 1, ovvero 4.
Inoltre potete sottrarre ad una variabile un determinato numero usando -=.
Codice:
x-=5;

Quindi il valore di x è stato diminuito di 5.
Oppure potete semplicemente diminuire di 1 il valore di una variabile usando --, come in questo caso:
Codice:
x--;


- Moltiplicazione
Questa viene rappresentata attraverso il simbolo *.
Ecco un esempio:
Codice:
x = 5*5;

Alla variabile x viene assegnato quindi il valore 5*5, ovvero 25.
Inoltre potete moltiplicare ad una variabile un determinato numero usando *=.
Codice:
x*=5;

Quindi il valore di x è stato moltiplicato per 5.

- Divisione
Questa viene rappresentata attraverso il simbolo /.
Ecco un esempio:
Codice:
x = 6/3;

Alla variabile x viene assegnato quindi il valore 6/3, ovvero 2.
Nel caso dei numeri interi un operazione come 6/4 da come risultato 1, ma nel caso dei numeri decimali (Float) da come risultato 1.5.
Inoltre potete dividere ad una variabile un determinato numero usando /=.
Codice:
x/=5;

Quindi il valore di x è stato diviso per 5.

- Modulo
Il modulo è il resto di una divisione e viene rappresentato attraverso il simbolo %.
Ecco un esempio:
Codice:
x = 8%­3;

Alla variabile x viene assegnato quindi il resto della divisione 8/3, ovvero 2.
Questo operatore non riguarda i numeri decimali (Float).


Operatori di confronto
Questi operatori vengono usati nella maggior parte dei casi negli if e servono a verificare determinate condizioni quali:

- Uguaglianza che ha il significato di "è uguale a" e viene rappresentata con ==.
Codice:
if(x == true) return 1;

In questo caso l'if si verifica se x è uguale a true.

- Disuguaglianza che ha il significato di "non è uguale a" e viene rappresentata con !=.
Codice:
if(x != true) return 1;

In questo caso l'if si verifica se x non è uguale a true.

- Minoranza che ha il significato di "è minore di" e viene rappresentata con <.
Codice:
if(x < 5) return 1;

In questo caso l'if si verifica se x è minore di 5.
Inoltre si può avere anche il significato di "è minore o uguale a" rappresentandola con <=.
Codice:
if(x <= 5) return 1;

In questo caso l'if si verifica se x è minore o uguale di 5.

- Maggioranza che ha il significato di "è maggiore di" e viene rappresentata con >.
Codice:
if(x > 5) return 1;

In questo caso l'if si verifica se x è maggiore di 5.
Inoltre si può avere anche il significato di "è maggiore o uguale a" rappresentandola con >=.
Codice:
if(x >= 5) return 1;

In questo caso l'if si verifica se x è maggiore o uguale di 5.


Operatori logici

Questi operatori sono due e vengono utilizzati nella maggior parte dei casi negli if.
Possono significare "e" nel caso di && e "o" nel caso di ||.
Ecco degli esempi:
Codice:
if(x == 1 && y == 2) return 1;

In questo caso l'if si verifica se x è uguale ad 1 e y è uguale a 2.
Codice:
if(x == 1 || y == 2) return 1;

In questo caso l'if si verifica se x è uguale ad 1 oppure y è uguale a 2.


Operatore ternario

L'unico operatore ternario (con tre elementi) che esiste è "? :".
Questo rappresenta una forma sintetica di un istruzione if-else ed ecco un confronto tra la sintassi con l'operatore ternario e con l'istruzione if-else.
Codice:
//Operatore ternario
espressione1 ? espressione2 : espressione3;
//if-else
if(espressione1)
{
    espressione2;
}
else
{
    espressione3;
}


Quindi se l'espressione1 risulta vera si esegue l'espressione2, altrimenti si esegue l'espressione3

Ecco un altro esempio:
Codice:
x = y ? 1 : 0;

Quindi se il valore di y è true allora viene assegnato ad x il valore 1, altrimenti viene assegnato il valore 0.


Operatori Bitwise
Gli operatori bitwise o operatori binari lavorano appunto sui bit.
Darò solo una breve spiegazione di questi, per maggiori informazioni cercate su google su questo tipo di operazioni.
Quindi gli operatori bitwise sono:

- And
Questo operatore è rappresentato dal simbolo & e serve a dare in output il valore dei bit impostati su on (1) sia nella prima variabile che nella seconda.
Ecco degli esempi:
Codice:
x = 33 & 34;

Il valore assegnato a x sarà 32 perché 33 è composto da "32 + 1", mentre 34 da "32 + 2", che hanno appunto in comune 32.
Codice:
if(newkeys & KEY_FIRE)

Questo if sarà eseguito se newkeys e KEY_FIRE hanno i bit in comune, quindi se ad esempio il giocatore preme ad esempio due tasti contemporaneamente e tra questi c'è il KEY_FIRE la condizione varrà lo stesso.

- Or
Questo operatore è rappresentato dal simbolo | e serve a dare in output il valore dei bit impostati su on (1) nella prima variabile oppure nella seconda.
Ecco un esempio:
Codice:
x = 33 | 34;

Il valore assegnato a x sarà 35 perché perché 33 è composto da "32 + 1", mentre 34 da "32 + 2" e quindi il risultato sarà composto da "32 + 1 + 2", perché impostati su on sul primo numero oppure sul secondo.

- Xor
Questo operatore è rappresentato dal simbolo ^ e serve a dare in output il valore dei bit impostati su on (1) nella prima variabile oppure nella seconda, ma non quelli impostati su on in entrambi.
Ecco un esempio:
Codice:
x = 33 ^ 34;

Il valore assegnato a x sarà 3 perché 33 è composto da "32 + 1", mentre 34 da "32 + 2" e quindi i bit che non sono in comune sono "1 + 2" ovvero 3.

- Not
Questo operatore è rappresentato dal simbolo ~ e serve in una variabile a mettere su on i bit che sono su off e viceversa.
Ecco un esempio:
Codice:
x = 33 & ~34;

Il valore assegnato a x sarà 1 perché 34 che è "32 + 2" diventa "1" (infatti i bit corrispondenti a 32 sono stati spostati su off, come quelli corrispondenti a 2, mentre 1, che era già impostato su off, viene impostato su on) e 33, essendo "32 + 1" ha in comune 1 con ~34.

- Shift Left
Questo operatore è rappresentato dal simbolo << e serve a spostare i bit appartenenti ad una prima variabile a sinistra per un numero di passi pari alla seconda variabile.
Ecco un esempio:
Codice:
x = 1 << 2;

Il risultato sarà 4 perché ogni spostamento a sinistra equivale ad una moltiplicazione per 2, quindi "1 * 2 * 2 = 4".

- Shift Right
Questo operatore è rappresentato dal simbolo >> e serve a spostare i bit appartenenti ad una prima variabile a destra per un numero di passi pari alla seconda variabile.
Ecco un esempio:
Codice:
x = 4 >> 2;

Il risultato sarà 4 perché ogni spostamento a destra equivale ad una divisione per 2, quindi "4 \ 2 \ 2 = 1".



Iterazioni
I cicli o iterazioni sono degli imporanti costrutti in ogni linguaggio in quanto ci permettono di eseguire determinate operazioni in maniera ripetitiva.
I controlli iterativi più usati che permettono appunto di eseguire dei cicli sono il while e il for.


While
Il while continua il ciclo fino a che l'espressione associata non risulta falsa.
La struttura del while è questa:
Codice:
while(condizione)  {
    istruzione;
}

Quindi ecco degli esempi:
Codice:
new x;
while(x < 50) {
    printf("%d", x);
    x++;
}

Questo codice finché la x è minore di 50 printa il valore della x e lo aumenta di 1. Quindi il ciclo si interrompe quando la x è uguale a 50.
Codice:
new x;
while(x < 50) {
    print("OMG");
}

Questo codice finché la x è minore di 50 printa la scritta "OMG", però questo ciclo si ripeterà all'infinito perché il valore della x sarà sempre 0, dato che non viene incrementato o almeno portato a 50 o più.
Quindi questo rappresenta un caso di quando i cicli vengono ripetuti all'infinito, per errore di chi l'ha scriptato oppure in certi casi volontariamente.

- Do-While
Il Do-While è un costrutto simile al while ma che garantisce l'esecuzione del codice almeno una volta.
Ecco un esempio:
Codice:
new x;
do {
    print("OMG");
}
while(x == 1);

Questo codice printerà "OMG" solo una volta perché prima viene eseguito il codice nel do e poi controlla l'esecuzione del while, che quindi si interrompe perché x non è uguale ad 1.


For
La struttura generale del for è:
Codice:
for(inizializzazione; condizione; incremento) {
    istruzioni;
}

che corrisponde a
Codice:
inizializzazione;
while(condizione) {
    istruzioni;
    incremento;
}

Il for quindi può sostituire il while, solitamente quando già sappiamo il numero di iterazioni da fare.
Ora analizziamo i parametri:
- inizializzazione
Questa serve ad entrare nel ciclo dichiarando una variabile, quindi si mette il nome della variabile.
La variabile può essere creata fuori:
Codice:
new i;
for(i; condizione; incremento)

oppure direttamente nell'inizializzazione:
Codice:
for(new i; condizione; incremento)

- condizione
Questa è appunto la condizione, che, se risulta falsa, interrompe il ciclo.
Codice:
for(new i; i < 50; incremento)

Se i non risulta minore di 50 il ciclo viene appunto interrotto.
- incremento
Questo serve appunto a incrementare o anche diminuire il valore della variabile dichiarata nell'inizializzazione.
Codice:
for(new i; i < 50; i ++)

Quindi il valore della i viene incrementato ogni volta che viene ripetuto il ciclo.
Codice:
for(new i = 100; i > 50; i --)

Qui viene diminuito ogni volta che viene ripetuto il ciclo.
- istruzioni
Queste rappresentano le istruzioni che vengono ripetute ogni volta che viene eseguito il ciclo.
Codice:
for(new i; i < 50; i ++) {
    print("OMG");
}

Quindi viene printato "OMG" ogni volta che viene ripetuto il ciclo.


Istruzioni Break e Continue
L'istruzione break, messa dentro un ciclo, lo interrompe.
Ecco un esempio:
Codice:
for(new i; i < 50; i ++) {
    if(i == 25) break;
    print("OMG");
}

Quindi il ciclo viene interrotto se la variabile i diventa 25.
L'istruzione continue invece salta un iterazione del ciclo senza interromperlo.
Codice:
for(new i; i < 50; i ++) {
    if(i == 25) continue;
    print("OMG");
}

Quindi quando i diventa 25 il ciclo passa avanti e di conseguenza la venticinquesima volta che viene ripetuto non printa "OMG", ma il ciclo continua a ripetersi.


Top
 E-mail  
 

 Oggetto del messaggio: Re: Operatori e iterazioni
MessaggioInviato: 07/11/2010, 19:29 
Avatar utente
Administrator

Iscritto il: 02/09/2010
Messaggi: 1349
Località: Agrigento
Favourite GTA: Vice City
PlayStation Network: Giovanni94m
Xfire: Giovanni94m
Steam: Giovanni94m

Karma
10


Non connesso
ottimo lavoro peppe : Thumbup :

_________________
Immagine
Immagine
Immagine
Immagine
Immagine
Immagine
Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA] Operatori e iterazioni
MessaggioInviato: 07/11/2010, 19:53 
Avatar utente
Utente

Iscritto il: 02/09/2010
Messaggi: 406
Località: Favara (AG)
Favourite GTA: San Andreas
Xfire: mond95

Karma
10


Non connesso
Davvero ottimo!

_________________
Immagine


Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA] Operatori e iterazioni
MessaggioInviato: 07/11/2010, 20:30 
Avatar utente
Utente

Iscritto il: 05/11/2010
Messaggi: 23
Località: Siciliano fiero di esserlo
Favourite GTA: Vice City
PlayStation Network: LeeZarock
Xfire: leezarock10

Karma
0


Non connesso
Di certo la matematica non è il mio forte O_o

_________________
Scusate se a volte sarò un pò duro, ma ho scambiato il viagra per dei confetti azzurri
Immagine
Immagine
ImmagineImmagine
ImmagineImmagine
ImmagineImmagine
ImmagineImmagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA] Operatori e iterazioni
MessaggioInviato: 07/11/2010, 20:59 
Banned

Iscritto il: 31/10/2010
Messaggi: 1363
Località: Sicilia
Favourite GTA: San Andreas
Xfire: peppinux

Karma
-10


Non connesso
Fantastica guida! :asd: Lee...


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA] Operatori e iterazioni
MessaggioInviato: 07/11/2010, 23:21 
Avatar utente
Moderatore

Iscritto il: 28/10/2010
Messaggi: 919
Località: Veduggio con Colzano (Milano-Monza)
Favourite GTA: San Andreas
PlayStation Network: Nessuno
Xbox Live: Nessuno
Xfire: barle97

Karma
1


Non connesso
Bella guida peppe ;).... PS: Io ho 9 in matematica :asd:

_________________
disasm 0xFFFF00 1: LE HANTENNE DEL RUTER SI MVONO DA SL!11!1!!1
[EPD]Giovanni94m: AHSUAHSAUSHAUSAHSAU
disasm 0xFFFF00 1: bella questa asd

[EPD]Giovanni94m: io non riesco a trovare un gioco che ci giocavo su ps1
[EPD]Giovanni94m: non ricordo il nome
[EPD]Giovanni94m: era un omino rosa
[EPD]Giovanni94m: ...
[BCD]barle_the_king: forse cercavi omino bianco [cit. google]
[BCD]barle_the_king: auhsahusuha
[EPD]Giovanni94m: no ahsau
[BCD]barle_the_king: firma duhahudshue

Immagine


Top
 E-mail  
 
Visualizza ultimi messaggi:  Ordina per  
 Pagina 1 di 1 [ 6 messaggi ] 

  Apri un nuovo argomento Rispondi all’argomento

Tutti gli orari sono UTC + 1 ora [ ora legale ]



Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti


Non puoi aprire nuovi argomenti
Non puoi rispondere negli argomenti
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi inviare allegati

Cerca per:
Vai a:  
cron