Цикл до задачи для решения

Цикл до задачи для решения thumbnail

При изучении данной темы формируются навыки
использования алгоритма цикла “До”,
использование блок-схем для решения
поставленных задач, операторов цикла в языке
программирования TPascal. Урок является первым
уроком при изучении темы “Циклы”.

К моменту проведения урока учащиеся 4 год
изучают информатику (1 урок в неделю). Умеют
рисовать блок-схемы, знают основные операторы
языка программирования, умеют сопоставлять
блок-схемы с программой, знают типы данных, умеют
описывать переменные, знают разделы программы в
языке программирования.

Цели урока:

с точки зрения деятельности учителя:

  • помочь учащимся в создании компьютерной модели
    поставленных задач;
  • научить учащихся записывать алгоритм цикла
    “До” с помощью блок-схем, записывать алгоритм с
    помощью языка программирования TPascal;
  • решать простейшие задачи на использование
    алгоритмов цикла “До”
  • увлечь учащихся созданием и отладкой программ
    на языке программирования;

с точки зрения содержания материала:

  • ввести понятие алгоритма цикла “ДО”;
  • ввести понятие о операторах цикла “ДО”;
  • ввести понятие о теле цикла;
  • ввести понятие о счетчике цикла;
  • прорешать задачи на использования алгоритма
    цикла “До” с помощью блок-схем и языка
    программирования TPascal;

с точки зрения внутреннего изменения
учащихся:

  • учащиеся учатся умению правильно подбирать
    условия для цикла;
  • учатся умению предвидеть результат выполнения
    алгоритма;
  • учатся умению писать программы по блок-схеме
    алгоритма цикла “ДО”
  • учатся проводить аналогии при решении задач

с точки зрения внешне выраженной
деятельности учащихся:

  • учащиеся должны понять и запомнить формат
    операторов цикла “ДО”;
  • решать задачи на использование алгоритма цикла
    “ДО”;
  • продолжить формирование умений находить ошибки
    в программах

Задачи урока:

  • сформировать у учащихся навыки решения задач на
    составление алгоритма цикла “ДО” с
    использованием блок-схем;
  • сформировать у учащихся навыки сопоставления
    блок-схемы и программы, навыков написания
    программы по блок-схеме;
  • закрепить у учащихся навыков набора и отладки
    программ, навыков нахождения и исправления
    ошибок в программе;

Тип урока: урок изучения нового материала.

Год обучения: четвертый.

Возраст учащихся: 9-й класс.

Программное обеспечение: язык
программирования Turbo Pascal 7.0, NetMeting, Power Point, HyperTest

Дидактический материал: карточки с
задачами, карточки с условиями, компьютерный
тест, графический диктант.

Наглядное пособие: презентация Power Point
“Цикл “ДО”.

Реализация поставленных задач:

На начальном этапе урока происходит
актуализация пройденного материала, проверка
домашнего задания (была заданно повторить
алгоритмы цикла, условия, операторов Turbo Pascal 7.0).

Компьютерное тестирование проходят часть
учащихся. Результаты тестов записывают в
“Таблицах оценок” (Приложение).
Оценки “3”, “4”, “5” заносятся как
положительные, оценка “2”, как 2 балла.

Остальная часть – учащиеся выполняют
графический диктант. Осуществляется
взаимопроверка по шаблону (т.е. обмениваются
работами с соседом, и проверяют работы
выставляют оценки согласно следующей схеме:
оценка “5” – если допущено 0–1 ошибки, “4”– если
допущено 2–3 ошибки, “3” – если допущено 4–5
ошибок, “2”– если более 5 ошибок. Оценки 3–5
вносятся в таблицу оценок как положительные,
оценки 2 как  2.

Изучение нового материала сопровождается
презентацией “Цикл “ДО”, управление
презентацией происходит с центрального
компьютера, с помощью программы NetMeting
транслируется на остальные компьютера учебного
класса. Учащиеся имеют возможность наблюдать за
ходом изложения материала.

В начале урока создается проблемная ситуация, которая
решается совместно с учителем.

Закрепление материал происходит при решении
задач.

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

ХОД УРОКА

I. Постановка задачи

Учитель: На предыдущих уроках мы с
вами изучили алгоритм ветвления и научились
составлять алгоритмы, решать задачи с
использованием алгоритмов ветвления. Сегодня мы
с вами начинаем изучать алгоритмы циклов. Но
сначала проверим выполнение домашнего задания,
вы должны были повторить операторы ветвления,
определения.

II. Проверка домашнего задания

Шестеро учащихся (наиболее сильных) проходят
тестирование на компьютерах, остальные учащиеся
выполняют графический диктант. Учитель читает
высказывания, определения и если высказывание
истинно, то учащиеся рисуют прочерк “__”, если же
высказывания ложно, то изображают домик “/”. В
конце работы учащиеся обмениваются листочками с
товарищами, проверяют работы по шаблону, на
доске, затем выставляют оценки, оценки заносятся
в “Таблицы оценок”. Происходит взаимопроверка и
взаимооценка работ. Учащиеся, проходящие
тестирование на компьютерах, по окончании
тестирования тоже выставляют оценки в свои
“Таблицы оценок”. Если тест пройден с ошибками,
то просматривают правильные ответы, что
способствует коррекции знаний.

III. Устный опрос

Проводится для повторения определений,
операторов и блок-схем.

Читайте также:  Примеры блок схем циклов со счетчиком for

Вопросы:

  • Что такое алгоритм ветвления?
  • Что такое условие?
  • Операторы алгоритма ветвления в TPascal?
  • Что такое неполная форма алгоритма ветвления?
  • Чем отличаются операторы неполного ветвления
    от операторов ветвления?
  • Чем отличаются блок-схемы неполного ветвления
    от полного ветвления?
  • Определить истинность условия(задания на
    отдельных карточках):

Если А = 10, В = 7

а) А > B
b) B = A
c) A <> B
d) A = 10

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

IV. Изучение нового материала

Учитель: Ребята, давайте рассмотрим
следующий случай. Какие действия нужно
произвести, когда необходимо забить гвоздь
молотком.

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

Учитель: Итак, мы сделали вывод, что
необходимо повторять одно и тоже действие
несколько раз.

Алгоритм, в котором одно и тоже действие
(команды) повторяется многократно, называют
алгоритмом цикла.

На экраны мониторов выводится слайд
презентации, содержащий определение.
Определение записывается в тетради.

Учитель: Существуют 3 разновидности
циклов. На экран монитора выводися слайд,
содержащий следующие название циклов:

  • Цикл “До”,
  • Цикл “Пока”,
  • Цикл “Для”.

Мы с вами сегодня рассмотрим цикл “До”. Цикл
“До”(с постусловием) – это цикл, в котором
условие проверяется в конце цикла.

Примерная блок-схема цикла “До” (выводится
слайд, содержащий примерную блок-схему)
:

Цикл до задачи для решения

Начало цикла “До” – Repeat
Тело цикла – команды находящиеся внутри цикла
Конец цикла – Until <условие>;

Учитель: Ребята, посмотрите на
блок-схему и попробуйте определить, до каких пор
будут повторятся команды в этом цикле.

Учащиеся приходят к выводу, что команды будут
выполняться, пока условие не станет истинным.

Учитель: Сформулируйте, пожалуйста,
определение.

Тело цикла “До” выполняется, пока
условие не станет истинным.

Если не получается сформулировать, то
учитель подводит учащихся к выводу.

Учитель: Запишите в тетрадях
определение: Особенностью цикла “До” является
то, что тело цикла выполняется хотя бы один раз.


Подумайте, при каком случае тело цикла
выполняется только 1 раз?

Учащиеся должны прийти к выводу, что в случае
если условие уже при первом повторе является
истинным, то тело цикла выполняется только 1 раз.
Если не приходят к этому выводу, то учитель
подводит их к этому выводу с помощью наводящих
вопросов.

Учитель: А почему в определении
говорится, что тело цикла выполняется хотя бы
один раз, а может ли быть такой случай, что тело
цикла может не выполнится ни разу?

Учащиеся должны прийти к выводу, что
выполнение алгоритма происходит сверху вниз, и
произойдет выполнение команд тела цикла, и
только затем происходит проверка условия выхода
из цикла, так как условие проверяется за телом
цикла.

Учитель: Рассмотрим представление
цикла “До” с помощью операторов в языке
программирования TPascal 7.0. Обратите внимание на
слайд. Начало цикла в языке программирования
обозначается оператором – Repeat, конец цикла
оператором Until, за которым пишется условие.
Обратите внимание: после оператора repeat точка
запятая не ставится.

