Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab8 pas.docx
Скачиваний:
14
Добавлен:
15.03.2016
Размер:
287.35 Кб
Скачать

Лабораторная работа 8

Разработка циклических программ с заданным числом повторений

3.1. Цель работы

Целью работы является освоение процесса разработки циклических программ с заданным (известным) числом повторений на языке TurboPascal.

3.2. Задание на лабораторную работу

Разработать программы с использованием оператора повтора (цикла) FOR

3.3. Требования к программе

Программа должна выводить:

сообщения-подсказки перед вводом данных;

сообщение о выводе результатов;

результаты в виде: <Имя_переменной> = <Значение_переменной>.

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

1. Получить вариант задания (п. 3.6).

2. Изучить правила использования оператора FOR для разработки циклических программ (п. 3.5).

3. Составить и отладить программу в соответствии с вариантом задания.

4. Ответить на контрольные вопросы (п. 3.8).

5. Оформить отчет.

3.5. Оператор повтора (цикла) FOR

Для программирования циклических вычислительных процессов с известным числом повторений в языке TurboPascalпредназначен оператор повтора (цикла) FOR. Оператор FOR состоит из заголовка и тела цикла. Синтаксическая диаграмма для данного оператора показана на рисунке 1.

Рисунок 1 – Синтаксическая диаграмма оператор повтора FOR

Как видно из диаграммы, оператор FORможет быть представлен в двух форматах:

For i:=N1 to N2 do S1; ...

или в форме

For i:=N1 downto N2 do <оператор>;...,

где Fordoзаголовок цикла;

i– управляющая переменная дискретного типа (Integer, Char, Boolean и др.); имя переменной может быть любым допустимым идентификатором,

N1, N2 – выражения, определяющие начальное и конечное значения управляющей переменной,

S1 – простой или составной оператор (тело цикла).

При использовании первой формы оператора FOR алгоритм работы следующий:

1) значению управляющей переменной присваивается начальное значение (i:=N1);

2) значение i сравнивается с конечным значением N2; если i <= N2, то выполняется оператор S1, затем переменная i принимает следующее значение из упорядоченной последовательности и п. 2 повторяется, в противном случае (т.е. если i > N2) передается управление оператору, следующему за оператором S1.

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

1) значению управляющей переменной присваивается начальное значение (i:=N1);

2) значение i сравнивается с конечным значением N2; если i >= N2, то выполняется оператор S1, затем переменная i принимает следующее значение из упорядоченной последовательности и п. 2 повторяется, в противном случае (т.е. если i < N2) передается управление оператору, следующему за оператором S1.

Ограничения оператора FOR:

  • выражения N1 и N2 должны иметь тип, совместимый с типом управляющей переменной;

  • в теле цикла запрещается изменять значение управляющей переменной;

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

Алгоритм подсчета суммы с использованием цикла с известным числом повторений. При подсчете суммы с использованием цикла с известным числом повторений (оператора FOR) следует обратить особое внимание на:

  1. первоначальное значение суммы

S:=0– так называемое обнуление;

  1. присваивание значению управляющей переменной iначального значения, выбор конечного значения управляющей переменной;

  2. подсчет суммы в цикле: S:=S+{meкyщee значение};

  3. счетчик i(управляющая переменная увеличивается на единицу от начального значения до конечного значения, т.е.i = i+1, при этом при каждом новом значенииiисполняется оператор внутри цикла).

Пример 1.Найти суммуNэлементов натурального ряда чисел:

Решение. Блок-схема алгоритма показана на рисунке 2.

Рисунок 2 – Блок-схема алгоритма к примеру 1

– ввод конечного значения управляющей переменной (здесь – количество элементов натурального ряда чисел);

– начальные условия;

– начало цикла;

– тело цикла;

– конец цикла;

– вывод результата.

Текст программы может выглядеть следующим образом:

program zadacha1; {вычисление суммы натуральных чисел}

var

n,s,i:integer;

begin

writeln (‘Введите натуральное число N=');

readln (n);

s:=0;

for i:=1 to n do

s:=s+i;

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

end.

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

  1. первоначальное значение произведения

р:=1;

  1. присваивание значению управляющей переменной iначального значения, выбор конечного значения управляющей переменной;

  2. подсчет произведения в цикле:

р:=р* {множитель}.

Классическим примером циклического алгоритма служит алгоритм для вычисления степени числа Y=Xn. Этот алгоритм может быть реализован на основе операции умножения. Например, табличное представление такого алгоритма, отражающего зависимостьYотXпри изменении показателя степениnот 1 до 3, представлено в таблице 1. В этой таблице показаны также рекуррентные соотношения междуYиX, определяющие как на каждом шаге зависит значениеYот значенияXи от значенияY, вычисленного на предыдущем шаге.

Таблица 1 – Рекуррентные соотношения при вычислении Y=Xn

Y[n]

Рекуррентные соотношения

Y[1]=Х

Y=X

Y[2]=X*X или Y[2]=Y[1]*X

Y=X*X или Y=Y*X

Y[3]=X*X*X или Y[3]=Y[2]*X

Y=X*X*X или Y=Y*X

Пример 2. Вычислитьаn (п > 0).

Решение. Входные данные:a– вещественное число, которое необходимо возвести в целую положительную степеньn.

Выходные данные: р (вещественное число) – результат возведения вещественного числа а в целую положительную степеньn.

Промежуточные данные: i– целочисленная переменная, принимающая значения от 1 доnс шагом 1, параметр цикла.

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

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

Рисунок 3 – Блок-схема алгоритма к примеру 2

– ввод вещественного числа a и значения степени n;

– начальные условия (для вычисления произведения);

– начало цикла;

– тело цикла (вычисление степени числа a на основе операции умножения числа самого на себя n раз в цикле);

– конец цикла;

– вывод результата.

Текст программы может выглядеть следующим образом:

var

a,p:real;

i,n:word;

begin .

write ('Введите основание степени а=');

readln (a);

write ('Введите показатель степени n=');

readln (n) ,

р:=1; {начальные условия}

for i:=l to n do

p:=p*a;

writeln ('P=', P:5:2);

readln;

end.

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

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

  1. внутренний (вложенный) цикл должен полностью укладываться в рабочую часть внешнего цикла;

  2. нельзя использовать одну и ту же переменную в качестве параметров внешнего и внутреннего циклов;

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

Наиболее часто конструкции с вложенными циклами применяются при решении задач обработки двумерных массивов (матриц).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]