- •1. Системы счисления
- •Десятичная система счисления
- •Двоичная система счисления
- •Восьмеричная и шестнадцатеричная системы счисления
- •Перевод чисел из любой системы счисления в десятичную
- •Перевод чисел из десятичной системы счисления в любую другую
- •2. Алгебра логики
- •2.1. Логические операции
- •Инверсия
- •Конъюнкция
- •Дизъюнкция
- •Эквиваленция (равнозначность)
- •Импликация
- •Антиконъюнкция
- •Антидизъюнкция
- •2.2. Нормальные формы
- •Конъюнктивная нормальная форма
- •Дизъюнктивная нормальная форма
- •3. Классические основы построения ЭВМ
- •3.1. Машина Тьюринга
- •Основные положения машины Тьюринга
- •3.2. Автомат Неймана
- •3.3 Архитектура классической ЭВМ
- •4. Применение средств алгебры логики для описания функционирования устройств компьютера
- •Логические схемы
- •Построение логических схем
- •5. Введение в алгоритмизацию
- •6. Знакомство со средой Турбо Паскаль
- •6.1. Общие сведения
- •6.2. Запуск Турбо-Паскаля на выполнение
- •6.3. Назначение функциональных клавиш системы Турбо-Паскаль
- •6.4. Работа с текстовым редактором Турбо-Паскаля
- •Клавиши перемещения курсора
- •Работа с блоками текста
- •7. Основы алгоритмизации
- •7.1. Алгоритм
- •7.2. Алгоритмические структуры
- •8. Программирование на языке Pascal
- •8.1. Алфавит языка
- •8.2. Арифметические выражения и правила их записи
- •Знаки операций
- •Операции div и mod
- •8.3. Типы данных
- •Целые типы
- •Логический тип
- •Символьный тип
- •Строковый тип
- •Вещественный тип
- •8.4. Стандартные функции
- •8.5. Структура программы на языке Паскаль
- •8.6. Описательная часть программы
- •8.7. Исполнительная часть программы
- •8.8. Оператор присваивания
- •8.9. Операторы ввода-вывода
- •Оператор ввода
- •Оператор вывода
- •8.10. Комментарии в программе
- •9. Ветвления
- •9.1. Операторы условия и перехода
- •Логический оператор
- •Операции отношения
- •Логические операции
- •9.2. Оператор выбора
- •10. Циклические вычислительные процессы
- •10.1. Оператор цикла с параметром
- •10.2. Оператор цикла с постусловием
- •10.3. Оператор цикла с предусловием
- •10.4. Вложенные циклы
- •10.5. Оператор прерывания цикла
- •11. Операции с индексированными переменными
- •11.1. Массивы одномерные
- •11.2. Описание массивов
- •Ввод элементов массива
- •Вывод элементов массива
- •11.3. Обработка одномерных массивов
- •12. Двумерные массивы
- •12.1. Матрицы
- •12.2. Описание двумерного массива
- •Ввод элементов двумерного массива
- •Вывод элементов двумерного массива
- •12.3. Обработка двумерных массивов
- •13. Подпрограммы
- •13.1. Функции и процедуры
- •Структура программы, содержащей процедуру (функцию)
- •13.2. Процедуры
- •13.3. Вложенные процедуры
- •Директива forward
- •13.4. Функции
- •14. Обработка строк текста
- •14.1. Символьные переменные
- •Фрагмент таблицы ASCII-кодов букв латинского алфавита
- •Фрагмент таблицы ASCII-кодов букв русского алфавита
- •14.2. Функции обработки символьных переменных
- •14.3. Строковые переменные
- •14.4. Функции обработки строковых переменных
- •14.5. Процедуры обработки строковых переменных
- •14.6. Примеры обработки строковых переменных
- •15. Структурированные типы данных
- •15.1. Записи
writeln ('введите размер массива n<=100'); readln (n);
writeln ('введите элементы массива'); for i:=1 to n do
readln (a[i]); repeat
f:=0;
for i:=1 to n-1 do if a[ i ]>a[i+1] then begin
p: =a[ i ];
a[ i ]:=a[i+1]; a[i+1]:=p; f:=1; end;
until f=0;
for i:=1 to n do writeln (a[ i ]); readln;
end.
В данном алгоритме используются вложенные циклы.
Внутренний цикл (for…to…do) – позволяет один раз пройтись по массиву, сравнивая соседние элементы. В случае, если предыдущий элемент (a[ i ]) окажется больше последующего (a[i+1]), элементы меняются местами через дополнительную переменную p.
Внешний цикл(repeat…until) – повторяется до тех пор, пока массив не будет упорядочен. В программе применяется переменная – флажок.
f =1 – признак того, что два соседних элемента менялись местами, массив еще не упорядочен. f =0 – признак того, что массив упорядочен.
12. Двумерные массивы
12.1. Матрицы
Если в массиве хранится таблица значений, то такой массив называют двумерным, а его элементы нумеруются двумя индексами – номером строки и номером столбца, на пересечении которых находится данный элемент.
В памяти компьютера все элементы массива занимают одну непрерывную область. Двумерный массив располагается в памяти по строкам.
Двумерный массив можно представить в виде матрицы:
a |
a |
11 |
12 |
a21 |
a22 |
|
a32 |
a31 |
a13 a23 a33 .
12.2. Описание двумерного массива
Для двумерных массивов:
58
var
a :array[1..n ,1..m] of <тип>;
Где a - имя массива;
n, m - количество строк и столбцов в массиве; <тип> - тип элементов массива.
Количество элементов в массиве - n×m. Например:
var
mas: array [1…10,1..10] of real; begin
…
Описан массив mas - содержащий 100 элементов вещественного типа (10 строк и 10 столбцов).
Размер массива должен быть задан в явном виде (как в предыдущем фрагменте), или через const.
Например: const
n = 5, m=5; var
mas: array[1…n,1..m] of real; begin
…
Описан массив mas - содержащий 25 элементов целого типа (5 строк и 5 столбцов).
Каждый элемент массива определяется с помощью двух индексов, стоящих справа от имени в квадратных скобках.
a[i, j] - элемент стоящий на пересечении i-ой строки и j-го столбца. a[i, i] - элементы главной диагонали.
a[i, 2] - элементы второго столбца.
Индекс может быть - переменной, константой, арифметическим выражением целого типа. Если количество строк равно количеству столбцов, матрица называется квадратной. Обработка двумерных массивов производится при изменении индексов элементов.
Все элементы главной диагонали удовлетворяют условию: i=j
(номер строки равен номеру столбца).
Все элементы побочной диагонали удовлетворяют условию: i+j=n+1
(n - количество строк и столбцов).
Элементы, расположенные над главной диагональю удовлетворяют условию: i<j
(номер строки строго меньше номера столбца).
Элементы, расположенные под главной диагональю удовлетворяют условию: 59