+ All Categories
Home > Documents > IL LINGUAGGIO C Per leleganza della sintassi e la compattezza dei costrutti, il C è una sfida...

IL LINGUAGGIO C Per leleganza della sintassi e la compattezza dei costrutti, il C è una sfida...

Date post: 01-May-2015
Category:
Upload: giannino-martinelli
View: 214 times
Download: 2 times
Share this document with a friend
38
IL LINGUAGGIO ”C” Per l’eleganza della sintassi e la compattezza dei costrutti, il C è una sfida permanente alle capacità intellettuali del programmatore. E’ un linguaggio di alto livello con un insieme ristretto di costrutti di controllo e parole chiave (circa trenta), ma possiede un buon numero di operatori. Il C e' diventato un linguaggio professionale ampiamente utilizzato perché ha appunto strutture di alto livello ma può maneggiare attività di basso livello. Produce inoltre programmi efficienti e può essere compilato su un'ampia gamma di sistemi operativi.
Transcript
Page 1: IL LINGUAGGIO C Per leleganza della sintassi e la compattezza dei costrutti, il C è una sfida permanente alle capacità intellettuali del programmatore.

IL LINGUAGGIO ”C”

Per l’eleganza della sintassi e la compattezza dei costrutti, il C è una sfida permanente alle capacità intellettuali del programmatore.

E’ un linguaggio di alto livello con un insieme ristretto di costrutti di controllo e parole chiave (circa trenta), ma possiede un buon numero di operatori.

Il C e' diventato un linguaggio professionale ampiamente utilizzato perché ha appunto strutture di alto livello ma può maneggiare attività di basso livello. Produce inoltre programmi efficienti e può essere compilato su un'ampia gamma di sistemi operativi.

Page 2: IL LINGUAGGIO C Per leleganza della sintassi e la compattezza dei costrutti, il C è una sfida permanente alle capacità intellettuali del programmatore.

Il primo programma in “C”

Il più semplice in assoluto è il famoso "Hello World!" (Ciao Mondo) che ha soltanto lo scopo di stampare a video la suddetta scrittura.

1 /* Un primo programma in C */23 #include <stdio.h>45 int main ()6 {7 printf("Hello World! \n");89 return 0;10 }

Page 3: IL LINGUAGGIO C Per leleganza della sintassi e la compattezza dei costrutti, il C è una sfida permanente alle capacità intellettuali del programmatore.

Analizziamo le singole righe

Si comincia con /* ……. */ alla riga 1 per indicare che questa linea è di commento.

I programmatori inseriscono dei commenti per documentare i programmi e migliorare la loro leggibilità.

Alla riga 3 troviamo una direttiva per il prepocessore. Le righe che cominciano con # sono comandi che permettono di richiamare le librerie del C, in questo caso quella che ci permette di eseguire le operazioni di input-output (stdio.h = standard i/o) come printf.

La main è la funzione principale in un qualsiasi programma e identifica il punto d’inizio dell’esecuzione. All’interno delle parentesi tonde si possono inserire, se necessari, dei parametri.

La parentesi graffa aperta deve aprire il corpo di ogni funzione e una corrispondente parentesi graffa chiusa lo deve chiudere. La parte contenuta fra le due parentesi è detta blocco.

Page 4: IL LINGUAGGIO C Per leleganza della sintassi e la compattezza dei costrutti, il C è una sfida permanente alle capacità intellettuali del programmatore.

Alla riga 7 l’istruzione printf ordina al computer di eseguire un’azione: visualizzare sullo schermo la stringa di caratteri indicata fra le virgolette. La sequenza \n significa newline e provoca il posizionamento del cursore sulla riga successiva alla stringa stampata.

Il punto e virgola, invece, serve per "chiudere" un'istruzione, per far capire che dopo quel simbolo inizia una nuova istruzione.

La riga 10, return 0; è inclusa alla fine di ogni main ed indica che il programma è terminato con successo.

N.B. Per poter visualizzare il risultato del programma, occorre inserire:

#include <conio.h> …… getch(); Questo impedisce al sistema operativo di chiudere la finestra

di visualizzazione del risultato una volta completata l’esecuzione.

Analizziamo le singole righe

Page 5: IL LINGUAGGIO C Per leleganza della sintassi e la compattezza dei costrutti, il C è una sfida permanente alle capacità intellettuali del programmatore.

Risultato

Ottenendo la videata mostrata a lato

#include <stdio.h>#include <conio.h>

int main (){printf("Hello World! \n");

getch();return 0;}

Page 6: IL LINGUAGGIO C Per leleganza della sintassi e la compattezza dei costrutti, il C è una sfida permanente alle capacità intellettuali del programmatore.

L’editor di testo

Un programma in C può essere scritto anche con un semplice editor di testi. Per poter vedere il risultato del codicedobbiamo salvare necessariamente il file con un'estensione ".c",ad esempio "hello world.c".

Puntare il mousesu File, Nuovo, File Sorgente

Page 7: IL LINGUAGGIO C Per leleganza della sintassi e la compattezza dei costrutti, il C è una sfida permanente alle capacità intellettuali del programmatore.

La compilazione

A questo punto non dobbiamo fare altro che compilare il programma.

Puntare il mousesu Compila

Page 8: IL LINGUAGGIO C Per leleganza della sintassi e la compattezza dei costrutti, il C è una sfida permanente alle capacità intellettuali del programmatore.

La compilazione

La compilazione di un programma in C segue varie fasi:

Il codice sorgente viene controllato dal preprocessore che ha iseguenti compiti:

- rimuovere eventuali commenti presenti nel sorgente; - interpretare speciali direttive per il preprocessore denotate da "#"- controllare eventuali errori del codice

Il risultato del preprocessore sarà un nuovo codice sorgente "pulito" ed “espanso" che viene tradotto dal compilatore C in codice assembly

L'assembler sarà incaricato di creare il codice oggetto salvandolo con estensione .obj

Il Link editor ha il compito di collegare tutti i file oggetto risolvendo eventuali dipendenze e creando il programma (.exe)

Page 9: IL LINGUAGGIO C Per leleganza della sintassi e la compattezza dei costrutti, il C è una sfida permanente alle capacità intellettuali del programmatore.

La compilazione

Tutte queste operazioni possono individuare facilmente errori di sintassi, ma mai e poi mai potranno trovare errori logici (come ad esempio un ciclo che non finisce), anche se spesso vengono segnalati dei Warning che non costituiscono errore, ma che segnalano parti di codice strane e quindi sulle quali porre attenzione per eventuali errori logici.

Correggere gli errori e ripetere la procedura.

Page 10: IL LINGUAGGIO C Per leleganza della sintassi e la compattezza dei costrutti, il C è una sfida permanente alle capacità intellettuali del programmatore.

L’esecuzione

Puntare il mousesu Esegui

Il programma provvederà, non solo ad eseguire tutte le operazioni citate, ma, una volta compilato, manderà in esecuzione il vostro file presentandovi il risultato a video. Questo file, in ambiente Dos/Windows generalmente ha lo stesso nome del sorgente ma con estensione .exe invece che .c

Page 11: IL LINGUAGGIO C Per leleganza della sintassi e la compattezza dei costrutti, il C è una sfida permanente alle capacità intellettuali del programmatore.

La variabile

Il concetto di variabile.

Pensiamo, ad esempio, a quando salviamo un numero di telefono di

un nostro amico sul cellulare; se vogliamo chiamare il nostroamico, basterà inserire il suo nome (nome della variabile) ed ilcellulare comporrà automaticamente il numero di telefono (valoredella variabile). Si può vedere quindi che una variabile esiste infunzione del nome e del suo valore corrispondente; la comoditàrisiede (come nel cellulare) nel poter usare un nome per valori, chepossono essere numeri o lettere, di grande entità o difficili daricordare. Un altro vantaggio, non da sottovalutare, è la possibilitàdi usare il nome della variabile al posto del suo valore pereseguirvi sopra delle operazioni, con la possibilità, in seguito, dimodificare il valore come e quante volte vogliamo.

