Espressione di chiamata di funzione

Documenti analoghi
Input/Output di numeri

Linguaggio C: introduzione

IL PRIMO PROGRAMMA IN C

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

Struttura dei programmi C

Le funzioni, e le istruzioni di input/output

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

Linguaggio C. strutture di controllo: strutture iterative. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Descrizione delle operazioni di calcolo. Espressioni costanti semplici

I puntatori. Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore

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

Stringhe e allocazione dinamica della memoria

Esercizi Programmazione I

Variabili e Istruzioni

Realizzare un programma che legga da input tre numeri interi e stampi a video la loro somma e la media.

Formattazione avanzata. I/O Avanzato e File. Formattazione dell output. Formattazione avanzata. Forma completa degli specificatori

Linguaggio C - sezione dichiarativa: costanti e variabili

Le direttive del Preprocessore

MATLAB I/O. Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA

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

Struttura Logica del S.O:

La programmazione nel linguaggio C

Esercitazione 4. Comandi iterativi for, while, do-while

Algoritmi e basi del C Struttura di un programma

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

Istruzioni iterative. Istruzioni iterative

Laboratorio di programmazione

Primi passi col linguaggio C

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

Scrittura formattata - printf

Istruzioni Condizionali in C

LINGUAGGI DI PROGRAMMAZIONE!

Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione. e mail: sito: users.iol.

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

Dalla prima lezione. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 7 VARIABILI E COSTANTI 28/02/2016. Concetto di algoritmo

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

LIBRERIE STANDARD in C. LIBRERIE STANDARD in C

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

Programmazione in Java (I modulo)

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

ERRATA CORRIGE. void SvuotaBuffer(void); void SvuotaBuffer(void) { if(getchar()!=10) {svuotabuffer();} }

Caratteristiche di un linguaggio ad alto livello

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

Introduzione al C. Esercitazione 6. Raffaele Nicolussi. Corso di Fondamenti di Informatica Ingegneria Clinica

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

Analizzatore lessicale o scanner. Lo scanner rappresenta un'interfaccia fra il programma sorgente e l'analizzatore sintattico o parser.

Funzioni, Stack e Visibilità delle Variabili in C

Esercitazione 6. Array

Dati aggregati. Violetta Lonati

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Somma di numeri binari

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

Lettura da tastiera e scrittura su monitor

Esercizi di programmazione in C

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

La gestione dei caratteri in C

La programmazione in linguaggio C

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

Lezione 10. L arte della programmazione

Transcript:

Avvertenza Quanto segue NON è un libro, ma è una copia dei lucidi usati a lezione che NON sostituisce i libri di testo adottati e consigliati per l insegnamento di Informatica Generale. Questa copia è SOLO ED ESCLUSIVAMENTE una traccia usata dal docente a lezione, essa NON è necessariamente completa di tutti gli argomenti trattati durante il corso di Informatica Generale e NON è garantita essere corretta. Quindi SI SCONSIGLIA di utilizzare solo ed esclusivamente questa traccia per preparare l esame. 1 C-IstruzioniSemplici.tex: Versione 1.0, aa 2005-2006

Espressioni In C è fondamentale il concetto di espressione. Ogni espressione è composta da uno o più operandi e da uno o più operatori, e possiede: un valore: dato dal risultato della valutazione dell espressione sulla base dei valori delle costanti e delle variabili al momento della valutazione; un tipo: che dipende dalle variabili, dalle costanti e dagli operatori usati nell espressione. Attenzione!!! Il valore è attribuito durante l esecuzione mentre il tipo è determinato durante la compilazione. 1 /* tipo int valore 1 */ 2 * 3 /* tipo int valore 6 */ 4.9 * 2 /* tipo double valore 9.8 */ 2 C-IstruzioniSemplici.tex: Versione 1.0, aa 2005-2006

Espressione di chiamata di funzione É un espressione del tipo f(h) dove: f è il nome di una funzione, H è la lista, eventualmente vuota, degli argomenti richiesti dalla funzione. Esempio: printf("questa è una chimamata di funzione") sqrt(4) abs(-3) Il valore dell espressione è il risultato dell esecuzione della funzione. Il tipo dell espressione è dichiarato nella definizione della funzione. 3 C-IstruzioniSemplici.tex: Versione 1.0, aa 2005-2006

Espressioni aritmetiche Informalmente in C un espressione aritmetica viene costruita utilizzando valori costanti, variabili, chiamate di funzioni e gli usuali operatori aritmetici (+ - * / %). Esempio: a + b i / 3 ((a + b) / 5 * 2.0) Il valore dell espressione è il risultato dell espressione aritmetica. Il tipo dell espressione dipende dagli operandi. In genere se un operando è di dipo double, l espressione è di tipo double, altrimenti è di tipo int. 4 C-IstruzioniSemplici.tex: Versione 1.0, aa 2005-2006

Espressione relazionali Sono espressioni costruite utilizzando gli operatori relazionali (==,!=, >, >=, <, <=) e logici (!, &&, ). Esempio: I valori restituiti sono: 1 se l espressione è vera 0 se l espressione è falsa. Il tipo dell espressione è int. x == 0 a + b > a - b (x > y) (x == y)!((x > y) && (x == y)) 5 C-IstruzioniSemplici.tex: Versione 1.0, aa 2005-2006

Espressione di assegnamento (1) É un espressione che usa l operatore =. La sua forma generale è: variabile=espressione dove: variabile (lvalue) è un identificatore di variabile precedentemente definita, espressione (rvalue) è una espressione C. Attenzione! L espressione di assegnamento variabile=espressione non indica un uguaglianza. x = 0 x = 3 * 2 + x x = sqrt(10) * 2.0 6 C-IstruzioniSemplici.tex: Versione 1.0, aa 2005-2006

