Повторяем и систематизируем школьный курс алгебры и начал анализа
Повторяем и систематизируем школьный курс алгебры и начал анализа
ОглавлениеПРЕДИСЛОВИЕГЛАВА I. § 1. НАТУРАЛЬНЫЕ ЧИСЛА И ДЕЙСТВИЯ НАД НИМИ § 2. СЛОЖЕНИЕ И ЗАКОНЫ СЛОЖЕНИЯ § 3. ВЫЧИТАНИЕ § 4. УМНОЖЕНИЕ И ЗАКОНЫ УМНОЖЕНИЯ § 6. ПРИЗНАКИ ДЕЛИМОСТИ ЧИСЕЛ § 7. ПОНЯТИЕ МНОЖЕСТВА § 8. ОПЕРАЦИИ НАД МНОЖЕСТВАМИ § 9. ВЗАИМНО ОДНОЗНАЧНОЕ СООТВЕТСТВИЕ § 10. ПРОСТЫЕ И СОСТАВНЫЕ ЧИСЛА § 11. НАИБОЛЬШИЙ ОБЩИЙ ДЕЛИТЕЛЬ § 12. НАИМЕНЬШЕЕ ОБЩЕЕ КРАТНОЕ Контрольные вопросы ГЛАВА II § 1. ОБЫКНОВЕННЫЕ ДРОБИ § 2. ПРАВИЛЬНЫЕ И НЕПРАВИЛЬНЫЕ ДРОБИ § 3. ОСНОВНОЕ СВОЙСТВО ДРОБИ § 4. СЛОЖЕНИЕ И ВЫЧИТАНИЕ ДРОБЕЙ § 5. УМНОЖЕНИЕ ДРОБЕЙ § 6. ДЕЛЕНИЕ ДРОБЕЙ § 7. ДЕСЯТИЧНЫЕ ДРОБИ § 8. ОБРАЩЕНИЕ ДЕСЯТИЧНОЙ ДРОБИ В ОБЫКНОВЕННУЮ И ОБЫКНОВЕННОЙ В ДЕСЯТИЧНУЮ. ПЕРИОДИЧЕСКИЕ ДРОБИ § 9. ОТНОШЕНИЕ. ПРОПОРЦИЯ § 10. СВОЙСТВА ПРОПОРЦИИ § 11. ПРОЦЕНТ. ОСНОВНЫЕ ЗАДАЧИ НА ПРОЦЕНТЫ § 12. ДЕЛЕНИЕ ЧИСЛА НА ЧАСТИ, ПРЯМО И ОБРАТНО ПРОПОРЦИОНАЛЬНЫЕ ДАННЫМ ЧИСЛАМ Контрольные вопросы ГЛАВА III § 1. КООРДИНАТНАЯ ПРЯМАЯ § 2. МНОЖЕСТВО ЦЕЛЫХ ЧИСЕЛ § 3. МНОЖЕСТВО РАЦИОНАЛЬНЫХ ЧИСЕЛ § 4. МОДУЛЬ ЧИСЛА § 5. СРАВНЕНИЕ РАЦИОНАЛЬНЫХ ЧИСЕЛ § 6. СЛОЖЕНИЕ И ВЫЧИТАНИЕ РАЦИОНАЛЬНЫХ ЧИСЕЛ § 7. УМНОЖЕНИЕ И ДЕЛЕНИЕ РАЦИОНАЛЬНЫХ ЧИСЕЛ § 8. ВОЗВЕДЕНИЕ РАЦИОНАЛЬНЫХ ЧИСЕЛ В СТЕПЕНЬ С НАТУРАЛЬНЫМ ПОКАЗАТЕЛЕМ Контрольные вопросы ГЛАВА IV § 1. СВОЙСТВА СТЕПЕНИ С НАТУРАЛЬНЫМ ПОКАЗАТЕЛЕМ § 2. ЧИСЛОВЫЕ ВЫРАЖЕНИЯ § 3. ВЫРАЖЕНИЯ С ПЕРЕМЕННЫМИ § 4. ТОЖДЕСТВЕННО РАВНЫЕ ВЫРАЖЕНИЯ § 5. ОДНОЧЛЕНЫ § 6. МНОГОЧЛЕНЫ § 7. ПРЕОБРАЗОВАНИЕ СУММЫ И РАЗНОСТИ МНОГОЧЛЕНОВ § 8. УМНОЖЕНИЕ МНОГОЧЛЕНА НА ОДНОЧЛЕН И МНОГОЧЛЕНА НА МНОГОЧЛЕН § 9. РАЗЛОЖЕНИЕ МНОГОЧЛЕНА НА МНОЖИТЕЛИ СПОСОБОМ ВЫНЕСЕНИЯ ОБЩЕГО МНОЖИТЕЛЯ ЗА СКОБКИ § 10. РАЗЛОЖЕНИЕ МНОГОЧЛЕНА НА МНОЖИТЕЛИ СПОСОБОМ ГРУППИРОВКИ § 11. ФОРМУЛЫ СОКРАЩЕННОГО УМНОЖЕНИЯ Контрольные вопросы ГЛАВА V § 1. ДРОБЬ § 2. ЦЕЛЫЕ И ДРОБНЫЕ ВЫРАЖЕНИЯ § 3. ТОЖДЕСТВЕННОЕ ПРЕОБРАЗОВАНИЕ СУММЫ И РАЗНОСТИ ДВУХ ДРОБЕЙ § 4. ТОЖДЕСТВЕННОЕ ПРЕОБРАЗОВАНИЕ ПРОИЗВЕДЕНИЯ И ЧАСТНОГО ДВУХ ДРОБЕЙ Контрольные вопросы ГЛАВА VI § 1. ПОНЯТИЕ ОБ ИРРАЦИОНАЛЬНОМ ЧИСЛЕ § 2. РАЗВИТИЕ ПОНЯТИЯ О ЧИСЛЕ. МНОЖЕСТВО ДЕЙСТВИТЕЛЬНЫХ ЧИСЕЛ § 3. КОРЕНЬ СТЕПЕНИ ИЗ ДЕЙСТВИТЕЛЬНОГО ЧИСЛА § 4. АЛГОРИТМ ИЗВЛЕЧЕНИЯ КВАДРАТНОГО КОРНЯ ИЗ ЧИСЛА § 5. АРИФМЕТИЧЕСКИЕ ДЕЙСТВИЯ С ДЕЙСТВИТЕЛЬНЫМИ ЧИСЛАМИ § 6. ПРЕОБРАЗОВАНИЯ АРИФМЕТИЧЕСКИХ КОРНЕЙ § 7. СТЕПЕНЬ С ЦЕЛЫМ И ДРОБНЫМ ПОКАЗАТЕЛЕМ Контрольные вопросы ГЛАВА VII § 1. УРАВНЕНИЯ С ОДНОЙ ПЕРЕМЕННОЙ § 2. ПОНЯТИЕ О РАВНОСИЛЬНОСТИ УРАВНЕНИЙ § 3. СВОЙСТВА ЧИСЛОВЫХ РАВЕНСТВ И ТЕОРЕМЫ О РАВНОСИЛЬНОСТИ УРАВНЕНИЙ § 4. ЛИНЕЙНОЕ УРАВНЕНИЕ С ОДНОЙ ПЕРЕМЕННОЙ, СОДЕРЖАЩЕЕ ПАРАМЕТР Контрольные вопросы ГЛАВА VIII § 1. ПОНЯТИЕ ФУНКЦИИ § 2. СПОСОБЫ ЗАДАНИЯ ФУНКЦИИ § 3. МОНОТОННОСТЬ ФУНКЦИИ § 4. ЧЕТНЫЕ И НЕЧЕТНЫЕ ФУНКЦИИ СПРАВОЧНЫЙ МАТЕРИАЛ § 5. ПЕРИОДИЧЕСКИЕ ФУНКЦИИ § 6. ПРОМЕЖУТКИ ЗНАКОПОСТОЯНСТВА И КОРНИ ФУНКЦИИ Контрольные вопросы ГЛАВА IX § 1. ГЕОМЕТРИЧЕСКИЕ ПРЕОБРАЗОВАНИЯ ГРАФИКОВ ФУНКЦИЙ § 2. ЛИНЕЙНАЯ ФУНКЦИЯ И ЕЕ ГРАФИК § 3. КВАДРАТИЧНАЯ ФУНКЦИЯ И ЕЕ ГРАФИК § 4. ФУНКЦИЯ y=k/x И ЕЕ ГРАФИК § 5. ДРОБНО-ЛИНЕЙНАЯ ФУНКЦИЯ И ЕЕ ГРАФИК Контрольные вопросы ГЛАВА X § 1. КВАДРАТНЫЕ УРАВНЕНИЯ § 2. ТЕОРЕМА ВИЕТА § 3. ГРАФИЧЕСКИЙ СПОСОБ РЕШЕНИЯ КВАДРАТНЫХ УРАВНЕНИЙ § 4. УРАВНЕНИЕ СО МНОГИМИ ПЕРЕМЕННЫМИ § 5. СИСТЕМЫ УРАВНЕНИЙ Контрольные вопросы ГЛАВА XI § 1. НЕРАВЕНСТВА § 2. ОСНОВНЫЕ СВОЙСТВА НЕРАВЕНСТВ § 3. ДЕЙСТВИЯ С НЕРАВЕНСТВАМИ § 4. ДОКАЗАТЕЛЬСТВА НЕРАВЕНСТВ § 5. НЕРАВЕНСТВА, СОДЕРЖАЩИЕ ПЕРЕМЕННУЮ § 6. РЕШЕНИЕ ЛИНЕЙНЫХ И КВАДРАТНЫХ НЕРАВЕНСТВ Контрольные вопросы ГЛАВА XII § 1. СИСТЕМЫ И СОВОКУПНОСТИ НЕРАВЕНСТВ § 3. РЕШЕНИЕ НЕРАВЕНСТВ, СОДЕРЖАЩИХ ПЕРЕМЕННУЮ ПОД ЗНАКОМ МОДУЛЯ § 4. РЕШЕНИЕ РАЦИОНАЛЬНЫХ НЕРАВЕНСТВ МЕТОДОМ ПРОМЕЖУТКОВ Контрольные вопросы ГЛАВА XIII § 1. ЧИСЛОВАЯ ПОСЛЕДОВАТЕЛЬНОСТЬ § 2. АРИФМЕТИЧЕСКАЯ ПРОГРЕССИЯ § 3. ГЕОМЕТРИЧЕСКАЯ ПРОГРЕССИЯ § 4. СУММА БЕСКОНЕЧНОЙ ГЕОМЕТРИЧЕСКОЙ ПРОГРЕССИИ ПРИ |q|Контрольные вопросы ГЛАВА XIV § 1. ГРАДУСНОЕ ИЗМЕРЕНИЕ УГЛОВЫХ ВЕЛИЧИН § 2. РАДИАННОЕ ИЗМЕРЕНИЕ УГЛОВЫХ ВЕЛИЧИН § 3. СИНУС И КОСИНУС ЧИСЛОВОГО АРГУМЕНТА § 4. ТАНГЕНС И КОТАНГЕНС ЧИСЛОВОГО АРГУМЕНТА. СЕКАНС И КОСЕКАНС ЧИСЛА а § 5. ОСНОВНЫЕ ТРИГОНОМЕТРИЧЕСКИЕ ТОЖДЕСТВА § 6. ДОПОЛНИТЕЛЬНЫЕ СВОЙСТВА ТРИГОНОМЕТРИЧЕСКИХ ФУНКЦИЙ Контрольные вопросы ГЛАВА XV § 1. ФОРМУЛЫ ПРИВЕДЕНИЯ § 2. ФОРМУЛЫ СЛОЖЕНИЯ § 3. ФОРМУЛЫ ДВОЙНОГО УГЛА СПРАВОЧНЫЙ МАТЕРИАЛ § 4. ПРЕОБРАЗОВАНИЕ ПРОИЗВЕДЕНИЯ ТРИГОНОМЕТРИЧЕСКИХ ФУНКЦИЙ В СУММУ § 5. ФОРМУЛЫ СУММЫ И РАЗНОСТИ ОДНОИМЕННЫХ ТРИГОНОМЕТРИЧЕСКИХ ФУНКЦИЙ § 6. ТРИГОНОМЕТРИЧЕСКИЕ ФУНКЦИИ ПОЛОВИННОГО АРГУМЕНТА § 7. ВЫРАЖЕНИЕ ТРИГОНОМЕТРИЧЕСКИХ ФУНКЦИЙ ЧЕРЕЗ ТАНГЕНС ПОЛОВИННОГО АРГУМЕНТА Контрольные вопросы ГЛАВА XVI § 1. СВОЙСТВА ФУНКЦИИ y = sin(x) И ЕЕ ГРАФИК § 2. СВОЙСТВА ФУНКЦИ И у = cos(x) И ЕЕ ГРАФИК § 3. СВОЙСТВА ФУНКЦИ И у=tg(x) И ЕЕ ГРАФИК § 4. СВОЙСТВА ФУНКЦИ И y=ctg(x) И ЕЕ ГРАФИК § 5. НАХОЖДЕНИЕ ПЕРИОДОВ ТРИГОНОМЕТРИЧЕСКИХ ФУНКЦИЙ Контрольные вопросы ГЛАВА XVII § 1. АРКСИНУС И АРККОСИНУС § 2. АРКТАНГЕНС И АРККОТАНГЕНС Контрольные вопросы ГЛАВА XVIII § 1. РЕШЕНИЕ УРАВНЕНИЙ ВИДА cos(x)=а § 2. РЕШЕНИЕ УРАВНЕНИЙ ВИДА sin(x)=a § 3. РЕШЕНИЕ УРАВНЕНИЙ ВИДА tg(х)=а § 4. РЕШЕНИЕ ТРИГОНОМЕТРИЧЕСКИХ УРАВНЕНИЙ, ПРИВОДИМЫХ К КВАДРАТНОМУ § 6. ТРИГОНОМЕТРИЧЕСКИЕ УРАВНЕНИЯ, РЕШАЕМЫЕ С ПОМОЩЬЮ ФОРМУЛ СЛОЖЕНИЯ, ПОНИЖЕНИЯ СТЕПЕНИ § 7. РЕШЕНИЕ СИСТЕМ ТРИГОНОМЕТРИЧЕСКИХ УРАВНЕНИЙ Контрольные вопросы ГЛАВА XIX § 1. РЕШЕНИЕ ТРИГОНОМЕТРИЧЕСКИХ НЕРАВЕНСТВ ВИДА sin(х) > а, sin(х) § 2. РЕШЕНИЕ ТРИГОНОМЕТРИЧЕСКИХ НЕРАВЕНСТВ ВИДА cos(x) > a, cos(x) § 3. РЕШЕНИЕ ТРИГОНОМЕТРИЧЕСКИХ НЕРАВЕНСТВ ВИДА tg(х) > a, tg(х) § 4. РЕШЕНИЕ ТРИГОНОМЕТРИЧЕСКИХ НЕРАВЕНСТВ ГЛАВА XX § 1. ПРИРАЩЕНИЕ АРГУМЕНТА И ПРИРАЩЕНИЕ ФУНКЦИИ § 2. ПРЕДЕЛ ФУНКЦИИ § 3. НЕПРЕРЫВНОСТЬ ФУНКЦИИ § 4. ОПРЕДЕЛЕНИЕ ПРОИЗВОДНОЙ § 5. ПРОИЗВОДНАЯ СУММЫ, ПРОИЗВЕДЕНИЯ, ЧАСТНОГО § 6. ПРОИЗВОДНАЯ СТЕПЕННОЙ И СЛОЖНОЙ ФУНКЦИИ § 7. ПРОИЗВОДНЫЕ ТРИГОНОМЕТРИЧЕСКИХ ФУНКЦИЙ Контрольные вопросы ГЛАВА XXI § 1. ПРИМЕНЕНИЕ ПРОИЗВОДНОЙ К НАХОЖДЕНИЮ ПРОМЕЖУТКОВ МОНОТОННОСТИ ФУНКЦИИ § 2. КРИТИЧЕСКИЕ ТОЧКИ ФУНКЦИИ, ЕЕ МАКСИМУМЫ И МИНИМУМЫ § 3. ОБЩАЯ СХЕМА ИССЛЕДОВАНИЯ ФУНКЦИИ § 4. ЗАДАЧИ НА НАХОЖДЕНИЕ НАИМЕНЬШЕГО И НАИБОЛЬШЕГО ЗНАЧЕНИЯ ФУНКЦИИ Контрольные вопросы ГЛАВА XXII § 1. ФОРМУЛЫ ПРИБЛИЖЕННЫХ ВЫЧИСЛЕНИЙ СПРАВОЧНЫЙ МАТЕРИАЛ § 2. КАСАТЕЛЬНАЯ К ГРАФИКУ ФУНКЦИИ § 3. СКОРОСТЬ И УСКОРЕНИЕ В ДАННЫЙ МОМЕНТ ВРЕМЕНИ § 4. ГРАФИКИ ГАРМОНИЧЕСКИХ КОЛЕБАНИЙ Контрольные вопросы ГЛАВА XXIII § 1. ПОТЕРЯННЫЕ И ПОСТОРОННИЕ КОРНИ ПРИ РЕШЕНИИ УРАВНЕНИЙ (НА ПРИМЕРАХ) § 2. ПОСТОРОННИЕ КОРНИ ИРРАЦИОНАЛЬНОГО УРАВНЕНИЯ (НА ПРИМЕРАХ) § 3. РЕШЕНИЕ ИРРАЦИОНАЛЬНЫХ УРАВНЕНИЙ § 4. РЕШЕНИЕ ИРРАЦИОНАЛЬНЫХ НЕРАВЕНСТВ СПРАВОЧНЫЙ МАТЕРИАЛ Контрольные вопросы ГЛАВА XXIV § 1. ПОКАЗАТЕЛЬНАЯ ФУНКЦИЯ, ЕЕ СВОЙСТВА И ГРАФИК § 3. ПОКАЗАТЕЛЬНЫЕ НЕРАВЕНСТВА § 4. СИСТЕМЫ ПОКАЗАТЕЛЬНЫХ УРАВНЕНИЙ И НЕРАВЕНСТВ Контрольные вопросы ГЛАВА XXV § 1. ОБРАТНАЯ ФУНКЦИЯ § 2. ПОНЯТИЕ ЛОГАРИФМА § 3. СВОЙСТВА ЛОГАРИФМОВ § 4. ЛОГАРИФМИЧЕСКАЯ ФУНКЦИЯ, ЕЕ СВОЙСТВА И ГРАФИК § 5. ТЕОРЕМЫ О ЛОГАРИФМЕ ПРОИЗВЕДЕНИЯ, ЧАСТНОГО И СТЕПЕНИ. ФОРМУЛА ПЕРЕХОДА К НОВОМУ ОСНОВАНИЮ § 6. ДЕСЯТИЧНЫЕ ЛОГАРИФМЫ И ИХ СВОЙСТВА § 7. ЛОГАРИФМИРОВАНИЕ И ПОТЕНЦИРОВАНИЕ Контрольные вопросы ГЛАВА XXVI § 1. ЛОГАРИФМИЧЕСКИЕ УРАВНЕНИЯ § 2. ЛОГАРИФМИЧЕСКИЕ НЕРАВЕНСТВА § 3. СИСТЕМЫ ЛОГАРИФМИЧЕСКИХ УРАВНЕНИЙ И НЕРАВЕНСТВ § 4. ПРОИЗВОДНЫЕ ЛОГАРИФМИЧЕСКОЙ И ПОКАЗАТЕЛЬНОЙ ФУНКЦИЙ. ЧИСЛО e Контрольные вопросы ГЛАВА XXVII § 1. ПОНЯТИЕ ПЕРВООБРАЗНОЙ ФУНКЦИИ § 2. ОСНОВНОЕ СВОЙСТВО ПЕРВООБРАЗНОЙ ФУНКЦИИ § 3. ТРИ ПРАВИЛА НАХОЖДЕНИЯ ПЕРВООБРАЗНЫХ § 4. КРИВОЛИНЕЙНАЯ ТРАПЕЦИЯ И ЕЕ ПЛОЩАДЬ Контрольные вопросы ГЛАВА XXVIII § 1. ФОРМУЛА НЬЮТОНА—ЛЕЙБНИЦА § 2. ОСНОВНЫЕ ПРАВИЛА ИНТЕГРИРОВАНИЯ § 3. ВЫЧИСЛЕНИЕ ПЛОЩАДЕЙ С ПОМОЩЬЮ ИНТЕГРАЛА § 4. МЕХАНИЧЕСКИЕ И ФИЗИЧЕСКИЕ ПРИЛОЖЕНИЯ ОПРЕДЕЛЕННОГО ИНТЕГРАЛА ПРИЛОЖЕНИЕ Введение 1. Задачи на движение 2. Задачи на совместную работу 3. Задачи на планирование 4. Задачи на зависимость между компонентами арифметических действий 5. Задачи на проценты 6. Задачи на смеси (сплавы) 7. Задачи на разбавление |
Краткий курс высшей математики
Краткий курс высшей математики
ОглавлениеПРЕДИСЛОВИЕГЛАВА I. МЕТОД КООРДИНАТ. ПОНЯТИЕ ФУНКЦИИ § 1. ДЕЙСТВИТЕЛЬНЫЕ ЧИСЛА. КООРДИНАТЫ ТОЧКИ НА ПРЯМОЙ 2. Геометрическое изображение действительных чисел. Координаты точки на прямой 3. Абсолютная величина действительного числа 4. Расстояние между двумя точками на прямой § 2. КООРДИНАТЫ НА ПЛОСКОСТИ И В ПРОСТРАНСТВЕ 2. Расстояние между двумя точками на плоскости 3. Деление отрезка в данном отношении 4. Координаты точки в пространстве 5. Расстояние между двумя точками в пространстве § 3. УГОЛ МЕЖДУ ДВУМЯ ОСЯМИ. ПОЛЯРНЫЕ КООРДИНАТЫ 2. Полярные координаты 3. Зависимость между декартовыми и полярными координатами § 4. ФУНКЦИОНАЛЬНАЯ ЗАВИСИМОСТЬ 2. Понятие функции 3. График функции 4. Способы задания функций 5. Основные элементарные функции и их графики 6. Сложные функции. Элементарные функции 7. Целые и дробно-рациональные функции 8. Функции четные и нечетные. Периодические функции § 5. УРАВНЕНИЕ ЛИНИИ 2. Нахождение уравнения линии по ее геометрическим свойствам § 6 ПРЕОБРАЗОВАНИЕ КООРДИНАТ 2. Поворот осей координат ГЛАВА II. АНАЛИТИЧЕСКАЯ ГЕОМЕТРИЯ НА ПЛОСКОСТИ § 1. ПРЯМАЯ 2. Уравнение прямой с угловым коэффициентом 3. Уравнение прямой, параллельной оси ординат 4. Общее уравнение прямой и его частные случаи 5. Точка пересечения прямых. Построение прямой по ее уравнению 6. Вычисление угла между двумя прямыми. Условия параллельности и перпендикулярности двух прямых 7. Уравнение прямой, проходящей через данную точку в заданном направлении 8. Пучок прямых 9. Уравнение прямой, проходящей через две данные точки 10. Расстояние от точки до прямой § 2. КРИВЫЕ ВТОРОГО ПОРЯДКА 2. Окружность 3. Эллипс 4. Гипербола 5. Парабола 6. Окружность, эллипс, гипербола и парабола как конические сечения 7. Упрощение уравнения кривой второго порядка. График квадратного трехчлена 8. Уравнение равносторонней гиперболы, асимптоты которой приняты за оси координат 9. График дробно-линейной функции 10. Преобразование уравнения кривой второго порядка, не содержащего члена с произведением координат ГЛАВА III. ЭЛЕМЕНТЫ ЛИНЕЙНОЙ И ВЕКТОРНОЙ АЛГЕБРЫ § 1. ЭЛЕМЕНТЫ ТЕОРИИ ОПРЕДЕЛИТЕЛЕЙ 2. Определитель третьего порядка 3. Понятие об определителях высших порядков § 2. СИСТЕМЫ УРАВНЕНИЙ ПЕРВОЙ СТЕПЕНИ 2. Однородная система двух уравнений первой степени с тремя неизвестными 3. Система трех уравнений первой степени с тремя неизвестными 4. Однородная система трех уравнений первой степени с тремя неизвестными § 3. ЭЛЕМЕНТЫ ВЕКТОРНОЙ АЛГЕБРЫ 2. Линейные операции над векторами 4. Проекция вектора на ось и составляются вектора по оси 5. Разложение вектора на составляющие по осям координат 6. Направляющие косинусы вектора 7. Условие коллинеарности двух векторов 8. Скалярное произведение 9. Выражение скалярного произведения через проекции перемножаемых векторов 10. Косинус угла между двумя векторами 11. Векторное произведение 12. Выражение векторного произведения через проекции перемножаемых векторов 13. Смешанное произведение трех векторов 14. Геометрический смысл смешанного произведения 15. Условие компланарности трех векторов § 4. МАТРИЦЫ И ДЕЙСТВИЯ НАД НИМИ 2. Равенство матриц. Действия над матрицами 3. Обратная матрица 4. Матричная запись и матричное решение системы уравнений первой степени § 5. ЛИНЕЙНЫЕ ОТОБРАЖЕНИЯ 2. Преобразование координат 3. Приведение квадратичной формы к каноническому виду 4. Упрощение общего уравнения кривой второго порядка ГЛАВА IV. АНАЛИТИЧЕСКАЯ ГЕОМЕТРИЯ В ПРОСТРАНСТВЕ § 1. ПЛОСКОСТЬ 2. Нормальный вектор плоскости. Уравнение плоскости, проходящей через данную точку 3. Общее уравнение плоскости и его частные случаи 4. Построение плоскости по ее уравнению 5. Угол между плоскостями. Условия параллельности и перпендикулярности двух плоскостей 6. Точка пересечения трех плоскостей § 2. ПРЯМАЯ В ПРОСТРАНСТВЕ 2. Общие уравнения прямой 3. Векторное уравнение прямой. Параметрические уравнения прямой 4. Канонические уравнения прямой 5. Уравнения прямой, проходящей через две точки 6. Угол между двумя прямыми. Условия параллельности и перпендикулярности прямых § 3. Прямая и плоскость в пространстве 2. Точка пересечения прямой с плоскостью 3. Расстояние от точки до плоскости 4. Пучок плоскостей § 4. ПОВЕРХНОСТИ ВТОРОГО ПОРЯДКА 2. Цилиндрические поверхности 3. Конические поверхности 4. Поверхность вращения 6. Гиперболоиды 7. Параболоиды ГЛАВА V. ТЕОРИЯ ПРЕДЕЛОВ § 1. ПРЕДЕЛ ФУНКЦИИ 2. Предел функции при х -> -оо 3. Предел функции при х->х0 4. Бесконечно малые функции. Ограниченные функции 5. Бесконечно большие функции и их связь с бесконечно малыми функциями 6. Основные теоремы о пределах 7. Предел функции при x -> 0 8. Последовательность. Число e 9. Натуральные логарифмы 10. Сравнение бесконечно малых функций § 2. НЕПРЕРЫВНЫЕ ФУНКЦИИ 2. Операции над непрерывными функциями. Непрерывность элементарных функций 3. Свойства функций, непрерывных на сегменте 4. Понятие об обратной функции 5. Обратные тригонометрические функции 6. Показательная и логарифмическая функции 7. Понятие о гиперболических функциях ГЛАВА VI. ДИФФЕРЕНЦИАЛЬНОЕ ИСЧИСЛЕНИЕ ФУНКЦИЙ ОДНОЙ ПЕРЕМЕННОЙ 1. Приращение аргумента и приращение функции 2. Определение непрерывности функции с помощью понятии приращения аргумента и приращения функции 3. Задачи, приводящие к понятию производной 4. Определение производной и ее механический смысл 5. Дифференцируемость функции 6. Геометрический смысл производной 7. Производные некоторых основных элементарных функций 8. Основные правила дифференцирования 9. Производная обратной функции 10. Производные обратных тригонометрических функций 11. Производная сложной функции § 12. Производные гиперболических функций 13. Производная степенной функции с любым показателем 14. Сводная таблица формул дифференцирования 15. Неявные функции и их дифференцирование 16. Уравнения касательной а нормали к кривой 17. Графическое дифференцирование § 2. ПРОИЗВОДНЫЕ ВЫСШИХ ПОРЯДКОВ 1. Нахождение производных высших порядков 2. Механический смысл второй производной § 3. ДИФФЕРЕНЦИАЛ ФУНКЦИИ 2. Производная как отношение дифференциалов 3. Дифференциал суммы, произведения и частного функций 4. Дифференциал сложной функции. Инвариантность формы дифференциала 5. Применение дифференциала к приближенным вычислениям 6. Дифференциалы высших порядков § 4. ФУНКЦИИ, ЗАДАННЫЕ ПАРАМЕТРИЧЕСКИ, И ИХ ДИФФЕРЕНЦИРОВАНИЕ 2. Дифференцирование функций, заданных параметрически § 5. ВЕКТОРНАЯ ФУНКЦИЯ СКАЛЯРНОГО АРГУМЕНТА 2. Векторная функция скалярного аргумента и ее производная 3. Уравнения касательной прямой и нормальной плоскости к пространственной кривой 4. Механический смысл первой и второй производных векторной функции скалярного аргумента § 6. НЕКОТОРЫЕ ТЕОРЕМЫ О ДИФФЕРЕНЦИРУЕМЫХ ФУНКЦИЯХ 2. Теорема Ролля 3. Теорема Лагранжа 4. Правило Лопиталя § 7. ПРИЛОЖЕНИЕ ПРОИЗВОДНОЙ К ИССЛЕДОВАНИЮ ФУНКЦИЙ И ПОСТРОЕНИЮ ГРАФИКОВ 2. Максимум и минимум функции 3. Достаточный признак существования экстремума, основанный на знаке второй производной 4. Отыскание наибольшего и наименьшего значений функции 5. Применение теории максимума и минимума к решению задач 6. Выпуклость и вогнутость графика функции. Точки перегиба 7. Асимптоты графика функции 8. Общая схема исследования функции и построение ее графика § 8. ПРИБЛИЖЕННОЕ РЕШЕНИЕ УРАВНЕНИЙ 2. Уточнение найденных значений корней методом хорд и касательных § 9. ИНТЕРПОЛЯЦИОННАЯ ФОРМУЛА ЛАГРАНЖА ГЛАВА VII. НЕОПРЕДЕЛЕННЫЙ ИНТЕГРАЛ § 1. НЕОПРЕДЕЛЕННЫЙ ИНТЕГРАЛ И ЕГО СВОЙСТВА 2. Геометрический смысл неопределенного интеграла 3. Таблица основных интегралов 4. Основные свойства неопределенного интеграла § 2. ОСНОВНЫЕ МЕТОДЫ ИНТЕГРИРОВАНИЯ 2. Интегрирование методом замены переменной 3. Интегрирование по частям § 3. ИНТЕГРИРОВАНИЕ РАЦИОНАЛЬНЫХ ФУНКЦИЙ 2. Рациональные дроби. Выделение правильной рациональной дроби 3. Интегрирование простейших рациональных дробей 4. Разложение правильной рациональной дроби на простейшие дроби 5. Метод неопределенных коэффициентов 6. Интегрирование рациональных дробей § 4. Интегрирование тригонометрических функций 2. Рациональные функции двух переменных 3. Интегралы вида § 5. ИНТЕГРИРОВАНИЕ НЕКОТОРЫХ ИРРАЦИОНАЛЬНЫХ ФУНКЦИЙ 2. Интеграл вида 3. Интегралы видов 4. Интегралы вида § 6. ОБЩИЕ ЗАМЕЧАНИЯ О МЕТОДАХ ИНТЕГРИРОВАНИЯ. ИНТЕГРАЛЫ, НЕ БЕРУЩИЕСЯ В ЭЛЕМЕНТАРНЫХ ФУНКЦИЯХ 2. Понятие об интегралах, не берущихся в элементарных функциях ГЛАВА VIII. ОПРЕДЕЛЕННЫЙ ИНТЕГРАЛ § 1. ЗАДАЧИ, ПРИВОДЯЩИЕ К ОПРЕДЕЛЕННОМУ ИНТЕГРАЛУ 2. Задача о работе переменной силы § 2. ОПРЕДЕЛЕННЫЙ ИНТЕГРАЛ 2. Свойства определенного интеграла 3. Производная интеграла по переменной верхней границе 4. Формула Ньютона—Лейбница 5. Замена переменной в определенном интеграле 6. Интегрирование по частям в определенном интеграле § 3. ГЕОМЕТРИЧЕСКИЕ И ФИЗИЧЕСКИЕ ПРИЛОЖЕНИЯ ОПРЕДЕЛЕННОГО ИНТЕГРАЛА 2. Вычисление площади в полярных координатах 3. Вычисление объема тела по известным поперечным сечениям 4. Объем тела вращения 5. Длина дуги кривой 6. Дифференциал дуги 7. Площадь поверхности вращения 8. Общие замечания о решении задач методом интегральных сумм § 4. КРИВИЗНА ПЛОСКОЙ КРИВОЙ 2. Вычисление кривизны 3. Радиус кривизны. Круг кривизны. Центр кривизны 4. Эволюта и эвольвента § 5. НЕСОБСТВЕННЫЕ ИНТЕГРАЛЫ 2. Интегралы от разрывных функций 3. Признаки сходимости несобственных интегралов § 6. ПРИБЛИЖЕННЫЕ МЕТОДЫ ВЫЧИСЛЕНИЯ ОПРЕДЕЛЕННЫХ ИНТЕГРАЛОВ 2. Метод трапеций 3. Метод параболических трапеций (метод Симпсона) ГЛАВА IX. ДИФФЕРЕНЦИАЛЬНОЕ ИСЧИСЛЕНИЕ ФУНКЦИЙ НЕСКОЛЬКИХ ПЕРЕМЕННЫХ § 1. ФУНКЦИИ НЕСКОЛЬКИХ ПЕРЕМЕННЫХ 2. График функции двух переменных 3. Функции трех и большего числа переменных § 2. Предел функции нескольких переменных. Непрерывность функции. Точки разрыва 2. Непрерывность функции нескольких переменных 3. Понятие области 4. Точки разрыва 5. Свойства функций, непрерывных в ограниченной замкнутой области § 3. ЧАСТНЫЕ ПРОИЗВОДНЫЕ 2. Геометрический смысл частных производных функции двух переменных 3. Частные производные высших порядков § 4. ПОЛНЫЙ ДИФФЕРЕНЦИАЛ ФУНКЦИИ НЕСКОЛЬКИХ ПЕРЕМЕННЫХ 2. Полный дифференциал функции 3. Приложение полного дифференциала к приближенным вычислениям § 5. Дифференцирование сложных и неявных функций 2. Инвариантность формы полного дифференциала 3. Дифференцирование неявных функций § 6. СКАЛЯРНОЕ ПОЛЕ 2. Производная по направлению 3. Градиент 4. Касательная плоскость а нормаль к поверхности 5. Геометрический смысл полного дифференциала функции двух переменных § 7. ЭКСТРЕМУМ ФУНКЦИЙ ДВУХ ПЕРЕМЕННЫХ 2. Наибольшее и наименьшее значения функции двух переменных ГЛАВА X. КРАТНЫЕ И КРИВОЛИНЕЙНЫЕ ИНТЕГРАЛЫ § 1. ДВОЙНОЙ ИНТЕГРАЛ 2. Двойной интеграл. Теорема существования 3. Свойства двойного интеграла 4. Вычисление двойного интеграла в декартовых координатах 5. Вычисление двойного интеграла в полярных координатах 6. Приложения двойного интеграла § 2. ТРОЙНОЙ ИНТЕГРАЛ 2. Тройной интеграл и его свойства 3. Вычисление тройного интеграла в декартовых координатах 4. Вычисление тройного интеграла в цилиндрических координатах 5. Приложения тройного интеграла § 3. КРИВОЛИНЕЙНЫЙ ИНТЕГРАЛ 2. Задача о работе. Криволинейный интеграл 3. Вычисление криволинейного интеграла 4. Формула Остроградского — Грина 5. Независимость криволинейного интеграла от пути интегрирования 6. Отыскание первообразной по полному дифференциалу 7. Криволинейный интеграл по длине дуги ГЛАВА XI. РЯДЫ § 1. ЧИСЛОВЫЕ РЯДЫ 2. Геометрическая прогрессия 3. Простейшие свойства числовых рядов 4. Необходимый признак сходимости ряда 5. Достаточные признаки сходимости знакоположительных рядов 6. Знакопеременные ряды 7. Остаток ряда и его оценка § 2. ФУНКЦИОНАЛЬНЫЕ РЯДЫ 2. Правильно сходящиеся функциональные ряды и их свойства § 3. СТЕПЕННЫЕ РЯДЫ 2. Свойства степенных рядов 3. Ряды по степеням разности х-а 4. Разложение функций в степенные ряды. Ряд Тейлора 5. Разложение некоторых элементарных функций в ряды Тейлора и Маклорена § 4. ПРИЛОЖЕНИЕ РЯДОВ К ПРИБЛИЖЕННЫМ ВЫЧИСЛЕНИЯМ 2. Приближенное вычисление интегралов § 5. ПОНЯТИЕ О ФУНКЦИИ КОМПЛЕКСНОЙ ПЕРЕМЕННОЙ. СТЕПЕННЫЕ РЯДЫ В КОМПЛЕКСНОЙ ОБЛАСТИ 2. Числовые ряды с комплексными членами 3. Степенные ряды в комплексной области § 6. РЯДЫ ФУРЬЕ 2. Ряд Фурье 3. Сходимость ряда Фурье 4. Ряды Фурье для четных и нечетных функций 5. Разложение в ряд Фурье функций с периодом 2l ГЛАВА XII. ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ § 1. ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ ПЕРВОГО ПОРЯДКА 2. Дифференциальные уравнения первого порядка 3. Уравнения с разделяющимися переменными 4. Однородные уравнения 5. Линейные уравнения 6. Уравнение в полных дифференциалах 7. Особые решения 8. Приближенное решение дифференциальных уравнений первого порядка методом Эйлера § 2. ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ ВТОРОГО ПОРЯДКА 2. Простейшие уравнения второго порядка, допускающие понижение порядка 3. Понятие о дифференциальных уравнениях высших порядков § 3. ЛИНЕЙНЫЕ ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ ВТОРОГО ПОРЯДКА 2. Линейные однородные дифференциальные уравнения второго порядка 3. Линейные неоднородные дифференциальные уравнения второго порядка 4. Метод вариации произвольных постоянных § 4. ЛИНЕЙНЫЕ ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ ВТОРОГО ПОРЯДКА С ПОСТОЯННЫМИ КОЭФФИЦИЕНТАМИ 2. Линейные неоднородные дифференциальные уравнения второго порядка с постоянными коэффициентами 3. Приложение линейных дифференциальных уравнений второго порядка к изучению механических и электрических колебаний § 5. ЛИНЕЙНЫЕ ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ ВЫСШИХ ПОРЯДКОВ 2. Линейные дифференциальные уравнения n-го порядка с постоянными коэффициентами § 6. ИНТЕГРИРОВАНИЕ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ С ПОМОЩЬЮ РЯДОВ § 7. ПОНЯТИЕ О СИСТЕМАХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ 2. Системы линейных дифференциальных уравнений с постоянными коэффициентами ПРИЛОЖЕНИЕ 1. ИНТЕРПОЛЯЦИОННАЯ ФОРМУЛА НЬЮТОНА ПРИЛОЖЕНИЕ 2. МЕТОД НАИМЕНЬШИХ КВАДРАТОВ |
Простая схема: введение в информатику, часть 8: функции как данные
Простая схема: введение в информатику, часть 8: функции как данные Простая схема: Введение в информатику 2/e Copyright (C) 1999 MIT
|
К настоящему времени вы привыкли к идее выражения вычислительного процесса в терминах функции, значение которой вы хотите вычислить, а не в условия последовательности действий. Но вы, вероятно, думаете о функции (или воплощающая его процедура) как нечто весьма отличное от слов, предложения, числа или другие данные, которые служат аргументами функций. Это как различие между глаголами и существительными в английском языке: Глагол представляет что-то делать, , в то время как существительное представляет что-то , то есть.
В этой части книги наша цель — опровергнуть это различие.
Как и многие большие идеи, эта поначалу кажется простой. Все, что мы говорим, это
что функция может иметь функций в качестве своего домена или диапазона. Один
искусственно упрощенный пример, который вы видели ранее, был количество аргументов
функция в главе 2. Эта функция
принимает функцию в качестве аргумента и возвращает число. Это не так уж и отличается
от count
, который принимает слово или предложение в качестве аргумента и возвращает
число.
Но вы увидите, что эта идея приводит к огромному увеличению длины и
сложность процессов можно выразить в короткой процедуре, т. к.
теперь процесс может породить несколько других процессов. Типичный пример
это процедура аббревиатура
, которую мы представили в главе 1 и
сейчас разберусь подробнее. Вместо применения сначала
процедуры к одному слову, мы используем сначала
в качестве аргумента процедуры, каждые
, что автоматически применяет его к каждому слову предложения. А
один каждый
процесс порождает несколько первых
процессов.
Та же идея функции, что и данных, позволяет нам писать процедуры, которые создают
и вернуть новые процедуры. В начале части II мы показали схему
представление функции, которая вычисляет третье лицо единственного числа числа
глагол. Теперь, чтобы проиллюстрировать идею функции как данных, мы покажем, как
представить на схеме функцию make-conjugator
, диапазон которого равен целое семейство функций спряжения глаголов:
(определить (окончание префикса make-conjugator) (лямбда (глагол) (префикс предложения (окончание глагола слова))))
Пока не обращайте внимания на обозначения; идея думать о том, что
мы можем использовать make-conjugator
для создания многих функций, подобных примеру
от третьего лица во введении к части II:
> (определить третье лицо (составить-спряжение 'она')) > (программа от третьего лица) (ОНА ПРОГРАММИРУЕТ) > (определение прошедшего времени во множественном числе от третьего лица (спряжение-спряжение «они» )) > (игра в прошедшем времени от третьего лица во множественном числе) (ОНИ ИГРАЛИ) > (определить второе лицо-будущее-совершенное (make-conjugator '(у вас будет) 'ed)) > (смех от второго лица-будущее-идеальное) (ВЫ СМЕЕТЕСЬ)
Мы исследуем лишь малую часть области, открытой идеей разрешение программы в качестве данных. Далее по той же дороге идет изучение компиляторов и интерпретаторов, программ, переводящих ваши программы в инструкции, которые компьютеры могут выполнять. Схема Компилятор — это, по сути, функция, областью применения которой являются программы Scheme.
(обратно к оглавлению)
ЗАДНЯЯ резьба главы СЛЕДУЮЩАЯ
Брайан Харви, [email protected]
Simply Scheme: Введение в информатику, глава 4: Определение собственных процедур
Схема Simple: Введение в информатику 2/e Copyright (C) 1999 MIT
Глава 4
|
До сих пор мы использовали процедуры, которые Scheme уже знает, когда вы начать работать с ним. В этой главе вы узнаете, как создавать новые процедуры.
Как определить процедуру
Программа Scheme состоит из одной или нескольких процедур. Процедура описание процесса, с помощью которого компьютер может обработать некоторый результат что мы хотим. Вот как определить процедуру, которая возвращает квадрат его аргумент:
(определить (квадрат x) (* х х))
(значение, возвращаемое , определить
, может отличаться в зависимости от
версия схемы, которую вы используете. Многие версии возвращают имя
процедура, которую вы определяете, но другие возвращают что-то еще. Это не
имеет значение, потому что когда вы используете , определяйте
, вас не интересует
возвращаемое значение, а скорее в том, что Scheme запоминает новое
определение для дальнейшего использования.)
Это определение процедуры под названием квадрат
. Квадрат
принимает один аргумент, число, и возвращает квадрат этого числа. После того, как вы определили квадрат
, вы можете использовать его точно так же, как вы
использовать примитивные процедуры:
> (квадрат 7) 49 > (+ 10 (квадрат 2)) 14 > (квадрат (квадрат 3)) 81
Это определение процедуры состоит из четырех частей. Первым является слово определить
, которое указывает, что вы что-то определяете. Второй и
третье вместе в круглых скобках: имя, которое вы хотите дать
процедура и имена, которые вы хотите использовать для ее аргументов. Этот
расположение было выбрано дизайнерами Схемы, потому что оно похоже на
форма, в которой будет вызываться процедура. то есть (квадрат x)
видов
как (квадрат 7)
. Четвертая часть определения — это тело : выражение, значение которого обеспечивает возвращаемое функцией значение.
Специальные формы
Определение
является специальной формой , является исключением из
правило оценки, о котором мы говорили. [1] Обычно выражение представляет собой вызов процедуры, поэтому
общее правило состоит в том, что Scheme сначала вычисляет все подвыражения, а
затем применяет результирующую процедуру к результирующим значениям аргументов.
Особенность специальных форм состоит в том, что Схема не оценивает все
подвыражения. Наоборот, каждая особая форма имеет свою особую
правило оценивания. Например, когда мы определили квадратных
, нет
оценивалась часть определения: не квадрат
, не х
, а
не (* х х)
. Не имеет смысла вычислять (квадрат x)
потому что вы не можете вызвать процедуру квадратов
до того, как определите ее!
Можно было бы описать специальные формы, используя следующую модель:
«Некоторые процедуры хотят, чтобы их аргументы не оценивались, и Scheme распознает
их. После воздержания от оценки определить аргументы
, для
например, Scheme вызывает процедуру определения
с теми неоцененными
аргументы. » Но на самом деле разработчики Scheme решили подумать об этом
иначе. Вся специальная форма, начинающаяся с , определяет
, это просто
совершенно разные вещи, чем вызов процедуры. В схеме есть
нет процедуры с именем определить
. На самом деле определяют,
это не имя
вообще ни о чем:
> + #<ПЕРВИЧНАЯ ПРОЦЕДУРА +> > определить ОШИБКА - НЕДЕЙСТВИТЕЛЬНЫЙ КОНТЕКСТ ДЛЯ KEYWORD DEFINE
Тем не менее, в этой книге, если только это не очень важно сделать
различие, мы будем говорить, как если бы существовала процедура под названием определить
.
Например, мы поговорим о « определить аргументы
» и «значение
возвращаемый определить
» и «вызов определить
«.
Функции и процедуры
На протяжении большей части этой книги наши процедуры будут описывать процессы, которые
вычислить функций. Функция представляет собой связь между некоторыми значениями
вы уже знаете, и новое значение, которое вы хотите узнать. Например,
9Функция 0059 квадрат принимает число, например 8, в качестве входного значения и
возвращает другое число, в данном случае 64, в качестве выходного значения. Функция во множественном числе принимает существительное, например «компьютер», и возвращает другое.
слово, «компьютеры» в этом примере. Технический термин для функции
входное значение является его аргументом . Функция может выполнять более одного
аргумент; например, функция остатка
принимает два аргумента,
например 12 и 5. Он возвращает одно значение, остаток от деления первого
аргумент вторым (в данном случае 2).
Ранее мы говорили, что процедура — это «описание процесса, посредством которого компьютер может выработать нужный нам результат». Что мы подразумеваем под процессом ? Рассмотрим эти два определения:
г ( x )=3( x +4)
(определить (ф х) (+ (* 3 х) 12)) (определить (г х) (* 3 (+ х 4)))
, и мы бы сказали, что f
и г
две процедуры, которые
представляют одну и ту же функцию.
В реальной жизни функции не всегда представлены процедурами. Мы могли бы представить функцию таблицей , показывающей все ее возможные значения, так:
Алабама | Монтгомери |
Аляска | Джуно |
Аризона | Феникс |
Арканзас | Литл-Рок |
Калифорния | Сакраменто |
… | … |
Мы скажем «процедура f
», когда хотим обсудить операции
мы говорим Схеме выполнить. Мы скажем, что «функция, представленная f
«, когда наше внимание сосредоточено на возвращаемом значении, а не
на механизме. (Но мы часто будем сокращать эту длинную вторую фразу
с «функцией f
», если только контекст не является особым
сбивает с толку.)[2]
Имена аргументов и значения аргументов
— Длинный, — сказал Рыцарь, — но очень, очень красивый. Все, кто слышит, как я ее пою, — либо слезы вызывают в душе глаза, иначе. ..
«Или что еще?» сказала Алиса, потому что Рыцарь сделал внезапную паузу.
«А иначе, знаешь ли. Песня называется « Глаза Пикши». ’ ”
«О, это название песни, не так ли?» Алиса сказала, пытаясь почувствовать интересно.
— Нет, ты не понимаешь, — сказал Рыцарь с легким раздражением. «Так называется номер . Имя на самом деле « Старик». Пожилой мужчина. &rsquo ”
«Тогда я должен был сказать: «Так называется песня »?» Алиса поправила себя.
«Нет, не надо; это совсем другое! Песня называется &lsquo способов и средств &rsquo: но это только то, что называется, ты знать!»
«Ну, тогда что есть песня?» — сказала Алиса, которая к этому времени совершенно сбит с толку.
«Я шел к этому,» сказал Рыцарь. «Эта песня на самом деле &lsquo A-sitting On A Gate ’: и мелодия моего собственного изобретения».
Льюис Кэрролл, Зазеркалье и что Алиса найдена там
Обратите внимание, что когда мы определили процедуру квадрат
, мы дали имя , x
для его аргумента. Напротив, когда мы вызвали в квадрате
мы предоставили значение для аргумента (например, 7
).
Слово x
является «заполнителем» в определении, которое означает
любое значение, которое вы используете при вызове процедуры. Таким образом, вы можете прочитать
определение в квадрате
как говорящее: «Для того, чтобы в квадрате
число,
умножьте это число на это число. » Имя x
занимает место конкретного числа, которое вы имеете в виду.
Убедитесь, что вы понимаете разницу между определением процедуры и
называя это. Процедура представляет собой общую технику, которую можно применять
ко многим конкретным случаям. Мы не хотим встраивать какой-либо конкретный случай в
определение процедуры; мы хотим, чтобы определение выражало общую природу
техника. Вам бы не понадобилась процедура, которая знает только, как принимать
квадрат 7. Но когда вы на самом деле используете в квадрате
, у вас есть
чтобы быть точным в отношении того, какое число вы возводите в квадрат.
Имя для имени аргумента (фух!) — это формальный параметр. В нашем примере квадратных
, x
является формальным параметром. (Вы можете услышать, как люди говорят либо «формальный»,
в одиночку или только «параметр», когда им лень.)
технический термин для фактического значения аргумента — фактический аргумент . В случае, как
(квадрат (+ 5 9))
вы можете отличить выражение фактического аргумента (+ 5 9)
от фактического значения аргумента 14. В большинстве случаев это совершенно ясно
что вы имеете в виду, и вы просто говорите «аргумент» для всех этих вещей, но
прямо сейчас, когда вы изучаете эти идеи, важно уметь говорить
точнее.
Процедура в квадрате
принимает один аргумент. Если процедура требует больше
чем один аргумент, то возникает вопрос, какой фактический аргумент идет с
какой формальный параметр? Ответ заключается в том, что они идут в том порядке, в котором
вы пишете их, как это:
(определить (f a b) (+ (*3 а) б)) > (ф 5 8) 23 > (ф 8 5) 29
Процедура как обобщение
Какое среднее значение между 17 и 25? Чтобы ответить на этот вопрос, вы можете добавить два числа, получается 42, и делим это на два, получая 21. Вы можете спросить Схема, чтобы сделать это для вас:
> (/ (+ 17 25) 2) 21
Какое среднее значение между 14 и 68?
> (/ (+ 14 68) 2) 41
Как только вы поймете технику, вы сможете ответить на любой такой вопрос, ввод выражения вида
(/ (+ ______ ______ ) 2)
к Схеме.
Но если вы собираетесь столкнуться с такими проблемами, следующий очевидный Шаг заключается в том, чтобы обобщить методику, определив процедуру:
(определить (среднее a b) (/ (+ а б) 2))
С этим определением вы можете подумать о следующей проблеме, которую приходит с точки зрения самой проблемы, а не с точки зрения шаги, необходимые для ее решения:
> (в среднем 27 4) 15,5
Это пример того, что мы имели в виду, когда определяли «абстракция» как замечание паттерна и присвоение ему имени. Это не так уж отличается от именования таких шаблонов на английском языке; когда кто-то придумал название «средний», это было, наверное, после заметив, что часто было полезно найти значение на полпути между два других значения.
Этот процесс именования важнее, чем кажется, потому что как только мы имя для какой-либо идеи, мы можем использовать эту идею, не думая о ее частях. Например, предположим, что вы хотите узнать не только среднее значение некоторого числа, но и мера того, сгруппированы ли числа близко друг к другу среднему или широко распространенному. Статистики разработали «стандартное отклонение» как мера этого второго свойства. Вы бы скорее не надо думать об этой загадочной формуле:
но вы были бы рады использовать процедуру стандартное отклонение
которые вы нашли в сборнике статистических программ.
В конце концов, нет закона природы, согласно которому компьютеры автоматически знают
как добавить или вычесть. Вы можете себе представить, что вам нужно поручить Схеме
вычислить сумму двух больших чисел цифра за цифрой, как вы это делали в
Начальная школа. Но вместо этого кто-то «научил» ваш компьютер тому, как
добавьте, прежде чем доберетесь до него, дав этой технике имя +
чтобы вы
может запросить сумму двух чисел, не задумываясь о необходимых шагах. Изобретая среднее
или стандартное отклонение
, мы расширяем
репертуар вычислений, которые вы можете запросить, не беспокоясь о себе
с деталями.
Компонуемость
Мы предложили, чтобы определяемая вами процедура, такая как среднее
,
по сути аналогичен встроенному в Scheme, например +
.
В частности, правила построения выражений одинаковы независимо от того,
строительные блоки — это примитивные процедуры или определенные процедуры.
> (среднее (+ 10 8) (* 3 5)) 16,5 > (в среднем (в среднем 2 3) (в среднем 4 5)) 3,5 > (кв.м. (в среднем 143 145)) 12
Любое возвращаемое значение может использоваться как самоцель, так как возвращаемое значение
значение из sqrt
использовалось в последнем из этих примеров, или оно может
передать аргумент другой процедуре в качестве возвращаемого значения из *
использовалось в первом из этих примеров.
Эти небольшие примеры могут показаться произвольными, но одна и та же идея композиции
функций, является основой для всего программирования Scheme. Например,
сложная формула, которую мы дали для стандартного отклонения, требует вычисления
квадраты нескольких чисел. Итак, если бы мы написали 9Процедура 0069 стандартного отклонения вызовет квадратных
.
Сменная модель
Мы уделили большое внимание деталям формальных параметров и фактических аргументы, но мы немного махнули рукой[3] на вопрос о том, как процедура на самом деле вычисляет значение, когда вы ее вызываете.
Мы собираемся объяснить, что происходит, когда вы вызываете пользовательскую процедуру. Каждое объяснение — это история. Ни одна история не говорит всей правды, потому что всегда упускаются какие-то детали. А модель это история, которая содержит достаточно подробностей, чтобы помочь вам понять, что он пытается объяснить но не настолько подробно, чтобы за деревьями не было видно леса.
Сегодняшний рассказ о замене модели . Когда
вызывается процедура, цель состоит в том, чтобы выполнить вычисление, описанное в
его тело. Проблема в том, что тело написано в терминах формального
параметры, в то время как вычисления должны использовать фактические значения аргументов. Так
Схеме нужен способ связать фактические значения аргументов с формальными.
параметры. Это делается путем создания новой копии тела процедуры,
в котором он заменяет значения аргумента для каждого появления
формальные параметры, а затем вычисление полученного выражения. Так что если
вы определили квадрат
с
(определить (квадрат x) (* х х))
, то тело квадрата
равно (* x x)
. Когда ты хочешь
знать квадрат конкретного числа, как в (квадрат 5)
, Схема
заменяет 5 на x
везде в теле квадрата и оценивает
выражение. Другими словами, схема принимает
(* х х)
затем делает замену, получая
(* 5 5)
, а затем вычисляет это выражение, получая 25.
Если вы просто наберете (* x x)
в Scheme, вы получите сообщение об ошибке
жаловаться, что x
ничего не значит. Только после замены
становится ли это осмысленным выражением.
Между прочим, когда мы говорим о «замещении тела», мы не имеем в виду что определение процедуры изменено каким-либо необратимым образом. Тело процедура не меняется; происходит, как мы говорили ранее, схема создает новое выражение, похожее на тело, за исключением замены.[4]
Есть людишки, которые специализируются на квадрате
, как и там
это маленькие люди, специализирующиеся на +
и *
. Разница в том,
что маленькие человечки, выполняющие примитивные процедуры, могут выполнять работу «по-своему».
голова», все сразу. Маленькие люди, выполняющие пользовательские процедуры
должны пройти через этот бизнес замены, о котором мы говорим здесь.
Затем они нанимают других маленьких людей, чтобы они помогли оценить получившееся выражение,
точно так же, как Алонзо нанимает людей, чтобы они помогали ему оценивать выражения, которые вы вводите
непосредственно в Схему.
Допустим, Сэм, маленький человек, который специализируется на квадратных
, был
попросили вычислить (квадрат 6)
. Сэм производит замену и
осталось с выражением (* 6 6)
для оценки. Затем Сэм нанимает Тессу,
специалист по умножению, чтобы вычислить это новое выражение. Тесса говорит Сэму
что ее ответ равен 36, и, поскольку умножение — это вся проблема
решить, это тоже ответ Сэма.
Вот еще пример:
(определить (гипотенуза a b) (квадрат (+ (квадрат а) (квадрат б)))) > (гипотенуза 5 12)
Предположим, что Алонзо нанимает Гарри для вычисления этого выражения.
Сначала Гарри должен подставить фактические значения аргументов (5 и 12) в
тело гипотенуза
:
(квадрат (+ (квадрат 5) (квадрат 12)))
Теперь он оценивает это выражение так же, как его оценивал бы Алонзо.
если вы набрали его в приглашении Scheme. То есть Гарри нанимает четырех маленьких
человек: один sqrt
специалист, один +
эксперт, и два квадратных
эксперты.[5] В частности, некоторые небольшие
человек должен оценить (квадрат 5)
, подставив 5 вместо x
в
тело квадрат
, как в предыдущем примере. Точно так же мы
замените 12 на x
, чтобы вычислить (квадрат 12)
:
(гипотенуза 5 12) ; подставить в тело ГИПОТЕНУЗЫ (квадрат (+ (квадрат 5) (квадрат 12))) ; заменяет (КВАДРАТ 5) (* 5 5) 25 (квадрат (+ 25 (квадрат 12))) ; заменяет (КВАДРАТ 12) (* 12 12) 144 (кв.(+ 25 144)) (+ 25 144) ; объединить результаты, как и раньше 169(кв. 169) 13
Не забывайте, в пьянящем порыве узнать о подмене модели, то, что вы уже знали из ранее: каждая часть этого вычисления сделал маленький человек, а какой-то другой маленький человек ждет результат. Другими словами, модель подстановки говорит нам, как составная процедура выполняется, но не меняет нашу картину способ, которым вызовы процедур составляются в более крупные выражения.
Ловушки
Не забывайте, что функция может иметь только одно возвращаемое значение . Например, вот программа, которая должна возвращать сумму квадраты его двух аргументов:
(определить (сумма квадратов x y) ;; неправильно! (квадрат х) (квадрат у))
Проблема в том, что тело этой процедуры имеет два выражения, вместо одного. Как оказалось, Scheme просто игнорирует значение первое выражение в подобных случаях и возвращает значение последнего. То, что хочет программист, это сумма этих двух значений, поэтому процедура должна сказать
(определить (сумма квадратов x y) (+ (квадрат х) (квадрат у)))
Еще одна ловушка связана с тем, что считается, что вызов процедуры изменяет значение параметра. Вот ошибочная программа, которая должна вычислять функция, описанная f ( x )=3 x +10:
(определить (f x) ;; неправильно! (* х 3) (+ х 10))
Опять же, первое выражение не действует, и Scheme просто вернуть значение х +10.[6]
Очень распространенная ошибка в Scheme связана с выбором имени процедура как параметр. Это не очень часто встречается с процедуры, подобные описанным в этой главе, домены и диапазоны которых оба числа, но это будет более вероятно позже. Если у тебя есть программа такая:
(определить (квадрат x) (* х х)) (определить (квадрат площади) ;; неправильно! (квадратный квадрат))
, то у вас возникнут проблемы при вызове процедуры, т. к.
например, говоря (область 8)
. площадь
маленький человек будет
замените 8
на квадрат
везде в определении процедуры,
оставляя вам выражение (8 8)
для оценки. Это выражение
означало бы применить процедуру 8
к аргументу 8
, но 8
не является процедурой, поэтому выдается сообщение об ошибке.
Не проблема, если формальным параметром является имя процедуры, которая
вы не используете внутри тела. Проблема возникает, когда вы пытаетесь использовать
одно и то же имя, например, квадрат
с двумя значениями в рамках одной процедуры.
Но специальные формы являются исключением; вы никогда не можете использовать имя специального
форму в качестве параметра.
Аналогичная проблема с конфликтами имен возникает, если вы пытаетесь
использовать ключевое слово (имя специальной формы, например, определить
) как
какое-либо другое имя — либо формальный параметр, либо имя
процедура, которую вы определяете. Мы перечисляем это отдельно, потому что
результат, скорее всего, будет другим. Вместо того, чтобы получить неправильное значение
заменены, как указано выше, вы, вероятно, увидите специальное сообщение об ошибке
по линии «неправильное использование ключевого слова».
Формальные параметры должны быть словами. Некоторые пытаются писать процедуры, которые имеют составные выражения в качестве формальных параметров, например:
(определить (f (+ 3 x) y) ;; неправильно! (* х у))
Помните, что работа определения процедуры заключается только в укажите имя для аргумента. Фактический аргумент не является закреплены до тех пор, пока вы не вызовете процедуру. Люди, которые пишут такие программы, как тот, что выше, пытается заставить определение процедуры выполнять часть работы вызова процедуры.
Сверлильные упражнения
4.1 Рассмотрите следующую процедуру:
(определить (хо-гум х у) (+ х (* 2 года)))
Показать замену, которая происходит при оценке
(гом 8 12)
4. 2 С учетом следующей процедуры:
(определить (зевок х) (+ 3 (* х 2)))
список всех маленьких людей, которые участвуют в оценке
(зевок (/ 8 2))
(Назовите их имена, их специальности, их аргументы, кто их нанимает и что они делают со своими ответами.)
4.3 Вот несколько определений процедур. Для каждого из них опишите функцию в English, покажите пример вызова и покажите результат этого вызова.
(определить (f x y) (- y x)) (определить (тождество х) х) (определить (три х) 3) (определить (семь) 7) (определить (магическое n) (- (/ (+ (+ (*3 н) 13) (- п 1)) 4) 3))
Реальные упражнения
4.4 Каждое из следующих определений процедур содержит ту или иную ошибку. Скажите, что не так и почему, и исправьте это:
(определить (сфера-объем r) (* (/ 4 3) 3.141592654) (* р р р)) (определить (следующий х) (х + 1)) (определить (квадрат) (* х х)) (определить (треугольник-площадь треугольника) (* 0,5 высоты основания)) (определить (сумма квадратов (квадрат x) (квадрат y)) (+ (квадрат x) (квадрат y)))
4,5 Напишите процедуру преобразования температуры из градусов Фаренгейта в градусы Цельсия и другой, чтобы преобразовать в другом направлении. Две формулы F = 9 ⁄ 5 С +32 и С = 5 ⁄ 9 — 92079 ( 3 ).
4.6 Определить процедуру четвертого
, которая вычисляет четвертую степень своего
аргумент. Сделайте это двумя способами, сначала используя функцию умножения,
а затем с использованием в квадрате
, а не (напрямую) с использованием умножения.
4.7 Напишите процедуру, которая вычисляет абсолютное значение своего аргумента с помощью нахождение квадратного корня из квадрата аргумента.
4.8 «Научная нотация» – это способ представления очень маленьких или очень больших
числа, комбинируя число среднего размера со степенью 10. Например,
5×10 7 представляет число 50000000, а 3,26×10 -9 представляет 0,00000000326 в экспоненциальном представлении. Написать процедуру научный
, который принимает два аргумента, число и показатель степени 10,
и возвращает соответствующее значение:
> (научный 7 3) 7000 > (научный 42 -5) 0,00042
Некоторые версии Схемы представляют дроби в форме a / b , и
некоторые используют научную запись, поэтому вы можете увидеть 21/50000
или 4.2E-4
.
в результате последнего примера вместо 0.00042
, но это
такое же значение.
(Более сложная проблема для горячих точек: можете ли вы написать процедуры, которые идут в другое направление? Так что у вас будет
> (научный коэффициент 7000) 7 > (научный показатель 7000) 3
Вы можете найти примитивные процедуры журнал
и этаж
полезно.)
4.9 Определить процедуру скидки
, которая принимает два аргумента:
начальная цена и процентная скидка. Он должен вернуть новую цену:
> (скидка 10 5) 9. 50 > (скидка 29,90 50) 14,95
4.10 Напишите процедуру для расчета чаевых, которые следует оставлять в ресторане. Это
должен принимать общий счет в качестве аргумента и возвращать сумму
кончик. Он должен дать чаевые на 15%, но он должен уметь округлять, чтобы
общая сумма денег, которую вы оставляете (чаевые плюс первоначальный счет), представляет собой целое число
долларов. (Используйте потолок
процедура округления.)
> (наконечник 19.98) 3.02 > (совет 29.23) 4,77 > (совет 7.54) 1,46
[1] Технически весь выражение
(define (квадрат x) &hellip)
— это специальная форма; само слово , определяющее
, называется ключевым словом . Но на самом деле лиспийцы
почти всегда забывают об этом различии и говорят: « определяет
как
особая форма», так же, как мы сделали здесь. Слово «форма» — архаичное
синоним слова «выражение», поэтому «особая форма» просто означает «особая форма».
выражение».[2] Кроме того, иногда мы будем использовать термины «домен» и «диапазон», когда мы говорим о процедурах, хотя технически только функции имеют домены и диапазоны.
[3] Знаешь, это когда вы машете руками в воздухе вместо того, чтобы объяснить, что вы иметь в виду.
[4] Вы можете подумать, что это скорее неэффективный способ делать что-то — все это копирование и замена перед тем, как вы на самом деле может вычислить что угодно. Возможно, вы боитесь, что ваша Схема в результате программы будут работать очень медленно. Не волнуйся. Это реально происходит по-разному, но эффект тот же, за исключением скорость.
[5] Пока мы не начали определять наши собственные процедуры в этом глава, все маленькие люди были наняты Алонзо, потому что все выражения вводились непосредственно в приглашение схемы. Теперь выражения могут исходить из органов процедур, и таким людям нужно было вычисления этих выражений наняты маленьким человеком, который вычисляет та процедура. Заметьте также, что каждый маленький человек отчитывается перед .