Esercizio No. 7 Funzioni
Predisporre una struttura di dati per la gestione di un magazzino di prodotti.
Tramite il programma deve essere possibile caricare la base di dati da tastiera e visualizzarla a video.
Predisporre una funzione che ricevuta in ingresso la struttura stampi a video i dati della struttura che soddisfano determinati requisiti.
Soluzione:
Per semplificare useremo un record costituito da due soli campi:
prd:il nome del prodotto con una stringa di 80 caratteri.
pre:il prezzo del prodotto come dato numerico intero
La funzione chiamata, convenzionalmente, anche in questo caso ‘fun’ sarà di tipo void dato che non deve restituire nessun risultato, ma deve solo eseguire manipolazioni sul database, riceverà in ingresso la struttura e un dato numerico ‘c’ inserito nel main( ) e passato per valore a fun( ). La funzione stamperà a video tutti i prodotti della struttura che hanno un costo inferiore a ‘c’ tramite la condizione:
if(X[i].pre<c;
Notare come la struttura venga scansionata tramite dei cicli for con la stessa tecnica vista per i vettori.
#include<iostream>
#include<stdio.h>
using namespace std;
const int n=5;
struct rec{
char prd[80];
int pre;
};
void fun(struct rec X[n],int c){
int i;
for(i=0;i < n;i++)
if(X[i].pre < c)cout << X[i].prd << “\t”<< X[i].pre << endl;
} //fine fun
main(){
struct rec T[n];
int i,costo;
for(i=0;i < n;i++){
fflush(stdin);
cout << “prodotto:”;
gets(T[i].prd);
cout << “costo:”;cin >> T[i].pre;
}
for(i=0;i < n;i++)
cout << T[i].prd << “\t” << T[i].pre << endl;
cout << “\n ins.prezzo:”;cin >> costo;
fun(T,costo);
}//fine main
Commento all'articolo