Функции

  • docx
  • 11.11.2021
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала Л2-00658.docx

 Функции

Базовый уровень

Задание: написать блок-схему и программу согласно заданию.

 

вар.

Задача

 

1

Рассчитать значение х определив и использовав необходимую функцию

x =    5 + 5 +   12 + 12 +    19 + 19

2               2                 2       .

 

2

Рассчитать значение y определив и использовав необходимую функцию

y = 1 + sin 1 + 3 + sin 3 + 5 + sin 5 3               3               3       .

3

Рассчитать значение z=max(a,2b)+max(2a-b,b) определив и использовав

функцию max(x,y) максимальное из двух чисел.

 

4

Рассчитать значение х определив и использовав необходимую функцию

x =    5 + 5 +    12 + 12 +    19 + 19

7 + 7         8 + 8           2 + 2 .

 

5

Рассчитать значение y определив и использовав необходимую функцию

y = 2 + sin 2 + 6 + sin 6 + 1 + sin 1 sin 5 + 5     sin 3 + 3     sin 4 + 4 .

6

Рассчитать значение z=min(2a,b+a)+min(2a-b,b) определив и использо-

вав функцию Min(x,y) минимальное из двух чисел.

 

7

Рассчитать значение х определив и использовав необходимую функцию

x =    8 + 15 +    6 + 12 +    7 + 21

15 + 8       12 + 6        21 + 7 .

 

8

Задан треугольник ABC длинами своих сторон a,b,c. Найти его медианы,

написав функцию вычисления медианы 0,5  2b2 + 2c 2 - a 2  (для стороны a). Стороны a,b,c ввести с экрана.

 

9

Рассчитать значение z=sing(x)+sing(y) определив и использовав функ- цию sing(a) равную sing(a) =-1 при а<0, sing(a) =0 при а=0, sing(a) =1

при а>0 .

 

10

Даны основание и высота двух равнобедренны трапеций. Найти сумму

их периметров. (Определить функцию для расчета периметра равнобед- ренной трапеции по ее основанию и высоте).

11

Написать программу определения периметра треугольника, заданного

координатами его вершин. Длину стороны определять с помощью функции.

 

12

Написать программу определения площади пятиугольника с заданными координатами его вершин (x1,y1), (x2,y2), (x3,y3), (x4,y4), (x5,y5) как сумму площадей трех треугольников. Площадь треугольника, определенную по

координатам вершин, рассчитать с помощью функции.


вар.

Задача

13

Даны 8 различных чисел. Определить максимальное из них, используя

функцию определения максимального из двух чисел.

14

Найти все двухзначные простые числа, определив функцию для вычис-

ления простых чисел.

 

15

2 × 5!+3 × 8!

Найти значения выражения    6!+4!    , где n! означает факториал, опреде- лив функцию для расчета факториала.

16

Найти площадь прямоугольного треугольника АВС, заданного координа-

тами вершин. Длину стороны определять с помощью функции.

 

17

Написать программу определения площади шестиугольника с заданными координатами его вершин (x1,y1), (x2,y2), (x3,y3), (x4,y4), (x5,y5),(x6,y6) как

сумму площадей четырех треугольников Площадь треугольника, опреде- ленную по координатам вершин, рассчитать с помощью функции.

18

Найти сумму цифр двух целых двухзначных чисел a и b, написав функ-

цию определения цифр в числе.

 

19

Найти значения выражения sh(x)tg(x + 1) - ctg2 (2 + sh( x - 1)) , определив

e x - e- x

sh(x) =

функцию                2       . Значение x ввести с экрана.

20

Дан массив m целых чисел. Написать программу определения средне-

арифметического этих чисел используя функцию.

21

Дан массив целых чисел A. Найти суммы положительных и отрицатель-

ных элементов массива, используя функцию определения суммы.

22

Рассчитать значение z=modd(x)-modd(y) определив и использовав

функцию modd(a) равную modd(a) =a при а>=0, modd(a) =-a при а<0.

 

23

Треугольник задан координатами его вершин. Определить вид треуголь-

ника (равнобедренный, равносторонний , прямоугольный или обычный). Длину стороны определять с помощью функции.

 

24

Определить первую космическую скорость Земли и Венеры, используя функцию расчета этой скорости v=√(G*M)/R□(гравитационная постоян- ная G=6.67 10-11 кг-1 м3 сек-3, масса и радиус Венеры Мv=4.86 1027 г,

Rv=6175 км; Земли Mz=5.98 1027 г, Rz=6371 км).

 

 

25

Написать программу определения максимального предельного заряда qmax для трех шаров с диаметром r1,r2, r3, используя функцию расчета максимального предельного заряда. Напряженность поля, при которой начинается ударная ионизация, равна E=3 МВ/м (qmax=E/(4πε0εr2)

ε0=8.85*10-12 Ф/м, ε=1).

 

26

В ЭВМ вводятся по очереди данные о росте N учащихся класса. Опреде-

лить средний рост учащихся в классе, используя функции расчета сред- него.

 

27

Даны два натуральных числа. Найти в каком из них больше цифр, ис- пользуя функцию определения количества цифр в числе.


вар.

Задача

 

28

Написать программу определения площади четырехугольника с задан- ными координатами его вершин (x1,y1), (x2,y2), (x3,y3), (x4,y4)   как сумму

площадей двух треугольников. Площадь треугольника, определенную по координатам вершин, рассчитать с помощью функции.

 

29

Написать программу определения проводника с максимальным сопро-

тивлением, если даны три проводника с удельным сопротивлением r1,r2,r3 и площадью сечения s1,s2,s3, используя функцию расчета сопро- тивления проводника.

 

30

Рассчитать значение y определив и использовав необходимую функцию

y = 1 + sin 4 + 7 + sin 5 + 3 + sin 2

sin 1 + 4    sin 7 + 5    sin 3 + 2 .

 

Средний уровень

Задание: написать блок-схему и программу согласно заданию.

 

вар.

Задача

 

1

Перевести заданное в десятичной системе число a в двоичную систему, используя функцию перевода.

 

2

Даны два натуральных числа. Найти наименьшее общее кратное этих чисел, используя функцию реализующую алгоритм Евклида.

 

3

Получить все четырехзначные счастливые номера. Счастливым называ- ется номер, у которого сумма первых двух цифр номера равна сумме последних двух цифр. Использовать функцию для расчета суммы цифр

двухзначного числа.

 

4

Написать программу определения максимального предельного заряда и потенциала для трех шаров с диаметром r1,r2, r3, используя функции расчета максимального предельного заряда и потенциала . Напряжен-

ность поля, при которой начинается ударная ионизация, равна 3 МВ/м.

5

Для заданного массива экспериментальных данных рассчитать диспер-

сию, используя функции определения среднего и дисперсии.

 

6

Получить все шестизначные счастливые номера. Счастливым называется номер, у которого сумма первых трех цифр номера равна сумме послед- них трех цифр. Использовать функцию для расчета суммы цифр трех-

значного числа.

 

7

Даны два натуральных числа. Определить , является хотя бы одно из них палиндромом ( число, которое читается одинаково слева направо и справа налево), используя функцию распознавания таких чисел


вар.

Задача

 

8

Даны два логических выражения Ø( X Ù Y ) Ú ( X Ù ØZ )        и X Ù Ø(ØY Ú Z ) Ú Y .

Составить таблицу истинности для этих выражений  (те для всех воз- можных значений переменных X,Y,Z), используя функции представления этих выражений

 

9

Рассчитать рабочий диапазон длин волн приемника, если емкость кон- денсатора в его колебательном контуре плавно изменяется от 50 до 500 пФ, а индуктивность катушки постоянна и равна 20 мкГн. Использовать

функцию для определения длины волны

10

Отсортировать по убыванию заданный массив чисел, используя функцию

сортировки.

11

Перевести заданное в двоичной системе число a в десятичную систему,

используя функцию перевода.

 

12

Даны два логических выражения (ØX Ù Z ) Ú (Y Ù ØZ ) и ØY Ú ( X Ù ØZ ) Ù Z . Составить таблицу истинности для этих выражений  (те для всех воз- можных значений переменных X,Y,Z), используя функции представления

этих выражений.

13

Отсортировать по возрастанию заданный массив чисел, исключив отри-

цательные числа. Использовать функцию сортировки.

 

14

Даны два натуральных числа a и b, обозначающие соответственно числи- тель и знаменатель дроби. Сократить дробь, используя функцию опреде-

ления наибольшего общего делителя.

 

15

В заданном массиве целых чисел найти максимальное и минимальное число, использую функции определения максимального и минимального

числа.

 

16

Задан одномерный массив из 16 элементов .Сформировать двухмерный массив 4×4, используя функцию преобразования любого одномерного массива в двухмерный массив размерностью n×n с добавлением нулевых

элементов.

 

17

Дана матрица-строка из 16 элементов , их всех ее элементов построить

верхнюю треугольную матрицу, использую функцию построения верхней треугольной матрицы.

 

18

Дана матрица-строка из 16 элементов , из всех ее элементов построить

нижнюю треугольную матрицу, используя функцию построения нижней треугольной матрицы.

 

19

Задан одномерный массив из 16 элементов. Сформировать двухмерный массив 4×4, в котором элементы увеличиваются слева направо, используя функции сортировки и преобразования одномерного массива в двухмер-

ный массив.

 

20

Дан одномерный массив вещественных чисел. Получить массив целых чисел и найти максимальное по модулю число, создав свою функцию

округления до ближайшего целого числа и функцию определения макси- мального.


вар.

Задача

 

 

21

Дана двухмерная матрица A размером n×m. Рассчитать нормы матрицы

||A||m и ||A||l матрицы, используя функции расчета этих норм (||A||m это максимальный элемент столбца, полученного из сумм модулей элементов строк матрица, ||A||l это максимальный элемент строки, полученной из сумм модулей элементов столбцов матрицы).

 

22

Дана двухмерная матрица A размером n×m .Рассчитать Евклидову норму

n       m

ååa 2

i, j

матрицы ||A||е, используя функции расчета этой нормы (||A||е=   i=1 j =1              )

 

 

23

4

S = ò (x3 + 2x 2 - 1)dx

Вычислить значение определенного интеграла       1                                                         по

n-1

S = hå(x3 + 2x 2 - 1)

i                  i

формуле        i=0                                              , где h=(4-1)/n, n заданное число точек

разбиения интервала интегрирования, для n=10 и 100. Подынтегральную функцию и формулу расчета интеграла представить в виде функций.

 

 

 

24

4

S = ò (3x3 + 2x 2 + x - 5)dx

Вычислить значение определенного интеграла       1                                                                         по

n-1

S = hå(3x3 + 2x 2 + x - 5)

i                  i

формуле        i=0                                                               , где h=(4-1)/n, n=10 заданное число

точек разбиения интервала интегрирования, а также по формуле точного решения этого интеграла. Результаты вывести на экран. Подынтеграль- ную функцию и формулу расчета интеграла представить в виде функций.

25

Написать программу, создающую таблицу истинности для 2, 3 или 4

логических переменных, использую функцию создания таблицы.

 

26

С помощью функции random(n) сгенерировать массив чисел от 0 до 50 и

определить количество четных и нечетных чисел в этом массиве. Для определения четных и нечетных чисел использовать функцию.

 

27

С помощью функции random(n) сгенерировать 3 массива чисел от 0 до 50

и определить сумму элементов каждого массива. Для определения суммы использовать функцию.

 

 

 

28

Рассчитать коэффициент корреляции по формуле Бравэ-Пирсона

n

                                      

1 å(xi  - x)( yi  - y) r =     i =1

n           σ xσ y                            , для двух одномерных массивов xn и yn, полученных в

результате эксперимента исследования связи между двумя характеристи- ками явления, x и y - среднеарифметическое, σ x и σ y - среднеквадратич-

ное отклонение. Среднеарифметическое и среднеквадратичное отклонение рассчитать с помощью функции.

29

Перевести заданное в десятичной системе число a в восьмеричную

систему, используя функцию перевода .


вар.

Задача

30

Перевести заданное в восьмеричной системе число a в десятичную

систему, используя функцию перевода.

 

Высокий уровень

Задание: написать блок-схему и программу согласно заданию.

Следует заметить, что практически все задания этой подгруппы можно легко решить и без использования рекурсии. Данное обстоятельство связано с тем, что в заданиях рассматриваются действительно простейшие примеры рекурсии, легко сводимые к итерационным алгоритмам. Более того, в некоторых случаях использование рекурсии приводит к неэффективным алгоритмам (см, напри- мер, задания 4 и 5). Однако, именно на подобных примерах проще всего полу- чить первоначальные навыки разработки рекурсивных алгоритмов.

 

вар.

Задача

 

1

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

числить факториалы и двойные факториалы пяти данных чисел.

 

 

2

Описать рекурсивную функцию PowerN(x,n) вещественного типа, находя- щую значение n-й степени числа x по формуле: x0 = 1, xn = x·xn–1 при n > 0, xn = 1 / xn при n < 0 (x >= 0 – вещественное число, n – целое). С помо- щью этой функции найти значения XN при 5 различных значениях N для

данного X .

 

 

3

Описать рекурсивную функцию SqrtK(x,k,n) вещественного типа, находя- щую приближенное значение корня k-й степени из числа x по формуле: y(0) = 1, y(n+1) = y(n) – (y(n) x / y(n)k–1) / k, где y(n) обозначает SqrtK(x,k,n) (x вещественный параметр, k и n целые; x > 0, k > 1, n > 0).

С помощью этой функции найти приближенные значения корня K степени из X при 6 различных значениях N для данных X и K .

 

 

4

Описать рекурсивную функцию FibRec(N) целого типа, вычисляющую N число Фибоначчи F(N) по формуле: F(1) = F(2) = 1, F(k) = F(k–2) + F(k–1), k = 3, 4, ... С помощью этой функции найти пять чисел Фибоначчи с указанными номерами и вывести эти числа вместе с количеством рекур-

сивных вызовов функции FibRec, потребовавшихся для их нахождения.

 

 

5

Описать рекурсивную функцию C(m,n) целого типа, находящую число сочетаний из n элементов по m, используя формулу: C(0,n) = C(n,n) = 1, C(m,n) = C(m,n–1) + C(m–1,n–1) при 0 < m < n (m и n целые параметры; n

> 0, 0 <= m <= n). Дано число N и пять различных значений M. Вывести числа C(M,N) вместе с количеством рекурсивных вызовов функции C, потребовавшихся для их нахождения.


вар.

Задача

 

 

6

Описать рекурсивную функцию NOD(A,B) целого типа, находящую наибольший общий делитель двух натуральных чисел A и B, используя алгоритм Евклида: NOD(A,B) = NOD(B mod A,A), если A <> 0; NOD(0,B) =

B. С помощью этой функции найти наибольшие общие делители пар A и B,

A и C, A и D, если даны числа A, B, C, D.

 

7

Описать рекурсивную функцию MinRec(A,N) вещественного типа, которая находит минимальный элемент вещественного массива A размера N, не

используя оператор цикла. С помощью функции MinRec1 найти мини- мальные элементы массивов A, B, C размера NA, NB, NC соответственно .

 

8

