Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Турбо Паскаль.doc
Скачиваний:
60
Добавлен:
23.09.2019
Размер:
939.52 Кб
Скачать

Задание

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

Вари ант

Функция

Условие

a

b

c

xn

x

n

1

1x2

x<1

x>2

–0,5

2

0

0,15

17

2

x<1,3

x=1,3

x>1,3

1,5

0,8

0,1

13

3

x<1,2

x=1,2

x>1,2

2,8

–0,3

1

1

0,05

17

4

x<1,4

x=1,4

x>1,4

1,65

0,7

0,1

14

5

x<1

x=1

1<x<2

x>2

2,3

0,2

0,2

14

6

x>a

x=a

x<a

2,5

1

0,5

9

7

bx<1

bx=1

bx>1

1,5

0,7

0,1

14

8

x>3,5

x 3,5

2

0,1

16

9

x>1

x1

20,3

0,5

0,1

15

10

x<0,5

x=0,5

x>0,5

2,2

0,2

0,2

10

Лабораторная работа №6 Программирование циклических алгоритмов с неизвестным числом повторений

Для организации циклов с заранее неизвестным числом повторений (а также и для организации циклов с известным числом повторений) используют оператор цикла с предусловием (оператор while) и оператор цикла с постусловием (оператор repeat). Вид оператора цикла с предусловием:

While b do s;

Здесь b – логическое выражение, s – тело цикла. При выполнении оператора сначала проверяется логическое выражение, а затем выполняется тело цикла, т.е. операторы циклической части. Цикл повторяется, пока логическое выражение истинно. Когда оно становится ложным, происходит выход из цикла. Если с самого начала логическое выражение ложно, тело цикла не выполнится ни разу. Если тело цикла является составным оператором, т. е. состоит из нескольких операторов, его необходимо ограничить операторными скобками begin и end.

Вид оператора цикла с постусловием:

repeat s until b;

Здесь s – тело цикла, b - логическое выражение. При выполнении оператора сначала выполняется тело цикла, а затем проверяется логическое выражение. Цикл повторяется, пока логическое выражение ложно. Когда оно становится истинным, происходит выход из цикла. Таким образом, если даже логическое условие изначально истинно, обеспечивается, по крайней мере, одно выполнение тела цикла.

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

Пример 1. Найти k, при котором значение суммы s=3+6+9+...+3k становится больше t при вводе t с клавиатуры.

Решение. Каждое слагаемое равно произведению числа 3 на порядковый номер этого слагаемого. Поэтому можно организовать цикл, в котором s находится путем прибавления предыдущего значения s к порядковому номеру слагаемого, умноженному на 3. В цикле также должен увеличиваться на единицу порядковый номер слагаемого. Перед циклом следует обнулить начальное значение s и задать начальное значение k. Выход из цикла происходит, когда s станет больше t. Поскольку количество повторений заранее неизвестно, можно использовать для организации цикла операторы While или Repeat, но нельзя использовать оператор For.

Существуют значения t (например, при t = –5), при которых цикл не должен быть выполнен ни разу. В этом случае для организации цикла надо использовать оператор While. Если производится суммирование, обязательно присвоить начальное значение s=0. Следует учесть, что сначала происходит увеличение k, а затем расчет s. Поэтому первоначальное значение k=0. Ниже приведён текст программы.

Uses Crt; {Подключение модуля crt}

Var {Описание переменных}

s,k:integer;

t:real;

Begin

Clrscr; {Очистка экрана}

Write('t= ');

Readln(t); {Ввод значения t}

s:=0; k:=0; {Начальные значения s и k}

While s<=t do {Начало цикла/проверка условия}

begin

k:=k+1; {Увеличение k в цикле}

s:=s+3*k; {Расчет s}

end; {Окончание цикла}

Writeln('k= ',k); {Вывод на экран найденного значения k}

Readln;

End.

Пример 2. Вывести на экран в два столбца угловые значения земных параллелей от экватора до Северного полюса через каждые 10 и соответствующие им длины параллелей, считая Землю идеальным шаром с радиусом 6370 км.

Решение. Длину земной параллели можно найти по формуле D=2rp=2rzcos(), где rp - радиус параллели, rz - радиус Земли,  - угловая величина параллели (см. рис). Длину следует рассчитывать и выводить на экран 10 раз по одной и той же формуле, изменяя только угол  (0, 10,…,90). Поэтому организуем цикл, в котором рассчитывается длина параллели и выводятся на экран значения угла и длины параллели. В цикле также необходимо увеличивать значение угла  на 10. Перед циклом следует задать начальное значение , равное 0.

Поскольку в Паскале тригонометрические функции рассчитываются от углов, выраженных в радианах, то угловую величину параллели следует переводить из градусов в радианы по выражению /180.

Число повторений в цикле известно (равно 10), поэтому для организации цикла можно использовать операторы For, While или Repeat.

Текст программы при использовании оператора Repeat:

Uses Crt;

Var

rz,alfa:integer;

dlina:real;

Begin

Clrscr; {Очистка экрана}

rz:=6370; {Значение радиуса Земли}

alfa:=0; {Начальное значение широты (экватор)}

Repeat {Начало цикла}

dlina:=rz*cos(alfa*pi/180)*2*pi; {Расчет длины параллели}

Writeln(alfa:3,' ',dlina:7:1); {Вывод на экран}

alfa:=alfa+10; {Увеличение широты}

Until alfa>90; {Конец цикла/проверка условия}

Readln;

End. {Конец программы}