Вопрос: Как сделать так, чтобы программа работала до тех пор, пока собеседник не введет слово «До свидания»?

Занятие №8  «Структура циклического алгоритма. Цикл while»

Ключевые слова:  циклический алгоритм, тело цикла, условие окончания, цикл с предусловием;

Вопросы для повторения
Перепишите команду ветвления через команду выбора case of if (t>=33) and (t<=35.5) then writeln ('понижена') else if (t>35.5) and (t<=36.6)      then writeln ('норма')     else if (t>36.6) and (t<=40)         then writeln ('повышена');         else writeln('такой температуры нет')
Как на языке Pascal записать следующие команды? 1. Случайное действительное  число от 0 до 1? 2. Случайное действительное число от 0 до Х? 3. Целое случайное число от N до M?    

Давайте вспомним, что мы уже научились делать и как работает наша программа? Правильно, программа умеет здороваться, и выдавать приветствие случайным образом, выводить возраст, проверять правильность введенного возраста и может реагировать на некоторые фразы случайным образом.

Давайте подумаем, если надо обменяться не парой реплик, а несколькими десятками, то копировать вручную соответствующие команды было бы неудобно. Хорошо бы указать программе, что последовательность действий надо выполнить несколько раз. Например, работала до тех пор, пока собеседник не введет слово «Пока» или «До свидания».

 

Вопрос: Как сделать так, чтобы программа работала до тех пор, пока собеседник не введет слово «До свидания»?

Цель:

· научить работать программу до тех пор, пока не будет введено слово «До свидания»;

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

Цикл в программировании – это многократно исполняемое действие, организуемое с помощью средств языка.

У циклов выделяют заголовок и тело. Заголовок определяет, до каких пор или сколько раз тело цикла будет выполняться, а тело содержит операторы, которые выполняются.

Условие стоит перед циклом, такие циклы называются циклами с предусловиями. В языке Паскаль цикл с предусловием называется   while.

Оператор цикла с предусловием выполняет действия заранее неизвестное число раз. В заголовке цикла находится некоторое логическое выражение (условие). Если условие истинно, то тело цикла выполняется, если ложно – то нет. Так как верность логического выражения проверяется в начале, тело цикла может не выполнится ни одного разу.

Когда тело цикла выполнено, то ход программы снова возвращается в начало цикла. Условие выполнения тела снова проверяется (находится значение логического выражения). Тело цикла выполнится столько раз, сколько раз логическое выражение истинно. Поэтому очень важно в теле цикла предусмотреть изменение переменной, фигурирующей в условии цикла, таким образом, чтобы когда-нибудь обязательно наступала ситуация, когда логическое выражение окажется ложным. Иначе произойдет зацикливание. Зацикливание – ошибка, при которой цикл выполняется снова и снова, не прекращаясь.

Если условие неверное тело цикла прекращает выполняться, таким образом, цикл может не выполниться ни разу.

Блок - схема цикла с предусловием:

Нет
                                                        
Условие
                                       

 

 

 


Структура цикла с предусловием имеет следующий вид:


while <условие> do

begin

<тело цикла>;

end;

 

Пример (Проверка правильности введенного пароля)

readln(parol);

password:=’ang123’; {переменная отвечающая за правильный пароль}

while parol<>password do

begin

readln(parol);

end;


Пример (вывести на экран 5 чисел от 1 до 5):

number:=1; {переменная отвечающая за число}

while number<=5 do

begin

writeln(number);{вывод числа}

number:=number+1; {переход к следующему числу}

end;

 

Давайте напишем программу, которая будет разговаривать с нами до тех пор, пока мы не напишем ей слово «До свидания».

Основная программа будет состоять из двух процедур и цикла:

random_hello; {Процедура, отвечающая на приветствие случайным образом}

random_otwet; {Процедура случайного ответа на вопрос}

Процедура random_otwet  будет иметь один выходной параметр otwet. В процедуре должна вводиться фраза, назовем ее replika. Затем идут переменные, которые будут выдаваться случайным образом

s1:='интересно';

s2:='не понимаю';

s3:='расскажи еще';

s4:='удивительно';

s5:='очень сложно';

Т.е. на любую фразу человека компьютер должен выдавать случайную фразу, любую из s1-s5. Для этого необходимо ввести переменную отвечающую за случайное число, и с помощью команды выбора case of выводить одну из случайных фраз.

В процедуре random_hello параметров не будет, в ней вводится приветствие, а затем случайным образом выводится ‘Привет’ или ‘Добрый день’.

 В основной программе вызывать процедуру random_otwet то тех пор, пока введенная фраза не будет равняться ‘До свидания’.

 

Ответы на вопросы
Перепишите команду ветвления через команду выбора case of сase t of 33..35.5: writeln('понижена') 35.6..36.6: writeln('норма'); 36.7..40:   writeln('повышена'); else writeln('такой температуры нет') end;  
Как на языке Pascal записать следующие команды? 1. Случайное действительное  число от 0 до 1? x:=random; 2. Случайное действительное число от 0 до Х? x:=random*X; 3. Целое случайное число от N до M?            х:=random (N-M+1)+N;    

 

Спасибо за внимание!

 

 





Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: