Страницы

5. Оператор while

Цикл с предусловием while

while (проверочное условие) 
     тело;

При выполнении этого оператора вначале вычисляется значение проверочного условия.  Если это значение истинно, выполняется тело цикла, затем значение выражения проверяется вновь и т. д., до тех пор, пока выражение не примет значение «ложь». 
Если выражение принимает значение «ложь» при первой же проверке, то тело цикла,  не выполняется вообще.
В операторе  обязательно изменение значений переменных, влияющих на значение проверочного условия. При невыполнении этого условия получаем пример того, что называется «зацикливанием».

!!!Если условие всегда оказывается истинным, то может произойти зацикливание:
while (10>0)  
  cout << 10;


Пример 1. Найти сумму всех натуральных кратных 4 чисел, не превосходящих число 416.

Указание: мы будем искать сумму чисел от 4 до 416, и каждое следующее слагаемое отличается от предыдущего на 4.


#include <iostream>
using namespace std;

int main()

{
  int i, s;
  s = 0;
  i = 4;
  while (i <= 416)
    {
    s = s + i;
    i += 4;
    }
  cout << s;
  return 0;
}


Задание 1. Подсчитать количество цифр в десятичной записи целого неотрицательного числа N.

Указание: будем делить число на 10 до тех пор, пока не останется ни одной цифры. В переменную K будем заносить количество цифр.


       Тесты         Посмотреть решение       

Экспериментальный раздел работы

1. Дано натуральное число N. Вывести на экран все цифры числа в обратном порядке, т.е., если N=4378519, то на выходе: 9 1 5 8 7 3 4.

2. Дано натуральное число N. Вывести на экран все цифры числа в прямом порядке, т.е., если N=4378519, то на выходе: 4 3 7 8 5 1 9.



Задание 2. Дано натуральное число N. Вывести число, цифры которого записаны в обратном порядке.

Указание: выделяя цифры числа, найдем число M, цифры которого записаны в обратном порядке.


       Тесты         Посмотреть решение       

Экспериментальный раздел работы

1. Дано натуральное число N. Определить является ли оно палиндромом.

2. Дано натуральное число N. Выбросить из записи числа N все цифры, равные 1, оставив при этом прежним порядок остальных цифр. Например, число 321481 преобразуется в число 3248.


3. Приписать к исходному числу n такое же число. Например, из числа 1903 должно быть получено число 19031903.


4. Дано натуральное число N. Выбросить из записи числа N все четные цифры.


Задания

1. Найдите ошибки.
А) k = 1; = 0;
    while (k < n)
       f k;
       k = к + 1;

Б) Р = 2;
   while (р >= 0) 
  {
   а = + р;
   р  = р + 2;
  }

2. Определите значения переменных а и b после выполнения операторов:
а = 1 ; b = 1;
while (а <= 3)  
    а = а+1; 
    b = b+1;

3. Дана последовательность операторов: 
а = 1; 
b = 1;
while (a+b < 8)
  { 
   a = a + 1; 
   b = b+2;
   }
 s = a + b
Сколько раз выполняется проверка логического выражения в операторе while? Определите значения переменных а, b и s после завершения этой последовательности операторов?

Задания для самостоятельной работы

1. Определите значение переменной s после выполнения следующих операторов:
• s = 0; i = 0; w hile (i < 5) { i++; s = s + 100 / i;}
• s = 0; i = 1; while (i > 1) {  s = s+100 / i; i--;} 

2. Найдите и исправьте ошибки в следующем фрагменте программы, определяющей для заданного натурального числа n число, записанное цифрами числа n в обратном порядке.
р  = n ;
while (р >= 0) 
  {
  а = + р % 10;
  р  = р / 10
  }

3. Найти минимальное число, большее 300, которое нацело делится на 19.

4. Поменять местами первую и последнюю цифры числа. Например, из числа 8547 должно быть получено число 7548.

5. Дано натуральное число N. Выбросить из записи числа N все цифры, равные 1 и 5, оставив при этом прежним порядок остальных цифр. Например, число 35145581 преобразуется в число 348.