На Горох
Информатика, 8 класс

§ 25. Стандартные функции

"Информатика", Поляков К.Ю., Еремин Е.А.

Объяснение темы В оглавлении: § 25. Стандартные функции

Кратко о теме

Стандартные функции — готовые операции языка Pascal: достаточно указать имя функции и аргумент, чтобы получить результат. Они помогают вычислять модули, степени, корни, значения тригонометрических и других выражений без описания алгоритма с нуля. Важно правильно записывать вызовы, учитывать типы и допустимые значения аргументов, а также помнить, что тригонометрические функции работают с углами в радианах. Для преобразования чисел пригодятся trunc и round, а для случайных значений — random.

Объяснение темы

Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.

Определения и обозначения

Стандартная функция — заранее встроенная в язык программирования операция, которую можно вызвать по имени, не описывая её алгоритм. Например, Pascal уже умеет находить квадратный корень или модуль числа. Это позволяет использовать готовые вычисления и не составлять для них отдельную последовательность команд.

Аргумент функции — значение или выражение в скобках после имени функции, над которым выполняется операция. В записи sqrt(x + 4) аргументом является всё выражение x + 4, а не только x. Благодаря аргументу одна и та же функция подходит для разных исходных данных.

Математические стандартные функции — встроенные функции для вычисления модуля, степени, корня, тригонометрических и показательных выражений. К ним относятся, например, abs, sqr, sqrt, sin и exp. Они нужны, чтобы математическую формулу можно было непосредственно записать в программе.

Функция округления — стандартная функция, преобразующая вещественное число в целое по определённому правилу. В Pascal для этого служат trunc и round, но правила у них разные. Выбор функции зависит от того, нужно ли отбросить дробную часть или округлить число до ближайшего целого.

Как это устроено

Вызов функции в Pascal записывают как имя, затем круглые скобки с аргументом: например, sqrt(a + b). Скобки показывают программе, какое значение нужно обработать, и отделяют аргумент от других частей выражения. Вызов возвращает результат, поэтому его можно присвоить переменной или использовать в вычислении, например c := sqrt(a) + 1.

Стандартные функции упрощают программу, потому что готовый вызов заменяет подробное описание алгоритма. Для вычисления квадратного корня не нужно самостоятельно подбирать число и проверять его возведение в квадрат: достаточно написать sqrt(x). Это делает запись короче и снижает вероятность ошибки в вычислительных шагах.

Функции abs, sqr и sqrt выполняют разные операции, хотя в названиях двух последних есть похожие буквы. abs(-5) даёт 5: функция убирает знак минус у отрицательного числа. sqr(5) даёт 25, а sqrt(25) — 5; аргумент sqrt должен быть неотрицательным, иначе вещественный результат в обычной арифметике не определён.

Функции sin, cos и arctan принимают углы и значения в радианной мере. Радианы нужны, потому что так устроены определения тригонометрических функций в математике и их вычисления в языках программирования: например, 90° нужно записать как π/2. У sin и cos аргумент может быть любым вещественным числом, а arctan(x) определена для любого вещественного x и возвращает угол.

trunc и round преобразуют вещественное число в целое, но делают это по-разному: trunc отбрасывает дробную часть, а round округляет до ближайшего целого. Поэтому, например, для 3,8 результаты будут 3 и 4 соответственно. random(n) возвращает псевдослучайное целое число от 0 до n − 1; число называется псевдослучайным, потому что его последовательность создаётся программным алгоритмом, а не возникает без правила.

Основные стандартные функции Pascal

ФункцияМатематическая записьНазначениеТип и ограничения аргументаТип результата
abs(x)|x|Вычисляет модульЦелый или вещественныйТот же числовой тип
sqr(x)x²Возводит в квадратЦелый или вещественныйЧисловой
sqrt(x)√xИзвлекает квадратный кореньВещественный, x ≥ 0Вещественный
sin(x)sin xВычисляет синусВещественный угол в радианахВещественный
cos(x)cos xВычисляет косинусВещественный угол в радианахВещественный
arctan(x)arctan xНаходит угол по значению тангенсаЛюбой вещественныйВещественный угол в радианах
ln(x)ln xВычисляет натуральный логарифмВещественный, x > 0Вещественный
exp(x)eˣВычисляет экспонентуВещественныйВещественный
trunc(x)Отбрасывание дробной частиОтбрасывает дробную часть числаВещественныйЦелый
round(x)Округление до целогоОкругляет до ближайшего целогоВещественныйЦелый
random(n)Целое число от 0 до n − 1Формирует псевдослучайное числоПоложительное целое nЦелый

Сначала найдите в таблице нужную операцию, затем проверьте, подходит ли аргумент по типу и области допустимых значений. Для random(n) верхняя граница результата не включается, а sin и cos ждут угол в радианах. Учитывайте также, что точные особенности типов могут зависеть от реализации Pascal.

Разбор задач

Вычисление выражения с модулем, корнем и квадратом

Условие: вычислить z = abs(−12) + sqrt(81) − sqr(2). Чтобы не перепутать операции, сначала отдельно найдём значение каждого вызова функции. Затем подставим результаты в исходное выражение и выполним сложение и вычитание.

  1. abs(−12) = 12, потому что модуль отрицательного числа равен положительному числу с той же величиной.
  2. sqrt(81) = 9, поскольку 9² = 81; также sqr(2) = 2² = 4.
  3. Подставим найденные значения: z = 12 + 9 − 4 = 17.

Итоговый ответ: z = 17. Проверка по смыслу помогает заметить возможную путаницу: квадратный корень из 81 равен 9, а не 81. При записи в Pascal выражение можно сохранить в переменную, если заранее выбрать подходящий числовой тип.

