Total Hack Cheat
Benvenuto/a su Total hack Cheat....
non aspettate altro tempo Registratevi!!

Programmazione generale - basi fondamentali (easy mode) parte 2

Vedere l'argomento precedente Vedere l'argomento seguente Andare in basso

Programmazione generale - basi fondamentali (easy mode) parte 2

Messaggio Da RaYoZ il Mer Ago 17, 2011 12:26 pm

Notando un discreto interesse per la prima guida sulle basi della programmazione mi è tornata la voglia di scrivere e quindi eccomi qui a continuare il mio progetto nella speranza di creare l’interesse nel mondo della programmazione anche in chi la vedeva come un qualcosa di troppo complicato =)

In questa seconda parte gli argomenti trattati saranno:
I cicli fondamentali (cicli iterattivi)
-while
-do while
- for
E le funzioni.


Ok stiamo perdendo tempo, iniziamo:

Cicli iterattivi
Nella prima guida vi ho spiegato come utilizzare alcuni comandi basilari in modo procedurale ovvero senza mai tornare indietro nel codice, ciò che proverò a spiegarvi ora è che attraverso i cicli possiamo ripetere una parte di codice per un tot di volte.
Vediamo di rendere l’idea più chiara:



perché dovremmo imparare nuovi codici quando scrivendo gli altri più volte riusciamo più o meno a fare tutto? Semplice: ci semplifica la vita, il codice sarà più breve ed efficiente e.. bè lo capirete appena finite di leggere quanto possano essere essenziali

While
Il ciclo while è il ciclo che mette la condizione prima del codice, adesso mi spiego ma prima vediamo un esempio di while:
codice:
Codice:

int x=400;
int y=0;
while(x != y) // l’operatore logico !=  potete leggerlo come “diverso da” quindi quella condizione è x diverso da  y
{ y=y+1;
}

