Jump to content

Recommended Posts

Posted

Salut, cum pot rezolva exercitiul asta cu do-while ? Stiu sa il rezolv fara do-while

 

1.Se citește nu număr natural D. Să se afișeze toți divizorii naturali ai lui D. (toate numerele întregi >=1 și <=D) la care D se împarte exact.

 

Cod(fara do while) :

#include <iostream>

using namespace std;
int n, d;
int main()
{
    cout << "n = " ;
    cin >> n ;
    d = 1;
    while (d <= n)
    {
        if (n%d==0)
        cout <<d<<" ";
        d++;
    }

    return 0;
}

Posted

[OFF]Ca sa nu mai fac alt topic postez tot in asta. Ma puteti ajuta si cu exercitiile astea 2 ? (tot cu do-while)

 

2.Se citește nu număr natural D. Să se afișeze numărul divizorilor naturali ai lui D. (toate numerele întregi >=1 și <=D) la care D se împarte exact.

3.Se citește nu număr natural D. Să se afișeze (în funcție de numărul divizorilor naturali ai lui D) dacă D este prim sau nu.

 

Mi-a explicat profesorul prin email dar nu prea am inteles..

 

"Pentru problema 2: de fiecare dată când găsești un număr i la care se împarte d, o altă variabilă (să zicem nrdiv) crește cu o unitate. i va lua toate valorile întregi de la 1 până la d inclusiv.

Pentru problema 3: e problema 2 + se verifică dacă (nrdiv==2) atunci nr. este prim, altfel nu este prim"

 

Am incercat sa fac eu ceva dar nu este bun..

#include <iostream>

using namespace std;
int i,d,nrdiv;
int main()
{
    cout << "d = " ;
    cin >> d ;
    do
    {
        if(i%d==0)
        cout<<d<<" ";
        nrdiv++;
    }
    while (d >= 1);

    return 0;
}

Posted

daca asa e enuntul.. sa se invete sa nu faca totul cu for. Sunt cazuri cand e mai sugestiv un do-while.. mai ales cand vrei ca acea operatie sa se execute odata, chiar daca conditia e falsa.

love is a verb
Love is a doing word

  • Moderators
Posted (edited)

Faza la do..while e ca intra in bucla chiar daca la while conditia e falsa, de aia mai trebuie un if la inceput, dar nu intotdeauna

 

a, vad ca ai precizat asta :))

Edited by Courage
Posted

Ai spus ca : de fiecare dată când găsești un număr i la care se împarte d, o altă variabilă (să zicem nrdiv) crește cu o unitate. i va lua toate valorile întregi de la 1 până la d inclusiv.

Acuma incearca te rog sa ne descrii ce ai facut tu in programelul acela(ce face, linie cu linie, si dc ai facut asa.), poate reusesti sa te prinzi unde ai gresit.

 

 

Sau posteaza Courage direct raspunsul :))

love is a verb
Love is a doing word

Posted

Nu intri in bucla pentru ca acea instructiune se opreste daca conditia e falsa. Diferenta fata de un while obisnuit e ca acele instructiuni din do while se executa in prima faza chiar daca conditia e gresita.(testul e final) Daca pui un if acolo doar il transformi intr-un while normal.

Posted

 

[OFF]Ca sa nu mai fac alt topic postez tot in asta. Ma puteti ajuta si cu exercitiile astea 2 ? (tot cu do-while)

 

2.Se citește nu număr natural D. Să se afișeze numărul divizorilor naturali ai lui D. (toate numerele întregi >=1 și <=D) la care D se împarte exact.

3.Se citește nu număr natural D. Să se afișeze (în funcție de numărul divizorilor naturali ai lui D) dacă D este prim sau nu.

 

Mi-a explicat profesorul prin email dar nu prea am inteles..

 

"Pentru problema 2: de fiecare dată când găsești un număr i la care se împarte d, o altă variabilă (să zicem nrdiv) crește cu o unitate. i va lua toate valorile întregi de la 1 până la d inclusiv.

Pentru problema 3: e problema 2 + se verifică dacă (nrdiv==2) atunci nr. este prim, altfel nu este prim"

 

Am incercat sa fac eu ceva dar nu este bun..

#include <iostream>

using namespace std;
int i,d,nrdiv;
int main()
{
    cout << "d = " ;
    cin >> d ;
    do
    {
        if(i%d==0)
        cout<<d<<" ";
        nrdiv++;
    }
    while (d >= 1);

    return 0;
}

 

Am facut off-topic ca sa nu mai fac alt topic (am postat mai sus). Sau ar trebui sa sa fac alt topic :-?

PS> Codul este foarte bun, ii multumesc.

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.