Espressione di assegnamento (2) La valutazione di variabile=espressione avviene nel seguente modo: 1. Viene valutata espressione. 2. Il valore prodotto dal punto precedente viene assegnato in variabile (eventualmente dopo una conversione di tipo). Il tipo di variabile=espressione è il tipo di variabile. Il valore di variabile=espressione è il valore di variabile dopo la valutazione. 7 C-IstruzioniSemplici.tex: Versione 1.0, aa 2005-2006

Esempio Se x e y sono rispettivamente variabili di tipo int e double x = 0 /* 1 */ y = x + 7 /* 2 */ x = x + 1 /* 3 */ 1. ha valore 0 e tipo int, 2. ha valore 7.0 e tipo double (ma x + 7 ha valore 7 e tipo int), 3. ha valore 1 e tipo int. 8 C-IstruzioniSemplici.tex: Versione 1.0, aa 2005-2006

Osservazione É possibile fare assegnamenti multipli. Ad esempio: x = y = 5 consente di assegnare il valore 5 sia alla variabile x sia alla variabile y. L assegnamento alle due variabili non viene comunque fatto simultaneamente. L ordine di valutazione è da destra verso sinistra, cioè l espressione precedente risulta parentesizzata nel seguente modo: x = (y = 5) 9 C-IstruzioniSemplici.tex: Versione 1.0, aa 2005-2006

Istruzioni semplici Una qualsiasi espressione, x=0, a+b, i=i+1 oppure printf(...) diventa un istruzione quando è seguita da un punto e virgola (;). Esempio: x=0; a+b; i=i+1; ((a+b) / 5 * 2.0); printf(...); ; /* istruzione vuota */ In C ; è un terminatore di istruzioni e non un separatore come in altri linguaggi di programmazione (Ad esempio: Pascal). 10 C-IstruzioniSemplici.tex: Versione 1.0, aa 2005-2006

Visualizzazione: printf La funzione printf() (formatted print) permette di visualizzare una stringa di controllo contenuta fra doppi apici. Ad esempio: visualizza ab12. printf("ab12"); La stringa di controllo può contenere delle specifiche di conversione che iniziano con il carattere % e ciascuna viene associata a un parametro. I parametri sono scritti dopo la stringa di controllo e sono separati dalla virgola. La specifica di conversione determina il formato secondo cui il corrisponente parametro viene stampato. 11 C-IstruzioniSemplici.tex: Versione 1.0, aa 2005-2006

Uso di printf Carattere di conversione Formato d f Esempio: printf("%d",123); printf("%f", 108.23); visualizzano 123 e 108.23. intero in notazione decimale reale in notazione decimale 12 C-IstruzioniSemplici.tex: Versione 1.0, aa 2005-2006

Lettura da tastiera: scanf La funzione scanf() permette di leggere dallo standard input e di interpretare i caratteri letti in base al formato richiesto. Carattere Formato di conversione d lf intero in notazione decimale reale 13 C-IstruzioniSemplici.tex: Versione 1.0, aa 2005-2006

La funzione scanf Per leggere un dato di input in una variabile x, occorre passare come parametro l indirizzo di x usando l operatore di indirizzamento &. Ad esempio, per inserire un intero in notazione decimale nella variabile x occorre fare la chiamata scanf("%d", &x); Se si fa scanf(%d, x) il programma viene compilato senza segnalare errori ma non funziona correttamente Vengono automaticamente saltati i caratteri di spaziatura (spazio, tabulazioni) che si trovano prima del numero da leggere. 14 C-IstruzioniSemplici.tex: Versione 1.0, aa 2005-2006

Esempi int a,b; scanf("%d%d", &a, &b); Lo standard input si può rappresentare come una sequenza di caratteri, ad esempio 1 2-1 2 4... dove le caselle vuote contengono un carattere di spaziatura. L effetto dell istruzione di lettura è: Viene convertita la sequenza di caratteri 1 e 2 nell intero 12 e viene assegnato ad a il valore 12. Vengono saltati i caratteri di spaziatura fra 12 e -124, viene convertito -124 nel numero -124 e assegnato tale valore a b. 15 C-IstruzioniSemplici.tex: Versione 1.0, aa 2005-2006

Esempi (2) Supponiamo che questa volta l input sia allora: 1 2 a 1 2 8... Vengono saltati gli spazi e viene letto 12, quindi alla variabile a viene assegnato il valore 12. A questo punto la scanf() si aspetta di trovare (saltando gli spazi) una sequenza di caratteri corrispondente alla rappresentazione decimale di un intero. Poiché invece viene incontrato il carattere a, Il valore della variabile b non cambia e la prossima richiesta di lettura esaminerà lo standard input a partire dal carattere a. 16 C-IstruzioniSemplici.tex: Versione 1.0, aa 2005-2006

Esempio #include <stdio.h> int main(void) { int a, b; } scanf("%d", &a); b = a + 1; printf("a=b: %d\n",a==b); printf("a!=b: %d\n",a!=b); printf("a<b: %d\n",a<b); printf("a<=8: %d\n", a<=8); 17 C-IstruzioniSemplici.tex: Versione 1.0, aa 2005-2006

Esecuzione Supponiamo di dare in ingresso il valore 8. a b Output int main(void) scanf( 8 b = a + 1 8 9 printf( a = b 8 9 a = b : 0 printf( a! = b 8 9 a! = b : 1 printf( a < b 8 9 a < b : 1 printf( a <= 8 8 9 a <= 8 : 1 18 C-IstruzioniSemplici.tex: Versione 1.0, aa 2005-2006