Программирование циклических алгоритмов конспект

Обновлено: 17.06.2024

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

Общие сведения

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

Операторы цикла

Цикл с параметром

Оператор цикла применяется при выполнении расчетов или других действий, повторяющихся определенное количество раз. Оператор имеет вид: либо Здесь i - параметр цикла (переменная порядкового типа), N1, N2 - начальное и конечное значения параметра цикла i. N1, N2 могут быть константами, переменными или выражениями порядкового типа. Напомним, что "оператор" может иметь вид: Begin "операторы" end; В случае связки "To" цикл выполняется при условии N1 = N2 и происходит с единичным уменьшением параметра цикла i от N1 до N2. В операторе цикла не разрешается присваивать параметру цикла какое-либо значение. После окончания цикла значение параметра цикла "i" неопределенно. Оператор цикла часто применяется для суммирования значений некоторой последовательности чисел или значений функции при известном числе операций суммирования. Напомним некоторые определения, связанные с расчетом суммы последовательности. Сумма членов последовательности величин

называется конечной суммой

Для некоторых последовательностей известны формулы расчета конечных сумм, например: при an = an-1 + d; Sn = (a1 + an)*n/2; - арифметическая прогрессия, при an = an-1 * q; Sn= (a1 - an*q)/(1-q); - геометрическая прогрессия, где d и q - постоянные числа. Здесь N-ый член последовательности выражается через (N-1)-ый член. Такие зависимости называются реккурентными. Конечная сумма последовательности может быть неизвестна, тогда для ее расчета применяется алгоритм суммирования членов последовательности в цикле от 1 до N. Приведем пример расчета конечной суммы последовательности: 12 + 32 + 52 +. . . + (2*N-1)2; Sn = N*(4*N2-1)/3; В некоторых случаях "N"-ый член последовательности определяется через сумму предыдущих членов, например,

и конечную сумму можно рассчитать по формуле:

где "S0" - начальная сумма. Рассмотрим программу вычисления конечной суммы денежного вклада в банк через N месяцев при ежемесячной процентной ставке "pr" (5% cоответствует pr=5). Часто применяются вложенные операторы цикла. Например, если необходимо провести все варианты расчета при изменении нескольких параметров в заданных диапазонах. Составим программу расчета функции y = A*sin(x) - cos(x)/A; при изменении аргумента "x" в диапазоне от 0 до Pi с шагом Pi/100 и при изменении параметра "A" в диапазоне от 1 до 3 с шагом 0.5.

Операторы цикла с условием

В Турбо-Паскале применяются два оператора цикла с условием: - цикл с предусловием: проверка условия перед каждым выполнением "оператора", - цикл с постусловием: проверка условия после каждого выполнения "операторов". Здесь "условие" - выражение логического типа (Boolean).

Схема выполнения операторов имеет вид:

называется бесконечным рядом и записывается в виде:

Здесь an - общий член ряда. Сумма конечного числа членов ряда называется частичной суммой и обозначается "Sn". Если сумма членов бесконечного ряда имеет конечный предел "S", то ряд называется сходящимся. Для некоторых рядов получены формулы расчета суммы членов ряда. Например, сумма членов числового ряда:

1 + 1/32 + 1/52 + . . . + 1/(2*N-1) + .

имеет предел S = Pi 2 /8 и общий член an = images/(2*N-1) 2 , где N = 1, 2, 3, . Для сходящегося ряда вычисляется последовательность частичных сумм с заданной погрешностью. Абсолютная погрешность расчетов определяется по формуле Eps=abs(S-Sn), либо Eps=abs(an), если значение S неизвестно. Относительная погрешность расчетов определяется по формуле Eps_o=abs((S-Sn)/S), либо Eps_o=abs(an/Sn). Частичные суммы вычисляются по формуле: Sn = Sn-1 + an Для знакопеременного ряда следует добавить k1=-1, а в цикле: k1:=-k1, an=k1*an. В некоторых случаях "N"-ый член ряда выражается через "N-1"-ый, например, для ряда:

1 + 1/2! + 1/4! + 1/6! + . + 1/(2*N)! + . ; N = 0, 1, 2, .

общий член ряда вычисляется по формуле: an = an-1*k; Параметр k = an/an-1 - коэффициент роста вычисляется предварительно (до написания программы). Для данного ряда

Здесь N! = 1*2*3*. *N; - вычисление факториала числа "N", причем 0! = 1. Расчет частичных сумм производится в цикле с условием, например, для данного ряда операторами:

Операторы ограничения и прерывания цикла

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

Примеры

Пример1: На промежутке от 1 до M найти все числа Армстронга. Натуральное число из n цифр называется числом Армстронга, если сумма его цифр, возведенных в n-ю степень, равна самому числу.

  1. Математическая модель: xО[1;M], x=
  2. Составим блок схему программы:

Контрольные вопросы

  1. Как записывается и как работает оператор FOR?
  2. Для организации каких циклов применим оператор FOR?
  3. В чем отличие оператора WHILE от оператора REPEAT?
  4. Как программируются циклические алгоритмы с явно заданным числом повторений цикла?
  5. Как программируются циклические алгоритмы с заранее неизвестным числом повторений цикла?
  6. Напишите оператор цикла, который не выполняется ни разу.
  7. Напишите оператор цикла, который выполняется неограниченное число раз.
  8. Замените оператор "Repeat A Until B" равносильным фрагментом программы с оператором While.

Задачи

  1. Найти все двузначные числа, сумма цифр которых не меняется при умножении числа на 2,3,4,5,6,7,8,9.
  2. Найти все трехзначные числа, сумма цифр которых равна данному целому числу.
  3. Найти все трехзначные числа, средняя цифра которых равна сумме первой и третьей цифр.
  4. Найти все трехзначные числа, которые можно представить разностью между квадратом числа, образованного первыми двумя цифрами и квадратом третьей цифры.
  5. Найти все двузначные числа, сумма квадратов цифр которых делится на 17.
  6. Найти все трехзначные числа, представимые в виде сумм факториалов своих цифр.
  7. Найти двузначное число, обладающее тем свойством, что куб суммы его цифр равен квадрату самого числа.
  8. Найти двузначное число, равное утроенному произведению его цифр.
  9. В каких двузначных числах удвоенная сумма цифр равна их произведению?
  10. Можно ли заданное натуральное число М представить в виде суммы квадратов двух натуральных чисел? Написать программу решения этой задачи.
    Вычисление выражений:
    Дано натуральное n. Вычислить:
  11. ;
  12. ;

Цель урока: обобщение знаний операторов цикла и обучение построению циклического алгоритма сложной структуры. Задачи урока: 1) повторить циклический алгоритм и дать понятие о вложенных циклах 2) закрепить навыки составления программ с циклами 3) развитие навыков творчески подходить к решению разнообразных задач, умения выделять главное, анализировать

ВложениеРазмер
programmirovanie_tsiklicheskikh_algoritmov.doc 126 КБ

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

Сорокина Елена Викторовна,

учитель информатики МОУ СОШ № 32 г. Комсомольск-на-Амуре

Тип урока: закрепление ранее изученных знаний.

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

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

То, что мы знаем – ограничено,

А, то, что мы не знаем – бесконечно.

- Перед вами алгоритм, выраженный

- Определите результат вычислений

для следующих чисел:

- Какую закономерность мы

видим при вычислении?

- Какой это алгоритм?

-А эта тема новая для вас? (предполагаемый ответ- нет)

-А какие цели вы можете поставить?

Таким образом, цель нашего урока:

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

-а для этого в цифровом диктанте вспомним операторы и их назначения для написания программы.

1. FOR – NEXT - Оператор цикла.

2. Оператор СLS - является заголовком программы.

3. Do while Loop - это цикл с предусловием.

4. Нумерация строк в программе обязательна.

5. Do Loop while - это цикл с постусловием.

2. Проверка д.з.(самопроверка)

-А как помогли вам эти знания мы узнаем, проверив домашнее задание.

Получить таблицу перевода расстояния из дюймов в сантиметры для значений длин от 1 до 20 дюймов. (1дюйм=2,54см)

-Какие выводы можете сделать? (что одну и ту же задачу мы решили при помощи трёх различных операторов. )

-Какой тип цикла оптимален для решения данной задачи? (Ответ: цикл с параметром )

- Оцените себя сами, поставьте отметку .

3.Физминутка для глаз.

-Следите глазами внимательно за объектами на экране .

-Что вы видите на экране?(узоры, мозаики)

-На рисунках представлены разнообразные мозаики. Их объединяют математические закономерности, к поиску которых можно привлечь компьютер. До появления компьютера они были обнаружены Пифагором в виде чисел(слайд таблица Пифагора).

- Давайте составим программу, которая выводит на экран эту таблицу.

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

- Итак, А –цифра строки , которая изменяется от 1 до 10 .

В –цифра столбца, которая изменяется от 1 до 10 .

- Сколько переменных мы видим? / две переменные А и В /.

- Так как каждый цикл имеет свою переменную,

значит сколько у нас будет циклов? / два цикла /.

- Если в программе содержится две структуры цикла, то это сложная циклическая программа.

- Для написания таких программ используют вложенные циклы:

-Во вложенных циклах выделяются внешний и внутренний цикл.

Рассмотрим рисунок А

А – внешний цикл. В

Он открывается первым,

а закрывается последним.

В – внутренний цикл. В

Он открывается последним, А

а закрывается первым.

Вложенный цикл – это цикл в цикле.

- Составим схему, по которой нам легко будет составить программу.

- Какой из циклов будет внешний, а какой внутренний?

FOR А=1 TO 9 STEP 1

/ А – внешний цикл , / FOR В=1 TO 9 STEP 1

/ В – внутренний цикл /

- Составим программу: (один ученик у доски, другие работают в тетрадях)

FOR А = 1 TO 9 STEP 1

FOR В = 1TO 9 STEP 1

/ Коллективная проверка записи на доске, исправление ошибок. /

5. Практика. Пропедевтика.

- Если вы внимательно и терпеливо займетесь изучением свойств таблицы Пифагора, то, несомненно, отыщете новые, не менее красивые узоры.

- Что у нас получилось? (таблица)

- А как называется такая форма организации данных вы узнаете разгадав ребус (массив).

- А Маша покажет значение этого слова.(Проверка индивидуального д.з. Найти в словаре Ожегова значение слова массив и подобрать к нему изображение).

- Как обрабатывать массив мы познакомимся на следующих уроках.

- Пришло время для нового д.з. У всех задание на карточке:

Используя вложенные циклы, вывести на экран все двузначные числа.

Двухзначное число записывается так: АВ =А*10+В

Например, 47 = 4 * 10 + 7

Двузначные числа: 10, 11, 12, …, 97, 98, 99.

- Итак, А – первая цифра двузначного числа, которая изменяется от ? до ? .

В – вторая цифра двузначного числа, которая изменяется от ? до ? .

- Сколько переменных мы видим? / две переменные А и В /.)

- Я предлагаю вам по желанию дополнительное задание:

Задача. Посчитать количество занятых мест в зрительном зале, если занято, то значение 1, свободно значение 0. Поставь дополнительные вопросы к этой задаче.

Запомните ребята эту народную мудрость. Ведь в жизни страшно не то, что вы боитесь узнавать новое, а страшно то, что не стремитесь к новым знаниям .

  • Для учеников 1-11 классов и дошкольников
  • Бесплатные сертификаты учителям и участникам

План-конспект урока информатики в 9 классе

Учитель: Бескоровайный П.И.

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

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

Основной метод объяснения: объяснительно-иллюстративный

Формы работы: фронтальная.

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

2. Развивающая. Развивать алгоритмическое мышление, познавательные интересы, навыки работы на компьютере.

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

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

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

· Способствовать развитию умений самостоятельной работы;

· Содействовать развитию познавательной активности учащихся.

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

1. Алгоритм, в котором его выполнение определяется проверкой каких-либо условий, называется.

A. разветвляющимся C. следования E. процедурным

B. циклическим D. линейным

2. Служебное слово IF в условном операторе переводится как.

A. ВВОД C. ИНАЧЕ E. УСЛОВИЕ

3. Служебное слово THEN в условном операторе переводится как.

A. ЕСЛИ C. ИНАЧЕ E. УСЛОВИЕ

4. Служебное слово ELSE в условном операторе переводится как.

A. ЕСЛИ C. ИНАЧЕ E. УСЛОВИЕ

5. Укажите правильный вариант использования условного оператора.

A. IF THEN begin end ELSE begin end;

B. IF THEN ; ELSE ;

C. THEN begin end IF ELSE begin end;

6. Укажите правильный вариант использования неполного ветвления.

C. IF ELSE begin end;

E. IF THEN begin end;

7. Что будет выведено на экран после выполнения фрагмента программы:

Begin a:=3;

if a>3 then a:=5 else a:=1; writeln (a); end.

A. 1 B. 3 C. 5 D. Ничего E. a

8. Что будет выведено на экран после выполнения фрагмента программы:

Begin x:=0;

if x<>5 then y:=10 else y:=0; writeln (y); end.

A. 0 B. 5 C. 10 D. Ничего E. y

9. Что будет выведено на экран после выполнения фрагмента программы:

Begin a:=12;

if a>10 then n:=a+5 else n:=a-1; writeln (n); end.

A. 16 B. 11 C. 12 D. 17 E. 13

10. Что будет выведено на экран после выполнения фрагмента программы:

Begin a:=1; b:=2;

if (a>=1) and (b>=2) then n:=a+b else n:=a-b;

writeln (n); end.

