М. Э. Абрамян Programming Taskbook


Дополнительные задания на процедуры и функции



Pdf көрінісі
бет14/66
Дата11.04.2023
өлшемі0,52 Mb.
#81497
1   ...   10   11   12   13   14   15   16   17   ...   66
Дополнительные задания на процедуры и функции
Proc37. Описать функцию Power1(AB) вещественного типа, находящую вели-
чину A
B
по формуле A
B
= exp(ln(A)) (параметры и — вещественные).
В случае нулевого или отрицательного параметра функция возвраща-
ет 0. С помощью этой функции найти степени A
P
B
P
C
P
, если даны
числа PABC.
Proc38. Описать функцию Power2(AN) вещественного типа, находящую ве-
личину A
N
(— вещественный, — целый параметр) по следующим
формулам:
A
0
= 1;
A
N
A·A·. . .·A (сомножителей), если > 0;
A
N
= 1/(A·A·. . .·A) (|N| сомножителей), если < 0.
С помощью этой функции найти A
K
A
L
A
M
, если даны числа AKLM.
Proc39. Используя функции Power1 и Power2 (задания Proc37 и Proc38), опи-
сать функцию Power3(AB) вещественного типа с вещественными па-
раметрами, находящую A
B
следующим образом: если имеет нулевую
дробную часть, то вызывается функция Power2(A, Round(B)); в против-
ном случае вызывается функция Power1(AB). С помощью этой функции
найти A
P
B
P
C
P
, если даны числа PABC.
Proc40

. Описать функцию Exp1(xε) вещественного типа (параметры xε
— вещественные, ε > 0), находящую приближенное значение функции
exp(x):
exp(x) = 1 + x
2
/(2!) + x
3
/(3!) + . . . x
n
/(n!) + . . .
(n! = 1·2·. . .·n). В сумме учитывать все слагаемые, большие ε. С помощью
Exp1 найти приближенное значение экспоненты для данного при шести
данных ε.
Proc41. Описать функцию Sin1(xε) вещественного типа (параметры xε 
вещественные, ε > 0), находящую приближенное значение функции sin(x):


38
М. Э. Абрамян. Электронный задачник Programming Taskbook 4.5
sin(x) = x − x
3
/(3!) + x
5
/(5!) − . . . + (1)
n
·x
2·n+1
/((2·n+1)!) + . . . .
В сумме учитывать все слагаемые, модуль которых больше ε. С помо-
щью Sin1 найти приближенное значение синуса для данного при шести
данных ε.
Proc42. Описать функцию Cos1(xε) вещественного типа (параметры xε 
вещественные, ε > 0), находящую приближенное значение функции cos(x):
cos(x) = 1 − x
2
/(2!) + x
4
/(4!) − . . . + (1)
n
·x
2·n
/((2·n)!) + . . . .
В сумме учитывать все слагаемые, модуль которых больше ε. С помощью
Cos1 найти приближенное значение косинуса для данного при шести
данных ε.
Proc43. Описать функцию Ln1(xε) вещественного типа (параметры xε 
вещественные, |x| < 1, ε > 0), находящую приближенное значение функции
ln(1 + x):
ln(1 + x) = x − x
2
/2 + x
3
/3 − . . . + (1)
n
·x
n+1
/(n+1) + . . . .
В сумме учитывать все слагаемые, модуль которых больше ε. С помощью
Ln1 найти приближенное значение ln(1 + x) для данного при шести
данных ε.
Proc44. Описать функцию Arctg1(xε) вещественного типа (параметры xε 
вещественные, |x| < 1, ε > 0), находящую приближенное значение функции
arctg(x):
arctg(x) = x − x
3
/3 + x
5
/5 − . . . + (1)
n
·x
2·n+1
/(2·n+1) + . . . .
В сумме учитывать все слагаемые, модуль которых больше ε. С помощью
Arctg1 найти приближенное значение arctg(x) для данного при шести
данных ε.
Proc45. Описать функцию Power4(xaε) вещественного типа (параметры x,
aε — вещественные, |x| < 1; aε > 0), находящую приближенное значение
функции (1 + x)
a
:
(1 + x)
a
= 1 + a·x (a−1)·x
2
/(2!) + . . . (a−1)·. . .·(a−n+1)·x
n
/(n!) + . . . .
В сумме учитывать все слагаемые, модуль которых больше ε. С помощью
Power4 найти приближенное значение (1 + x)
a
для данных и при шести
данных ε.
Proc46. Описать функцию NOD2(AB) целого типа, находящую наибольший
общий делитель (НОД) двух целых положительных чисел и B, используя
алгоритм Евклида:
НОД(AB) = НОД(Bmod B), если B 6= 0;
НОД(A, 0) = A.
С помощью этой функции найти наибольшие общие делители пар (AB),


Процедуры и функции
39
(AC), (AD), если даны числа ABCD.
Proc47. Используя функцию NOD2 из задания Proc46, описать процедуру
Frac1(abpq), преобразующую дробь a/к несократимому виду p/(все
параметры процедуры — целого типа, и — входные, и — выходные).
Знак результирующей дроби p/приписывается числителю (т. е. > 0). С
помощью Frac1 найти несократимые дроби, равные a/c/da/e/f,
a/g/(числа abcdefgданы).
Proc48. Учитывая, что наименьшее общее кратное двух целых положитель-
ных чисел и равно (B/НОД(AB)), где НОД(AB) — наибольший
общий делитель и B, и используя функцию NOD2 из задания Proc46,
описать функцию NOK2(AB) целого типа, находящую наименьшее об-
щее кратное чисел и B. С помощью NOK2 найти наименьшие общие
кратные пар (AB), (AC), (AD), если даны числа ABCD.
Proc49. Учитывая соотношение НОД(ABC) = НОД(НОД(AB), C) и исполь-
зуя функцию NOD2 из задания Proc46, описать функцию NOD3(ABC)
целого типа, находящую наибольший общий делитель трех целых поло-
жительных чисел ABC. С помощью этой функции найти наибольшие
общие делители троек (ABC), (ACD) и (BCD), если даны числа A,
BCD.
Proc50. Описать процедуру TimeToHMS(THMS), определяющую по вре-
мени (в секундах) содержащееся в нем количество часов H, минут и
секунд (— входной, Hи — выходные параметры целого типа).
Используя эту процедуру, найти количество часов, минут и секунд для
пяти данных отрезков времени T
1
T
2
. . .T
5
.
Proc51. Описать процедуру IncTime(HMST), которая увеличивает на се-
кунд время, заданное в часах H, минутах и секундах (Hи 
входные и выходные параметры, — входной параметр; все параметры —
целые положительные). Дано время (в часах H, минутах M, секундах S)
и целое число T. Используя процедуру IncTime, увеличить данное время
на секунд и вывести новые значения HMS.
Proc52. Описать функцию IsLeapYear() логического типа, которая возвраща-
ет
TRUE
, если год (целое положительное число) является високосным,
и
FALSE
в противном случае. Вывести значение функции IsLeapYear для
пяти данных значений параметра YВисокосным считается год, делящий-
ся на 4, за исключением тех годов, которые делятся на 100 и не делятся
на 400.


40
М. Э. Абрамян. Электронный задачник Programming Taskbook 4.5
Proc53. Используя функцию IsLeapYear из задания Proc52, описать функцию
MonthDays(M) целого типа, которая возвращает количество дней для
M-го месяца года (1 ≤ M ≤ 12, > 0 — целые числа). Вывести значение
функции MonthDays для данного года и месяцев M
1
M
2
M
3
.
Proc54. Используя функцию MonthDays из задания Proc53, описать процедуру
PrevDate(DM), которая по информации о правильной дате, включа-
ющей день D, номер месяца и год Y, определяет предыдущую дату
(параметры целого типа DMявляются одновременно входными и
выходными). Применить процедуру PrevDate к трем исходным датам и
вывести полученные значения предыдущих дат.
Proc55. Используя функцию MonthDays из задания Proc53, описать процедуру
NextDate(DM), которая по информации о правильной дате, включа-
ющей день D, номер месяца и год Y, определяет следующую дату
(параметры целого типа DMявляются одновременно входными и
выходными). Применить процедуру NextDate к трем исходным датам и
вывести полученные значения следующих дат.
Proc56. Описать функцию Leng(x
A
y
A
x
B
y
B
) вещественного типа, находя-
щую длину отрезка AB на плоскости по координатам его концов:
|AB| =
q
(x
A
− x
B
)
2
+ (y
A
− y
B
)
2
(x
A
y
A
x
B
y
B
— вещественные параметры). С помощью этой функции
найти длины отрезков ABACAD, если даны координаты точек ABCD.
Proc57. Используя функцию Leng из задания Proc56, описать функцию
Perim(x
A
y
A
x
B
y
B
x
C
y
C
) вещественного типа, находящую периметр
треугольника ABC по координатам его вершин (x
A
y
A
x
B
y
B
x
C
y
C

вещественные параметры). С помощью этой функции найти периметры
треугольников ABCABDACD, если даны координаты точек ABCD.
Proc58. Используя функции Leng и Perim из заданий Proc56 и Proc57, описать
функцию Area(x
A
y
A
x
B
y
B
x
C
y
C
) вещественного типа, находящую
площадь треугольника ABC по формуле
S
ABC
=

(p−|AB|)·(p−|AC|)·(p−|BC|),
где — полупериметр. С помощью этой функции найти площади тре-
угольников ABCABDACD, если даны координаты точек ABCD.
Proc59. Используя функции Leng и Area из заданий Proc56 и Proc58, описать
функцию Dist(x
P
y
P
x
A
y
A
x
B
y
B
) вещественного типа, находящую
расстояние D(PAB) от точки до прямой AB по формуле
D(PAB) = 2·S
P AB
/|AB|,


Минимумы и максимумы
41
где S
P AB
— площадь треугольника PAB. С помощью этой функции найти
расстояния от точки до прямых ABACBC, если даны координаты
точек PABC.
Proc60. Используя функцию Dist из задания Proc59, описать процедуру
Heights(x
A
y
A
x
B
y
B
x
C
y
C
h
A
h
B
h
C
), находящую высоты h
A
h
B
h
C
тре-
угольника ABC (выходные параметры), проведенные соответственно из
вершин AB(их координаты являются входными параметрами). С по-
мощью этой процедуры найти высоты треугольников ABCABDACD,
если даны координаты точек ABCD.


Достарыңызбен бөлісу:
1   ...   10   11   12   13   14   15   16   17   ...   66




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет