Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Книга_мат_3_1

.pdf
Скачиваний:
29
Добавлен:
17.02.2016
Размер:
1.38 Mб
Скачать

знаменнику

поточного

доданку

–сума степенів, розпишемо дану суму:

 

 

 

1

 

 

 

1

 

 

 

1

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

0

5

2

1

5

3

4

2

5

4

4

3

5

3

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

І

представимо її

 

поточний

 

доданок add у вигляді. 1

 

Тоді

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(a

b)

 

i=0,1,2,3,…a=1,4,16,64,…;b=25,125,625,3125,… очевидні початкові прис-

ваювання a:=1, b:=25, add:=1/26і те, що ці велечини змінюються в тілі циклу a:=a*4, b;=b*5, add:=1/(a+b). Cумування в циклі виконується до тих пір, поки поточний доданок не менший заданої точності ( всі доданки додатні, тому модуль в умові опускаємо ).

Завдання 1

Скласти програму для розв‟язання задачі, використовуючи оператор циклу з передумовою.

1.Знайти и–перший відємний член послідовності cos(ctg n ), n=1,2,3,

2.Знайти найбільше додатне ціле число n, для кого виконується умова:

3n2-730n<5.

3.Знайти найбільше додатне ціле число n, для кого виконується умова:

.

4.Дано натуральне число n. Одержати найменше число вигляду , що перевищує n.

5. Дано дійсні та (

X 0 Підрахувати

наближене значення не-

скінченної суми з точністю до

 

 

 

 

 

 

 

2

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

2

 

 

3

 

 

 

 

 

 

 

 

 

6. Дано дійсні Х та (X). Підрахувати наближене значення нескінченної суми з точністю до

2

 

 

5

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

2

5

 

 

 

 

 

7. Дано дійсні Х та ( X). Підрахувати наближене значення нескінченної суми з точністю до

1

 

 

1

1

 

1

 

 

 

 

 

 

3

3

5 5

8.Дано додатнє дійсне число a (a<1). Знайти серед чисел виду

1

, n 0

 

2n

 

перше таке, що менше за а.

9.Знайти найбільше додатне ціле число n, для кого виконується умова:

.

31

10.Знайти найбільше додатне ціле число n, для кого виконується умова:

.

11.Дано ціле число m>1. Одержати найбільше число k, при якому

.

Під час обчислення результатів деяких експериментів виникає потреба отримання результату із заданою похибкою. Нехай результатом є нескінченна сума, що задається певною формулою, і відома похибка для знаходження наближеного значення результату . Вважатимемо, що необхідна точність досягнена, якщо додавання наступного доданка змінює суму на величину, меншу за . Обчислити:

12. .

13. .

14. .

15.Знайти найменше n (в градусах), при якому сума sin1°+ sin2°+ sin3°+ … + sinN° перевищить задане число а.

Завдання 2

Скласти програму для розв‟язання задачі із завдання 1, використовуючи оператор циклу з післяумовою .

Контрольні запитання

1.В яких випадках використовують умовні цикли?

2.Записати загальний вигляд циклу з передумовою. Як він працює?

3.Записати загальний вигляд циклу з післяумовою. Як він працює?

4.Чим цикл WHILE відрізняється від REPEAT?

32

Лабораторна робота № 6 “Циклічні оператори. Цикли з параметром”

Мета: сформувати знання і вміння використовувати при розв‟язуванні задач оператори повторення.

Питання для вивчення

1.Призначення циклічних операторів.

2.Цикли з параметром: конструкція, застосування. Типи циклічних змінних.

Теоретичні відомості

Призначення циклічних операторів

Цикли дозволяють багато разів виконувати окремий оператор або послідовність операторів, при цьому немає потреби записувати в тексті програми однакові оператори кілька раз.

В Паскалі існує три види операторів циклу: оператор циклу з передумовою, оператор циклу з післяумовою, оператор циклу з параметром.

Цикли з параметром: конструкція, застосування. Типи циклічних змінних

Перша з конструкцій, що дозволяє реалізувати повторення в Пас- каль-програмах називається циклом з параметром або з лічильником. В цьому операторі обов‟язково вказуються наступні параметри:

ім‟я змінної, в якій зберігається число повторень циклу (змінної циклу або лічильника циклу );

деяке початкове значення для змінної циклу (лічильника), яке вона отримує при першому виконанні циклу;

деяке кінцеве значення для змінної циклу, досягнувши якого повторе н- ня циклу припиняється ( умова завершення циклу ).

For змінна циклу:= початкове значення to (downto) кінце-

ве значення do

Begin

Оператор 1; Оператор 2;

Оператор N;

End;

В вищенаведеному записі циклу FOR…TO…DO змінна циклу (лічильник циклу) змінюється, збільшуючись до кінцевого значення.

Змінна циклу може змінюватись в протилежному напрямку - спадати.Для цього необхідно замінити зарезервоване слово TO на

33

DOWNTO. Таким чином, форма циклічної конструкції цикла з лічильником цілком визначає режим повторення.

Розглянемо застосування циклу з параметром.

Приклад 5. Знайти суму натуральних чисел від 1 до 50.

Program summing_up_1;

Var i,sum:integer;

Begin Sum:=0;

For i:=1 to 50 do Sum:=sum+i;

Writeln („Сума чисел від 1 до 50 дорівнює :‟,sum); End.

Завдання 1

Скласти програму, яка б виводила на екран таблицю значень функції. У завданні 1 – на проміжку [1..10] з кроком 1, а у завданні 2 – на проміжку

[0,1..1] з кроком 0,1

Підказка: x5

exp( 5* ln( x))

 

 

 

 

 

 

 

 

 

 

 

Варіант

 

Завдання 1

 

 

 

 

Завдання 2

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

y

 

 

1

 

x

2

 

 

y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

y

 

 

1

 

 

 

 

 

 

y

 

 

e

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

x2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

y

 

 

 

sin x

 

 

y

 

 

x

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

e

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

y

 

 

1

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

 

e x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

y

 

 

x2

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

e

x

1

 

 

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

e

x

 

 

 

e

x

 

y

 

 

x

 

 

 

 

 

 

 

y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

7

y

 

 

x

 

 

 

 

 

 

y

 

ex

 

 

 

e x

 

 

 

x 2

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

y

 

 

1

 

 

 

 

 

 

 

y

 

ex

 

 

 

e x

 

 

 

 

 

 

 

 

 

 

 

 

 

ex

 

 

 

e x

 

 

x

2

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

y

 

 

x

 

 

 

 

 

 

y

 

ex

 

 

 

e x

 

 

 

 

 

 

 

 

 

 

 

 

 

ex

 

 

 

e x

 

 

x

2

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

34

10

y

 

2x

1

 

x2

 

y

2arctg(x

1)

 

 

 

 

 

 

11

 

 

 

 

 

 

 

 

 

 

 

 

e

x

 

e

x

 

 

 

 

y

 

 

sin

x

 

 

 

 

y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2e x

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

12

 

 

 

 

 

 

 

 

 

 

 

 

e

x

 

e

x

 

 

 

 

y

 

 

 

sin x

1

 

 

y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ln 3

 

 

 

 

 

 

 

 

13

y

 

1

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

 

arccos

 

2x

 

 

 

 

 

 

 

 

 

 

 

x2

1

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

14

y

 

 

x

1

 

 

 

 

y

 

xe

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x2

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15

y

e x

2

 

 

 

 

y

arcsin

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Завдання 2

Контрольні запитання

1.В яких випадках використовують цикл?

2.Які оператори повторення є в мові Паскаль?

3.Записати загальний вигляд циклу з параметром. Як він працює?

4. Скількі разів виконається тіло циклу:For i:= 8 to 5 do s :=s+i ?

5.Яким буде значення параметра і після завершення циклу з пункту 4 ?

6.Чи можна в тілі циклу з параметром змінювати початкове або кінцеве значення параметру?

7.В яких випадках застосовуються цикли з параметром з кроком?

8.Як вони реалізуються?

9.Дані якого типу можна використати як параметр циклу FOR?

35

Лабораторна робота № 7 “Процедури та функції”

Мета: сформувати знання про структурні принципи побудови програм з використанням підпрограм, уміння застосовувати процедури та функції.

Питання для вивчення

1.Функції.

2.Процедури.

Теоретичні відомості

Функції

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

Приклад 8. Розглянемо задачу: обчислити мінімальну з відстаней між точками площини A(x1; y1), B(x2; y2) і C(x3; y3).

Алгоритм розв‟язання цієї задачі очевидний:

1)обчислити відстані d1=AB, d2=AC, d3=BC;

2)обчислити m= min{d1, d2, d3}.

Відстань між точками з довільними координатами (x; y), (x’; y’) ви-

ражається формулою d= (x x)2 ( y y)2 , і для обчислення відста-

ней нам необхідно тричі написати програмний варіант цієї формули з різними наборами координат: x1, y1, x2, y2, потім x1, y1, x3, y3, потім x2, y2, x3, y3. Ці вирази досить громіздкі й задають по суті ті самі обчислення, тільки з різними наборами значень. Все це можна записати інакше.

Отже, у мові Паскаль є описи обчислень і є їх позначення. Опис обчислень, як правило, є параметризованим. Конкретні значення, з якими

треба зробити обчислення, вказуються в позначенні обчислень разом із ім‟ям цього опису й називаються аргументами. Опис обчислень деякого значення називається функцією, а їх позначення – викликом функції.

У даному випадку параметрами будуть чотири координати двох точок. Назвемо їх a1, b1, a2, b2. Опис обчислень задається у вигляді функції, якій ми дамо ім‟я dd:

function dd(a1, b1, a2, b2: real):real; begin

dd:=sqrt( sqr(a1-a2)+sqr(b1-b2) ) end;

36

Цей опис є означенням імені dd, тому поміщається серед інших означень програми. Позначення цієї функції, тобто виклики її з конкре т- ними аргументами записуються в тілі програми:

program minimdis(input, output);

var x1, y1, x2, y2, d1, d2, d3, m : real; function dd(a1, b1, a2, b2: real):real; begin

dd:=sqrt( sqr(a1-a2)+sqr(b1-b2) ) end;

begin

writeln(„введіть координати двох точок:‟); readln(x1, y1, x2, y2);

d1:=dd(x1, y1, x2, y2); d2:=dd(x1, y1, 1, 2); d3:=dd(x2, y2, 1, 2);

if d1<d2 then m:=d1 else m:=d2; if d3<m then m:=d3; writeln(„найменша відстань: „, m) end.

При виконанні цієї програми після читання значень змінних виконується виклик функції dd: значення змінних x1, y1, x2, y2 присвоюються відповідним параметрам a1, b1, a2, b2 як звичайним змінним і потім обчислюється значення dd. Воно і є значенням виразу dd(x1, y1, x2, y2), що присвоюється змінній d1.

Так само, тільки з іншими аргументами, виконуються другий і третій виклики функції, і інші значення присвоюються змінним d2 і d3.

Отже, ми бачимо, що мова Паскаль дозволяє не тільки користуватися викликами "стандартних" функцій, наприклад, odd або sin, але й створювати свої власні.

Функція має такий загальний вигляд:

function ім’я(означення параметрів) : ім’я типу; означення

begin

послідовність операторів end;

У першому рядку функції записано заголовок, де вказано її ім‟я й означення параметрів. Наприкінці заголовка обов‟язково записується

ім‟я типу значень, що обчислюються в результаті виконання викликів функції. Ці значення називаються такими, що повертаються.

Параметрів у функції може не бути, тоді й дужки відсутні, а виклик такої функції є просто її ім ‟ям.

37

Після заголовка структура функції повторює структуру програми за винятком лише точки в кінці. У функції можна визначати свої змінні, сталі та функції. Проте функція істотно відрізняється від програми тим, що:

1)функція записується серед означень програми;

2)ім‟я самої програми ніде в програмі не вказується, тоді як серед опер а-

торів функції обов’язково повинні бути оператори присвоювання з

ім’ям функції в лівій частині, причому при виконанні виклику функції хоча б один із них повинен бути виконаним.

Виклик функції є виразом того типу, який указано в її заголовку . І

він, як усякий вираз, може бути частиною складнішого виразу. Наприклад, за необхідності ми могли б написати d1:=sqr(dd(x1, y1, 1, 2)+1).

Повернемося до прикладу. Нескладно написати функцію обчисле н- ня меншого з двох значень:

function min(x1, x2 : real):real; begin

if x1<x2 then min:=x1 else min:=x2

end;

і помістити її слідом за функцією dd у програмі minimdis. З її використанням обчислення мінімального зі значень змінних d1, d2, d3 можна в тілі

програми задати так:

 

m:=min(d1,

d2); m:=min(m,

d3)

або навіть так:

 

m:=min(min(d1, d2), d3)

 

При

обчисленні

останнього виразу спочатку виконується

"внутрішній" виклик min(d1, d2). Значення, обчислене при його виконанні, стає аргументом у "зовнішньому" виклику.

Процедури

Процедура – це незалежна частина програми, яка має свою назву і призначена для виконання певних дій. Вона складається з заголовку і тіла. По структурі її можна розглядати як програму в програмі, або програму в мініатюрі. На деякі тонкощі і нюанси при створенні і виклику процедур ми вкажемо на конкретних прикладах, а зараз лише наголосимо на тому факті, що ім‟я процедури не може знаходитись у виразі в якості операнда.

На відміну від функцій, при обміні відбувається не обчислення якогось одного значення, а змінюється стан пам‟яті програми. Тому такий опис оформляється й використовується інакше. Опис обміну задається

процедурою, а її виклик являє собою окремий оператор .

38

Процедура має загальний вигляд procedure ім’я(означення параметрів); означення імен

begin

послідовність операторів end;

Процедури поділяють на встроєні (стандартні) процедури мови і процедури користувача. Процедури користувача створюються програмістом у відповідності з правилами мови програмування:

1. Кожен ідентифікатор (назва змінної, процедури, ф ункції і т.д.) повинен бути описаний перед тим, як він буде використаний.

2.Областю дії ідентифікатора є блок в якому його описано.

3.Всі ідентифікатори в блоці повинні бути унікальними, тобто не повторюватись.

4.Один і той самий ідентифікатор може бути по -різному визначено в кожному окремому блоці.

5.Якщо ідентифікатор програми користувача співпадає з ім ‟ям стандартної процедури або функції, то останні недоступні в межах області дії підпрограми, описаної користувачем, тобто стандартна функція або процедура ігнорується, а виконується підпрограма користувача.

Процедура, як і функція, є означенням імені і записується серед означень програми. На відміну від функції, в її заголовку немає імені типу для значень, породжуваних у результаті виклику, тому що ніякі значення не породжуються. За цією ж причиною в тілі процедури не може бути операторів присвоювання з її ім’ям у лівій частині. Виклик процедури складається з імені й аргументів у дужках і записується як окремий опер а-

тор, наприклад, readln(x, y).

Отже, при виконанні виклику процедури (чи функції) спочатку па-

раметри одержують значення аргументів, а потім їх зміни ніяк не відб и-

ваються на аргументах. Тому параметри, що дотепер розглядалися, нази-

ваються параметрами-значеннями.

Мова Паскаль допускає в заголовках процедур і функцій означати параметри іншого виду. Вони називаються параметрами-змінними і

означаються зі словом var попереду. Таке означення параметрів забезпечує, що при виконанні виклику процедури або функції іменам параметрів ставляться у відповідність змінні, тобто ділянки пам ‟яті, уже зіставлені аргументам. При виконанні виклику зміна значення параметра -змінної насправді є зміною значення аргументу .

Як ми вже говорили, у викликах підпрограм вказуються аргументи – вирази, однотипні з параметрами. Але є суттєва відмінність між аргумен-

39

тами, що можуть відповідати параметрам -значенням і параметрам - змінним.

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

Аргументом для параметра-змінної може бути тільки ім’я змінної того ж типу, що й параметр.

У літературі часто параметри підпрограм називаються формальни-

ми параметрами, а аргументи у викликах – фактичними.

Завдання

До кожної задачі скласти дві програми. В першій використовуйте процедури, а в другій – функції.

1.Побудувати таблицю значень функції на вказаному інтервалі із заданим кроком:

 

 

 

 

x,

x

 

 

0;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.1. y

 

x2 ,

0

 

 

 

x

1;,

 

 

1, 2 ,

 

x

0,1

 

 

 

 

 

 

 

x3 ,

x

1;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1,

 

 

x

 

 

0;

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

1.2.

y

 

cos x,

0

 

 

x

 

 

 

;

 

 

,

,

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

;

 

 

2

2

10

 

 

 

1,

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1,

x

 

 

 

 

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.3.

y

 

sin x,

 

 

 

 

 

 

 

x

 

 

;

,

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

2

 

10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1,

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.4.

 

tgx,

 

 

 

 

 

x

 

 

 

;

 

 

 

 

 

 

 

 

 

 

 

 

y

4

 

 

 

4

 

 

 

 

,

,

 

x

 

 

 

 

4x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

,

в іншому випадку

 

 

 

10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x,

 

 

 

x

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.5.

y

1,

 

1

 

 

x

3

 

 

[0; 4],

 

x

0,25

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x 4, x 3

40

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