Va rog!! Ce se afiseaza?
Variabila s poate memora un șir cu maximum 20 de caractere, iar variabila i este de tip întreg. Scrieți ce se afișează în urma executării secvenței de instrucțiuni de mai jos.
strcpy(s,"BACALAUREAT");
cout<
i=0;
while (i
{ if(strchr("EAIOU",s[i])!=NULL) strcpy(s+i+1,s+i+2);
i++;
}
cout<
andriesboss92:
Vezi ca ai uitat sa pui la ultimul cout ce trebuie sa se afiseze.. Rescrie programul
Răspunsuri la întrebare
Răspuns de
40
Se va afisa: 11BAAARET
Trebuie sa iei rand pe rand pasii pentru a putea rezolva problema..
Mic rezumat:
Vectorul s initial este gol dupa care primeste sirul de caractere BACALAUREAT, iar i are valoarea 0.
In acel while parcurgi vectorul de caractere si verifici daca 0 este mai mic decat lungimea sirului - 1 ( adica 11-1 = 10 .. deci 0 < 10 ) ..
In if vezi daca pe fiecare pozitie a sirului BACALAUREAT se afla vocalele EAIOU..
cat timp 0< 10
pe pozitia 1 nu se afla nici o vocala ci se afla litera B .. nu executa acel strcpy si i devine 1
cat timp 1< 10
pe poz 2 se afla vocala cautat in if, adica A, iar sirul devine, dupa executarea secventei: strcpy(s+i+1,s+i+2); ( deci daca gaseste o vocala pe pozitia i atunci stergi urmatoarea pozitie ) , BAALAUREAT ... i=2
cat timp 2<10
Acuma noul nostru sir nu mai este BACALAUREAT ci BAALAUREAT. Prin urmare toate actiunile pe care le vom face vor fi pe noul sir.
deci.. pe pozitia 3 a noului sir se afla vocala A prin urmare executam secventa iar sirul devine: BAAAUREAT ( care va fi noul sir pe care vom aplica actiunile din cod ) .... i=3
cat timp 3<10
noi avem poz 4, unde iar se afla o vocala, A - al treilea al din sir( marcat cu paranteze patrate ) BAA [A] UREAT ... deci se executa conditia sa fie vocala... sirul devine: BAAAREAT ... i=4
cat timp 4<10
suntem pe pozitia 5, unde se afla o consoana ( R ) .. nu se executa if-ul... i=5
cat timp 5<10
poz 6.. avem vocala E din sirul: BAAAREAT .... if-ul se executa... sirul devine: BAAARET ... i=6
cat timp 6<10
poz 7.. avem consoana T ... if-ul nu se executa ... i=7
cat timp 7<10
pe pozitia 8 a gasit NULL, iese din program si afiseaza sirul modificat, si anume: BAARET...
Prin urmare se va afisa: 11BAARET
Sper sa fi inteles ce am scris. Bafta.. daca nu intelegi da reply sau pm
Trebuie sa iei rand pe rand pasii pentru a putea rezolva problema..
Mic rezumat:
Vectorul s initial este gol dupa care primeste sirul de caractere BACALAUREAT, iar i are valoarea 0.
In acel while parcurgi vectorul de caractere si verifici daca 0 este mai mic decat lungimea sirului - 1 ( adica 11-1 = 10 .. deci 0 < 10 ) ..
In if vezi daca pe fiecare pozitie a sirului BACALAUREAT se afla vocalele EAIOU..
cat timp 0< 10
pe pozitia 1 nu se afla nici o vocala ci se afla litera B .. nu executa acel strcpy si i devine 1
cat timp 1< 10
pe poz 2 se afla vocala cautat in if, adica A, iar sirul devine, dupa executarea secventei: strcpy(s+i+1,s+i+2); ( deci daca gaseste o vocala pe pozitia i atunci stergi urmatoarea pozitie ) , BAALAUREAT ... i=2
cat timp 2<10
Acuma noul nostru sir nu mai este BACALAUREAT ci BAALAUREAT. Prin urmare toate actiunile pe care le vom face vor fi pe noul sir.
deci.. pe pozitia 3 a noului sir se afla vocala A prin urmare executam secventa iar sirul devine: BAAAUREAT ( care va fi noul sir pe care vom aplica actiunile din cod ) .... i=3
cat timp 3<10
noi avem poz 4, unde iar se afla o vocala, A - al treilea al din sir( marcat cu paranteze patrate ) BAA [A] UREAT ... deci se executa conditia sa fie vocala... sirul devine: BAAAREAT ... i=4
cat timp 4<10
suntem pe pozitia 5, unde se afla o consoana ( R ) .. nu se executa if-ul... i=5
cat timp 5<10
poz 6.. avem vocala E din sirul: BAAAREAT .... if-ul se executa... sirul devine: BAAARET ... i=6
cat timp 6<10
poz 7.. avem consoana T ... if-ul nu se executa ... i=7
cat timp 7<10
pe pozitia 8 a gasit NULL, iese din program si afiseaza sirul modificat, si anume: BAARET...
Prin urmare se va afisa: 11BAARET
Sper sa fi inteles ce am scris. Bafta.. daca nu intelegi da reply sau pm
Alte întrebări interesante
Arte,
8 ani în urmă
Limba română,
8 ani în urmă
Engleza,
8 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă