Introduzione a Ingresso e Uscita. Scrittura di un programma C++ Compilazione Esecuzione

Documenti analoghi
Introduzione a Ingresso e Uscita. Scrittura di un programma C++ Compilazione Esecuzione

Introduzione a. Funzioni di Ingresso e Uscita. Compilazione

Nozioni Base di Linux

Primi passi Output formattato Le quattro operazioni. Programmazione 1. Lezione 2 Parte 2. Vincenzo Marra.

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 4 24/10/2013

Il linguaggio C. Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1

INTRODUZIONE ALLA PROGRAMMAZIONE

Esplorare e modificare il file system Compilare con gcc Lanciare un programma da linea di comando

Funzioni. Unità 1. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

L AMBIENTE CODE BLOCKS E L IO

Introduzione al linguaggio C

Elementi di informatica. Programmare in C

Elementi di informatica

L AMBIENTE CODE BLOCKS E L IO

3. Programmi e algoritmi

Laboratorio di programmazione

Il processo di compilazione. dalle note del prof. Oliver Fringer

Elementi di Informatica A. A. 2016/2017

Laboratorio di Algoritmi e Strutture Dati

perror: individuare l errore quando una system call restituisce -1

Informatica. Dipartimento di Economia. Ing. Cristiano Gregnanin. 20 ottobre Corso di laurea in Economia

Il compilatore Dev-C++

Informatica! Appunti dal laboratorio 1!

STORIA E CARATTERISTICHE

Linguaggi di Programmazione

Corso di Laurea Ingegneria Informatica Laboratorio di Informatica

Introduzione al corso. Obiettivo del corso

Laboratorio di Programmazione Laurea in Bioinformatica

Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 02/04/2014/ Appello straordinario/ Foglio delle domande / VERSIONE 1

ciclo di vita della soluzione (informatica) di un problema

Linguaggio di Riferimento: C

Input/Output di numeri

Fondamenti di informatica T-1 (A K) Esercitazione 2 Basi del linguaggio Java

Concetto di stream. c i a o \0. c i a o \0. c i a o \0

Iniziare a programmare in C++

Fortran in pillole : prima parte

#include <stdio.h> main() { - 1 -

LINGUAGGI DI ALTO LIVELLO

Primi passi Output formattato Le quattro operazioni Tipi, variabili, espressioni. Programmazione 1. Lezione 2. Vincenzo Marra.

Introduzione alla programmazione in linguaggio C

Cosa serve per cominciare?

Introduzione al C. Informatica Generale - Introduzione al C Versione 1.0, aa p.1/17

Primo programma in C

Linguaggio C: introduzione

Lezione 6 Introduzione al C++ Mauro Piccolo

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

Primi passi col linguaggio C

BREVISSIMA GUIDA AL SISTEMA UNIX / LINUX

Lab 1: Marzo 2013

Burocrazia: Primi passi con il linguaggio C. Diversi tipi di linguaggio. Un solo linguaggio

Primi esempi di programmi. Il tipo int Le variabili Altri tipi interi Operatori di assegnazione

Istruzioni Condizionali

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Corso di Fondamenti di Informatica Linguaggi di Programmazione

Introduzione a Visual Studio 2005

Informatica! Appunti dal laboratorio 1!

Introduzione C++ Compilatori Librerie Usare oggetti

Introduzione alla programmazione. Walter Didimo

Introduzione al linguaggio C. Emilio Di Giacomo

Il linguaggio C - Introduzione

UNIVERSITA DEGLI STUDI ROMA TRE DIPARTIMENTO DI MATEMATICA E FISICA

Linguaggio C: Introduzione ad ambienti di sviluppo integrati (IDE) e a Dev-C++ Università degli Studi di Brescia

C++ Barriera di astrazione. Barriera di astrazione. Basic. Basic. Lisp. Lisp. Pascal. Prolog. Pascal. Prolog. Cobol. Fortran IMPERATIVI FUNZIONALI

Lezione 1. Programmazione. Lab di Programmazione. Linux e la sua shell: questi sconosciuti. Filippo Gaudenzi. Università degli Studi di Milano

Linguaggi di alto livello. Barriera di astrazione. Pascal. Cobol. Fortran. Basic. Modula-2. Lisp. Simula67 Scheme. Smalltalk C++ Prolog AN

Tecniche della Programmazione: Note sull uso del DEVC++

Lab 1 Info B. Marco D. Santambrogio Riccardo Cattaneo Ver. aggiornata al 12 O0obre 2013

Introduzione al Linguaggio C Corso di Informatica Laurea in Fisica

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

Programmazione Procedurale in Linguaggio C++

Makefile. Il file dependency system di Unix (serve ad automatizzare il corretto aggiornamento di più file che hanno delle dipendenze)

Introduzione al C. InformaticaB. Daniele Loiacono

Sommario FONDAMENTI DI INFORMATICA. Definizione formale di algoritmo. Informatica e algoritmi. ALGORITMI E LINGUAGGIO PYTHON Introduzione

Strumenti per la programmazione. Strumenti per la programmazione. Strumenti per la programmazione. Strumenti per la programmazione

Funzioni. Unità 1. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi Alberto Pretto

Programmazione in ANSI C. Standard del Con successive aggiunte

Introduzione a Visual Studio Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Informatica B Esercitazione 1

Un semplice programma L ambiente di sviluppo Dev-C++ Codifica del programma Compilazione e correzione errori Esecuzione e verifica

Lab 1 Info B. Marco D. Santambrogio Matteo Ferroni Ver. aggiornata al 24 Agosto 2015

Assegnazione di una variabile

Fondamenti di Informatica Ing. Biomedica

INPUT/OUTPUT INPUT/OUTPUT

Transcript:

Introduzione a Ingresso e Uscita Scrittura di un programma C++ Compilazione Esecuzione

2 Sistema operativo 1/2 Il sistema operativo di riferimento per le esercitazioni di questo corso è GNU/Linux Perché? E' un sistema aperto Si può leggere il testo dei programmi di cui è composto E' di alta qualità E' libero,, ossia: gratuito modificabile e redistribuibile

3 Sistema operativo 2/2 Si possono sviluppare i propri programmi anche con altri sistemi operativi durante il corso? Sì, tenendo conto dei due punti seguenti: Nessun supporto da parte del docente La prova di programmazione dovrà essere svolta su una delle macchine delle laboratorio,, utilizzando il il sistema operativo GNU/Linux installato sulla macchina

4 File contenenti programmi Nel caso più semplice, un programma C/C++ non è altro che un documento di testo, scritto appunto in linguaggio C/C++ Tra i suffissi tipici dei file contenenti programmi: Linguaggio C.c Linguaggio C++.cc

5 Editor di testo Di cosa abbiamo bisogno per scrivere programmi in C/C++ Ci basta un editor di testo (gedit, kedit, kate, emacs, vi,...) Qualsiasi editor va bene Non useremo IDE (torneremo su questo argomento a fine corso)

6 Ingresso e uscita Input/Output Ingresso di informazioni (da elaborare) all'interno di un processo Uscita di informazioni (elaborate) da un processo Esempio: stampa di informazioni sullo schermo, lettura di valori da tastiera

7 iostream Un programma che deve effettuare input/output 'classico' deve contenere le direttive #include <iostream> using namespace std; Tali direttive devono precedere il primo punto in cui viene effettuato l'input/output

8 Anatomia programma C++ direttive main() { } istruzioni

Stampa su terminale Sintassi più semplice per stampare una stringa su terminale: cout<<stringa ; ove stringa è una sequenza di caratteri delimitata da doppi apici esempio di stringa Daremo informazioni più precise ed entreremo in maggiori dettagli nella prossima esercitazione 9

10 Nota sulle parentesi graffe Sulle tastiere italiane: { Alt + 123 sul tastierino numerico } Alt + 125 sul tastierino numerico { Alt Gr + Shift + è } Alt Gr + Shift + +

Primo esercizio 1/4 Scrivere un programma che stampi Ciao mondo sul terminale e memorizzarlo in un file dal suffisso.cc Aspettare prima di eseguirlo! 11

12 Primo esercizio 2/4 #include <iostream> using namespace std; main() { } cout<<"ciao mondo!" ;

13 Esecuzione programma 1/2 L'elaboratore è in grado di eseguire il programma che abbiamo appena scritto?

14 No Esecuzione programma 2/2

15 Linguaggi I microprocessori presenti negli elaboratori hanno un proprio linguaggio di programmazione, e capiscono solo quello Il cosiddetto linguaggio macchina E' un linguaggio molto elementare, cosiddetto di basso livello,, in cui non è facile scrivere programmi Sono stati quindi definiti molti linguaggi, di alto livello,, che rendono molto più agevole la programmazione

Traduzione Però, per poter essere eseguito, ossia per d i v e n t a re c i ò c h e s i d e fin i s c e u n eseguibile,, un programma scritto in un linguaggio ad alto livello deve essere tradotto in linguaggio macchina Questa operazione è effettuata da s t r u m e n t i c h i a m a t i t i p i c a m e n t e compilatori Il C/C++ è un linguaggio ad alto livello Quindi, per poter eseguire programmi scritti in linguaggio C/C++ bisogna prima tradurli in linguaggio macchina 16

17 File sorgente File sorgente (unità di traduzione): file di testo che contiene il programma scritto nel linguaggio di partenza O solo parte del programma in programmi più evoluti Quello che abbiamo creato è quindi un file sorgente di un programma in C++

18 Compilazione Per ottenere un programma eseguibile a partire dal nostro sorgente possiamo utilizzare un compilatore per il linguaggio C++ Schema: Sorgente->Compilazione->Eseguibile

19 Compilatore gcc 1/2 gcc: GNU Compiler Collection g++: : front end al gcc per compilare sorgenti C++ Tutte le informazioni sul compilatore: http://www.gnu.org/software/gcc/ man g++ Progetto GNU: http://www.gnu.org/

20 Installazione g++ Soluzione migliore per capire come installare il compilatore Cercare tra le risorse relative alla propria distribuzione Forum, manuali, Scorciatoia: cercare con google Esempio: installazione gcc g++ <nome_distribuzione>

Compilatore gcc 2/2 Sintassi più semplice, da una shell,, per generare un programma eseguibile da un file sorgente: g++ nome_sorgente.cc Assegna un nome predefinito al programma eseguibile, tipicamente./a.out g++ -o nome_eseguibile nome_sorgente.cc Permette di scegliere il nome del programma eseguibile 21

22 g++ -o nome_sorgente.cc Errore tipico Manca il nome dell'eseguibile dopo l'opzione -o O non usate affatto l'opzione -o, oppure g++ -o nome_eseguibile nome_sorgente.cc

23 Proviamo...... a compilare ed eseguire il nostro programma...

24 Messaggi di errore 1/2 Può darsi che la compilazione non sia andata a buon fine In questo caso il compilatore ha sicuramente scritto dei messaggi

25 Messaggi di errore 2/2 Se ci sono problemi, il compilatore può comunicare Warning (avvisi): c'è qualcosa di 'sospetto' nel codice, ma si può comunque generare un eseguibile Error: : ci sono errori che impediscono la conclusione della compilazione LEGGETELI per capire cosa c'è che non va nel programma!!!

Invocazione programma 1/3 Supponiamo che il file eseguibile si trovi nella cartella corrente. In questo caso, per far partire il programma può bastare scrivere il nome del file eseguibile e premere invio Come abbiamo visto il nome predefinito del file eseguibile è a.out In base a quello che abbiamo appreso sui percorsi assoluti e relativi ci pare che scrivere il solo nome del programma corrisponda ad usare un percorso relativo Le cose però non stanno così per quanto riguarda l'esecuzione dei file... 26

27 Invocazione programma 2/3 Se si immette il solo nome del file, la shell cerca in verità il file eseguibile in una serie di cartelle predefinite Se siamo fortunati, tra le cartelle predefinite della shell c'è anche la cartella corrente Se invece siamo sfortunati, la cartella corrente non è nell'elenco, e la shell ci dice che non trova il programma

Invocazione programma 3/3 Nel secondo caso abbiamo due possibilità: Usare un percorso assoluto Esempio: /home/paolo/a.out Usare un percorso relativo dicendo però esplicitamente alla shell che il file va cercato qui.. Per farlo utilizziamo il nome speciale. Esempio:./a.out Con entrambe le soluzioni la shell non cerca nelle proprie cartelle predefinite, ma bensì esattamente dove le indichiamo noi 28

29 Se tutto ha funzionato... Forse il prompt riappare appiccicato al nostro messaggio... Non siamo andati a capo! Bisognerebbe poter stampare il carattere a capo (newline)

30 Sequenze di controllo I caratteri non visualizzabili (caratteri speciali) possono essere rappresentati mediante sequenze di controllo (escape( sequence) \n newline \t tabulazione \\ barra inversa \' apice \ virgolette

31 Primo esercizio 3/4 Modificare il programma affinché vada anche a capo

32 Primo esercizio 4/4 #include <iostream> using namespace std; main() { } cout<<"ciao mondo!\n" ;

33 Accodamento operatori Gli operatori di uscita << possono essere accodati l'uno all'altro Esempio: cout<<"ciao "<<"mondo\n"; Gli argomenti verranno stampati l'uno di seguito all'altro Non solo le stringhe possono essere passate come argomento...

34 Manipolatori Ulteriori oggetti che possono essere passati all'operatore di uscita Modificano in qualche modo la formattazione dell'ingresso/uscita Esempio: endl: equivalente alla sequenza di controllo \n

35 Esercizio 2 1/2 Usare il manipolatore endl per andare a capo nel precedente programma

36 Esercizio 2 2/2 #include <iostream> using namespace std; main() { } cout<<"ciao mondo!"<<endl ;