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

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

Struttura dei programmi C

Linguaggio C: introduzione

Il sistema C è formato dal linguaggio C, dal preprocessore, dal compilatore, dalle librerie e da altri strumenti di supporto.

Introduzione al linguaggio C

Le direttive del Preprocessore

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

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

Primi passi col linguaggio C

GESTIONE DEI FILE IN C. Docente: Giorgio Giacinto AA 2008/2009

<programma> ::= {<unità-di-traduzione>} <main> {<unità-di-traduzione>}

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

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

Linguaggio C Struttura dei programmi

IL PRIMO PROGRAMMA IN C

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007

Introduzione al linguaggio C

C O P Y R I G H T ( C ) W W W. F O N D A M E N T I. I N F O

Tipi di dato semplici

Compendio sottoinsieme del C++ a comune col C. (Libreria standard, Input/Output, Costanti, Dichiarazioni e typedef, Memoria Dinamica)

Input/Output. Lettura e scrittura Caratteri e Stringhe: Terminale e file. Input/output. caratteri stringhe formattato ascii binari

Linguaggio C - sezione dichiarativa: costanti e variabili

Input/Output di numeri

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

La programmazione nel linguaggio C

Costanti e Variabili

Algoritmi e basi del C Struttura di un programma

Visibilità e tempo di vita delle variabili. (più sintesi di alcuni concetti della prima parte del corso)

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

Laboratorio di linguaggi

Espressione di chiamata di funzione

La programmazione in linguaggio C

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

Il preprocessore. Direttiva define Direttiva include Direttiva if

Un esecutore di un linguaggio simbolico e costituito dalla coppia Compilatore, processore (o Interprete, processore)

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

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

Fondamenti di Informatica e Laboratorio T-AB Ingengeria dell Automazione a.a. 2008/2009. Lab 04 Input/Output

Variabili e Istruzioni

Elementi di informatica

Codifica degli algoritmi in linguaggio di alto livello

Scrittura formattata - printf

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

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Linguaggio C Informatica Grafica

Corso sul linguaggio C Modulo Tipi di dato

LABORATORIO di INFORMATICA

Funzioni, Stack e Visibilità delle Variabili in C

Funzioni. Unità 1. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

Caratteristiche di un linguaggio ad alto livello

Tempo di vita e scope delle variabili

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

Lezione 6 Introduzione al C++ Mauro Piccolo

Le librerie standard. ! La libreria standard del C è in realtà un insieme di librerie

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Algoritmi e basi del C

Funzionalità. Il preprocessore C. Inclusione di file. Inclusione di file

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

Introduzione al linguaggio C

prova.c #include <stdio.h> char funzione(char); codice oggetto del main()

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);

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

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

ESERCIZIO 1 (5 punti) Convertire in binario il valore, espresso in decimale, Si usi la rappresentazione in virgola fissa.

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

Introduzione alla programmazione in C

Preprocessore, linker e libreria standard

Funzioni di I/O per numeri. Input e output di valori numerici. Input formattato scanf. Stream preesistenti

LIBRERIE STANDARD in C. LIBRERIE STANDARD in C

Il linguaggio C - Introduzione

Variabili. Tipi di dati di base. Variabili. Variabili

$QDOLVLGHOSURJUDPPDTXDGUDWR

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

Lezione 10. L arte della programmazione

Programmazione Procedurale in Linguaggio C++

Lezione 8 Struct e qsort

Introduzione a. Funzioni di Ingresso e Uscita. Compilazione

Linguaggio C Variabili e tipi di dato

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

1 PANORAMICA SUL LINGUAGGIO C

Primo passo: il preprocessor. Il preprocessore. Esempi di direttive al preprocessore: #include. Esempi di direttive al preprocessore: #define

Informatica A. Il linguaggio C. A.a. 2006/2007. Allievi Ingegneria Gestionale

Introduzione al Linguaggio C Corso di Informatica Laurea in Fisica

C: panoramica. Violetta Lonati

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

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

INFORMATICA. Strutture iterative

Alcune regole di base per scrivere un programma in linguaggio C

I Linguaggi di Programmazione

Esercizio 1 (15 punti)

Approfondimento : printf

Compilazione e Makefile

Laboratorio 1. 2) All interno della directory c:\temp\cognome\codici creare il file sorgente hello.c contenente il seguente codice:

Informatica! Appunti dal laboratorio 1!

Fondamenti di Informatica T-1

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

Cicli annidati ed Array multidimensionali

Transcript:

Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria per l Ambiente ed il Territorio Corso di Laurea Specialistica in Ingegneria Civile - Strutture FONDAMENTI DI INFORMATICA 2 http://www.diee.unica.it/giacinto/fi2 ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI Docente: Giorgio Giacinto AA 2009/2010 Introduzione! Nella sezione precedente ci siamo concentrati sulla formalizzazione degli algoritmi in linguaggio C! Sono state introdotte solo alcune istruzioni fondamentali! In questa sezione introduciamo gli ulteriori elementi essenziali per la scrittura di un programma in C Giorgio Giacinto 2009 Fondamenti di Informatica 2 2

Struttura dei programmi C /* Somma sequenze di numeri */ #include <stdio.h> main() { int numero, somma; somma = 0; scanf( %d,&numero); while(numero!=0) { somma = somma+ numero; scanf( %d,&numero); } printf( La somma è: %d\n,somma); } Direttive al pre-processore C Dichiarazioni di costanti e di variabili Formato corretto delle istruzioni di I/O printf e scanf Giorgio Giacinto 2009 Fondamenti di Informatica 2 3 La parte dichiarativa dei programmi! Il linguaggio C chiede che tutte gli identificatori usati all interno del programma vengano dichiarati! Facilita l individuazione di errori (ad esempio si scrive alba anziché alfa, dove alfa è stata dichiarata, mentre alba no)! Notifica al C che tipo di valori dovrà memorizzare (caratteri, numeri interi, numeri in virgola mobile, ecc.)! La parte dichiarativa precede la parte esecutiva che contiene le istruzioni. Giorgio Giacinto 2009 Fondamenti di Informatica 2 4

Dichiarazione di variabili! Sintassi <identificatore_di_tipo> <lista_dichiarazione> <identificatore_di_tipo>::=int float char <lista_dichiarazioni>::= <dichiarazione>[{,<dichiarazione>}]; <dichiarazione>::= <identificatore> <identificatore> = <valore_iniziale> tipo: l insieme dei valori che la variabile può assumere int: interi; float: virgola mobile; char: carattere, ecc. Giorgio Giacinto 2009 Fondamenti di Informatica 2 5 Dichiarazione di variabili (cont.) float int char x,y; i,j; simb; Significato: Nel programma si useranno le variabili x e y come numeri in virgola mobile, i e j come interi e simb come carattere Ne consegue che, ad es., j non potrà mai assumere il valore 3.14 (qual è il risultato di j=3.14;?) Giorgio Giacinto 2009 Fondamenti di Informatica 2 6

Dichiarazione di costanti Sintassi const <identificatore_di_tipo> <lista_dichiarazione> <identificatore_di_tipo>::=int float char <lista_dichiarazioni>::= <dichiarazione>[{,<dichiarazione>}]; <dichiarazione>::= <identificatore> = <valore_iniziale> Una dichiarazione di costante associa in maniera permanente un valore ad un identificatore per la durata dell esecuzione del programma Giorgio Giacinto 2009 Fondamenti di Informatica 2 7 Dichiarazione di costanti (cont.) const float PiGreco = 3.14; const float PiGreco = 3.1415, e = 2.718; const int N = 100, M = 1000; const char Car1 = G, Car2 = R ; La definizione di costanti è utile! Per utilizzare un identificatore simbolico nel corpo del programma (ad es. PiGreco al posto di 3.14) che ne migliora la comprensibilità! Per poter parametrizzare il programma. Se si desidera cambiare il valore di una costante non è necessario rintracciarne tutte le occorrenze nel programma, ma è sufficiente modificare la dichiarazione iniziale. Giorgio Giacinto 2009 Fondamenti di Informatica 2 8

Il preprocessore C! Costituisce la prima fase della compilazione di un programma in linguaggio C! La direttiva #include viene usata per includere nel programma corrente il contenuto del file specificato.! La direttiva #define viene usata per sostituire ad un identificatore una stringa arbitraria di caratteri! Ad es. #define DIMENSIONE 100 ad ogni occorrenza di DIMENSIONE il preprocessore sostituisce il valore 100! A differenza di una costante, non è una variabile in memoria, ma la sostituzione viene effettuata dal compilatore prima della compilazione vera e propria Giorgio Giacinto 2009 Fondamenti di Informatica 2 9 #include! E comodo disporre di un certo insieme di funzioni e definizioni di libreria.! Sono funzioni e definizioni che estendono le funzionalità di base del linguaggio C! Le funzioni di libreria possono essere definite dall utente oppure appartenere a un insieme definito dallo standard ANSI C! Le funzioni della libreria standard sono disponibili in qualunque ambiente di programmazione e hanno sempre la stessa sintassi Giorgio Giacinto 2009 Fondamenti di Informatica 2 10

#include <stdio.h>! Il linguaggio C in senso stretto non possiede istruzioni per realizzare I/O! In ciascun ambiente di programmazione sono sempre disponibili le funzioni scanf e printf! Le funzioni per l I/O sono sempre definite nel file stdio.h! #include <stdio.h> produce come effetto l inclusione nel programma corrente del file stdio.h. ed è necessario per usare le funzioni di I/O (come ad es. printf e scanf) Le parentesi angolate <> indicano che il file si trova nella directory predefinita dal compilatore che contiene le libreria standard. Giorgio Giacinto 2009 Fondamenti di Informatica 2 11 Sintassi di printf! E la funzione che consente di generare un output formattato sul dispositivo di uscita standard! printf(stringa_di_controllo, elementi_da_stampare)! La stringa_di_controllo è una stringa (racchiusa fra ) che viene stampata in uscita e che può contenere caratteri di conversione o di formato preceduti dal simbolo % e altri simboli (ad es., \n provoca un salto a nuova riga)! %d per stampare un intero! %c per stampare un carattere! %f per stampare un numero reale (floating point)! %s per stampare una stringa di caratteri Giorgio Giacinto 2009 Fondamenti di Informatica 2 12

Sintassi di printf (cont.)! printf(stringa_di_controllo, elementi_da_stampare)! Gli elementi_da_stampare sono costituiti da una lista di variabili, costanti, espressioni (gli elementi sono separati da virgola), nello stesso ordine in cui compaiono i corrispondenti caratteri di conversione nella stringa_di_controllo.! I caratteri preceduti da % vengono detti di conversione perché devono convertire il contenuto delle variabili, costanti ecc. in caratteri stampabili Giorgio Giacinto 2009 Fondamenti di Informatica 2 13 Esempio di utilizzo di printf printf( Lo stipendio annuo dei dipendenti di categoria %d è pari a %f Euro\n,cat,stip); dove cat è definita come variabile intera (int) e stip come variabile reale (float). Se cat contiene il valore 6 e stip il valore 1570.58, l istruzione stampa la stringa seguente Lo stipendio annuo dei dipendenti di categoria 6 è pari a 1570.5 Euro e il cursore viene spostato sulla riga seguente Giorgio Giacinto 2009 Fondamenti di Informatica 2 14

Esempio di utilizzo di printf (cont.) printf(%s\n%c%c\n\n%s\n, Questo programma è stato scritto da,iniz-nome,iniz-cognome, Buon lavoro! ); Se iniz-nome e iniz-cognome sono definite come variabile carattere (char) e contengono rispettivamente M e P l istruzione stampa la stringa seguente: Questo programma è stato scritto da MP Buon lavoro! e il cursore viene spostato sulla riga seguente Giorgio Giacinto 2009 Fondamenti di Informatica 2 15 Sintassi di scanf scanf(stringa_di_controllo, elementi_da_leggere);! La stringa_di_controllo contiene una lista di caratteri di conversione o di formato preceduti dal simbolo % (la lista è racchiusa fra ) In questo modo di specifica il formato con cui devono essere interpretati i caratteri letti da tastiera! La lista di elementi_da_leggere contiene i nomi preceduti da & delle variabili in cui devono essere memorizzati i dati letti da tastiera (gli elementi sono separati da virgole). Le variabili sono nello stesso ordine degli elementi da leggere specificati dalla stringa_di_controllo. Giorgio Giacinto 2009 Fondamenti di Informatica 2 16

Esempio di utilizzo di scanf scanf( %c%c%c%d%f,&c1,&c2,&c3,&i,&x); Se al momento dell esecuzione l utente inserisce ABC 3 7.345 c1 conterrà A (c1 deve essere definita di tipo char) c2 conterrà B (c2 deve essere definita di tipo char) c3 conterrà C (c3 deve essere definita di tipo char) i conterrà 3 (i deve essere definita di tipo int) x conterrà 7.345 (x deve essere definita di tipo float) N.B. Il significato di & sarà chiaro nella sezione successiva Giorgio Giacinto 2009 Fondamenti di Informatica 2 17