Меню Рубрики

Как пишется цикл в паскале

Цикл for: Pascal для начинающих

Основа программирования – циклы, например, for. Pascal. Как и любой компьютерный язык, он также содержит такие конструкции в своём синтаксисе.

Назначение циклических операторов

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

Язык программирования Pascal включает несколько таких конструкций:

  • for – повтор с параметром;
  • while – повтор с предусловием;
  • repeat . until – повтор с постусловием.

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

Структура

Чтобы записать конструкцию повтора с параметром, нужно набрать следующий код:

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

  • <a> – переменная любого счётного типа, чаще всего INTEGER;
  • <b>, <c> – выражения счётного типа, такого же, как и <a>;
  • <d> – произвольный оператор/операторы языка, называемые также телом цикла.

Отрабатывая конструкцию for, Pascal рассчитывает значение <b>, присваивает <a> := <c>, после чего запускается повтор действий:

  • проверка условия <b><c>. Вывод: не рекомендуется обращаться к <a> после выполнения конструкции for.
  • В теле цикла (то есть после слова do) не рекомендуется использовать какие-либо операторы, изменяющие значения параметра <a>. Следование данному правилу ошибки не вызовет, но будет нарушена логика программы.

Следующее правило является общепринятым и соответствует «хорошему тону» в программировании: чтобы было удобно работать с кодом, необходимо записывать операторы тела цикла не с первой колонки. Например, делая 2–3 пробела слева или используя клавишу Tab.

Данное предписание применимо не только к языку паскаль. Для «чайников» оно позволяет быстро найти и исправить ошибку в инструкциях.

Типичные задачи

Допустим, необходимо выполнить табуляцию функции вида f(x) = 3*x + 15, то есть получить таблицу из M значений функций в диапазоне [x1; x2], где x1 и x2 – минимальное и максимальные значения аргумента. Решать эту и подобные задачи помогает конструкция for. Pascal рекомендует записать программный код следующим способом:

Поскольку шаг изменения x не задан, значение аргумента рассчитывается в ходе программы при каждой итерации с помощью формулы: x:= x1+(x2–x1)*(a–1)/(M–1).

Цикл в цикле

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

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

Источник статьи: http://fb.ru/article/297338/tsikl-for-pascal-dlya-nachinayuschih

Pascal: Занятие №3. Часть2: Цикл While в Паскале

While в Паскале — цикл с предусловием

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

n счетчик
246 0
24 1
2 2
0 3

В чем сложность?: Заранее не определено и неизвестно, сколько цифр нужно убрать, т.е. сколько шагов необходимо сделать.
Как выполнить: Надо перестать отделять цифры, когда n = 0, т.е. надо выполнять пока n > 0

Блок-схема решения:

Решение примера на Паскале:

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

Блок-схема, соответствующая циклу while в Паскале:

  • Здесь оператор, стоящий после служебного слова do , образует тело цикла и будет выполняться, пока значение «условия» равно true (истина).
  • Если операторов должно быть несколько, тогда необходимо применять составной оператор.
  • Условие пересчитывается каждый раз при входе в цикл.
  • Непосредственно условием цикла while может быть переменная или логическое выражение.
  • Операторы тела цикла while выполнятся только в том случае, если условие будет истинно, если условие ложно — они игнорируются, и программа продолжается с тех операторов, которые стоят уже после конструкции. Таким образом, это существенное отличие цикла с предусловием от цикла с постусловием.

Рассмотрим использование цикла while в Паскале на решенном примере:

var i,n:integer; begin write (‘kolichestvo znakov’); readln(n); i:=1; while i Вложенные циклы в Паскале

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

const n = 9; <размер таблицы>var i, j :integer; begin for i:=1 to n do <номера строк>begin for j:=1 to n do <номера столбцов>write(i*j:4); writeln; <переход на новую строку>end; end.

Произведение в Паскале

Точно также, как существует сумматор для сложения, для умножения в паскале тоже существует специальная конструкция:

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

где P – промежуточные произведения

Y — сомножители

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

var fact, n : integer; begin fact := 1; <начальное значение факториала =0! >n := 1; <начальное значение для условия >while n n := 1 стоит до цикла, если этого не сделать, то условие будет работать некорректно, так как переменная n будет пуста.

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

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

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

Таким образом, возведение числа n в степень d можно выразить так:
n d = n1 * n2 * n3 * … * nd , где нижние индексы просто указывают очередное по счету число n .

Еще необходимо учесть следующее:

  • число в нулевой степени равняется 1
  • если показатель степени отрицателен, т.е. d , то задача решается по формуле:
    n d = 1 / (n1 * n2 * n3 * … * nd)

Т.е., решая программу на Паскале, учитываем:

  • в программе на языке Паскаль количество итераций (повторений) цикла while должно быть равно показателю степени числа по модулю;
  • если показатель степени — отрицательное число, то нужно впоследствии единицу разделить на результат.

Источник статьи: http://labs-org.ru/pascal-3_2/

Циклы в Паскале

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

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

Цикл for

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

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

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

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

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

Цикл while

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

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

Цикл repeat

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

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

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

Источник статьи: http://pas1.ru/cycles


0 0 голоса
Article Rating
Подписаться
Уведомить о
guest

0 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии