La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1 – Info B Marco D. Santambrogio – Riccardo Cattaneo –

Presentazioni simili


Presentazione sul tema: "DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1 – Info B Marco D. Santambrogio – Riccardo Cattaneo –"— Transcript della presentazione:

1 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1 – Info B Marco D. Santambrogio – marco.santambrogio@polimi.it Riccardo Cattaneo – cattaneo@elet.polimi.it Ver. aggiornata al 9 Agosto 2013

2 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: Agenda Informazioni sui laboratori Benvenuti nel fantastico mondo del C Esercizi Lab1 2

3 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: Agenda Informazioni sui laboratori Benvenuti nel fantastico mondo del C Esercizi Lab1 3

4 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calendario dei Labs 8 Ottobre 2012, 3pm-5pm, @ LM1 Installation Party: strumenti di sviluppo per il corso di Info B 22 Ottobre 2012, 3pm-7pm, @ L13 Primi programmi in C: Strutture di controllo e cicli 29 Ottobre 2012, 3pm-7pm, @ LM1 C: array e matrici 4 Info da aggiornare

5 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calendario dei Labs 3 Dicembre 2012, 3pm-6pm, @ L13 MATLAB: ambiente di sviluppo e primi codici 17 Dicembre 2012, 3pm-7pm, @ LM1 MATLAB: strutture di controllo, tipi di dato strutturato, e vettori 14 Gennaio 2013, 3pm-7pm, @ LM1 MATLAB: funzioni ricorsive, funzioni di ordine superiore, grafici 2D e 3D 5 Info da aggiornare

6 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: Agenda Informazioni sui laboratori Benvenuti nel fantastico mondo del C Esercizi Lab1 6

7 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Premessa: int vs. void main() Lo standard (ANSI C99) prevede luso di int main() con listruzione return 0; al termine del programma Luso di void main() è accettato da quasi tutti i compilatori, fatto salvo la segnalazione di un warning. 7

8 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Premessa: int vs. void main() Solo con alcuni compilatori viene segnalato un errore, e il programma non viene compilato In tal caso void main() va sostituito con int main(), mettendo listruzione return 0; al termine del programma 8

9 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Premessa: int vs. void main() 9

10 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il primo programma: ciao mondo 10

11 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ciao Mondo: stdio.h Come prima cosa, dobbiamo includere le librerie necessarie al funzionamento del nostro programma. La libreria stdio.h Standard Input Output Permette di utilizzare I comandi necessari per richiedere dati o visualizzare dei messaggi. 11

12 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ciao Mondo: main Tutti i programmi in C contengono un elemento principale: Il main main contiene le istruzioni che verranno eseguite allavvio del nostro programma 12

13 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ciao Mondo: main La sequenza di istruzioni che caratterizzano il main sono racchiuse tra parentesi graffe Tale blocco di istruzioni e anche noto come corpo Ogni istruzione deve essere seguita da un punto e virgola 13

14 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ciao Mondo: printf 14

15 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ciao Mondo: printf Stampa a video il mesaggio Ciao Mondo! printf e contenuta in stdio.h Il messaggio da stampare e contenuto tra 15

16 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ciao Mondo: printf return e' un comando che ci permette di comunicare con il sistema ospite In questo caso viene utilizzato per comunicare lo stato di terminazione del programma 0 indica una terminazione corretta del nostro programma 16

17 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Input - Output printf viene utiizzata per fornire un output del programma a video scanf viene utilizzato per fornire degli input, e.g. da tastiera, al nostro programma 17

18 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Tipi di dato in C In C esistono diversi tipi di dato built-in, tra cui int: numeri interi oat: numeri con virgola (singola precisione) double: numeri con virgola (doppia precisione) char: caratteri (sono interi che possono variare tra 0-255) Inoltre il C fornisce anche la possibilità di denire dei nuovi tipi di dato 18

19 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Mostra caratteri Problema Si scriva un programma che richieda linserimento di un carattere e lo mostri a video 19

20 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Tipo carattere e codifica ASCII 20

21 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sommare -32 21

22 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Un esempio di calcolo 22

23 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE HELP: errori sullinput 23

24 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: Agenda Informazioni sui laboratori Benvenuti nel fantastico mondo del C Esercizi Lab1 Warm Up printf Correggi errori Qualche cosa un pò più divertente Inserimento di dati dallutente Verifica ingressi Altri exe… MCD 24

25 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe1: printf Problema Scrivere un programma in C che visuallizzi a video la seguente scritta: Informatica B - 2012/2013 Laboratorio 1 Studente: Nome Cognome Matricola: #mat 25

26 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe1: printf Possibile soluzione 26

27 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe2: Trova errori Problema 27

28 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEDebugger 28 Questa è la barra del debugger. Iniziamo il debug premendo il primo tasto a sinistra (Debug/Continue). Per fermare lesecuzione in certi punti, clicchiamo vicino al numero di riga con il tasto destro e scegliamo Set breakpoint (compare un pallino rosso, vedi riga 7 e 9)

29 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEDebugger 29 Una volta partito il debug, possiamo scegliere varie opzioni. Noi useremo solo Watches, per vedere il contenuto delle variabili

30 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEDebugger 30 Lesecuzione si ferma alla riga 7. Nel riquadro in basso vediamo il valore della variabile numero prima che gli venga assegnato un valore

31 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEDebugger 31 Ora siamo fermi alla riga 9, il valore delle variabile numero è cambiato

32 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe3: Inserimento dati Problema Richiedi allutente 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 32

33 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Pseudocodice vs Codice C Pseudocodice 1.Scrivi quanto sei alto? 2.Leggi altezzacm 3.Altezzam = alteccacm/100 4.Scrivi sei alto: altezzam 33

34 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Un primo errore 34

35 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Un secondo errore 35

36 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Un terzo errore 36

37 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Soluzione corretta 37 Limportanza dei tipi di dato

38 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Vero e falso in C In C non esiste un tipo di dato specico per rappresentare i concetti vero e falso Una condizione assume un valore intero pari a 0 se la condizione è falsa 1 se la condizione è vera In generale, ogni valore diverso da zero è considerato vero ( 3 ) VERO ( 1 ) VERO ( a – a ) FALSO 38

39 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe4: Gestione errori sullinput Problema Preso un carattere inserito da tastiera lo scrive a video in maiuscolo (e.g. a-->A) Nota Per potervi applicare la trasformazione di nostro interesse Dobbiamo prima verificare che il dato sia coerente con quanto ci aspettiamo 39

40 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEPseudocodice Dati Linsieme dei caratteri ammissibili {a, b, c, …, z} 1. Richiedere linserimento di un carattere 2. Se carattere inserito corretto 3. Allora stampa a video carattere-32 4. Altrimenti stampa a video un messaggio di errore 40

41 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Maiuscolo: codice 41

42 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Maiuscolo: esecuzione 42

43 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Gestione errori sullinput Problema Preso un dato inserito da tastiera Per potervi applicare la trasformazione di nostro interesse Dobbiamo prima verificare che il dato sia coerente con quanto ci aspettiamo Soluzione Definire linsieme dei caratteri validi Verificare lappartenenza del carattere inserito, allinsieme dei caratterei validi 43

44 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEPseudocodice Dati Linsieme dei caratteri ammissibili {a, b, c, …, z} 1. Richiedere linserimento di un carattere 2. Se carattere inserito corretto 3. Allora stampa a video carattere-32 4. Altrimenti stampa a video un messaggio di errore 44

45 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Maiuscolo: codice 45

46 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Maiuscolo: esecuzione 46

47 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe5: Massimo Comune Divisore Definizione Dicesi Massimo Comune Divisore (M.C.D.) il piu grande tra i divisori comuni a due o piu numeri Esempi Dati A=12, B=15 Divisori comuni: 1, 3 - MCD=3 Dati A=10, B=30 e C=20 Divisori comuni: 1, 2, 5, 10 - MCD=10 47

48 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE MCD: pseudocodice 1.Leggi A e B 2.min= il minimo tra A e B 3.tmp = 1 4.MCD = 1 5.Finche tmp < min 1.tmp = tmp + 1 2.Se tmp divide A e B 1.Allora MCD = tmp 6.Stampa MCD 48

49 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE MCD: codice

50 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Fonti per lo studio + Credits Fonti per lo studio Informatica arte e mestiere, S. Ceri, D. Mandrioli, L. Sbattella, McGrawHill Capitolo 3 Credits Emanuele Panigati https://sites.google.com/site/engpanigati/ 50


Scaricare ppt "DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1 – Info B Marco D. Santambrogio – Riccardo Cattaneo –"

Presentazioni simili


Annunci Google