Le variabili vengono definite da un tipo e da un nome.

Page 12: IL LINGUAGGIO C Per leleganza della sintassi e la compattezza dei costrutti, il C è una sfida permanente alle capacità intellettuali del programmatore.

La variabile

Il nome di una variabile è costituito da una o più lettere, cifre o caratteri e deve iniziare con una lettera o il carattere di sottolineatura (underscore "_" ); la loro lunghezza massima dipende dal compilatore, ma generalmente non si possono superare i 31 caratteri, ed inoltre il C è case-sensitive, quindi si fa distinzione tra lettere maiuscole e lettere minuscole. Il tipo della variabile indica quale tipo di valori può assumere il contenuto della variabile stessa. Si può ben capire che un tipo intero conterrà soltanto dei numeri, mentre il tipo carattere conterrà solamente lettere dell'alfabeto, numeri e simboli. Va fatto notare che l'intero '7' è estremamente diverso dal carattere '7', infatti l'intero viene trattato come un numero e su di esso si possono svolgere le più svariate operazioni matematiche, mentre il carattere viene gestito come un simbolo.

Page 13: IL LINGUAGGIO C Per leleganza della sintassi e la compattezza dei costrutti, il C è una sfida permanente alle capacità intellettuali del programmatore.

La variabile

Tutte le variabili, prima di essere utilizzate, devono esseredichiarate, cioè deve essere detto al compilatore il tipo dellavariabile ed il suo nome (es. int x), questo per permettergli diallocare la memoria necessaria alla variabile stessa; la

dichiarazionegeneralmente viene fatta all'inizio del programma, ma inprogrammi di grandi dimensioni può trovarsi anche in altre

posizioni(o altri file), ma bisogna ricordare che comunque la dichiarazione

diuna variabile può essere fatta una ed una sola volta.Successivamente la variabile deve essere inizializzata, cioè le

deveessere assegnato un valore, operazione che generalmente viene

fattacontemporaneamente alla dichiarazione.

// solo dichiarazione // inizializzazioneint x; x = 10;

// dichiarazione ed inizializzazione int y = 15;

Page 14: IL LINGUAGGIO C Per leleganza della sintassi e la compattezza dei costrutti, il C è una sfida permanente alle capacità intellettuali del programmatore.

Tipi di variabile

Tipi di dichiarazio

ne

Rappresentazione

N. di byte

Char Carattere 1 (8 bit)

Int Numero intero 2 (16 bit)

Short Numero intero

"corto" 2 (16 bit)

Long Numero intero

"lungo" 4 (32 bit)

Float Numero reale 4 (32 bit)

Double Numero reale

"lungo" 8 (64 bit)

Page 15: IL LINGUAGGIO C Per leleganza della sintassi e la compattezza dei costrutti, il C è una sfida permanente alle capacità intellettuali del programmatore.

Tipi di variabile

Il tipo char è adibito a contenere uno ed un solo carattere Per dichiarare ed inizializzare una variabile char, ad esempioinizializzandola con la lettera 'r', basta scrivere:

Il tipo int contiene numeri, appunto, interi, quelli che in matematica

vengono chiamati numeri naturali, e cioè senza la virgola e parti

frazionate. Attenzione:

int x = 7;int y = 3;int z;

z = x / y; z vale 2, cioè la parte intera della divisione tra 7 e 3

char a = 'r';

Page 16: IL LINGUAGGIO C Per leleganza della sintassi e la compattezza dei costrutti, il C è una sfida permanente alle capacità intellettuali del programmatore.

Tipi di variabile

I tipi float e double sono chiamati anche numeri in virgola mobile,

cioè quelli che in matematica vengono chiamati numeri reali. La differenza tra i due sta solamente nei bit che sono riservati perla loro rappresentazione.

short e long sono le due varianti del tipo int anche se in realtà un

tipo int è già di per sè un tipo short.

float x = 7.0float y = 2.0float z;z = x / y// z vale 3.5

Page 17: IL LINGUAGGIO C Per leleganza della sintassi e la compattezza dei costrutti, il C è una sfida permanente alle capacità intellettuali del programmatore.

Gli operatori aritmetici

Operatori aritmetici. Comprendono somma, sottrazione, moltiplicazione, divisione intera, divisione con modulo ecc.

Operazioni con

gli int Simbol

o Esempio

Addizione + 4 + 27 = 31

Sottrazione - 76 - 23 = 53

Moltiplicazione * 4 * 7 = 28

Divisione intera /

10 / 3 = 3(3 è il n di volte divisibili senza

resto)

Divisione con modulo

% 11 / 6 = 5

(5 è il resto della divisione)

Lavorando con i numeri float o double manca la "divisione con modulo" che non ha ragione di esistere.

Page 18: IL LINGUAGGIO C Per leleganza della sintassi e la compattezza dei costrutti, il C è una sfida permanente alle capacità intellettuali del programmatore.

Gli operatori aritmetici

Esistono poi gli operatori di incremento (++) e quello di decremento

(--), che possono essere preposti o posposti alla variabile; se sono

preposti il valore è calcolato prima che l'espressione sia valutata,

altrimenti viene calcolato dopo; l'incremento ed il decrementoavvengono sempre nel valore di una unità sul valore della

variabile.Ad esempio x++ equivale a scivere x = x + 1;

int x = 2;int y = 5;int z = 9;int k = 6;

printf("%d\ n", x++); // 2, che si incrementerà a 3 dopo il printfprintf("%d \n", ++y); // 6, si incrementa prima del printfprintf("%d \n", z--); // 9, che si decrementerà a 8 dopo il printfprintf("%d \n", --k); // 5, si decrementa prima del printf

Page 19: IL LINGUAGGIO C Per leleganza della sintassi e la compattezza dei costrutti, il C è una sfida permanente alle capacità intellettuali del programmatore.

Gli operatori aritmetici

Esiste nel C una forma contratta come mostrata in tabella.Supponiamo di assumere c = 3, d =5, e = 4, f = 6, h = 12

Operatore

Espressione

Spiegazione

Assegna

+= c += 7 c = c + 7 10 alla variabile c

-= d -= 4 d = d - 4 1 alla variabile d

*= e *= 5 e = e * 5 20 alla variabile e

/= f /= 3 f = f / 3 2 alla variabile f

%= h %= 9 h = h % 9 3 alla variabile h

Page 20: IL LINGUAGGIO C Per leleganza della sintassi e la compattezza dei costrutti, il C è una sfida permanente alle capacità intellettuali del programmatore.

Gli operatori di confronto

Operatori di confronto. Operatori che permettono di verificare determinate condizioni, come ad esempio l'uguaglianza o la disuguaglianza.

Simbolo Significato Utilizzo

== uguale a a == b

!= diverso da a != b

< minore a < b

> maggiore a > b

<= minore o uguale a <= b

>=maggiore o

ugualea >= b

Page 21: IL LINGUAGGIO C Per leleganza della sintassi e la compattezza dei costrutti, il C è una sfida permanente alle capacità intellettuali del programmatore.

Gli operatori logici

Operatori logici. Da utilizzare con le istruzioni condizionali ed iterative.

Simbolo Significato Utilizzo

&& AND logico a && b

|| OR logico a || b

! NOT logico a ! b

^^ XOR logico a ^^ bQueste operazioni restituiscono necessariamente 1 quando sono vere e 0 quando sono false, quindi facendo "a || b" questa assume valore uno se e solo se "a" o "b" valgono uno, mentre vale zero se entrambi gli operandi valgono zero; analogamente quando si ha "a & b", questa assume valore zero se "a" o "b" valgono zero, uno nel caso entrambi valgano uno.

Page 22: IL LINGUAGGIO C Per leleganza della sintassi e la compattezza dei costrutti, il C è una sfida permanente alle capacità intellettuali del programmatore.

Priorità degli operatori

Il C valuta le espressioni aritmetiche in una sequenza precisa,

generalmente la stessa adottata dall’algebra.o In primo luogo saranno valutate le operazioni di divisione,

moltiplicazione e resto che hanno stesso livello di priorità. Se ce ne sono più di una di seguito all’altra, la valutazione procederà da sinistra a destra.

o In seguito saranno valutate le somme e le sottrazioni analogamente al caso precedente.

Attenzione alle parentesi!

x = (a + b + c)/2 è diverso da x = a + b + c /2

anche nel linguaggio C

Page 23: IL LINGUAGGIO C Per leleganza della sintassi e la compattezza dei costrutti, il C è una sfida permanente alle capacità intellettuali del programmatore.

Priorità degli operatoriEsempio 1

Dato y = a * x * x + b * x + c e supponendo che a = 2, b = 3, c = 7 e x = 5, come sarà

valutato ilprecedente polinomio?

Passo 1: y = 2 * 5 * 5 + 3 * 5 + 7 (la moltiplicazione più a sinistra)

Passo 2: y = 10 * 5 + 3 * 5 + 7 (la moltiplicazione più a sinistra)

Passo 3: y = 50 + 3 * 5 + 7 (prima la moltiplicazione dell’addizione)

Passo 4: y = 50 + 15 + 7 (l’addizione più a sinistra)Passo 5: y = 65 + 7 (l’ultima addizione)Passo 6: y = 72 (l’ultima operazione posiziona 72 in y)

Page 24: IL LINGUAGGIO C Per leleganza della sintassi e la compattezza dei costrutti, il C è una sfida permanente alle capacità intellettuali del programmatore.

Priorità degli operatoriEsempio 2

Dato il polinomio z = p * r % q + w / x - ygli operatori saranno valutati nel seguente ordine.

La moltiplicazione, il resto e la divisione saranno valutati per primi

in ordine da sinistra a destra, poiché hanno una priorità maggiore

dell’addizione e della sottrazione. In seguito saranno valutate la

somma e la sottrazione anche queste da sinistra a destra.

Page 25: IL LINGUAGGIO C Per leleganza della sintassi e la compattezza dei costrutti, il C è una sfida permanente alle capacità intellettuali del programmatore.

ATTENZIONE

Non confondere l’operatore di uguaglianza == con quello di assegnamento =

Ciò che rende questi scambi così dannosi è che essi, solitamente,non provocano degli errori di sintassi e quindi non vengonosegnalati dal compilatore.

Se vogliamo verificare che la variabile x assuma il valore 0 dovremoscrivere x == 0. Nel caso in cui vogliamo assegnare il valore 0 asuddetta variabile dovrò scrivere x = 0.

Page 26: IL LINGUAGGIO C Per leleganza della sintassi e la compattezza dei costrutti, il C è una sfida permanente alle capacità intellettuali del programmatore.

Operazioni di input – outputprintf

Per fare questo tipo di operazioni dobbiamo includere il file<stdio.h> che mette a disposizione alcune funzioni predefiniteper eseguire la lettura da un dispositivo di input (es. tastiera) oscrittura su un dispositivo di output (es. video).

L'istruzione per stampare a video più usata è la printf, che ha il controllo su ciò che viene stampato, nel senso che permette di decidere cosa stampare ed in quale forma. Si possono stampare:• caratteri ordinari (questi vengono copiati nell'output) • specificazioni di conversione (contraddistinte dal carattere

percentuale "%" e da un carattere che specifica il formato con il quale stampare le variabili presenti nella lista di argomenti)

Page 27: IL LINGUAGGIO C Per leleganza della sintassi e la compattezza dei costrutti, il C è una sfida permanente alle capacità intellettuali del programmatore.

Operazioni di input - output

La tabella seguente mostra i possibili formati che possono essere

usati per formattare le variabili; tali considerazioni si applicano

anche al comando scanf

Page 28: IL LINGUAGGIO C Per leleganza della sintassi e la compattezza dei costrutti, il C è una sfida permanente alle capacità intellettuali del programmatore.

Operazioni di input - output

E’ possibile inserire, tra il simbolo % e l'identificativo del formato,

una delle seguenti voci: • Segno meno (-), esegue la giustificazione a sinistra• Un numero intero, specifica l'ampiezza del campo• m.d, dove m è l'ampiezza del campo e d è la precisione del

numero; usato generalmente per le stringhe o per un numero di tipo reale

ESEMPIO: int x = 10;printf("Il numero è %d", x);// l'output a video è "Il numero è 10"

print("%-.2.3f \n", 24.392734);// l'output a video è 24.393

Page 29: IL LINGUAGGIO C Per leleganza della sintassi e la compattezza dei costrutti, il C è una sfida permanente alle capacità intellettuali del programmatore.

Operazioni di input - output

Le sequenze di escape servono per rappresentare quei caratteri

"speciali" presenti nella codifica ASCII e che non stampano nulla a

video, ma permetto di introdurre ad esempio eventuali spaziature.

Si inseriscono prima di chiudere le virgolette:

int x = 10;printf("Il numero è %d\n", x);// l'output a video è "Il numero è 10“ e il cursore torna a capo

Page 30: IL LINGUAGGIO C Per leleganza della sintassi e la compattezza dei costrutti, il C è una sfida permanente alle capacità intellettuali del programmatore.

Operazioni di input – outputscanf

La funzione scanf serve per leggere dallo stdin (generalmente latastiera) una sequenza di caratteri (lettere o cifre) cheverranno memorizzate all'interno di opportune variabili. A differenza della printf, però la variabile deve essere preceduta dal simbolo &, perché in realtà tra gli argomenti non dobbiamo passare il nome della variabile, ma il suo indirizzo, cosa che può essere fatta tranquillamente utilizzando un puntatore. E’ possibile usare gli specificatori di conversione anche per lascanf, che quindi si comporta in modo molto simile a printf.

Page 31: IL LINGUAGGIO C Per leleganza della sintassi e la compattezza dei costrutti, il C è una sfida permanente alle capacità intellettuali del programmatore.

Operazioni di input – output

ESEMPIO:

#include <stdio.h>

int main(){   int i;   scanf("%d \n", & i);   printf("%d \n", i);}

Questo semplice programma sopra esposto serve solamente per leggere un numero da tastiera e ristamparlo a video.

Page 32: IL LINGUAGGIO C Per leleganza della sintassi e la compattezza dei costrutti, il C è una sfida permanente alle capacità intellettuali del programmatore.

Operazioni di input – output

Una piccola particolarità limitatamente all'uso delle stringhe e

degli array con la funzione scanf, è la seguente:

In questo caso è possibile omettere il simbolo & che richiamal'indirizzo del puntatore, ed usare, invece, il nome della

variabile, perché il nome di un array corrisponde all'indirizzo di partenzadell'array stesso.

char stringa[100];scanf("%s", stringa);

Page 33: IL LINGUAGGIO C Per leleganza della sintassi e la compattezza dei costrutti, il C è una sfida permanente alle capacità intellettuali del programmatore.

Esempio: Somma fra due numeri

/* Programma di addizione */

#include <stdio.h>

int main( ){

int = A;int = B;int = somma;

printf(“Inserisci il primo numero\n”);scanf(“%d”, &A);

printf(“Inserisci il secondo numero\n”);scanf(“%d”, &B);

somma = A + B;

printf(“La somma è %d\n”, somma);return 0;

}

Page 34: IL LINGUAGGIO C Per leleganza della sintassi e la compattezza dei costrutti, il C è una sfida permanente alle capacità intellettuali del programmatore.

Nozioni sulla memoria

Ammettiamo che si voglia fare la somma fra A = 3 e B = 2 (numeri che immettiamo da tastiera), ottenendo banalmente somma = 5. Il computer sistemerà i precedenti valori in apposite locazioni dimemoria, distruggendo il dato che c’era scritto prima, identificaterispettivamente dal nome A, B e somma.

