Codifica: dal diagramma a blocchi al linguaggio C++



Похожие документы
Le stringhe. Le stringhe

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

Introduzione alla programmazione in C

La selezione binaria

Gian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C

Arduino: Programmazione

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

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

Appunti di Sistemi Elettronici

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

INFORMATICA 1 L. Mezzalira

void funzioneprova() { int x=2; cout<<"dentro la funzione x="<<x<<endl; }

Introduzione a Dev-C++

Corso di Informatica

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

Programmare in Java. Olga Scotti

FONDAMENTI di INFORMATICA L. Mezzalira

Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE

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

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

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

COMUNICAZIONE UTENTI SISTEMI-PROFIS INSTALLAZIONE GE.RI.CO e PARAMETRI2015

Dispensa YACC: generalità

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 18 31/03/2014

INTRODUZIONE, LINGUAGGIO, HANDS ON. Giuseppe Cirillo

INFORMATICA - I puntatori Roberta Gerboni

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

Fondamenti di Informatica Ingegneria Clinica Lezione 19/10/2009. Prof. Raffaele Nicolussi

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

ISTRUZIONI XCODE. Autore: Luca Florio (luca.florio<at>polimi.it)

Variabili e tipi di dato

Linguaggi di programmazione

jt - joetex - percorsi didattici

PROVA INTRACORSO TRACCIA A Pagina 1 di 6

DESKTOP. Uso del sistema operativo Windows XP e gestione dei file. Vediamo in dettaglio queste parti.

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

Il compilatore Dev-C++

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

Capitolo 2. Operazione di limite

Metodologie di programmazione in Fortran 90

Dispense di Informatica per l ITG Valadier

4 3 4 = 4 x x x 10 0 aaa

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

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

INDICE. IL CENTRO ATTIVITÀ... 3 I MODULI... 6 IL MY CLOUD ANASTASIS... 8 Il menu IMPORTA... 8 I COMANDI DEL DOCUMENTO...

MANUALE EDICOLA 04.05

Per accedere clicca su START o AVVIO (in basso a sinistra sul tuo schermo), poi su PROGRAMMI, ACCESSORI e infine su BLOCCO NOTE.

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

Le variabili. Olga Scotti

Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main

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

Introduzione. Informatica B. Daniele Loiacono

Esercitazione N7:Gioco dei 21 fiammiferi (impariamo java giocando)

Dipartimento di Sistemi e Informatica Università degli Studi di Firenze. Dev-C++ Ing. Michele Banci 27/03/2007 1

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a prof.

Corso di Informatica

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE

Eclipse - Nozioni Base

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Il web server Apache Lezione n. 3. Introduzione

Appunti di Informatica 1

Introduzione a ROOT. 1. Informazioni generali

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012

3. Installare Wamp Server

Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007

GUIDA ALLA PROGRAMMAZIONE GRAFICA IN C

Scrivere un programma in Java

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

Funzioni in C. Violetta Lonati

Installazione di Zelio Soft 2 su Microsoft Windows Vista

LABORATORIO DI PROGRAMMAZIONE EDIZIONE 1, TURNO B

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

Introduzione al Linguaggio C

Linguaggio C Compilazione, linking e preprocessor

IL MIO PRIMO SITO: NEWS

ESERCIZI DI PROGRAMMAZIONE C/C++ per le classi terza

Struttura di un programma Java

1 of 5 19/03/ :15

Java:Struttura di Programma. Fabio Scanu a.s. 2014/2015

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

BIT? Cosa c è dietro a questo nome? Che cos è il bit? Perché si usa? Come si converte un numero binario?

lo PERSONALIZZARE LA FINESTRA DI WORD 2000

V989 Brush ITA Tutorial.docx 必 看 刷 机 教 程 _.doc

Guida all uso di Java Diagrammi ER

Prof.ssa Paola Vicard

LINGUAGGI DI PROGRAMMAZIONE

Corso Eclipse. Prerequisiti. 1 Introduzione

Convertitori numerici in Excel

Strumenti per la programmazione

IL MIO PRIMO SITO NEWS USANDO GLI SCHEDARI

Tale attività non è descritta in questa dispensa

Che differenza c è tra una richiesta XML ed una domanda XML? (pag. 4)

Descrizione di un algoritmo

Транскрипт:

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++ 010011 110111 100011.... Progr. Eseguibile (ling. macchina)

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 http://www.cplusplus.com/reference/ 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).

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.

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) 010011110111100011.... Programma eseguibile (in ling. macchina) (Nota: nella fase 2 stiamo includendo anche il linkaggio, operazione che vedremo in seguito)

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.

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.

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;

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;

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