- •Алгоритмы
- •Свойства алгоритма
- •Способы описания алгоритмов
- •Язык программирования
- •Способы описания синтаксиса языка программирования
- •1. Бнф (Бэкуса-Наура форма)
- •Компиляторы и интерпретаторы
- •Обзор языков программирования высокого уровня (таблица)
- •Язык программирования Паскаль Первая программа на языке программирования Паскаль
- •Типы, переменные и константы
- •Основные типы данных языка Pascal
- •Операторы ввода/вывода
- •Форматы вывода
- •Выражения и операции Выражения
- •Операции
- •Операции div и mod для целых
- •Операции shl и shr для целых
- •Логические операции
- •Часто используемые правила математической логики
- •Стандартные процедуры и функции Стандартные функции
- •Стандартные функции в Dephi
- •Стандартные процедуры для целых
- •Явление переполнения
- •Погрешность округления и вычислительная погрешность
- •Примеры на суммирование рядов
- •Процедуры break и continue
- •Оператор безусловного перехода goto
- •Подпрограммы. Процедуры и функции
- •Процедуры
- •Синтаксис описания процедуры
- •Оператор вызова процедуры
- •Функции
- •Переменная Result
- •Способы передачи параметров Передача по значению. Параметры-значения
- •Передача по ссылке. Параметры-переменные (с ключевым словом var)
- •Семантика вызова подпрограммы
- •Алгоритм вызова подпрограммы
- •Статическая и автоматическая память
- •Локальные и глобальные переменные
- •Обращение к глобальным переменным и побочный эффект
- •Область видимости и время жизни объекта
- •Статическая локальная переменная
- •Перегрузка имен подпрограмм
- •Структура модуля
- •Перечислимый и диапазонный типы Перечислимый тип
- •Записи с вариантами
- •Как записи с вариантами хранятся в памяти
- •Сортировка массивов записей
- •Индексная сортировка
- •Множества
- •Стандартные подпрограммы для работы с символами
- •Виды строк в Delphi
- •Cтроки shortstring
- •Основные подпрограммы для работы со строками
- •Основные подпрограммы для работы со строками (Delphi)
- •Алгоритмы на строках
- •Использование Split
Операторы ввода/вывода
Оператор вызова процедуры ввода имеет одну из следующих форм:
read(список переменных); readln(список переменных); readln;
Оператор вызова процедуры вывода имеет одну из следующих форм:
write(список выражений); writeln(список выражений); writeln;
Для перехода на новую строку в процессе вывода можно использовать следующий прием:
const newline = #10; ... writeln(x, newline, y);
или
writeln('Hello'+newline+'world');
Форматы вывода
Для любых типов:
write(x:а); // а - ширина поля вывода
Если число не помещается в указанные позиции, то формат игнорируется. Вещественные числа в этом формате выводятся в экспоненциальной форме.
Для вещественного типа:
write(x:а:b); // a - ширина поля вывода, b - количество цифр в дробной части
Вещественные числа в этом формате выводятся в виде с фиксированной точкой.
Неправильный формат вывода игнорируется. Например, если x=14.457, то после
write(x:0:2)
будет выведено 14.46.
Выражения и операции Выражения
Выражения - конструкции, задающие правила вычисления. Выражения состоят из операндов и операций. Для группировки в выражениях могут использоваться круглые скобки. В качестве операндов могут выступать также вызовы функций.
Каждое выражение имеет тип, зависящий от типов входящих в него операндов. Выражение называют арифметическим, если его значением является число. Выражение называют логическим, если его значение имеет логический тип.
Логическое выражение всегда имеет тип boolean.
Тип арифметического выражения определяется типом операнда "старшего" типа: если в выражении есть хотя бы один операнд типа real, то выражение имеет тип real, если нет операндов типа real, но есть операнды типа integer, то выражение имеет тип integer. Исключение составляет операция деления: результатом деления целого на целое является вещественное.
Не все типы совместимы в выражении: к примеру, нельзя сложить целое и строку, нельзя из строки вычесть символ.
При вычислениях выражений со смешанными типами также происходит неявное преобразование типов. Например, если i имеет тип integer, а bt - тип byte, то при вычислении выражения i+bt происходит вначале преобразование значения bt к "старшему" типу integer и только после этого выполняется операция сложения.
Операции
Операции в выражении вычисляются в порядке приоритетов: вначале операции с большим приоритетом, затем - с меньшим. Операции с одинаковым приоритетом вычисляются слева направо. Операции в скобках выполняются в первую очередь.
Таблица приоритетов операций языка Pascal
+ - (унарные)
* / div mod shl shr and
+ - (бинарные) or xor
< > <= >= = <> in
Примеры.
2-1+3=(2-1)+3 4/2*2=(4/2)*2 4/2/2=(4/2)/2 1*2+3*4 - операции умножения вычисляются в непредсказуемом порядке.
Операции div и mod для целых
x div y - результат целочисленного деления x на y. Точнее, x div y = x/y, округленное до ближайшего целого по направлению к 0.
x mod y - остаток при целочисленном делении x на y. Точнее, x mod y = x-(x div y)*y.
Примеры.
5 div 3 = 1 5 mod 3 = 2 x mod 2 = 0 <=> х - четное x mod 2 <>0 <=> х - нечетное
Пример. Выделение цифр из числа.
х:=345; a1 := x mod 10; // = 5 x := x div 10; // = 34 a2 := x mod 10; // = 4 a3 := x div 10; // = 3
Таким способом можно разбить число на цифры.