- •Тема: Моделирование. Алгоритмизация. Программирование
- •Общая схема решения задач с помощью эвм:
- •Моделирование
- •Алгоритмизация
- •Свойства алгоритмов
- •Способы представления алгоритмов
- •Основные элементы для построения блок-схем
- •Основные методы алгоритмов
- •Программирование
- •Основные понятия
- •Классификация языков программирования
Программирование
Основные понятия
Языки программирования – специально разработанные искусственные языки, предназначенные исключительно для записи алгоритмов, исполнение которых поручается компьютеру.
В алгоритмическом языке слова называют элементарными конструкциями, словосочетания – выражениями, предложения – операторами, и образуют его три составляющие: алфавит, синтаксис и семантика.
Алфавит – фиксированный для данного языка набор символов (букв, цифр, специальных знаков и т.д.), которые могут быть использованы при написании программы.
Синтаксис – правила построения из символов алфавита специальных конструкций, с помощью которых составляется алгоритм.
Семантика – система правил толкования конструкций языка.
Таким образом, программа составляется с помощью соединения символов алфавита в соответствии с синтаксическими правилами и с учетом правил.
Программа – это последовательность инструкций, предназначенных для выполнения компьютером. В настоящее время программы оформляются в виде текста, который записывается в файлы.
Программирование – это теоретическая и практическая деятельность решения задачи средствами конкретного языка программирования и оформления полученных результатов в виде программы.
Технологический процесс разработки программы на некотором языке программирования включает
редактирование |
компиляция |
отладка |
написание и исправление исходного текста программы (или ее части в виде текстового файла) |
перевод исходного текста программы в машинные коды |
локализация и исправление ошибок (синтаксических, времени выполнения - недопустимые действия, алгоритмической), выявленных во время исполнения программы |
После окончательной отладки программа документируется, т.е. к ней прилагается описание назначения программы и инструкция по эксплуатации.
Классификация языков программирования
по уровням |
по выполнению алгоритма |
|||
низкий |
высокий |
сверхвысокий |
вычислительные |
символьной обработки |
машинные языки и языки символического кодирования (Microcode, Assembler), являются машинно-зависимыми |
ориентированы на систему операндов, характерных для записи определенного класса алгоритмов (Pascal, C++, C#, Prolog.), машинно-независимые |
упрощенный синтаксис, наличие «syntax sugar» (Python, Lua, Ruby, CoffeeScript), полностью машинно-независимые |
выполняют вычисления по заданному алгоритму (Pascal, C++, C#, Prolog, Java, Python) |
обрабатывают данные, представленные системами линейных списков символов (S-Lisp, Closure) |
Языки высокого уровня работают через трансляционные программы –трансляторы, которые преобразуют исходный код в последовательность команд машинного языка. Создание исполняемого файла исходного текста программы предполагает выполнение процессов – компиляции и компоновки. Существует два основных вида трансляторов:
интерпретаторы, которые сканируют и проверяют исходный код в один шаг, и сразу же их выполняют;
компиляторы, которые сканируют исходный код для создания текста программы на машинном языке, которая затем выполняется отдельно.
Основные направления развития языков программирования
процедурное |
непроцедурное |
|||
представляет собой определенную последовательность действий |
решение не задано определенным детерминированным алгоритмом |
|||
структурные |
операционные |
объектно-ориентированные |
функциональные |
логические |
(Pascal, C и др.), – одним оператором записываются целые алгоритмические структуры: ветвления, циклы и т.д. |
(Фортран, Бейсик) – используют несколько операций |
(C++, C#, JavaScript, Java) используют иерархию классов, основными базовыми понятиями являются – объекты, класс объектов, свойства, метод обработки, события |
описывают вычисление некоторой функции (одним из основных элементов является рекурсия) |
(Пролог) – не описывают действий, задают данные и соотношения между ними, путем перебора находят ответ на поставленный вопрос |
Для популярных языков программирования на компьютере существует множество систем программирования, различаются, прежде всего, по тому, какой язык программирования они реализуют (наибольшей популярностью пользуются языки С++, C#, Паскаль).
Системы программирования обычно содержат –
текстовый редактор |
компилятор (транслятор и редактор связей) |
стандартные библиотеки подпрограмм |
отладчик |
запись и редактирование исходного текста программы |
компиляция или интерпретация исходного текста программы в машинный код или псевдокод с диагностикой ошибок |
набор готовых стандартных функций |
поиск ошибок в программе и просмотр хода ее выполнения |
Основные понятия в алгоритмических языках.
Данные – величины, обрабатываемые программой, существует тpи основных вида данных: константы, переменные и массивы.
Константы |
Переменные |
Массивы |
данные, которые зафиксированы в тексте программы и не изменяются в процессе ее выполнения. Н-р, числовые: 7.5, 12; логические: true (истина), false (ложь); символьные: «А», «+»; строковые: «abcde», «информатика» |
данные, которые могут изменять свои значения в ходе выполнения программы. Они обозначаются именами. Переменные бывают целые, вещественные, логические, символьные и строковые |
последовательности однотипных элементов, число которых м.б. фиксировано и которым присвоено одно имя, положение которого в массиве однозначно определяется его индексами или символьным именем |
Выражения – элементы языка, которые предназначаются для выполнения необходимых вычислений, состоят из констант, переменных, указателей функций, объединенных знаками операций:
арифметические |
логические |
над строковыми |
сложение, вычитание, умножение, деление и дp. |
а) отношений - «<»; «>»; «<=»; «>=»; «=»; не равно – «<>»; б) булевы операции «логическое и», «логическое или», «логическое не» и др |
наборами символьных значений дpуг с другом
|
Выражения записываются в виде линейных последовательностей символов (без подстрочных и надстрочных символов, «многоэтажных» дробей и т. д.).
Общие свойства выражений
Имена (идентификаторы) – последовательность символов для обозначения объектов программы (переменных, массивов, функций и дp.).
Класс – тип данных, данные или функции.
Оператор – это общий элемент языка, который задает описание некоторого действия, которое необходимо выполнить, в его состав могут входить ключевые слова; данные; выражения и т.д.
Размер – измеряется в байтах.
Сериализуемость (для языков высокого уровня) – возможность извлечь объект из памяти в виде набора байт.
Ключевые слова – это слова языка, имеющие строго определенное назначение, которые не могут использоваться в качестве идентификаторов.
Функция – это программная единица, которая может быть употреблена в выражении.
Стандартная функция – программа, заранее встроенная в компилятор или в набор встроенных библиотек для вычисления часто употребляемых функций. В качестве аргументов функций можно использовать константы, переменные и выражения.
В общем случае программа может иметь модульную структуру, т.е. состоять из нескольких программных единиц, связанных между собой командами передачи управления.