Vai alla Home Page About me Courseware Federica Living Library Federica Federica Podstudio Virtual Campus 3D Le Miniguide all'orientamento Gli eBook di Federica La Corte in Rete
 
I corsi di Scienze Matematiche Fisiche e Naturali
 
Il Corso Le lezioni del Corso La Cattedra
 
Materiali di approfondimento Risorse Web Il Podcast di questa lezione

Salvatore Cuomo » 13.Esercizi sui dati strutturati


Esercizio 1

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).

Codice_C_1

Codice_C_1


Esercizio 1 cont.

La variabile strutturata Offerta può essere definita nel seguente modo:

typedef struct

{

unsigned int CodiceFornitore;

char NomeFornitore[20];

double Importo;

} Offerta;

Codice_C_2

Codice_C_2

Codice_C_3

Codice_C_3


Esercizio 2

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
Codice_C_4

Codice_C_4

Codice_C_5

Codice_C_5


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.

Codice_C_6

Codice_C_6


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;

La funzione Complex complexvalue() costruisce il numero complesso assegnando la parte reale ed il coefficiente dell’immaginario.

Codice_C_7 e 8

Codice_C_7 e 8


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
  • La funzione sumcomplex somma due numeri complessi
  • La funzione prodcomplex moltiplica due numeri complessi
Codice_C_9

Codice_C_9


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.
  • La funzione complex2real restituisce la parte reale di un complesso
  • La funzione complex2imm restituisce la parte immaginaria di un complesso
Codice_C_10

Codice_C_10


Esercizio 3

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;

Codice_C_11

Codice_C_11


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));

Codice_C_12

Codice_C_12

Codice_C_13

Codice_C_13


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.
  • La funzione studente_set(), costruisce uno studente assegnando la matricola, ed il numero di esami superati.
  • La funzione printStudente (), stampa lo statino dello studente.
Codice_C_14

Codice_C_14

Codice_C_15

Codice_C_15


I materiali di supporto della lezione

Esercizi

  • Contenuti protetti da Creative Commons
  • Feed RSS
  • Condividi su FriendFeed
  • Condividi su Facebook
  • Segnala su Twitter
  • Condividi su LinkedIn
Progetto "Campus Virtuale" dell'Università degli Studi di Napoli Federico II, realizzato con il cofinanziamento dell'Unione europea. Asse V - Società dell'informazione - Obiettivo Operativo 5.1 e-Government ed e-Inclusion