Ciao ,
Devi mettere il codice tra i tag code e /code , leggi il regolamento prima di creare un topic ^^
Comunque :
Esercizio 1:
Utilizza due cicli , uno dentro l' altro ( il for non è altro che un ciclo , cioè viene ripetuta n volta un blocco di istruzioni racchiuse tra due parentesi graffe )
for ( int i=0 ; i <= N ; i++ )
{
..... istruzioni ;
} // i è il contatore , i++ è l' incremento per ogni ciclio di +1 ( i++ equivale a scrivere i=i+1 ) e i<=N indica a quale condizione si deve fermare . In questo caso possiamo dire che si compiranno tanti cicli fin quando i non risulta essere = ad N ( fin quando la condizione i<=N risulta vera continua a fare il ciclo )
Comunque se non conosci il significa di for , while , if then else , funzioni , variabili, ti consiglio di studiarteli , io ti ho dato solo qualche cenno maccheronico ^^.
Ritornando all' esercizio 1 :
Fa un ciclo in cui i parte da 0 fino ad un valore N in cui fa partire un ciclo , quindi per ogni ciclo chiamerà un altro for . Facciamo un esempio in cui N vale 3, quell' algoritmo lo puoi leggere in questo modo
Inizio ( N = 3 )
i= 0 , inizia il secondo for in cui j = 0
ora parte l' if : se i <= j ( in questo caso se 0 <= 0 ) stampa a video i e j ( 0 0 )
finisce il ciclo interno ( quello con j ) e si incrementa j lasciando i = 0
ripete l' if : se i <= j ( in questo caso se 0 <= 1 ) stampa a video i e j ( 0 1 )
itera il procedimento fin quando j non arriva a 3. Dopodichè finisce anche il primo ciclo e si incrementa i portandolo a 1 , il quale farà iniziare un altro ciclo uguale a quello spiegato precedentemente. La stampa sarà una cosa del genere:
0 0 0 1 0 2 0 3
1 1 1 2 1 3
2 2 2 3
3 3
Esercizio 2:
Qui devi studiare la teoria sullo scope di una variabile , cioè sulla visibilità di una variabile. In pratica ( ovviamente ti consiglio di approfondire ) una variabile vive nel blocco di istruzioni che viene creata ( i blocchi sono limitati da due parentesi graffe { } ) . Le variabili globali si trovano fuori dal Main program e sono visibili a tutte le funzioni .
#include < stdio.h>
int a ; // variabile globale , muore quando finisce il programma
int main () {
int b=0 ; // variabile locale , muore quando finisce il programma main
if ( b > 0 )
{
int c ; // variabile locale e vivrà soltanto all' interno del blocco dell' if
c= 3;
} // la variabile c muore.
c = 5; // ERRORE , la variabile c non esiste più è come se non fosse mai esistita
return 0;
} // fine programma main , muore la variabile b
Ritornando all' esercizio 2 :
le variabili a e b sono globali , la variabile c è locale alla funzione int f ( muore quando muore la funzione ).
Esercizio 5:
Sono sempre due cicli , uno dentro l' altro , il concetto teorico è lo stesso che ho spiegato del for del primo esercizio.
Questo esercizio stampa a video la tabella della verità della porta logica AND in cui
0 AND 0 è 0
0 AND 1 è 0
1 AND 0 è 0
1 AND 1 è 1
Esercizio 6:
fa un ciclo da 1 a 5 quindi ripete 5 volte un blocco di istruzioni
a=a*i;
b=b+i;
dove i cambia tra 1 e 5 man mano che si ripete il blocco quindi lo puoi leggere così
a= 1; b=0 ;
primo ciclo i = 1;
a= a* i // a = 1*1 ----> a = 1;
b = b+1 // b = 0+1 --- > b = 1;
secondo ciclo i = 2;
a= a*i // a= 1*2 ----> a = 2;
// b = 1+2 ---> b = 3;
i = 3;
a = 2*3 ---> a = 6;
b = 3+3 ----> b = 6;
i = 4;
a = 6*4 ---> a = 24;
b = 6+4 ---> b = 10 ;
i = 5;
a = 24*5 ---> a= 120;
b = 10+5 ----> b = 15;
i = 6 --> non si verifica la condizione e termina il for:
printf stamperà i valor di a e b , quindi 120 e 15.