Ciklusok átírása

Ciklusok átírása

Végezzük el a következő átírásokat:

a. while -> do-while

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
#include <iostream>
using namespace std;

int main()
{
    int n;
    cin >> n;

    while (n >= 3) {
        cout << n << endl;
        n = n / 5;
    }

    return 0;
}

Megoldás:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;

int main()
{
    int n;
    cin >> n;

    if (n >= 3) {
        do {
            cout << n << endl;
            n = n / 5;
        }
        while (n >= 3);
    }

    return 0;
}

b. do-while -> while

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
#include <iostream>
using namespace std;

int main()
{
    int a, b;
    cin >> a >> b;

    do {
        cout << a << endl;
        a = a + 2;
    } while (a < b);

    return 0;
}

Megoldás:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;

int main()
{
    int a, b;
    cin >> a >> b;

    cout << a << endl;
    a = a + 2;
    while (a < b) {
        cout << a << endl;
        a = a + 2;
    }

    return 0;
}

c. for -> while

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
#include <iostream>
using namespace std;

int main()
{
    int n;
    cin >> n;

    for (int i = 0; i < 3*n; i += 8) {
        cout << i << endl;
        cout << 2*i << endl;
    }

    return 0;
}

Megoldás:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;

int main()
{
    int n;
    cin >> n;

    int i = 0;
    while (i < 3*n) {
        cout << i << endl;
        cout << 2*i << endl;
        i += 8;
    }

    return 0;
}

d. while -> for

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;

int main()
{
    int n;
    cin >> n;

    int i = 2*n;
    while (i > n) {
        cout << i << endl;
        i -= 5; 
    }

    return 0;
}

Megoldás:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
#include <iostream>
using namespace std;

int main()
{
    int n;
    cin >> n;

    for (int i = 2*n; i > n; i -= 5) {
        cout << i << endl;
    }

    return 0;
}

e. for -> do-while

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
#include <iostream>
using namespace std;

int main()
{
    int n;
    cin >> n;

    for (int i = 0; i <= 2*n; i += 5) {
        cout << i << endl;
        cout << 2*i << endl;
    }

    return 0;
}

Megoldás: először átírjuk while ciklusra

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;

int main()
{
    int n;
    cin >> n;

    int i = 0;
    while (i <= 2*n) {
        cout << i << endl;
        cout << 2*i << endl;
        i += 5;
    }
    
    return 0;
}

Ez után a while-t átírjuk do-while-ra:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;

int main()
{
    int n;
    cin >> n;

    int i = 0;
    if (i <= 2*n) {
        do {
            cout << i << endl;
            cout << 2*i << endl;
            i += 5;
        } while (i <= 2*n);
    }

    return 0;
}