- •1.2. Основные понятия теории множеств и 1.3. Основные структуры.
- •1.4. Перестановки.
- •1.5. Размещения.
- •1.6. Сочетания.
- •2. Теория вероятности.
- •2.1. Классическое определение вероятности.
- •2.2. Теоремы сложения и умножения вероятностей.
- •2.3. Дискретные случайные величины.
- •2.4. Нормальный закон распределения вероятностей.
- •2.5. Основные понятия теории вероятности.
- •2.6. Аксиомы теории вероятности.
- •3.1. Дифференциальное исчисление функции одной переменной
- •3.2. Разрыв функции.
- •3.3. Функция. График.
- •3.4. Понятие дифференциального уравнения
- •4.1. Языки программирования высокого уровня
- •4.2. Задачи на циклы с параметром.
- •4.3. Алгоритмы
- •4.4. Работа с заданными массивами.
- •4.5. Блок – схемы. Ветвление.
- •4.6. Блок – схемы. Циклы с проверкой условия.
- •Текстовые редакторы. Таблицы
- •Электронные таблицы. Встроенные функции.
- •5.3. Компьютерная графика
- •5.4. Служебные программы.
- •5.7. Основные компоненты операционных систем.
- •5.8. Обзор программного обеспечения.
- •Двоичная система счисления.
- •Представление чисел в различных системах счисления
- •6.2 Количество информации.
- •Интернет
- •Конфигурация и топология цепей
- •Структура сообщений
- •Адресация в Интернет
- •Способы подключения к Интернету
- •Защита информации. Шифрование.
- •4. Ошибки обслуживающего персонала или пользователей.
- •5. Неправильное хранение информации.
- •Кодирование информации
3.4. Понятие дифференциального уравнения
Обыкновенным дифференциальным уравнением называется уравнение, в котором неизвестной является функция одной независимой переменной, причем уравнение содержит не только неизвестную функцию, но и ее производные различных порядков.
Порядок наивысшей производной, входящей в уравнение, называют порядком дифференциального уравнения.
Дифференциальным уравнением первого порядка называют уравнение, в которое входит лишь первая производная неизвестной функции. Это уравнение может быть записано в виде
F(x, y(х), y'(x))= 0,
где x — независимая переменная, у (х) — неизвестная функция, a F — заданная функция трех переменных.
Уравнение связывает три переменные величины х, у и у'. В некоторых случаях оно
определяет переменную у' как функцию переменных х, у: y' = f (х, у) (*),где f — известная функция, определенная в некоторой области D координатной плоскости Оху.
Решением дифференциального уравнения (*) называется такая функция независимой переменной х: y = φ (х), определенная на некотором промежутке (а; b), которая при подстановке в уравнение (*) обращает уравнение в тождество на всем промежутке (а; b). Подстановка y = φ (х) в уравнение (*) возможна лишь тогда, когда функция φ(х) дифференцируема на всем промежутке (a; b). Кроме того, также необходимо, чтобы при любом значении х0 (a; b) точка с координатами (x0; φ(ха)) принадлежала области определения функции f (х, у).
Дифференциальные уравнения порядка выше первого.
Дифференциальным уравнением п-го порядка, разрешенным относительно старшей производной, называется уравнение вида
yn=f(x, y, y'.....y(п-1)),
где х — независимая переменная, у (х) — неизвестная функция, a f — заданная функция указанных аргументов.
Решением такого дифференциального уравнения называется такая функция независимой переменной х: y = y (х), определенная на некотором промежутке (а; b), которая при подстановке в уравнение обращает уравнение в тождество для всех значений х (a; b). Подстановка у = у (х) в уравнение возможна лишь в том случае, когда функция у (х) имеет все производные до n-й включительно на промежутке (а; b). Кроме того, также необходимо, чтобы при любом значении х0 (a; b) точка с координатами (х0; у (х0); у' (х0); ...; у(п-1) (х0)) принадлежала области определения функции f.
4.1. Языки программирования высокого уровня
«Родным» языком ЭВМ является язык машинных команд (ЯМК). Самые первые ламповые ЭВМ понимали только этот язык. В программах на ЯМК данные обозначаются их адресами в памяти машины, выполняемые операции — числовыми кодами. Программист сам должен заботиться о расположении в памяти ЭВМ команд программы и данных.
Современные программисты так не работают. Для программирования на современных ЭВМ применяются системы программирования (СП).
Программное обеспечение компьютера делится на три части:
— системное ПО,
—прикладное ПО,
— системы программирования.
Системное ПО — это, прежде всего, операционные системы, диалоговые оболочки типа Norton Commander. Прикладное ПО — это многочисленные редакторы, электронные таблицы, информационные системы, математические пакеты, экспертные системы и многое другое, с чем работает абсолютное большинство пользователей.
Системы программирования предназначены для создания программ управления компьютером.
Системы программирования позволяют исполнять на ЭВМ программы, написанные на языках более высокого уровня, чем язык машинных команд.
Понятие уровня языка программирования связано со степенью его удаленности от языка процессора ЭВМ и приближенности к естественному человеческому языку, к формальному языку предметной области (чаще всего — математики). Чем выше уровень, тем дальше от ЭВМ и ближе к человеку.
Язык машинных команд — это язык самого низкого уровня. Первые языки программирования, отличные от ЯМК, появились на машинах первого поколения и назывались они Автокодами.
Автокод — это машинно-ориентированный язык символического программирования.
Одна команда на Автокоде соответствует одной машинной команде.
Начиная с машин третьего поколения, языки такого типа стали называть Ассемблерами. В наше время на Ассемблере программируют довольно редко. Это, как правило, делают системные программисты.
Сокращение ЯПВУ расшифровывается так: языки программирования высокого уровня. Сегодня большинство программистов работают именно на этих языках. Наиболее распространенными являются языки Паскаль, Бейсик, СИ, Фортран.
Вот пример записи одной и той же команды сложения двух чисел на трех языках разного уровня: ЯМК, Автокоде и Паскале:
С:=А+В Паскаль
ADD А, В, С Автокод
01 24 28 2С ЯМК
Видно, как с повышением уровня языка повышается «понятность» команды (по-английски слово ADD означает «сложить»). Однако, чем понятнее для человека, тем непонятнее для процессора ЭВМ.
Таким образом, компьютер сам производит перевод под управлением программы-транслятора. Процесс перевода программы на язык машинных команд называется трансляцией. Прежде чем выполнить, например, программу на Паскале, ее нужно оттранслировать. Трансляцию можно представить как спуск с верхней ступеньки языка на самую первую ступеньку — ЯМК:
Рис. Трансляция с Автокода и Паскаля на ЯМК
Транслятор является обязательным элементом любой системы программирования. Первые СП включали в себя только транслятор. Затем к транслятору стали добавляться различные сервисные средства: текстовые редакторы, отладчики, системы обслуживания программных библиотек, средства организации дружественного интерфейса с пользователем.
Наиболее удобными для пользователя стали системы программирования, созданные на персональных компьютерах.
Язык программирования, с которым работает СП, называется ее входным языком. Системы программирования именуются по названию своего входного языка. Например: «Система Бейсик», «Система Паскаль», «Система Фортран».
Иногда в название систем включаются префиксы, обозначающие, например, ее фирменное происхождение. Очень популярны системы с приставкой «Турбо»: Турбо-Паскаль, Турбо-СИ и др. Это системы программирования, разработанные фирмой Borland.
О двух способах трансляции. Реализовать тот или иной язык программирования на ЭВМ — это значит создать транслятор с этого языка для данной ЭВМ. Существуют два принципиально различных метода трансляции. Они называются «компиляция» и «интерпретация».
Компиляция является аналогом полного предварительного перевода; интерпретация — аналог синхронного перевода. Транслятор, работающий по принципу компиляции, называется компилятором. Транслятор, работающий методом интерпретации, называется интерпретатором.
При компиляции в память ЭВМ загружается программа-компилятор. Она воспринимает текст программы на ЯПВУ как исходную информацию. Компилятор производит синтаксический контроль программы и при обнаружении ошибок выводит диагностические сообщения. Если ошибок нет, то результатом компиляции является программа на языке машинных команд.
Затем компилятор удаляется из оперативной памяти. В памяти остается только программа на ЯМК, которая выполняется для получения результатов.
Н а рисунке 12.11 схематически показан процесс выполнения программы на ЯПВУ с использованием компиляции. Прямоугольником изображаются программы в машинных кодах, овалами — обрабатываемая и конечная информация.
Рис.
12.11. Выполнение программы на ЯПВУ с использованием компилятора
Конечно, компиляция с Автокода-Ассемблера много проще, чем с языков высокого уровня. Для этой процедуры часто применяют специальный термин — ассемблирование. А под словом Ассемблер понимается не только язык программирования, но и транслятор с него.
Интерпретатор в течение всего времени работы программы находится во внутренней памяти (иногда для этого используется ПЗУ). В ОЗУ помещается программа на ЯПВУ. Интерпретатор «читает ее первый оператор, переводит его в машинные команды и тут же организует выполнение этих команд. Затем переходит к переводу и выполнению следующего оператора и так до конца программы. При этом результаты предыдущих переводов в памяти не сохраняются. При повторном выполнении одного и того же оператора в цикле, он снова будет транслироваться. Перед трансляцией каждого оператора происходит его синтаксический анализ.
На рисунке 12.12 схематически показан процесс выполнения программы на ЯПВУ с использованием интерпретации.
Таким образом, при компиляции трансляция и исполнение программы идут последовательно друг за другом. При интерпретации — параллельно.
Один раз откомпилированная программа может быть сохранена во внешней памяти и затем многократно выполняться. На компиляцию машинное время тратиться больше не будет. Программа на интерпретируемом языке при каждом выполнении подвергается повторной трансляции. Кроме того, интерпретатор может занимать значительное место в оперативной памяти.
Рис. 12.12. Выполнение программы на ЯПВУ с использованием интерпретатора
Из-за указанных причин использование компиляторов удобнее для больших программ, требующих быстрого счета и большого объема памяти. Программы на Паскале, Си, Фортране всегда компилируются. Язык Бейсик часто реализуется через интерпретатор.