Da osservare che queste locazioni non saranno necessariamente adiacenti.

N.B. Mentre l’operazione di scrittura di un dato in memoria è distruttiva, non lo è quella di lettura.

Page 35: IL LINGUAGGIO C Per leleganza della sintassi e la compattezza dei costrutti, il C è una sfida permanente alle capacità intellettuali del programmatore.

Le funzioni

Le funzioni sono uno degli strumenti più potenti del C infattipermettono un notevole risparmio e riuso del codice, con ovvii vantaggi del programmatore. Le funzioni esistono più o meno in tutti i linguaggi e vengono chiamate anche procedure o subroutine. I programmi C sono scritti tipicamente combinando le nuove

funzioniscritte dal programmatore con quelle “preconfezionate” disponibilinelle librerie. Il C assume che ogni funzione ritorni un valore, questoaccade utilizzando l'istruzione return seguita, eventualmente, da unvalore. Le funzioni sono invocate da una chiamata che specifica ilnome della funzione e fornisce delle informazioni (gli argomenti) dicui la funzione chiamata ha bisogno per completare le attività percui è stata progettata. Un capo (la funzione chiamante) chiede ad unoperaio (la funzione chiamata) di eseguire un compito e tornareindietro a riferire. Esempio: il main (capo) chiede alla funzione printf (operaio) di visualizzare delle informazioni, poi restituirà il controllo.

Page 36: IL LINGUAGGIO C Per leleganza della sintassi e la compattezza dei costrutti, il C è una sfida permanente alle capacità intellettuali del programmatore.

Le funzioni della libreria matematica

Funzione Descrizione Esempiosqrt(x) radice quadrata di x sqrt(900) è 30exp(x) funzione esponenziale e exp(1,0) è

2,718282log(x) logaritmo naturale di x log(2,718282) è 1,0log10(x) logaritmo base 10 di x log10(1,0) è 0fabs(x) valore assoluto di x fabs(-5) è 5ceil(x) arrotonda x all’intero più ceil(9,2) è 10

piccolo non < di xfloor(x) arrotonda x all’intero più floor(9,2) è 9

grande non > di xpow(x,y) x elevato alla potenza di y pow(2,7) è 128fmod(x,y) resto di x/y in virgola mobile fmod(13,6,2,3) è 1,9sin(x) seno trigonometrico di x sin(0,0) è 0,0cos(x) coseno trigonometrico di x cos(0,0) è 1,0

Page 37: IL LINGUAGGIO C Per leleganza della sintassi e la compattezza dei costrutti, il C è una sfida permanente alle capacità intellettuali del programmatore.

Le definizioni di funzioneESEMPIO: programma che utilizza la funzione square per calcolaree visualizzare i quadrati degli interi compresi fra 1 e 10

#include <stdio.h>int square(int y); /*prototipo della funzione*/int main( ){ int x; /*contatore */ for(x = 1; x <=10; x++) { /* itera 10 volte, calcola e visualizza

il quadrato di x ad ogni ciclo*/ printf(“% d ”,square(x)); /* chiamata di funzione */ } return 0;}/* funzione square*/int square(int y) /* il parametro y è una copia di x*/{ return y * y; /*restituisce il quadrato di y come intero*/}

Page 38: IL LINGUAGGIO C Per leleganza della sintassi e la compattezza dei costrutti, il C è una sfida permanente alle capacità intellettuali del programmatore.

Formato delle funzioni

Il formato di una definizione di funzione è:

tipo_del_valore_di_ritorno nome_funzione(lista_parametri){

dichiarazioni (intestazione della funzione)istruzioni

}

Il nome della funzione è un qualsiasi identificatore valido. Il tipodel valore di ritorno è quello del risultato restituito al

chiamante. Se questo è void indica che la funzione non restituirà nessunvalore. Se non specificato sarà considerato int dal compilatore. La lista dei parametri è un elenco, separato da virgole, chespecifica i parametri ricevuti dalla funzione alla chiamata. Il tipodei parametri deve essere specificato salvo che non siano di

tipoint.


Recommended