Advertisement
NelloRizzo

Funzioni C++

Oct 23rd, 2018
360
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.55 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. void print(int * vector, int len) {
  7.     cout << "Stampa del vettore (print):" << endl;
  8.     for (int count = 0; count < len; ++count) cout << vector[count] << '\t';
  9.     cout << endl;
  10. }
  11.  
  12. void print2(int * vector, int len) {
  13.     cout << "Stampa del vettore (print2):" << endl;
  14.     int * cursor = vector;
  15.     while (len--) cout << *cursor++ << '\t';
  16.     cout << endl;
  17. }
  18.  
  19. float average(int * vector, int len) {
  20.     // definizione di media aritmetica:
  21.     // somma degli elementi del vettore
  22.     float sum = 0; // accumulatore per la somma progressiva...
  23.     for (int counter = 0; counter < len; ++counter)
  24.         sum = sum + vector[counter];
  25.     // divisione della somma per il numero di elementi
  26.     return sum / len;
  27. }
  28.  
  29. int min(int * vector, int len) {
  30.     // restituire il valore più piccolo nel vettore
  31.     // ragionamento...
  32.     // devo scorrere il vettore alla ricerca del valore più basso
  33.     // posso partire, considerando il primo elemento
  34.     // come elemento candidato ad essere il minimo
  35.     int candidate = vector[0];
  36.     // poi confrontarlo con gli elementi restanti per capire se
  37.     for (int counter = 1; counter < len; ++counter)
  38.         // effettivamente è più piccolo: se non lo è il
  39.         // candidato minimo sarà il nuovo valore
  40.         if (candidate > vector[counter]) candidate = vector[counter];
  41.     return candidate;
  42. }
  43.  
  44. int max(int * vector, int len) {
  45.     // restituisce il valore massimo nel vettore
  46.     // ragionamento...
  47.     // devo scorrere il vettore alla ricerca del valore più basso
  48.     // posso partire, considerando il primo elemento
  49.     // come elemento candidato ad essere il massimo
  50.     int candidate = vector[0];
  51.     // poi confrontarlo con gli elementi restanti per capire se
  52.     for (int counter = 1; counter < len; ++counter)
  53.         // effettivamente è più grande: se non lo è il
  54.         // candidato massimo sarà il nuovo valore
  55.         if (candidate < vector[counter]) candidate = vector[counter];
  56.     return candidate;
  57. }
  58.  
  59. int count_even(int * vector, int len) {
  60.     // contare quanti numeri pari ci sono in un vettore
  61.     int counter = 0;
  62.     for (int index = 0; index < len; ++index)
  63.         if (vector[index] % 2 == 0) ++counter;
  64.     return counter;
  65. }
  66.  
  67. int count_odd(int *vector, int len) {
  68.     // i numeri dispari saranno dati
  69.     // dalla lunghezza MENO
  70.     // i numeri pari
  71.     return len - count_even(vector, len);
  72. }
  73.  
  74. bool is_prime(int number) {
  75.     // controllare se un numero è primo
  76.     // un numero è primo se non ha divisori
  77.     // un metodo (non ottimizzato) può essere quello di
  78.     // dividere il numero per tutti i numeri che lo precedono
  79.     bool result = true;
  80.     int div = 2;
  81.     while (result && div < number) {
  82.         if (number % div == 0) result = false;
  83.         ++div;
  84.     }
  85.     return result;
  86. }
  87.  
  88. int count_digits(int number) {
  89.     // contare quante cifre ci sono in un numero
  90.     int digits = 1;
  91.     while (number > 10) {
  92.         ++digits;
  93.         number = number / 10;
  94.     }
  95.     return digits;
  96. }
  97.  
  98. int main()
  99. {
  100.     int a[] = { 12,432,3654,123,654,3567,468,1234,897 };
  101.     int * v = a;
  102.     print(v, 6);
  103.     print2(v, 6);
  104.  
  105.     cout << "Media aritmetica del vettore: " << average(v, 6) << endl;
  106.     cout << "Valore minimo nel vettore: " << min(v, 6) << endl;
  107.     cout << "Valore massimo nel vettore: " << max(v, 6) << endl;
  108.     cout << "Il vettore contiene " << count_even(v, 6) << " numeri pari" << endl;
  109.     cout << "Il vettore contiene " << count_odd(v, 6) << " numeri dispari" << endl;
  110.     if (is_prime(19))
  111.         cout << "Il numero 19 e' un numero primo" << endl;
  112.     if (!is_prime(24))
  113.         cout << "Il numero 24 non e' un numero primo" << endl;
  114.     cout << "Il numero 12345 ha " << count_digits(12345) << " cifre" << endl;
  115.     return 0;
  116. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement