Основы программирования: ТЕМА 05. ОРГАНИЗАЦИЯ ЦИКЛОВ.
презентация к уроку по информатике и икт (8 класс) на тему

Цыбикова Тамара Раднажаповна

ОСНОВЫ ПРОГРАММИРОВАНИЯ
ВВЕДЕНИЕ

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

Данные презентации составлены по темам из раздела 3  учеб.для общеобразовательных учебных заведений авт. А.А.Кузнецов, Н.В.Ипатова «Основы информатики», 8-9 кл.: 

ТЕМА 1. ЯЗЫК ПРОГРАММИРОВАНИЯ ПАСКАЛЬ. 

ТЕМА 2. СТРУКТУРА ПРОГРАММЫ В ПАСКАЛЕ. ВВОД И ВЫВОД ДАННЫХ.

ТЕМА 3. РАБОТА В СИСТЕМЕ ТУРБО-ПАСКАЛЬ. РАБОТА В СИСТЕМЕ ABC ПАСКАЛЬ.

ТЕМА 4. УСЛОВНЫЙ ОПЕРАТОР.

ТЕМА 5ОРГАНИЗАЦИЯ ЦИКЛОВ (+)

ТЕМА 6. МАССИВЫ.

ТЕМА 7. АЛГОРИТМЫ ОБРАБОТКИ ТАБЛИЦ.

ТЕМА 8. ОПЕРАТОР ВАРИАНТА.

ТЕМА 9. ПОДПРОГРАММЫ.

ТЕМА 10. РЕКУРСИЯ.

ТЕМА 11. ОБРАБОТКА СТРОК В ПАСКАЛЕ.

ТЕМА 12. КОМПЬЮТЕРНАЯ ГРАФИКА.

ТЕМА 13. ЗАПИСИ.

ТЕМА 14. ФАЙЛЫ В ПАСКАЛЕ.

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

ЛИТЕРАТУРА:

А.А.Кузнецов, Н.В.Ипатова
«Основы информатики», 8-9 кл.:

–Раздел 3. ОСНОВЫ ПРОГРАММИРОВАНИЯ

Скачать:

ВложениеРазмер
Файл tema5_organizatsiya_tsiklov.pptx468.72 КБ

Предварительный просмотр:


Подписи к слайдам:

Слайд 1

Основы программирования Учитель информатики и ИКТ ГОУ г.Москвы СОШ №310 «У Чистых прудов» Цыбикова Т.Р.

Слайд 2

Организация циклов Тема 5. 03.11.2013 Цыбикова Т.Р. 2

Слайд 3

Циклы В своей практической деятельности человек постоянно сталкивается с задачами, при решении которых требуется многократно повторять одни и те же действия. Для составления алгоритмов решения таких задач используются команды повторения (циклы). 03.11.2013 Цыбикова Т.Р. 3

Слайд 4

Рассмотрим следующий пример. Пусть требуется определить остаток от деления числа M на число N ( M и N - произвольные натуральные числа). Самый простой способ решения этой задачи заключается в следующем: проверяем, не меньше ли M , чем N ( если M

Слайд 5

Повторяющиеся действия Как видно, в этом примере несколько раз повторяется одна и та же последовательность действий. Компьютер может заданное число раз выполнить одни и те же действия с разными данными. Повторяющиеся действия в программировании называются циклом . Если изобразить в виде блок-схемы, то получатся две разные структуры (рис.1 и 2). Цикл не может выполняться вечно, в этом случае нарушается свойство алгоритма решить задачу за конечное число шагов. Цикл заканчивается по какому-либо условию. Проверка этого условия может производиться в начале каждого повторяющегося шага, в этом случае цикл называется пока . При проверке условия в конце каждого шага цикл называется до . Разновидностью цикла до является цикл пересчет . 03.11.2013 Цыбикова Т.Р. 5

Слайд 6

Цикл пока + ? оператор - да нет - ? оператор + нет да Цикл до Циклические структуры Рис.1 Рис.2 03.11.2013 Цыбикова Т.Р. 6

Слайд 7

Циклические структуры Цикл пока В цикле пока проверяется условие, и если оно выполняется, т.е. логическое выражение истинно, то выполняется оператор и снова проверяется условие. Записанное в цикле пока условие является условием продолжения цикла. Как только оно перестанет выполняться, цикл завершится. На рис.1 выход из ромба «+» (или да ) означает выполнение условия цикла, «-» (или нет ) – невыполнение. Цикл пока не выполнится ни разу, если условие при входе с структуру окажется ложным. Рис.1 Цикл пока + ? оператор - да нет 03.11.2013 Цыбикова Т.Р. 7

Слайд 8

Циклические структуры Цикл до Как правило, цикл пока содержит условие повторения , о цикл до условие окончания работы цикла . Обе структуры имеют один вход и один выход. Однако цикл до всегда выполняется хотя бы один раз, потому что условие проверяется после выполнения действия. Это затрудняет проверку правильности программы, поэтому лучше использовать цикл пока . Оператор в цикле может быть простым или составным, заключенным о операторные скобки. В этом случае в цикле могут повторяться несколько операторов, а не один. Повторяющиеся в цикле операторы называются телом цикла. Рис.2 - ? оператор + нет да Цикл до 03.11.2013 Цыбикова Т.Р. 8

Слайд 9

Оператор безусловного перехода Циклы можно организовывать, используя различные средства языка Паскаль. Этот оператор позволяет перейти без проверки условия либо на один из предыдущих операторов, либо на один из последующих, т.е.изменить порядок выполнения команд. Общий вид оператора: goto n; где n - целое число, не более чем из 4 цифр, называемое меткой. Метка появляется в программе 3 раза: в описательной части в разделе Label ; в операторе goto n; перед оператором, на который осуществляется безусловный переход, в этом случае метка от оператора отделяется двоеточием. 03.11.2013 Цыбикова Т.Р. 9

Слайд 10

Организация циклов с помощью операторов условного и безусловного переходов Пусть требуется вычислить НОД двух натуральных чисел A и B . Воспользуемся алгоритмом Евклида: будем уменьшать каждый раз большее из чисел на величину меньшего до тех пор, пока оба числа не станут равны. 03.11.2013 Цыбикова Т.Р. 10 Исходные данные Первый шаг Второй шаг Третий шаг НОД( A , B) =5 A=25 A=10 A=10 A=5 B=15 B=15 B=5 B=5

Слайд 11

03.11.2013 Цыбикова Т.Р. 11

Слайд 12

03.11.2013 Цыбикова Т.Р. 12

Слайд 13

Оператор цикла пока Как видно из предыдущего примера, циклический процесс можно организовать без использования специальных операторов. Однако при составлении достаточно серьезных программ использовать оператор безусловного перехода не рекомендуется, так как можно быстро запутаться при проверке программы. Оператор цикла пока имеет вид: 03.11.2013 Цыбикова Т.Р. 13 while условие do оператор ; И выполняется следующим образом : оператор( тело цикла) повторяется до тех пор, пока выполняется условие (истинно логическое выражение). Оператор может быть простым или составным, заключенным в операторные скобки begin … end .

Слайд 14

Для алгоритма Евклида программа примет вид: 03.11.2013 Цыбикова Т.Р. 14

Слайд 15

Оператор цикла до Проверка условия в цикле до осуществляется после выполнения оператора. Если условие в цикле пока является условием продолжения повторений, то условие до – условием выхода из цикла, его завершением. Поэтому для одной и той же задачи эти условия противоположны. Общий вид оператора цикла до : 03.11.2013 Цыбикова Т.Р. 15 repeat оператор until условие ; Между словами repeat (повторить) и until (до тех пор пока) можно записать любое количество операторов без использования операторных скобок. Перед словом until не ставится точка с запятой.

Слайд 16

Программа нахождения НОД чисел примет вид: 03.11.2013 Цыбикова Т.Р. 16

Слайд 17

Оператор циклов пересчет При выполнении программ нахождения НОД число повторений различно для разных чисел. Когда известно число повторений, удобно использовать цикл пересчет. В Паскале имеется два оператора для организации циклов пересчет : прямой и обратный. Прямой пересчет идет от известного меньшего числа до известного большего, на каждом шаге прибавляется единица (например, от 120 до 140: 121, 122, 123, …, 139, 140). 03.11.2013 Цыбикова Т.Р. 17

Слайд 18

Оператор прямого пересчета : читается как «для i начиная n1 с до n2 выполнить оператор». Переменная i называется переменной цикла, она при прямом пересчете всегда меняется от меньшего значения до большего. При i :=n1 цикл выполняется первый раз. Затем к значению i добавляется единица и осуществляется проверка, не превысило ли полученное значение величину n2 . Если i+1 n2 , то оператор выполняется, если нет, то происходит выход из цикла и выполнение следующего по порядку оператора программы. 03.11.2013 Цыбикова Т.Р. 18 for i := n1 to n2 do оператор ;

Слайд 19

Оператор прямого пересчета : Поскольку оператор цикла for сам изменяет значение переменной цикла, ее нельзя менять другими способами, например присваиванием ей какого-либо значения в теле цикла (она не должна появиться слева от знака «:=»). Оператор в цикле может быть простым или составным, заключенным в операторные скобки. Оператор пересчет работает как цикл до , поэтому надо быть внимательным, оператор в теле цикла выполнится всегда хотя бы один раз. Рассмотрим примеры использования операторов цикла. 03.11.2013 Цыбикова Т.Р. 19

Слайд 20

Операторы циклов пересчет Пример 1. Известно, что для получения целой степени n числа a его надо умножить само на себя n раз. Это произведение при выполнении программы будет храниться в ячейке с именем p . Каждый раз, при очередном выполнении цикла, из этой ячейки будет считываться предыдущий результат, домножаться на основание степени a и снова записываться в ячейку p . Основной оператор в теле цикла повторяется n раз и имеет вид: p:=p*a; Пусть надо вычислить a n . При первом выполнении цикла в ячейке p должно находиться число, не влияющее на умножение, т.е. до цикла туда надо записать единицу. 03.11.2013 Цыбикова Т.Р. 20 Выполнение программы a=2 n=5 i p 1 1 2 3 4 5 2 4 8 16 32

Слайд 21

Программа имеет вид: program E8; var a,p : real; i , n: integer; begin write(‘ введите a – основание степени , a = '); readln (a); write (‘ введите целое n – показатель степени , n= '); readln (n); p:=1; for i :=1 to n do p:=p*a; write (' p= ',p); readln end . 03.11.2013 Цыбикова Т.Р. 21

Слайд 22

Отладка программы Перед текстом программы представлен протокол её выполнения при возведении числа 2 в пятую степень. Таблица заполнена вручную, процесс её заполнения называется отладкой программы. Отладка - это проверка всех этапов работы программы. Для сложных задач сначала составляется контрольный пример ( тест ) и программа выполняется человеком, который выполняет каждый оператор так, как его выполняет компьютер. Затем программу выполняет компьютер и сверяет все промежуточные, полученные при счете данные и конечные результаты. Только после полного совпадения программа выполняется с реальными данными. Для понимания работы программы, выполнения отдельных операторов полезно заполнять подобные протоколы для всех учебных задач. 03.11.2013 Цыбикова Т.Р. 22

Слайд 23

03.11.2013 Цыбикова Т.Р. 23

Слайд 24

Оператор циклов пересчет Пример 2. По определению n! =1*2*3*…* n . Используя предыдущую программу, вычислим p как произведение чисел от 1 до n , т.е. p каждый раз умножается не на одно и то же число, а на значение переменной цикла. Вычисление p=n! (n факториал) program E9; var p, i , n: integer; begin write(‘ введите целое n='); readln (n); p:=1; for i :=1 to n do p:=p* i ; write (n, ' != ',p); end . 03.11.2013 Цыбикова Т.Р. 24

Слайд 25

03.11.2013 Цыбикова Т.Р. 25

Слайд 26

Оператор циклов пересчет Пример 3. Пусть требуется составить таблицу значений функции на отрезке [0;3,14] с шагом 0,1. Чтобы не определять количество повторений вычислений, можно воспользоваться циклом пока . Используя вывод вещественных чисел с фиксированной точкой, определим, что количество цифр после запятой в значении функции будет равно 5. Тогда все число, учитывая область значений синуса, займет 7 позиций (числа положительные, значит, добавится позиция для десятичной точки и целой части числа). Составление таблицы значений функции y=sin x . program E10; var x,y: real; begin x:=0; write('x':100, 'sin x':100); while x<=3.14 do begin y:=sin(x); writeln (x:100,' ',y:7:5); x:=x+0.1 end ; readln end . 03.11.2013 Цыбикова Т.Р. 26

Слайд 27

03.11.2013 Цыбикова Т.Р. 27

Слайд 28

Оператор циклов пересчет Пример 4. При суммировании, как и при умножении нескольких чисел, необходимо накапливать результат в некоторой ячейке памяти, каждый раз считывая из этой ячейки предыдущее значение суммы и увеличивая его на очередное слагаемое. Пусть известно, что будет складываться n слагаемое. Путь известно, что будет складываться n чисел. Суммирование чисел. В этом случае надо n раз выполнить действие s:=s+a; здесь a – очередное число, вводимое с клавиатуры. Для первого выполнения этого оператора присваивания надо из ячейки с именем s взять такое число, которое не повлияло бы на результат сложения. Следовательно, прежде чем начать выполнять цикл, надо поместить в эту ячейку (или, что то же самое, присвоить переменной s ) число нуль. 03.11.2013 Цыбикова Т.Р. 28

Слайд 29

Программа имеет вид: program E11; var a,s: real; i,n: integer; begin write(‘ введите количество слагаемых n='); readln (n); s:=0; for i :=1 to n do begin write ( i ,'- ое число ='); readln (a); s:=s+a end ; write (‘ сумма s=',s); readln end . 03.11.2013 Цыбикова Т.Р. 29

Слайд 30

03.11.2013 Цыбикова Т.Р. 30

Слайд 31

Если количество чисел неизвестно , то можно задать число-ограничитель, например 0. В таком случае используется цикл while или repeat . s:=0; readln (a); while a<>0 do begin s:=s+a; readln (a) end; s:=0; repeat readln (a); s:=s+a; until a=0; 03.11.2013 Цыбикова Т.Р. 31

Слайд 32

Оператор цикла обратный пересчет Оператор цикла обратный пересчет работает аналогично оператору цикла прямого пересчета, только переменная цикла не возрастает с каждым шагом на единицу, а на единицу убывает. Оператор имеет вид: 03.11.2013 Цыбикова Т.Р. 32 f or i :=n2 downto n1 do оператор ; Для этого оператора должно также выполняться n2 n1.

Слайд 33

Правила При использовании в программе операторов цикла необходимо соблюдать следующие правила: внутри цикла может находиться другой цикл, но необходимо, чтобы циклы имели разные переменные и внутренний цикл полностью находился в теле внешнего цикла; нельзя передавать управление в тело цикла, минуя заголовок (это значит, что метка и оператор goto с этой меткой должны находиться в теле цикла); если требуется обойти группу операторов в теле цикла и продолжить цикл, т.е.выполнить его следующий шаг, то надо передать управление на замыкающий цикл end ; Можно досрочно выйти из цикла, или используя оператор goto , или изменив параметр условия в операторах while и repeat так, чтобы цикл больше не выполнялся. 03.11.2013 Цыбикова Т.Р. 33

Слайд 34

Вопросы и задания Пусть тело цикла в программе E7 такое же, как в программе E6 . Как будет работать программа E7 , если ввести два одинаковых числа a и b ? Сколько раз выполнится оператор цикла repeat , если условие после слова until истинно при входе в цикл? Объясните, какая разница между условиями, записанными после слов while и repeat для одной и той же задачи. 03.11.2013 Цыбикова Т.Р. 34

Слайд 35

Вопросы и задания Напишите программы вычисления сумм: Сорока слагаемых вида n- i , где i = 1, 2, 3,…, 40, а n – данное число; n слагаемых вида x + i , где x – данное число, а i меняется от 1 до n ; Ста слагаемых, имеющих вид дроби ( i+1) /( i+2) ; N слагаемых вида ( i+1) 2 , где i = 1, 2, …, n ; N слагаемых sin x + sin x 2 + sin x 3 +…+ sin x n ; N слагаемых sin x + sin 2 x + sin 3 x +…+ sin n x ; Кубов n первых натуральных чисел. 03.11.2013 Цыбикова Т.Р. 35

Слайд 36

Вопросы и задания Для различных вводимых с клавиатуры целых чисел найдите сумму положительных нечетных. Напишите программы вычисления произведений: a*(a+1)*(a+2)*…*(a+n-1); a*(a-n)*(a-2n)*…*(a-n 2 ) ; (x-1)(x-2)(x-3)…(x-n); 2*4*6*…*(2n); (1+sin 0.1)(1+sin 0.2)…(1+sin 10); Всех чисел от 1 до 100 кратных 3, но не кратных 6; n сомножителей вида ( x+i ) 2 . 03.11.2013 Цыбикова Т.Р. 36

Слайд 37

Вопросы и задания Дано положительное число A . Найдите среди чисел 1, 1+1/2, 1+1/2+1/3,… первое, большее A. Вводя числа с клавиатуры без ограничения их количество (конец ввода – число нуль), найдите сумму положительных и произведение отрицательных. 03.11.2013 Цыбикова Т.Р. 37

Слайд 38

Литература А.А.Кузнецов, Н.В.Ипатова «Основы информатики», 8-9 кл .: Раздел 3. ОСНОВЫ ПРОГРАММИРОВАНИЯ, С.99-107 03.11.2013 Цыбикова Т.Р. 38


По теме: методические разработки, презентации и конспекты

Основы программирования: ТЕМА 01. ЯЗЫК ПРОГРАММИРОВАНИЯ ПАСКАЛЬ.

ОСНОВЫ ПРОГРАММИРОВАНИЯВВЕДЕНИЕОдним из популярных сегодня ЯП является Паскаль. Он позволяет составлять программы для решения математических задач, обработки текстов, построения изображений на экране ...

Основы программирования: ТЕМА 08. ОПЕРАТОР ВАРИАНТА.

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

Основы программирования: ТЕМА 09. ПОДПРОГРАММЫ.

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

Основы программирования: ТЕМА 02. СТРУКТУРА ПРОГРАММЫ В ПАСКАЛЕ. ВВОД И ВЫВОД ДАННЫХ.

ОСНОВЫ ПРОГРАММИРОВАНИЯВВЕДЕНИЕОдним из популярных сегодня ЯП является Паскаль. Он позволяет составлять программы для решения математических задач, обработки текстов, построения изображений на экране ...

Основы программирования: ТЕМА 03. РАБОТА В СИСТЕМЕ ТУРБО-ПАСКАЛЬ. РАБОТА В СИСТЕМЕ ABC ПАСКАЛЬ.

ОСНОВЫ ПРОГРАММИРОВАНИЯВВЕДЕНИЕОдним из популярных сегодня ЯП является Паскаль. Он позволяет составлять программы для решения математических задач, обработки текстов, построения изображений на экране ...

Основы программирования: ТЕМА 04. УСЛОВНЫЙ ОПЕРАТОР.

ОСНОВЫ ПРОГРАММИРОВАНИЯВВЕДЕНИЕОдним из популярных сегодня ЯП является Паскаль. Он позволяет составлять программы для решения математических задач, обработки текстов, построения изображений на экране ...

Основы программирования: ТЕМА 06. МАССИВЫ.

ОСНОВЫ ПРОГРАММИРОВАНИЯВВЕДЕНИЕОдним из популярных сегодня ЯП является Паскаль. Он позволяет составлять программы для решения математических задач, обработки текстов, построения изображений на экране ...