Lezione n. Parole chiave: Corso di Laurea: Insegnamento: Docente: A.A Salvatore Cuomo Esercizi sui dati strutturati 13 Tipi di dati strutturati. Informatica Programmazione II, modulo di Laboratorio it
Scrivere una function di tipo main che permette di inserire un certo numero di offerte di fornitori: - codice fornitore (numero naturale) - Nome fornitore (array di carattere ) - importo offerta in euro (numero float) Quando l’utente inserisce 0 come codice fornitore, l’inserimento ha termine. Il programma cerca e visualizza l’offerta migliore (la più economica). Mostra main Esercizio 1
La variabile strutturata Offerta può essere definita nel seguente modo: typedef struct { unsigned int CodiceFornitore; char NomeFornitore[20]; double Importo; } Offerta; Le funzioni utilizzate sono: Mostra void add_offerta(Offerta *arr,int *i, int max); Mostra void view_offerta(Offerta *arr, int n); Mostra int migl_offerta(Offerta *arr, int n); Esercizio 1 cont.
Sviluppare un programma strutturato in function che, definita una struttura opportuna per il tipo di dato complesso, consenta la possibilità di: Sommare numeri complessi; Moltiplicare numeri complessi Calcolare il modulo di un numero complesso Estrarre la parte reale Estrarre la parte Immaginaria Mostra main parte 1 Mostra main parte 2 Mostra main part 3 Esercizio 2
Il programma principale include la direttiva #include "complex.h" In cui vengono specificate le caratteristiche della struttura Complex e le funzioni sviluppate per operare su questo tipo di dato. Mostra complex.h Esercizio 2
Descriviamo nel dettaglio alcune delle funzioni sviluppate nel file complex.c richiamato dall’header file complex.h La struttura viene così definita: typedef struct{ double real; double imm; } Complex ; Mostra strutture La funzione Complex complexvalue() costruisce il numero complesso assegnando la parte reale ed il coefficiente dell’immaginario. Mostra complexvalue() Esercizio 2
Descriviamo nel dettaglio alcune delle funzioni sviluppate nel file complex.c richiamato dall’header file complex.h La funzione printcomplex stampa a video il numero complesso Mostra printcomplex() La funzione sumcomplex somma due numeri complessi Mostra sumcomplex() La funzione prodcomplex moltiplica due numeri complessi Mostra prodcomplex() Esercizio 2
Descriviamo nel dettaglio alcune delle funzioni sviluppate nel file complex.c richiamato dall’header file complex.h La funzione modcomplex calcola il modulo (norma) di un numero complesso. Mostra modcomplex() La funzione complex2real restituisce la parte reale di un complesso Mostra complex2real() La funzione complex2imm restituisce la parte immaginaria di un complesso Mostra complex2imm() Esercizio 2
Si definisca il tipo strutturato Studente che permetta di rappresentare informazioni riguardanti tutti gli esami superati da un certo studente. Studente è composto dai seguenti dati: matricola: una sequenza di 6 caratteri, vettEsamiSuperati: un vettore composto da 30 celle di tipo Esame, numeroEsamiSuperati: numero intero non negativo. Si definisca inoltre la variabile vettStudenti, che permetta di rappresentare l’insieme degli studenti del corso di Laurea in Informatica (si suppongano 100 studenti.). Sviluppare un programma strutturato in function per la stampa della carriera accademica (statino) degli studenti del corso di Laurea. Esercizio 3
Mostriamo un possibile esempio di strutture. typedef struct { char codiceCorso[6]; unsigned int votoRiportato; unsigned int annoAccademico; } Esame; typedef struct { char matricola[6]; unsigned int numeroEsamiSuperati; Esame *Elenco_es_sup; } Studente; Mostra strutture e prototipi. Esercizio 3
In questa pagina riportiamo le parti di un possibile programma chiamante del nostro esercizio. Si osservi che viene definito in maniera statica un elenco di studenti che fornisce l’input del nostro programma. Studente *Elenco_Studenti; … /* allocazione dell'elenco degli studenti */ Elenco_Studenti=(Studente*)malloc(n*sizeof(Studente)); Mostra main parte 1. Mostra main parte 2. Esercizio 3
Il programma viene infine strutturato in maniera modulare. Si riportano le differenti funzioni in cui è articolato. La funzione esami_sup(), inserisce gli esami superati da uno studente il voto riportato e l' anno accademico in cui l'esame è sostenuto. Mostra funzione esami_sup. La funzione studente_set(), costruisce uno studente assegnando la matricola, ed il numero di esami superati. Mostra funzione studente_set(). La funzione printStudente (), stampa lo statino dello studente. Mostra funzione printStudente(). Esercizio 3