Advertisement
Guest User

Es. 2 - Esame scritto 22 Gennaio 2015

a guest
Mar 2nd, 2015
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.41 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. /* Esame scritto 22 Gennaio 2015 - Paola Festa
  4. Esercizio 2
  5. Data la crisi economica, a Paperopoli si è appena cocluso un sondaggio circa l'andamento delle vendite negli
  6. ultimi 3 anni di M prodotti diversi in 10 negozi presenti nelle 110 strade della città.
  7. Si progetti ed implementi in C/C++ un algoritmo che
  8. 1. acquisisca da standard input due interi positivi M ed I e gli elementi di un vettore tridimensionale A di dimensione M × 10 x 110, dove
  9.    A[i][j][k] = q>=0 indica che negli ultimi 3 anni nel negozio j della strada k sono state vendute q unità di prodotto i.
  10. 2. invochi una funzione che resituisca quali prodotti siano stati venduti in quantità maggiore di I nella strada numero 99 e in quali negozi della strada;
  11. 3. invochi una procedura che stampi su standard output per ciascuna strada e per ciascun negozio la quantità totale di prodotti in esso venduti. */
  12.  
  13. using namespace std;
  14.  
  15. const int neg=3;//negozi j in A[i][j][k]
  16. const int strd=3;//strade k in A[i][j][k]
  17.  
  18. int strada99(int A[][neg][strd], int M, int I);//funzione per calcolare prodotti venduti in quantità maggiore di I
  19. void tot_prod(int A[][neg][strd], int M, int I);//Procedura per stampa output quantità totale venduta per ogni strada e ogni negozio
  20. //Start programma
  21. int main(int argc, char** argv) {
  22.     int M=0, I=0, q=0, max=0;
  23.     cout<<"Inserisci il numero di prodotti da controllare: ";
  24.     cin>>M;
  25.     while(M<1){
  26.         cout<<"Numero non valido, inserire almeno un prodotto: ";
  27.         cin>>M; }
  28.     cout<<"Inserisci il numero base di prodotti venduti : ";
  29.     cin>>I;
  30.     while(I<1){
  31.         cout<<"Numero non valido, inserire almeno un numero base: ";
  32.         cin>>I; }
  33.     int A[M][neg][strd];
  34.     //Inserimento delle quantità di prodotto
  35.     cout<<"\nInserisci le quantita' di prodotto vendute:\n";
  36.     for(int i=0; i<M; i++){
  37.         for(int j=0; j<neg; j++){
  38.             for(int k=0; k<strd; k++){
  39.                 cout<<"Quantita' venduta del prodotto "<<i+1<<" del negozio "<<j+1<<" della strada "<<k+1<<" ("<<i+1<<","<<j+1<<","<<k+1<<"): ";
  40.                 cin>>q;
  41.                 while(q<0){
  42.                     cout<<"Numero non valiro, inserire un numero maggiore o uguale a 0: ";
  43.                     cin>>q; }
  44.                 A[i][j][k]=q; }
  45.             cout<<" - \n"; }
  46.         cout<<" /\n"; }
  47.    
  48.     max=strada99(A,M,I);
  49.     tot_prod(A,M,I);
  50.    
  51.     return 0;
  52. }
  53. //funzione per calcolare prodotti venduti in quantità maggiore di I
  54. int strada99(int A[][neg][strd], int M, int I){
  55.     int max_prod=0;
  56.     cout<<"\nProdotti venduti in quantita' maggiore di I nella strada 99: \n";
  57.     for(int i=0; i<M; i++){
  58.         for(int j=0; j<neg; j++){
  59.             if(A[i][j][100]>I){
  60.                 max_prod=A[i][j][100];
  61.                 cout<<"Sono state vendute "<<max_prod<<" quantita' del prodotto "<<i+1<<" nel negozio "<<j+1<<" nella strada 99.\n"; } } }
  62.     return max_prod;
  63. }
  64. //Procedura per stampa output quantità totale venduta per ogni strada e ogni negozio
  65. void tot_prod(int A[][neg][strd], int M, int I){
  66.     int max=0;
  67.     cout<<"\nQuantita' totale venduta per ogni strada:\n";
  68.     for(int k=0; k<strd; k++){
  69.         for(int j=0; j<neg; j++){
  70.             for(int i=0; i<M; i++){
  71.                 if(i==0 && j==0){
  72.                     max=A[i][j][k]; }
  73.                 else max+=A[i][j][k]; } }
  74.         cout<<"Totale per la strada "<<k+1<<": "<<max<<".\n"; }
  75.     cout<<"\nQuantita' totale venduta per ogni negozio:\n";
  76.     for(int j=0; j<neg; j++){
  77.         for(int i=0; i<M; i++){
  78.             for(int k=0; k<strd; k++){
  79.                 if(i==0 && k==0){
  80.                     max=A[i][j][k]; }
  81.                 else max+=A[i][j][k]; } }
  82.         cout<<"Totale per il negozio "<<j+1<<": "<<max<<".\n"; }
  83.     return;
  84. }
  85.  
  86. By Vincenzo Torino
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement