- •Алгоритмы
- •Свойства алгоритма
- •Способы описания алгоритмов
- •Язык программирования
- •Способы описания синтаксиса языка программирования
- •1. Бнф (Бэкуса-Наура форма)
- •Компиляторы и интерпретаторы
- •Обзор языков программирования высокого уровня (таблица)
- •Язык программирования Паскаль Первая программа на языке программирования Паскаль
- •Типы, переменные и константы
- •Основные типы данных языка Pascal
- •Операторы ввода/вывода
- •Форматы вывода
- •Выражения и операции Выражения
- •Операции
- •Операции div и mod для целых
- •Операции shl и shr для целых
- •Логические операции
- •Часто используемые правила математической логики
- •Стандартные процедуры и функции Стандартные функции
- •Стандартные функции в Dephi
- •Стандартные процедуры для целых
- •Явление переполнения
- •Погрешность округления и вычислительная погрешность
- •Примеры на суммирование рядов
- •Процедуры break и continue
- •Оператор безусловного перехода goto
- •Подпрограммы. Процедуры и функции
- •Процедуры
- •Синтаксис описания процедуры
- •Оператор вызова процедуры
- •Функции
- •Переменная Result
- •Способы передачи параметров Передача по значению. Параметры-значения
- •Передача по ссылке. Параметры-переменные (с ключевым словом var)
- •Семантика вызова подпрограммы
- •Алгоритм вызова подпрограммы
- •Статическая и автоматическая память
- •Локальные и глобальные переменные
- •Обращение к глобальным переменным и побочный эффект
- •Область видимости и время жизни объекта
- •Статическая локальная переменная
- •Перегрузка имен подпрограмм
- •Структура модуля
- •Перечислимый и диапазонный типы Перечислимый тип
- •Записи с вариантами
- •Как записи с вариантами хранятся в памяти
- •Сортировка массивов записей
- •Индексная сортировка
- •Множества
- •Стандартные подпрограммы для работы с символами
- •Виды строк в Delphi
- •Cтроки shortstring
- •Основные подпрограммы для работы со строками
- •Основные подпрограммы для работы со строками (Delphi)
- •Алгоритмы на строках
- •Использование Split
Компиляторы и интерпретаторы
Компилятор - программа, преобразующая текст программы на языке программирования в машинные коды (в более общем смысле компилятор - это программа, преобразующая текст программы из одного представления в другое, например, в байт-код, в текст программы на ассемблере и т.п.)
Интерпретатор - программа или устройство, выполняющее программу непосредственно на языке программирования, в промежуточном представлении или в машинных кодах.
Устройством, выполняющим машинные коды, является процессор компьютера.
Для большинства языков программирования существуют компиляторы, переводящие программу на ЯП в машинные коды (Pascal, С++).
Для таких языков как Basic, JavaScript имеются интерпретаторы, выполняющие текст программы команда за командой. Скорость такой интерпретации - низкая (приблизительно в 100-1000 раз медленнее машинных кодов).
Для С# и Java интерпретатор выполняет байт-код, предварительно полученный с помощью компилятора. Скорость интерпретации высокая (приближается к скорости выполнения программы в машинных кодах).
Обзор языков программирования высокого уровня (таблица)
Универсальные языки |
Функциональные и логические языки |
Чистые объектно-ориентированные языки |
Параллельные языки |
Языки сценариев |
Fortran (1954) |
LISP (1958) функциональный |
Simula (1967) |
Occam (1982) |
JavaScript (1996) |
Cobol (1960) |
Prolog (1971) логический |
SmallTalk (1972) |
Ada95 (1995) |
Perl (1996) |
Algol (1960) |
|
Eiffel (1986) |
|
Python (1996) |
Basic (1963) |
|
|
|
|
PL/1 (1964) |
|
|
|
|
Pascal (1970) |
|
|
|
|
C (1972) |
|
|
|
|
Modula-2 (1978) |
|
|
|
|
Ada (1983) |
|
|
|
|
C++ (1988) |
|
|
|
|
Java (1995) |
|
|
|
|
C# (2000) |
|
|
|
|
Oberon (1988) |
|
|
|
|
Zonnon (2002) |
|
|
|
|
Язык программирования Паскаль Первая программа на языке программирования Паскаль
program first; // Программа вычисления длины окружности и площади круга // Автор: Михалкович С.С. // Дата написания: 14.09.05 const Pi=3.14; var r: real; // входные данные - радиус круга S,C: real; // выходные данные - площадь круга и длина окружности begin write('Введите радиус окружности'); readln(r); S:=Pi*r*r; C:=2*Pi*r; writeln('Длина окружности равна ',С); writeln('Площадь круга равна ',S); end.
Комментарии в программе
{ } и (* *) – могут быть вложенными
// – до конца строки.
Комментарии игнорируются компилятором и предназначены для пояснения текста программы.
Общая структура программы
program имя; // заголовок программы (не обязателен) раздел подключения внешних модулей // uses ... раздел описаний begin операторы end.
Выделенные слова называются зарезервированными. Они используются для описания конструкций языка и не могут использоваться в качестве имен. То есть нельзя описать, скажем, переменную с именем begin, но можно - с именем integer.
Правила записи программ
Большие и маленькие буквы не различаются.
Операторы разделяются символом ";" (точка с запятой). После последнего оператора тоже может ставиться точка с запятой; в этом случае считается, что за этим оператором стоит пустой оператор.
Между лексемами может содержаться произвольное количество пробелов, символов перехода на новую строку, знаков TAB.
Лексемы языка Pascal
1) Специальные символы
знаки операций: := >= = ограничители: ; , ( зарезервированные слова: begin end var
2) Идентификаторы (используются в качестве имен объектов программы).
Определение. Идентификатор - последовательность латинских букв или цифр, начинающаяся с буквы. К буквам также относят символ _ (подчеркивания).
_a1 - идентификатор 3dnews - не идентификатор
3) Константные значения
3.14 1E-12 'Hello'
4) Комментарии.