Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- main(){
- int A[20], n, N=0;
- cout << "Inserisci valori: " << endl; //Chiedo di inserire il valore
- cin >> n; //Leggo valore
- //PRE_1=(cin contiene (almeno) 20 interi) || (cin contiene 0)
- while (N<20 && n!=0){
- A[N] = n; //Pongo in A[N] il valore letto
- N = N+1; //Aumento N
- if (N<20) //Altrimenti verrebbe fatta anche la lettura quando N=20 (e quindi la 21esima), ma non verrebbe inserita in A[] perchè sarebbe pieno
- cin >> n; //Leggo un altro valore
- }
- //POST_1=((se cin contiene (almeno) 20 valori senza 0) => (A sarà riempito con i primi 20 valori di cin e N=20)) && ((se cin contiene 0 preceduto da 0<=n<20 valori diversi da 0) => (A contiene i primi n valori di cin e N=n))
- /* PARTE 2 */
- //PRE_2=(A[0..N-1] contiene N valori con N>=0)
- int i=0, D=0;
- while (i<N){ //R = (D = numero di valori distinti in A[0..i-1] && (0<=i<=N))
- bool no=true; //"no" indica se i valori sono distinti tra loro
- int j=0;
- while (j<i && no == true){
- if (A[i] == A[j]) //R1 = (no == true <=> A[i] non e' contenuta in A[0..j-1]
- no=false;
- j = j+1;
- }
- /* Questo ciclo controlla che tutti i valori di A[j] con j<i siano diversi da A[i] */
- if (no == true)
- D = D+1;
- i = i+1;
- }
- /* Questo ciclo controlla che tutti i valori di A[i] con i<N siano diversi da A[N] */
- //POST_2=(viene calcolato in D il numero di valori distinti in A[0..N-1]
- cout << "Numero valori inseriti: " << N << endl;
- cout << "Numero valori differenti: " << D <<endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement