- •1. Системы счисления
- •Десятичная система счисления
- •Двоичная система счисления
- •Восьмеричная и шестнадцатеричная системы счисления
- •Перевод чисел из любой системы счисления в десятичную
- •Перевод чисел из десятичной системы счисления в любую другую
- •2. Алгебра логики
- •2.1. Логические операции
- •Инверсия
- •Конъюнкция
- •Дизъюнкция
- •Эквиваленция (равнозначность)
- •Импликация
- •Антиконъюнкция
- •Антидизъюнкция
- •2.2. Нормальные формы
- •Конъюнктивная нормальная форма
- •Дизъюнктивная нормальная форма
- •3. Применение средств алгебры логики для описания функционирования устройств компьютера
- •Логические схемы
- •Построение логических схем
- •4. Практическая работа 1. Системы счисления
- •Вопросы для самоконтроля
- •5. Практическая работа 2. Алгебра логики
- •Решение логических задач средствами алгебры логики
- •Индивидуальное задание к модулю 1. Построение логических схем по заданным булевым выражениям
- •Приложение 1. Практическое занятие 1 «Системы счисления»
- •Приложение 2. Практическое занятие 2 «Алгебра логики»
- •Приложение 3. Индивидуальное задание. Модуль №1
- •Приложение 4
- •6. Введение в алгоритмизацию
- •7. Знакомство со средой Турбо Паскаль
- •7.1. Общие сведения
- •7.2. Запуск Турбо-Паскаля на выполнение
- •7.4. Работа с текстовым редактором Турбо-Паскаля
- •Клавиши перемещения курсора
- •Работа с блоками текста
- •8. Основы алгоритмизации
- •8.1. Алгоритм
- •8.2. Алгоритмические структуры
- •Самоконтроль
- •9.1. Алфавит языка
- •9.2. Арифметические выражения и правила их записи
- •Знаки операций
- •Операции div и mod
- •9.3. Типы данных
- •Целые типы
- •Логический тип
- •Символьный тип
- •Строковый тип
- •Вещественный тип
- •9.4. Стандартные функции
- •9.5. Структура программы на языке Паскаль
- •9.6. Описательная часть программы
- •9.7. Исполнительная часть программы
- •9.8. Оператор присваивания
- •9.9. Операторы ввода-вывода
- •Оператор ввода
- •Оператор вывода
- •9.10. Комментарии в программе
- •Самоконтроль
- •Задание
- •Пример программы линейной структуры
- •Приложение 1. Таблица вариантов задания №2
- •10. Ветвления
- •10.1. Операторы условия и перехода
- •Логический оператор
- •Операции отношения
- •Логические операции
- •10.2. Оператор выбора
- •Самоконтроль
- •Задание
- •Пример программы разветвленной структуры
- •Приложение 1. Таблица вариантов задания 3
- •11.2. Оператор цикла с постусловием
- •11.3. Оператор цикла с предусловием
- •11.4. Вложенные циклы
- •11.5. Оператор прерывания цикла
- •Самоконтроль
- •Задание
- •Пример программы циклической структуры
- •Приложение 1. Таблица вариантов задания 4
- •12. Операции с индексированными переменными
- •12.1. Массивы одномерные
- •12.2. Описание массивов
- •Ввод элементов массива
- •Вывод элементов массива
- •12.3. Обработка одномерных массивов
- •Самоконтроль
- •Задание
- •Пример программы обработки одномерного массива
- •Приложение 1. Таблица вариантов задания 5
- •13. Двумерные массивы
- •13.1. Матрицы
- •13.2. Описание двумерного массива
- •Ввод элементов двумерного массива
- •Вывод элементов двумерного массива
- •13.3. Обработка двумерных массивов
- •Самоконтроль
- •Задание
- •Пример программы обработки двумерного массива
- •Приложение 1. Таблица вариантов задания 6
- •Структура программы, содержащей процедуру (функцию)
- •14.2. Процедуры
- •14.3. Вложенные процедуры
- •Директива forward
- •14.4. Функции
- •Самоконтроль
- •Задание
- •Пример программы с использованием подпрограмм
- •Приложение 1. Таблица вариантов задания 7
- •15. Обработка строк текста
- •15.1. Символьные переменные
- •Фрагмент таблицы ASCII-кодов букв латинского алфавита
- •Фрагмент таблицы ASCII-кодов букв русского алфавита
- •15.2. Функции обработки символьных переменных
- •15.3. Строковые переменные
- •15.4. Функции обработки строковых переменных
- •15.5. Процедуры обработки строковых переменных
- •15.6. Примеры обработки строковых переменных
- •Самоконтроль
- •16. Структурированные типы данных
- •Записи
- •Самоконтроль
- •Задание
- •Пример программы использования массива записей
- •Приложение 1
- •Приложение 2. Таблица вариантов ИДЗ 2
max :real; begin clrscr;
writeln(‘ Введите n<=10 , m<=10 ’); readln(n,m);
writeln(‘ Введите элементы массива по строкам ’); for i:=1 to n do
for j:=1 to m do readln(a[i,j]);
{за максимальный принимается элемент a11 } max:=a[1,1];
kmax:=1;
lmax:=1;
for i:=1 to n do for j:=1 to m do if a[i,j]>max then begin max:=a[i,j]; kmax:=i; lmax:=j;
end;
writeln(‘max=’, max:8:3);
writeln(‘строка - ‘, kmax,’ столбец - ’,lmax); readln;
end.
4. Результаты вычислений.
Приложение 1. Таблица вариантов задания 6
Вариант |
Задание |
|
|
В данной действительной матрице размером n m поменять местами |
|
1 |
строку, содержащую элемент с наибольшим значением, со строкой, |
|
содержащей элемент с наименьшим значением. Предполагается, что |
||
|
||
|
эти элементы единственны. |
|
|
|
|
|
Дана действительная матрица размером n m, все элементы которой |
|
2 |
различны. В каждой строке выбирается элемент с наибольшим |
|
значением, затем среди этих чисел выбирается наибольшее. Указать |
||
|
||
|
индексы элемента с найденным значением. |
|
|
|
|
|
Дана целочисленная матрица размером n m. Написать программу, |
|
3 |
формирующую двумерный массив по следующему правилу: |
|
элементы первой строки – в порядке возрастания индексов столбцов, |
||
|
элементы второй строки – в порядке убывания индексов столбцов и |
|
|
т. д. |
|
|
|
|
4 |
Дана действительная матрица размером n m. Найти среднее |
|
|
|
87
арифметическое каждого из столбцов, имеющих четные номера.
Дана действительная матрица размером n m. Все элементы с
5наибольшим значением заменить нулями (таких элементов может быть несколько).
Дана целочисленная матрица размером n m. Написать программу,
6позволяющую находить сумму наибольших значений элементов ее строк.
Дана целочисленная квадратная матрица размером n m. Написать программу, формирующую два одномерных массива. В один
7переслать по строкам верхний треугольник матрицы, включая элементы главной диагонали, в другой – нижний треугольник. Полученные массивы распечатать.
Дана целочисленная квадратная матрица размером n m. Написать
8программу, позволяющую исключать из нее столбец, в котором расположен минимальный элемент главной диагонали.
Дана целочисленная квадратная матрица размером n m. Написать программу, позволяющую поменять местами элементы,
9расположенные в верхней и нижней четвертях, ограниченные главной и побочной диагоналями (за исключением элементов, расположенных на диагоналях)
Задана действительная матрица размером n m. Написать программу,
10позволяющую заменить все элементы, наименьшие в строке, на нули.
Задана целочисленная матрица размером n m. Написать программу,
11позволяющую находить строки с наименьшей и наибольшей суммой и выводить их на печать.
Задана целочисленная квадратная матрица размером n n. Написать
12программу, преобразующую исходную матрицу по правилу: начетные столбцы разделить на среднее значение диагональных элементов матрицы, а четные оставить без изменения.
Задана действительная квадратная матрица размером n n. Вычислить сумму тех из ее элементов, расположенных на главной
13диагонали и выше ее, которые превосходят по величине все элементы, расположенные ниже главной диагонали. Если таких элементов нет, то ответом должно служить сообщение об этом. Задана целочисленная квадратная матрица размером n n (n - четное).
14Написать программу, позволяющую менять местами элементы первой и второй строк, элементы третьей и четвертой строк и т. д. Даны две действительные квадратные матрицы размером n n.
15Получить новую матрицу, прибавлением к элементам каждого столбца первой матрицы, произведения элементов соответствующих строк второй матрицы.
Даны две действительные квадратные матрицы размером n n.
16Получить новую матрицу умножением элементов каждой строки первой матрицы на наибольшее из значений элементов соответствующей строки второй матрицы.
17Дана целочисленная квадратная матрица размером n n. Найти номера строк, все элементы которых – нули.
18Задан массив из целых чисел размером n и число L. Написать
88
программу, формирующую из него матрицу, содержащую по L элементов в строке. Недостающие элементы заполнить нулями.
Дана целочисленная матрица размером n m (m - четное). Написать
19программу, позволяющую менять местами элементы первого и последнего столбцов, элементы второго и (n-1)-го столбцов и т. д. до среднего столбца (n - нечетно)
Дана действительная квадратная матрица размером n n (n - четное),
20все элементы которой различны. Найти наибольший элемент среди стоящих на главной и побочной диагоналях и поменять его местами с элементом, стоящим на пересечении с этими диагоналями.
Дана целочисленная матрица размером n m. Найти максимальный
21по модулю элемент среди отрицательных элементов нечетных столбцов.
Дана целочисленная матрица размером n m и число K. Написать
22программу, переставляющую строки и столбцы таким образом, чтобы максимальный по модулю элемент был расположен на пересечении K–ой строки и K–го столбца.
Дана действительная матрица размером n m. Все элементы с
23наибольшим значением заменить нулями (таких элементов может быть несколько).
Дана целочисленная матрица размером n m. Написать программу, формирующую двумерный массив по следующему правилу:
24элементы первой строки – в порядке возрастания индексов столбцов, элементы второй строки – в порядке убывания индексов столбцов и т. д.
Дана целочисленная квадратная матрица размером n n. Написать
25программу, позволяющую исключать из нее столбец, в котором расположен минимальный элемент главной диагонали.
14.Подпрограммы
Если в программе имеется несколько одинаковых фрагментов, то возникает вопрос: нельзя ли оформить повторяющийся фрагмент в виде отдельного блока, а затем обращаться к нему несколько раз. Аналогичная идея возникает при отладке больших программ – если разбить программу на отдельные блоки, то отладить ее по частям будет проще. На языке Паскаль подпрограммы реализуются в виде функций или процедур.
14.1. Функции и процедуры
Функции и процедуры реализуют принципы структурного программирования. К функциям и процедурам обращаются если необходимо:
разбить большую задачу на несколько меньших по объему и сложности задач;
уменьшить объем программы за счет выделения типовых программных действий в функции или процедуре;
создание программных модулей, которые могут быть использованы и в других программах.
89