Конспект урока «Циклы в языке программирования Pascal» по информатике
Методическая разработка
на тему
«Циклы в языке программирования Pascal»
Цель: Познакомить учащихся с программированием циклических алгоритмов.
Методическая разработка рассчитана на учащихся 9-х классов общеобразовательной школы. Включает в себя теоретический материал, фронтальную, индивидуальную и контрольную работы. Перед изучением данной темы учащиеся должны знать основные понятия о константах, типах данных и их классификации, операторах ввода/вывода, операторе присваивания, составном операторе, выражениях, иметь представление о структуре программы. Также учащиеся должны уметь: запускать программу, описывать переменные и константы, пользоваться.
Задачи:
-
сформировать у учащихся навыки выполнения технологической цепочки разработки программ средствами языка программирования Pascal;
-
изучить циклические конструкции языка программирования Pascal, позволяющие работать с простыми скалярными и составными типами данных;
-
научиться применять подпрограммы при написании программ на языке программирования Pascal;
научиться отлаживать и тестировать программы, делать выводы о работе этих программ.
Содержание: В данном блоке рассматривается понятие циклического алгоритма. Изучаются основные разновидности циклов:
-
Конструкция FOR.
-
Конструкция WHILE.
-
Конструкция REPEAT. Вложенные циклы.
Учащиеся познакомятся с правилами, которые необходимо соблюдать при использовании в программе оператора цикла. Учащиеся научатся создавать, вводить в компьютер, выполнять и исправлять программы на языке Паскаль, закрепят и отработают навыки решения задач с использованием циклических алгоритмов на языке Паскаль.
Методы обучения: ориентация на самостоятельную работу учащихся; применение проблемного, деятельностного подхода к обучению.
Тематическое планирование:
Тема | Кол-во | |
1 | Организация циклов. | 1 |
2 | Циклы. Конструкция FOR. | 2 |
3 | Циклы. Конструкция WHILE. | 2 |
4 | Циклы. Конструкция REPEAT. Вложенные циклы. | 2 |
5. | Практикум по решению задач по теме «Циклы». | 3 |
6 | Контрольная работа по теме «Циклы” | 1 |
| Итого | 11 |
Ожидаемые результаты обучения.
Учащиеся должны знать:
-
Что такое цикл;
-
Три разновидности операторов цикла;
-
В чем отличия операторов цикла с предварительным и последующим условием;
-
Какой тип должна имеет переменная цикла с параметром;
-
Когда в операторах цикла и ветвления используются операторные скобки;
Учащиеся должны уметь:
-
Использовать циклы при составлении программ;
-
Правильно составлять и использовать условия в циклах WHILE или REPEAT;
-
Составлять программы с использование операторов цикла.
Содержание курса.
Урок 1. Циклические алгоритмы
Цели урока:
Образовательные: Обеспечить усвоение учащимися особенностей конструирования циклических алгоритмов.
Воспитательные: Воспитание умения свести большую задачу к последовательности более мелких, однотипных повторяющихся задач.
Развивающие: Развивать умение правильно воспринимать информацию, усваивать полученные знания.
План урока:
-
Организационный момент.
-
Вступительная беседа. Постановка проблемы: изучение алгоритмизации для развития логического мышления.
-
Актуализация знаний. Повторение пройденного материала
-
Ознакомление, разбор материала.
-
Закрепление материала. Составление блок-схем.
-
Итог урока. Домашнее задание.
Ход урока:
-
Приветствие учеников.
-
Актуализация знаний:
-
Какие алгоритмы вы уже знаете?
-
Что называется линейным алгоритмом?
-
Что называется разветвляющимся алгоритмом?
-
Объяснение нового материала:
На этом уроке мы рассмотрим организацию повторений в алгоритмах с помощью циклических конструкций, а также примеры их применения.
На предыдущих уроках мы познакомились с алгоритмами двух типов: линейными и разветвляющимися. Легко заметить, что все алгоритмы, которые мы составляем, обладают общим свойством: при их выполнении каждое действие совершается один раз (или вообще не совершается). В жизни, однако, часто встречаются инструкции, в которых требуется один и тот же набор действий выполнять много раз подряд: “Иди, пока не придешь” и т.д. Используя только ветвление, такие алгоритмы записать не удастся.
Для этого нужна новая форма организации действий – цикл. Повторение действий в алгоритмах называется циклом.
Алгоритм, который предусматривает многократное повторение одного и того же действия, называется циклическим. В отличие от линейных алгоритмов, в которых команды выполняются последовательно одна за другой, в циклические алгоритмы входит последовательность команд, выполняемая многократно. Такая последовательность команд называется телом цикла.
Существуют три основных типа циклов – пока, до и для. Отличие первых двух циклов состоит в том, что в них количество повторений заранее определено. В первом случае, если препятствие никогда не встретится, движение будет продолжаться бесконечно долго. Такие явления при выполнении алгоритмов называются “зацикливанием”.
Любой цикл состоит из нескольких этапов. Это:
-
Подготовка цикла, в которую входят начальные присвоения;
-
Тело цикла - команды повторения цикла;
-
Условие - обязательная часть циклов “До” и “Пока”.
Цикл называется арифметическим, если число повторений цикла известно заранее или может быть вычислено.
Цикл, как и любая другая алгоритмическая структура, может быть:
-
записан на естественном языке;
-
изображен в виде блок-схемы;
-
записан на алгоритмическом языке;
-
закодирован на языке программирования.
Блок-схемы базовых структур
Цикл, для которого нельзя указать число повторения, и проверка окончания которого происходят по достижению нужного условия, называется итерационным.
Рассмотрим алгоритм движения для трех типов циклов.
Цикл ПОКА (число шагов не известно)
Пока нет препятствия
сделать шаг вперед
Завершить цикл;
Цикл ДО (число шагов неизвестно)
Сделать шаг вперед
до встречи с препятствием
Завершить цикл.
Цикл ДЛЯ (число шагов известно)
Для количества шагов менее 100
сделать шаг вперед
Завершить цикл.
Задание № 1: Нужно исправить неверно составленный алгоритм:
На перемене школьник зашел в столовую съесть пирожков, и некто посоветовал ему воспользоваться алгоритмом
-
Пока не исчезнет чувство голода повторять:
-
Купить пирожок
-
Конец цикла
-
Съесть пирожок.
Какие строки алгоритма надо поменять местами, чтобы школьник ушел сытым?
Цикл ПОКА
пока
выполнять
Выполнение цикла ПОКА начинается с проверки условия его окончания. Эту разновидность цикла называют циклом с предусловием.
Если условие выполняется, то осуществляется изменение значений аргументов. В противном случае происходит выход из цикла. Может оказаться, что тело цикла не будет выполнено ни разу (если с самого начала условие не выполняется).
Цикл ДО
выполнять
до
Условие выполнения цикла проверяется в конце выполнения тела цикла, то есть в любом случае тело цикла будет выполнено хотя бы один раз.
Цикл ДЛЯ
Повторять N раз
При выполнении алгоритма последовательность команд в теле цикла повторяется указанное число раз. Правила алгоритмического языка допускают задание любого целого числа повторений. Оно может быть нулевым и даже отрицательным. Эти случаи не считаются ошибочными, просто тело цикла не будет выполнено ни разу, а компьютер сразу перейдет к выполнению команд, записанных после цикла. Среди команд, составляющих тело цикла, могут быть и другие циклы. Программисты часто пользуются циклами, в том числе многократно вложенными.
Вложенные циклы:
Начало цикла 1
Начало цикла 2
Конец цикла 2
Начало цикла 3
... ... ...
Начало цикла N
Конец цикла N
Конец цикла 3
Конец цикла 1
-
Составление блок-схем.
Задача № 1: Ученик в первый день выучил 5 английских слов. В каждый следующий день он выучивал на 2 слова больше, чем в предыдущий. Сколько английских слов выучит ученик в 10-ый день занятий? Составьте словесный алгоритм и блок-схему (тремя способами).
Словесный:
Начало
-
а=5 (считает слова)
-
d=1 (считает дни)
если D
-
а = а + 2
-
d = d + 1
-
вывод а
-
конец
Блок-схемы для циклов “до” и “для” ребята выполняют у доски.
Задача № 2. Составить блок-схемы для нахождения y=x2, для х=2, 4, 6, 8, 10.
Задачи по теме: “Циклические алгоритмы” находятся в Приложении1.
-
Домашнее задание: Составить блок-схемы вычисления суммы N первых натуральных чисел (N=3).
Уроки 2, 3. Цикл с параметром
Цель урока:
-
Изучить цикл с параметром. Проверить знания прошлого урока.
-
Воспитание умения слушать учителя.
-
Развитие познавательного интереса.
План урока:
-
Проверка домашнего задания.
-
Объяснение нового материала.
-
Примеры программ с использованием цикла с параметром.
-
Домашняя работа.
-
Подведение итогов урока.
Ход урока
Проверка домашнего задания.
Постановка цели урока.
Объяснение нового материала.
Цикл с параметром наиболее часто встречающийся цикл в любом языке программирования. Этот цикл применяется тогда, когда заранее известно условие и число повторений цикла. Используется, когда известно, сколько раз выполняется циклическая часть программы.
for := to/downto do ;
для до делать
параметр цикла - числовая переменная типа integer
начало, конец - арифметическое выражение
to - используется когда начало меньше конца
downto - используется когда начало больше конца
оператор - тело цикла, любой оператор, в том числе и составной
Принцип работы:
-
Параметру присваивается значение начало
-
Выполняется оператор - тело цикла.
-
Затем параметр сравнивается с концом.
-
Если параметр больше/меньше конца, то начинает работать следующий оператор за оператором цикла, в противном случае к параметру прибавляется/отнимается единица.
-
Снова выполняется оператор.
-
Так продолжается пока параметр не станет больше/меньше конца.
Рассмотрим применение цикла с параметром на конкретных примерах.
Пример 1. Сто раз написать свое имя на экране в строчку
Программа:
Program Z_1;
Var i: integer;
Begin
For i: = 1 to 100 do
Write (‘Имя ’);
Readln
End.
Пример 2. Вывести на экран таблицу перевода из градусов по шкале Цельсия в градусы по Фаренгейту, для значений от 15 до 30, шаг 1 градус. Формула перевода из Цельсия в Фаренгейты F=(c*1.8)+32.
Program Z_2;
Var c: integer;
F: real;
Begin
For c: = 15 to 30 do
begin
f:= (c*1.8) +32;
writeln (c,’ ‘,f);
end;
Readln
End.
Пример 3. Написать программу, которая выводит таблицу квадратов первых пяти целых положительных нечетных чисел в обратном порядке
Program Z_3;
Var x,y,i: integer;
Begin
Writeln (‘таблица квадратов нечетных чисел’);
Writeln (‘-------------------------‘);
Writeln (‘число’, ,’квадрат числа’);
Writeln (‘-------------------------‘);
For i: = 5 downto 1 do
begin
y:= sqr (x)
writeln (x,y,);
end;
Writeln (‘-------------------------‘);
Readln
End.
Самостоятельная работа. Ребята за компьютерами решают следующие задачи:
Uses crt; Var n{введенное число},i:integer; Begin Readln(n); For i:=2 to n-1 do If n mod i =0 then begin writeln(n,’не простое’);readkey; halt;end; writeln (n, ‘простое’); readkey; end. | |
Написать программу, которая выводит на экран табл. умножения, например на 7. | Uses crt; Var m,n,p:integer; Begin For i:=1 to 10 do Writeln(7,’*’,I:2,’=’,7*I:2); Readkey; end. |
Написать программу, которая выводит табличные значения функции у=x+2. Диапазон изменения аргумента от – 4 до 4, приращение аргумента - 0.5 | uses crt; var x,y:real; begin; clrscr; writeln('y':20,' : ','x':5); writeln(' --------------'); x:=-4; repeat y:=abs(x)+2; writeln(y:20:1,' : ',x:5:1); x:=x+0.5; until x>4; readkey; end. |
Написать программу, которая определяет максимальное число из введенной последовательности положительных чисел. Завершение ввода – 0. | Uses crt; Var a{очередное число}, m{макс.число}:integer; Begin M:=0; Repeat Writeln(‘введи число’);Readln(a); If a>m then m:=a; Until a=0; Writeln(‘max=’,m); Readkey; end. |
Написать программу, которая позволяет найти наибольший общий делитель двух целых чисел | program nod; uses crt; var n1,n2,nod: integer; begin clrscr; writeln ('Введите два целых числа'); readln (n1,n2); while n1n2 do if n1>n2 then n1:=n1-n2 else n2:=n2-n1; nod:=n1; writeln 'Наибольший общий делитель -',nod); readkey;end. |
Написать программу, которая позволяет найти наименьшее общее кратное двух целых чисел | program nok1; uses crt; var nok,n1,n2:byte;i:word; begin clrscr; writeln('введите два числа'); readln(n1,n2); nok:=1; for i:=n1*n2 downto 2 do if (n1 mod i=0) and (n2 mod i=0) then nok:=i; write('NOK -',nok); readkey;end. |
Домашнее задание:
Написать программу, которая выводит табличные значения функции у=х2+2. Диапазон изменения аргумента от – 4 до 4, приращение аргумента 1
Урок 4, 5. Цикл с предусловием
Цель урока: изучить оператор цикла WHILE языка программирования Pascal, синтаксис, семантику, а также научить учащихся использованию данного оператора при решении задач.
Задачи урока:
-
образовательные:
-
усвоение учащимися оператора цикла с предусловием и области его применения;
-
формирование умений и навыков записи оператора WHILE на языке программирования Pascal;
-
выработка навыков составления программ, реализующих циклические алгоритмы при решении задач;
-
-
развивающие:
-
развитие логического и алгоритмического мышления учащихся;
-
развитие у учащихся познавательной активности;
-
развитие памяти и внимания;
-
развитие коммуникационной компетентности у учащихся;
-
формирование у учащихся компьютерной грамотности и потребности в приобретении знаний;
-
-
воспитательные:
-
привитие учащимся навыков самостоятельной работы;
-
воспитание бережного отношения к компьютерной технике;
-
воспитание толерантности.
-
Тип урока: урок изучения нового материала.
Формы и методы обучения: словесный, наглядный, практический, проблемный – фронтальный опрос, мозговой штурм, индивидуальная работа, работа на компьютере.
Оснащение урока: компьютерная презентация «Оператор цикла WHILE», мультимедийный проектор, компьютеры с инсталлированным на них пакетом Turbo Pascal, дидактический раздаточный материал.
План урока
-
Оргмомент. Проверка домашнего задания
-
Вводное слово
-
Актуализация знаний и умений учащихся
-
Презентация нового материала
-
Закрепление изученного материала
-
Работа на компьютерах
-
Заключение Задание на дом
Ход урока
2. Вводное слово. Подавляющее большинство задач с циклами можно решать разными способами, используя при этом один из трех операторов цикла. Часто решения, использующие различные операторы цикла, оказываются равноценными. В некоторых случаях все же предпочтительнее использовать какой-то один из операторов. Сегодня на уроке мы познакомимся с одним из таких операторов — оператором цикла WHILE. Цикл, который реализуется данным оператором, называют также циклом с предусловием. Почему это так, в каких случаях применяется данный оператор, и каков формат записи этого оператора вы узнаете не сегодняшнем уроке.
3. Актуализация знаний и умений учащихся. Актуализация знаний и умений учащихся осуществляется во время фронтального опроса, в ходе, которого им предстоит ответить на следующие вопросы:
-
Дайте определение циклического алгоритма.
-
Перечислите основные структуры циклического алгоритма.
-
Приведите примеры циклических алгоритмов.
-
Запишите формат оператора цикла с параметром, цикла FOR.
-
Расскажите, как выполняется оператор цикла FOR.
-
Что следует знать, используя, оператор цикла FOR.
-
Чему будет равен x после выполнения инструкций?
X:=0;
For i:= -5 to 0 do
N:=i*i;
X:=X+N;
-
Что будет выведено на экран в результате выполнения инструкций?
N:=5;
X:=0;
For i:=1 to N do X:=i;
Writeln(X);
9.Сколько звездочек будет выведено на экран в результате выполнения инструкций?
For i:=1 to 5 do
For j:=1 to 5 write (‘*’);
4. Презентация нового материала. Решите следующую задачу: Распечатать квадраты чисел, находящихся в диапазоне от 0 до 1 с шагом 0,2.
Решая поставленную задачу, в процессе рассуждений учащиеся должны сделать вывод о том, что изученный ими ранее оператор цикла с параметром (оператор FOR) не позволяет решить задачу, поскольку он изменятся с шагом 1 или -1. Учащиеся предполагают, что для решения поставленной задачи им нужно использовать какой-то другой оператор цикла.
Для этого учащимся предлагается прослушать интерактивный учебный курс «Основы программирования на Turbo Pascal» – Введение в Turbo Pascal\Оператор цикла While, составить опорный конспект – записать формат и блок-схему оператора в тетрадь и ответить на вопросы:
-
В каких случаях используется оператор цикла WHILE?
-
Почему цикл, записанный с помощью оператора WHILE, называют циклом с предусловием?
-
Можно ли данный оператор цикла назвать универсальным?
Принцип выполнения оператора WHILE и примеры решения некоторых задач (включая задачу о квадратах чисел, предложенную учащимся для решения в начале рассмотрения темы) учитель демонстрирует в презентации «Оператор цикла WHILE»:
WHILE Условие выполнения цикла DO |
Оператор цикла WHILE состоит из заголовка и тела цикла. Ключевые слова WHILE и DO обозначают «до тех пор, пока» и «выполняй» соответственно.
Проверка условия выполнения цикла производится в самом начале оператора – если значение условия истинно, то выполняется тело цикла и снова вычисляется выражение условия выполнения цикла. Так продолжается до тех пор, пока значение условия выполнения цикла не станет ложным.
Следует знать:
-
число повторений операторов цикла WHILE определяется в ходе работы программы и как, правило, заранее неизвестно;
-
в операторе цикла WHILE точка с запятой никогда не ставится после зарезервированного слова DO;
-
для успешного завершения цикла WHILE в его теле обязательно должны присутствовать инструкции, оказывающие влияние на условие выполнения инструкций цикла;
-
инструкции тела цикла WHILE вообще могут быть не выполнены, если проверяемое условие ложно с самого начала;
-
исходя из последнего утверждения, цикл WHILE считают самым универсальным видом цикла.
Вернемся к задаче – распечатать квадраты чисел, находящихся в диапазоне от 0 до 1 с шагом 0,2. Составим блок-схему и программу решения задачи:
var k, s : integer; begin readln; |
Рассмотрим следующую задачу: для проверки физического развития проверяют рост школьников. Составьте программу, запрашивающую рост очередного школьника и вычисляющую после завершения медосмотра средний рост прошедших осмотр. Количество школьников, подлежащих медосмотру заранее не известно.
Решение. Чтобы получить средний рост С, надо знать количество школьников К и их суммарный рост S. Для вычисления величин K и S воспользуемся циклом WHILE. Однако, здесь возникает проблема, какое условие следует выбрать для завершения цикла. Проще всего договориться – в конце рабочего дня в ответ на запрос о росте школьника ввести какое-либо фиктивное значение, например, 0.
var k, s, r : integer; c : real;
begin
s := 0; k := 0;
write (‘введите рост школьника’);
readln (r);
while r 0 do
begin
k := k + 1;
s := s + r;
write (‘введите рост школьника’);
readln (r);
end;
c := s/k;
writeln (‘средний рост школьников’,c)
readln;
end.
5. Закрепление изученного материала. Для закрепления изученного материала учащимся предлагается выполнить комментированные упражнения. Комментирование действий помогает учителю обнаруживать типичные ошибки и вносить коррективы в действия учеников.
Составьте блок-схему и программу решения задач:
-
Распечатать произведения чисел А и В, изменяющихся от 17 и -25 с шагом -3 и 5 соответственно до тех пор, пока это произведение – отрицательное число.
-
Сколько слагаемых должно быть в сумме 1 + ½ + 1/3 + …+ 1/N, чтобы сумма оказалась больше 5.
6. Работа на компьютерах. Для самостоятельной работы на компьютере учащимся предлагаются три варианта заданий.
Вариант 1.
-
Температура С в градусах Цельсия изменяется от 0 до 100 с шагом 5. Напечатать таблицу перевода температуры из градусов Цельсия в градусы Фаренгейта (F). Формула перевода: F = 1,8 C + 32. Составьте блок-схему и программу решения задачи.
-
Составьте таблицу значений функции y = 5x – 2 на отрезке [1; 20] с шагом b = 2.
-
* В первый день пловец проплыл 3 км. В каждый следующий день он проплывал на 10% больше, чем в предыдущий.
-
а) В какой по счету день пловец начнет проплывать более 5 км?
-
б) К какому дню он суммарно проплывет более 30 км?
-
Вариант 2.
-
Напечатать таблицу соответствия между весом в фунтах и весом в кг для значений от 1 до 10 фунтов с шагом 0,5 фунта. Формула перевода: 1 фунт = 400 г. Составьте блок-схему и программу решения задачи.
-
Составьте таблицу значений функции y = 5x2 – 2x + 1 на отрезке [-5; 5] с шагом b = 2.
-
* Урожай яблок в 1990 году составил 20 тонн. Далее каждые два года урожай уменьшался на 20%.
-
а) Начиная с какого года, будет собрано менее 5 тонн?
-
б) В каком году суммарный урожай яблок превысит 90 тонн?
-
Вариант 3.
-
Напечатать таблицу перевода расстояний из дюймов в сантиметры для значений от 1 до 10 дюймов с шагом 0,5 дюйма. Формула перевода: 1дюйм = 2,54 см.
-
Составьте таблицу значений функции y = 4x2 – 5x – 10 на отрезке [-9; 9] с шагом b = 3.
-
* Концентрация хлорной извести в бассейне V м3 составляет 10 г/л. Через одну трубу в бассейн вливают чистую воду со скоростью Q м3/час, через другую трубу с такой же скоростью вода выливается. При условии идеального перемешивания концентрация хлорной извести изменятся по закону C = C0e-Qt/V , где t – время, C0 – начальная концентрация.
-
а) Определить, через какое время концентрация хлорной извести в бассейне достигнет безопасной для человека величины. Задачу решить при Q = 150 м3/час, V = 10000 л, C0 = 10 г/л, t изменяется с шагом 0,5.
-
б) Напечатать таблицу изменения концентрации хлорной извести для интервала времени от 0 до 5 часов с шагом 0,5 часа.
-
7. Заключение. Подводятся итоги уроки, анализируется и оценивается работа каждого ученика.
8. Задание на дом.
-
Выучить опорный конспект.
-
Вычислить последнюю сумму членов ряда, при которой модуль разности между текущим и предыдущим членами ряда остается меньше 1. Кроме суммы вывести на экран значение последнего слагаемого и его номер. Составьте блок-схему и программу решения задачи.
-
Творческое задание. Составьте задачу на использование оператора цикла WHILE и решите ее (Составьте блок-схему и программу решения задачи.)
* Данные задачи является задачами повышенной сложности. Они предназначены для работы с учащимися, проявляющими повышенный интерес к предмету. Их можно предложить таким ученикам в оставшееся после выполнения основной работы время. Учащиеся, правильно решившие данные задачи получают повышенные итоговые оценки за работу на уроке. Наличие таких задач дает возможность учителю осуществлять дифференцированный подход в обучении.
Уроки 6, 7. Оператор цикла с постусловием
Цели и задачи:
-
Проверить знания материала по теме “Цикл с предусловием”, «Цикл с параметром».
-
Научить решать задачи по теме “Оператор цикла с постусловием”, составление блок-схем.
-
Активизировать знания по теме “Оператор цикла с постусловием” для решения задач по данной теме.
Оборудование: компьютерный кабинет, экран, карточки с заданиями для учащихся.
ХОД УРОКА
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 a0 do
begin
a:=a div 10;
h:=b*10+a mod 10;
end;
write(h);
если а=13305?
Ответ: h=1.
Ученик изображают на доске блок-схему.
Вопросы:
– Как записывается оператор с предусловием?
– В каких случаях целесообразно использовать оператор с предусловием?
II. Изучение нового материала
Цикл с постусловием
В этом цикле условие проверяется после выполнения тела цикла. Цикл будет повторяться до тех пор, пока проверка этого условия будет давать результат “ложь”(false), то есть пока условие не выполнено. Даже если условие сразу оказывается истинным, цикл выполнится хотя бы один раз.
– Вот как это тип цикла реализуется на языке Паскаль:
Repeat ;
;
;
until
– Обратите внимание на то, что данный оператор цикла предполагает наличие нескольких операторов в теле цикла, поэтому служебные слова begin и end не нужны.
– Запишем цикл с постусловием на языке блок-схем:
– Рассмотрим задачу, в которой требуется вводить с клавиатуры числа и подсчитывать их сумму, до первого введенного отрицательного числа.
Решение.
– Составим блок-схему алгоритма:
Запишем программу на языке Паскаля:
Program summer; { Задаем имя программе }
uses crt;
var
sum, a: real; { sum – для накопления суммы, а – для очередного числа }
begin
sum:=0; {Обнуляем сумму}
REPEAT
sum:=sum+a; {Добавляем введенное число к сумме}
write('Введите число:');{Ввод определенного числа}
readln(a)
UNTIL a{При выходе из цикла выполняется этот оператор:}
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
Введите два числа (например A=5 и В=8) и найдите их произведение, используя только операцию сложения.
Задача № 2
Введите два числа (например A=45 и В=8) и найдите их частное от деления нацело(в переменной А), используя только операцию вычитания.
Задание № 3
Определить значение переменной S после выполнения следующих операторов:
S:=0; i=l;
Repeat S:=S+5 div i; i:= l – l;
Until i
IV. Домашнее задание
Задача: составить программу и блок-схему нахождения наибольшего общего делителя (НОД) двух натуральных чисел.
Краткий разбор домашнего задания.
Алгоритм нахождения (НОД) двух целых неотрицательных чисел, основан на следующих свойствах: пусть х и у неравные 0, целые неотрицательные числа и пусть х >=у, тогда если у=0, то НОД(х,у)=х, а если у0, то для чисел х, у и r, где r – остаток от деления на х на у выполняется равенство НОД(х,у)= НОД(у, r)
V. Подведение итогов
Выводы:
-
Выполнение цикла с постусловием прекращается, как только логическое условие принимает значение “истина”;
-
Цикл с постусловием будет выполнен хотя бы один раз.
-
При использовании нескольких операторов в теле цикла repeat…until операторская скобка (begin … end) не нужна, так как пара (repeat…until) сама является операторской скобкой.
Урок 8-10. Практикум по решению задач по теме «Циклы».
Цели урока:
-
Образовательная: систематизация и обобщение теоретических знаний учащихся о циклических алгоритмах, проверка глубины усвоения материала, отработка практических навыков.
-
Развивающая: развитие логического и алгоритмического мышления учащихся, стимулирование познавательного интереса учащихся к данной теме и предмету в целом.
-
Воспитательная: умение слушать друг друга, тренировка навыков культуры работы с техникой, культура речи.
ХОД УРОКА
I. Организационный момент
II. Актуализация знаний (повторение основных понятий по теме и проверка знаний)
Вопросы к учащимся:
1. Какие алгоритмические структуры вы знаете?
2. Что такое цикл?
3. Что такое тело цикла?
4. Какие типы циклов реализуются в Паскале?
5. Каков формат оператора цикла со счетчиком?
6. Каков формат оператора цикла с предусловием?
7. Каков формат оператора цикла с постусловием?
8. Как работает цикл с предусловием?
9. Как работает цикл с постусловием?
10. Когда вычисляются начальное и конечное значение счетчика?
III. Объяснение учебного материала (теория) (15 мин.)
На примере простых задач «Банк», «Пароль» и «Евклид» учитель предлагает учащимся сравнить готовые решения этих задач с помощью трех типов циклов.
Задача «Банк». Посчитать итоговую сумму денег на банковском вкладе за N лет при P процентах годовых.
Решения, предложенные учителем:
Program bank2; | Program bank3; |
Эту задачу можно решить с помощью трех типов циклов. Но используя цикл с предусловием или с постусловием, переменная, определяющая условие, работает как счетчик (наращивается на 1). Поэтому решение этой задачи с помощью цикла со счетчиком является наиболее коротким.
Задача «Евклид» (алгоритм нахождения наибольшего общего делителя).
Условие: Если n=m, то НОД (n, m) = n = m Решения, предложенные учителем: Program evklid2; Program evklid3; Эту задачу нельзя решить с помощью цикла со счетчиком. Применение цикла с постусловием требует изначально сравнения введенных чисел, таким образом цикл вложен в условный оператор. Решение этой задачи с помощью цикла с предусловием кажется наиболее красивым. IV. Самостоятельная работа учащихся. Составить программу для вычисления S. Задачу решить тремя способами (с использованием трех типов оператора цикла). 1. Вычислить: S:=xn/n!+xn-1/(n-1)!+...+x1/1! Известные величины: n,x Решение var s:real; x,i,n,j,Fact,Stepen:integer; begin write('Input n='); readln(n); write('Input x='); readln(x); S:=0; for i:=n downto 1 do begin Fact:=1; Stepen:=1; for j:=1 to i do begin Fact:=Fact*j; stepen:=stepen*x; end; S:=S+stepen/Fact; end; writeln(s:4:2); readln; end. var s:real; x,i,n,j,Fact,Stepen:integer; begin write('Input n='); readln(n); write('Input x='); readln(x); S:=0; i:=n; while i>0 do begin j:=1; Fact:=1; Stepen:=1; while j Fact:=Fact*j; Stepen:=Stepen*x; j:=j+1; end; s:=s+stepen/fact; i:=i-1; end; writeln(s:4:2); readln; end. var s:real; i,n,j,x,stepen,fact:integer; begin write('Input n='); readln(n); write('Input x='); readln(x); S:=0; i:=n; repeat j:=1; stepen:=1; fact:=1; repeat fact:=fact*j; stepen:=stepen*x; j:=j+1 until j>i; s:=s+stepen/fact; i:=i-1; until i=0; writeln(s:4:2); readln; end. 2. Найти сумму квадратов всех натуральных чисел от 1 до 100. Решим эту задачу с использованием всех трех видов циклов. I. С использованием цикла "Пока". Program Ex1; A:=1; S:=0; S:=S+A*A; End; End. II. С использованием цикла "До". Program Ex2; A:=1; S:=0; S:=S+A*A; Until A>100; III. С использованием цикла "С параметром". Program Ex3; S:=0; End. Домашнее задание: 1. повторить тему «циклы» 2. Написать таблицу "Соответствия расстояния в дюймах расстоянию в метрах". Для значений от 10 до 20; с шагом h=+1; 1 дюйм = 25,4 мм. Решим эту задачу с использованием всех трех видов циклов. Задачи для практикума. Дано натуральное число N. Переставить местами его цифры так, чтобы получилось максимальное число, записанное теми же цифрами. Дано натуральное число N. Переставить местами его цифры так, чтобы получилось минимальное число, записанное теми же цифрами. Для записи римскими цифрами используются символы I,V, X, L, С, D, М, обозначающие соответственно числа 1, 5, 10, 50, 100, 500, 1000. Составить программу, которая запись любого данного числа п (п Найдите целые числа-палиндромы (от 1 до N), которые при возведении в квадрат так же дают палиндромы, например, 222=484. Найдите целые числа (от 1 до N), которые при возведении в 3, или 4, или 5 степень дают палиндромы, например, 113=1331. Даны натуральные числа от 20 до 50. Напечатать те из них, которые делятся на 3, но не делятся на 5. Дано натуральное число к. Напечатать к-ю цифру последовательности 149162536, в которой выписаны подряд квадраты всех натуральных чисел. Составить программу перевода натурального числа из десятичной системы счисления в двоичную. Вычислить: y=sinl+sinl.l+sinl.2+...+sin2. Даны три натуральных числа А, В, С, которые обозначают число, месяц и год. Найти порядковый номер даты, начиная отсчет с начала года. Найти наименьшую и наибольшую цифры в записи данного натурального числа. Произведение n первых нечетных чисел равно р. Сколько сомножителей взято? Если введенное n не является указанным произведением, сообщить об этом. Найти на отрезке [а, Ь] натуральное число, имеющее наибольшее количество делителей. Задумано некоторое число х (х Дано натуральное число n. Проверить, будут ли все цифры числа различными. Задачи повышенной сложности 1. Ученик начал решать задачи данного урока программирования, когда электронные часы показывали h1 часов и min1 минут, а закончил, когда было h2 часов и min2 минут. Составьте программу, позволяющую определить, сколько времени ученик решал эти задачи. (Будем считать, что задачи решались не дольше суток.) 2. Дано действительное число а. Не пользуясь никакими другими операциями, кроме умножения, получить: а) а4 за две операции; б) а6 за три операции; в) а7 за четыре операции; г) а8 за три операции; д) а9 за четыре операции; е) а10 за четыре операции; ж) а13 за пять операций; з) а15 за пять операций; и) а21 за шесть операций; к) а28 за шесть операций; л) а64 за шесть операций; 3. Найти максимум и минимум двух натуральных чисел, не используя ветвления алгоритма. ВАРИАНТ 1 ВАРИАНТ 2 1. Составьте блок-схему алгоритма и программу вычисления произведения нечетных чисел, меньших 16. Литература. 1. Абрамов С.А., Зим Е.В. Начало программирования на языке Паскаль. – М.: Наука, 1987. 2. Кузнецов А.А. Основы информатики. 8-9 классы. – М.: Дрофа, 2000. 3. Культин Н.Б. Программирование в Turbo Pascal 7.0 и Delphi. СПб.: БХВ - Санкт-Петербург, 1998. 4. Лапчик М.П., Семакин И.Г., Хеннер Е.К. «Методика преподавания информатики». М., ACADEMA 2001 5. Маметьев В.П. Задачи по программированию. п. Зубова- Поляна, 2005. 6. Попов В.Б, «Turbo Pascal для школьников»,М., Финансы и статистика 2003 г. 7. Семакин . И.Г. Информатика. Задачник-практикум: В 2 т. М.: БИНОМ. Лаборатория знаний, 2002. 8. Семакин И.Г., Шеина Т.Ю «Преподавание базового курса информатики в средней школе». Методическое пособие. М., Бином, Лаборатория базовых знаний 2004 г. 9. «Я иду на урок информатики, задачи по программированию 7-11 классы», книга для учителя. Библиотека «Первого сентября»,М.: «Первое сентября» 2002
Если n>m, то НОД (n, m) = НОД (n-m, m)
Если n
VAR n,m : integer;
BEGIN
Readln (n, m);
While nm do
If n>m then n:=n-m
else m:=m-n;
Writeln (‘НОД = ’, n)
END.
VAR n,m : integer;
BEGIN
Readln (n, m);
If nm then
Repeat
If n>m then n:=n-m
else m:=m-n;
Until n=m;
Writeln (‘НОД = ’, n)
END.
Var
A : Integer;
S : Longint;
Begin
While ABegin
A:=A+1
Writeln(S)
Var
A : Integer;
S : Longint;
Begin
Repeat
A:=A+1
Writeln(S)
End.
Var
A : Integer;
S : Longint;
Begin
For A:=1 To 100 Do S:=S+A*A;
Writeln(S)
Контрольная работа по теме «Циклы».
1. Составьте блок-схему алгоритма и программу вычисления произведения четных чисел, меньших 15.
2. Составьте таблицу значений функции y = 5x-2 на отрезке [1; 20] с шагом h = 2.
3*. Составьте программу вычисления суммы 80 первых членов арифметической прогрессии, если a1 = 10; d = 3.
2. Составьте таблицу значений функции y = 4x-5 на отрезке [1; 30] с шагом h = 3.
3*. Составьте программу вычисления суммы 100 первых членов арифметической прогрессии, если a1 = 5; d = 4.
ВАРИАНТ 3
1. Составьте блок-схему алгоритма и программу вычисления произведения целых чисел из промежутка [-6; 5).
2. Составьте таблицу значений функции y = 5x² - 2x +1 на отрезке [-5; 5] с шагом h = 2.
3*. Составьте программу вычисления суммы 150 первых членов арифметической прогрессии, если a1 = –200; d = 0,2.
ВАРИАНТ 4
1. Составьте блок-схему алгоритма и программу вычисления произведения целых чисел из промежутка [-8; 4).
2. Составьте таблицу значений функции y = 4x² + 5x - 10 на отрезке [-9; 9] с шагом h = 3.
3*. Составьте программу вычисления суммы 180 первых членов арифметической прогрессии, если a1 = –100; d = 0,4.
Здесь представлен конспект к уроку на тему «Циклы в языке программирования Pascal», который Вы можете бесплатно скачать на нашем сайте. Предмет конспекта: Информатика Также здесь Вы можете найти дополнительные учебные материалы и презентации по данной теме, используя которые, Вы сможете еще больше заинтересовать аудиторию и преподнести еще больше полезной информации.