Отчет по работе должен содержать: название, цель работы; номер варианта для выполнения задания и условие своего



Дата12.07.2016
өлшемі124.5 Kb.
#194093
түріОтчет
    Бұл бет үшін навигация:
  • While Do

Методические указания

к лабораторной работе

PASCAL

Часть 3

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


 

 

1 Цель работы

Изучить операторы цикла языка PASCAL.

 

 

2 Задачи работы


Научиться работать с алгоритмами циклической структуры на языке PASCAL.

 

 



3 Порядок выполнения работы

3.1 С использованием оператора цикла For cоставить и отладить программу для решения следующей задачи:

Дано действительное число x. Вычислить сумму зависящего от x ряда в соответствии с указанным преподавателем вариантом приложения А.

3.2 Провести вычисления для x=1, x=1.5, x=2.

3.3 Решить поставленную в пункте 3.1 задачу с использованием цикла While (для нечетных номеров вариантов) или с использованием оператора цикла Repeat (для четных номеров вариантов). Провести численные вычисления и сравнить полученные результаты с результатами пункта 3.2.

 

 



4 Требования к отчету

Отчет по работе должен содержать:

-название, цель работы;

-номер варианта для выполнения задания и условие своего варианта;

-блок-схему решения задачи;

-текст (листинг) программы;

-полученные при расчетах численные результаты;

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

 

 

5 Общие положения



5.1 Алгоритмы циклической структуры

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

С точки зрения программирования, цикл - повторяющиеся фрагменты программ. В языке Pascal имеются три различных оператора, служащих для программирования циклов: цикл с параметром FortoDo, цикл с предпроверкой условия прекращения повторений WhileDo и цикл с постпроверкой условия прекращения повторений RepeatUntil.

 

 



5.2 Оператор цикла с параметром

Блок-схема, соответствующая циклу с параметром, представлена на рис. 1.

Здесь i – параметр цикла; i0 – начальное значение параметра; iTконечное значение параметра; iSшаг приращения параметра (в случае языка Pascal +1 либо –1).

Циклическая ветвь блок-схемы выполняется для всех i, начиная с i0 и кончая iT с шагом iS (т.е. для i0 , i0+iS , i0+2iS , i0+3iS , … ). Как только i выйдет за пределы интервала [i0 ,iT], повторения прерываются и программа выходит из цикла.

 


Рис. 1 Блок-схема цикла с параметром

 

 



Оператор цикла с параметром на языке Pascal имеет следующий формат:

For i:=i0 to iT do <оператор>

Здесь For, to, do – зарезервированные слова («для», «до», «выполнить»);



i (параметр цикла) - переменная типа INTEGER (точнее, в общем случае, любого порядкового типа);

i0 (начальное значение) и iT (конечное значение параметра) – константы или выражения того же типа;

<оператор> - произвольный оператор языка Pascal (тело цикла). В качестве оператора может выступать расширенный оператор с операторными скобками beginend.

Шаг приращения параметра при этом постоянен и равняется +1.

При выполнении оператора For вначале вычисляется выражение i0 и выполняется присваивание i:=i0 . После этого циклически повторяется:

-  проверка условия i<= iT ; если условие не выполнено, то оператор For прекращает свою работу;

-выполнение тела цикла <оператор>;

-наращивание переменной цикла на единицу.

Если условие не выполняется в самом начале работы оператора For, то исполняемый оператор не будет выполнен ни разу.

Существует и другая форма записи оператора For, при которой шаг приращения параметра принимает значение –1. В этом случае оператор For будет иметь следующий вид:



For i:=i0 downto iT do <оператор>

Пример. Вычислить функцию f=x+e -x при х=0, 1, 2, …, 10 и распечатать полученные значения в табличном виде.

Возможный текст программы:



 

 



5.3 Цикл с предпроверкой условия

Оператор цикла с предпроверкой условия WhileDo схематично представлен в виде блок-схемы на рис.2 и имеет следующий формат:


While <условие> Do <оператор>

Здесь While, Do – зарезервированные слова («Пока [выполняется условие]», «делать»);

<условие> - выражение логического типа;

<оператор> - произвольный оператор, составляющий тело цикла (включая случай расширенного оператора).

Если условие имеет значение “Истинно” (True), то выполняется <оператор>, после чего проверка условия повторяется. Если условие имеет значение “Ложь” (False), то оператор While прекращает свою работу. 

 

Рис.2 Блок-схема цикла с предпроверкой условия

 

 

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



Пример. Дан бесконечный ряд вида

Найти сумму данного бесконечного ряда с заданной точностью e=0.01, т.е. продолжать процесс суммирования до тех пор, пока модуль разности между суммами для k-го и (k+1)-го шага не станет меньше e.

 

 

 



 

5.4 Цикл с постпроверкой условия

Оператор цикла с постпроверкой условия имеет следующий формат:



Repeat <тело цикла> Until <условие>

Здесь Repeat, Until – зарезервированные слова («Повторять», «пока не [выполнится условие]»);



<тело цикла> - произвольная последовательность операторов;

<условие> - выражение логического типа.

Операторы тела цикла всегда выполняются хотя бы один раз, после чего вычисляется значение <условие>: если его значение ложно (FALSE), операторы тела цикла повторяются, в противном случае оператор Repeat завершает свою работу.

Блок-схема данного оператора представлена на рис. 3.

 

Рис. 3 Блок-схема цикла с постпроверкой условия

 

 



Пример. Дано натуральное число N>10. Найти первую цифру даного числа.

 

 



 

6 Методические указания к выполнению работы

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

Например, в случае суммы ряда вида

cos(x)+cos(2x)+cos(3x)+…+cos(7x) 

общий вид слагаемого с номером k будет иметь вид cos(k*x), где k изменяется от 1 до 7.

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

Фрагмент программы нахождения указанной выше суммы ряда с помощью оператора FOR может иметь, например следующий вид:

s:=0;



for k:=1 to 7 do s:=s+cos(k*x);

writeln(‘сумма =’, s);

end.

С помощью оператора While:



s:=0;


k:=1;

while k<=7 do

begin

s:=s+cos(k*x);



k:=k+1;

end;


writeln(‘сумма =’, s);

end.


С помощью оператора Repeat:

s:=0;



k:=1;

repeat


s:=s+cos(k*x);

k:=k+1;


until k>7;

writeln(‘сумма =’, s);

end.

 

 



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

7.1  Что называется циклом, телом цикла?

7.2  Какие операторы цикла языка Pascal Вы знаете?

7.3  Приведите известные Вам форматы оператора For.

7.4  С каким шагом может изменяться параметр оператора For?

7.5  Как можно рассчитать число шагов в операторе For?

7.6  Поясните отличия в операторах цикла с предпроверкой и постпроверкой условий.

7.7  Какой формат имеет оператор While?

7.8  Приведите пример, когда тело цикла в операторе While не выполняется ни одного раза.

7.9  Приведите формат оператора Repeat.

7.10       Поясните, в каком случае прекращаются повторения в операторе Repeat.

 

 



БИБЛИОГРАФИЯ

1. Фаронов В.В. Турбо Паскаль 7.0. Начальный курс. – М.: Нолидж. – 2000. – 576 с.

2. Зуев Е.А. Система программирования Turbo Pascal. – М.: Радио и связь. – 1992. – 288 с.

3. Рубенкинг Н. Турбо Паскаль для Windows.– М.: Мир. - 1994. – 535 с.

4. Информатика. Базовый курс. Учебник для вузов/Под ред. С.В.Симонович – СПб: Питер.- 2000. – С.560 - 611.

 

 



 

5.   Приложение А

Варианты заданий для выполнения

Достарыңызбен бөлісу:




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет