Операторы цикла в среде программирования Turbo Pascal Урок информатики в 10 классе МБОУ лицей № 5 уч. инф. Алиева Э.М. ЦИТАТА Готфрид Лейбниц (1646 – 1716) – немецкий математик, физик, философ, юрист, языковед. «Недостойно человеку одаренному, тратить подобно рабу, часы на вычисления, которые, безусловно, можно было бы доверить любому лицу, если при этом применить машину» Актуализация знаний компьютерный тест 1 .Точное и понятное предписание исполнителю - а) блок-схема б) алгоритм в) программа г) оператор а) блок г) Program б) алгоритм в) программа г) условие 9. If ... Then ... EIse ... на русском языке - это ... а) если ... , то ... , иначе ... б) то ... , или иначе ... 5. Блок условия изображается ... а) овалом в) если , или то, или иначе ... б) прямоугольником г) иначе в) ромбом а) блок-схемой б) алгоритмом в) программой г) параллелограммом 6. Ветка «минус» в Паскале - 10. Алгоритм ветвления, в котором команды по одной из веток отсутствуют, - это г) оператором а) неполное ветвление б) полное ветвление 3. Алгоритм, в котором выполнение команды зависит от выполнения условия а) Then б) Else в) End в) структурное ветвление г) цикл 11. Задано: А = О, В = 1. Истинно ли условие А > В? а) истинно б) ложно 12. Задано: А = О, В = О. Истинно ли условие А = В? а) истинно б) ложно 2 .Изображение алгоритма с помощью специальных блоков называется ... г) Program 7. Ветка «плюс» в Паскале - ... а) Then б) EIse в) End называется ... а) линейным б) циклическим в) алгоритмом ветвления г) Program г) вспомогательным 8. Операторы ветвления - это ... 4..Некое логическое выражение, принимающее значение «Да» или «Нет», - это… а) Writeln б) Real в) If ... Then ... EIse ... . Вопросы графического диктанта. Учитель читает высказывание, и, если оно истинно, учащиеся рисуют прямую линию «_», если ложно - изображают домик «/\». 1. Алгоритм ветвления - это алгоритм, в котором выполнение команд зависит от выполнения условия. 2. Условие - это некое логическое выражение, при ни мающее только значение .ложь» . 3. В алгоритме неполного ветвления по одной из веток команды не выполняются. 4. Ветка «минус» в Паскале обозначается оператором Then. 5. Оператором ветвления является оператор Writeln. 6. Оператор «Н» читается как «если». 7. В алгоритме ветвления на ветках нельзя использовать операторы ввода. 8. Линейный алгоритм не содержит условия. 9. Логический оператор «and» читается как «или». 10. Условие всегда пишется только в блоке команд. ОТВЕТЫ: 1-б, 2-а, 3-в, 4-г, 5-в, 6-б, 7-а, 8-в, 9-а, 11-б, 12-а. ОТВЕТ. _ /\ _/\ /\ _/\ _/\ /\ Выставление оценок «5» -- допущено не более одной ошибки «4» – допущены 2-3 ошибки «3» -- допущены 4-5 ошибок «2» – допущено более 5 ошибок Мы с вами изучили следующие типы алгоритмов: линейные и ветвления. Линейные алгоритмы Линейным называется алгоритм, в котором выполняются все этапы решения задачи строго последовательно. Блок схема алгоритма выглядит, как последовательность действий, т.е. не содержит ветвлений и циклов: где: НАЧАЛО - начало алгоритма D1,D2,D3 - действия КОНЕЦ - конец алгоритма Задача: вычислить площадь прямоугольника: Блок-схема алгоритма Алгоритм ветвления В рассмотренных до сих пор алгоритмах и программах все команды выполнялись последовательно одна за другой в том порядке, в каком они были записаны. Однако таким образом может быть построен алгоритм для решения далеко не всякой задачи. В практике известны задачи, дальнейший ход решения которых зависит от выполнения каких-либо условий. Алгоритм с ветвлением Команда ветвления - разделяет алгоритм на два пути в зависимости от некоторого условия; затем исполнение алгоритма выходит на общее продолжение. Ветвление бывает полное и неполное. Блок-схема Полное ветвление если < условие > то < Cерия 1 > иначе < Cерия 2 > и Сокращенная форма если < условие > то < Cерия 1 > Задача Даны два отличных от друг друга числа , вывести наибольшее из них чисел. a>b начало Ввести два числа, а и b a>b Вывести а Вывести b конец Циклы и типы циклов На предыдущих уроках мы изучили алгоритм ветвления, научились составлять алгоритмы и решать задачи с использованием алгоритма ветвления. Сегодня мы с вами начинаем изучать алгоритмы циклов. Алгоритм, в котором одно и то же действие (команды) повторяется многократно, называют алгоритмом цикла. Изучение нового материала Существуют три разновидности циклов : Цикл «До» Цикл «Пока» Цикл «Для» Цикл с предусловием пока (условие истинно) повторять (действие) while <условие> do <группа операторов>; условие Цикл с постусловием повторять (действие) пока не (условие ложно) repeat <группа операторов> until <условие>; нет действие да действие нет условие да Цикл с параметром (со счетчиком) (цикл «для» - for.. .to/downto) Синтаксис оператора цикла с параметром for <параметр цикла > := < начальное значение параметра цикла> счетчик осо to < конечное значение параметра цикла > do begin <действие (тело цикла)> end; Действие (тело цикла) for (для), to (до), do (делать), downto(вниз), begin (начало), end (конец) -- зарезервированные слова ЛЕГЕНДА О СОЗДАТЕЛЕ ШАХМАТ По преданию, индийский принц Сирам, восхищенный игрой в шахматы, призвал к себе ее создателя, ученого Сету, и сказал: - Я желаю достойно наградить тебя за прекрасную игру. Я достаточно богат, чтобы исполнить любое твое желание. Сета попросил принца положить на первую клетку шахматной доски 1 зерно, на вторую - 2 зерна, на третью - 4 зерна и т. д. Проблемная ситуация: смог ли принц Сирам выполнить желание Сеты? Математическая модель: 1 + 2 + 4 + 8 + 16 + ... = = 1 + 1∙2 +2∙2 +4∙2 +8∙2 + ...= = 20 + 21 + 22+ 23 + ... + 263. ЗАДАЧА ИЗ «АРИФМЕТИКИ» МАГНИЦКОГО Проблемная ситуация: верно ли, что за гвозди придется уплатить не более 10 рублей? Некто продал лошадь за 156 рублей. Но покупатель, приобретая лошадь, раздумал ее покупать и возвратил продавцу, говоря: - Нет мне расчета, покупать за эту цену лошадь, которая таких денег не стоит. Тогда продавец предложил другие условия: - Если, по-твоему, цена лошади высока, то купи только ее подковные гвозди. Лошадь же тогда получишь в придачу бесплатно. Гвоздей в подкове шесть. За первый гвоздь дай мне всего ¼ копейки, за второй ½ копейки. За третий 1 копейку и т. д. Покупатель, соблазнившись низкой ценой и желая даром получить лошадь, принял условия продавца, рассчитывая, что за эти гвозди придется уплатить не более 10 рублей. Задача Вычислить сумму: s = 1 + 2 + 3 + ... + п, если значение п задано, не применяя формулу суммы членов арифметической прогрессии. Алгоритм решения: Начать сумму с нуля, то есть переменной s присвоить 0 (s :=0). Переменной i присвоить значение 1 (i :=1). Добавить к сумме значение i (s := s + i). Увеличить i на 1 (i:= i + 1). Повторять пункты 3 и 4, пока не дойдем до слагаемого n. Решение задачи о создателе шахмат S = 1 + 1∙2 +2∙2 +4∙2 +8∙2 + ...= = 20 + 21 + 22+ 23 + ... + 263 s = 1.8446744074Е19 Величина награды 18 446 744 407 000 000 000 зерен. 18 квинтиллионов 446 квадриллионов 744 триллиона 407 миллиардов. Чтобы поместить эти зерна в амбар нужно высоту взять равной 150 000 000 км – она совпадает с расстоянием от Земли до Солнца! Решение задачи о покупке лошади Если, по-твоему, цена лошади высока, то купи только ее подковные гвозди. Лошадь же тогда получишь в придачу бесплатно. Гвоздей в подкове шесть. За первый гвоздь дай мне всего ¼ копейки, за второй ½ копейки. За третий 1 копейку и т. д. 1. Сколько слагаемых во второй сумме? 2. Какую сумму надо вычислить? 3. Какие можно сделать изменения в рограмме на языке Pascal для решения второй адачи? S = 1/4+ 1/2 + 1 + 2 + 4 + ... =2-2 + 2-1 + 20+21 + 22 + ... +221 Решение задачи о покупке лошади S = 1/4+ 1/2 + 1 + 2 + 4 + ... =2-2 + 2-1 + 20+21 + +22 + ... +221 4194303,75 коп = 41943 руб Памятка для выбора типа оператора цикла Цикл с предусловием (цикл while) применяйте, если необходимо, чтобы проверка была прежде, чем выполнение тела цикла. Цикл с постусловием (цикл repeat) применяйте, если необходимо, чтобы тело цикла выполнялось хотя бы один раз. Цикл для (цикл for) применяйте, если точно знаете, сколько раз должно быть выполнено тело цикла. Домашнее задание Составить программу для вычисления значений переменной y при заданном значении n. (Использовать три различных оператора цикла). Цитата КОНЕЦ ! Определите истинность условия Пусть А = 10, В = 7. Определите истинность условий: а) А > В; б) В = А; в) А <> В; г) А = 10; д) В = 12. Рассмотрим задачу Вычислить факториал числа п. Произведение n последовательных натуральных чисел называется факториалом числа n. n! = 1∙2∙3∙...∙ (n - 1) ∙n; 5! = 1∙2∙3∙4∙5 Замечание: Если при вычислении суммы счетчику суммы присваивается 0, то при вычислении произведения счетчику произведения присваиваем 1. Три способа Program Faktorial; Var I, N, P: integer; Begin Readln (N); P:=1; For I:=1 to N do P:=P*1; Writeln (‘P=’,P); End.