Informatica (A-K) 7. Linguaggio C - 1

Documenti analoghi
Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

La sintassi del C APPENDICE H

Corso di Fondamenti di Informatica Il sistema dei tipi in C++

Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi

Struttura dei programmi C

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C

Alfabeto ed elementi lessicali del linguaggio C

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2009/2010

Input/Output di numeri

Linguaggio C: introduzione

Linguaggio C - sezione dichiarativa: costanti e variabili

Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1

! Array. n Mondimensionali n Multidimesionali (Matrici)! Preprocessore! Commenti

SULL USO DEI CARATTERI. char x; si legge con ( %c,&x) e si stampa con ( %c,x) ma anche con ( %d,x) DUE ESEMPI

Programmazione Procedurale in Linguaggio C++

Classificazione Tipi semplici predefiniti Definizione di nuovi tipi Tipi strutturati

Corso di Calcolatori Elettronici Un computer è un dispositivo in grado di eseguire dei calcoli e di prendere delle decisioni logiche.

Laboratorio di Informatica

Unità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma.

Introduzione al C. Introduzione. Linguaggio ad alto livello. Struttura di un programma C

Lezione 10. L arte della programmazione

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C

Il linguaggio C Il linguaggio C. Caratteristiche del C. Caratteristiche del C. Linguaggi di Programmazione I. Ferdinando Cicalese

La programmazione nel linguaggio C

Primi passi col linguaggio C

Tipi di dati scalari (casting e puntatori) Alessandra Giordani Lunedì 10 maggio 2010

Laboratorio di Algoritmi e Strutture Dati. Aniello Murano. people.na.infn.it/~murano. Murano Aniello LASD 05/06 Seconda Lezione.

Linguaggio C Variabili e tipi di dato

Linguaggio C: le funzioni

$QDOLVLGHOSURJUDPPDTXDGUDWR

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C

Introduzione alla programmazione in C(++)

Il linguaggio C. Notate che...

Linguaggio C. Tipi predefiniti e operatori. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Algoritmi e basi del C Struttura di un programma

Alfabeto ed elementi lessicali del linguaggio C

Il linguaggio C. Caratteristiche generali

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN

Sommario PREFAZIONE...XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLA PROGRAMMAZIONE IN C...

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

Introduzione a. Funzioni di Ingresso e Uscita. Compilazione

Tipi e Valori. Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna

Introduzione al Linguaggio C

STORIA E CARATTERISTICHE

Linguaggio C Struttura dei programmi

Istituto Tecnico Industriale M. M. Milano Polistena. Classe III D a.s. 2015/2016 C++ Guida Base

Introduzione al linguaggio C

Introduzione alla programmazione in C

Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.

Laboratorio di programmazione

Programmazione Procedurale in Linguaggio C++

Il Linguaggio C. Caratteristiche. Caratteristiche. Esempio di programma in C. Tipi di dato primitivi in C. Dati

Riassunto. I mattoni di base di un programma Java. Oggi. Un programma complicato. Oggi. Perché è complicato? Stefano Mizzaro 1.

Il potere espressivo di un linguaggio è caratterizzato da: PROGRAMMA = DATI + CONTROLLO

Linguaggio C Cenni storici

Programmazione I - Laboratorio

Tipi elementari, costanti. Tipi di dati. VALORI: un insieme dei valori del tipo OPERAZIONI: per operare su tali valori. Tipi. intero reale carattere

Linguaggio C. Tipi predefiniti. Università degli Studi di Brescia. Prof. Massimiliano Giacomin. Prof. M. Giacomin

Lezione 9: Puntatori a funzioni. Tipi enumerativi e orientati ai bit

Le funzioni, e le istruzioni di input/output

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);

Tipi di dato. Le variabili in C. Problema: dato in input un carattere, se esso è una lettera minuscola, trasformarla in maiuscola.

Appunti, esempi ed esercizi sui linguaggi C/C++

Approfondimento : printf

Laboratorio di Algoritmi e Strutture Dati

