Codifica: dal diagramma a blocchi al linguaggio C++

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Codifica: dal diagramma a blocchi al linguaggio C++"

Transcript

1 Codifica: dal diagramma a blocchi al linguaggio C++ E necessario chiarire inizialmente alcuni concetti. La compilazione Il dispositivo del computer addetto all esecuzione dei programmi è la CPU La CPU riconosce solamente il linguaggio macchina, cioè riesce a eseguire un programma solo se è scritto in linguaggio macchina Quando un programma è scritto in un linguaggio diverso dal linguaggio macchina (per esempio nel linguaggio C++), è necessario tradurre in linguaggio macchina il programma dato. Ciò significa che per esempio da un programma scritto in C++, con la traduzione si ottiene un programma equivalente in linguaggio macchina (nel senso che il programma in linguaggio macchina esegue le stesse operazioni del programma dato). Il programma da tradurre in linguaggio macchina è detto programma sorgente, o semplicemente sorgente, mentre il programma tradotto in linguaggio macchina è detto programma eseguibile. La traduzione in linguaggio macchina di un programma sorgente è chiamata compilazione Chi attua la compilazione è un programma chiamato compilatore Ogni linguaggio ha un proprio compilatore Per scrivere e compilare i nostri programmi sorgenti in C++ usiamo DEV C++ Cos è DEV-C++? E un IDE (Integrated Development Environment = Ambiente Integrato di Sviluppo), cioè un programma che mette a disposizione un editor (per scrivere i nostri programmi sorgenti in C++), un compilatore (per compilare i programmi dal C++ in linguaggio macchina) e un debug (per consentirci di rilevare e correggere gli errori del programma sorgente) #INCLUDE <IOSTREAM>.... Progr. Sorgente (in C++) DEV-C Progr. Eseguibile (ling. macchina)

2 Come avviene la compilazione di un programma sorgente scritto nel linguaggio C++ Attuando molte semplificazioni, la compilazione in C++ avviene in due fasi: - la fase di precompilazione (svolta da un programma del compilatore detto preprocessore) - la fase di traduzione vera e propria in linguaggio macchina Nota: il preprocessore è di solito incluso nel compilatore, tuttavia può essere anche esterno al compilatore e chiamato dal compilatore quando serve. Il compilatore ha a disposizione nella memoria di massa (normalmente nell hard disk) delle raccolte di programmi chiamate librerie. Tali librerie hanno un nome. Nel sito ne troviamo elencate diverse: Per esempio, la libreria string ci mette a disposizione dei programmi grazie ai quali è possibile eseguire operazioni sulle stringhe (una stringa è una sequenza di caratteri).

3 Nel nostro programma sorgente in C++ scriviamo inizialmente le direttive al preprocessore, con le quali indichiamo quali librerie sono necessarie per il nostro programma. Esempi di direttive sono: #include <iostream> #include <string> #include <conio.h> Nota: per ora nei nostri programmi utilizziamo queste librerie per i motivi elencati di seguito iostream: string: conio.h: per poter usare l istruzione di input cin e l istruzione di output cout per operare sulle stringhe per poter usare la getch() Vediamo a questo punto, semplificando il tutto, come avviene la traduzione di un programma in C++ Nella prima fase Il preprocessore non attua alcuna traduzione, ma si limita a inserire nel programma sorgente, per ogni #include, la relativa libreria. Nella fase successiva avviene la traduzione vera e propria in linguaggio macchina del programma sorgente con le librerie incluse. La figura della pagina seguente riassume queste due fasi.

4 Libreria IOSTREAM Libreria STRING Libreria CONIO.H #INCLUDE <IOSTREAM> #INCLUDE <STRING> #INCLUDE <CONIO.H>. Programma sorgente in C++ FASE 1 (PRECOMPILAZIONE)..... Programma sorgente in C++ con le librerie incluse FASE 2 (TRADUZIONE IN L. MACCHINA) Programma eseguibile (in ling. macchina) (Nota: nella fase 2 stiamo includendo anche il linkaggio, operazione che vedremo in seguito)

5 Nota: Durante la compilazione viene verificata la correttezza lessicale e sintattica del programma sorgente da tradurre in linguaggio macchina. Vediamo i due tipi di errori: lessicale e sintattico. Errore lessicale è presente quando una parola è scritta in modo non corretto: per esempio: if (x>0) x = x+2; cout<<x; elses x = x-2; cout<<x; la parola else del linguaggio C++ è scritta in modo errato. Errore sintattico È presente quando non è rispettata la sintassi di un istruzione. Per esempio, la sintassi dell istruzione cin prevede che con essa sia specificata una variabile (nella quale memorizzare il dato digitato alla tastiera dall operatore), perciò abbiamo un errore sintattico se scriviamo: cin>>100 infatti, come si può notare, gli elementi cin, >>, 100 sono tutti corretti dal punto di vista lessicale, però a destra del simbolo >> c è il numero 100, quando invece il compilatore si aspetta di trovarci il nome di una variabile.

6 Vediamo ora le corrispondenze fra i diagrammi a blocchi e il linguaggio C++ La struttura di un programma C++ è (per adesso) questa: #include <iostream> #include <string> #include <conio.h> using namespace std; int main() getch(); return 0; dove: il significato della using namespace std sarà chiarito in seguito int main() indica che la funzione principale del programma è main() e restituisce un risultato di tipo intero (per questo motivo in fondo al programma c è return 0) getch() ha lo scopo di fermare sullo schermo la visualizzazione dei risultati prodotti dal programma. Senza di essa non faremmo in tempo a leggere tali risultati.

7 Corrispondenze X = 10; cout<< Positivo ; cin>>a; meglio se si scrive per esempio: cout<< digita un numero ; cin>>a; If (X>0) X = X +2; cout<<x; else cin>>y; Y = X + Y;

8 Nota sulle parentesi graffe : Per scrivere le parentesi graffe, bisogna tenere premuti nella tastiera i tasti Shift e AltGr e quindi digitare i caratteri [ e ] Le parentesi graffe nel programma, vanno inserite subito dopo la int main() e per chiudere il programma, cioè subito dopo la return 0; Le parentesi graffe vanno aggiunte nell istruzione IF quando nella parte Vero e/o nella parte Falso siamo in presenza di piu di un istruzione. Vediamo di seguito degli esempi generici. V Istr1 Istr2 X>0 F Istr3 if (X>0) Istr1; Istr2; else Istr3; V Istr1 Istr2 X>0 F Istr3 Istr4 if (X>0) Istr1; Istr2; else Istr3; Istr4;

9 V Istr1 X>0 F Istr2 if (X>0) Istr1; else Istr2;

Informatica B. Breve introduzione all ambiente di programmazione. Politecnico di Milano IV Facoltà di Ingegneria 2003

Informatica B. Breve introduzione all ambiente di programmazione. Politecnico di Milano IV Facoltà di Ingegneria 2003 Informatica B Breve introduzione all ambiente di programmazione Politecnico di Milano IV Facoltà di Ingegneria 2003 Dal sorgente all eseguibile File Sorgente.C Compilatore File Oggetto.OBJ Librerie.lib

Dettagli

Compilare il primo programma. Primo programma in C. Esercizio Somma due numeri. Compilare il primo programma. Analisi. Analisi

Compilare il primo programma. Primo programma in C. Esercizio Somma due numeri. Compilare il primo programma. Analisi. Analisi Primo in C Un semplice L ambiente di sviluppo Dev-C++ Codifica del Compilazione e correzione errori Esecuzione e verifica 2 Esercizio Somma due numeri Si realizzi un in linguaggio C che acquisisca da tastiera

Dettagli

Informatica! Appunti dal laboratorio 1!

Informatica! Appunti dal laboratorio 1! Informatica! Appunti dal laboratorio 1! Sistema Operativo! Windows 7, Windows 8, Mac OS X, Linux, Debian, Red Hat, etc etc! Il sistema operativo è un programma che serve a gestire TUTTE le risorse presenti

Dettagli

Le stringhe. Le stringhe

Le stringhe. Le stringhe Informatica: C++ Gerboni Roberta Stringhe di caratteri (esempi di utilizzo dei vettori) Nel linguaggio C++ una stringa è semplicemente un vettore di caratteri Vettori di caratteri La stringa "hello" è

Dettagli

Dev C++ Prerequisiti. Note di utilizzo. Utilizzo di Windows Effettuare il download da Internet Compilazione di un programma

Dev C++ Prerequisiti. Note di utilizzo. Utilizzo di Windows Effettuare il download da Internet Compilazione di un programma Dev C++ Note di utilizzo 1 Prerequisiti Utilizzo di Windows Effettuare il download da Internet Compilazione di un programma 2 1 Introduzione Lo scopo di queste note è quello di diffondere la conoscenza

Dettagli

FASE DEBUGGING: Compiler Linker. controllando che la voce Genera le informazioni per il debug cioè. "Generate debugging information"

FASE DEBUGGING: Compiler Linker. controllando che la voce Genera le informazioni per il debug cioè. Generate debugging information FASE DEBUGGING: Prima della compilazione, si devono inserire 1 nel progetto informazioni per il debug cioè si devono visualizzare le opzioni di progetto seguendo il percorso: controllando che la voce Genera

Dettagli

Informatica! Appunti dal laboratorio 1!

Informatica! Appunti dal laboratorio 1! Informatica Appunti dal laboratorio 1 Sistema Operativo Windows Vista, Windows 7, Mac OS X, Linux, Debian, Red Hat, etc etc Il sistema operativo è un programma che serve a gestire TUTTE le risorse presenti

Dettagli

La selezione binaria

La selezione binaria Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Introduzione L esecuzione di tutte le istruzioni in sequenza può non è sufficiente per

Dettagli

INTRODUZIONE, LINGUAGGIO, HANDS ON. Giuseppe Cirillo g.cirillo@unina.it

INTRODUZIONE, LINGUAGGIO, HANDS ON. Giuseppe Cirillo g.cirillo@unina.it INTRODUZIONE, LINGUAGGIO, HANDS ON Giuseppe Cirillo g.cirillo@unina.it Il linguaggio C 1972-Dennis Ritchie 1978-Definizione 1990-ANSI C 1966 Martin Richars (MIT) Semplificando CPL usato per sviluppare

Dettagli

Ambienti di sviluppo integrato

Ambienti di sviluppo integrato Ambienti di sviluppo integrato Un ambiente di sviluppo integrato (IDE - Integrated Development Environment) è un ambiente software che assiste i programmatori nello sviluppo di programmi Esso è normalmente

Dettagli

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Dall Algoritmo al Programma Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni IL PROGRAMMA Gli algoritmi sono modelli di descrizione astratti e per controllarne il funzionamento devono essere

Dettagli

Dispensa 3. 1.1 YACC: generalità

Dispensa 3. 1.1 YACC: generalità Dispensa 3 1.1 YACC: generalità Il tool Yacc (acronimo per Yet Another Compiler Compiler) è uno strumento software che a partire da una specifica grammaticale context free di un linguaggio scritta in un

Dettagli

Introduzione alla programmazione in C

Introduzione alla programmazione in C Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale

Dettagli

Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment

Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment Bloodshed Dev-C++ Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio IDE = Integrated Development Environment Gerardo Pelosi 01 Ottobre 2014 Pagina 1 di 8 Dev-C++ - Installazione Potete

Dettagli

INFORMATICA 1 L. Mezzalira

INFORMATICA 1 L. Mezzalira INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello

Dettagli

Software Applicativo. Hardware. Sistema Operativo Software di Base Traduttori e Linguaggi

Software Applicativo. Hardware. Sistema Operativo Software di Base Traduttori e Linguaggi : di base e applicativo L HardWare (monitor, tastiera, circuiti, stampante, ) è il nucleo fondamentale del calcolatore ma da solo non serve a nulla. Bisogna utilizzare il software per poterlo fare funzionare.

Dettagli

Indice. Materiale di riferimento. Struttura di un programma in C++ Introduzione al C++ (CAP 1) Alberto Garfagnini e Marco Mazzocco A.A.

Indice. Materiale di riferimento. Struttura di un programma in C++ Introduzione al C++ (CAP 1) Alberto Garfagnini e Marco Mazzocco A.A. Introduzione al C++ (CAP 1) Alberto Garfagnini e Marco Mazzocco Università degli studi di Padova A.A. 2014/2015 Indice Scrittura del primo programma in C++ elementi costitutivi del programma compilazione

Dettagli

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

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

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

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Università di Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Linguaggio C Compilazione, linking e preprocessor

Linguaggio C Compilazione, linking e preprocessor FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C Compilazione, linking e preprocessor 2001 Pier Luca Montessoro

Dettagli

FONDAMENTI di INFORMATICA L. Mezzalira

FONDAMENTI di INFORMATICA L. Mezzalira FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software

Dettagli

Gian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C

Gian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C Università degli Studi di Cagliari Corso di Laurea in Ingegneria Biomedica (Industriale), Chimica, Elettrica, e Meccanica FONDAMENTI DI INFORMATICA 1 http://www.diee.unica.it/~marcialis/fi1 A.A. 2010/2011

Dettagli

ISTITUTO TECNICO INDUSTRIALE STATALE LA GESTIONE DEI FILE DI TESTO IN C++

ISTITUTO TECNICO INDUSTRIALE STATALE LA GESTIONE DEI FILE DI TESTO IN C++ ISTITUTO TECNICO INDUSTRIALE STATALE G A L I L E O F E R R A R I S DIISPENSA DII IINFORMATIICA E SIISTEMII AUTOMATIICII LA GESTIONE DEI FILE DI TESTO IN C++ Le classi per la gestione dei file. Il C++ è

Dettagli

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware COS È UN LINGUAGGIO? Un linguaggio è un insieme di parole e di metodi di combinazione delle

Dettagli

INFORMATICA - I puntatori Roberta Gerboni

INFORMATICA - I puntatori Roberta Gerboni 1 2 I puntatori in C++ Il puntatore un tipo di dato scalare, che consente di rappresentare gli indirizzi delle variabili allocate in memoria. Dominio: Il dominio di una variabile di tipo puntatore è un

Dettagli

SOFTWARE. È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software:

SOFTWARE. È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software: 1 SOFTWARE È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software: SOFTWARE DI SISTEMA (o di base), che deve gestire le funzioni

Dettagli

Corso di Programmazione ad oggetti

Corso di Programmazione ad oggetti Corso di Programmazione ad oggetti Il sistema di I/O del C++ a.a. 2008/2009 Claudio De Stefano 1 Il Modello di Von Neumann Il Modello di Von Neumann prevede che la CPU carichi in maniera sequenziale i

Dettagli

Arduino: Programmazione

Arduino: Programmazione Programmazione formalmente ispirata al linguaggio C da cui deriva. I programmi in ARDUINO sono chiamati Sketch. Un programma è una serie di istruzioni che vengono lette dall alto verso il basso e convertite

Dettagli

BOZZA. cin per la comunicazione dal dispositivo di input standard, la tastiera, al programma (stream di input standard)

BOZZA. cin per la comunicazione dal dispositivo di input standard, la tastiera, al programma (stream di input standard) Capitolo 6 Input/output su file BOZZA 6.1 Stream e file L input/output in C ++, in particolare quello su file, avviene tramite stream. stream. Uno stream è un astrazione di un canale di comunicazione,

Dettagli

Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE

Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE NOME: COGNOME: ============================================================== Esercizio 1 ci sono tante "righe"; non è detto servano tutte...

Dettagli

Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto

Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE

Dettagli

Modulo 5 La programazione Unità 4 Selezione

Modulo 5 La programazione Unità 4 Selezione Modulo 5 La programazione Unità 4 Selezione Prof. Antonio Scanu 1 Quando si utilizza Il costrutto selezione Questo costrutto permette di effettuare una scelta fra due possibili alternative. Per effettuare

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E01 Esempi di programmi A. Miola Ottobre 2011 1 Contenuti Vediamo in questa lezione alcuni primi semplici esempi di applicazioni

Dettagli

Alfabeto ed elementi lessicali del linguaggio C

Alfabeto ed elementi lessicali del linguaggio C Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 2015-2016 Alfabeto ed elementi lessicali del linguaggio C Pietro Di Lena - pietro.dilena@unibo.it s t a t i c s h o r t l e g s ; i n

Dettagli

Università degli Studi di Cassino Corso di Fondamenti di Informatica Puntatori. Anno Accademico 2010/2011 Francesco Tortorella

Università degli Studi di Cassino Corso di Fondamenti di Informatica Puntatori. Anno Accademico 2010/2011 Francesco Tortorella Corso di Informatica Puntatori Anno Accademico 2010/2011 Francesco Tortorella Variabili, registri ed indirizzi Abbiamo visto che la definizione di una variabile implica l allocazione (da parte del compilatore)

Dettagli

JAVASCRIPT. Tale file è associato alla pagina web mediante il tag