Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

В языке Pscl можно организовать три вида циклов- С параметром оператор For

Работа добавлена на сайт samzan.net: 2015-07-05

Поможем написать учебную работу

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

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 21.5.2024

ПРОГРАММИРОВАНИЕ ЦИКЛОВ

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

В языке Pascal можно организовать три вида циклов:

  1.  С параметром (оператор For .. to/downto .. do).
  2.  С предусловием (оператор While .. do).
  3.  С постусловием (Repeat .. until).

Цикл состоит из заголовка цикла и тела.

Каждое выполнение тела цикла называется его итерацией.

Переменные значения которых модифицируются в теле цикла и влияют на условие завершения цикла называются параметрами цикла.


ОПЕРАТОР ЦИКЛА СО СЧЕТЧИКОМ

(FOR .. TO/DOWNTO .. DO)

Рассмотрим задачу вычисления факториала положительного целого числа N.

Легко увидеть, что , поэтому вычисление можно свести к многоразовому выполнению оператора

factorial:=factorial*i;

где i =  2, 3, ..., n,

а начальное значение переменной factorial равняется 1.

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

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

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

Счетчик это переменная, которая во время каждого повторения увеличивается (или уменьшается) на единицу независимо от тела цикла.

  •  Оператор цикла For организует выполнение последовательности операторов заранее известное число раз.

Цикл For называют детерминированным.

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

 

Существует два варианта оператора.

 

Первый вариант (с увеличением счетчика +1):

For счетчик := н_з to к_з do оператор;

 Второй вариант (с уменьшением счетчика –1):

For счетчик := н_з downto к_з do оператор;

Здесь:

 Счетчик (параметр цикла) – это переменная порядкового типа.

 н_з и к_з – это выражения, которые определяют первое и последнее значения переменной счетчика. Тип этих выражений должен быть совместим с типом переменной счетчика.

 Оператор – это оператор, который выполняется в цикле и образовывает тело цикла.

 

Фраза от слова For к слову  do является заголовком цикла

Если в цикле выполняется группа операторов, ее следует превратить в один составной оператор с помощью операторных скобок begin ... end.


 Работает оператор таким образом. Сначала вычисляются н_з и к_з счетчика.

Дальше счетчику присваивается начальное значение.

Потом значение счетчика сравнивается с к_з.

Если оно не больше () к_з (в первом варианте) или не меньше () к_з (во втором варианте), выполняется тело цикла.

После выполнения очередной итерации цикл автоматически увеличивает счетчик на единицу (для первого варианта) или уменьшает на единицу (для второго варианта).

После этого управления передается на заголовок цикла и выполняется следующее сравнение.

Если счетчикк_з – первый вариант или счетчикк_з – второй вариант, выполняется следующая итерация и т.д.

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


Переменная F выступает в роли накопителя.

 Накопитель – это переменная, накапливающая значение, которое изменяется в теле цикла.

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

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


program  Ex_7;

var  F:real;

  i,n:byte;

begin

 write('Enter n: ');

 readln(n);

 F:=1;

 For i:=2 to n do

   F:=F*i;

 writeln(n, '!=', F:-20:0);

 readln

end.

Тело цикла выполняется:

для первого варианта

если

н_з к_з

то

к_з – н_з + 1 раз,

для второго варианта

если

н_з к_з

то

н_з – к_з +1 раз,

.

Детерминированность цикла обеспечивается тем, что в теле цикла нельзя изменять значение счетчика.

Если это сделать, компилятор сообщит об ошибке.

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

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


Пример:

For  i:=1 to 3 do c:=2*i;

{используется простой оператор.}

For i:=3 downto 1 do

     begin 

        c:=2/i;

        b:=3+i

      end;

{используется составной оператор}

For i:=1 to 3 do ;

{используется пустой оператор}

Следующие циклы будут проигнорированы:

For i:=5 to 4 do ...;

For i:=4 downto 5 do ...;

а цикл

For i:=5 to 5 do ...;

выполнится лишь один раз.

Сколько раз будет выполняться тело следующего цикла?

k:=0;

For  i:=1 to k+3 do k:=k+1;


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

 


Важно.

Оператор for имеет следующие ограничения:

  1.  Шаг изменения счетчика циклов может быть лишь +1 (если используется ключевое слово to), или –1 (если используется ключевое слово downto).
  2.  Переменная-счетчик цикла может быть лишь порядкового типа и должна быть локальной для блока, в котором находится оператор for.
  3.  Циклы For .. to/downto .. do допускают вложенность при условии, что никакой из вложенных циклов  не модифицирует переменные – параметры внешних циклов.
  4.  Для Object Pascal Delphi 6, после выхода из цикла переменная счетчик будет иметь значение на единицу больше чем конечное значение своего диапазона. Но не следует использовать это в программах. Лучше присвоить новое значение счетчику после окончания цикла – так будет конкретнее.

В некоторых версиях языка Pascal (Lazarus) после выхода из цикла параметр имеет значение равное конечному значению своего диапазона.

Решим задачу. Нужно написать программу для перевода значения температуры, заданной по шкале Цельсия, в значение, которое отвечает шкале Кельвина

Обозначим начальное значение температуры (first temperature) в Цельсиях  - C_F, а конечное значение (last temperature) - C_L. Температуру в Кельвинах - K. Параметр цикла обозначим переменной T.

В цикле выполняются два оператора. Их следует превратить в один составной оператор с помощью операторных скобок begin ... end.


program Ex_8;

var C_f, C_L, t : integer;

 K:real;

begin

writeln('Enter first temperature in Celcius ');

readln(C_f);

writeln('Enter last temperature in Celcius ');

readln(C_L);

writeln('Celcius','Kelvin':8);

For T:=C_f to C_L do

 begin

  K:=T+273.15;

  writeln(T:4,K:11:2);

 end;

readln

end.


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

Числитель будет равеннулю когда k=2 и k=3. Знаменатель раве нулю когда k=–4.

Эти точки нужно исключить из вычисления.


program Project1;

var z:real;

    k,k1,k2:integer;

begin

 write('Enter k1=');

 readln(k1);

 write('Enter k2=');

 readln(k2);

 z:=0;

 for k:=k1 to k2 do

    if (k<>2)and (k<>3)and (k<>–4)

  then z:=z+(k-2)*(k-3)/(k+4);

 writeln('z=',z:6:2);

 readln

end.


i =
2, n, +1

F=F*i

Начало

n

Конец

F =1

T = C_f, C_L, +1

K = T+273.15

Начало

C_f, C_L

Конец

T, K

k = k1, k2, +1

Начало

k1, k2

Конец

Z

Z =0

k¹2 и k¹3

и k¹4

ДА

Нет




1. 90 взрослого населения
2. Лекция ’1 Сущность и функции финансов Сущность финансов как экономической категории их признаки и форм.html
3. П.Бондарь ldquo;rdquo; 2013 г
4. Энергетические установки и тепловые двигатели УТВЕРЖДАЮ Зав
5. Тема 1 Морфология бактерий и методы ее изучения
6. бегства капитала в несколько раз превышают его приток изза рубежа объем внутренних капиталовложений ест
7. Полезность закон убывающей предельной полезности
8. Роль живых организмов в биологическом круговороте
9. фикшена Прежде чем заполнить и сдать заявку внимательно ознакомьтесь с данным положением
10. КОНКУРС ПЕДАГОГИЧЕСКОГО ТВОРЧЕСТВА
11. Философские системы Кун Цзы и Лао Цзы
12. Обозначение Наименование Ко
13. Вышпольский Владимир Владимирович
14. тема методов способов и средств осуществления политической власти
15. Складноскорочені слова абревіатури та графічні скорочення їх місце у професійному мовленні
16.  2013 г Москва Об утверждении расписания и прод
17. Політекономія як суспільно-економічна наука
18. Восточное окружное управление образования Государственное бюджетное образовательное учреждение
19. Анализ финансового состояния предприятия[1]
20. ОБГРУНТУВАННЯ РАЦІОНАЛЬНОГО СКЛАДУ ВУГІЛЬНИХ ШИХТ ДЛЯ КОКСУВАННЯ ЗА ПОКАЗНИКОМ ОПТИЧ