Описать рекурсивную функцию Digits(S) целого типа, находящую количе-

ство цифр в строке S без использования оператора цикла. С помощью этой функции найти количество цифр в данных пяти строках.

 

9

Описать рекурсивную функцию Simm(S) логического типа, проверяющую,

является ли симметричной строка S, без использования оператора цикла. С помощью этой функции проверить данные пяти строк .

 

 

10

Алгоритм сортировки фон Неймана. Упорядочить массив а1, а2,, аn по неубыванию с помощью алгоритма сортировки слияниями:

а) каждая пара соседних элементов сливается в одну группу из двух элементов (последняя группа может состоять из одного элемента);

б) каждая пара соседних двухэлементных групп сливается в одну четырех- элементную группу и т.д. При каждом слиянии новая укрупненная группа сортируется. Использовать функцию сортировки.

 

11

Задано положительное и отрицательное число в двоичной системе. Соста- вить программу вычисления суммы   этих чисел, используя функцию

сложения чисел в двоичной системе счисления.

 

12

Описать рекурсивную функцию Root (а, b, ε), которая методом деления отрезка пополам находит с точностью ε корень уравнения f(x) = 0 на отрезке [а, b] (считать, что ε > 0, а < b, f(a) - f(b) < 0 и f(x) непрерывная и

монотонная на отрезке [а, b] функция) .

 

13

Описать функцию min(X) для определения минимального элемента линей- ного массива X, введя вспомогательную рекурсивную функцию minl(k), находящую минимум среди последних элементов массива X, начиная с k-

го.

 

14

Описать рекурсивную логическую функцию Simm(S,I,J), проверяющую, является ли симметричной часть строки S, начинающаяся i и заканчи-

вающаяся j-м ее элементами .

 

15

Составить программу для нахождения числа, которое образуется из данно-

го натурального числа при записи его цифр в обратном порядке. Напри- мер, для числа 1234 получаем результат 4321 .

 

16

Составить программу для перевода данного натурального числа в р-ичную систему счисления (2 р 9).


вар.

Задача

 

17

Дана символьная строка, представляющая собой запись натурального

числа в p-ичной системе счисления (2 р 9). Составить программу для перевода этого числа в десятичную систему счисления.

18

Дано n различных натуральных чисел. Напечатать все перестановки этих

чисел.

 

 

19

Логическая функция возвращает True, если ее аргумент — простое число. Описать функцию, которая удаляет из строки все лишние пробелы. Пробе- лы считаются лишними, если их подряд идет более двух, если они стоят в

конце строки после последней точки, если стоят после открывающегося парного знака препинания.

 

 

20

Описать процедуру Smooth(A,N), заменяющую каждый элемент вещест- венного массива A размера N на его среднее арифметическое со своими соседями ("сглаживание массива"). Массив A входной и выходной параметр, N — входной параметр. С помощью этой процедуры выполнить пятикратное сглаживание данного массива A размера N, выводя на экран

результаты каждого сглаживания.

 

 

21

Описать процедуру Gauss(A,M,N,i1,i2,X), преобразующую вещественную матрицу A размера M×N следующим образом: из строки i1 вычитается строка i2, умноженная на вещественное число X. Двумерный массив A входной и выходной параметр, прочие параметры — входные. С помощью этой процедуры, используя в качестве вспомогательной первую строку, обнулить в остальных строках данной матрицы A размера M×N элементы

k-го столбца (число k дано, причем A[1,k] <> 0) .

 

 

22

Описать процедуру DelIJ(A,M,N,i,j), удаляющую из матрицы A размера M×N строку и столбец, содержащие элемент A[i,j] (если i > M или j > N, то матрица не изменяется). Двухмерный вещественный массив A и целые числа M (> 1), N (> 1) являются входными и выходными параметрами, i и j

входные параметры. Дана матрица A размера M × N и числа i, j. Приме- нить к матрице A процедуру DelIJ и вывести полученную матрицу.