DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1 – Info B Marco D. Santambrogio – [email protected] Matteo Ferroni – [email protected] Ver. aggiornata al 24 Agosto 2015 Sono il vostro docente? DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 2 No? Aula sbagliata!!! DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 3 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 4 Lab 1: Agenda DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Informazioni sui laboratori • Benvenuti nel fantastico mondo del C • Esercizi Lab1 5 Lab 1: Agenda DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Informazioni sui laboratori • Benvenuti nel fantastico mondo del C • Esercizi Lab1 6 Calendario dei Labs: C DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • 20 Ottobre 2015, 10am-12pm, @ B6.27 Installation Party: strumenti di sviluppo per il corso di Info B • 27 Ottobre 2015, 10.30am-12.30pm, @ B6.27 C: Strutture di controllo e cicli • 10 Novembre 2015, 10.30am-1.30pm, @ B6.27 C: array e matrici • 17 Novembre 2015, 10.30am-1pm, @ B6.27 C: tipi di dato e strutture 7 Calendario dei Labs: MATLAB DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • 15 Dic 2015, 10.30am-12.30pm, @ B6.27 MATLAB: Ambienti di sviluppo e primi codici • 12 Gennaio 2016, 10.30am-12.30pm, @ B6.27 MATLAB: strutture di controllo, tipi di dato strutturato, e vettori • 19 Gennaio 2016, 10.30am-12.30pm, @ B6.27 MATLAB: funzioni ricorsive • 26 Gennaio 2016, 10.30am-12.30pm, @ B6.27 MATLAB: funzioni ricorsive, funzioni di ordine superiore, grafici 2D e 3D 8 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.deib.polimi.it/santambr/dida/infob Corso di questo anno: Home/1516 Calendario: Home/calendario.htm Video: Home/1516/video.htm 9 Lab 1: Agenda DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Informazioni sui laboratori • Benvenuti nel fantastico mondo del C Ambiente di sviluppo Un primo programma • Esercizi Lab1 10 Ambienti di sviluppo DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE ( • C Un compilatore C • g++, gcc MinGW: http://www.mingw.org/ OR• AND Un editor/IDE OR •• OR • Code::Blocks: http://www.codeblocks.org/ Geany: http://www.geany.org/ DevC++: http://www.bloodshed.net/devcpp.html • Matlab AND http://www.mathworks.it/products/matlab/ OR Matlab: Octave: http://www.gnu.org/software/octave/ OR QtOctave: http://www.malinc.se/math/octave/mainen.php ) • Virtual Machine già pronte OR http://home.deib.polimi.it/santambr/dida/infob/1415/labgb/tools.htm • Ambiente PoliMI OR 11 Scriviamo il programma DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 12 Scriviamo il programma DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 13 Scriviamo il programma DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Virtual Desktop https://virtualdesktop.polimi.it 14 Per macchine PoliMI DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE https://virtualdesktop.polimi.it 15 Scriviamo il programma DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Virtual Desktop https://virtualdesktop.polimi.it • Lanciando CodeBlock http://tinyurl.com/1st-codeblock 16 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 17 Desktop “VM” DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 18 Come eseguire Geany DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 19 Come eseguire Geany DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE “Cliccando” l’icona 20 Come eseguire Geany DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Dal menù 21 Ecco Geany DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 22 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 23 Come si lanciano… DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 24 Ambiente – “Linux” o VM DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Editor: gedit Shell: bash 25 Il primo programma: ciao mondo DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 26 Provate voi… DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 27 Provate voi… DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 28 Provate voi… DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Come faccio il #? 29 Provate voi… DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Come faccio il #? ALT + à 30 Provate voi… DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Come faccio il #? ALT + à • Come faccio le graffe? 31 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 } 32 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! 33 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 34 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 35 Lab 1: Agenda DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Informazioni sui laboratori • Benvenuti nel fantastico mondo del C • Esercizi Lab1 36 Exe 1: Stampa a video DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Scrivere un programma in C che visuallizzi a video la seguente scritta: INFOB - 2015/2016 Laboratorio 1 Studente: Nome Cognome Matricola: #mat 37 Exe 2: Trova errori DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Il seguente programma non funziona… 38 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 39 Exe 4: Gestione errori sull’input DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si scriva un programma in C che ammete l’inserimento da tastiera solo di numeri dispari e compresi tra 1 e 7 40 Exe 5: Inserimento dati DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si scriva un “convertitore” di unità dal sistema SI al US customary units • 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) 41 Fine… DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 42