- •Алгоритмы
- •Свойства алгоритма
- •Способы описания алгоритмов
- •Язык программирования
- •Способы описания синтаксиса языка программирования
- •1. Бнф (Бэкуса-Наура форма)
- •Компиляторы и интерпретаторы
- •Обзор языков программирования высокого уровня (таблица)
- •Язык программирования Паскаль Первая программа на языке программирования Паскаль
- •Типы, переменные и константы
- •Основные типы данных языка Pascal
- •Операторы ввода/вывода
- •Форматы вывода
- •Выражения и операции Выражения
- •Операции
- •Операции div и mod для целых
- •Операции shl и shr для целых
- •Логические операции
- •Часто используемые правила математической логики
- •Стандартные процедуры и функции Стандартные функции
- •Стандартные функции в Dephi
- •Стандартные процедуры для целых
- •Явление переполнения
- •Погрешность округления и вычислительная погрешность
- •Примеры на суммирование рядов
- •Процедуры break и continue
- •Оператор безусловного перехода goto
- •Подпрограммы. Процедуры и функции
- •Процедуры
- •Синтаксис описания процедуры
- •Оператор вызова процедуры
- •Функции
- •Переменная Result
- •Способы передачи параметров Передача по значению. Параметры-значения
- •Передача по ссылке. Параметры-переменные (с ключевым словом var)
- •Семантика вызова подпрограммы
- •Алгоритм вызова подпрограммы
- •Статическая и автоматическая память
- •Локальные и глобальные переменные
- •Обращение к глобальным переменным и побочный эффект
- •Область видимости и время жизни объекта
- •Статическая локальная переменная
- •Перегрузка имен подпрограмм
- •Структура модуля
- •Перечислимый и диапазонный типы Перечислимый тип
- •Записи с вариантами
- •Как записи с вариантами хранятся в памяти
- •Сортировка массивов записей
- •Индексная сортировка
- •Множества
- •Стандартные подпрограммы для работы с символами
- •Виды строк в Delphi
- •Cтроки shortstring
- •Основные подпрограммы для работы со строками
- •Основные подпрограммы для работы со строками (Delphi)
- •Алгоритмы на строках
- •Использование Split
Операции shl и shr для целых
x shl y - число, получаемое в результате сдвига на y позиций влево двоичного представления x.
x shr y - число, получаемое в результате сдвига на y позиций вправо двоичного представления x. Старшие биты при этом обнуляются.
Примеры.
x shl 2 = 001010002 = 1*25+0*24+1*23+0*22
x shl y = x*2y
x shr 2 = 000010102 = 1*23+0*22+1*21+0*20
x shr y = x div 2y
Логические операции
Простые: x>0 или 2*2=4
Составные: состоят из простых + логические операции (and, or, not, xor)
(x>=3) and (x<=5) (x<3) or (x>5) = not ((x>=3) or (x<=5))
Таблица истинности
A |
B |
A or B |
A and B |
A xor B |
not A |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
Пример. A находится между B и С.
или
Решение.
(A>B) and (A<C) or (A>C) and (A<B)
Пример. Написать условие, при котором точка с координатами (х, у) лежит внутри, вне, на границе прямоугольника с вершинами (x1,y1) и (x2,y2) и сторонами, параллельными осям координат.
var Inside, Outside, OnTheBoundary: boolean; ... Inside:=(x>x1) and (x<x2) and (y>y1) and (y<y2); Outside:=(x<x1) or (x>x2) or (y<y1) or (y>y2); OnTheBoundary:=not Inside and not Outside;
Часто используемые правила математической логики
not not A = A not (A and B) = not A or not B not (A or B) = not A and not B A or (not A and B) = A or B True and A = A True or A = True False and A = False False or A = A
Стандартные процедуры и функции Стандартные функции
abs(x) |
|x| |
sqr(x) |
х^2 |
sqrt(x) |
корень квадратный из х |
ln(x) |
ln x |
exp(x) |
е^х |
sin(x) |
sin x |
cos(x) |
cos x |
arctan(x) |
arctan x |
int(x) |
целая часть х (вещественный результат) |
trunc(x) |
целая часть х (целый результат) |
frac(x) |
дробная часть х (вещественный результат) |
round(x) |
округление вещественного х (целый результат) |
Odd(i) |
True, если i - нечетно, False в противном случае |
sizeof(n) |
Размер значения выражения n в байтах. В качестве n может также использоваться имя типа |
Pi |
возвращает число "пи" = 3.141592... |
Пример. sqr(x+y-1)
Стандартные функции в Dephi
Требуется подключение модуля Math: uses Math;
power(x,y) |
x^у |
arccos(x) |
|
arcsin(x) |
|
sec(x) |
|
cosec(x) |
|
tan(x) |
|
DivMod(x,y,d,m) |
d:=x div y; m:=x mod y; |
InRange(x,min,max) |
min<=x<=max |
Hypot(a,b) |
гипотенуза треугольника с катетами a, b |
log10(x) |
|
logN(N,x) |
|
max(x,y) |
|
min(x,y) |
|
В модуле Math определены также константы
const MaxDouble = 1.7E308; MinDouble = 5E-324;