Циклы в языке программирования Pascal

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

Рубрика Программирование, компьютеры и кибернетика
Вид методичка
Язык русский
Дата добавления 05.10.2014
Размер файла 275,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Муниципальное образовательное учреждение

«Основная общеобразовательная школа №2» г. Новочебоксарск

Методическая разработка

на тему: «Циклы в языке программирования Pascal»

Выполнил:

учитель информатики

МОУ «ООШ №2»

Перевезенцева Елена Николаевна

Новочебоксарск 2011

Цель: Познакомить учащихся с программированием циклических алгоритмов. pascal циклический алгоритм

Методическая разработка рассчитана на учащихся 9-х классов общеобразовательной школы. Включает в себя теоретический материал, фронтальную, индивидуальную и контрольную работы. Перед изучением данной темы учащиеся должны знать основные понятия о константах, типах данных и их классификации, операторах ввода/вывода, операторе присваивания, составном операторе, выражениях, иметь представление о структуре программы. Также учащиеся должны уметь: запускать программу, описывать переменные и константы, пользоваться.

Задачи:

· сформировать у учащихся навыки выполнения технологической цепочки разработки программ средствами языка программирования Pascal;

· изучить циклические конструкции языка программирования Pascal, позволяющие работать с простыми скалярными и составными типами данных;

· научиться применять подпрограммы при написании программ на языке программирования Pascal;

· научиться отлаживать и тестировать программы, делать выводы о работе этих программ.

Содержание: В данном блоке рассматривается понятие циклического алгоритма. Изучаются основные разновидности циклов:

· Конструкция FOR.

· Конструкция WHILE.

· Конструкция REPEAT. Вложенные циклы.

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

Методы обучения: ориентация на самостоятельную работу учащихся; применение проблемного, деятельностного подхода к обучению.

Тематическое планирование:

№ п/п

Тема

Кол-во часов

1

Организация циклов.

1

2

Циклы. Конструкция FOR.

2

3

Циклы. Конструкция WHILE.

2

4

Циклы. Конструкция REPEAT. Вложенные циклы.

2

5.

Практикум по решению задач по теме «Циклы».

3

6

Контрольная работа по теме «Циклы”

1

Итого

11

Ожидаемые результаты обучения.

Учащиеся должны знать:

1. Что такое цикл;

2. Три разновидности операторов цикла;

3. В чем отличия операторов цикла с предварительным и последующим условием;

4. Какой тип должна имеет переменная цикла с параметром;

5. Когда в операторах цикла и ветвления используются операторные скобки;

Учащиеся должны уметь:

1. Использовать циклы при составлении программ;

2. Правильно составлять и использовать условия в циклах WHILE или REPEAT;

3. Составлять программы с использование операторов цикла.

Содержание курса.

Урок 1. Циклические алгоритмы

Цели урока:

Образовательные: Обеспечить усвоение учащимися особенностей конструирования циклических алгоритмов.

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

Развивающие: Развивать умение правильно воспринимать информацию, усваивать полученные знания.

План урока:

1. Организационный момент.

2. Вступительная беседа. Постановка проблемы: изучение алгоритмизации для развития логического мышления.

3. Актуализация знаний. Повторение пройденного материала

4. Ознакомление, разбор материала.

5. Закрепление материала. Составление блок-схем.

6. Итог урока. Домашнее задание.

Ход урока:

I. Приветствие учеников.

II. Актуализация знаний:

· Какие алгоритмы вы уже знаете?

· Что называется линейным алгоритмом?

· Что называется разветвляющимся алгоритмом?

III. Объяснение нового материала:

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

На предыдущих уроках мы познакомились с алгоритмами двух типов: линейными и разветвляющимися. Легко заметить, что все алгоритмы, которые мы составляем, обладают общим свойством: при их выполнении каждое действие совершается один раз (или вообще не совершается). В жизни, однако, часто встречаются инструкции, в которых требуется один и тот же набор действий выполнять много раз подряд: “Иди, пока не придешь” и т.д. Используя только ветвление, такие алгоритмы записать не удастся.

Для этого нужна новая форма организации действий - цикл. Повторение действий в алгоритмах называется циклом.

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

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

Любой цикл состоит из нескольких этапов. Это:

1. Подготовка цикла, в которую входят начальные присвоения;

2. Тело цикла - команды повторения цикла;

3. Условие - обязательная часть циклов “До” и “Пока”.

Цикл называется арифметическим, если число повторений цикла известно заранее или может быть вычислено.

Цикл, как и любая другая алгоритмическая структура, может быть:

· записан на естественном языке;

· изображен в виде блок-схемы;

· записан на алгоритмическом языке;

· закодирован на языке программирования.

Блок-схемы базовых структур

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

Рассмотрим алгоритм движения для трех типов циклов.

Цикл ПОКА (число шагов не известно)

Пока нет препятствия

сделать шаг вперед

Завершить цикл;

Цикл ДО (число шагов неизвестно)

Сделать шаг вперед

до встречи с препятствием

Завершить цикл.

Цикл ДЛЯ (число шагов известно)

Для количества шагов менее 100

сделать шаг вперед

Завершить цикл.

Задание № 1: Нужно исправить неверно составленный алгоритм:

На перемене школьник зашел в столовую съесть пирожков, и некто посоветовал ему воспользоваться алгоритмом

1. Пока не исчезнет чувство голода повторять:

2. Купить пирожок

3. Конец цикла

4. Съесть пирожок.

Какие строки алгоритма надо поменять местами, чтобы школьник ушел сытым?

Цикл ПОКА

пока <условие>

выполнять

<тело цикла>

Выполнение цикла ПОКА начинается с проверки условия его окончания. Эту разновидность цикла называют циклом с предусловием.

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

Цикл ДО

выполнять

<тело цикла >

до <условие>

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

Цикл ДЛЯ

Повторять N раз

<тело цикла>

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

Вложенные циклы:

Начало цикла 1

Начало цикла 2

Конец цикла 2

Начало цикла 3

... ... ...

Начало цикла N

Конец цикла N

Конец цикла 3

Конец цикла 1

IV. Составление блок-схем.

Задача № 1: Ученик в первый день выучил 5 английских слов. В каждый следующий день он выучивал на 2 слова больше, чем в предыдущий. Сколько английских слов выучит ученик в 10-ый день занятий? Составьте словесный алгоритм и блок-схему (тремя способами).

Словесный:

Начало

1. а=5 (считает слова)

2. d=1 (считает дни)

3. если D <= 10, то перейти к п. 4, иначе перейти к п.6

4. а = а + 2

5. d = d + 1

6. вывод а

7. конец

Блок-схемы для циклов “до” и “для” ребята выполняют у доски.

Задача № 2. Составить блок-схемы для нахождения y=x2, для х=2, 4, 6, 8, 10.

Задачи по теме: “Циклические алгоритмы” находятся в Приложении1.

V. Домашнее задание: Составить блок-схемы вычисления суммы N первых натуральных чисел (N=3).

Уроки 2, 3. Цикл с параметром

Цель урока:

1. Изучить цикл с параметром. Проверить знания прошлого урока.

2. Воспитание умения слушать учителя.

3. Развитие познавательного интереса.

План урока:

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

2. Объяснение нового материала.

3. Примеры программ с использованием цикла с параметром.

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

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

Ход урока

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

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

Объяснение нового материала.

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

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 n1<>n2 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, дидактический раздаточный материал.

План урока

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

2. Вводное слово

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

4. Презентация нового материала

5. Закрепление изученного материала

6. Работа на компьютерах

7. Заключение Задание на дом

Ход урока

2. Вводное слово. Подавляющее большинство задач с циклами можно решать разными способами, используя при этом один из трех операторов цикла. Часто решения, использующие различные операторы цикла, оказываются равноценными. В некоторых случаях все же предпочтительнее использовать какой-то один из операторов. Сегодня на уроке мы познакомимся с одним из таких операторов -- оператором цикла WHILE. Цикл, который реализуется данным оператором, называют также циклом с предусловием. Почему это так, в каких случаях применяется данный оператор, и каков формат записи этого оператора вы узнаете не сегодняшнем уроке.

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

1. Дайте определение циклического алгоритма.

2. Перечислите основные структуры циклического алгоритма.

3. Приведите примеры циклических алгоритмов.

4. Запишите формат оператора цикла с параметром, цикла FOR.

5. Расскажите, как выполняется оператор цикла FOR.

6. Что следует знать, используя, оператор цикла FOR.

7. Чему будет равен x после выполнения инструкций?

X:=0;

For i:= -5 to 0 do

N:=i*i;

X:=X+N;

8. Что будет выведено на экран в результате выполнения инструкций?

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, составить опорный конспект - записать формат и блок-схему оператора в тетрадь и ответить на вопросы:

1. В каких случаях используется оператор цикла WHILE?

2. Почему цикл, записанный с помощью оператора WHILE, называют циклом с предусловием?

3. Можно ли данный оператор цикла назвать универсальным?

Принцип выполнения оператора WHILE и примеры решения некоторых задач (включая задачу о квадратах чисел, предложенную учащимся для решения в начале рассмотрения темы) учитель демонстрирует в презентации «Оператор цикла WHILE»:

WHILE Условие выполнения цикла DO

Тело цикла

Оператор цикла WHILE состоит из заголовка и тела цикла. Ключевые слова WHILE и DO обозначают «до тех пор, пока» и «выполняй» соответственно.

Проверка условия выполнения цикла производится в самом начале оператора - если значение условия истинно, то выполняется тело цикла и снова вычисляется выражение условия выполнения цикла. Так продолжается до тех пор, пока значение условия выполнения цикла не станет ложным.

Следует знать:

· число повторений операторов цикла WHILE определяется в ходе работы программы и как, правило, заранее неизвестно;

· в операторе цикла WHILE точка с запятой никогда не ставится после зарезервированного слова DO;

· для успешного завершения цикла WHILE в его теле обязательно должны присутствовать инструкции, оказывающие влияние на условие выполнения инструкций цикла;

· инструкции тела цикла WHILE вообще могут быть не выполнены, если проверяемое условие ложно с самого начала;

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

Вернемся к задаче - распечатать квадраты чисел, находящихся в диапазоне от 0 до 1 с шагом 0,2. Составим блок-схему и программу решения задачи:

var k, s : integer;

begin

s := 0;

while s <= 1 do

begin

k := sqr(s);

writeln (k);

s := s + 0.2;

end;

readln;

end.

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

Решение. Чтобы получить средний рост С, надо знать количество школьников К и их суммарный рост 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. Закрепление изученного материала. Для закрепления изученного материала учащимся предлагается выполнить комментированные упражнения. Комментирование действий помогает учителю обнаруживать типичные ошибки и вносить коррективы в действия учеников.

Составьте блок-схему и программу решения задач:

1. Распечатать произведения чисел А и В, изменяющихся от 17 и -25 с шагом -3 и 5 соответственно до тех пор, пока это произведение - отрицательное число.

2. Сколько слагаемых должно быть в сумме 1 + Ѕ + 1/3 + …+ 1/N, чтобы сумма оказалась больше 5.

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

Вариант 1.

1. Температура С в градусах Цельсия изменяется от 0 до 100 с шагом 5. Напечатать таблицу перевода температуры из градусов Цельсия в градусы Фаренгейта (F). Формула перевода: F = 1,8 C + 32. Составьте блок-схему и программу решения задачи.

2. Составьте таблицу значений функции y = 5x - 2 на отрезке [1; 20] с шагом b = 2.

3. * В первый день пловец проплыл 3 км. В каждый следующий день он проплывал на 10% больше, чем в предыдущий.

o а) В какой по счету день пловец начнет проплывать более 5 км?

o б) К какому дню он суммарно проплывет более 30 км?

Вариант 2.

1. Напечатать таблицу соответствия между весом в фунтах и весом в кг для значений от 1 до 10 фунтов с шагом 0,5 фунта. Формула перевода: 1 фунт = 400 г. Составьте блок-схему и программу решения задачи.

2. Составьте таблицу значений функции y = 5x2 - 2x + 1 на отрезке [-5; 5] с шагом b = 2.

3. * Урожай яблок в 1990 году составил 20 тонн. Далее каждые два года урожай уменьшался на 20%.

o а) Начиная с какого года, будет собрано менее 5 тонн?

o б) В каком году суммарный урожай яблок превысит 90 тонн?

Вариант 3.

1. Напечатать таблицу перевода расстояний из дюймов в сантиметры для значений от 1 до 10 дюймов с шагом 0,5 дюйма. Формула перевода: 1дюйм = 2,54 см.

2. Составьте таблицу значений функции y = 4x2 - 5x - 10 на отрезке [-9; 9] с шагом b = 3.

3. * Концентрация хлорной извести в бассейне V м3 составляет 10 г/л. Через одну трубу в бассейн вливают чистую воду со скоростью Q м3/час, через другую трубу с такой же скоростью вода выливается. При условии идеального перемешивания концентрация хлорной извести изменятся по закону C = C0e-Qt/V , где t - время, C0 - начальная концентрация.

o а) Определить, через какое время концентрация хлорной извести в бассейне достигнет безопасной для человека величины. Задачу решить при Q = 150 м3/час, V = 10000 л, C0 = 10 г/л, t изменяется с шагом 0,5.

o б) Напечатать таблицу изменения концентрации хлорной извести для интервала времени от 0 до 5 часов с шагом 0,5 часа.

7. Заключение. Подводятся итоги уроки, анализируется и оценивается работа каждого ученика.

8. Задание на дом.

1. Выучить опорный конспект.

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

3. Творческое задание. Составьте задачу на использование оператора цикла 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 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

Введите два числа (например A=5 и В=8) и найдите их произведение, используя только операцию сложения.

Задача № 2

Введите два числа (например A=45 и В=8) и найдите их частное от деления нацело(в переменной А), используя только операцию вычитания.

Задание № 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. Подведение итогов

Выводы:

1. Выполнение цикла с постусловием прекращается, как только логическое условие принимает значение “истина”;

2. Цикл с постусловием будет выполнен хотя бы один раз.

3. При использовании нескольких операторов в теле цикла 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 bank1;

CONST P=15; N=5;

VAR S:real; i: integer;

BEGIN

Writeln (`Summa vklada: ');

Readln (S);

For i:=1 to N do

S:=S+S*P/100;

Writeln (`itogovaja summa', S);

END.

Program bank2;

CONST P=15; N=5;

VAR S:real; i: integer;

BEGIN

Writeln (`Summa vklada: ');

Readln (S);

i:=1;

While i<=N do

begin

S:=S+S*P/100;

i:=i+1;

end;

Writeln (`itogovaja summa', S);

END.

Program bank3;

CONST P=15; N=5;

VAR S:real; i: integer;

BEGIN

Writeln (`Summa vklada: ');

Readln (S);

i:=1;

Repeat

S:=S+S*P/100;

i:=i+1;

Until i>N;

Writeln (`itogovaja summa', S);

END.

Эту задачу можно решить с помощью трех типов циклов. Но используя цикл с предусловием или с постусловием, переменная, определяющая условие, работает как счетчик (наращивается на 1). Поэтому решение этой задачи с помощью цикла со счетчиком является наиболее коротким.

Задача «Евклид» (алгоритм нахождения наибольшего общего делителя).

Условие: Если n=m, то НОД (n, m) = n = m

Если n>m, то НОД (n, m) = НОД (n-m, m)

Если n<m, то НОД (n, m) = НОД (n, m-n)

Решения, предложенные учителем:

Program evklid2;

VAR n,m : integer;

BEGIN

Readln (n, m);

While n<>m do

If n>m then n:=n-m

else m:=m-n;

Writeln (`НОД = ', n)

END.

Program evklid3;

VAR n,m : integer;

BEGIN

Readln (n, m);

If n<>m then

Repeat

If n>m then n:=n-m

else m:=m-n;

Until n=m;

Writeln (`НОД = ', n)

END.

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

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<=i do begin

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;

Var

A : Integer;

S : Longint;

Begin

A:=1; S:=0;

While A<=100 Do

Begin

S:=S+A*A;

A:=A+1

End;

Writeln(S)

End.

II. С использованием цикла "До".

Program Ex2;

Var

A : Integer;

S : Longint;

Begin

A:=1; S:=0;

Repeat

S:=S+A*A;

A:=A+1

Until A>100;

Writeln(S)

End.

III. С использованием цикла "С параметром".

Program Ex3;

Var

A : Integer;

S : Longint;

Begin

S:=0;

For A:=1 To 100 Do S:=S+A*A;

Writeln(S)

End.

Домашнее задание: 1. повторить тему «циклы» 2. Написать таблицу "Соответствия расстояния в дюймах расстоянию в метрах". Для значений от 10 до 20; с шагом h=+1; 1 дюйм = 25,4 мм. Решим эту задачу с использованием всех трех видов циклов.

Задачи для практикума.

1. Дано натуральное число N. Переставить местами его цифры так, чтобы получилось максимальное число, записанное теми же цифрами.

2. Дано натуральное число N. Переставить местами его цифры так, чтобы получилось минимальное число, записанное теми же цифрами.

3. Для записи римскими цифрами используются символы I,V, X, L, С, D, М, обозначающие соответственно числа 1, 5, 10, 50, 100, 500, 1000. Составить программу, которая запись любого данного числа п (п< 3999) арабскими цифрами переводила бы в запись римскими цифрами.

4. Найдите целые числа-палиндромы (от 1 до N), которые при возведении в квадрат так же дают палиндромы, например, 222=484.

5. Найдите целые числа (от 1 до N), которые при возведении в 3, или 4, или 5 степень дают палиндромы, например, 113=1331.

6. Даны натуральные числа от 20 до 50. Напечатать те из них, которые делятся на 3, но не делятся на 5.

7. Дано натуральное число к. Напечатать к-ю цифру последовательности 149162536, в которой выписаны подряд квадраты всех натуральных чисел.

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

9. Вычислить: y=sinl+sinl.l+sinl.2+...+sin2.

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

11. Найти наименьшую и наибольшую цифры в записи данного натурального числа.

12. Произведение n первых нечетных чисел равно р. Сколько сомножителей взято? Если введенное n не является указанным произведением, сообщить об этом.

13. Найти на отрезке [а, Ь] натуральное число, имеющее наибольшее количество делителей.

14. Задумано некоторое число х (х<100). Известны числа к, m, n - остатки от деления этого числа на 3, 5, 7. Найти х.

15. Дано натуральное число n. Проверить, будут ли все цифры числа различными.

Задачи повышенной сложности

1. Ученик начал решать задачи данного урока программирования, когда электронные часы показывали h1 часов и min1 минут, а закончил, когда было h2 часов и min2 минут. Составьте программу, позволяющую определить, сколько времени ученик решал эти задачи. (Будем считать, что задачи решались не дольше суток.)

2. Дано действительное число а. Не пользуясь никакими другими операциями, кроме умножения, получить: а) а4 за две операции; б) а6 за три операции; в) а7 за четыре операции; г) а8 за три операции; д) а9 за четыре операции; е) а10 за четыре операции; ж) а13 за пять операций; з) а15 за пять операций; и) а21 за шесть операций; к) а28 за шесть операций; л) а64 за шесть операций;

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

Контрольная работа по теме «Циклы»

Вариант 1

1. Составьте блок-схему алгоритма и программу вычисления произведения четных чисел, меньших 15.

2. Составьте таблицу значений функции y = 5x-2 на отрезке [1; 20] с шагом h = 2.

3*. Составьте программу вычисления суммы 80 первых членов арифметической прогрессии, если a1 = 10; d = 3.

Вариант 2

1. Составьте блок-схему алгоритма и программу вычисления произведения нечетных чисел, меньших 16.

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.

Литература

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

Размещено на Allbest.ru


Подобные документы

  • Структура и основные элементы языка Turbo Pascal. Алгоритм составления простейших программ на Turbo Pascal. Применение условного оператора и сильноветвящихся алгоритмов. Циклы с предусловием и постусловием, сочетание циклических и условных операторов.

    реферат [64,0 K], добавлен 20.03.2016

  • Изучение функций и возможностей среды разработки языка программирования Pascal. Рассмотрение работы с одномерными и двумерными массивами, со строками и числами. Математическая формулировка задач. Разработка алгоритмов, описание структуры программ.

    курсовая работа [879,8 K], добавлен 11.02.2016

  • Векторная компьютерная графика. Графические примитивы. Графические возможности языка программирования Pascal. Методические рекомендации к изучению графики в языке программирования Pascal. Построение графиков функций.

    курсовая работа [28,3 K], добавлен 13.06.2007

  • История появления и распространения Turbo Pascal - среды разработки для языка программирования Паскаль. Общий вид объявления файлового типа. Входная, выходная и промежуточная информация. Алгоритм решения задачи: словесный алгоритм, блок-схема, программа.

    курсовая работа [359,4 K], добавлен 05.01.2010

  • Ознакомление с ситуацией распространения на рынке языков программирования. Определение плюсов и минусов Pascal, C++, VBA. Сравнение и анализ синтаксиса программ на основе одной задачи. Выявление лучшего языка для освоения первоначальных навыков.

    курсовая работа [1022,0 K], добавлен 13.10.2014

  • История развития языка программирования Pascal, его основные концепции. Вычисления в математических задачах. Изменение порядка выполнения инструкций программы. Выполнение оператора цикла. Логические выражения, линейные алгоритмы, условные операторы.

    методичка [847,6 K], добавлен 10.01.2013

  • История создания и развитие языка программирования Pascal, его версии. Особенности и порядок построения графика функции на языке Turbo Pascal с использованием декартовой системы координат. Блок схема алгоритма процедур, листинг и тестирование программы.

    курсовая работа [102,7 K], добавлен 23.12.2011

  • Характеристика вычислительной системы и инструментов разработки. Программирование на языке Pascal в среде Turbo Pascal и на языке Object Pascal в среде Delphi. Использование процедур, функций, массивов, бинарного поиска. Создание базы данных в виде файла.

    отчет по практике [2,1 M], добавлен 02.05.2014

  • Изучение текстового режима языка программирования Turbo Pascal. Написание игры "Змейка" с помощью средств, процедур и функций языка программирование Turbo Pascal. Структурное и функциональное описание разработки. Листинг и общие примеры работы программы.

    контрольная работа [286,3 K], добавлен 10.04.2011

  • Разновидности управляющей конструкции в высокоуровневых языках программирования. Организация многократного исполнения набора инструкций. Основные виды циклических конструкций. Арифметический оператор цикла Pascal с произвольным шагом и с постусловием.

    курсовая работа [38,4 K], добавлен 18.03.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.