- •Основы программирования
- •Язык программирования
- •Компиляторы и интерпретаторы
- •Уровни языков программирования
- •Поколения языков программирования
- •Языки программирования баз данных
- •Системы программирования. Средства создания программы
- •Интегрированные системы программирования
- •Основные системы программирования
- •Алгоритмическое (модульное) программирование
- •Переменные и константы
- •Числовые данные
- •Арифметические операции
- •Арифметические выражения
- •Логические выражения
- •Строчные выражения
- •Сложные данные
- •Правила работы со сложными типами
- •Описание переменных
- •Новые типы данных
- •Разделение операторов
- •Условный оператор (условные вычисления)
- •Операторы цикла
- •Ввод и вывод
- •Структурное программирование Подпрограммы
- •Нисходящее проектирование
- •Процедуры и функции
- •Параметры подпрограмм
- •Структура подпрограммы:
- •Формальные и фактические параметры
- •Объектно-ориентированное программирование
Числовые данные
Числа бывают двух видов: целые и дробные.
Очень большие или очень маленькие числа записываются указанием мантиссы — число со знаком, являющееся степенью числа 10.
100=1e+2
0.003=3e-3
-
Тип числа
Basic
Pascal
C++
Целое
INTEGER
integer
int
Дробное
DOUBLE
real
float
Арифметические операции
+, -, * ,/ - в большинстве языков программирования.
b*2+c/3
b*(2+c)-3
((y+2)*3+1)/2
Арифметические выражения
Состоят из операций и операндов (переменных и констант): a2+2
Логические выражения
True – истина, да, включена, 1.
False – ложь, нет, выключено, 0.
При записи логических выражений используются операции сравнения и логические операции.
-
операция
Basic, Pascal
C++
равно
=
= =
не равно
<>
!=
меньше
<
<
меньше или равно
<=
<=
больше
>
>
больше или равно
>=
>=
Pi= = 3.14
x>0
a1<>b1
-
1 операнд
2 операнд
И
ИЛИ
исключ. ИЛИ
НЕ (только операнд 1)
true
true
true
true
false
false
true
false
false
true
true
false
false
true
false
true
true
true
false
false
false
false
false
true
-
Логическая операция
Basic
Pascal
C++
И
AND
and
&&
ИЛИ
OR
or
||
НЕ
NOT
not
!
Приоритеты всех логических операций ниже, чем приоритеты операций сравнения.
Сравнения выполняются первыми. Логические операции выполняются в следующем порядке: НЕ, И, ИЛИ.
x1>=1 && x1<=10
(R>3.14) and (R<3.149)
(Value<oldValue) OR (Value<>0)
Логический тип
-
Basic
Pascal
C++
Базового типа нет, используется числовой тип INTEGER
boolean
bool
Строчные выражения
В C++ и Basic ''это строка'' '' '' - пустая строка
В Pascal 'это строка' ' ' - пустая строка
Строки можно сравнивать друг с другом на эквивалентность (равно и не равно). Допускаются сравнения типа «больше» или «меньше» - при этом происходит последовательное сравнение значений символов (каждый символ представляется в ПК конкретным числом). Сцепление строк с помощью «+».
''123'' + ''4567'' = ''1234567''
Тип «строка»
-
Basic
Pascal
C++
STRING
string
Базового типа «строка» нет
Указатели — адрес физической памяти. Имеется специальная операция получения адреса конкретной переменной, что позволяет работать с памятью напрямую.
Сложные данные
Структуры. Описание данных в виде максимально приближенных к их реальным аналогам. Например, чтобы организовать обработку данных по студентам, в программе удобно не просто описать десяток различных переменных, а объединить их в структуру (или запись) «студент», состоящего из полей разного типа «имя», «пол», «год рождения», «группа» и т.д. То есть сложные типы данных. В результате удается организовать структуры данных произвольной сложности: списки, деревья и т.п. Структура объединяет группу разных данных под одним названием. Получить доступ к отдельным составляющим (полям) этой структуры можно по их именам, т.е. имени структуры и имени поля через точку. Если происходит обращение к полю, которое само является структурой, то выделение нужного поля продолжается приписыванием справа имени вложенного поля через точку.
Синтаксис описания структуры
-
Basic
Pascal
C++
TYPE имя структуры
поле AS тип
…
END TYPE
type имя структуры = record
поле: тип;
…
end;
struct имя структуры
{ тип поле;
…
};
Пример:
-
Basic
Pascal
C++
TYPE Student
Name AS STRING
Sex AS INTEGER
BirthYear AS INTEGER
END TYPE
type Student = record
Name: string;
Sex: boolean;
BirthYear: integer
end;
struct Student
{ AnsiString Name;
bool Sex;
int BirthYear;
};
Доступ к содержимому структуры:
Student.BirthYear = 1980;
Массивы. Доступ к элементам структуры по имени ее составляющих. Для организации обработки больших объемах данных одного типа с сотнями и тысячами полей создавать структуру неразумно. Введено понятие массива, сложного типа данных, доступ к элементам которого происходит по их положению, по номеру или индексу. При описании массива обычно указывается его размер (число элементов) или верхняя и нижняя границы.
Синтаксис описания массива
-
Basic
DIM имя (число элементов) AS тип
Pascal
Имя = array [нижняя граница .. верхняя граница] of тип
C++
Тип имя [число элементов]
В Basic нижняя граница равна 1.
В C++ 0;
В Pascal она указывается явно.
Пример:
-
Basic
DIM IntArray (1000) AS INTEGER
Pascal
IntArray = array [1..1000] of integer
C++
int IntArray [1000]
Доступ к элементу массива осуществляется по его номеру. Этот номер указывается в круглых (для Basic), в квадратных [для Pascal и C++] - такое действие называется индексирование:
IntArray(12)
IntArray[i+1]
Массивы бывают статические и динамические.