Приводимая ниже программа иллюстрирует использование цикла while.



Задание 5-11

// Задание 5_11.cpp: определяет точку входа для консольного приложения.

/* Программа выводит все отображаемые на экране символы,

включая расширенный набор, если он существует

*/

#include "stdafx.h"

#include <iostream>

using namespace std;

int main()

{

setlocale(LC_ALL, "Russian");

unsigned char ch;

ch = 32;

while (ch) {

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

       {

             cout << ch << " ";

             ch++;

       }

       cout << "\n";

}

cout << "\n";

return 0;

}

 

В этом примере для управления циклом используется просто переменная ch. Это возможно, так как переменная объявлена как символ без знака и может содержать значения от 0 до 255. Увеличение последнего значения на 1 приводит к явлению «оборачивания» и ch становится 0, что является признаком завершения цикла (условие ложно).

Как и в случае цикла for, while анализирует условное выражение в начале каждого шага, из чего следует, что тело цикла может не выполниться ни разу.

Приведённая ниже программа выводит линию точек. Программа не допускает вывод строк длиннее 80 символов

Задание 5-12

// 5_12 WHILE.cpp: главный файл проекта.

       #include "stdafx.h"

       #include <iostream>

       #include <conio.h>

       using namespace std;

int main()

{

       setlocale (LC_ALL,"Russian");

       int len;

       cout << " Введите длину (от 1 до 79): ";

       cin >> len;

       while (len > 0 && len < 80) {

       cout << ".";

             len--;

       }

       _getch();

}

 

Тело цикла while может не содержать ни одного предложения, например:

while ( rand() !=100);

Этот цикл повторяется, пока случайное число, генерируемое функцией rand() , не окажется равным 100.

Цикл do-while

В отличие от циклов for, while, вкоторых условие выполнения анализируется в началекаждого шага,в цикле do- while проверка условия выполняется в конце шага цикла и поэтому цикл do- while всегда выполняется по меньшей мере один раз. Общая форма цикла do- while  выглядит так:

do {

предложения;

} while (условие)

Если тело цикла состоит из единственного предложения, в фигурных скобках нет необходимости. Однако они часто используются для повышения наглядности конструкции do- while. Цикл выполняется до тех пор, пока условное выражение истинно.

В следующей программе цикл выполняется, пока пользователь не введёт число 100.

       #include "stdafx.h"

       #include <iostream>

       #include <conio.h>

       using namespace std;

int main()

{

       setlocale (LC_ALL,"Russian");

       int num;

       do {

       cout << " Введите число (100 для завершения): ";

       cin >> num;

       } while (num !=100);

_getch();

}

 

Используя цикл do- while можно выполнить дальнейшее усовершенствование программы «Магическое число». На этот раз программа должна крутиться в цикле пока пользователь не угадает число. Самостоятельно добавьте в ранее составленную программу конструкцию do- while, обеспечивающую это условие.

Результат пробного прогона программы должен быть следующим:

Введите вашу догадку: 10

Жаль, но вы ошиблись. Ваше число слишком мало.

Введите вашу догадку: 100

Жаль, но вы ошиблись. Ваше число слишком велико.

Введите вашу догадку: 50

Жаль, но вы ошиблись. Ваше число слишком велико.

Введите вашу догадку: 41

***Правильно*** 41 и есть магическое число.

Текст, правильно работающей программы, поместите под заголовок «Задание 5-13».

Задание 5-13

 

 

Проект 3-2 Справочная система С++

Следует усовершенствовать проект 3-1, добавив в справочную систему информацию о циклах for, while, do- while. Для этого:

1. Скопируйте файл проекта 3-1 (HELP. cpp)и назовите его HELP 2

2. Измените часть программы, выводящую возможные варианты так, чтобы она использовала цикл do-while:

do {

       cout << " Справка по:\n";

       cout << " 1. if \n";

       cout << " 2. switch \n";

       cout << " 3. for \n";

       cout << " 4. while \n";

       cout << " 5. do-while \n";

       cout << " Выберите один из пунктов:";

       cin >> choice;

} while (choice < ‘1’ || choice > ‘5’);

 

При внесении такого дополнения программа будет крутиться в цикле, выводя меню, до тех пор пока пользователь не введёт число между 1 и 5. Здесь цикл do-while весьма полезен.

3. Расширьте предложения switch, включив в него справки по циклам for, while, do-while.

4. Заметьте, что в этом варианте в предложении switch нет необходимости использовать ветвь default, поскольку цикл вывода меню обеспечивает ввод пользователем только допустимого номера пункта.

Усовершенствованный вариант программы поместите после заголовка

Задание 5-14

 


Дата добавления: 2019-07-15; просмотров: 184; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!