Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoAllegra Locatelli Modificato 10 anni fa
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
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.