Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoSaturnino Colombo Modificato 11 anni fa
1
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Tipi di dati strutturati Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 4 Marzo 2013
2
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEObiettivi Dichiarazione di nuovi tipi di dato Dato strutturati 2
3
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Definire un nuovo tipo Sinonimi: typedef int Intero; Intero a; int b; typedef char Stringa[10]; Stringa c; char d[10]; Tipi enumerativi: typedef enum {lun,mar,mer,gio,ven,sab,dom} Settimana; Settimana giorno; giorno = lun; giorno = 3; /* 3 equivale a gio */ Non funziona con scanf() e printf().
4
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE ??? ilMioRecord ? Definire un nuovo tipo Tipi strutturati: typedef struct { char campo1; float campo2; int campo3[2]; } Record; Record ilMioRecord; ilMioRecord.campo1 = ' A ' ; ilMioRecord.campo2 = 24.56; ilMioRecord.campo3[0] = 23; ilMioRecord.campo3[1] = 45; 24.5623A ilMioRecord 45 campo1 campo2 campo3
5
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Numeri complessi: problema Lutente inserisce due numeri complessi (parte reale e parte immaginaria) e lelaboratore esegue loperazione di somma Es: 3+4i + 5-6i = 8-2i Il programma chiede allutente se vuole calcolare unaltra somma. Se lutente inserisce il carattere q il programma termina, altrimenti ricomincia daccapo.
6
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Numeri complessi
7
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Numeri complessi: note "%f" stampa un numero float con il segno - se è negativo, senza segno se è positivo "%+f" stampa un numero float con il segno - se è negativo, con il segno+ se è positivo "i" non fa parte degli specificatori di formato
8
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Una nota sulla scanf() Quando inserisco dei dati da tastiera, gli stessi vengono accodati nello standard input (stdin) del programma Anche in carattere ENTER finale viene accodato: Se inserisco: 123 [ENTER] Ottengo in stdin: 123 \n Eseguo scanf(%d,&x); stdin diventa:\n Inserisco il numero 432 ; stdin diventa:\n 432 \n Eseguo scanf(%d,&x); stdin diventa:\n La scanf() scarta leventuale \n che incontra prima del numero da leggere ma lascia il \n finale.
9
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Una nota sulla scanf() Adesso proviamo a leggere un carattere: Inserisco il carattere w; stdin diventa:\n w \n Eseguo scanf(%c,&y); stdin diventa:w \n La scanf(), quando legge un carattere (e solo in questo caso), NON scarta leventuale \n iniziale! Lo mette nella variabile y e lascia il resto in stdin Senza immettere nientaltro, eseguo unaltra scanf(%c,&y); stdin diventa:\n Questa volta la scanf() mette w in y Quindi: se devo leggere caratteri (&c ) ma prima ho effettuato altre letture, devo togliere da stdin il carattere \n rimasto.
10
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Schedine: problema Il programma, partendo da un array di dimensione prefissata che contiene in ogni cella: data della giocata colonna con i tredici segni Copia in un altro vettore solo le giocate dellanno 2012 Quindi, visualizza queste giocate.
11
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Schedine: dati
12
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Schedine: inserimento dati
13
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Schedine: copia valori
14
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Schedine: stampa dei risultati
15
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Squadra di calcio: problema Il programma, partendo da un array che contiene i dati personali dei calciatori di una squadra, permette di calcolare: totale goal fatti dalla squadra goal fatti dagli attaccanti goal fatti dai centrocampisti goal fatti dai difensori totale goal subiti dalla squadra Il programma inoltre visualizza i dati personali di tutti i giocatori Per ogni giocatore, il programma memorizza: numero di maglia ruolo goal fatti (subiti, se è un portiere).
16
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 5 (No: 5.5.3, 5.5.4 e 5.6) Credits Vito Perrone, Daniele Braga
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.