DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 17 -20 Marzo 2014 Marco D. Santambrogio –...

24
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 17 -20 Marzo Lab 1: 17 -20 Marzo 2014 2014 Marco D. Santambrogio – [email protected] Gianluca Durelli - [email protected] Ver. aggiornata al 17 Marzo 2014

Transcript of DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 17 -20 Marzo 2014 Marco D. Santambrogio –...

Page 1: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 17 -20 Marzo 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Lab 1: 17 -20 Marzo Lab 1: 17 -20 Marzo 20142014

Marco D. Santambrogio – [email protected] Durelli - [email protected]

Ver. aggiornata al 17 Marzo 2014

Page 2: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 17 -20 Marzo 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

17 Marzo17 Marzo

2

Page 3: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 17 -20 Marzo 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

ObiettiviObiettivi

• 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

3

Page 4: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 17 -20 Marzo 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Lab 1: AgendaLab 1: Agenda

• Informazioni sui laboratori

• Benvenuti nel fantastico mondo del C

• Esercizi Lab1

4

Page 5: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 17 -20 Marzo 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Lab 1: AgendaLab 1: Agenda

• Informazioni sui laboratori

• Benvenuti nel fantastico mondo del C

• Esercizi Lab1

5

Page 6: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 17 -20 Marzo 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Calendario dei LabsCalendario dei Labs

• Dove: EG 7

• Quando Lunedì: 15.30 – 18.30 Giovedì: 13.30 – 16.30

• Macchine per il lab: Il vostro portatile Macchina lab: virtualdesktop

6

Page 7: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 17 -20 Marzo 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Per macchine PoliMIPer macchine PoliMI

http://virtualdesktop.polimi.it

7

Page 8: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 17 -20 Marzo 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

StrutturaStruttura

• 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, ...)• E 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/2014http://home.dei.polimi.it/santambr/dida/ieim/2014//

Calendario: http://home.dei.polimi.it/santambr/dida/ieim/calendario.htmhttp://home.dei.polimi.it/santambr/dida/ieim/calendario.htm

8

Page 9: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 17 -20 Marzo 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

FeedbackFeedback

Come per le lezioni, anche per i lab si possono dare feedback

http://tinyurl.com/IEIM2014-http://tinyurl.com/IEIM2014-FeedbackLabFeedbackLab

9

Page 10: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 17 -20 Marzo 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Lab 1: AgendaLab 1: Agenda

• Informazioni sui laboratori

• Benvenuti nel fantastico mondo del C Ambiente di sviluppo Un primo programma

• Esercizi Lab1

10

Page 11: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 17 -20 Marzo 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Ambiente di sviluppoAmbiente di sviluppo

• Useremo un ambiente basato su distribuzioni Linux: Sulle macchine del lab, CentOS Sui vostri portatili…

• Per sviluppare del codice C, è sufficiente avere: Un editor di testo, magari con syntax highlighting (e.g., geany, gedit) - Un compilatore (e.g., gcc)

11

Page 12: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 17 -20 Marzo 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Ambiente – CentOS o VMAmbiente – CentOS o VM

12

Shell: bashShell: bash

Editor:

gedit

Editor:

gedit

Page 13: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 17 -20 Marzo 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Come si Come si lancianolanciano……

13

Page 14: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 17 -20 Marzo 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

14

Struttura di un programma Struttura di un programma CC

inclusione librerie / per poter invocare funzioni utili (i/o, ...) /

dichiarazione di variabili globali e funzioni

int main ( ) {

dichiarazione di variabili locali

istruzione 1; / tutti i tipi di operazioni, e cioè: /istruzione 2; / istr. di assegnamento / istruzione 3; / istr. di input / output /istruzione 4; / istr. di controllo (condizionali, cicli) /...istruzione N;

}

parte esecutiva

parte dichiarativa locale

parte dichiarativa globale

Ogni programma C deve contenere un modulo int main() {...}

Page 15: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 17 -20 Marzo 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Il primo programma: ciao Il primo programma: ciao mondomondo

15

Page 16: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 17 -20 Marzo 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Tutorial: bash e gccTutorial: bash e gcc

• 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

16

Page 17: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 17 -20 Marzo 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

HowTo: compilare ed eseguireHowTo: compilare ed eseguire

• 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

17

• Per poter eseguire il nostro programma, bisogna tradurlo in codice macchina Questa operazione viene eseguita dal compilatore (e.g., gcc)

Page 18: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 17 -20 Marzo 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Lab 1: AgendaLab 1: Agenda

• Informazioni sui laboratori• Benvenuti nel fantastico mondo del C

• Esercizi Lab1

18

Page 19: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 17 -20 Marzo 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Exe 1: Stampa a videoExe 1: Stampa a video

• Scrivere un programma in C che visuallizzi a video la seguente scritta:

IEIM - 2013/2014Laboratorio 1Studente: Nome CognomeMatricola: #mat

19

Page 20: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 17 -20 Marzo 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Exe 2: Trova erroriExe 2: Trova errori

• Il seguente programma non funziona…

20

Page 21: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 17 -20 Marzo 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Exe 3: Mostra caratteriExe 3: Mostra caratteri

• Si scriva un programma che richieda l’inserimento di un carattere e lo mostri a video, con anche la sua codifica ASCII

21

Page 22: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 17 -20 Marzo 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Exe 4: Gestione errori sui Exe 4: Gestione errori sui carattericaratteri

• Si scriva un programma in C che richiede l’inserimento di due caratteri e li mostra a video

22

Page 23: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 17 -20 Marzo 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Exe 5: Inserimento datiExe 5: Inserimento dati

• 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)

23

Page 24: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 17 -20 Marzo 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Fine…Fine…

24