- Преподавателю
- Информатика
- Оператор цикла с постусловием в языке Си++
Оператор цикла с постусловием в языке Си++
Раздел | Информатика |
Класс | - |
Тип | Конспекты |
Автор | Волков А.С. |
Дата | 06.05.2014 |
Формат | docx |
Изображения | Нет |
Оператор цикла с постусловием в языке Си++
Цели и задачи урока:
Образовательные:
-
ознакомление учащихся с новым для них видом цикла - цикла с постусловием; усвоение правильности описания этого вида цикла и программе на языке С++;
-
ознакомление учащихся по использованию нового вида цикла и сравнение с известным видом цикла ― циклом с постусловием
-
ознакомление с изменением программы, отладкой и просмотром полученных результатов (связь с прошлыми уроками);
-
контроль усвоения полученных знаний учащимися при выполнении самостоятельного задания;
Развивающие:
развитие познавательных интересов, интеллектуальных и творческих способностей средствами ИКТ.
Воспитательные:
воспитание информационной культуры учащихся, внимательности, аккуратности, дисциплинированности, усидчивости.
выработка навыков:
развитие алгоритмического мышления, познавательных интересов, навыков работы на компьютере.
Цикл с предусловием является наиболее универсальным. Его можно применять для решения любых задач, предусматривающих повторение действий, т.к. при определенных обстоятельствах тело цикла может не исполниться ни разу. Однако в ряде случаев цикл с постусловием более удобен. Примером такой задачи является, например, анализ правильности ввода исходных данных, т.к. прежде чем проверять исходные данные, надо их хотя бы раз ввести.
В чем особенности применения циклов с постусловием в языке Си++?
Задача: Написать игру «Угадай число»: компьютер «загадывает» случайное число из диапазона от 0 до 9, а пользователь - должен угадать его. Программа должна подсчитывать количество попыток игрока.
Предварительные рассуждения:
Программа должна запрашивать у игрока ввод числа до тех пор, пока игрок не угадает число.
Для решения данной задачи неудобно пользоваться циклом с предусловием, т.к. прежде чем проверять угадал пользователь число или нет, сначала это число необходимо ввести. Т.о., для решения данной задачи выгоднее использовать оператор цикла с постусловием.
Решение задачи:
-
Какие переменные необходимы для решения задачи?
Для решения задачи необходимы 3 переменные:
-
пусть x - число, загаданное компьютером;
-
i - число игрока;
-
p - количество попыток.
-
Как будут задаваться значения для этих переменных?
-
Значение переменной x должно задаваться с помощью генератора случайных чисел: x=random(10); Значение этой переменной изменяться в ходе решения задачи не будет, поэтому данную команду нельзя включать в тело цикла.
-
Значение переменной i пользователь должен будет вводить с клавиатуры.
-
Начальным значением переменной p должно быть число 0, это значение будет увеличиваться при каждой новой попытке пользователя угадать число.
-
Что будет являться телом цикла?
Несколько раз должны повторяться следующие действия:
-
на экран компьютера должно выводиться приглашение на ввод пользователем числа;
-
введенное число должно запоминаться в переменной i;
-
кроме того, должно увеличиваться количество попыток игрока.
Т.е., программный код тела цикла будет выглядеть так:
{cout<<"угадай число ";
cin>>i;
p++;
}
-
Каким будет условие в данной циклической конструкции?
Пока число игрока неравно числу компьютера, пользователь должен вводить числа. Таким образом, условие будет следующим: (i!=x)
Итак, вся конструкция цикла с постусловием для данной задачи будет выглядеть так:
do
{ cout<<"ugadai chislo ";
cin>>i;
p++;
}
while (i!=x);
Прочитать данную запись можно так: «Выполняй действия из тела цикла пока число игрока неравно числу компьютера».
Программный код для задачи будет следующим:
void main()
{
randomize();
clrscr();
int x, i, p=0;
x=random(10);
do
{cout<<"угадай число ";
cin>>i;
p++;
}
while (i!=x);
cout<<"Молодец!!!" <<'\n'<<"количество попыток="<<p;
getch();
}
-
Как можно представить конструкцию цикла с постусловием в общем виде?
Цикл do-while сначала выполняет тело цикла, а затем выполняет проверку условия. Повторение тела цикла происходит в том случае, пока условие принимает истинное значение.
do
{тело цикла;}
while (условие);
-
Может ли произойти такая ситуация, что тело цикла в конструкции цикла с постусловием не выполнится ни разу.
Нет, такая ситуация не может иметь место, т.к. в данной конструкции выполнение тела цикла происходит до проверки условия, таким образом конструкция гарантирует выполнение тела цикла хотя бы один раз.
I. Работа в парах или индивидуально (по выбору студентов):
-
Сколько раз будет выполнена проверка условия? Определить значения переменных a, b, s (составить итерационную таблицу).
void main()
{clrscr();
int a,b,s;
a=1; b=1;
do
{
a++;
b+=2;
}
while (a+b<3)
s=a+b;