Gli Operatori. Linguaggio C. Gli Operatori. Esempi sull uso dell Operatore di Assegnamento. L Operatore di Assegnamento

Caratteristiche di un linguaggio ad alto livello

LINGUAGGI DI PROGRAMMAZIONE!

Esercizi di programmazione in C

Il linguaggio C - Introduzione

Rappresentazione binaria delle variabili (int e char)

Corso di Fondamenti di Programmazione canale E-O. Tipi di dato. Un esempio

Introduzione al linguaggio C

Prima lezione di laboratorio. I mattoni di base di un programma Java. Comandi Unix. Riassunto. Oggi. Un programma complicato.

Laboratorio di Informatica Ingegneria Clinica Lezione 9/11/2011. Prof. Raffaele Nicolussi

Sintassi: Per la dichiarazione di variabili dei tipi fondamentali:

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

Prima lezione di laboratorio. I mattoni di base di un programma Java. Riassunto. Comandi Unix. Oggi. Blog & Group.

LIBRERIE STANDARD in C. LIBRERIE STANDARD in C

Tipi di dati fondamentali. Tipi di dati fondamentali. Utilità dei tipi di dati nelle dichiarazioni. Il tipo di dati char. Codice ASCII.

Introduzione al linguaggio C

Elementi di informatica

Espressione di chiamata di funzione

Corso di Fondamenti di Informatica

Corso sul linguaggio C Modulo Tipi di dato

IL PRIMO PROGRAMMA IN C

Le direttive del Preprocessore

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande / VERSIONE 1

Tipi di dato primitivi

Variabili e Istruzioni

Scrittura formattata - printf

Tipi di dato. Il concetto di tipo di dato viene introdotto per raggiungere due obiettivi:

# $ %$&'" '! () *$+,!-

Le basi del linguaggio Java

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

Corso Programmazione 1 Capitolo 01: Concetti Elementari

Introduzione a Java. Riferimenti

Alcune regole di base per scrivere un programma in linguaggio C

IL LINGUAGGIO C IL CALCOLATORE E I SUOI LINGUAGGI

Tipi di dati strutturati e Linguaggio C. Record o strutture Il costruttore struct in C

Transcript:

Storia del linguaggio C Informatica (A-K) 7. Linguaggio C - 1 Corso di Laurea in Ingegneria Civile & Ambientale A.A. 2011-2012 2 Semestre Prof. Giovanni Pascoschi Linguaggio C 1972, nato come evoluzione di due linguaggi BCPL e B Linguaggi senza nozione di tipo di dati Dennis Ritchie (Bell Laboratories) Linguaggio di sviluppo di Unix Indipendente dall Hardware Portabilità 1989: standard approvato 1990: pubblicato standard ANSI e ISO ANSI/ISO 9899: 1990 a cura di Pascoschi Giovanni 2 Un primo esempio in C Un primo esempio in C OUTPUT Commento /* Programma di Esempio */ int main( ) { printf( Hello,World!\n ); return 0; } Hello, World! /* Programma di Esempio */ int main( ) { printf( Hello,World!\n ); return 0; } File header libreria funzioni I/O a cura di Pascoschi Giovanni 3 a cura di Pascoschi Giovanni 4

Un primo esempio in C La libreria di run-time /* Programma di Esempio */ int main( ) { printf( Hello,World!\n ); return 0; } Inizio del programma principale Operazione di output I nomi dei file header terminano, per convenzione, con l estensione.h (ad es., stdio.h è il file header dello standard I/O) Per includere un file header in un programma, occorre inserire nel codice sorgente l istruzione #include <nomefile.h> Fine del programma principale Ritorna 0 al sistema operativo Esempio: Per utilizzare printf(), che permette di visualizzare dati su terminale, è necessario inserire nel sorgente la linea di codice a cura di Pascoschi Giovanni 5 a cura di Pascoschi Giovanni 6 I commenti #1 I commenti #2 Un commento è un testo che viene incluso in un file sorgente per spiegare il significato del codice I commenti sono ignorati dal compilatore I commenti sono un elemento fondamentale nello sviluppo del software: il linguaggio C consente di inserire commenti racchiudendo il testo tra i simboli /* e */ Non sono ammessi commenti innestati Un commento può occupare più linee Affinché i commenti non interrompano il flusso di un programma occorre dedicare ai commenti intere linee di codice o collocarli sulla destra del codice, quando condensabili in un unica riga Cosa deve essere commentato? Tutto ciò che non è ovvio: Espressioni complesse, strutture dati e scopo delle funzioni Eventuali modifiche apportate al programma, per poterne tenere traccia a cura di Pascoschi Giovanni 7 a cura di Pascoschi Giovanni 8

I commenti #3 Commenti in C Tuttavia, commenti con scarso contenuto informativo possono rendere un programma difficile da leggere Un esempio di stile di documentazione scadente Singola riga /* Programma di Esempio */ Multi riga /* Programma per il calcolo dell integrale definito della funzione cos(x) */ j=j+1; /* incrementa j */ Inoltre, commenti molto lunghi non compensano codice illeggibile o stilisticamente imperfetto a cura di Pascoschi Giovanni 9 a cura di Pascoschi Giovanni 10 Un secondo esempio in C Un secondo esempio in C int main() { int a = 8; int b = 4; int c = 3; double tot = a * 0.01 + b * 0.10 + c * 0.25; /* valore totale */ printf( Valore Totale =, tot, "\n ); return 0; } OUTPUT Valore Totale = 1.230000 a cura di Pascoschi Giovanni 11 a cura di Pascoschi Giovanni 12

Variabili in C Variabili in C Le variabili sono spazi di memoria, identificati da un nome, che possono conservare valori di un determinato tipo Ciascuna variabile deve essere definita indicandone tipo e nome Nella definizione di una variabile, e possibile assegnarle un valore iniziale.. int a = 8; int b = 4; int c = 3; double tot = a * 0.01 + b * 0.10 + c * 0.25;.... int a = 8, b = 4, c = 3; double tot = a * 0.01 + b * 0.10 + c * 0.25;.. Memoria a 8 b 4 c 3 tot 1.230000 a cura di Pascoschi Giovanni 13 a cura di Pascoschi Giovanni 14 Variabili in C Variabili e costanti Identificatore: sequenza di lettere, numeri e simbolo di sottolineatura _ Deve iniziare con una lettera (p.e. non va bene 2perim ) Non puo essere una parola o simbolo riservato del linguaggio (p.e. non va bene for ) Non puo contenere spazi Es. Nomi validi : pippo, pluto, ciao5, salve_a_tutti E bene scegliere nomi che descrivano adeguatamente il contenuto della variabile Case sensitive : maiuscole e minuscole vengono considerate diverse (p.e. Pippo e pippo sono due variabili diverse) Un nome non deve coincidere con una parola riservata, né con il nome di una funzione di libreria auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do if static while Le parole chiave del linguaggio C a cura di Pascoschi Giovanni 15 a cura di Pascoschi Giovanni 16

Tipi di variabili numeriche in C Tipi di variabili : stringhe in C Tipi base Tipo predefinito char signed char unsigned char signed short int signed int signed long int unsigned short int unsigned int unsigned long int float double long double Denominazioni alternative signed short, short signed, int long int, signed long, long unsigned short unsigned unsigned long char int float double caratteri interi reali reali in precisione doppia Qualificatori short condizionano lo spazio allocato per le variabili long signed condizionano i valori assumibili dalle variabili unsigned /* Esempio in C */ char nome[10]; nome = Bari ; a cura di Pascoschi Giovanni 17 a cura di Pascoschi Giovanni 18 Costanti in C La direttiva #define Una costante è una espressione che ha un valore prefissato : Numeri interi, Numeri in virgola mobile, Caratteri, Stringhe Esempi: # define A 24 # define PIGRECO 3.14 La direttiva #define consente di associare un nome ad una costante Esempio: #define NIENTE 0 associa il nome NIENTE alla costante 0 Per evitare confusione fra nomi di costanti e nomi di variabili, è pratica comune usare solo lettere maiuscole per le costanti e solo minuscole per le variabili L associazione di nomi alle costanti permette di utilizzare un nome descrittivo per oggetti altrimenti non autoreferenziali di semplificare la modifica del software: cambiare il valore ad una costante equivale a cambiarne la sola definizione e non tutte le occorrenze a cura di Pascoschi Giovanni 19 a cura di Pascoschi Giovanni 20

Operatori built-in in C Operatori built-in in C Operatori built-in = Assegnamento + Somma - Sottrazione * Moltiplicazione / Divisione % Modulo (solo per tipo int ) == Relazione di uguaglianza!= Relazione di diversità < Relazione minore di > Relazione maggiore di <= Relazione minore o uguale a >= Relazione maggiore o uguale a Operatori aritmetici Operatori relazionali Altri operatori di assegnamento Operatore Esempio Istruzione equivalente ++ conta++; conta = conta + 1; -- conta--; conta = conta - 1; += x+=y; x = x + y; -= x-=y; x = x -y; *= x*=y; x = x * y; /= x/=y; x = x / y; %= x%=y; x = x % y; a cura di Pascoschi Giovanni 21 a cura di Pascoschi Giovanni 22 Operatori built-in in C Operatori built-in in C Esempi operatori di assegnamento Operatori logici built-in i = 5; x = 3; y = x + i++; i = 5; x = 3; y = x + ++i; i = 5; x = 3; y = x + (++i); && AND logico su due variabili OR logico su due variabili! NOT logico su una variabile & AND logico bit a bit OR logico bit a bit ^ XOR bit a bit ~ complemento a uno dell operatore >> shift a destra di un certo numero di bit << shift a sinistra di un certo numero di bit Operatori logici Operatori logici bit a bit a cura di Pascoschi Giovanni 23 a cura di Pascoschi Giovanni 24

Operatori built-in in C Operatori built-in in C Esempi utilizzo operatori logici: (a>b) && (c==3) per a=4, b=5, c=3? (a==5) (a==7) per a=5?!(a>4) per a=3? F V V Espressione (decim.) Valore in bit prima della valutazione Valore in bit dopo la valutazione Valore decimale dopo la valutazione x = 11 00001011 11 x = x & 3 00001011 00000011 3 x = x 12 00000011 00001111 15 x = x ^ 10 00001111 00000101 5 x = ~x 00000101 11111010 250 x = x >> 3 11111010 00011111 31 x = x <<2 00011111 01111100 124 a cura di Pascoschi Giovanni 25 a cura di Pascoschi Giovanni 26 Istruzioni ingresso/uscita in C La funzione scanf() Esempi di input scanf( %d, &raggio); scanf( %f %f, &a, &b); La funzione scanf() legge dati introdotti da tastiera scanf() può ricevere un numero qualunque di parametri preceduti da una stringa di formato I parametri di scanf() devono essere preceduti dall operatore indirizzo & Esempio: scanf( %d,&num); richiede al sistema di leggere un intero da terminale e di memorizzare il valore nella variabile num a cura di Pascoschi Giovanni 27 a cura di Pascoschi Giovanni 28

La funzione printf() #1 La funzione printf() può avere un numero variabile di argomenti Il primo argomento è un parametro speciale, detto stringa di formato, che specifica il numero di argomenti che contengono i dati da stampare e le modalità di formattazione dei dati La stringa di formato è racchiusa fra doppi apici e può contenere testo e specificatori di formato sequenze speciali di caratteri che iniziano con il simbolo di percentuale (%) ed indicano le modalità di scrittura di un singolo dato Esempio: nell istruzione printf( Il valore di num è %d,num); Il valore di num è %d è la stringa di formato %d è lo specificatore di formato per gli interi decimali num è la variabile intera decimale da stampare La funzione printf() #2 Esistono altri specificatori per altri tipi di dati: %c dato di tipo carattere %f dato di tipo floating point %s dato di tipo stringa La stringa di formato può contenere un numero qualunque di specificatori di formato, ma il loro numero deve coincidere con il numero dei dati da stampare, passati come argomenti printf( Stampa tre valori: %d %d %d,num1,num2,num3); a cura di Pascoschi Giovanni 29 a cura di Pascoschi Giovanni 30 La funzione printf() #3 Istruzioni ingresso/uscita in C I dati da stampare possono essere espressioni printf( Il quadrato di %d è %d\n,num,num num); Il simbolo speciale \n èuna sequenza di escape Quando le sequenze di escape sono inviate ad un dispositivo di uscita sono interpretate come segnali che controllano il formato della visualizzazione \n forza il sistema ad effettuare un ritorno a capo (newline) Sequenza di Descrizione Terminologia escape inglese \n A capo riga New line \t Tabulazione Tab \r Ritorno a capo Carriage return della stessa riga \ Doppi apici Double quote \\ Barra contraria Backslash \? Punto di domanda Question mark \ Apice singolo Single quote \a Segnalazione Bell acustica \f Salto pagina Form feed a cura di Pascoschi Giovanni 31 a cura di Pascoschi Giovanni 32

Funzioni matematiche in C Funzioni matematiche in C Operazioni più complesse, e.g., la radice quadrata, il logaritmo vengano realizzare tramite funzioni predefinite C Esempio: double x; scanf( %f, x); printf( %f, sqrt(x)); Sintassi nome_funzione(espr1,,esprn) Calcola il valore della funzione nome_funzione con argomenti/parametri espr1,,esprn Si dice che la funzione restituisce (return) il valore calcolato Per invocare le funzioni matematiche bisogna includere il file di intestazione <math.h> #include <math.h> int main() { int x; double radice; printf( Inserire un numero \n ); scanf( %d, &x); radice = sqrt(x); printf( Radice quadrata= %f, radice, "\n ); return 0; } a cura di Pascoschi Giovanni 33 a cura di Pascoschi Giovanni 34 Funzioni matematiche principali in C Considerazioni finali Funzione sqrt(x) pow(x,y) sin(x) cos(x) tan(x) exp(x) log(x) log10(x) ceil(x) floor(x) fabs(x) Descrizione radice quadrata di x x y sin x cos x tan x e x logaritmo naturale log e (x) logaritmo naturale log 10 (x) il piu piccolo numero intero >=x il piu grande numero intero di <=x valore assoluto di x Gli esempi hanno permesso di introdurre alcuni dei concetti di base del linguaggio C: Ogni programma C contiene il programma principale main() I blocchi di codice sono delimitati da parentesi graffe Le istruzioni sono terminate dal punto e virgola Le variabili Devono essere dichiarate Hanno un tipo in base ai dati che dovranno contenere Inoltre, il linguaggio C permette di Leggere e scrivere dati Svolgere operazioni aritmetiche a cura di Pascoschi Giovanni 35 a cura di Pascoschi Giovanni 36

Riepilogo della lezione Fine della lezione Introduzione al linguaggio C Tipi di dati predefiniti del C Variabili, costanti, stringhe in C Operatori aritmetici, di relazione e logici Operatori di assegnamento Istruzioni predefinite I/O Introduzione alle funzioni matematiche Domande? a cura di Pascoschi Giovanni 37 a cura di Pascoschi Giovanni 38 Esercizi Realizzare il diagramma a blocchi, la pseudocodifica e il programma in linguaggio C dei seguenti esercizi Esercizio 1: Dati due numeri interi, visualizzare la somma e la moltiplicazione tra essi Esercizio 2: Dati due numeri reali (base e altezza), visualizzare il perimetro e l area del triangolo rettangolo Esercizio 3: Dato il raggio r in input, visualizzare il perimetro e l area del cerchio e la superficie e il volume della sfera con raggio r a cura di Pascoschi Giovanni 39