DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 0: 23 Marzo 2015 Marco D. Santambrogio – [email protected] Gianluca Durelli - [email protected] Ver. aggiornata al 19 Marzo 2015 Obiettivi DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Imparare ad usare l’ambiente di sviluppo Cosa è e come funziona un compilatore Sistemazione degli ambienti di sviluppo Comandi base da linea di comando • Esercitarsi sui costrutti visti a lezione Inserimento dati da tastiera Controllo dei dati Uso delle funzioni 2 Lab 1: Agenda DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Informazioni sui laboratori • Benvenuti nel fantastico mondo del C • Esercizi Lab1 3 Lab 1: Agenda DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Informazioni sui laboratori • Benvenuti nel fantastico mondo del C • Esercizi Lab1 4 Calendario dei Labs DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Dove: EG 7/L.26.14 • Quando Lunedì: 15.30 – 18.30 • Macchine per il lab: Il vostro portatile Macchina lab: virtualdesktop 5 Struttura DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Tolte le slide di “contesto” su Obiettivi Elenco esercizi • Approccio dritto al sodo, niente "fronzoli": Introduzione all'uso di un editor di testo e di una shell Non useremo un IDE (e.g., code::blocks, eclipse, ...) • È una proposta, ci sono molti modi diversi di ottenere gli stessi risultati • Per info, fare riferimento al sito del corso: Home: http://home.dei.polimi.it/santambr/dida/ieim/2015/ Calendario: http://home.dei.polimi.it/santambr/dida/ieim/calendario.htm 6 Installation Party: Agenda DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Informazioni sui laboratori • Benvenuti nel fantastico mondo del C Ambiente di sviluppo Un primo programma • Esercizi Lab1 7 Ambienti di sviluppo DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • C ( Un compilatore C • g++, gcc OR• MinGW: http://www.mingw.org/ AND Un editor/IDE • Code::Blocks: http://www.codeblocks.org/ OR • Geany: http://www.geany.org/ OR • DevC++: http://www.bloodshed.net/devcpp.html ) OR• Virtual Machine già pronte http://home.deib.polimi.it/santambr/dida/ieim/2015/ tools.htm • Ambiente PoliMI OR 8 Scriviamo il programma DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 9 Scriviamo il programma DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 10 Scriviamo il programma DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Virtual Desktop https://virtualdesktop.polimi.it 11 Per macchine PoliMI DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE https://virtualdesktop.polimi.it 12 Scriviamo il programma DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Virtual Desktop https://virtualdesktop.polimi.it • Lanciando CodeBlock http://tinyurl.com/1st-codeblock 13 Scriviamo il programma DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Virtual Desktop https://virtualdesktop.polimi.it • Lanciando CodeBlock http://tinyurl.com/1st-codeblock • Usando la VM (e.g. Didattica) e quindi lanciando Geany 14 Desktop “VM” DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 15 Come eseguire Geany DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 16 Come eseguire Geany DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE “Cliccando” l’icona 17 Come eseguire Geany DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Dal menù 18 Ecco Geany DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 19 Scriviamo il programma DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Virtual Desktop https://virtualdesktop.polimi.it • Lanciando CodeBlock http://tinyurl.com/1st-codeblock • Usando la VM (e.g. Didattica) e quindi lanciando Geany • Usando la VM (e.g. Didattica) e aprendo un editor di testo 20 Come si lanciano… DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 21 Ambiente – “Linux” o VM DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Editor: gedit Shell: bash 22 Il primo programma: ciao mondo DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 23 Provate voi… DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 24 Provate voi… DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 25 Provate voi… DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Come faccio il #? 26 Provate voi… DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Come faccio il #? ALT + à 27 Provate voi… DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Come faccio il #? ALT + à • Come faccio le graffe? 28 Provate voi… DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Come faccio il #? ALT + à • Come faccio le graffe? (shift)+(alt gr)+(è) per la { (shift)+(alt gr)+(+) per la } 29 Provate voi… DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Come faccio il #? ALT + à • Come faccio le graffe? (shift)+(alt gr)+(è) per la { (shift)+(alt gr)+(+) per la } • Ora scrivete il vostro primo programma! 30 Tutorial: bash e gcc DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Ecco alcuni comandi utili per utilizzare la shell bash: $ pwd - (Print Working Directory) visualizza la directory corrente $ ls - elenca i file presenti nella cartella corrente $ cd CARTELLA - cambia la cartella corrente a CARTELLA $ ./PROG - esegue il programma specificato (se è nella cartella corrente) • Questi pochi comandi sono sufficienti per individuare ed eseguire un programma Per compilare un sorgente, abbiamo usato il comando gcc • gcc FILE.c -o PROG Questo comando traduce il codice sorgente presente in FILE.c e lo salva nel file eseguibile PROG 31 HowTo: compilare ed eseguire DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Per poter eseguire il nostro programma, bisogna tradurlo in codice macchina Questa operazione viene eseguita dal compilatore (e.g., gcc) • Scritto e salvato il file sorgente (e.g., sul Desktop, nel file primo.c), • Dobbiamo compilare ed eseguire un programma utilizzando una shell (e.g., bash) $ cd Desktop $ gcc primo.c –o exe $ ./exe 32 Installation Party: Agenda DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Informazioni sui laboratori • Benvenuti nel fantastico mondo del C • Esercizi Installation Party 33 Da Lezione: Inserimento dati DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Problema Richiedi all’utente la sua altezza in centrimentri e mostrala a video in metri • Pseudocodice 1.Scrivi “quanto sei alto?” 2.Leggi altezzacm 3.Altezzam = alteccacm/100 4.Scrivi “sei alto: altezzam” 34 Pseudocodice vs Codice C DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Pseudocodice 1. 2. 3. 4. Scrivi “quanto sei alto?” Leggi altezzacm Altezzam = alteccacm/100 Scrivi “sei alto: altezzam” 35 Un primo errore DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 36 Un secondo errore DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 37 Un terzo errore DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 38 Soluzione corretta DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 39 Exe 1: Stampa a video DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Scrivere un programma in C che visuallizzi a video la seguente scritta: IEIM - 2015 Laboratorio 1 Studente: Nome Cognome Matricola: #mat 40 Exe 2: Trova errori DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Il seguente programma non funziona… 41 Exe 3: Mostra caratteri DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si scriva un programma che richieda l’inserimento di un carattere e lo mostri a video, con anche la sua codifica ASCII 42 Exe 4: Gestione errori sui caratteri DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si scriva un programma in C che richiede l’inserimento di due caratteri e li mostra a video 43 Exe 5: Inserimento dati DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si scriva un “convertitore” di unità dal sistema SI al US customary units Un programma per conversione • Ci interessano solo le seguenti conversioni piedi in metri (1ft= 0.3048 m) pound in Kg (1lb = 453.59237g) yard in metri (1yd = 0.9144m) 44 Fine… DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 45