Care sunt motivele pentru care programul de mai jos nu afișează pe ecran DA?
int main() {
int n = 1, m, p = 5, z = 23, k = 5;
while (p <= 5) {
n += m;
p = p + 5;
}
p == p - 1;
if ((n + m) % 2 == 0 && p == 9 && z == 24) {
cout << "DA";
}
return 0;
}
a)Variabila m este folosită în program înainte de a fi inițializată
b)Variabila z nu își schimbă valoarea
c)Variabila k nu își schimbă valoarea
d)Linia 7 nu are nici un efect
Puteti sa imi si explicati de ce?
Răspunsuri la întrebare
Afirmatiile a, b, c si d sunt adevarate
a. m este declarata local si primeste o valoare necunoscuta care poate fii para sau impara
b. z nu o sa fie niciodata 24 pentru ca nu este modificat
c. nu afecteaza programul sau raspunsul dar este o afirmatie adevarata
d. lui p nu i se atribuie p-1, doar se verifica daca este egal cu p-1 si in cazul asta o sa ramana 10
raspunsul cred ca e a,b,d pentru ca c nu e un motiv pentru care nu se afiseaza "DA"
Problema scrisa de tine este o problema de pe wellcode.ro ...
Pentru ca sa arate "DA" pe ecran, conditia lui IF trebuie indeplinita
((n + m) % 2 == 0 && p == 9 && z == 24) < ---- conditia lui IF
pentru ca ea sa fie indeplinita, trebuie ca atat partea stanga... (n + m) % 2 == 0, partea din centru p == 9 cat si partea din dreapta z == 24 sa fie adevarate in acelasi timp ... true && true &&true
if ((n + m) % 2 == 0 && p == 9 && z == 24)
In linia a 2-a variabila m nu are nici o valoare,
int n = 1, m, p = 5, z = 23, k = 5;
Partea din stanga nu poate fii adevarata deoarece lui m nu ii s-a atribuit nici o valoare, prin urmare (n + m) % 2 == 0 nu se poate calcula.
deci pe wellcode bifeaza varianta a, pentru ca nu a fost initializata, gen m=3; etc
variabila z nu isi schimba valoarea, z=23, fiindca nu exista posibilitatea ca sa fie si 24, conditia lui IF nu va putea fii indeplinita niciodata.
deci pe wellcode bifeaza si varianta b.
variabila k aici nu ne intereseaza pentru ca nu face parte din conditia lui IF.
linia a 7-a adica p == p - 1; nu are nici un efect, variabila p fost initializata cu valoarea 5, dar == nu este semnul de la atribuire si chiar daca ar fii fost, p scadea, nu avea cum sa ajunga la valoarea 9 pentru a fii adevarata conditia lui IF.
Mult succes!
b)Variabila z nu își schimbă valoarea
d)Linia 7 nu are nici un efect
trebuiesc bifate