ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 10.07.2024
Просмотров: 136
Скачиваний: 0
∙В третьих, перед использованием оператора цикла необходимо будет приписать всем перемен- ным, участвующим в циклических вычислениях некие начальные значения. Переменная i до на- чала цикла должна получить свое первое значение равное 1.Переменная а (слагаемое) до начала цикла должна иметь значение, соответствующее первому слагаемому суммы, то есть ей необхо- димо присвоить значение равное -1. Переменной S, перед началом цикла следует присвоить зна- чение равное нулю.
∙В четвертых, поскольку при организации цикла с пред- или постусловием перебор параметров цикла (переменная i) следует производить программным образом, в теле цикла должен присутст- вовать оператор, обеспечивающий переход к следующему значению параметра цикла
i:= i + 1.
∙В пятых, с учетом особенностей операторов цикла с пред- и постусловием, в случае использо-
вания оператора цикла с предварительной проверкой условия тело цикла будет выполняться до тех пор, пока логическое условие в заголовке цикла истинно, выполнение будет прекращено, как только логическое условие становится ложным. При этом в теле цикла допускается только один оператор языка Паскаль и придется использовать составной оператор. В случае использования оператора цикла с постусловием тело цикла будет выполняться до тех пор, пока логическое ус- ловие в заголовке цикла является ложным, выполнение прекращается, как только условие стано- вится истинным. При этом в теле цикла допускается произвольная последовательность операто- ров языка Паскаль, и нет необходимости использовать составной оператор. Поэтому, в случае использования оператора цикла с предусловием, логическое условие следует формулировать в виде проверки на не превосходство значения слагаемого значения точности, а в случае исполь- зования оператора цикла с постусловием, логическое условие следует формулировать в виде про-
верки на превосходство значения слагаемого значения точности
∙В шестых, поскольку элементы ряда (слагаемые суммы) обладают свойством чередования зна- ка, при проверке условия достижения точности в операторе цикла необходимо использовать функцию модуля. С учетом этого условие для цикла с предусловием запишется в виде
ABS (a) >= eps,
а для цикла с постусловием – в виде
ABS (a) < eps.
∙ В седьмых, поскольку первое слагаемое в сумме не учтено до начала циклических вычислений, при организации цикла следует сначала добавить его к сумме, затем перейти к новому слагаемо- му, изменив значение параметра i, и только потом рассчитать новое слагаемое.
Сучетом этих особенностей реализация алгоритма на языке Паскаль выглядит так:
Сиспользованием цикла с предусловием:
Program TASK (input, output); |
{Заголовок программы} |
||
Const eps = 0.001; |
{Описание константы} |
||
Var a,s: real; i: integer; |
{Описание переменных} |
||
Begin |
{Начало программы} |
||
Clrscr: |
{Процедура очистки экрана} |
||
Writeln(’Программа расчета суммы’); |
{Вывод пояснений к программе} |
||
i:= 1; a:= -1; S:= 0; |
{Установка начальных значений } |
||
While ABS(a) >= eps do begin |
{Заголовок цикла } |
||
S:= S+a; |
{Добавление слагаемого в сумму} |
||
i:= i + 1; |
{Переход к новому параметру цикла} |
||
a:=(-1)/i*a; end; |
{Расчет слагаемого } |
||
Writeln(’Сумма |
|
|
{Вывод результата на экран} |
равна, S = ’,S:6:4); |
|||
Repeat Until Keypressed; |
{Процедура «задержки» экрана } |
||
End. |
{Конец программы} |
- 27 -
С использованием цикла с постусловием:
Program TASK (input, output); |
{Заголовок программы} |
Const eps = 0.001; |
{Описание константы} |
Var a,s: real; i: integer; |
{Описание переменных} |
Begin |
{Начало программы} |
Clrscr: |
{Процедура очистки экрана} |
Writeln(’Программа расчета суммы’); |
{Вывод пояснений к программе} |
i:= 1; a:= -1; S:= 0; |
{Установка начальных значений } |
Repeat |
{Заголовок цикла } |
S:= S+a; |
{Добавление слагаемого в сумму} |
i:= i + 1; |
{Переход к новому параметру цикла} |
a:=(-1)/i*a; |
{Расчет слагаемого } |
Until ABS(a) < eps; |
{Заголовок цикла} |
Writeln(’Сумма равна, S = ’,S:6:4); |
{Вывод результата на экран} |
Repeat Until Keypressed; |
{Процедура «задержки» экрана } |
End. |
{Конец программы} |
- 28 -
Задание 1. Задачи для самостоятельного решения
Вариант задания выбирается по последней цифре номера зачетной книжки.
Составить блок-схему алгоритма и программу на языке Turbo Pascal для расчета таб- лицы заданной функции на отрезке [а, b] с шагом h.
Вариант |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Функция |
|
Отрезок |
Шаг |
1 |
ì |
|
|
|
|
|
ex , |
x > 5, |
|
|
|
|||||||||||||||||||||
|
ï |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[-10,10] |
h = 0,2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x, 0 < x £ 5, |
|
||||||||||||||
|
y = í3x2 - 8 |
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||
|
ï |
|
|
|
|
|
tg 4x, |
|
|
|
x £ 0. |
|
|
|
||||||||||||||||||
|
î |
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
2 |
ì(4x + 2)× |
|
9 -3x |
|
, x >10, |
|
|
|
||||||||||||||||||||||||
|
|
|
|
|
||||||||||||||||||||||||||||
|
ï |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[-20,20] |
h = 0,1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
3x2 - 7x, 5 < x £10, |
|
||||||||||||||||||||||||||||
|
y = í |
3 |
|
|
||||||||||||||||||||||||||||
|
ï |
|
|
|
|
|
|
e |
3x |
, |
|
|
|
|
x £ 5. |
|
|
|
||||||||||||||
|
î |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
ì(x + 5)× 4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
2x -5x2 , x >1, |
|
|
|
|||||||||||||||||||||||||||
|
ï |
|
|
|
|
|
2x2 , 0 < x £1, |
|
[-2,2] |
h = 0,05 |
||||||||||||||||||||||
|
y = í |
|
|
|
|
|
|
|||||||||||||||||||||||||
|
ï |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4x + 8, |
|
|
|
x £ 0. |
|
|
|
||||||||||||||||||
|
ï |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
î |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
ì |
|
|
|
|
|
|
|
esin x , |
x > 2, |
|
|
|
|||||||||||||||||||
|
ï |
|
|
|
|
3x -8 |
|
|
|
|
×tg 2 x, - 2 < x £ 2, |
|
[-4,7] |
h = 0,1 |
||||||||||||||||||
|
y = í5× |
|
|
|
|
|
|
|||||||||||||||||||||||||
|
ï |
|
|
|
|
|
2x + 3, |
|
x £ -2. |
|
|
|
||||||||||||||||||||
|
î |
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||
5 |
ì |
|
|
|
|
|
x3 + 5x2 , x > 5, |
|
|
|
||||||||||||||||||||||
|
ï |
8x2 × tg3 2x, 0 < x £ 5, |
|
[-10,10] |
h = 0,2 |
|||||||||||||||||||||||||||
|
y = í |
|
||||||||||||||||||||||||||||||
|
ï |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4x - 2sin 5x |
|
, x £ 0. |
|
|
|
||||||||||||||||||||||||
|
|
|
|
|
|
|
||||||||||||||||||||||||||
|
î |
|
|
|
|
|
|
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
ì |
|
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
x > 4, |
|
|
|
||||||||||||
|
x + 5, |
|
|
|
|
|
||||||||||||||||||||||||||
|
ï |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[0,10] |
h = 0,5 |
|
y = ícos3x, 2 < x £ 4, |
|
||||||||||||||||||||||||||||||
|
ï |
|
|
Sin x, |
|
|
x £ 2. |
|
|
|
||||||||||||||||||||||
|
î |
|
|
|
|
|
|
|
||||||||||||||||||||||||
7 |
ì ln |
|
3x - 8 |
|
, |
|
|
x > 3, |
|
|
|
|||||||||||||||||||||
|
|
|
|
|
|
|||||||||||||||||||||||||||
|
ï |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[-1,11] |
h = 0,2 |
|
|
x2 , 1 < x £ 3, |
|
|||||||||||||||||||||||||||||
|
y = í |
|
|
|||||||||||||||||||||||||||||
|
ï |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Sin x |
|
, |
|
|
|
|
|
x £ 1. |
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||
|
î |
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
ì |
2x2 + 5 |
|
|
|
|
|
, x > 7, |
|
|
|
|||||||||||||||||||||
3x |
|
|
|
|||||||||||||||||||||||||||||
|
ï |
|
|
|
|
23x , 3 < x £ 7, |
|
[0,10] |
h = 0,2 |
|||||||||||||||||||||||
|
y = í |
|
|
|
|
|
||||||||||||||||||||||||||
|
ï3 |
|
|
|
|
, x £ 3. |
|
|
|
|||||||||||||||||||||||
|
5x2 ×tg3x |
|
|
|
||||||||||||||||||||||||||||
|
î |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
ìarctg(1- 2x), |
|
x > 0, |
|
|
|
||||||||||||||||||||||||||
|
ï |
|
|
|
|
x2 , - 5 < x £ 0, |
|
[-10,10] |
h = 0,5 |
|||||||||||||||||||||||
|
y = í |
|
|
|
|
|
||||||||||||||||||||||||||
|
ï |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Sin |
|
x |
|
, |
|
|
|
x £ -5. |
|
|
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||
|
î |
|
|
|
|
|
|
|
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
ì x + 5, x >10, |
|
|
|
||||||||||||||||||||||||||||
|
ï |
|
2 |
, 5 |
< x |
£10, |
|
|
[-15,15] |
h = 0,2 |
||||||||||||||||||||||
|
y = íx |
|
|
|
|
|||||||||||||||||||||||||||
|
ï |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x £ 5. |
|
|
|
|||||||||||
|
î Sin x, |
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- 29 - |
|
|
Задание 2. Задачи для самостоятельного решения
Вариант задания выбирается по предпоследней цифре номера зачетной книжки.
Составить программу на языке Turbo Pascal для вычисления значения бесконечной
суммы с заданной точностью
Вариант |
|
|
|
|
|
|
|
|
Сумма |
Точность |
1 |
∞ |
(-2) i |
|
|
|
|
|
|
ε = 0.001 |
|
|
S = å |
i! |
|
|
|
|
|
|
||
|
i = 0 |
|
|
|
|
|
|
|
||
2 |
∞ |
(-5) i |
|
|
|
|
|
|
ε = 0.001 |
|
|
S = å |
(2i)! |
|
|
|
|
|
|
||
|
i = 0 |
|
|
|
|
|
|
|
||
3 |
∞ |
(-3) |
i |
|
||||||
S = å |
|
|
|
|
|
ε = 0.001 |
||||
|
(2i +1)! |
|||||||||
|
i = 0 |
|
||||||||
4 |
∞ |
(-4) i |
|
|
|
|
|
|
ε = 0.001 |
|
|
S = å |
i! |
|
|
|
|
|
|
||
|
i = 2 |
|
|
|
|
|
|
|
||
5 |
∞ |
(-1) i |
|
|
|
|
|
|
ε = 0.001 |
|
|
S = å |
(3i)! |
|
|
|
|
|
|
||
|
i =1 |
|
|
|
|
|
|
|
||
6 |
∞ |
(-7) i |
|
|
|
|
|
|
ε = 0.001 |
|
|
S = å |
i! |
|
|
|
|
|
|
||
|
i = 2 |
|
|
|
|
|
|
|
||
7 |
∞ |
(-1) i (2i) |
|
|||||||
|
S = å |
|
|
|
|
|
|
|
|
ε = 0.001 |
|
|
i! |
|
|
|
|
|
|||
|
i =1 |
|
|
|
|
|
|
|||
8 |
∞ |
(-1) i (5i2 ) |
|
|||||||
|
S = å |
|
|
|
|
|
|
|
|
ε = 0.001 |
|
|
i! |
||||||||
|
i =1 |
|
||||||||
9 |
∞ |
(-1) |
i |
|
|
|
|
|
|
|
S = å |
|
|
|
|
|
|
ε = 0.001 |
|||
|
(i +1)! |
|||||||||
|
i =1 |
|
||||||||
10 |
∞ |
(-3) i (2i) |
|
|||||||
|
S = å |
|
|
|
|
|
|
|
|
ε = 0.001 |
|
|
i! |
|
|
|
|
|
|||
|
i = 2 |
|
|
|
|
|
|
- 30 -
Тема 3
Регулярный тип данных (тип – массив)
Краткая теория
Массив- представляет собой пронумерованную последовательность данных одного и того же ти- па, снабженных индексами (иногда этот тип называют – табличным или регулярным типом).
Основные характеристики этого типа:
1- число компонентов всегда заранее известно; 2- все компоненты массива имеют один и тот же тип;
3- отдельные компоненты отделяются с помощью индекса.
При описании массива указывается его имя, число его компонентов которое остается постоянным во время всего выполнения программы и указывается тип компонентов. Все компоненты массива имеют общее имя и отделяются только индексами. В описании регулярный тип имеет следующий вид:
type <имя регулярного типа> = array [<тип индекса>] of <тип компонент>;
type vector= array[1.. 3] of real; var a, b, c : vector ;
или
matr = array [1.. 3, 1..3] of real;
Доступ к компонентам массива осуществляется указанием имени массива, за которым в квад- ратных скобках следует значение индекса (или индексов).
a = ( ax ay az) = (a1 a2 a3) |
→ |
аi - A[i] |
Размерность массива может быть любой. Компоненты массива могут быть любого (в том числе и структурированного) типа. В качестве типа индекса может выступать любой скалярный тип, кроме вещественного и типа LongInt, так как число компонент должно быть заранее известно. Вместо це- лого типа используют ограничение на целый тип. Можно использовать символьный, перечислимый, логический типы. При этом, индексы могут быть как значениями-постоянными, так и значениями- переменными и выражениями.
Например:
type vector= array[1..3] of real; var a, b, c : vector ;
a[1], c[3], b[i], b[i+1]
Кроме операции присваивания над полной переменной регулярного типа не разрешено ни одно действие. Одному массиву можно присвоить значения другого массива а:=b, но в этом случае следу- ет помнить, что операция присваивания выполняется только для идентичных массивов
var A,B: array [1..3] of integer; C: array [1..3] of real;
A:=B;
A:=C; - не допустимо!
- 31 -