Синус и косинус угла

Условие: при a = π/4 вычислить y = sin(a) + cos(a) и вывести результат. Здесь π/4 — это угол в радианах, равный 45°. Для такого угла синус и косинус одинаковы и равны √2/2.

  1. Подставим угол в формулу: y = sin(π/4) + cos(π/4).
  2. Заменим функции известными значениями: y = √2/2 + √2/2 = √2.
  3. В Pascal зададим a как вещественную переменную и запишем y := sin(a) + cos(a), предварительно присвоив a значение π/4.

Результат равен √2, приблизительно 1,414. В записи программы π обычно не является отдельной числовой записью, поэтому можно использовать константу Pi, если она доступна, или задать её приближённое значение. Если подставить 45 вместо π/4, функции воспримут это как 45 радиан, и получится другой результат.

Гипотенуза и угол прямоугольного треугольника

Условие: по катетам x и y найти длину гипотенузы, угол между гипотенузой и первым катетом, а длину округлить до целого. Сначала используем теорему Пифагора, затем найдём тангенс угла как отношение противолежащего катета к прилежащему. Для угла формула arctan(y/x) подходит, если x ≠ 0; в прямоугольном треугольнике катеты положительны.

  1. Длина гипотенузы c = sqrt(sqr(x) + sqr(y)); проверяем, что выражение под корнем неотрицательно.
  2. Угол в радианах: α = arctan(y/x). Делить на ноль нельзя, поэтому проверяем x ≠ 0.
  3. Округляем длину: c₀ = round(c). В Pascal можно записать c := round(sqrt(sqr(x) + sqr(y))).

Ответ: c₀ — округлённая длина гипотенузы, α — угол в радианах. Если угол нужен в градусах, его переводят по формуле α · 180/π. Перед вычислением полезно проверить, что x и y положительны, а при необходимости отдельно округлить и угол.

Типичные ошибки

Записывают функцию без круглых скобок или забывают заключить аргумент в скобки, потому что переносят обозначения прямо из математической формулы. Но Pascal должен видеть, где начинается и заканчивается передаваемое выражение: правильно писать sqrt(x + 1). Проверка простая: после имени функции поставьте скобки и убедитесь, что внутри них находится весь аргумент.

Путают sqr(x) и sqrt(x), так как названия похожи. Первая функция возводит число в квадрат, вторая извлекает корень, поэтому sqr(3) = 9, а sqrt(9) = 3. Чтобы проверить запись, спросите себя, какое действие нужно выполнить: умножить число на себя или найти число, квадрат которого равен аргументу.

Передают отрицательное число в sqrt или ноль и отрицательное число в ln, не проверив область определения. Такая ошибка возникает, когда формулу переводят в программу, но забывают ограничения математической операции. До вызова функции проверьте условие x ≥ 0 для sqrt и x > 0 для ln, а если оно может нарушиться, предусмотрите проверку в программе.

Считают, что round и trunc округляют одинаково, потому что обе функции возвращают целое число. На самом деле trunc отбрасывает дробную часть, а round выбирает ближайшее целое: например, для 4,7 результаты равны 4 и 5. Сравните ответы на числе с ненулевой дробной частью, чтобы убедиться, что выбрали нужное преобразование.

Связь с другими темами

Для работы со стандартными функциями нужны переменные, типы данных, арифметические выражения и присваивание: результат вызова функции часто сохраняют в переменной. Также важно знать правила записи программы на Pascal, чтобы правильно оформить выражение и вывести ответ. При переводе формул в команды строят математическую модель задачи и решают, какие величины нужно вычислить. Позже функции пригодятся в задачах с ветвлениями, циклами, координатами, геометрией и случайными данными.

Что запомнить

  • Стандартная функция вызывается по имени с аргументом в круглых скобках.
  • Результат функции можно включать в арифметическое выражение.
  • Для sin, cos и arctan углы задаются в радианах.
  • Аргумент sqrt должен быть неотрицательным, а аргумент ln — положительным.
  • sqr возводит число в квадрат, sqrt извлекает квадратный корень.
  • trunc отбрасывает дробную часть, round округляет число.
  • random(n) формирует целое случайное число от 0 до n − 1.

Частые вопросы по теме

Можно ли передавать функции не число, а целое выражение?

Да, аргументом может быть выражение, если его результат подходит функции по типу и допустимым значениям. Например, sqrt(x + 4) сначала вычисляет x + 4, а затем извлекает квадратный корень.

Почему результат sin(90) не равен единице?

Функция sin принимает угол в радианах, а не в градусах. Число 90 означает 90 радиан; для синуса 90° нужно передать π/2.

Чем отличаются sqr(x) и x*x?

Обе записи возводят x в квадрат и обычно дают одинаковый результат. sqr — встроенная функция, а x*x — умножение переменной на саму себя; выбирайте запись, которая понятнее в конкретном выражении.

Почему программа выдаёт ошибку при вычислении sqrt отрицательного числа?

В обычной вещественной арифметике квадратный корень определён только для неотрицательных чисел. Перед вызовом sqrt проверьте, что аргумент не меньше нуля.

Как получить случайное число в нужном диапазоне?

Вызов random(n) в Pascal возвращает целое число от 0 до n − 1. Чтобы получить число от a до b включительно, используйте a + random(b − a + 1), где a и b — целые и a ≤ b.

Спросить по теме параграфа

§ 25. Стандартные функции

Учебник

Оглавление →
Предмет
Информатика
Класс
8 класс
Учебник
"Информатика", Поляков К.Ю., Еремин Е.А.