DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 18 -21 Marzo 2013 Marco D. Santambrogio –...

23
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 18 -21 Marzo Lab 1: 18 -21 Marzo 2013 2013 Marco D. Santambrogio – [email protected] Gianluca Durelli - [email protected] Ver. aggiornata al 21 Marzo 2013

Transcript of DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 18 -21 Marzo 2013 Marco D. Santambrogio –...

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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Lab 1: 18 -21 Marzo 2013Lab 1: 18 -21 Marzo 2013

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

Ver. aggiornata al 21 Marzo 2013

Page 2: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 18 -21 Marzo 2013 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

2

Page 3: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 18 -21 Marzo 2013 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

3

Page 4: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 18 -21 Marzo 2013 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: 18 -21 Marzo 2013 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.00 – 16.00

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

5

Page 6: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 18 -21 Marzo 2013 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/2013/http://home.dei.polimi.it/santambr/dida/ieim/2013/Calendario: http://home.dei.polimi.it/santambr/dida/ieim/calendario.htmhttp://home.dei.polimi.it/santambr/dida/ieim/calendario.htm

6

Page 7: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 18 -21 Marzo 2013 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/Feedback-LabIEIM2013http://tinyurl.com/Feedback-LabIEIM2013

7

Page 8: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 18 -21 Marzo 2013 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

8

Page 9: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 18 -21 Marzo 2013 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)

9

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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Ambiente – CentOS o VMAmbiente – CentOS o VM

10

Shell: bashShell: bash

Editor: gedit

Editor: gedit

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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Come si Come si lancianolanciano……

11

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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

12

Struttura di un Struttura di un programma Cprogramma C

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 13: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 18 -21 Marzo 2013 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

13

Page 14: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 18 -21 Marzo 2013 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

14

Page 15: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 18 -21 Marzo 2013 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

15

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

gcc)

Page 16: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 18 -21 Marzo 2013 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

16

Page 17: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 18 -21 Marzo 2013 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 - 2012/2012Laboratorio 1Studente: Nome CognomeMatricola: #mat

17

Page 18: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 18 -21 Marzo 2013 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…

18

Page 19: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 18 -21 Marzo 2013 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

19

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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Exe 4: Gestione errori Exe 4: Gestione errori sullsull’’inputinput

• Si scriva un programma in C che ammete l’inserimento da tastiera solo di numeri dispari e compresi tra 1 e 7

20

Page 21: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: 18 -21 Marzo 2013 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

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

21

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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Exe 6: funzioniExe 6: funzioni

• Si scriva un programma in C che proponga all’utente un menu’ a 5 voci le cinque opzioni solo i cinque

problemi risolti in precedenza• Si scriva un nuovo programma in cui I 5

precendenti programmi ora sono 5 funzioni (non più main)

22

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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Fine…Fine…

23