Учащиеся записывают операторы в тетрадях.

Учитель: Итак, что же мы узнали о цикле
“ДО”?

Учащиеся проговаривают все то, что они
узнали.

V. Закрепление

1. Решение задач на использование цикла
“ДО”

– Попробуем решить следующую задачу:
необходимо вывести на экран 5 раз сообщение
“Здравствуйте!!! Я работаю”.

Совместно с учителем разрабатываются
алгоритм для решения данной задачи.

– Для того, чтобы проследить за количеством
повторений, нам понадобиться специальная
переменная, которая будет прослеживать
количество повторений или по другому считать их.
Эта переменная называется параметром, или
счетчиком цикла.
Счетчиком цикла для решения поставленной задачи
мы возьмем переменную – Т. Первоначально
значение счетчика Т = 1. Вывод сообщения будет
происходит в теле цикла, нам необходимо вывести 5
сообщений, следовательно тело цикла должно
повториться 5 раз, тогда конечное значение
счетчика цикла Т = 5. А условием выхода из цикла
будет достижение счетчика цикла конечного
значения – Т = 5.

На доске рисуется блок-схема.

– Счетчику цикла присваиваем начальное
значение начало цикла “До”. Вывод сообщения
увеличение значения счетчика проверка условия
выхода из цикла.

2. Формальное исполнение
(выполняется в специальных таблицах. См. Приложение)

Учащиеся проговаривают последовательность
действий, происходящих при выполнении алгоритма,
определяют, что будет выдано на экран монитора.
Проверяют правильность решения, т.е.
соответствует ли результат выполнения цикла
поставленной задаче. Выполняется
самостоятельно. 1 учащийся выполняет на обратной
стороне доски. По завершении проверяются
выполненные работы, сопоставляя с работой,
выполненной на доске.

Читайте также:  Нормальные выделения весь цикл

3. Работа по написанию программы по данному
алгоритму

Один учащийся выполняет на доске, остальные
учащиеся пишут программу в рабочих тетрадях. По
мере завершения учащиеся подзывают учителя
показывают написанную программу, после проверки
пересаживаются за компьютеры для набора и
отладки программы.
После завершения работы у доски, если допущены
ошибки в написании программы, учащемуся
предлагается самому исправить их, если же он не
справляется, то ему оказывают помощь остальные
учащиеся. Всем учащимся, справившимся с
написанием, набором и отладкой программы на
компьютере, предлагается самостоятельно
придумать аналогичную задачу и решить её.

VI. Домашнее задание

Выучить определения, операторы цикла “ДО”,
решить задачу № 2 по карточке (Приложение).

VII. Подведение итогов урока

Учащиеся выставляют итоговые оценки в
“Таблицах оценок”

Источник

Решенные задачи Pascal: операторы цикла

Pascal операторы цикла — Repeat

Repeat 1: Даны положительные числа A и B (A>B). На отрезке длины A размещено максимально возможное количество отрезков длины B (без наложений). Не используя операции умножения и деления, найти количество отрезков B, размещенных на отрезке A.

Проверить:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var
a,b,temp,c:integer;
flag: boolean;
begin
writeln(‘A=’);
readln(a);
writeln(‘B=’);
readln(b);
temp:=a;
repeat
temp:=temp-b;
inc(c);
until temp-b>=0;
writeln(‘result: ‘,c);
end.

Pascal операторы цикла — While

While 1: Определите значение переменной P после выполнения следующего фрагмента программы:

1
2
3
4
5
P:=1; i:=3;
while i <= 9 do begin
P := P * (i div 3);
i := i + 1;
end;

Варианты:
1) 1
2) 3
3) 9
4) 24

Проверить:

While 2: Определите значение переменной S после выполнения следующего фрагмента программы:

1
2
3
4
5
S:=0; i:=7;
while i > 1 do begin
S := S + i div 2;
i := i – 1;
end;

Варианты:
1) S = 0
2) S = 7
3) S = 12
4) S = 24

Проверить:

While 3: Даны целые положительные числа N и K. Используя только операции сложения и вычитания, найти частное от деления нацело N на K, а также остаток от этого деления.

Решение данного задания смотрите в видео уроке по Паскалю:

While 4: Дано целое число N (> 0). С помощью операций деления нацело и взятия остатка от деления определить, имеется ли в записи числа N цифра «2». Если имеется, то вывести TRUE, если нет — вывести FALSE.

Проверить:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
var
number:integer;
flag: boolean;
begin
writeln(‘введите целое число (number>0) number=’);
readln(number);
flag:=false;
while (number div 10)>0 do
begin
if (number mod 10) = 2 then flag:=true;
number:=number div 10;
end;
writeln(flag);
end.

While 5:
Дано целое число N (>1). Найти наибольшее целое число K, при котором выполняется неравенство 3K<N

* Из задачника М. Э. Абрамян (While10)

Предлагаем посмотреть разбор задачи на видео:

While 6:
Дано число A (>1). Вывести наибольшее из целых чисел K, для которых сумма 1+1/2+…+1/K будет меньше A, и саму эту сумму

* Из задачника М. Э. Абрамян (While14)

Проверить:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var
Temp:Real;
A,K :Integer;
begin
Write(‘Введите A: ‘);
Readln(A);
K:=0;
Temp:=0;
while Temp<=A do
begin
inc(K,1);
Temp:=Temp+1/K;
end;
Writeln(K-1,’ ‘,Temp-1/K);
end.

While 7:
Дано целое число K и набор ненулевых целых чисел; признак его завершения — число . Вывести количество чисел в наборе, меньших K

* Из задачника М. Э. Абрамян (Series14)

Проверить:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var
i,R,K:Longint;
begin
write(‘Введите K : ‘);
readln(K);
R:=1;
i:=0;
while(R<>0) do
begin
write(‘Введите число из набора: ‘);
Readln(R);
if R<K then i:=i+1;
end;
i:=i-1;
Writeln(i);
readln;
end.

While 8:
Спортсмен-лыжник начал тренировки, пробежав в первый день 10 км. Каждый следующий день он увеличивал длину пробега на P процентов от пробега предыдущего дня (P — вещественное, 0<P<50). По данному P определить, после какого дня суммарный пробег лыжника за все дни превысит 200 км, и вывести найденное количество дней K (целое) и суммарный пробег S (вещественное число).

* Из задачника М. Э. Абрамян (While16)

Проверить:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var
P, S, D:Real;
K :Integer;
begin
Write(‘Введите процент: ‘);
Readln(P);
K:=1;
D:=10;
S:=10;
while S<=200 do
begin
inc(K,1);
D:=D+D*P/100;
S:=S+D;
end;
Writeln(K,’ ‘,S);
end.

Pascal операторы цикла — For

For 1: Дано вещественное число — цена 1 кг конфет. Вывести стоимость 0.1, 0.2, …, 1 кг конфет.

* Из задачника М. Э. Абрамян

Проверить:

1
2
3
4
5
6
7
8
9
10
11
12
var c,m:real;
i:integer;
begin
writeln(‘Цена?’);
readln(c);
m:=0.1;
for i := 1 to 10 do
begin
writeln(‘ price of ‘,m, ‘ kg = ‘,c*m);
m:=m+0.1;
end;
end.
Читайте также:  Как правильно принимать витамин е для нормализации цикла

For 2: Даны два целых числа A и B ( A<B ). Вывести в порядке убывания все целые числа, расположенные между A и B (не включая числа A и B), а также количество N этих чисел.

* Из задачника М. Э. Абрамян

Проверить:

1
2
3
4
5
6
7
8
9
10
11
var a, b, i: integer;
begin
writeln(‘A:’);
readln(a);
writeln(‘B:’);
readln(b);
for i:= b-1 downto a+1 do
write(i:3 );
writeln;
writeln(‘kolvo: ‘,b-a-1);
end.

For 3:
Дано целое число N>0. Найти сумму

* Из задачника М. Э. Абрамян (For11)

Проверить:

1
2
3
4
5
6
7
8
9
var
N, Rez,i :Integer;
begin
Write(‘Введите N: ‘);
Readln(N);
rez:=0;
For i:=0 to N do Rez:=Rez+sqr(N+i);
Writeln(Rez);
end.

Сейчас предлагаем решить сложную олимпиадную задачу на Паскале:

Пять делителей: Найти сумму всех чисел от 1 до заданного n, имеющих ровно пять делителей. Единица и само число входят в число его делителей

Проверить:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var c,n,s,k,i:integer;
begin
c:=0;
s:=0;
readln(n);
for i:=2 to n do
begin
k:=i;
while k>0 do begin
if i mod k = 0 then
c:=c+1;
k:=k-1;
end;
if c= 5 then s:=s+i;
c:=0;
end;
writeln(s);
end.

Источник

Цели урока:

  1. Рассмотреть решение задачи с использованием различных видов циклов.
  2. Сформировать умение решать задачи с использованием циклов.
  3. Способствовать развитию таких мыслительных операций, как анализ, синтез,
    обобщение.
  4. Развитие познавательного интереса.

План урока:

  1. Постановка цели урока.
  2. Актуализация знаний и умений учащихся.
  3. решение задач.
  4. Домашняя работа.
  5. Подведение итогов урока.

Ход урока

I. Постановка цели урока.

Освоив, операторы присваивания и научившись пользоваться условным оператором
IF, теоретически можно написать любую программу. Но в нашей повседневной жизни
мы очень часто встречаемся с процессами, которые повторяются во времени
несколько раз. Например: прорастание растения из семечки, смена времён года,
смена времени суток, покраска забора, укладка кирпича и т.д. Гораздо удобнее в
этих случаях использовать циклы. Циклы позволяют существенно упростить алгоритм
и текст программы, сделать программу изящной, гибкой, более привлекательной.
Сегодня на уроке мы будем решать такие задачи и убедимся в этом сами.

II. Актуализация знаний и умений учащихся.

Но прежде чем мы перейдём к решению задач, давайте вспомним с вами, какие
циклы вы знаете?

В чём отличительная черта цикла While?

В чём отличительная черта цикла Repeat?

В чём отличительная черта цикла с параметром?

Ответы учащихся сопровождаются демонстрацией слайдов №№ 2-8 презентации к
уроку см. Приложение.

III. Решение задач.

Задача:

Гражданин 1 марта открыл счёт в банке, вложив 1000 рублей. Через каждый месяц
размер вклада увеличивается на 2% от имеющейся суммы. Определить:

Сумму вклада через один, два, …, двенадцать месяцев.

Текст задачи выводится на экран слайд презентации № 9.

1. Анализ условия:

  • Что нам известно?
  • Что надо найти?
  • Сколько переменных используется в задаче?
  • Какие переменные мы будем вводить, а какие рассчитывать?
  • К какому типу относятся переменные вводимые с клавиатуры?
  • Если эти переменные относятся к вещественному типу, то какой результат
    мы получим?
  • Как мы обозначим переменные?

Проанализировав условие данной задачи, мы можем записать описательную часть
программы на языке Pascal.

Слайд презентации № 10.

2. Построение математической модели решения:

Первоначальный вклад а0=1000

1 месяц: а1=а0+а0*0,02

2 месяц: а2=а1+а1*0,02

—————————-

10 месяц: а10=а9+а9*0,02

Общий случай: an=an-1+an-1*0,02

Слайд презентации № 11.

3. Составление алгоритма решения:

Слайд презентации № 12.

4. Запись программы:

Program vklad;
Var i: integer;
a: real;
Begin Writeln (‘введите значение первоначального вклада’);

Readln (а);
For i:=1 to 12 do
begin
a:= a + a*0,02;
writeln (a); end;

end.

Слайд презентации № 13.

А теперь запишите данную программу с помощью цикла ДО или цикла
ПОКА
кому как удобнее.

Цикл до:

Program vklad;/
Var i: integer;
a: real;
Begin Writeln (‘введите значение первоначального вклада’);

Readln (а);
i:=1;
repeat
a:= a+a*0,02;
writeln (a);
i:=i+1;
until i>12;

end.

Цикл пока:

Program vklad;
Var i: integer;
a: real;
Begin Writeln (‘введите значение первоначального вклада’);

Readln (а);
i:=1;
while i<=12 do
begin
a:= a+a*0,02;
writeln (a);
i:=i+1; end;

end.

Слайд презентации № 14.

IV. Домашняя работа.

Решите задачу, используя цикл на ваше усмотрение.

Одноклеточная амёба каждые 3 часа делится на 2 клетки. Определить, сколько
будет клеток через 3, 6, 9, …, 24 часа.

Слайд презентации № 15.

Источник