Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика. В 2 ч. Ч. 2.pdf
Скачиваний:
0
Добавлен:
24.11.2025
Размер:
1.34 Mб
Скачать

else

//

в противном случае функция вычисляется

рекурсивно

 

 

NOD:=NOD(B mod A, A); end;

procedure TForm1.Button1Click(Sender: TObject); var a,b:longint; f:longint;

begin a:=StrToInt(edit1.Text); b:=StrToInt(edit2.Text); f:=NOD(a,b); Edit3.Text:=IntToStr(f);

end;

end.

5.Запустить проект на компиляцию и выполнение.

4.3.Содержание отчета

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

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

1.Что называется подпрограммой? В чем состоит сходство и различие подпрограмм-процедур и подпрограмм-функций в языке Object Pascal?

2.В чем различие между стандартными и определенными пользователем программами?

3.Опишите последовательность событий при вызове процедуры или функции.

4.Что называется параметром и каково его назначение? Что такое формальные и фактические параметры, какова их взаимосвязь?

5.Каковы отличия параметров-переменных от параметров-значений, особенности их описания и применения?

6.Чем различаются локальные и глобальные параметры? Какова область их действия?

7.Что такое рекурсия?

8.Каковы особенности параметров-процедур и параметров-функций?

62

4.5. Варианты заданий

Вариант 1

Задание 1. Написать программу для вычисления выражения z(x) =(sign(x) +sign(y)) sign(x + y) . При решении задачи определите и используйте

 

 

1,

x < 0,

 

 

 

 

 

 

x = 0,

 

 

 

функцию sign (знак числа): sign(x) = 0,

 

 

 

 

 

 

x > 0.

 

 

 

 

 

1,

 

 

 

Задание 2.

Написать процедуру

вычисления определенного интеграла

b

1

 

 

 

b a

(y0 + y1 +K+ yn ), где n

I = sin 2 x

dx методом прямоугольников:

I

1+ x2

 

a

 

 

 

n

– количество отрезков разбиения; y0 , y1,K, yn

– значения функции на концах

отрезков. Числа a и b – произвольные, вводятся с клавиатуры.

Задание 3*. Напишите рекурсивную функцию вычисления i -го число

Фибоначчи. Вычислите f (k), k =15, 20, 30, 40 . Функция

f (n) определена для

 

1, n =1

 

целых чисел следующим образом:

 

.

f (n) = n

 

f (n div 2), n 2

 

 

2

 

 

 

Вариант 2

 

 

 

 

 

 

 

Задание 1.

Написать

программу

вычисления

 

 

выражения

H (s,t) + (max(H 2 (s t, s t), H 4 (s t, s +t)) + H (1,1) , где

H (a,b) =

 

a

+

 

b

(a b)3 .

 

+b2

 

 

 

 

 

 

 

1

1+ a2

 

вычисление величин H (a,b) и max(a,b) оформить в виде

подпрограммы-

функции. Числа s и t вводятся с клавиатуры.

 

 

 

 

 

 

 

Задание 2.

Написать процедуру вычисления определенного

интеграла

I = bctg(x2 +4)dx

методом трапеций: I

b a

(y0 + 2 y1 +K+ 2 yn1 + yn ), где n

 

a

 

 

2 n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

количество отрезков разбиения; y0 , y1,K, yn – значения функции на концах отрезков. Числа a и b – произвольные, вводятся с клавиатуры.

63

Задание 3*. Создайте программу вычисления числа сочетаний из N по M .

Число сочетаний определяется по формуле CNM =

N!

 

.

Для вычисления

M!(N M )!

 

 

 

 

 

 

 

факториала напишите рекурсивную функцию.

 

 

 

 

 

 

 

 

Вариант 3

 

 

 

 

 

Задание 1.

Написать

программу

вычисления

выражения

u =

max2 (x, y, z)2x min(x, y, z)

 

по заданным с

клавиатуры

 

числам x, y, z .

sin 2 + max(x, y, z) / min(x, y, z)

 

 

 

 

 

 

 

Нахождение максимального и минимального значения из трех чисел оформить в виде подпрограмм-функций max(x, y, z) и min(x, y, z).

Задание 2. Написать процедуру вычисления определенного интеграла

b

3sin(x2

+1)dx по формуле Симпсона

 

b a

(y

 

 

 

 

 

 

 

 

),

I

0

+ 4 y

+ 2 y

2

+K+ 4 y

2n1

+ y

2n

 

 

 

6

n

1

 

 

 

 

a

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

где 2 n – количество отрезков разбиения;

y0 , y1,K, y2n

– значения функции на

концах отрезков. Числа a и b – произвольные, вводятся с клавиатуры.

 

 

 

 

Задание 3*. Написать программу нахождения наименьшего общего кратного (НОК) двух натуральных чисел, используя рекурсивный алгоритм нахождения наибольшего общего делителя как вспомогательный. Для любых натуральных

чисел a,

b справедливо тождество a b = НОД(a,b) HOK(a,b) .

 

 

 

 

 

 

Вариант 4

 

 

 

Задание 1.

Написать

программу

вычисления

выражения

 

 

x + y + z

 

 

 

 

 

 

min

 

, xyz, z

 

 

 

 

 

 

 

 

 

u =

 

3

 

. Нахождение максимального и минимального

max2

(x + y + z, xyz, y)+min(x, y, z)

 

 

 

 

значения из трех чисел оформить в виде подпрограмм-функций max(a,b,c) и min(a,b,c).

64

Задание 1.

b

I =

a

Задание 2. Написать процедуру вычисления

определенного

интеграла

cos x

dx

методом трапеций: I

b a

(y

0

+ 2 y

+K+ 2 y

n1

+ y

n

), где n

 

 

1+ x

 

2 n

1

 

 

 

 

 

 

 

 

 

 

 

количество отрезков разбиения; y0 , y1,K, yn – значения функции на концах отрезков. Числа a и b – произвольные, вводятся с клавиатуры.

Задание 3*. Написать рекурсивную функцию, которая по заданному вещественному n вычисляет величину xn согласно формуле

1, xn = 1n ,

x

x (xn1 ),

n = 0

n < 0 .

n > 0

Вариант 5

Даны координаты вершин многоугольника (x1, y1 ); (x2 , y2 );K(x5 , y5 ). Найти его периметр. Вычисление расстояния между вершинами оформить в виде подпрограммы-функции.

Задание 2. Написать

процедуру

вычисления

определенного

интеграла

I = b ln x dx по формуле Симпсона

 

I b a (y

0

+ 4 y

+ 2 y

2

+K+ 4 y

2n1

+ y

2n

),

x

 

 

 

 

 

6 n

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

где 2 n – количество отрезков разбиения;

y0 , y1,K, y2n – значения функции на

концах отрезков. Числа a и b – произвольные, вводятся с клавиатуры.

 

 

 

 

Задание 3*. Написать рекурсивную функцию, которая вычисляет y = k x

по

 

 

 

 

 

 

x

 

yn

 

 

 

 

 

 

 

 

следующей формуле: y0 =1;

yn+1 = yn +

 

 

ynk 1

. За ответ принять приближение,

 

 

 

 

 

k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

для которого выполняется условие

 

yn yn+1

 

< 0.0001.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

65

 

 

 

 

 

Вариант 6

 

 

 

 

 

 

 

Задание 1.

Даны

действительные числа s, t . Написать

программу

вычисления выражения

f (t,2s,1,17) + f (2,2,t,s t) .

 

Вычисление

функции

f (a,b,c) =

2a b sin c

оформить в виде подпрограммы-функции.

 

 

 

 

 

5 +

c

 

 

 

 

 

 

 

 

 

 

 

Задание 2.

Написать процедуру

вычисления

определенного

интеграла

b

 

 

 

 

 

b a

(y0 + y1 +K+ yn ), где n

I = 10.5 sin 2 xdx методом прямоугольников:

I

 

a

 

 

 

 

 

n

 

 

 

 

 

– количество отрезков разбиения; y0 , y1, K, yn

– значения функции на концах

отрезков. Числа a и b – произвольные, вводятся с клавиатуры.

 

 

Задание 3*. Задано

вещественное

число

a > 0 .

Вычислить

3 a 6 a2 +1

.

 

7 a

 

 

 

 

 

 

 

 

 

 

 

 

 

Вычисление корней y = k x оформить в виде подпрограммы. Корни вычислять с

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

точностью E = 0.00001 по итерационной формуле:

 

y0 = 1;

yn +1 =

yn +

 

yn

 

 

,

 

 

k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

приняв за ответ

приближение, для которого

 

y

y

 

<E.

Вычисление

yk

 

 

 

 

 

 

 

 

 

n+1

n

 

 

 

 

 

 

 

 

оформить в виде рекурсивной подпрограммы.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вариант 7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Задание 1.

Для двух квадратных уравнений

 

a x2 +b x + c = 0

 

и

 

 

 

 

 

 

 

 

 

 

1

1

 

1

 

 

 

 

a

2

x2 +b x +c

2

= 0

определить, имеют ли они общие корни.

Вывести на экран

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

корни уравнения, которые не совпадают. Решение уравнений оформить в виде

подпрограммы-функции. Числа a1,

b1, c1, a2 ,

b2 ,

c2 вводятся с клавиатуры.

 

Задание 2. Написать процедуру вычисления

определенного

интеграла

I = b ex 2 dx по формуле Симпсона

I

b a

(y

0

+ 4 y

+ 2 y

2

+K+ 4 y

2n1

+ y

2n

), где

 

 

6 n

 

1

 

 

 

 

a

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

66

2 n – количество отрезков разбиения; y0 , y1,K, y2n – значения функции на концах отрезков. Числа a и b – произвольные, вводятся с клавиатуры.

Задание 3*. Написать процедуру сложения двух дробей, результатом которого является несократимая правильная дробь. Использовать рекурсивную программу нахождения НОД.

Вариант 8

 

 

Задание 1.

 

Написать

программу

 

вычисления

 

 

 

выражения

 

 

 

 

 

 

 

ctg2 (2 +sh(x 1))

 

 

 

 

 

 

ex ex

 

 

 

 

 

sin x

 

 

 

sh x + tg(x +

1)

 

 

 

 

 

 

.

Вычисление

 

sh x =

 

2

;

 

tgx =

cos x

 

 

и

 

 

x +1

 

 

 

 

 

 

 

ctgx =

cos x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

оформить в виде подпрограммы-функции.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

sin x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Задание 2.

Написать

процедуру

вычисления определенного

 

интеграла

I =

b

 

x

 

dx методом прямоугольников: I

b a

(y0

+ y1

+K

+ yn ), где

 

n

 

 

 

 

 

 

 

 

 

 

 

 

acos3

x

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

количество отрезков разбиения; y0 , y1,K, yn

значения

функции

 

на концах

отрезков. Числа a и b – произвольные, вводятся с клавиатуры.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A

 

 

 

C

 

 

E

 

 

 

Задание 3*. Написать программу вычисления выражения

 

 

 

 

 

 

 

 

 

в

 

 

 

 

 

 

A C

F

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B +C

 

 

 

 

 

виде правильной дроби, где

 

 

A, B,C, E, F

– целые числа. Сложение двух дробей

оформить как подпрограмму-функцию. Использовать рекурсивную программу нахождения НОД.

67