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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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



Proc16. Описать функцию Sign(X) целого типа, возвращающую для веществен- ного числа X следующие значения:

–1, если X < 0; 0, если X = 0; 1, если X > 0.

С помощью этой функции найти значение выражения Sign(A) + Sign(B) для данных вещественных чисел A и B.

Proc17. Описать функцию RootCount(A, B, C) целого типа, определяющую ко- личество корней квадратного уравнения A · x 2 + B · x + C = 0 (A, B, C — веще- ственные параметры, A ¹ 0). С ее помощью найти количество корней для каждого из трех квадратных уравнений с данными коэффициентами. Ко- личество корней определять по значению дискриминанта: D = B 2 – 4· A · C.

Proc18. Описать функцию CircleS(R) вещественного типа, находящую площадь круга радиуса R (R — вещественное). С помощью этой функции найти площади трех кругов с данными радиусами. Площадь круга радиуса R вы- числяется по формуле S = p· R 2. В качестве значения p использовать 3.14.

Proc19. Описать функцию RingS(R 1, R 2) вещественного типа, находящую пло- щадь кольца, заключенного между двумя окружностями с общим центром и радиусами R 1 и R 2 (R 1 и R 2 — вещественные, R 1 > R 2). С ее помощью най- ти площади трех колец, для которых даны внешние и внутренние радиусы. Воспользоваться формулой площади круга радиуса R: S = p· R 2. В качестве значения p использовать 3.14.

Proc20. Описать функцию TriangleP(a, h), находящую периметр равнобедрен- ного треугольника по его основанию a и высоте h, проведенной к основа- нию (a и h — вещественные). С помощью этой функции найти периметры трех треугольников, для которых даны основания и высоты. Для нахожде- ния боковой стороны b треугольника использовать теорему Пифагора:

b 2 = (a /2)2 + h 2.


 

 

Proc21. Описать функцию SumRange(A, B) целого типа, находящую сумму всех целых чисел от A до B включительно (A и B — целые). Если A > B, то функция возвращает 0. С помощью этой функции найти суммы чисел от A до B и от B до C, если даны числа A, B, C.

Proc22. Описать функцию Calc(A, B, Op) вещественного типа, выполняющую над ненулевыми вещественными числами A и B одну из арифметических операций и возвращающую ее результат. Вид операции определяется це- лым параметром Op: 1 — вычитание, 2 — умножение, 3 — деление, ос- тальные значения — сложение. С помощью Calc выполнить для данных A и B операции, определяемые данными целыми N 1, N 2, N 3.

Proc23. Описать функцию Quarter(x, y) целого типа, определяющую номер ко- ординатной четверти, в которой находится точка с ненулевыми вещест- венными координатами (x, y). С помощью этой функции найти номера ко- ординатных четвертей для трех точек с данными ненулевыми координата- ми.

Proc24. Описать функцию Even(K) логического типа, возвращающую True, ес- ли целый параметр K является четным, и False в противном случае. С ее помощью найти количество четных чисел в наборе из 10 целых чисел.

Proc25. Описать функцию IsSquare(K) логического типа, возвращающую True, если целый параметр K (> 0) является квадратом некоторого целого числа, и False в противном случае. С ее помощью найти количество квадратов в наборе из 10 целых положительных чисел.

Proc26. Описать функцию IsPower5(K) логического типа, возвращающую True, если целый параметр K (> 0) является степенью числа 5, и False в против- ном случае. С ее помощью найти количество степеней числа 5 в наборе из 10 целых положительных чисел.

Proc27. Описать функцию IsPowerN(K, N) логического типа, возвращающую True, если целый параметр K (> 0) является степенью числа N (> 1), и False в противном случае. Дано число N (> 1) и набор из 10 целых положитель- ных чисел. С помощью функции IsPowerN найти количество степеней чис- ла N в данном наборе.

Proc28. Описать функцию IsPrime(N) логического типа, возвращающую True, если целый параметр N (> 1) является простым числом, и False в против- ном случае (число, большее 1, называется простым, если оно не имеет по- ложительных делителей, кроме 1 и самого себя). Дан набор из 10 целых чисел, больших 1. С помощью функции IsPrime найти количество простых чисел в данном наборе.

Proc29. Описать функцию DigitCount(K) целого типа, находящую количество цифр целого положительного числа K. Используя эту функцию, найти ко- личество цифр для каждого из пяти данных целых положительных чисел.


 

 

Proc30. Описать функцию DigitN(K, N) целого типа, возвращающую N -ю циф- ру целого положительного числа K (цифры в числе нумеруются справа на- лево). Если количество цифр в числе K меньше N, то функция возвращает

–1. Для каждого из пяти данных целых положительных чисел K 1, K 2, …, K 5

вызвать функцию DigitN с параметром N, изменяющимся от 1 до 5.

Proc31. Описать функцию IsPalindrome(K), возвращающую True, если целый параметр K (> 0) является палиндромом (то есть его запись читается оди- наково слева направо и справа налево), и False в противном случае. С ее помощью найти количество палиндромов в наборе из 10 целых положи- тельных чисел. При описании функции можно использовать функции DigitCount и DigitN из заданий Proc29 и Proc30.

Proc32. Описать функцию DegToRad(D) вещественного типа, находящую ве- личину угла в радианах, если дана его величина D в градусах (D — веще- ственное число, 0 < D < 360). Воспользоваться следующим соотношением: 180° = p радианов. В качестве значения p использовать 3.14. С помощью функции DegToRad перевести из градусов в радианы пять данных углов.

Proc33. Описать функцию RadToDeg(R) вещественного типа, находящую вели- чину угла в градусах, если дана его величина R в радианах (R — вещест- венное число, 0 < R < 2·p). Воспользоваться следующим соотношением: 180° = p радианов. В качестве значения p использовать 3.14. С помощью функции RadToDeg перевести из радианов в градусы пять данных углов.

Proc34. Описать функцию Fact(N) вещественного типа, вычисляющую значе- ние факториала N! = 1·2·…· N (N > 0 — параметр целого типа; веществен- ное возвращаемое значение используется для того, чтобы избежать цело- численного переполнения при больших значениях N). С помощью этой функции найти факториалы пяти данных целых чисел.

Proc35. Описать функцию Fact2(N) вещественного типа, вычисляющую двой- ной факториал:

N!! = 1·3·5·…· N, если N — нечетное;

N!! = 2·4·6·…· N, если N — четное

(N > 0 — параметр целого типа; вещественное возвращаемое значение ис- пользуется для того, чтобы избежать целочисленного переполнения при больших значениях N). С помощью этой функции найти двойные факториалы пяти данных целых чисел.

Proc36. Описать функцию Fib(N) целого типа, вычисляющую N -й элемент по- следовательности чисел Фибоначчи FK, которая описывается следующими формулами:

F 1 = 1, F 2 = 1, FK = FK –2 + FK –1, K = 3, 4, ….

Используя функцию Fib, найти пять чисел Фибоначчи с данными номера- ми N 1, N 2, …, N 5.


 

 

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

Proc37. Описать функцию Power1(A, B) вещественного типа, находящую вели- чину AB по формуле AB = exp(B ·ln(A)) (параметры A и B — вещественные). В случае нулевого или отрицательного параметра A функция возвращает 0. С помощью этой функции найти степени AP, BP, CP, если даны числа P, A, B, C.

Proc38. Описать функцию Power2(A, N) вещественного типа, находящую вели- чину AN (A — вещественный, N — целый параметр) по следующим форму- лам:

A 0 = 1;

AN = A · A ·…· A (N сомножителей), если N > 0;

AN = 1/(A · A ·…· A) (| N | сомножителей), если N < 0.

С помощью этой функции найти AK, AL, AM, если даны числа A, K, L, M.

Proc39. Используя функции Power1 и Power2 (задания Proc37 и Proc38), опи- сать функцию Power3(A, B) вещественного типа с вещественными пара- метрами, находящую AB следующим образом: если B имеет нулевую дроб- ную часть, то вызывается функция Power2(A, N), где N — переменная цело- го типа, равная числу B; иначе вызывается Power1(A, B). С помощью этой функции найти AP, BP, CP, если даны числа P, A, B, C.

Proc40. Описать функцию Exp1(x, e) вещественного типа (параметры x, e —

вещественные, e > 0), находящую приближенное значение функции exp(x): exp(x) = 1 + x + x 2/(2!) + x 3/(3!) + … + xn /(n!) + …

(n! = 1·2·…· n). В сумме учитывать все слагаемые, большие e. С помощью Exp1 найти приближенное значение экспоненты для данного x при шести данных e.

Proc41. Описать функцию Sin1(x, e) вещественного типа (параметры x, e —

вещественные, e > 0), находящую приближенное значение функции sin(x): sin(x) = xx 3/(3!) + x 5/(5!) – … + (–1) n · xn +1/((2· n +1)!) + ….

В сумме учитывать все слагаемые, модуль которых больше e. С помощью Sin1 найти приближенное значение синуса для данного x при шести дан- ных e.

Proc42. Описать функцию Cos1(x, e) вещественного типа (параметры x, e —

вещественные, e > 0), находящую приближенное значение функции cos(x): cos(x) = 1 – x 2/(2!) + x 4/(4!) – … + (–1) n · xn /((2· n)!) + ….

В сумме учитывать все слагаемые, модуль которых больше e. С помощью Cos1 найти приближенное значение косинуса для данного x при шести дан- ных e.


 

 

Proc43. Описать функцию Ln1(x, e) вещественного типа (параметры x, e — вещественные, | x | < 1, e > 0), находящую приближенное значение функции ln(1 + x):

ln(1 + x) = xx 2/2 + x 3/3 – … + (–1) n · xn +1/(n +1) + ….

В сумме учитывать все слагаемые, модуль которых больше e. С помощью Ln1 найти приближенное значение ln(1 + x) для данного x при шести дан- ных e.

Proc44. Описать функцию Arctg1(x, e) вещественного типа (параметры x, e — вещественные, | x | < 1, e > 0), находящую приближенное значение функции arctg(x):

arctg(x) = xx 3/3 + x 5/5 – … + (–1) n · xn +1/(2· n +1) + ….

В сумме учитывать все слагаемые, модуль которых больше e. С помощью Arctg1 найти приближенное значение arctg(x) для данного x при шести дан- ных e.

Proc45. Описать функцию Power4(x, a, e) вещественного типа (параметры x, a,

e — вещественные, | x | < 1; a, e > 0), находящую приближенное значение функции (1 + x) a:

(1 + x) a = 1 + a · x + a ·(a –1)· x 2/(2!) + … + a ·(a –1)·…·(an +1)· xn /(n!) + ….

В сумме учитывать все слагаемые, модуль которых больше e. С помощью Power4 найти приближенное значение (1 + x) a для данных x и a при шести данных e.

Proc46. Описать функцию GCD2(A, B) целого типа, находящую наибольший общий делитель (НОД, greatest common divisor) двух целых положитель- ных чисел A и B, используя алгоритм Евклида:

НОД(A, B) = НОД(B, A mod B), если B ¹ 0; НОД(A, 0) = A,

где «mod» обозначает операцию взятия остатка от деления. С помощью GCD2 найти наибольшие общие делители пар (A, B), (A, C), (A, D), если даны числа A, B, C, D.

Proc47. Используя функцию GCD2 из задания Proc46, описать процедуру Frac1(a, b, p, q), преобразующую дробь a / b к несократимому виду p / q (все параметры процедуры — целого типа, a и b — входные, p и q — выход- ные). Знак результирующей дроби p / q приписывается числителю (то есть q > 0). С помощью Frac1 найти несократимые дроби, равные a / b + c / d, a / b + e / f, a / b + g / h (числа a, b, c, d, e, f, g, h даны).

Proc48. Наименьшее общее кратное (least common multiple) двух целых поло- жительных чисел A и B равно A ·(B /НОД(A, B)), где НОД(A, B) — наиболь- ший общий делитель A и B. Используя функцию GCD2 (см. Proc46), опи- сать функцию LCM2(A, B) целого типа, находящую наименьшее общее


 

 

кратное чисел A и B. С помощью LCM2 найти наименьшие общие кратные пар (A, B), (A, C), (A, D), если даны числа A, B, C, D.

Proc49. Учитывая соотношение НОД(A, B, C) = НОД(НОД(A, B), C) и исполь- зуя функцию GCD2 (см. Proc46), описать функцию GCD3(A, B, C) целого типа, находящую наибольший общий делитель трех целых положительных чисел A, B, C. С помощью GCD3 найти наибольшие общие делители троек (A, B, C), (A, C, D) и (B, C, D), если даны числа A, B, C, D.

Proc50. Описать процедуру TimeToHMS(T, H, M, S), определяющую по време- ни T (в секундах) содержащееся в нем количество часов H, минут M и се- кунд S (T — входной, H, M и S — выходные параметры целого типа). Ис- пользуя эту процедуру, найти количество часов, минут и секунд для пяти данных отрезков времени T 1, T 2, …, T 5.

Proc51. Описать процедуру IncTime(H, M, S, T), которая увеличивает на T се- кунд время, заданное в часах H, минутах M и секундах S (H, M и S — вход- ные и выходные параметры, T — входной параметр; все параметры — це- лые положительные). Дано время (в часах H, минутах M, секундах S) и це- лое число T. Используя процедуру IncTime, увеличить данное время на T секунд и вывести новые значения H, M, S.

Proc52. Описать функцию IsLeapYear(Y) логического типа, которая возвращает True, если год Y (целое положительное число) является високосным, и False в противном случае. Вывести значение функции IsLeapYear для пяти данных значений параметра Y. Високосным считается год, делящийся на 4, за исключением тех годов, которые делятся на 100 и не делятся на 400.

Proc53. Используя функцию IsLeapYear из задания Proc52, описать функцию MonthDays(M, Y) целого типа, которая возвращает количество дней для M -го месяца года Y (1 £ M £ 12, Y > 0 — целые числа). Вывести значение функции MonthDays для данного года Y и месяцев M 1, M 2, M 3.

Proc54. Используя функцию MonthDays из задания Proc53, описать процедуру PrevDate(D, M, Y), которая по информации о правильной дате, включаю- щей день D, номер месяца M и год Y, определяет предыдущую дату (пара- метры целого типа D, M, Y являются одновременно входными и выходны- ми). Применить процедуру PrevDate к трем исходным датам и вывести по- лученные значения предыдущих дат.

Proc55. Используя функцию MonthDays из задания Proc53, описать процедуру NextDate(D, M, Y), которая по информации о правильной дате, включаю- щей день D, номер месяца M и год Y, определяет следующую дату (пара- метры целого типа D, M, Y являются одновременно входными и выходны- ми). Применить процедуру NextDate к трем исходным датам и вывести по- лученные значения следующих дат.


 

 

Proc56. Описать функцию Leng(xA, yA, xB, yB) вещественного типа, находящую длину отрезка AB на плоскости по координатам его концов:

| AB | =

(xA, yA, xB, yB — вещественные параметры). С помощью этой функции най- ти длины отрезков AB, AC, AD, если даны координаты точек A, B, C, D.

Proc57. Используя функцию Leng из задания Proc56, описать функцию Perim(xA, yA, xB, yB, xC, yC) вещественного типа, находящую периметр тре- угольника ABC по координатам его вершин (xA, yA, xB, yB, xC, yC — вещест- венные параметры). С помощью этой функции найти периметры треуголь- ников ABC, ABD, ACD, если даны координаты точек A, B, C, D.

Proc58. Используя функции Leng и Perim из заданий Proc56 и Proc57, описать функцию Area(xA, yA, xB, yB, xC, yC) вещественного типа, находящую пло- щадь треугольника ABC по формуле

SABC =,

где pполупериметр. С помощью этой функции найти площади тре- угольников ABC, ABD, ACD, если даны координаты точек A, B, C, D.

Proc59. Используя функции Leng и Area из заданий Proc56 и Proc58, описать функцию Dist(xP, yP, xA, yA, xB, yB) вещественного типа, находящую рас- стояние D (P, AB) от точки P до прямой AB по формуле

D (P, AB) = 2· SPAB /| AB |,

где SPAB — площадь треугольника PAB. С помощью этой функции найти расстояния от точки P до прямых AB, AC, BC, если даны координаты точек P, A, B, C.

Proc60. Используя функцию Dist из задания Proc59, описать процедуру Alti- tudes(xA, yA, xB, yB, xC, yC, hA, hB, hC), находящую высоты hA, hB, hC треуголь- ника ABC (выходные параметры), проведенные соответственно из вершин A, B, C (их координаты являются входными параметрами). С помощью этой процедуры найти высоты треугольников ABC, ABD, ACD, если даны координаты точек A, B, C, D.


 

 

Содержание

Предисловие........................................................................................................ 3

1. Обзор групп заданий...................................................................................... 5

2. Общие замечания о формулировках заданий................................................ 7

3. Ввод и вывод данных, оператор присваивания: группа Begin................... 10

4. Целые числа: группа Integer......................................................................... 14

5. Логические выражения: группа Boolean...................................................... 16

6. Условный оператор: группа If...................................................................... 19

7. Оператор выбора: группа Case.................................................................... 21

8. Цикл с параметром: группа For................................................................... 23

9. Цикл с условием: группа While.................................................................... 27

10. Последовательности: группа Series............................................................ 30

11. Процедуры и функции: группа Proc.......................................................... 34

11.1. Процедуры с числовыми параметрами..................................................................... 34

11.2. Функции с числовыми параметрами.......................................................................... 36

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

 



Поделиться:


Последнее изменение этой страницы: 2016-12-27; просмотров: 838; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.142.197.212 (0.062 с.)