Задачи цикл с постусловием задачи
Тема: Оператор цикла с постусловием
Цели и задачи:
- Проверить знания матриала по теме “Цикл с
предусловием”. - Научить решать задачи по теме “Оператор цикла с
постусловием”, составление блок-схем. - Активизировать знания по теме “Оператор цикла
с постусловием” для решения задач по данной
теме.
Оборудование: компьютерный кабинет,
экран, карточки с заданиями для учащихся.
Программное обеспечение: программа “Pascal ABC”.
ХОД УРОКА
I. Проверка домашнего задания
Задания:
1. Дана последовательность операторов:
a:=1; b:=1;
while a+b; b:=b+2 end;
s:=a+b
сколько раз будет повторен цикл, и какими будут
значения переменных a, b и s после завершения этой
последовательности операторов?
Ответ: 2 раза, s=8, a=3, b =5.
2. Что будет выведено на экране монитора после
выполнения следующего фрагмента программы:
b:=0;
while a<>0 do
begin
a:=a div 10;
h:=b*10+a mod 10;
end;
write(h);
если а=13305?
Ответ: h=1.
Ученик изображают на доске блок-схему.
Вопросы:
– Как записывается оператор с предусловием?
– В каких случаях целесообразно использовать
оператор с предусловием?
II. Изучение нового материала
Цикл с постусловием
В этом цикле условие проверяется после
выполнения тела цикла. Цикл будет повторяться до
тех пор, пока проверка этого условия будет давать
результат “ложь”(false), то есть пока условие не
выполнено. Даже если условие сразу оказывается
истинным, цикл выполнится хотя бы один раз.
– Вот как это тип цикла реализуется на языке
Паскаль:
Repeat < оператор 1 >;
< оператор 2 >;
< оператор n >;
until <условие >
– Обратите внимание на то, что данный оператор
цикла предполагает наличие нескольких
операторов в теле цикла, поэтому служебные слова begin
и end не нужны.
– Запишем цикл с постусловием на языке
блок-схем:
– Рассмотрим задачу, в которой требуется
вводить с клавиатуры числа и подсчитывать их
сумму, до первого введенного отрицательного
числа.
Решение.
– Составим блок-схему алгоритма:
Запишем программу на языке Паскаля:
Program summer; { Задаем имя программе }
uses crt;
var
sum, a: real; { sum – для накопления суммы, а – для
очередного числа }
begin
sum:=0; {Обнуляем сумму}
REPEAT
sum:=sum+a; {Добавляем введенное число к сумме}
write(‘Введите число:’);{Ввод определенного числа}
readln(a)
UNTIL a<0; {Проверяем введенное число на
отрицательность}
{При выходе из цикла выполняется этот оператор:}
write(‘Сумма чисел=’ ,sum:5:3);
readln
end.
III. Решение задач
а) всей группой у доски:
Задача: Составить программу
планирования закупки товара в магазине на сумму,
не превышающую заданную величину.
Решение:
1. Обозначим через:
с – цену товара;
k – количество товара;
р – заданную предельную величину;
s – начальное значение общей стоимости
покупки;
Начальное значение (s) = 0, значение
предельной суммы (р) – вводится с
клавиатуры. Необходимо повторять запрос цены и
количества выбранного товара, вычислять его
стоимость и выводить результат на экран до тех
пор, пока она не превысит предельную сумму, в этом
случае на экран нужно вывести сообщение о
превышении.
2. Самостоятельно составить блок-схему
для задачи
3. Запишем решение на языке Паскаль:
program pokypka;
uses crt;
var c,k,p,s:integer;
begin
clrscr;
{Вводим наличие денежных средств с клавиатуры}
writeln (‘Предельная сумма – ‘);readln(p);
s:=0; {вводим начальное значение суммы}
REPEAT;
writeln(‘Цена товара – ‘);readln(c); {вводим цену товара}
writeln(‘Количество товара – ‘);readln(k); {вводим
количество товара}
s:=s+c*k; {Находим стоимость приобретенных товаров}
{Выводим на экран стоимость определенных
товаров}
writeln(‘Стоимость покупки =’,s);
UNTIL s>p; {Повторяем до превышения
наличия денег}
writeln(‘Не хватило!’);
end.
(Гимнастика для глаз)
– Самостоятельно осуществите досрочный выход
из цикла при условии, что Вы приобрели вещи на
сумму Р/2.
б) за компьютерами по карточкам-заданиям (карточки
раздаются каждому ученику по вариантам):
Карточки-задания по теме “Цикл с
постусловием”
Задача № 1 (вариант1):
Введите два числа (например A=5 и В=8) и найдите их
произведение, используя только операцию
сложения.
Задача № 2 (вариант 2):
Введите два числа (например A=45 и В=8) и найдите их
частное от деления нацело(в переменной А),
используя только операцию вычитания.
Задание № 3 (вариант 3):
Определить значение переменной S после
выполнения следующих операторов:
S:=0; i=l;
Repeat S:=S+5 div i; i:= l – l;
Until i<= 1;
IV. Домашнее задание
Задача: составить программу и
блок-схему нахождения наибольшего общего
делителя (НОД) двух натуральных чисел.
Краткий разбор домашнего задания.
Алгоритм нахождения (НОД) двух целых
неотрицательных чисел, основан на следующих
свойствах: пусть х и у неравные 0, целые
неотрицательные числа и пусть х >=у,
тогда если у=0, то НОД(х,у)=х, а
если у<>0, то для чисел х, у
и r, где r – остаток от деления
на х на у выполняется
равенство НОД(х,у)= НОД(у, r)
V. Подведение итогов
Выводы:
- Выполнение цикла с постусловием прекращается,
как только логическое условие принимает
значение “истина”; - Цикл с постусловием будет выполнен хотя бы один
раз. - При использовании нескольких операторов в теле
цикла repeat…until операторская скобка (begin … end)
не нужна, так как пара (repeat…until) сама
является операторской скобкой.
Разбор вопросов учащихся. Оценка работ
учащихся комментируется, объясняются допущенные
оценки. Завершается занятие.
Примечание: при составлении
программ на языке Паскаль всегда настаиваю на
описании своих действий в комментариях. Это
закрепляет усвоенный материал, а так же
позволяет учащимся легко найти допущенную
ошибку.
Литература:
- Д.М. Ушаков, Т.А. Юркова. “Паскаль для
школьниов”, Изд.дом “Питер”, 2006 г. - Г.Г. Рапаков, С.Ю. Ржеуцкая. “Turbo Pascal для
студентов и школьников”, “БХВ-Петербург”, 2005 г. - В.В. Фараонов. “Turbo Pascal начальный курс”, М.
“Нолидж”, 2002 г.
Источник
Цикл с постусловием в языке программирования Pascal реализуется с помощью оператора REPEAT… UNTIL.
Синтаксис
repeat
{Операторы}
until условие выхода из цикла;
- Условие – это логическое выражение булевского типа (операция отношения или логическая операция)
- Тело цикла выполняется в любом случае, затем проверяется условие.
- Инструкции тела цикла (операторы) выполняются в том случае, если значение логического выражения равно false, в противном случае осуществляется выход из цикла
- Оператор repeat может быть использован для проверки правильности ввода исходных данных
- Нижняя граница тела цикла определена служебным словом until, поэтому операторные скобки begin и end могут быть опущены (однако если операторы тела цикла заключены в операторные скобки – это не является ошибкой).
- Операторы repeat и while взаимозаменяемы. То есть, практически любую задачу можно решить как с помощью цикла с постусловием, так и с помощью цикла с предусловием. Использование того или иного цикла зависит от предпочтения программиста.
Блок-схема
Примеры задач на использование цикла с постусловием
Пример №1
Постановка задачи:
- Выводится на экран последовательность 20 случайных чисел из промежутка [-10,10]. Определить количество отрицательных чисел больших -5 в данной последовательности.
- Блок-схема
- Кодирование
- Тестирование
program< psldv;
var
i,j:integer;
x:real;
begin
randomize; {процедура инициализации
генератора случайных чисел}
i:=20; j:=0;
repeat
x:=random(20)-10; {генерируем случайное число}
write(x:4:0); {выводим это число на экран}
if (x > -5) and (x < 0) then
inc(j); {процедурой inc увеличиваем
аргумент на единицу,
считаем найденные числа}
dec(i); {процедурой dec уменьшаем аргумент
на единицу, определяем условие
выхода из цикла}
until i=0;
writeln;
write(‘Количество отрицательных чисел
больших -5 равно ‘, j);
end.
-10 8 -6 1 7 8 -1 1 -5 -5 5 -9 -4 -5 -7 -9 -10
6 9 5
Количество отрицательных чисел больших -5 равно 2
Пример №2
Постановка задачи:
- Определить сумму и количество цифр числа.
- Блок-схема
- Кодирование
- Тестирование
program sum;
var
s,a:byte;
n:longint;
begin
write(‘n = ‘); readln(n);
s := 0; a := 0;
repeat
s := s + n mod 10; {Суммируем цифры}
a := a + 1; {определяем количество цифр}
n := n div 10; {Уменьшаем разрядность,
определяем условие выхода из цикла}
until n = 0;
writeln(‘Сумма цифр числа равна ‘, s);
writeln(‘Количество цифр в числе ‘, a);
end.
n = 12345
Сумма цифр числа равна 15
Количество цифр в числе 5
Пример №3
Постановка задачи:
Вычислить сумму бесконечной последовательности
с точностью до 1E-7.
program sum;
const
eps = 1e-7; {Точность вычислений}
var
s,q,u:real;
n:longint;
k:shortint;
begin
s := 0; n := 1; k := 1;
repeat
q := s; {Сохраняем начальное значение суммы}
s := s + k/(2*n – 1); {Получаем очередное слагаемое}
k := k * (-1); {Определение знака следующего слагаемого}
n := n + 1;
u := s – q; {Текущая погрешность}
until abs(u) < eps; {Выходим из цикла, если погрешность станет меньше eps}
writeln(‘S = ‘, s:14:8, ‘pi = ‘,s*4:30:8);
writeln(‘Точное значение pi = ‘,Pi:30:8) {Для сравнения выводим константу Pi}
end.
S = 0.78539821 3.14159285
3.14159265
(Для демонстрации точности вычисления в данной задаче полученная сумма умножается на 4, что дает приблизительное значение числа “пи”. Полученное значение числа “пи” сравнивается с выводом встроенной константы Pi.
Примечание: ряд сходится медленно.)
Домашнее задание
- (while10) Дано целое число N (> 1). Найти наибольшее целое число K, при котором выполняется неравенство 3K
- Определить максимальную цифру в числе и ее позицию
- Дополнительное задание. Генератором случайных чисел генерируется последовательность 50-ти случайных чисел из диапазона [-10,20]. Вычислить сумму положительных элементов последовательности, порядковые номера которых нечетны
- Дополнительное задание. Найти НОД трех чисел. (НОД(a,b,c)=НОД(НОД(a,b),c).)
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник
На занятии рассматривается цикл с постусловием в Паскаль Repeat и происходит знакомство со строковым типом данных
Основной задачей портала labs-org.ru является предоставление возможности получения навыков решения практических задач с использованием языка программирования Pascal. На основе решенных примеров и заданий по Паскалю, изложенных по мере увеличения их сложности, даже новичкам будет достаточно просто усвоить предоставленный материал.
Цикл с постусловием в Паскаль (repeat)
Пример: Ввести целое положительное число (n) и определить четное ли оно.
Проблема 1: Как избежать ввода отрицательного числа или нуля?
Решение 1: Если вводится неверное число, то нужно вернуться назад к вводу данных (цикл).
Проблема 2: Неизвестно, сколько шагов надо сделать.
Решение 2: Надо остановиться, когда n > 0, т.е. надо делать «до тех пор пока n не станет больше0».
- Цикл Repeat в Паскале используется для организации повторений (итераций) с заранее неизвестным их числом.
- Цикл повторяется до тех пор, пока не станет истинным некоторое условие.
repeat
оператор1;
оператор2;
. . .;
операторN
until условие {до тех пор, пока условие не станет истинным}
Блок-схема решения примера:
Решение на Паскале:
- Операторы образуют тело цикла и будут выполняться до тех пор, пока значение “условие” не станет равно true, т.е. не станет истинным.
- Условием может быть переменная или логическое выражение.
- Проверка условия осуществляется уже после первого прохождения операторов тела структуры, т.е. после первой итерации, т.о. цикл с постусловием в Паскаль обязательно выполнится хотя бы один раз, независимо от истинности условия.
Еще одно использование цикла Repeat рассмотрим на примере с решением.
Пример: Печатать «ноль» указанное количество раз
Показать решение:
1 2 3 4 5 6 7 8 9 10 | var i,n:integer; begin write (‘kolichestvo raz’); readln(n); i:=1; repeat write(0); i:=i+1 until i>n end. |
В решенной задаче оператор 8-й строки — это счетчик (i:=i+1), который просчитывает количество раз и одновременно является условием для выхода из цикла.
Задача 1. Написать программу решения задачи о печати чисел 3 5 7 9 11 13. Для решения задачи использовать цикл Repeat
Узнать о работе оператора с постусловием в Паскале можно также из видеоурока:
Строковый тип данных в Паскаль
Для решения следующей задачи нам пригодится работа со строковым типом данных.
Рассмотрим как объявляются строки в Паскале:
Объявление строковой переменной:
Присваивание значения строковой переменной:
str:=’вот такая вот строка’;
Пример использования строковых переменных в Паскале
1 2 3 4 5 6 7 | var str1,str2: string; begin str1:=’Привет, ‘; writeln(‘Ваше имя?’); readln(str2); writeln(str1,str2) end. |
Теперь снова возвращаемся к нашему циклу repeat.
Задача 2. Компьютер предлагает человеку ввести слово, после чего распечатывает это слово, снабдив его восклицательным знаком. Затем снова предлагает ввести слово и так до тех пор, пока человек не введет слово «Хватит». Распечатав его с восклицательным знаком, компьютер отвечает: «Хватит так хватит» и заканчивает работу. Для решения задачи использовать цикл с постусловием в Паскаль.
Дополнительно: Перед выводом каждого слова необходимо выводить его порядковый номер.
Источник
Класс: 9
Учитель информатики и ИКТ: __Сердюкова Г.В._
Урок №: 12
Тема: Решение задач с использованием цикла с постусловием.
Тип урока: Комбинированный урок: проверки и оценки знаний, активного и осознанного усвоения нового материала.
Характеристики урока
Содержание
Образовательные цели урока
формирование алгоритмического мышления
формирование у обучающихся целостных представлений о картине мира;
формирование научного мировоззрения; синтез знаний, полученных на разных предметах.
Развивающие цели
создать условия для развития умений работать коллективно, в парах, индивидуально;
создать условия для развития алгоритмического мышления;
развивать навыки работы с алгоритмами;
развивать познавательный интерес;
формировать умение анализировать, обобщать, сравнивать, абстрагироваться, синтезировать знания, полученные на различных предметах.
Воспитательные цели
воспитывать стремление к получению новых знаний, обобщению знаний из различных областей жизни; коммуникативные качества, умение слушать, критическое отношение;
культуру межличностных взаимоотношений, аккуратность в работе, трудолюбие;
создать на уроке атмосферу психологической комфортности.
Задачи урока
Научить различать разные виды алгоритмов и записывать их в разных формах записи.
Отработка навыков решения алгоритмических задач путём интеграции знаний и умений, полученных при изучении других предметов и решения задач с практическим содержанием.
Определить наличие алгоритмов в школьных предметах.
Доказать необходимость составления алгоритмов на любом учебном предмете для лучшего понимания, усвоения и запоминания материала.
Показать значение информатики для других наук.
Основные образовательные принципы урока
доступность, практичность, научность
Используемое оборудование: рабочее место учителя с интерактивной Smart доской, проектор.
Этап урока
Задачи этапа
Методы
Формы
Деятельность учителя
Деятельность ученика
Время
Слайд презентации
1.Организацион-ный момент.
Включение в деловой ритм. Подготовка класса к работе.
Разъяснение
Фронталь-ная
Знакомит учащихся с планом урока
Слушают
1 мин.
Слайд 1,2
2. Проверка выполнения домашнего задания.
Выявить уровень знаний. Определение типичных
ошибок.
Разбор дом. задачи у доски
Фронталь-ная
Наблюдает,
Корректирует
Работа учащихся в тетради и вопросы по основным шагам решения задачи
5 мин
Слайды
3
3. Проверка знаний материала прошлого урока
Выявить уровень знаний. Определение типичных
ошибок.
Мини-тестирова-ние
Тест
Наблюдает, корректирует
Работа учащихся в тетради.
5 мин
Слайды
4-8
4. Подготовка к активной учебно-познавательной деятельности
Активизировать знания учащихся, необходимых для изучения нового материала.
Формировать познавательные мотивы.
Проблемная мини-ситуация
Коллектив-ная
Многие считают, что информатика нужна только для того, чтобы научиться работать на компьютерах. Мы с вами знаем, что это заблуждение, которое мы постараемся опровергнуть на нашем уроке. Сегодня вы убедитесь, что знания по алгоритмизации, полученные на информатике, можно и нужно применять на других учебных предметах.
Давайте вспомним басню И.А. Крылова «Лебедь, рак и щука» в чем их ошибка, почему они не могут увезти воз?
Как они действуют?
Правильно. Чтобы добиться желаемой цели, нужно заранее продумывать и планировать свои действия. А как это сделать?
Вы сказали, алгоритмы полезно составлять, т.е. очень важно научиться мыслить алгоритмически.
Человек, понимающий суть сложной задачи и может составить обладающий алгоритмическим мышлением, составляет алгоритмы легко и быстро. Он сразу видит алгоритм ее решения.
Алгоритмическое мышление помогает отчетливо увидеть шаги, ведущие к цели, заметить все препятствия и умело их обойти. Способность к алгоритмическому мышлению – важная черта умного человека.
Если работа сложная, нужно составить план ее выполнения. А детальный план действий – это алгоритм. Такой план очень полезен. Он позволяет лучше понять предстоящую работу и выполнить ее более качественно.
2 мин
Слайды
9-10
5. Установка познавательной задачи
Организация учащихся по принятию познавательной задачи.
Устное сообщение учителя,
Индивиду-альная работа у доски
Фронталь-ная
На прошлом уроке мы познакомились
с … алгоритмами, в которых используется алгоритмическая структура …
Для
решения каких задач используется данный вид алгоритма?
Давайте попробуем решить задачу из предмета математики.
Задача №1 про спортсмена
Участвуют в диалоге
ЦИКЛИЧЕСКИМИ
ЦИКЛА С ПОСТУСЛОВИЕМ
Для задач, в которых количество повторений заранее неизвестно.
2 мин
Слайд 11
6. Поиск решения – добывание новых знаний
Сформировать навыки
применения
структуры цикла с постусловием для решения задач, подвести к
правильному алгоритму
решения
Коллектив-ная работа по каждому шагу алгоритма в диалоге
Фронталь-ная
Решение задачи в диалоге с обучающимися – пояснение каждой анимации (шага алгоритма) слайда
Работа в тетрадях, ответы на вопросы учителя в диалоге
10 мин
Слайды 12-19
7. Закрепление полученных знаний
Организовать деятельность по применению новых приёмов решения.
Самостоя-тельная работа
Работа в группах (в парах за партой)
Координирует, направляет,
консультирует
Учащиеся выполняют задания по вариантам (ч/з 1 парту)
9 мин
Слайд 20
8. Рефлексия.
Подведение итогов урока
Анализ успешности усвоенного материала и деятельности учащихся.
Объясни-тельно-иллюстративный
(беседа)
Коллектив-ная
Прошу Вас заполнить и сдать оценочные листы.
Сегодня вы увидели как взаимосвязано то, о чём вы говорили на уроках информатики, с теми знаниями, которые получили при изучении других предметов, и какая связь между знаниями, полученными на уроках с повседневной жизнью.
А теперь давайте вернёмся к нашей проблеме: «Как научиться алгоритмически мыслить?»
Итак, ребята, сегодня на уроке, исследуя нашу проблему, вы увидели, что для лучшего усвоения, понимания, запоминания материала, необходимо составлять алгоритм решения любой задачи, т.к. алгоритмы
развивают
Я вас призываю к составлению алгоритмов во время вашей учебной деятельности на любом школьном предмете и в жизненной ситуации.
Большинство задач, которые ставит перед нами жизнь, требуют умения сориентироваться, применить имеющиеся знания, умения и навыки на практике и выбрать единственно верный путь к их разрешению.
Заполняют листы самооценки и оценки групповой работы.
При работе над любой задачей необходимо составлять план её решения, анализировать возможные результаты: что будет, если…, предусматривать различные варианты поведения и т.п.
ясность и чёткость мышления;
внимательность;
аккуратность;
обстоятельность;
убедительность в суждениях;
умение перейти мысленно от конкретного содержания и сосредоточиться на структуре своей мысли.
4 мин
Слайд 21
9. Домашнее задание.
Дать информацию и инструктаж по домашнему заданию
Объясни-тельно-иллюстра-тивный (инструк-таж)
Фронталь-ная
Устное сообщение учителя
Слушают и записывают задания
2мин.
Слайд 22
Требования к уровню подготовки обучающихся:
Знание понятия алгоритма, его свойств;
Знание форм представления алгоритма, в том числе языка блок-схем;
Знание основных типов структур алгоритма;
Знание видов циклической структуры алгоритма;
Знание структуры цикла с предусловием;
Умение использовать основные структуры алгоритма для решения простых задач.
Самооценка личных достижений учени____ 9 ___ класса __________________________
по теме «Решение задач с использованием цикла с постусловием»
Коммуникативная оценка
Дополнения и обоснование ответов, активное участие в проверке
Активность в обсуждении
Вклад в общий результат
Выбери смайлик, который отражает твоё настроение на уроке
Это здорово!
Ничего интересного
Мне не понравилось
Лист оценки достижений группы по теме «Решение задач с использованием цикла с постусловием»
Коллективность обсуждений
Представление результата
Ответы на вопросы
Толерантность
Приложение1 Презентация «Урок Решения задач на цикл с постусловием» (приведены некоторые слайды)
Источник