Avolio Maria V ittoria [email protected]

30
Avolio Maria Vittoria [email protected]

description

Avolio Maria V ittoria [email protected]. IL PRIMO PROGRAMMA IN C. #include < stdio.h > #include < stdlib.h > int main ( int argc , char * argv []) { system ("PAUSE"); return 0; }. ATTENZIONE: OGNI PROGRAMMA C DEVE CONTENERE UNA E UNA SOLA FUNZIONE int main () - PowerPoint PPT Presentation

Transcript of Avolio Maria V ittoria [email protected]

Page 1: Avolio  Maria  V ittoria avoliomv@unical.it

Avolio Maria Vittoria

[email protected]

Page 2: Avolio  Maria  V ittoria avoliomv@unical.it

IL PRIMO PROGRAMMA IN C

#include <stdio.h>#include <stdlib.h>

int main(int argc, char *argv[]){ system("PAUSE"); return 0;}

Page 3: Avolio  Maria  V ittoria avoliomv@unical.it

ATTENZIONE:OGNI PROGRAMMA C DEVE CONTENERE UNA E UNA SOLA FUNZIONE

int main()

Rappresenta il programma principale, ed è il punto di inizio dell'esecuzione del programma.

· La parentesi graffa aperta { indica l'inizio di un blocco di istruzioni.

· La parentesi graffa chiusa } indica la fine di un blocco di istruzioni

· Per ogni parentesi graffa aperta { deve essercene una chiusa }

· I commenti possono essere posti ovunque, l'inizio del commento è dato dalla

coppia /*, la fine del commento è indicata da */ (oppure //)

· Non si puo' inserire un commento in un altro (vietato l'annidamento dei

commenti.

In C ci vuole un ; dopo ogni istruzione

Page 4: Avolio  Maria  V ittoria avoliomv@unical.it

Istruzioni input/output (I/O)

funzione printf:printf(" Messaggio….", valore1,

valore2,…..);

La funzione printf formatta e scrive una serie di caratteri e valori sul dispositivo

standard di output (stdout), e restituisce al programma chiamante il

numero di caratteri effettivamente scritti (oppure un numero negativo in caso di

errore).Quando si usa la funzione printf bisogna prima includere il file header <stdio.h>

Page 5: Avolio  Maria  V ittoria avoliomv@unical.it

Istruzioni input/output (I/O)Argomenti della funzione printf

La funzione printf riceve dal programma chiamante uno o più argomenti. Solo il primo è obbligatorio e deve essere una stringa, che si chiama stringa di controllo.

Scrittura della stringa di controllo sullo schermo

Quando printf è chiamata con un solo argomento, la striga di controllo viene trasferita sullo schermo, carattere per carattere (compresi gli spazi bianchi), salvo quando sono incontrati i seguenti caratteri particolari:

"(termina

la stringa di controllo)

%

(introduce uno descrittore di formato - da non usare in

questo caso)

\(introduce

una sequenza di escape)

Page 6: Avolio  Maria  V ittoria avoliomv@unical.it

Istruzioni input/output (I/O)

Il carattere \ (backslash) non viene trasferito sullo schermo, ma utilizzato in combinazione con i caratteri successivi (un solo carattere se si tratta di una lettera, oppure una sequenza di cifre numeriche); l'insieme viene detto: escape sequence, e viene interpretato come un unico carattere.Le sequenze di escape sono usate tipicamente per specificare caratteri speciali che non hanno il loro equivalente stampabile (come newline, carriage return, tabulazioni, suoni ecc...), oppure caratteri, che da soli, hanno una funzione speciale, come le virgolette o lo stesso backslash

Principali sequenze di escape

Tipo di opzione Descrizione\n Ritorno a capo\t Tabulazione

orizzontale\b Tabulazione

verticale\a Torna indietro di

uno spazio\f Salto pagina

Page 7: Avolio  Maria  V ittoria avoliomv@unical.it

Istruzioni input/output (I/O)Eventuali altri argomenti successivi alla stringa di controllo , nella chiamata a printf, rappresentano i dati da formattare e scrivere, e possono essere costituiti da costanti, variabili, espressioni, o altre funzioni (in questo caso in realtà l'argomento è il valore di ritorno della funzione, la quale viene seguita primadella printf).

Descrittore di formato %type

Principali descrittori di formato

type può assumere uno dei seguenti valori:%f, % e valori floating, notazione normale o esponenziale% g come f o e (sceglie il più comodo)% d, % i valori interi relativi, base decimale% c carattere% s stringa di caratteri………..

Page 8: Avolio  Maria  V ittoria avoliomv@unical.it

Istruzioni input/output (I/O)

funzione printf:printf(" Messaggio….", valore1,

valore2,…..);

Esempio:printf("Colore %s, numero1 %d, numero2 %d, float %f.\n", "rosso", 123456, 89, 3.14);

stamperà la seguente linea (incluso il carattere di nuova linea, \n):

Colore rosso, numero1 123456, numero2 89, float 3.14.

Page 9: Avolio  Maria  V ittoria avoliomv@unical.it

Istruzioni input/output (I/O)

funzione printf:printf(" Messaggio….", valore1,

valore2,…..);

printf("Ci sono %d iscritti a questo corso!\n Temevo fossero solo %d!",3215+1, 2);

scrive su video la frase: Ci sono 3216 iscritti a questo corso! Temevo fossero solo 2!

Page 10: Avolio  Maria  V ittoria avoliomv@unical.it

LE VARIABILI

• Una variabile è una porzione della memoria che contiene dati (di ingresso o di uscita) codificati in un qualche modo.

• Nei linguaggi evoluti, sono identificate da un nome, nei linguaggi macchina da un indirizzo.

• Posseggono le seguenti caratteristiche:

• Tipo: specifica il tipo di codifica usato• Dimensione: indica la quantità di memoria occupata

• Modo di allocazione: indica la strategia usata per riservare lo spazio in memoria

• Scope (visibilità): indica quali pezzi di un programma possono vedere (e usare) una variabile.

• Valore iniziale: il valore della variabile all’inizio dell’esecuzione del programma.

Page 11: Avolio  Maria  V ittoria avoliomv@unical.it

Variabili

I formati possibili sono:

• Interi con o senza segno (int)

• Reali cioè numeri rappresentati in virgola

mobile (float, double)

• Stringhe di caratteri alfanumerici (char[])

• Variabili logiche (bool)

• Tipi composti (array)

• Rappresentazioni definite dall’utente…

Page 12: Avolio  Maria  V ittoria avoliomv@unical.it

Cos’è una variabile

• Le variabili, in un linguaggio di programmazione, sono dei contenitori.

• Possono essere riempiti con un valore che poi può essere riletto oppure sostituito.

Page 13: Avolio  Maria  V ittoria avoliomv@unical.it

Le variabili

• Formalmente ogni variabile è una porzione della memoria del computer in cui è possibile memorizzare un valore da utilizzare all’interno di un programma.

• Tutte le variabili devono avere un nome e un tipo.

Page 14: Avolio  Maria  V ittoria avoliomv@unical.it

Variabili

• Tutte le variabili devono essere dichiarate prima di essere usate. La dichiarazione delle variabili è così fatta:

Tipo ElencoVariabili;

Esempi:

int i;float aus, x, y;double num1,num2;

Il programmatore deve essere sicuro che tutte le parti di un programma che utilizzano una

data variabile siano d’accordo sul suo tipo; in caso contrario i

risultati saranno imprevedibili.

Page 15: Avolio  Maria  V ittoria avoliomv@unical.it

TIPI di variabili più usati

Tipi di dichiarazione Rappresentazione N. di

byte

char Carattere 1 (8 bit)

int Numero intero 2 (16 bit)

short Numero intero “corto” da –32768 e +32767

2 (16 bit)

long Numero intero “lungo” 4 (32 bit)

float Numero reale 4 (32 bit)

double Numero reale “lungo” 8 (64 bit)

Page 16: Avolio  Maria  V ittoria avoliomv@unical.it

Le variabili

NOTA:Le variabili dichiarate double occupano più spazio di quelle dichiarate float. Solo quando si utilizzano un gran numero di variabili ha senso preoccuparsi di

risparmiare sullo spaziovalutando al meglio il tipo di variabile sufficiente allo

scopo.

Page 17: Avolio  Maria  V ittoria avoliomv@unical.it

TIPI di variabiliIl tipo char può contenere qualsiasi carattere definito secondo lo standard ASCII, quindi qualsiasi lettera (maiuscola o minuscola), cifra (da 0 a 9) e simbolo previsto dalla codifica.

È molto importante ricordare che un char può contenere uno ed un solo carattere.

Per memorizzare una successione di caratteri si utilizza un array di char.

L’array è un contenitore di variabili dello stesso tipo e ne approfondiremo la conoscenza più avanti.

Per dichiarare una variabile char, ad esempio inizializzandola con la lettera ‘r‘, basta scrivere:

es. char a;a = 'r';

Page 18: Avolio  Maria  V ittoria avoliomv@unical.it

TIPI di variabili

 I numeri interi, rappresentati da int, sono quelli “senza la virgola” o parti frazionate. 

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

I tipi float e double sono i cosiddetti numeri in virgola mobile, che rappresentano l’insieme dei numeri reali: con essi possiamo rappresentare numeri molto piccoli o numeri molto grandi, positivi e negativi e naturalmente con e senza decimali.

ESEMPIO con i doubledouble x = 7.0;double y = 2.0;double z;z = x / y;// z vale 3.5

Page 19: Avolio  Maria  V ittoria avoliomv@unical.it

Le variabiliPrimo programma con variabili, somma di due numeri

int main{/* dichiarazione di una variabile di tipo intero */int risult;/* assegno alla variabile il risultato dell'operazione */risult = 134+987;/* stampo il contenuto della variabile risult */printf(«la somma è %d», risult);

}

ATTENZIONE!Quando si vuole stampare il

contenuto di unavariabile il suo nome non va

messo travirgolette ma solo tra

parentesi.

I nomi delle variabili si scelgono solitamentein modo che sia facile

intuire il lorocontenuto.

Page 20: Avolio  Maria  V ittoria avoliomv@unical.it

Le variabiliProgramma evoluto della somma di due numeri

int main{

int risult; int num1, num2; num1=134, num2=987; risult = num1+num2;

/* stampo il contenuto della variabile risult */

printf("la somma di num1= %d e di num2 =%d è ", num1, num2, risult);}

Page 21: Avolio  Maria  V ittoria avoliomv@unical.it

GLI operatori

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

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

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

Page 22: Avolio  Maria  V ittoria avoliomv@unical.it

GLI operatori AritmeticiOperazioni con gli int

Simbolo Esempio

Addizione + 4 + 27 = 31Sottrazione - 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)

Operazioni con i double

Simbolo Esempio

Addizione + 2.5 + 14.3 = 16.8

Sottrazione - 43.8 – 12.7 = 31.1

Moltiplicazione

* 7.5 * 3.0 = 22.5

Divisione / 5.0 / 2.0 = 2.5

Un operatore binario fondamentale è l’operatore di assegnazione =.

a=2 indica che alla variabile a è assegnato il valore 2

k=k+1 vuol dire assegna a k il suo valore incrementato di 1

Page 23: Avolio  Maria  V ittoria avoliomv@unical.it

Operatori di confronto

Gli operatori di confronto permettono di verificare determinate condizioni, come ad esempio l’uguaglianza, la disuguaglianza, o semplicemente se un elemento è maggiore di un’altro; la seguente tabella mostra nel dettaglio gli operatori di confronto e la loro funzione:

Simbolo Significato Utilizzo== uguale a a == b!= diverso da a != b< minore a < b> maggiore a > b<= minore o

ugualea <= b

>= maggiore o uguale

a >= b

Page 24: Avolio  Maria  V ittoria avoliomv@unical.it

A=B DIVERSO A==B

A=B IMPLICA A=AL VALORE DI B

A==B MI DOMANDO SE A È UGUALE A B

Page 25: Avolio  Maria  V ittoria avoliomv@unical.it

Simbolo Significato Utilizzo

&& AND logico

a && b

|| OR logico a || b

Operatori logici

Anche gli operatori logici vengono utilizzati con le istruzioni condizionali

ed iterative, e permettono di fare l’AND e l’OR tra due operandi;

nella tabella mostriamo i simboli usati e il loro utilizzo:

Page 26: Avolio  Maria  V ittoria avoliomv@unical.it

La funzione scanf() serve per leggere dallo stdin (generalmente la tastiera) una sequenza di caratteri (lettere o cifre) che verranno memorizzate all’interno di opportune variabili. Scanf è, quindi, definita come segue:

int scanf(char *formato, lista argomenti ...)

A differenza di printf(), però la variabile deve essere messa preceduta dal simbolo &, perché in realtà tra gli argomenti non dobbiamo passare il nome della variabile, ma il suo indirizzo.

PRIMO ESEMPIO CON SCANF #include <stdio.h>int main() { int i; scanf("%d ", &i); printf("%d ", i);}

Page 27: Avolio  Maria  V ittoria avoliomv@unical.it

Lettura di un numero#include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]){ int numero; printf("Inserisci un numero intero.\n"); scanf("%d", &numero);

printf("Il numero inserito e' %d",numero); printf("\n");

system("PAUSE"); return 0;}

Page 28: Avolio  Maria  V ittoria avoliomv@unical.it

Conversione di lire in euro//convertitore lire/euro#include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]){ int lire; float euro; float FattConvLireEuro = 1936.27;

Printf("Programma di converione Lire->Euro.\n" ); Printf(" Inserisci il valore in Lire da convertire in Euro: \n");

scanf("%d ", &lire); euro = lire / FattConvLireEuro; printf("Il valore corrispondente in Euro e': %f" , euro ); printf("\n");

system("PAUSE"); return 0;}

Page 29: Avolio  Maria  V ittoria avoliomv@unical.it

Conversione di unità di misura#include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]){ double tc, tf, offset, conv_FC, conv_CF; offset=32.; conv_FC=5./9.; printf(Inserisci il valore in gradi Fahrenheit \n); scanf("%f, & tf); tc=(tf-offset)*conv_FC; printf("Valore in gradi Celsius %f" ,tc ); printf(" \n" ); conv_CF=9./5.; printf("Inserisci il valore in gradi celsius ); printf(" \n" ); scanf("%f, & tc); tf=tc*conv+offset; printf( "Valore in gradi fahrenheit %f ", tf); printf(" \n" ); system("PAUSE"); return 0;}

Il punto di congelamento dell'acqua è di 32 gradi Fahrenheit, mentre il punto di ebollizione si trova a 212 gradi

Fahrenheit

Celsius

congelamento

32 0

ebollizione 212 100

 Un grado Fahrenheit è 5/9 di un  grado Celsius.

Page 30: Avolio  Maria  V ittoria avoliomv@unical.it

ATTENZIONE:

Le costanti 32., 9. e 5. sono tutte seguite dal . ad indicare che i relativi numeri sono usati nella

rappresentazione in virgola mobile. Una costante razionale la cui parte decimale sia nulla va comunque scritta con il punto decimale, altrimenti sarà interpretata come intera