Advertisement
Guest User

C++ esercizio

a guest
Feb 22nd, 2019
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.07 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. //Inserimento vettore
  5. void inserimento(int v[], int dim) {
  6.    
  7.     int i;
  8.    
  9.     for (i=0; i<dim; i++) {
  10.         cout << "V[" << i << "] = ";
  11.         cin >> v[i];
  12.     }
  13.    
  14. }
  15.  
  16. //Inserimento solo positivi
  17. void inserimentoPositivi(int v[], int dim) {
  18.    
  19.     int i;
  20.    
  21.     for (i=0; i<dim; i++) {
  22.         do {
  23.             cout << "V[" << i << "] = ";
  24.             cin >> v[i];
  25.             if (v[i]<0) {
  26.                 cout << "Errore, riprova!" << endl;
  27.             }
  28.         }while(v[i]<0);
  29.     }
  30.    
  31. }
  32.  
  33. //Calcolo somma
  34. int calcSomma(int v[], int dim) {
  35.    
  36.     int i, somma=0;
  37.    
  38.     for (i=0; i<dim; i++) {
  39.         somma += v[i];
  40.     }
  41.    
  42.     return somma;
  43. }
  44.  
  45. //Calcolo prodotto
  46. int calcProdotto(int v[], int dim) {
  47.    
  48.     int i, prodotto=1;
  49.    
  50.     for (i=0; i<dim; i++) {
  51.         prodotto = prodotto*v[i];
  52.     }
  53.    
  54.     return prodotto;
  55. }
  56.  
  57. //Calcolo quanti pari
  58. int quantiPari(int v[], int dim) {
  59.    
  60.     int i, pari=0;
  61.    
  62.     for (i=0; i<dim; i++) {
  63.         if (v[i]%2==0) {
  64.             pari++;
  65.         }
  66.     }
  67.    
  68.     return pari;
  69. }
  70.  
  71. //Calcolo quanti dispari
  72. int quantiDispari(int v[], int dim) {
  73.    
  74.     int i, dispari=0;
  75.    
  76.     for (i=0; i<dim; i++) {
  77.         if (v[i]%2==0) {
  78.             //null;
  79.         }
  80.         else {
  81.             dispari++;
  82.         }
  83.     }
  84.    
  85.     return dispari;
  86. }
  87.  
  88. //Controllo segni
  89. bool controlloSegni(int v[], int dim) {
  90.    
  91.     int i=0;
  92.     bool trovato=false;
  93.    
  94.     while ( (!trovato)&&(i<dim) ) {
  95.         if (v[i]<0) {
  96.             trovato = true;
  97.         }
  98.         else {
  99.             i++;
  100.         }
  101.     }
  102.    
  103.     return trovato;
  104. }
  105.  
  106. //Cerca X
  107. bool cercaX(int v[], int dim, int x) {
  108.    
  109.     int i=0;
  110.     bool trovato=false;
  111.    
  112.     while ( (!trovato)&&(i<dim) ) {
  113.         if (v[i]==x) {
  114.             trovato = true;
  115.         }
  116.         else {
  117.             i++;
  118.         }
  119.     }
  120.    
  121.     return trovato;
  122. }
  123.  
  124. //Cerca posizione X
  125. int posizioneX(int v[], int dim, int x) {
  126.    
  127.     int i=0, posizione=-1;
  128.     bool trovato=false;
  129.    
  130.     while ( (!trovato)&&(i<dim) ) {
  131.         if (v[i]==x) {
  132.             posizione = i;
  133.             trovato = true;
  134.         }
  135.         else {
  136.             i++;
  137.         }
  138.     }
  139.    
  140.     return posizione;
  141. }
  142.  
  143. //Calcolo quanti positivi
  144. int quantiPositivi(int v[], int dim) {
  145.    
  146.     int i, positivi=0;
  147.    
  148.     for (i=0; i<dim; i++) {
  149.         if (v[i]>0) {
  150.             positivi++;
  151.         }
  152.     }
  153.    
  154.     return positivi;
  155. }
  156.  
  157. //Calcolo quanti negativi
  158. int quantiNegativi(int v[], int dim) {
  159.    
  160.     int i, negativi=0;
  161.    
  162.     for (i=0; i<dim; i++) {
  163.         if (v[i]<0) {
  164.             negativi++;
  165.         }
  166.     }
  167.    
  168.     return negativi;
  169. }
  170.  
  171. //Visualizza array invertito
  172. void mostraInvertito(int v[], int dim) {
  173.    
  174.     int i;
  175.    
  176.     for (i=dim-1; i!=-1; i--) {
  177.         cout << "V[" << i << "] = " << v[i] << endl;
  178.     }
  179.    
  180. }
  181.  
  182. int main()
  183. {
  184.     /*Scrivere un programma che:
  185.      *1) faccia definire la dimensione di un vettore;
  186.      *2) faccia inserire gli elementi nel vettore;
  187.      *3) calcoli: somma, prodotto, quanti pari e quanti dispari;
  188.      *4) controlli: se sono tutti positivi o meno, se esiste x e in che posizione si trova;
  189.      *5) cerchi: quanti positivi, quanti negativi;
  190.      *6) visualizzi le informazioni + l'array invertito.*/
  191.    
  192.     //Variabili vettore
  193.     int v[100], dim=0;
  194.    
  195.     //Variabili richiamo funzioni
  196.     int calc_Somma=0, calc_Prodotto=0, quanti_Pari=0, quanti_Dispari=0, quanti_Positivi=0, quanti_Negativi=0;
  197.     bool controllo_Segni, cerca_X=0;
  198.     int x=0, posizione_X=0;
  199.    
  200.    
  201.     //Definizione dimensione vettore
  202.     do {
  203.         cout << "Dimensione = ";
  204.         cin >> dim;
  205.         if ( (dim<1)||(dim>100) ) {
  206.             cout << "Errore, riprova!" << endl;
  207.         }
  208.         cout << endl;
  209.     }while( (dim<1)||(dim>100) );
  210.    
  211.     //Richiamo inserimento vettore
  212.     //inserimento(v, dim);
  213.    
  214.     inserimentoPositivi(v, dim);
  215.    
  216.     //Richiamo mostra array invertito
  217.     cout << endl;
  218.     mostraInvertito(v, dim);
  219.    
  220.     //Richiamo e visualizzazione quanti positivi
  221.     quanti_Positivi = quantiPositivi(v, dim);
  222.     cout << "\nPositivi = " << quanti_Positivi << endl;
  223.    
  224.     //Richiamo e visualizzazione quanti negativi
  225.     quanti_Negativi = quantiNegativi(v, dim);
  226.     cout << "Negativi = " << quanti_Negativi << endl;
  227.    
  228.     //Richiamo e visualizzazione quanti pari
  229.     quanti_Pari = quantiPari(v, dim);
  230.     cout << "Pari = " << quanti_Pari << endl;
  231.    
  232.     //Richiamo e visualizzazione quanti dispari
  233.     quanti_Dispari = quantiDispari(v, dim);
  234.     cout << "Dispari = " << quanti_Dispari << endl;
  235.    
  236.     //Richiamo e visualizzazione somma
  237.     calc_Somma = calcSomma(v, dim);
  238.     cout << "Somma = " << calc_Somma << endl;
  239.    
  240.     //Richiamo e visualizzazione prodotto
  241.     calc_Prodotto = calcProdotto(v, dim);
  242.     cout << "Prodotto = " << calc_Prodotto << endl;
  243.    
  244.     //Richiamo controllo segni e condizione per messaggio da visualizzare
  245.     controllo_Segni = controlloSegni(v, dim);
  246.     if (controllo_Segni==true) {
  247.         cout << "Non sono tutti positivi." << endl;
  248.     }
  249.     else {
  250.         cout << "Sono tutti positivi." << endl;
  251.     }
  252.    
  253.     //Inserimento valore X da cercare
  254.     cout << "\nX = ";
  255.     cin >> x;
  256.     cout << endl;
  257.     //Richiamo cerca X e condizione per messaggio da visualizzare
  258.     cerca_X = cercaX(v, dim, x);
  259.     if (cerca_X==true) {
  260.         cout << "Esiste X." << endl;
  261.     }
  262.     else {
  263.         cout << "Non esiste X." << endl;
  264.     }
  265.    
  266.     //Richiamo e condizione messaggio da visualizzare di cerca posizione X
  267.     posizione_X = posizioneX(v, dim, x);
  268.     if (posizione_X!=-1) {
  269.         cout << "Posizione = " << "V[" << posizione_X << "]" << endl;
  270.     }
  271.     else {
  272.         cout << "Posizione = " << "V[null]" << endl;
  273.     }
  274.    
  275.     cout << endl;
  276.    
  277.     return 0;
  278. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement