Tutorato Elementi di Informatica 2019 - Università di Cagliari
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
Università degli Pattern Recognition Dipartimento di Studi di Cagliari & Application Lab Ingegneria Elettrica ed Elettronica Tutorato Elementi di Informatica 2019 Esercitazione 4 Riepilogo delle puntate precedenti Mail: bioinfo.marcialis@gmail.com Telegram: bioinfo18 Marco Micheletto 13 Novembre 2019
Argomenti dadato Tipi di conoscere HELLO WORLD • Dichiarare una variabile semplice. • Usare la funzione printf (comprende la conoscenza dei %d, %f, …). • Usare la funzione scanf (comprende ricordarsi la &).
Argomenti dadato Tipi di conoscere TIPI "AVANZATI" • Vettori (comprende anche stringhe). • Strutture (comprende la conoscenza del "punto").
Come si Riepilogo: dichiaraArray un vettore? v v[0] v[1] v[2] v[3] int v[4]; N° ELEMENTI TIPO NOME (lo decidete voi) 5
Come si Riepilogo: dichiaraArray una struct? NomeTipo campo_1 . . . campo_n typedef struct{ − Componenti della struttura; }NomeTipo; 6
Come si dichiara Esercizio 2una struct? Automobile typedef struct{ int numero; numero char modello[30]; modello float prezzo; prezzo }Automobile; NomeTipo = Automobile Userete il nome Automobile per dichiarare variabili (strutture) di tipo Automobile VARIABILI SEMPLICI O VETTORI 7
Esercizio Costrutto 1 if…else Definite una struttura caratterizzata da una stringa di 10 caratteri per memorizzare il colore dei capelli, un intero e un float per memorizzare l’età minima e l’altezza massima di una persona (poi capirete). Chiamate tale struttura Profilo. 8
Esercizio Costrutto 1 if…else 9
Esercizio Costrutto 1.5 if…else Scrivete un codice che legge da tastiera il colore dei capelli, l’età e l’altezza di una persona e li memorizza in una variabile di tipo Profilo. Domanda random (ma non troppo): Come si dichiara un vettore di strutture Profilo? 10
Esercizio Costrutto 1.5 if…else Scrivete un codice che legge da tastiera il colore dei capelli, l’età e l’altezza di una persona e li memorizza in una variabile di tipo Profilo. Domanda random (ma non troppo): Come si dichiara un vettore di strutture Profilo? 11
Argomenti dadato Tipi di conoscere CONDIZIONALI • If…else (non obbligatorio). • If . . . (else if)xN…else (non obbligatorio). • switch/case
Condizioni Relazionari Servono per confrontare due variabili: Minore di Maggiore di Minore o uguale di Maggiore o uguale di ab a=b Uguale a Diverso da a==b a!=b Servono per operare tra valori booleani: AND OR NEG a&&b a||b !a Il risultato di queste operazioni è TRUE o FALSE (ossia 1 o 0) 13
Come usare l’IF/ELSE Tipi di dato . . . . if (condizione1) { // ISTRUZIONI IF } else { //ISTRUZIONI ALTRIMENTI } . . . .
Un esempio Cicli: whilea caso 15
Contestualizziamo un po’… Costrutto if…else Qualche tempo fa mi sono svegliato con la malsana idea di sviluppare un’applicazione per fare concorrenza a Tinder. Chi si registra alla mia app può creare un Profilo a cui va ovviamente associato il nome e numero di cellulare. Nella pratica, attivando l’applicazione, qualsiasi utente riceverà a fine giornata un elenco di tutte le persone che gli sono passate vicino durante la giornata e che sono interessate ad una relazione sentimentale, ovviamente a loro volta iscritte all’app. Tuttavia, dopo un primo periodo di collaudo, ho scoperto che gli elenchi giornalieri che vengono ricevuti sono lunghissimi (tante persone si sono iscritte!), così che risulta difficilissimo scegliere la persona da contattare. Mi servirebbe perciò il vostro aiuto per aggiungere una speciale opzione con la quale ognuno possa inserire il colore dei capelli, l’età minima e l’altezza massima della persona alla quale si potrebbe essere potenzialmente interessati in modo da scremare un po’ i dati. 16
Esercizio Costrutto 2 if…else Scriviamo dunque un altro frammento del programma con il seguente comportamento: Confrontate (dopo averle lette) due variabili di tipo Profilo, la prima relativa ai valori di colore dei capelli, età ed altezza "random", la seconda relativa a dei valori desiderati, e memorizzate 1 nella variabile match se tutti i criteri di colore di capelli, età minima e altezza massima sono soddisfatti, 0 altrimenti. Suggerimento: strcmp(x,y) ritorna 0 se x e y sono stringhe uguali (libreria string.h) 17
Esercizio Costrutto 2 if…else 18
Argomenti dadato Tipi di conoscere CICLI • For • While
Cicli:Cicli do…while 20
Esercizio Costrutto 3 if…else Definite un vettore di nome ListaPersone di max 77 elementi formato da variabili di tipo Persona, così caratterizzate: • Una stringa di 50 caratteri, finalizzata alla memorizzazione del nome di una persona. • Un intero per il numero di telefono. • Una variabile di tipo Profilo. 21
Esercizio Costrutto 3.5 if…else Ora fate finta di avere il vettore ListaPersona pieno. Adattate l’esercizio 2 in modo che vengano contati i match con ogni persona nel vettore. Alla fine il programma deve stampare: “Oggi ci sono papabili per te” o “Oggi non ci sono papabili per te, mi spiace!” 22
Esercizio Costrutto 3.5 if…else *La definizione di Profilo e gli include come esercizio 2* 23
Puoi anche leggere