

Курс: «Алгоритмические языки и программирование»
Лекции, практические занятия: к.т.н., доцент Ольга Павловна Шафеева
Лабораторные работы: к.ф.-м.н., доцент Юрий Петрович Чернов, ст.преподаватель Марина Спартаковна Дорошенко
1

СТРУКТУРА ПРОСТОЙ ПРОГРАММЫ
program a1_4;
var a,b,c: real; {вещественный тип} begin
writeln('Введите a b'); {сообщение на экран} read(a,b); {ввод a и b}
c: = a/b;
writeln (‘c=’, c:5:2); с:общее_число_поз:после_дес_тчк}
end.
1 Первые шаги в Delphi/ Сост.: О. П. Шафеева, Е. А. Залевская; |
|
|
ОмГТУ. - Омск: Изд-во ОмГТУ, 2003. - 32 с. |
УФ - 150 экз. |
|
2 Фаронов В.В. DELPHI 5.0. Начальный курс 2001. – 606 С. |
|
|
3.Практикум по программированию для начинающих. ТП 7.0, |
|
|
ОмГТУ, 2000. – 128 с. |
УФ-147 экз. |
2 |
|
|

Лекция 2
Оператор ПРИСВАИВАНИЯ
<имя переменной>:=<выражение>;
|
INTEGER, REAL, BOOLEAN, CHAR, SТRING |
|
||||
|
1) |
арифметический оператор присваивания |
|
|||
|
x:=0; |
(для VAR x:INTEGER;); |
|
|||
|
Y:=Y+1,1; |
(для VAR Y:REAL;) |
|
|||
|
2) |
логический |
|
|
|
|
|
f1:=false; f2:=true; |
(VAR f1, f2:BOOLEAN;); |
|
|||
|
B:=(X<0) OR (K>1); |
(VAR X,K:REAL; B:BOOLEAN;) |
|
|||
|
3) |
символьный (литерный) |
S:='+'; A:=S; (VAR A, S:CHAR;). |
|||
|
4) |
Строковый |
Var ss:string; |
|
|
|
|
|
|
|
ss ='строка'; |
|
|
VAR |
X,Y:INTEGER; A: real; |
|
| A:=4.6; |
|||
... |
A:= X*Y; {3автоматическое преобразование к вещественному} |
|||||
|
X:= TRUNC(A); |
{отбрасывается дробная часть} |
| X=4 |
|||
|
Y:= ROUND(A); |
|
{округление} |
| Y=5 |
||
|
|
|
|
|
|
3 |

Логические операции
С одним операндом
Операнд |
not x |
|
х |
TRUE |
|
FALSE |
||
TRUE |
FALSE |
|
|
НЕ |
|
|
с двумя операндами |
|||||
|
|
|
|
|
|
|
|
X |
|
Y |
|
and |
or |
|
xor |
False O |
False O |
False O |
False O |
False O |
|||
|
|
|
|
|
|
|
|
False O |
True 1 |
|
False O |
True 1 |
|
True 1 |
|
True |
1 |
False 0 |
False 0 |
True |
1 |
True |
|
1 |
1 |
True 1 |
|
True 1 True 1 |
False 0 |
||
True |
|
||||||
|
|
И |
|
ИЛИ |
искл.ИЛИ |
Приоритет операций в выражении
Арифметические |
Логические |
Отношения |
Другие\ Приоритет |
|
|
NOT |
|
@-адресное |
1 |
|
|
|
||
*, /, DIV, MOD |
AND,SHL,SHR |
|
преобразование 2 |
|
+, - |
OR,XOR |
|
|
3 |
|
|
|
||
|
|
<=,>=,<>,<,>,= |
IN |
4 |
Пр. логического выражения: (x>0)AND (y>0)
4

|
|
|
Тип |
Операции |
Обозначение |
|
|
Операндов |
Результата |
Арифметические |
+,-,* |
R или I |
I, если оба операнда |
|
|
|
|
целые |
|
|
|
|
R при исходн.одномR |
|
|
|
|
|
|
Деление |
/ |
R или I |
R (вещественный) |
|
|
|
|
|
|
Деление с |
DIV |
|
|
|
отбрасыванием остатка |
|
I (целый) |
I |
|
Вычисление остатка |
|
|
||
MOD |
|
|
|
|
при деление чисел |
|
|
|
|
|
|
|
|
|
Отрицание |
NOT |
|
Логический |
|
Логическое сложение |
OR |
логический |
|
|
Логическое |
AND |
|
|
|
|
|
|
||
умножение |
|
|
|
|
Исключающее «или» |
XOR |
|
|
|
Сравнение на равенство |
= |
любой тип |
Логический |
|
и неравенство |
< > |
|
|
|
|
|
|
|
|
|
|
|
|
|
Сравнение |
>,<=,>=,< |
Любой тип |
Логический |
|
|
|
|||
|
|
|
|
|
Сдвиг влево содер.i |
i SHL j |
Целый |
Целый |
|
на j разрядов |
|
|
|
|
|
|
|
|
|
Сдвиг вправо содер.i |
i SHR j |
над целым двоичным числом |
5 |
|
на j разрядов |
|
|
||
|
|
|
|

ABS(X)
SQR(X)
SIN(x) COS(x) EXP(x) LN(x)
SQRT(x) ARCTAN(x)
TRUNC(X)
ROUND(X)
PRED(X)
SUCC(X)
Стандартные функции
Выполняемые функции |
|
Тип |
||
аргумента |
функции |
|||
|
|
|||
IXI |
|
I или R |
I или R |
|
X 2 |
(квадрат) |
|
|
|
SIN X |
R |
R |
||
COS X |
или |
(вешест- |
||
|
ex |
|||
Ln X |
_ |
I |
венный) |
|
|
√х (корень квадратный) |
|
|
|
ARCTAN X |
|
|
||
выделение целой части числа |
R |
I |
||
округление Х до ближайшего |
|
|
||
целого |
|
|
||
нахождение предшествующего |
I |
I |
||
значения (в его типе) |
|
|
||
нахождение последующего |
B или C |
B или C |
||
элемента (значение, следующее |
||||
за Х в его типе) |
|
|
ORD(X) |
определяет порядковый номер Х |
C |
I |
|
|
в его типе |
|
|
|
CHR(X) |
определяет значение символа |
I |
C |
|
|
по его порядковому номеру |
|
(символьный) |
|
|
|
6 |
||
ODD(X) |
логическая функция проверки |
I (целый) |
||
B |
||||
|
нечетности(функция истинна, |
|
(логический) |

Пр.1. Для задания явного порядка выполнения операций используются
круглые скобки |
(A=B) AND (C<=0) |
|
||
Пр.2. |
15 DIV 6/2 вычисляется как (15 div 6)/2 = 2/2 = 1 |
|
||
Пр.3. Для |
|
|
|
|
VAR |
X,Y:real; |
|
|
|
|
D: boolean; |
|
|
|
запись D>Z or X>Y бессмысленна (надо (D>Z) or(X>Y) ) |
|
|||
Пр.4 Var |
|
|
|
|
|
B, C, D, L: boolean; |
|
||
|
S:char; |
|
|
|
Begin |
|
|
|
|
. . . |
B:=S< >'+'; |
{TRUE} |
|
|
|
|
|||
|
L:=D OR B<= NOT C; {TRUE илиFALSE} |
|
||
END. |
|
|
|
|
Математические правила для реализации в Паскале |
|
|||
tg x реализуется как sin(x)/cos(x) |
|
|||
Loga b |
- |
ln(b)/ln(a) |
|
|
Lg b |
|
- |
ln(b)/ln(10) |
|
ax |
|
- |
exp(x*LN(a)) |
7 |

ОСНОВЫ АЛГОРИТМИЗАЦИИ
Алгоритм
"алгоритм" (algorithm)
ал-Хорезми (из Хорезма) 1Х веке
Алгоритм представляет собой последовательность
арифметических и логических действий над данными, приводящую к получению решения задачи (вычислению результата, если данные числовые) при изменениях исходных данных в достаточно широких пределах.
Алгоритм обладает следующими свойствами:
1.Дискретность
2.Определенность
3.Связность
4.Конечность
5.Результативность
6.Массовость
7.Эффективность
8

Способы записи алгоритмов
1)Словесно-формульная запись на естественном языке;
2)Схемы алгоритмов (СА)
3)Специальные языки ( алгоритмические языки и
псевдокоды )
Пример. Найти наименьшее из трех чисел А, В и С. Словесная форма записи алгоритма
1.Ввести числа А, В, С.
2.Присвоить MIN=A (значение 1-го числа)
3.Сравнить MIN>B? Если "да", то выполнить присваивание
MIN=B
(иначе останется MIN=A)
4. Сравнить MIN>C? Если "Да", то присвоить MIN=C, иначе перейти к следующему шагу
5. Вывести на печать значение, полученное под именем MIN.
Конец. (Прекратить решение задачи)
ГОСТ 19.701-90. ЕСПД. Схемы алгоритмов, программ, данных и систем. М. 1991 (см. приложение 1).
9

Графические обозначения в СА (ГОСТ 19.701-90)
Символ |
Наименование |
Назначение |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Данные |
Символ отображает данные, |
||
|
|
|
|
|
носитель данных не определен |
|||
|
|
|
|
|
Процесс |
Отображает функцию обработки |
||
|
|
|
|
|
данных (выполнение отдельной |
|||
|
|
|
|
|
|
операции или группы операций). |
||
|
|
|
|
|
|
|||
|
|
|
|
|
Предопределен |
Отображает предопределённый |
||
|
|
|
|
|
||||
|
|
|
|
|
процесс, состоящий из одной или |
|||
|
|
|
|
|
-ный процесс |
нескольких операций программы, |
||
|
|
|
|
|
||||
|
|
|
|
|
|
которые определены в другом |
||
|
|
|
|
|
|
месте (подпрограмме, модуле) |
||
|
|
|
|
|
Подготовка |
Отражает инициализацию и моди- |
||
|
|
|
|
|
|
фикацию параметра для управ- |
||
|
|
|
|
|
|
ления циклом со счетчиком |
||
|
|
|
|
|
Решение |
Отображает функцию |
||
|
|
|
|
|
переключательного типа, имеющую |
|||
|
|
|
|
|
|
один вход и ряд альтернативных |
||
|
|
|
|
|
|
выходов, один из которых может |
||
|
|
|
|
|
|
быть активизирован после |
||
|
|
|
|
|
|
вычисления условия внутри символа |
|
|
|
|
|
|
|
|
10 |