1. Caratteristiche del linguaggio C Dimensioni del codice ridotte - il codice sorgente di un programma in C ha un peso (in Kb) relativamente piccolo, Dimensioni dell'eseguibile ridotte - una volta compilato, un programma in C, risulta molto piccolo e quindi di più facile diffusione Efficienza dei programmi – un programma scritto in C, proprio per la sua possibilità di gestire a fondo la memoria, e per le sue dimensioni ridotte, risulta particolarmente efficiente. E’ un linguaggio di alto livello - la particolarità dei linguaggi ad alto livello è quella di avere una semplice sintassi in cui si usano parole della lingua inglese per descrivere comandi corrispondenti a decine di istruzioni in assembler o centinaia di istruzioni in linguaggio macchina . ..ed infine può essere compilato su una vasta gamma di computer
2. Primo programma in C Programma per scrivere una frase sullo schermo. #include <stdio.h> #include <stdlib.h> main() { printf ("Ho scritto il primo programma"); system("PAUSE"); return 0; } Dopo aver scritto il programma questo deve essere compilato e, solo dopo il successo nella compilazione, eseguito.
3. Un po’ di sintassi -MAIN ()è la funzione che dà l’inizio di esecuzione ed è sempre presente in ogni programma. Può anche avere dei parametri all’interno delle parentesi. - { }le istruzioni del programma sono racchiuse tra due parentesi graffe - ; serve per chiudere un’istruzione, per far capire che dopo inizia una nuova istruzione - PRINTF (“ “)è una funzione adibita a stampare a video tutto ciò che le viene passato come argomento e viene scritto dentro doppio apice - INCLUDE è una direttiva che permette di richiamare le librerie standard del C ad esempio #include <stdio.h> comprende la funzione PRINTF - system("PAUSE");ereturn 0;sono due istruzioni che servono a fermare l’esecuzione sullo schermo. La funzione system è contenuta nella libreria <stdlib.h>
4. Un po’ di sintassi All’interno di un programma in C possono essere inseriti dei commenti che, per essere riconosciuti come tali e quindi non eseguiti dal compilatore, devono essere racchiusi tra i simboli /* …… */ Ad esempio /* questo è un commento*/ Miglioriamo il programma aggiungendo qualcosa all’argomento della funzione printf; pertanto sostituiamo la riga printf ("Ho scritto il primo programma"); con la riga printf ("Ho scritto il primo programma "); Cosa accade??? Notiamo che equivale al carattere che manda a capo
5.
6. In C le variabili devono essere tutte dichiarate prima di essere usate.
8. Il nome detto anche identificatore è costituito da una o più lettere, cifre o caratteri e deve iniziare con una lettera ( o il carattere _ ).
9. Da notare che il C è case-sensitive cioè distingue tra maiuscola e minuscola per cui l’identificatore PIPPO è diverso da pippo o da Pippo o da PippO.
10.
11. Nelle operazioni con numeri reali mancano il DIV e il MOD sostituiti dalla divisione reale con numeri decimali che ha come simbolo ancora /
12.
13. Serve un’istruzione per acquisire i dati; la funzione di tale istruzione è SCANF (“specifica di formato”,&variabile); La sua sintassi è ricavabile dal seguente esempio printf(“inserisci un numero intero ”); scanf(“%d”,&pippo); La funzione scanfesegue la lettura e memorizza il numero nella variabile chiamata pippo; naturalmente prima di queste righe la variabile pippo deve essere dichiarata con intpippo; Nota: per leggere un numero intero mettiamo %d, per un numero reale mettiamo %f
14. Selezione L’istruzione che permette di verificare certe condizioni è if (espressione) istruzione La sequenza if (espressione) istruzione1 else istruzione2 permette di eseguire l’istruzione1 se la condizione è vera e di eseguire l’istruzione2 se la condizione è falsa se… allora.. altrimenti…selezione
15. Programma che, dati due numeri, stampa il maggiore dei due #include <stdio.h> #include <stdlib.h> main() { int a,b; a=0;b=0; printf("introduci i valori di a, b, andando a capo dopo ogni valore"); scanf("%d",&a); scanf("%d",&b); if (a>b) printf("il maggiore e' %d",a); else printf("il maggiore e' %d",b); system("PAUSE"); return 0; }
16. Tradurre in C i seguenti algoritmi: Letto un numero intero n scrivere se n è pari o dispari. Letto un numero intero n scrivere la sua metà se n è pari e la metà del successivo se n è dispari. Letti tre numeri interi a,b,c, scrivere chi è il maggiore. Letti quattro numeri interi ( i voti delle prove di un alunno in matematica) stamparne la media e dire se la media risulta sopra la sufficienza oppure no.
17. LOOP (CICLO) LOOP = ripetere l'esecuzione di una istruzione per una serie determinata di volte. l'istruzione da usare è "FOR", che ha questa forma: for (inizializzazione ; condizione ; incremento; ) istruzione da eseguire; inizializzazione: è l’ istruzione di assegnamento alla variabile del ciclo ad es: pippo=1 condizione: è l’espressione per valutare quando terminare il ciclo ad es: pippo<10 incremento: come modifichiamo la variabile nel ciclo es: pippo=pippo+1
18. Scriviamo un loop per far scrivere 10 volte la frase “tanti auguri” #include <stdio.h> intcont; /* Definiamo una variabile intera che ci servira' come contatore per il numero di cicli FOR */ main() { for(cont=1 ; cont<11 ; cont=cont+1) printf("Tanti auguri"); }
19. Vediamo il listato precedente reso piu' "elegante". Innanzitutto possiamo introdurre un paio di nuovi operatori: oltre ai noti operatori +, -, *, /, abbiamo una coppia di operatori speciali che servono ad incrementare o decrementare di 1 una variabile: ++ incremento di 1, ad esempio cont++; -- decremento di 1, ad esempiocont–- Quindi: cont++; equivale acont=cont+1 cont--; equivale a cont=cont-1 A questo punto il for precedente diventa for(cont=1 ; cont<11 ; cont++) Per eseguire più di una istruzione in un ciclo basta scrivere le istruzioni comprese tra le parentesi { }
20. Tradurre in C i seguenti algoritmi: Calcolare la somma dei primi 30 numeri naturali Calcolare il prodotto dei primi 30 numeri naturali Calcolare il fattoriale di 6