Spiegazione:
int x=400; --> dovreste sapere ormai a cosa serve: inizializza la variabile x e le attribuisci un valore pari a 400
int y=0; -->uguale a sopra
while (x != y) --> con questo comando il programma sa che deve ripetere il codice che troverà nelle parentesi graffe sotto ma se non gli diciamo quando fermarsi, andrà in loop (ripeterà il codice all'infinito) è a questo che serve quell'istruzione tra parentesi tonde. Ricordate che il while e il do while ciclano per vero quindi il programma ripeterà il codice tra graffe fino a quando la condizione risulterà vera.
Se avessimo dovuto scrivere lo stesso codice senza questo ciclo avremmo dovuto scrivere
400 volte l'istruzione: y=y+1; questo dovrebbe far capire quanto possano risultare utili i cicli.
Potete immagine il while come un particolare if volendo, osservate questa rappresentazione flow chart, dovreste riconescere qualcosa di simile no?



Do While
Questo ciclo è sostanzialmente simile al while, l'unica differenza sta nel fatto che il controllo viene fatto alla fine del codice invece che all'inizio.
volendo riprendere l'esempio di prima avremmo questo codice:
codice:
Codice:
int x=400;
int y=0;
do
{ y=y+1;
}while(x != y) ;

Avrete notato la presenza di una nuova stringa di codice:
do --> come abbiamo visto il while è spostato alla fine del ciclo però il programma ha bisogno di sapere quando questo inizia, ecco che arriva il do a risolvere il problema.
In questo caso il flow chart è ovviamente diverso:



Abbiamo accennato prima alla differenza tra while e do while ma chiariamo un po' meglio come funziona:
nel do while, il programma, prima di trovare l'istruzione di controllo, trova tutto il codice da eseguire quindi almeno una volta lo eseguirà sempre, al contrario, il while, ha il controllo prima di ogni altra cosa quindi se trova la condizione falsa esce senza effettuare neanche una volta il codice.

Ciclo For

forse il più usato tra i cicli, il for è diverso dalle altre istruzioni iterattive:
fino ad ora abbiamo avuto a che fare di cicli dove non sapevamo di preciso il numero di ripetizioni che il programma andrà ad eseguire, ma se noi conoscessimo quel numero? in questo caso è decisamente meglio utilizzare un ciclo for.. Ma vediamo com'è fatto:
Codice:
for (i=0; i<10; i++)
bene, l'interno della parentesi si divide in tre parti separate dai punti e virgola.
i=0; dice al nostro programma che il nostro indice i (quello che abbiamo usato nei vettori/array) comincerà questa serie di cicli con un valore pare a 0 (possiamo ovviamente scegliere qualsiasi valore)
i<10 ; è la nostra solita condizione: il for continuerà a ciclare fino a quando il valore di i sarà minore di 10 (la condizione in questo caso potrà essere costruita unicamente con gli operatori logici: <, >, <=, >=, !=, =)
i++; consiste nell'incrementazione dell'indice i ad ogni ciclo: ogni volta che inizia un nuovo ciclo, l'indice i aumenterà di 1 (possiamo farlo aumentare o diminuire di una qualsiasi cifra per ogni ciclo)
esempio:
Codice:
for(i=1; i<=15; i++)
{
cout<<"adesso l'indice vale:  ";
cout<<i<<endl;
}
questo for effettuerà 15 cicli e il risultato che troveremo a video sarà:

adesso l'indice vale: 1
adesso l'indice vale: 2
adesso l'indice vale: 3
adesso l'indice vale: 4
adesso l'indice vale: 5
adesso l'indice vale: 6
adesso l'indice vale: 7
adesso l'indice vale: 8
adesso l'indice vale: 9
adesso l'indice vale: 10
adesso l'indice vale: 11
adesso l'indice vale: 12
adesso l'indice vale: 13
adesso l'indice vale: 14
adesso l'indice vale: 15

Spiegazione:
for(i=1; i<=15; i++) --> l'indice partirà da 1, dovrà arrivare a 15 e si incrementa di 1 ad ogni ciclo
cout<<"adesso l'indice vale: "; --> questo è il codice (in c++) che serve per stampare sullo schermo la stringa "adesso l'indice vale: " senza virgolette.
cout<se dopo il cout non ci sono le virgolette, il programma stamperà il valore della variabile, in questo caso la variabile i, il nostro indice. endl serve solo per andare a capo.



Ultima cosa che dovete sapere è che, ovviamente, l'indice i non è altro che una variabile e come tale può essere scambiato da un'altra e può avere qualsiasi nome, ricordate però di dichiararla sempre al programma se no non la riconoscerà (questo vale per molti linguaggi ma come ho già detto è una regola obbligatoria per tutti).


Funzioni

Considerate un programma che deve ripetere la stessa operazione un numero elevato di volte, magari ogni volta con valori diversi rendendoci impossibile l'uso dei cicli, in questo caso è consigliabile l'utilizzo delle funzioni.
Una funzione è una porzione di codice separata dal programma principale che può essere richiamata all'interno di questo attraverso una sola stringa di codice.
Vediamo un esempio (consideriamo il main come nostro programma principale):

Codice:
int somma(int primo, int secondo)
{int terzo;
terzo= primo + secondo;
return(terzo)
}
main()
{
int a= 5;
int b= 10;
int c = 15;
int risultatoAB, risultatoAC, risultatoBC;
risultatoAB= somma(a,b);
risultatoAC= somma(a,c);
risultatoBC= somma(b,c);
}
Spiegazione procedura:
il programma eseguirà come al solito il nostro main, ma cosa succede quando arriva arriva all'istruzione risultatoAB = somma(a,b)?
invia alla funzione somma(a,b) i valori delle variabili a e b. quindi come prima cosa i numeri 5 e 10 vengono inviati alla funzione.

int somma(int primo, int secondo)

il primo int lo vedremo dopo, ora concentriamoci sulla parentesi: qui avremo due variabili di ricezione.. in altre parole per utilizzare questa funzione è obbligatorio inviarle due variabili di tipo intero. Noi l'abbiamo fatto, abbiamo inviato i numeri 5 e 10 così la funzione li metterà rispettivamente all'interno di primo e secondo (le variabili di ricezione).
A questo punto saltiamo fino al return, il resto lo conoscete già.

return(terzo)
Questa istruzione serve a far tornare il valore al main.. noi sappiamo che terzo vale 15 e che con return è tornato main, ma dove va a finire? ricordate l'istruzione per chiamare la funzione?
risultatoAB= somma(a,b);
Dopo che la funzione avrà finito il lavoro, il valore di ritorno entrerà dentro risultatoAB

Alla fine del programma le variabili risultatoAB,risultatoAC e risultatoBC varranno rispettivamente: 15,20 e 25.

Ultimo punto da spiegare è il primo int della dichiarazione della funzione: è molto semplice, è solo il tipo della variabile di ritorno. Nel nostro esempio indica che la variabile terzo è di tipo intero.
Se fosse stato di tipo stringa, ad esempio, avremmo dovuto mettere string e se invece non ci fossero variabili di ritorno useremmo la parola chiave void.

Con questo penso di aver più o meno concluso spero sia tutto quantomeno comprensibile.. ovviamente queste guide non sono che alcune delle basi della programmazione, non potete considerarvi programmatori imparando queste poche cose ma spero possano aiutarvi a proseguire in modo autonomo questo studio ^^
Chiedo scusa per eventuali errori e/ o dimenticanze, se qualcuno dovesse notarne e avesse la voglia di corregere mi farebbe un grande favore, è importante è la gente non impari nozioni sbagliate =) più avanti proverò ad iniziare una spiegazione generale per la programmazione ad oggetti, ma non posso garantire una data =)


fonte:web

RaYoZ
Admin
Admin

Messaggi : 1040
Punti : 2245
Data d'iscrizione : 03.04.10
Età : 22
Località : immerso nei pensieri

Tornare in alto Andare in basso

Vedere l'argomento precedente Vedere l'argomento seguente Tornare in alto

- Argomenti simili

 
Permesso di questo forum:
Non puoi rispondere agli argomenti in questo forum