«Алгоритмы и структуры данных»



жүктеу 1,49 Mb.
бет19/41
Дата24.08.2020
өлшемі1,49 Mb.
#31319
1   ...   15   16   17   18   19   20   21   22   ...   41
СТ Алгоритмы и структуры данных рус

Программа 8.5.7

1

2

3



4

5

6



7

8

9



10

11

12



13

14

15



16

17


#include

using namespace std;

 

int main() {



    int n, i = 0;

    cout << "n = "; cin >> n;

    do {

        int d;

        cin >> d;

        if (d / 1000 == 0 and // and можно заменить на &&

            d / 100  != 0 and

            d % 10 == 7)

            ++i;

    } while (--n);

    cout << "i = " << i << endl;

    return 0;

}



Инструкция break прерывает выполнение циклов while, do while (и for, который мы рассмотрим ниже) и передает управление выполнения программы инструкции, следующей за блоком. 

#include

using namespace std;

 

int main() {



    int n, i = 2;

    bool f = true;

    cout << "n = "; cin >> n;

    while (i <= n / 2) {

        if (!(n % i)) {

            f = false;

            break;

        }

        i++;

    }


    if (k)

        cout << "Число " << n << " простое" << endl;

    else

        cout << "Число " << n << " не является простым" << endl;

    return 0;

}

В отличие от break – continue прерывает выполнение только текущей итерации (то есть, выполнение инструкций тела цикла) и передает выполнение на вычисление условия. При этом инструкции, следующие за continue, игнорируются. Данная инструкция применяется не часто, но может быть использована для контроля состояния допустимости значения выражений в теле цикла.


Следует сказать, что многие разработчики стараются не использовать в циклах эти инструкции. Однако последние повышают читаемость программы.
Например. Постановка задачи. Протабулировать значение функции f(x) = 2/x с шагом 1 на отрезке [-5, 5]

Программа 8.5.9

1

2

3



4

5

6



7

8

9



10

11

12



13

14

15



16

17

18



19

20

21



22

23

24



25

26


#include

#include

using namespace std;

 

int main() {



    int i = -5;

    while (i <= 5) {

        if (i == 0) {

            cout << "В точке 0 - не определена" << endl;

            i += 1;

            continue;

        }

        cout << setprecision(2)

             << "x = "

             << setw(2)

             << i

             << setw(10)

             << "f(x) = "

             << setw(5)

             << fixed

             << 2.0 / i

             << endl;

        i++;



    }

    return 0;



}

Инструкция for


Инструкция for реализует алгоритмическую структуру цикл с параметром (или цикл со счетчиком). Цикл for применяется в том случае, когда в программе, прежде выполнения инструкций тела цикла, становится известным (или заранее определено) количество шагов этого цикла. В блок-схеме инструкция for изображается следующим образом:



Синтаксис:

for (инициализация; условие; модификация) {

Тело цикла;

}

Цикл работает следующим образом:



  1. В начале происходит инициализация переменной-счетчика. Инициализация производится единожды, до выполнения цикла.

  2. Затем проверяется выражение-условие: если выражение имеет значение true, будет выполняться тело цикла.

  3. После выполнения инструкций тела цикла производится модификация (изменение) величины счетчика; обычно для этого используются операции инкремента или декремента.

  4. Вывести натуральные числа от 1 до n.

  5. Программа 8.5.10

1

2

3



4

5

6



7

8

9



10

11


#include

#include

using namespace std;

 

int main() {



    int n;

    cout << "n = "; cin >> n;

    for (int i = 1; i <= n; i++)

        cout << i << setw(3);

    return 0;

}

Вложенные циклы


Когда на каждом шаге цикла требуется выполнять некоторые другие циклические операции применяется структура вложенных циклов, т.е. один цикл находится внутри другого цикла. Постановка задачи: Вывести таблицу умножения в шестнадцатеричной системе счисления.
Программа 8.8

1

2

3



4

5

6



7

8

9



10

11

12



13

14

15



16

17

18



19

20


#include

#include

using namespace std;

 

int main() {



    int i = 1;

    while (i < 17) {

        i++;

        int j = 1;

        while (j < 17) {

            j++;

            cout << hex

                 << uppercase

                 << setw(4)

                 << i * j;

        }

        cout << '\n';

    }

    return 0;



}

1 2 3 4 5 6 7 8 9 A B C D E F 10

2 4 6 8 A C E 10 12 14 16 18 1A 1C 1E 20

3 6 9 C F 12 15 18 1B 1E 21 24 27 2A 2D 30

4 8 C 10 14 18 1C 20 24 28 2C 30 34 38 3C 40

5 A F 14 19 1E 23 28 2D 32 37 3C 41 46 4B 50

6 C 12 18 1E 24 2A 30 36 3C 42 48 4E 54 5A 60

7 E 15 1C 23 2A 31 38 3F 46 4D 54 5B 62 69 70

8 10 18 20 28 30 38 40 48 50 58 60 68 70 78 80

9 12 1B 24 2D 36 3F 48 51 5A 63 6C 75 7E 87 90

A 14 1E 28 32 3C 46 50 5A 64 6E 78 82 8C 96 A0

B 16 21 2C 37 42 4D 58 63 6E 79 84 8F 9A A5 B0

C 18 24 30 3C 48 54 60 6C 78 84 90 9C A8 B4 C0

D 1A 27 34 41 4E 5B 68 75 82 8F 9C A9 B6 C3 D0

E 1C 2A 38 46 54 62 70 7E 8C 9A A8 B6 C4 D2 E0

F 1E 2D 3C 4B 5A 69 78 87 96 A5 B4 C3 D2 E1 F0

10 20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0 100



жүктеу 1,49 Mb.

Достарыңызбен бөлісу:
1   ...   15   16   17   18   19   20   21   22   ...   41




©g.engime.org 2024
әкімшілігінің қараңыз

    Басты бет
рсетілетін қызмет
халықаралық қаржы
Астана халықаралық
қызмет регламенті
бекіту туралы
туралы ережені
орталығы туралы
субсидиялау мемлекеттік
кеңес туралы
ніндегі кеңес
орталығын басқару
қаржы орталығын
қаржы орталығы
құрамын бекіту
неркәсіптік кешен
міндетті құпия
болуына ерікті
тексерілу мемлекеттік
медициналық тексерілу
құпия медициналық
ерікті анонимді
Бастауыш тәлім
қатысуға жолдамалар
қызметшілері арасындағы
академиялық демалыс
алушыларға академиялық
білім алушыларға
ұйымдарында білім
туралы хабарландыру
конкурс туралы
мемлекеттік қызметшілері
мемлекеттік әкімшілік
органдардың мемлекеттік
мемлекеттік органдардың
барлық мемлекеттік
арналған барлық
орналасуға арналған
лауазымына орналасуға
әкімшілік лауазымына
инфекцияның болуына
жәрдемдесудің белсенді
шараларына қатысуға
саласындағы дайындаушы
ленген қосылған
шегінде бюджетке
салығы шегінде
есептелген қосылған
ұйымдарға есептелген
дайындаушы ұйымдарға
кешен саласындағы
сомасын субсидиялау