A. 3 B. -1 C. 1 D. 2 E. 0

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

1. Какой алгоритм называется циклическим?

2. Цикл ДЛЯ? Принцип работы.

3. Цикл ПОКА? Принцип работы.

4. Цикл ДО? Принцип работы

IV. Новая тема

В Паскале существуют следующие операторы цикла:

с предусловием WHILE, с постусловием REPEAT, с параметром FOR.

· Цикл с параметром

1) с возрастанием переменной цикла:

FOR := TO DO ;

2) с убыванием переменной цикла:

FOR := DOWNTO DO ;

Где: i – параметр; А – начальное значение параметра; В – конечное значение параметра;

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

· Цикл с постусловием

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

1. Запишите заголовки цикла For для изменения параметра из диапазонов:

А) от -10 до +10 б) от 100 до 1 в) от 15 до25 г) от -10 до -20

2. Запишите оператор цикла For, который бы выводил все числа в диапазоне от 100 до 10 включительно.

Нажмите, чтобы узнать подробности

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

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

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

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

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

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

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


На этом уроке учащиеся вспомнят, какие алгоритмы называются циклическими и какие типы циклов выделяют в зависимости от организации их работы. Напоминается принцип работы цикла с предусловием, а также даётся объяснение того, как он программируется на языке Pascal. Рассматривается решение нескольких задач с использованием циклов этого типа.


В данный момент вы не можете посмотреть или раздать видеоурок ученикам

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

Получите невероятные возможности




Конспект урока "Программирование циклических алгоритмов. Программирование циклов с заданным условием продолжения работы"

· Определение циклического алгоритма.

· Запись цикла с заданным условием продолжения работы.

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

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

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

Виды организации цикла

Сегодня мы подробнее рассмотрим циклы с заданным условием продолжения работы (с предусловием).

Блок-схема цикла с предусловием

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

Блок-схема алгоритма действий лесоруба

Описание цикла с предусловием

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

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

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

Составим блок-схему алгоритма. В начале пользователь вводит два целых числа, назовём их a и b. После этого следует условный блок a ≠ b. Если это условие выполняется – будет следовать ещё один условный блок, который будет определять из двух не равных чисел наибольшее. Его условием будет a > b. Если это условие выполняется, то переменной a мы должны присвоить значение разности a и b. В противном случае b будет больше a и переменной b мы присвоим значение b - a. После выполнения этого ветвления мы должны вернуться к условному блоку a ≠ b. Если условие этого блока не будет выполняться нам достаточно вывести на экран значение любой из переменных, например a.

program nod;

writeln ('Программа расчёта НОД двух чисел. Введите два числа.');

while a<>b do

write ('НОД равен ', a);

Исходный код программы

Запустим программу на выполнение. Введём числа 65 и 20. Их наибольший общий делитель действительно равен 5.

Программа работает верно. Задача решена.

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

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

Изменим блок-схему алгоритма. Условие, записанное в первом условном блоке, изменится на a ≠ 0 и b ≠ 0. Ветви второго ветвления будут так же изменены. В них вместо разности переменным будут присваиваться остатки от деления их самих на другую переменную. Вывод ненулевого из чисел можно заменить выводом их суммы, так как одно из чисел всегда равно 0, значение суммы чисел будет равно ненулевому числу. Поэтому в блоке вывода в конце блок-схемы укажем a+b.

Изменим написанную нами программу. Для этого изменим условие цикла на (a<>0) and (b<>0). После слов then и else в операторах присваивания знаки минус заменим служебным словом mod, которым обозначается функция выделения остатка от деления. В операторе вывода в конце программы изменим a на a+b.

program nod;

writeln ('Программа расчёта НОД двух чисел. Введите два числа.');

while (a<>0) and (b<>0) do

then a:=a mod b

else b:=b mod a;

write ('НОД равен ', a+b)

Снова запустим программу на выполнение и введём числа 740 и 222. Их наибольший общий делитель действительно 74.

Программа работает правильно. Задача решена.

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

Обозначим: с – число в десятичной системе счисления, строку s – число в двоичной системе счисления. Также нам понадобится промежуточная строка p.

program DecToBin;

writeln ('Программа перевода чисел из десятичной системы счисления в двоичную. Введите число в десятичной системе счисления.');

while c>0 do

str (c mod 2, p);

write ('Число в двоичной системе счисления: ', s);

Исходный код программы

Запустим программу на выполнение. Введём число 255. В двоичной системе счисления это число действительно записывается 11111111.

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

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

Важно запомнить:

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

· Повторение (цикл) представляет собой последовательность действий, повторяющихся многократно.

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

Читайте также: