Урок циклы в паскале

Урок циклы в паскале

При решении задач может возникнуть необходимость повторить одни и те же действия несколько или множество раз. В программировании блоки кода, которые требуется повторять не единожды, оборачиваются в специальные конструкции – циклы. У циклов выделяют заголовок и тело. Заголовок определяет, до каких пор или сколько раз тело цикла будет выполняться. Тело содержит выражения, которые выполняются, если в заголовке цикла выражение вернуло логическую истину (True, не ноль). После того как достигнута последняя инструкция тела, поток выполнения снова возвращается к заголовку цикла. Снова проверяется условие выполнения цикла. В зависимости от результата тело цикла либо повторяется, либо поток выполнения переходит к следующему выражению после всего цикла.

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

Цикл for

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

В заголовке цикла указываются два значения. Первое значение присваивается так называемой переменной-счетчику, от этого значения начинается отсчет количества итераций (повторений). Отсчет идет всегда с шагом равным единице. Второе значение указывает, при каком значении счетчика цикл должен остановиться. Другими словами, количество итераций цикла определяется разностью между вторым и первым значением плюс единица. В Pascal тело цикла не должно содержать выражений, изменяющих счетчик.

Цикл for существует в двух формах:

Счетчик – это переменная любого из перечисляемых типов (целого, булевого, символьного, диапазонного, перечисления). Начальные и конечные значения могут быть представлены не только значениями, но и выражениями, возвращающими совместимые с типом счетчика типы данных. Если между начальным и конечным выражением указано служебное слово to, то на каждом шаге цикла значение параметра будет увеличиваться на единицу. Если же указано downto, то значение параметра будет уменьшаться на единицу.

Количество итераций цикла for известно именно до его выполнения, но не до выполнения всей программы. Так в примере ниже, количество выполнений цикла определяется пользователем. Значение присваивается переменной, а затем используется в заголовке цикла. Но когда оно используется, циклу уже точно известно, сколько раз надо выполниться.

Цикл while

Цикл while является циклом с предусловием. В заголовке цикла находится логическое выражение. Если оно возвращает true, то тело цикла выполняется, если false – то нет.

Когда тело цикла было выполнено, то ход программы снова возвращается в заголовок цикла. Условие выполнения тела снова проверяется (находится значение логического выражения). Тело цикла выполнится столько раз, сколько раз логическое выражение вернет true. Поэтому очень важно в теле цикла предусмотреть изменение переменной, фигурирующей в заголовке цикла, таким образом, чтобы когда-нибудь обязательно наступала ситуация false. Иначе произойдет так называемое зацикливание, одна из самых неприятных ошибок в программировании.

Цикл repeat

Цикл while может не выполниться ни разу, если логическое выражение в заголовке сразу вернуло false. Однако такая ситуация не всегда может быть приемлемой. Бывает, что тело цикла должно выполниться хотя бы один раз, не зависимо оттого, что вернет логическое выражение. В таком случае используется цикл repeat – цикл с постусловием.

В цикле repeat логическое выражение стоит после тела цикла. Причем, в отличие от цикла while, здесь всё наоборот: в случае true происходит выход из цикла, в случае false – его повторение.

В примере, даже если n будет равно 0, одна звездочка все равно будет напечатана.

Цели:

  • Образовательные:
  • проверить уровень усвоения материала по теме: “Условный оператор”;
  • развивать наблюдательность, логическое мышление;
  • познакомить учащихся с применением циклов в языке Турбо Паскаль.
  • Воспитательные:
    • воспитание познавательной потребности, интереса к предмету.
    • План

      1. Решение задачи на ветвление.
      2. Изучение нового материала:
      1. Цикл с предусловием.
      2. Цикл с параметром.
    • Итог урока.
    • Домашнее задание.
    • Просмотр содержимого документа
      «Конспект урока по теме "Циклы в Паскале"»

      Цели:

      проверить уровень усвоения материала по теме: “Условный оператор”;

      развивать наблюдательность, логическое мышление;

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

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

      План

      Решение задачи на ветвление.

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

      Цикл с предусловием.

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

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

      Орг. Момент. Приветствие.

      Ребята, на прошлом уроке вы проходили ветвление на языке программирования. Давайте с вами решим задачу, которая называется “Сумма или квадрат”. Программа должна вычислить сумму двух вещественных чисел х и у, если х – положительное, иначе вычислить х 2 . В этой задаче, если х неположительное, у уже выводить не надо. К доске вызывается ученик

      – Вот как выглядит программа:

      program sum_or_square;
      var
      x, y: Real;
      begin

      Readln (x);
      if x 0 then
      begin
      ReadLn (y);
      WriteLn (x + y)
      end;
      else
      WriteLn (x * x);
      end.

      – Молодцы, решили задачу правильно. А сегодня мы с вами познакомимся с циклами.

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

      – Первой остановкой в нашем путешествии по стране Программирование, полной чудес, даже опасностей была Англия, Лондон, Бейкер-Стрит, дом знаменитого сыщика Шерлока Холмса. Там мы останавливались в поисках лжи и истины.
      Перенесемся из Англии конца XIX века на две тысячи лет назад – в Древнюю Грецию. Древняя Греция – страна великих ученых, поэтов и легендарных героев. Познакомимся с историей одного из них.
      “. Сизиф, сын бога повелителя всех ветров Эола, был основателем города Коринфа, который в древнейшие времена назывался Эфирой.
      Никто во всей Греции не мог равняться по коварству, хитрости и изворотливости ума с Сизифом. Сизиф благодаря своей хитрости собрал неисчислимые богатства у себя в Коринфе; далеко распространилась слава о его сокровищах.
      Когда пришел к нему бог смерти мрачный Танат, чтобы низвести его в печальное царство Аида, то Сизиф, еще раньше почувствовав приближение бога смерти, коварно обманул бога Таната и заковал его в оковы. Перестали тогда на земле умирать люди. Нигде не совершались большие пышные похороны; перестали приносить и жертвы богам подземного царства. Нарушился на земле порядок, заведенный Зевсом. Тогда громовержец Зевс послал к Сизифу могучего бога войны Ареса. Он освободил Таната из оков, а Танат исторг душу Сизифа и отвел ее в царство теней умерших.>
      Но и тут сумел помочь себе хитрый Сизиф. Он сказал жене своей, чтобы она не погребала его тела и не приносила жертвы подземным богам. Послушалась мужа жена Сизифа. Аид и Персефона долго ждали похоронных жертв. Всё нет их! Наконец приблизился к трону Аида Сизиф и сказал владыке царства умерших:
      – О, властитель душ умерших, великий Аид, равный могуществом Зевсу, отпусти меня на светлую землю. Я велю жене моей принести тебе богатые жертвы и вернусь обратно в царство теней.
      Так обманул Сизиф владыку Аида, и тот отпустил его на землю. Сизиф не вернулся, конечно, в царство Аида. Он остался в пышном дворце своем и весело пировал, радуясь, что один из всех смертных сумел вернуться из мрачного царства теней.
      Разгневался Аид, снова послал он Таната за душой Сизифа. Явился Танат во дворец хитрейшего из смертных и застал его за роскошным пиром. Исторг душу Сизифа ненавистный богам и людям бог смерти; навсегда отлетела теперь душа Сизифа в царство теней.
      Тяжкое наказание несет Сизиф в загробной жизни за все коварства, за все обманы, которые совершил он на земле. Он осужден вкатывать на высокую, крутую гору громадный камень. Напрягая все силы, трудится Сизиф. Пот градом струится с него от тяжкой работы. Все ближе вершина; еще усилие, и окончен будет труд Сизифа; но вырывается из рук его камень и с шумом катится вниз, поднимая облака пыли. Снова принимается Сизиф за работу. .
      Так вечно катит камень Сизиф и никогда не может достигнуть цели – вершины горы. ”

      Читайте также:  Карты для star wars battlefront

      – Ничего не скажешь – грустная история! Ведь Сизиф – в общем-то неплохой парень, во всяком случаев уме ему не откажешь! Нельзя ли помочь бедняге?
      Вот что интересно – дайте прочитать древний миф программисту, и он скажет: “Ничего страшного. Речь идет о выполнении бесконечного цикла. Я и сам иногда попадаю в такое же положение и нахожу из него выход!”

      – Цикл является одной из важнейших алгоритмических структур и представляет собой последовательность операторов, которая выполняется неоднократно. В программах, связанных с обработкой данных или вычислениями, часто приходится выполнять циклически повторяющиеся действия. Циклы позволяют записать такие действия в компактной форме.
      Циклы принадлежат к числу управляющих операторов. Внимательный ученик мог заметить, что до сих пор мы использовали два вида операторов. Одни из них (Read, Write, оператор присваивания) только выполняли какие-либо действия, другие же управляли ходом выполнения программы (например, условный оператор). Последние и называются управляющими операторами.
      Давайте познакомимся с примерами использования циклов в программах на Паскале. Рассмотрим задачу на вычисление суммы большого числа слагаемых:

      – Можно было бы выбрать простое решение и записать вычисление данной суммы в строчку, употребив 99 операций деления и 99 операций сложения. Ну а если число элементов суммы равно 1000 или просто любому целому числу? Представьте себе программу с оператором, который занимает несколько страниц и содержит 999 сложений! Очевидно, простое решение здесь уже не подходит. Можно заметить, что при вычислении суммы повторяются всего три операции, причем в определенном порядке:

      1. Разделить единицу на знаменатель.
      2. Прибавить частное к ранее полученной сумме.
      3. Увеличить на 1 значение знаменателя.

      – Следовательно, задачу можно решить, например, так:

      1. Присвоить переменной Sum значение, равное 0 (Sum : = 0).
      2. Присвоить переменной i значение, равное 1 (i:= 1).
      3. Добавить к сумме значение 1 / i (Sum := Sum + 1 / i).
      4. Увеличить i на 1 (i:= i + 1).
      5. Повторить шаги 3 и 4.

      – Повторив операции 3 и 4 99 раз, мы получим требуемую сумму. Это пример алгоритмической конструкции “цикл”.

      – В языке программирования Паскаль имеется три разновидности цикла:

      Читайте также:  Почему пк включается а монитор не показывает

      Цикл с предусловием (цикл “пока” – whi1е);

      Цикл с постусловием (цикл “до тех пор, пока” repeat. unti1);

      Цикл с параметром (со счетчиком) (цикл “для” – for . to / downto);

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

      2.1. Цикл с предусловием

      – Цикл с предусловием имеет следующий вид:

      While условие do <эта часть называется заголовком цикла>
      оператор;

      Телом цикла может быть и группа операторов, заключенная в операторные скобки begin. end (то есть составной оператор).
      Цикл с предусловием выполняется до тех пор, пока истинно условие в заголовке цикла, причем оно проверяется вначале, потом исполняется оператор. Переменным, входящим в условие, должны быть присвоены определенные значения до входа в цикл.
      В теле цикла должны быть операторы, которые в какой-то момент изменят значение условия, сделав его ложным. Если этого не случится, цикл будет бесконечным. При возникновении в программе бесконечного цикла говорят, что программа “зациклилась”. Зациклившуюся программу приходится останавливать одновременным нажатием клавиш CtrL + Break, иначе она будет выполняться вечно (точнее, до первого отключения компьютера).
      Задача о вычислении суммы может быть решена с использованием цикла whilе. do следующим образом:

      program summa1;
      const
      n = 100;

      var
      i : Integer;
      sum : Real;

      WriteLn (‘ сумма’, n, ‘ элементов= ‘ sum:10:5) ;
      end.

      – Цикл в этой программе работает следующим образом:

      вначале i = 1, sum = 0;

      значение суммы увеличивается на единицу: sum = 0 + 1;

      i увеличивается на 1 i = 2;

      значение суммы sum = 0 + 1 + 1 / 2, а переменной i = 3;

      после выполнения данной последовательности действий необходимое число раз получаем: sum =. + 1 / 100,i = 101;

      – Отметим, что в данном решении использовалась константа. Константа может иметь имя, тогда она называется именованной константой. Объявляется именованная константа в предложении описания констант, которое размещается в разделе описаний программы и имеет вид:

      const имя = значение;

      – Использование именованных констант преследует две цели:

      сделать программу более удобной для понимания. Если, допустим, в программе часто используется число 12, то иногда удобнее один раз дать ему имя, например dozen, а затем использовать это имя;

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

      2.2 Цикл с параметром (со счетчиком)

      – Цикл со счетчиком имеет следующий вид:

      For i := начальное_значение to
      конечное_значение do .
      оператор;

      – Здесь переменная i, называемая управляющей переменной цикла for (или его счетчиком), является произвольным идентификатором, который объявляется как переменная целого (чаще всего) типа. Она может быть также логической или символьной (о символьном типе речь пойдет дальше). Допускаются и некоторые другие типы, но этот случай мы рассматривать не будем.
      При выполнении оператора for сначала вычисляется значение выражения начальное_значение, затем вычисляется значение выражения конечное_значение, далее управляющая переменная цикла последовательно пробегает все значения от начального до конечного. В том случае, когда начальное значение оказывается больше конечного значения, тело цикла не будет выполняться вовсе. Начальное и конечное значения остаются неизменными в ходе выполнения всего цикла fог.
      Параметр цикла i, если он целого типа, пробегает все значения с приращением 1, и его текущее значение не должно изменяться операторами внутри цикла. Такое изменение не запрещено правилами языка, но его последствия будут непредсказуемы. После завершения цикла параметр i считается неопределенным.

      for i := начальное_значение
      dоwntо конечное_значение do.
      оператор;

      параметр цикла меняется от начального значения до конечного с шагом – 1.

      – Программа вычисления суммы с использованием цикла со счетчиком дана далее в двух вариантах (ва риант с to и вариант с downto).

      program summa3;
      const

      i : Integeг;
      sum: Real;

      program summa4;
      const

      i : Integeг;
      sum: Real;

      begin
      sum := 0;
      foг i := n downto 1 do

      WriteLn (‘Сумма ’, n, ‘элементов = ’, sum:10:5);
      end.

      – Самостоятельно разберите работу циклов for в обоих случаях.

      – Какую разновидность цикла лучше выбрать в каждом конкретном случае?

      Использовать цикл for в том случае, когда точно знаете, сколько раз должно быть выполнено тело цикла. В противном случае обратитесь к другим циклам.

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

      III. Итог урока

      – Итак, мы познакомились с циклами, важнейшей составной частью большинства программ. Но как нам быть с героем древнегреческого мифа? Мы выяснили, что циклическое действие, которое он выполняет, будет конечным, если существует условие, при выполнении (или невыполнении) которого цикл должен завершиться. Ограничение может быть и по числу повторений цикла. От цикла, который выполняет Сизиф, немного пользы, ведь каждый раз он повторяет одно и то же действие. Цикл в программе при каждом новом повторении выполняет действие, которое хотя бы немного отличается о предыдущего. Так, сизиф мог бы, скажем, каждый раз вкатывать на гору камень меньшего размера, чем предыдущий. Условием окончания нелегкого сизифова труда было бы в этом случае выкатыванием на гору камня, например, весом в 1 грамм. Следовательно, помочь Сизифу можно, изменив алгоритм его работы, введя в него “правильный” цикл.

      Читайте также:  Как установить vpn на iphone

      – Завершим мы тему “Циклы” решением задач на следующем уроке. В каждой задаче вначале нужно придумать алгоритм, а затем написать программу.

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

      – Подумайте над решением следующей задачи: дано натуральное число. Посчитать количество цифр в числе.

      Здравствуйте, дорогие читатели! Вот мы с вами и подошли к изучению циклов. Циклы в Паскаль. Что это такое? Как этим пользоваться? Для чего они нужны? Именно на эти вопросы я сегодня и отвечу.
      Если вы читали этот урок, то знаете, что существует три вида алгоритмов: линейный, разветвляющийся и циклический. Мы с вами уже знаем, как реализовывать линейные и разветвляющиеся алгоритмы на Паскале. Приступим к изучению последнего типа алгоритмов.
      В языке Pascal, как и в большинстве языков программирования, существует три типа циклических конструкций.

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

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

      Задача 1. Вывести все числа от 1 до числа, введенного с клавиатуры.

      While, или цикл с предусловием

      Как вы, наверное, уже поняли из названия, while — это цикл, в котором условие стоит перед телом. Причем тело цикла выполняется тогда и только тогда, когда условие true; как только условие становится false, выполнение цикла прекращается.

      While имеет формат:

      while do ;

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

      Repeat, или цикл с постусловием

      Repeat — полная противоположность while. Repeat — это цикл, в котором условие стоит после тела. Причем оно выполняется тогда и только тогда, когда результат условия false; как только логическое выражение становится true, выполнение цикла прекращается.

      Repeat имеет формат:

      repeat < повторяй … >
      ;
      ;

      until

      Begin и end не требуются.

      For, или цикл с параметром

      For — это цикл, в котором тело выполняется заданное количество раз.

      Существует две формы записи этого цикла:

      Первая форма

      После каждой итерации значение будет увеличиваться на 1.

      — это начальное значение счетчика. Это может быть переменная или число.
      : как только значение станет больше , выполнение цикла прекратится.

      Если требуется написать несколько операторов в теле цикла, используем begin и end.

      И , и , и — переменные целого типа.

      Чаще всего в качестве счетчика используется переменная i.

      Вторая форма

      После каждой итерации значение будет уменьшатся на 1.

      — это начальное значение счетчика.
      : как только значение станет меньше , выполнение цикла прекратится.

      Два важных примечания:

      1. Цикл повторяется, пока значение значение счетчика лежит в отрезке [значение ; конечное_значение].
      2. Изменять значение счетчика внутри тела нельзя! Вот что выводит компилятор:

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

      Давайте решим пару задач.

      For1. Даны целые числа K и N (N > 0). Вывести N раз число K.

      Организовываем простой цикл от 1 до требуемого числа.

      For2. Даны два целых числа A и B (A

      For9. Даны два целых числа A и B (A

      Организовываем такой же цикл, как и в предыдущей задаче, но одновременно суммируем квадраты всех чисел. Чтобы высчитать квадрат, используем функцию Sqr.

      For13°. Дано целое число N (> 0). Найти значение выражения 1.1 – 1.2 + 1.3 – … (N слагаемых, знаки чередуются). Условный оператор не использовать.

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

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

      Каждый раз вычитаем B из А, пока А — В >= 0.

      While4°. Дано целое число N (> 0). Если оно является степенью числа 3, то вывести True, если не является — вывести False.

      Действуем следующим образом: пока N делится нацело на три, делим N нацело. Затем, если N = 1 — число является степенью тройки; если N <> 1, тогда число — не степень тройки. Для того чтобы решить эту задачу, требуется знать, что такое div и mod, и как работают логические выражения.

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

      Ссылка на основную публикацию
      Тест для определения цвета волос
      Пожалуйста, не копируйте понравившиеся вам статьи незаконно. Мы предлагаем вам разместить активную ссылку на наш сайт в случае, если вы...
      Стим показывает что я не в сети
      Не редко пользователи Steam встречаются с проблемой, когда подключение к интернету есть, браузеры работают, но клиент Стим не грузит страницы...
      Стим саппорт украли аккаунт
      Если ваш аккаунт Steam украли или взломали, то до его восстановления вам необходимо выполнить действия, указанные ниже, иначе аккаунт может...
      Тест графики видеокарты 3dmark
      Наиболее известная программа тестирования производительности, ставшая де-факто стандартом и точкой отсчета в измерениях игровых возможностей видеокарт. Основную популярность программе обеспечило...
      Adblock detector