online: 5; azi: 639; total: 52645 Manual clasa a ix a - Implementarea structurilor de date - Structuri de date

Probleme Rezolvate



Manual clasa a IX a

Implementarea structurilor de date

Structuri de date

Se citesc de la tastatură un număr natural n şi două valori reale x şi y. Să se genereze recursiv într -un vector primii n termeni ai şirului : 1,1,2,3,3,4,5,5, .... Să se afişeze câți termeni ai şirului sunt mai mari decât x şi mai mici decât y şi care sunt aceşti termeni .
# include < iostream >
int main () {
int n;
double x, y;
std :: cin >> n >> x >> y;
double v[ 50 ];
int count = 0 ;
int i = 0 , j = 0 ;
while ( count < n) {
if (i == j) {
v[ count ] = i;
count ++;
j++;
} else if (i < j) {
v[ count ] = i;
count ++;
i++;
} else {
v[ count ] = j;
count ++;
j++;
}
}
int num = 0 ;
for ( int k = 0 ; k < n; k++) {
if (v[k] > x && v[k] < y) {
num++;
std :: cout << v[k] << " " ;
}
}
std :: cout << "\ nNumber of terms greater than " << x << " and less than " << y << " is " << num << std :: endl ;
return 0 ;
}

Explicaţie :
În primul rând se citeşte de la tastatură numărul de termeni din şir (n) şi valorile x şi y. Se iniţializează un vector v de tip double cu dimensiunea maximă 50 şi un contor count pentru a număra numărul de termeni care respectă condiţiile date.
Se parcurge şirul cu ajutorul unei structuri repetitve while . Pe baza relaţiei dintre termenii consecutivi, dacă primul termen este egal cu al doilea, se adaugă primul termen în vector, altfel se adaugă termenul cel mai mic şi se incrementează corespunzător variabila i sau j.
În continuare, se parcurge vectorul şi se verifică dacă fiecare termen este mai mare decât x şi mai mic decât y. Dacă se îndeplinesc aceste condiţii , se afişează termenul şi se incrementează variabila num pentru a număra numărul de termeni care respectă condiţiile .
La final, se afişează numărul de termeni găsiţi care sunt mai mari decât x şi mai mici decât y.