LINGUAGGIO DI PROGRAMMAZIONE C

Slides:



Advertisements
Presentazioni simili
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F1 Primi programmi.
Advertisements

Introduzione al linguaggio C++
INFORMATICA Altre Istruzioni di I/O
INFORMATICA Strutture condizionali
Nel C non esiste un dato primario di tipo stringa; queste sono rappresentate con un array monodimensionale di caratteri (tipo char). Così per definire.
Introduzione al linguaggio C
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F2 Selezione.
Iterazione A. Ferrari.
Stringhe di caratteri In linguaggio C.
Introduzione alla programmazione A. Ferrari. Il linguaggio C Nel 1972 Dennis Ritchie nei Bell Laboratories progettò il linguaggio C Il linguaggio possiede.
Selezione - approfondimento
PHP.
Algoritmi e Programmazione
Introduzione al linguaggio C
INFORMATICA Strutture iterative
INFORMATICA I file.
Programmazione Procedurale in Linguaggio C++
Indirizzi delle variabili A ogni variabile sono associati tre concetti fondamentali: il valore memorizzato; il tipo dati di appartenenza; lindirizzo. Il.
FUNZIONI DI BIBLIOTECA
Caratteri e stringhe di caratteri
Ingresso interattivo (scanf(); %lf)
Argomenti dalla linea dei comandi Gli argomenti possono essere passati a qualsiasi funzione di un programma, compresa la main(), direttamente dalla linea.
Algoritmi Politecnico di Milano
Introduzione alla programmazione
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
Laboratorio di Linguaggi lezione XI: I/O Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Variabili e tipi primitivi Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Lezione 13 (21 novembre 2008) Programmazione in Java: stringhe e array.
Lezione 4: Costrutti Condizionali Prof. Raffaele Montella.
Fondamenti di Informatica I a.a Il linguaggio C Il controllo di flusso La selezione condizionale Listruzione switch I cicli Le istruzioni break,
Istruzioni di selezione in Java Programmazione Corso di laurea in Informatica.
INFORMATICA I file. © Piero Demichelis 2 File Per rendere più uniforme possibile il comportamento dei programmi in relazione alla grande varietà dei dispositivi.
INFORMATICA Altre Istruzioni di I/O. © Piero Demichelis 2 Funzioni di I/O Per la lettura e la scrittura da videoterminale il C prevede numerose istruzioni.
A.A. 2010/2011Ambienti di Programmazione per il Software di Base1 (Es. – 6) Ambienti di Programmazione per il Software di Base Le Stringhe in C Input.
Dichiarazioni e tipi predefiniti nel linguaggio C
I File.
Il Linguaggio C.
Le funzioni.
Espressioni condizionali
Java base I: Sintassi e tipi di dati
Programmazione in Java
4 Tipi di dati & variabili
CODIFICA Da flow-chart a C++.
In molti casi è utile assegnare a degli identificatori dei valori che restino costanti durante tutto il programma e che non possano essere cambiati nemmeno.
Tipi di dati elementari
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e stringhe Marco D. Santambrogio – Ver. aggiornata al 9 Agosto 2013.
BIOINFO3 - Lezione 201 Come in ogni corso di introduzione ad un linguaggio di programmazione, proviamo a scrivere lormai celebre primo programma di prova.
BIOINFO3 - Lezione 211 INPUT La lettura di un input dallo standard input (tastiera) si effettua utilizzando lespressione. Quando il programma incontra.
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
2000 Prentice Hall, Inc. All rights reserved. Capitolo 2 (Deitel) Introduzione alla programmazione in C Indice degli argomenti Introduzione 2.2 -
Lezione 3 Struttura lessicale del linguaggio
Introduzione a Javascript
Variabili Numeriche –Interi (byte, short, int, long): complemento a 2 –A virgola mobile (float, double): IEEE 745 Alfanumeriche –Carattere (char): Unicode.
Parte 3 Lo stato: variabili, espressioni ed assegnazioni
Corso di Algoritmi e Strutture Dati APPUNTI SUL LINGUAGGIO C
Strutture di controllo Esercizi!. Utilizzare i metodi: I modi per poter richiamare un metodo, di una classe (ad esempio SavitchIn) sono due. 1) E’ sempre.
Algoritmi e basi del C Struttura di un programma
1 Fabio Scotti – Università degli Studi di Milano Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( )
Algoritmi e basi del C Struttura di un programma
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 26 Marzo 2014.
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
Operatori di incremento e decremento
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (III)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 14 Marzo 204.
Stringhe In linguaggio C. Stringhe  Un insieme di caratteri in sequenza forma una stringa.  Alcuni linguaggi definiscono per le stringhe uno specifico.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 28 Ottobre 2014.
Il C `e un linguaggio di programmazione di uso generale, originariamente sviluppato per la scrittura del sistema operativo Unix, ed oggi disponibile su.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 24 Agosto 2015.
Transcript della presentazione:

LINGUAGGIO DI PROGRAMMAZIONE C

Formato di un programma #include <stdio.h> main() { printf (“ciao”); printf (“mondo!”); } L’esecuzione inizia da main() Il corpo del programma è racchiuso da parentesi graffe

Formato di un programma #include <stdio.h> main() { printf (“ciao”); printf (“mondo!”); } Il programma è composto da una serie di istruzioni printf che vengono eseguite in sequenza.

Formato di un programma #include <stdio.h> main() { printf (“ciao”); printf (“mondo!”); } Ogni istruzione deve terminare con un punto e virgola

Istruzione printf L’istruzione printf permette la stampa su video di ciò che è racchiuso tra parentesi tonde e doppi apici. printf (“tre”); Visualizza sullo schermo tre

#include <stdio.h> E’ un’istruzione che dice al calcolatore che nel programma si useranno le funzioni contenute nel file stdio.h (standard input-output) Sono le funzioni che permettono di: inviare messaggi sul video di leggere valori dalla tastiera

Linguaggio case sensitive Il C distingue tra lettere maiuscole e minuscole Le istruzioni sono tutte scritte in minuscolo

Sequenze di escape Sono sequenze di caratteri con funzioni speciali. Quelle più usate: \n va a linea nuova \t salta di una tabulazione \b ritorna di un carattere indietro \\ stampa il carattere \ \” stampa il carattere “

Sequenza \n printf (“ciao”); printf (“mondo”) visualizza ciaomondo (anche lo spazio è un carattere come gli altri) printf (“ciao\n”); Printf(“mondo”); Visualizza: ciao mondo

Sequenza \n La sequenza \n fa andare il cursore a riga nuova Per lasciare una linea vuota si deve inserire un ulteriore \n Se si desidera lasciare una riga prima della visualizzazione si fa precedere da \n Printf (“\nAREA RETTANGOLO\n\n”):

Riga di commento Inizia con /* e finisce con */ /* Calcolo area rettangolo */ Inizia con /* e finisce con */ Può estendersi su più linee Può apparire in qualsiasi parte del programma E’ possibile farla precedere da // ma in questo caso deve terminare a fine linea

Le Variabili /* calcolo area rettangolo*/ #include <stdio.h> main() { int base; int altezza; int area; base = 3; altezza = 7; area = base*altezza; printf(“%d”, area); }

Le Variabili Il formato della dichiarazione di una variabile è: tipo nome-variabile; Il tipo di una variabile ne definisce la sua dimensione e l’insieme di operazioni che si possono effettuare su di essa Il nome di una variabile la identifica

Le Variabili char Tipo Uso Dimensione in bit caratteri di testo ASCII 8 short int numeri interi piccoli da -32768 a + 32767 16 unsigned short int numeri interi positivi piccoli da 0 a 65535 int numeri interi da -2147483648 a 2147483647 32 unsigned int numeri positivi da 0 a 4294967295 float Numeri a virgola mobile (precisione singola) double Numeri a virgola mobile (precisione doppia, notazione scientifica) 64

Le Variabili E’ possibile fare con le variabili ogni tipo di operazione matematica elementare: Addizione (+) Sottrazione (-) Moltiplicazione (*) Divisione (/) Resto della divisione (%)

Le Variabili Le variabili possono essere dichiarate: Sia all’inizio del programma (dopo main() e la parentesi graffa) Sia prima di main()

Le Variabili Le dichiarazioni delle variabili dello stesso tipo possono essere effettuate in sequenza separate da una virgola int base, altezza, area;

Le Variabili I nomi delle variabili devono: Iniziare con una lettera o con il carattere _ Possono contenere lettere, cifre e . Le lettere maiuscole sono considerate diverse dalle corrispondenti minuscole Non può essere usata una parola chiave del linguaggio né può essere uguale a un nome di funzione

Le Variabili Alla dichiarazione di una variabile corrisponde anche la sua definizione la quale fa si che le venga riservato uno spazio in memoria centrale.

Istruzione di Assegnamento L’istruzione: base = 3; Assegna alla variabile base il valore 3, inserisce, cioè, il valore 3 nello spazio di memoria riservato alla variabile

Simboli %d Tra i doppi apici il simbolo % stabilisce che il carattere che lo segue definisce il formato di stampa della variabile. d (decimal) indica che si desidera la visualizzazione di un intero nel sistema decimale

Visualizzazione del valore delle Variabili E’ possibile visualizzare il valore delle variabili nel seguente modo: printf(“Base: %d\n”, base); printf(“Altezza: %d\n”, altezza); printf(“Area: %d”, area); Base: 3 Altezza: 7 Area: 21

Le Costanti Quando un valore è ripetuto in modo ricorrente è opportuno rappresentarlo con un nome simbolico La definizione delle costanti, posta all’inizio del programma, avviene attraverso la macro seguente: #define NOME-COSTANTE valore-costante #define BASE 3

Le Costanti /* Calcolo area rettangolo */ #include <stdio.h> #define BASE 3 #define ALTEZZA 7 main() { int area; area = BASE * ALTEZZA; printf (“Base: %d\n”, BASE); printf(“Altezza: %d\n”, ALTEZZA); printf(“Area: %d\n”, area); }

Istruzione scanf Scanf (“%d”, &base) L’esecuzione di questa istruzione fa si che il sistema attenda in input un dato da parte dell’utente. Il simbolo & deve precedere il nome della variabile &base indica l’indirizzo di memoria in cui si trova il valore della variabile base

Istruzione scanf /* Calcolo area rettangolo*/ #include <stdio.h> int base, altezza, area; main () { printf (“Valore base: “); scanf (“%d”, &base); printf (“Valore altezza: “); scanf (”%d”, &altezza); area = base* altezza; printf (“Base: %d\n”, base); printf (“Altezza: %d\n”, altezza); printf (“Area: %d”, area); }

Printf (“%d %d %d”, base, altezza, area); 10 13 130 Printf (“%d\n %d\n %d\n”, base, altezza, area); 10 13 130 Printf (“%d\n %d\nArea: %d” base, altezza, area); Area: 130

printf (“%5d\n%5d\n%5d, base, altezza, area); 1 1 3 1 3 printf (“%-5d\n%-5d\n%5d, base, altezza, area); 1 1 3 1 3

Le variabili carattere Assumono valori alfanumerici che comprendono: Lettere minuscole Lettere maiuscole Cifre decimali Caratteri speciali (.,;:@+-*/%..........)

Le variabili carattere char x, y, z; La parola chiave char specifica che gli identificatori x, y e z si riferiscono a variabili di tipo carattere

Le variabili carattere x = ‘A’; y = ‘%’; z = ‘&’; Per assegnare un valore costante ad una variabile char lo si deve racchiudere tra apici

Le variabili carattere %c specifica il formato di stampa carattere. printf(“%c%c%c”, x, y, z); l’esecuzione dell’istruzione produce: A%& mentre l’istruzione: printf(“%c %c %c”, x, y, z); produce: A % &

Le variabili carattere Si possono stampare valori di tipi diversi all’interno della stessa printf. Se n e m sono variabili int si può essere scrivere: x = ‘a’; y = ‘b’; n = 100; m = 50; printf(“%c = %d %c = %d”, x, n, y, m); che restituisce: a = 100 b = 50

Le variabili carattere scanf(“%c”, &x); Con l’istruzione scanf si possono inserire i caratteri durante l’esecuzione

Le variabili carattere Esistono altre due funzioni, contenute sempre nella libreria stdio.h, che permettono di leggere e scrivere caratteri: getchar e putchar

Le variabili carattere x =getchar(); Con questa istruzione il programma si blocca in attesa di un carattere introdotto da tastiera. Per visualizzare il carattere abbiamo la funzione: x =putchar();

Le variabili carattere #include <stdio.h> main() { char x, y, z; printf(“digita tre caratteri: “); scanf(“%c%c%c”, &x, &y, &z); } x = getchar(); y = getchar(); z = getchar(); printf(“hai digitato: “); putchar(x); putchar(y); putchar(z);

Array e Stringhe Una variabile di tipo char permette di memorizzare un singolo carattere. Per memorizzare invece una sequenza di caratteri occorre utilizzare gli array o le stringhe.

Array e Stringhe L’array è un insieme di variabili tutte dello stesso tipo, cui si fa riferimento mediante un stesso nome. L’accesso ad un determinato elemento si realizza mediante un indice. int a(10); char b(20); Indicano rispettivamente una struttura formata da 10 elementi interi e una struttura formata da 20 elementi di tipo char

Array e Stringhe Assegna al secondo elemento dell’array il valore 71 0 1 2 3 4 Assegna al secondo elemento dell’array il valore 71 71

Array e Stringhe Assegna al terzo elemento il carattere r b[3] = ‘r’ 0 1 2 3 4 Assegna al terzo elemento il carattere r r

Array e stringhe Una stringa consiste in una sequenza di caratteri. char nome[10]; stringa di nove caratteri più carattere null char negozio[] = “Zara s.p.a.” Definisce una stringa di caratteri di nome negozio e il cui numero di elementi dipende dal numero di elementi presenti tra apici più uno, il carattere null (\0) che chiude la stringa

Array e stringhe La stringa è un array di char dove un insieme di caratteri è trattato come una singola unità Quando si parla di caratteri, infatti, può essere interessante manipolare l’intero insieme di caratteri appartenenti ad un array, in quanto costituiscono nel loro insieme un vocabolo o un’intera frase

Array e stringhe char d = ‘r’; char d[2] = ‘r’; char d[] = “r”; La prima assegna a d il carattere r, la seconda assegna al terzo elemento dell’array il carattere r , la terza assegna a d la sequenza di caratteri r e \0.

Array e stringhe Per visualizzare il contenuto di una stringa si utilizza %s: printf(“%s”, negozio); visualizza: Zara s.p.a

Array e stringhe Per inserire da tastiera si usa scanf: scanf(“%s”, negozio); Copia l’input in negozio senza usare &

Array e stringhe Per poter copiare il contenuto di una stringa in un’altra occorre utilizzare la funzione strcpy contenuta nella libreria <string.h> strcpy(nome1,nome2); Il contenuto della stringa nome2 viene copiato nella stringa nome1

Inizializzazione di Variabili E’ possibile assegnare ad una variabile un valore iniziale al momento della sua dichiarazione int a = 0, b = 50, c = 100;

Inizializzazione di Variabili Per gli array (se definiti prima di main): int voti[5] = {6, 7, 8, 10, 5,3}; Per le stringhe occorre porre il valore tra doppi apici: char frase[] = “esempio variabili”; oppure: Char frase[30] = {‘e’,’s’,’e’,’m’,’p’,’i’,’o’,’ ‘,’v’,’a’,’r’,’i’,’a’,’b’,’i’,’l’,’i’,’\0’};

Le Funzioni Una funzione è costituita da un insieme di istruzioni che realizzano un compito: a partire da uno o più valori presi in input, essa restituisce un determinato valore di output

Le Funzioni w = abs(j); valore assoluto L’insieme delle istruzioni che la compongono è contenuto nella libreria standard math.h Per poter utilizzare tale funzione occorre inserire prima di main: #include <math.h>;

Le Librerie standard stdio.h funzioni di input/output math.h funzioni matematiche string.h funzioni che operano su stringhe

L’istruzione IF Quando si desidera eseguire un’istruzione, al verificarsi di una condizione, si utilizza l’istruzione if. if (espressione) istruzione; Dove se espressione è vera viene eseguita istruzione;

L’istruzione IF if i < 100 printf(“minore di 100”); La valutazione dell’espressione i < 100 può restituire solo i valori vero o falso che in C corrispondono ai valori 1 e 0.

L’istruzione IF if(i>100) printf(“maggiore di 100”); L’esempio precedente è identico alla successiva espressione dove a assume valore 1 o 0 a seconda che l’espressione sia vera o falsa a = i>100; if(a!=0) printf(“maggiore di100”); a=i>100; if(a) printf(“maggiore di 100”); iiii

L’istruzione IF La sintassi completa dell’istruzione if è: If(espressione) istruzione1; {else istruzione2}; Dove istruzione1 viene eseguita se espressione risulta vera, altrimenti, se è falsa, viene eseguita istruzione2.

L’istruzione IF #include <stdio.h> main() { int i; printf(“dammi un intero: “); scanf(“%d”, &i); if(i>100) printf(“maggiore di 100\n”); else printf(“minore o uguale a 100”);

L’istruzione IF if (i<100) printf(“minore di 100”); printf(“prossima istruzione”); La seconda printf viene eseguita indipendentemente dalla valutazione di i<100.

L’istruzione IF Lo stesso avviene per la clausola else nelle istruzioni seguenti: if (i<100) printf(“minore di 100”); else printf(“maggiore o uguale a 100); printf(“istruzione successiva”);

L’istruzione IF #include <stdio.h> int i, mag_100, min_100; main() { mag_100 = 0; min_100 = 0; printf(“digitare un intero: “); scanf(“%d”,&i); if (i>100) { printf(“maggiore di 100\n”); mag_100 = 1; } else { printf(“minore o uguale a 100”); min_100 = 1;

If annidati Un if può comparire all’interno di un altro if if (i<100) if (i>0) printf(“minore di 100 e maggiore di 0”); else printf(“minore di 100 ma non maggiore di 0); printf(“maggiore o uguale a 100”);

If annidati if (i<100) { if (i>0) printf(“minore di 100 e maggiore di 0”); } else printf(“maggiore o uguale a 100”);

If annidati if (i<100) if (i>0) printf(“minore di 100 e maggiore di 0”); else printf(“minore di 100 ma non maggiore di 0); if (i==100) printf(“uguale a 100”); printf(“maggiore di 100”);

Istruzione for Quando si desidera ripetere un’operazione un determinato numero di volte si può riscrivere sequenzialmente l’istruzione corrispondente. somma = 0; somma = somma + 4;

Istruzione for Lo stesso risultato si può ottenere con un ciclo in cui l’istruzione si ripete: somma = 0; for(i=1; i<=3; i = i+1) somma = somma + 4;

Istruzione for somma = 0; for(i=1; i<=3; i = i+1) somma = somma + 4; Alla variabile somma viene assegnato il valore 0. L’istruzione for assegna il valore 1 alla variabile i (inizializzazione). Successivamente: 1. i<=3 allora vai al passo 2 altrimenti termina 2. somma = somma + 4 3. i = i+ 1, vai al passo 1

Istruzione for Il formato è il seguente: for(esp1; esp2; esp3) istruzione Il ciclo non viene eseguito neppure una volta se esp2 risulta falsa. Il ciclo viene eseguito fino a che esp2 non risulti essere falsa.

Istruzione for Se istruzione è costituita da un gruppo di istruzioni, questo deve essere racchiuso tra parentesi graffe: somma = 0; for(i=1; i<=3; i=i+1) { scanf(%d”, &numero); somma = somma + numero; }

Istruzione for #include <stdio.h> main() { int i, somma, numero; printf(“Somma 5 numeri \n“); somma = 0; for(i=0; i<=5; i=i+1) { printf(“inserire intero “); scanf(“%d”, &numero); somma = somma + numero; } printf(“Somma: %d\n”, somma);

Istruzione while Anche l’istruzione while permette la ripetizione di un’istruzione o di un gruppo di istruzioni: while (esp) istruzione Viene eseguita l’istruzione finchè esp risulta vera. Il ciclo termina non appena il valore di esp risulta falso.

Istruzione while i = 1; while (i<=4) { for (i=1;i<=4; i=i+1){ printf(“inserire intero: “); printf(“inserire intero: “); scanf(“%d”, &numero); scanf(“%d”, &numero); somma = somma + numero; somma = somma + numero; i = i + 1; } }

Istruzione while Con while non si ha la garanzia che l’istruzione o gruppo di istruzioni vengano eseguiti almeno una volta perché, se esp risulta subito falsa, si passa direttamente all’istruzione successiva al while. Con while non è sempre noto a priori il numero il numero di volte che occorre ripetere l’istruzione o gruppo di istruzioni

Istruzione do…….while L’istruzione do……while valuta la condizione alla fine del ciclo stesso: per questo il corpo del ciclo viene eseguito almeno una volta. do istruzione/i while (esp)

Istruzione do…….while #include <stdio.h> main() { int n; do printf(“inserire un intero compreso tra 10 e 20: “); scanf(“%d”, &n”); } while (n<10 || n>20); printf (“il numero inserito è: %d”, n); }

Incrementi e decrementi L’incremento unitario di una variabile si ottiene con l’istruzione : somma = somma + 1 In C è possibile ottenere lo stesso risultato con l’operatore ++ ++somma

Incrementi e decrementi Somma = somma – 1; Equivale a --somma;

Incrementi e decrementi c = ++a + b; La variabile a viene incrementata di un’unità e sommata alla variabile b; il risultato viene poi assegnato a c

Incrementi e decrementi Gli operatori di incremento e decremento possono sia precedere sia seguire la variabile ++somma equivale a somma++

Incrementi e decrementi Se gli operatori vengono usati all’interno di espressioni valgono le seguenti regole: se l’operatore ++(--) precede la variabile, prima il valore della variabile incrementato (decrementato) e poi viene valutata l’intera espressione se l’operatore ++(--) segue la variabile, prima viene valutata l’intera espressione e poi il valore della variabile viene incrementato (decrementato)

Incrementi e decrementi int a, b, c; a = 5; b = 7; c = a++ + b; printf(“%d\n”, a); printf(“%d\n”, b); printf(“%d\n”, c);

Incrementi e decrementi a += 5 equivale a a = a + 5 a *= 2 equivale a a = a * 2 a -= b equivale a a = a – b a*= 4+b equivale a a = a * (4 + b)

Priorità degli operatori ! - ++ -- * / % + - > >= < <=

Priorità degli operatori == != && || ?: = += -= *= /= %=