- •Основы программирования
 - •1. Программное обеспечение персонального компьютера
 - •1.1. Системное программное обеспечение
 - •1.2. Прикладное программное обеспечение
 - •1.3. Инструментальные средства
 - •2. Основные этапы решения задач на компьютере
 - •1. Описание алгоритма с помощью естественного языка.
 - •2. Описание алгоритма с помощью блок-схемы.
 - •3. Описание алгоритма с помощью алгоритмических языков.
 - •Основные алгоритмические структуры
 - •3. Как вызвать программу?
 - •4. Языки программирования
 - •4.1. Эволюция языков программирования
 - •4.1.1. Движущие силы эволюции яп
 - •4.1.2. История развития яп
 - •4.1.3. Классификация яп
 - •4.1.4. Тенденции развития яп
 - •4.2. Трансляторы
 - •4.3. Язык программирования Паскаль
 - •4.3.1. Использование среды программирования Турбо Паскаль
 - •5. Основные элементы программирования
 - •6. Общая структура языков программирования введение
 - •6.1. Синтаксис
 - •6.2. Алгоритмические механизмы (управляюшие структуры)
 - •6.2.1. Оператор условия
 - •6.2.2. Оператор множественного выбора
 - •6.2.3. Параметрический цикл
 - •6.2.4. Операторы цикла с условием
 - •6.2.5. Оператор безусловного перехода
 - •6.3. Механизмы управления данными
 - •6.3.1. Механизмы пересылки данных
 - •6.3.2. Механизмы размещения данных
 - •6.3.3. Механизмы доступа к данным
 - •6.4. Интерфейсные механизмы
 - •6.5. Механизмы управления аппаратурой
 - •6.6. Механизмы структуризации
 - •7. Типы и структуры данных
 - •7.1. Понятие типа данных
 - •7.1.1. Встроенные типы данных
 - •7.1.2. Уточняемые типы данных
 - •7.1.3. Перечисляемые типы данных
 - •7.1.4. Конструируемые типы данных
 - •7.1.4.1. Массивы
 - •7.1.4.2. Записи
 - •7.1.4.3. Записи с вариантами
 - •7.1.4.4. Множества
 - •7.1.5. Указатели
 - •7.1.6. Динамическое распределение памяти и списки
 - •7.1.7. Абстрактные (определяемые пользователями) типы данных
 - •7.1.7.1. Представление типа
 - •7.1.7.2. Реализация типа
 - •7.1.7.3. Инкапсуляция
 - •7.1.7.4. Наследование типов
 - •7.1.7.5. Разновидности полиморфизма
 - •7.1.8. Типы и структуры данных, применяемые в реляционных базах данных
 - •7.1.9. Типы и структуры данных, применяемые в объектно-реляционных базах данных
 - •7.1.9.1. Строчные типы данных
 - •7.1.9.2. Наследование таблиц и семантика включения
 - •7.1.9.3. Типы коллекций
 - •7.1.9.4. Объектные типы данных
 
6.1. Синтаксис
Каждый язык (не только программирования) характеризуется алфавитом - набором букв, допустимых к использованию, и синтаксисом - набором правил, по которым эти символы следует записывать. Большинство ЯП в качестве алфавита используют латинский алфавит, дополненный арабскими цифрами и всякого рода разделителями вроде скобок, знаков арифметических операций, запятых, etc.
Наиболее общим в синтаксисах ЯП является выделение среди всех лексем (минимальных единиц языка, имеющих самостоятельный смысл) служебных (зарезервированных) слов и правила записи операторов - "предложений" из лексем.
Кроме того, среди лексем выделяются символы операций (как правило они состоят из одной-двух букв). Особенностью операции (и главным ее отличием от оператора) является наличие результата. Как правило операции выступают в роли связок между какими либо значениями (результатами других операций или функций, значениями, возвращаемыми функциями). Приоритет операций, устанавливающий порядок их выполнения, является частью синтаксиса ЯП и для (бинарных) арифметических операций совпадает с общепринятым. Порядок выполнения операций определяется их приоритетом, порядком записи и скобками.
Синтаксические правила наиболее распространенных алгоритмических ЯП различаются лишь в деталях.
6.2. Алгоритмические механизмы (управляюшие структуры)
Естественно, что основными механизмами любого ЯП являются механизмы управления данными и процессом выполнения операторов. Рассмотрим последние.
Давно доказано, что для реализации алгоритма любой сложности достаточно совсем небольшого набора средств (к примеру условного оператора и оператора перехода или оператора цикла с условием и оператора переходов). Однако, ограничить язык наличием какого бы то ни было "алгоритмического минимума" нецелесообразно с точки зрения эффективности реализации большинства алгоритмов (каждый может проверить это, попытавшись нарисовать блок-схему некоторого циклического алгоритма с использованием только условных вершин для ветвления, даже не пытаясь реализовать его на каком либо ЯП). Даже максимально редуцированные языки - ассемблеры - обладают помимо условных операторов операторами параметрических циклов. Поэтому в большинство ЯП включается примерно следующий джентльменский набор операторов изменения порядка следования операторов.
6.2.1. Оператор условия
Необходимость его присутствия в языке очевидна. Предоставляет возможность выполнить то или иное действие в зависимости от истинности некоторого логического условия (ЛУ). Практически во всех языках называется if.
Условный оператор практически всегда имеет две формы - усеченную, когда указывается лишь действие, выполняемое при истинности ЛУ, и полную когда указываются действия выполняемые при обоих значениях ЛУ. Типичный пример
if (a=4) a=a+1; else a=b-2; //C++
6.2.2. Оператор множественного выбора
Некоторые алгоритмы требуют выполнения более двух различных действий в зависимости от некоторого условия (всегда не логического; к примеру от значения некоторой переменной), то есть ветвления более чем на 2 ветки. Реализация такого ветвления с помощью условного оператора нецелесообразна (кто не верит - пусть нарисует). Как следствие в большинство ЯП включен оператор множественного выбора.
Суть его, как правило, в следующем. Некоторое выражение (как правило это просто переменная), которое к моменту выполнения оператора может принимать несколько различных значений, сравнивается с одним из заранее определенных программистом значений, и в случае совпадения выполняется соответствующий оператор.
case c of 3: c: =8; 4: c:= b-3; else b:= 4; end; {Pascal}
