- •Учебно-методическое пособие
- •Маршрутная карта изучения дисциплины по Модулю 1
- •1. Логические и арифметические основы эвм
- •Системы счисления
- •1.1. Десятичная система счисления
- •1.2. Двоичная система счисления
- •1.3. Восьмеричная и шестнадцатеричная системы счисления
- •1.4. Перевод чисел из любой системы счисления в десятичную
- •1.5. Перевод чисел из десятичной системы счисления в любую другую
- •Вопросы для самоконтроля
- •Методические указания для выполнения практического задания №1. «Системы счисления»
- •Приложение 1. Таблица вариантов заданий
- •2. Алгебра логики
- •2.1. Логические операции
- •Инверсия
- •2.2. Нормальные формы
- •Конъюнктивная нормальная форма
- •Дизъюнктивная нормальная форма
- •3. Применение средств алгебры логики для описания функционирования устройств компьютера
- •3.1. Логические схемы
- •Пример решение логических задач средствами алгебры логики
- •Методические указания для выполнения практического задания №2. «Алгебра логики». Построение таблиц истинности.
- •Пример построения логических схем
- •Методические указания для выполнения практического задания №3. «Алгебра логики». Построение логических схем.
- •Приложение 2. Таблица вариантов заданий
- •4. Индивидуальное задание. Модуль 1. «Построение логических схем по заданным булевым выражениям»
- •Приложение 3. Таблица вариантов индивидуального задания
- •Приложение 4. Титульный лист идз
- •Маршрутная карта изучения дисциплины по Модулю 2
- •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.5. Структура программы на языке Паскаль
- •8.6. Описательная часть программы
- •8.7. Исполнительная часть программы
- •8.10. Комментарии в программе
- •Пример программы линейной структуры
- •Вопросы для самоконтроля
- •8.11. Методические указания для выполнения практического задания №4. «Следования»
- •Приложение 5. Таблица вариантов заданий
- •9. Ветвления
- •9.1. Операторы условия и перехода
- •Логический оператор
- •Операции отношения
- •Логические операции
- •9.2. Оператор выбора
- •Пример программы разветвленной структуры
- •Вопросы для самоконтроля
- •9.3. Методические указания для выполнения практического задания №5. «Ветвления»
- •Приложение 6. Таблица вариантов заданий
- •10. Циклические вычислительные процессы
- •10.1. Оператор цикла с параметром
- •10.2. Оператор цикла с постусловием
- •10.3. Оператор цикла с предусловием
- •10.4. Вложенные циклы
- •10.5. Оператор прерывания цикла
- •Пример программы циклической структуры
- •Вопросы для самоконтроля
- •10.6. Методические указания для выполнения практического задания №6. «Циклы»
- •Приложение 7. Таблица вариантов заданий
- •11. Операции с индексированными переменными
- •11.1. Массивы одномерные
- •11.2. Описание массивов
- •Ввод элементов массива
- •Вывод элементов массива
- •11.3. Обработка одномерных массивов
- •Пример программы обработки одномерного массива
- •Вопросы для самоконтроля
- •11.4. Методические указания для выполнения практического задания №7. «Операции с индексированными переменными»
- •Приложение 8. Таблица вариантов заданий
- •12. Двумерные массивы
- •12.1. Матрицы
- •12.2. Описание двумерного массива
- •Ввод элементов двумерного массива
- •Вывод элементов двумерного массива
- •12.3. Обработка двумерных массивов
- •Пример программы обработки двумерного массива
- •Вопросы для самоконтроля
- •12.4. Методические указания для выполнения практического задания №8. «Матрицы»
- •Приложение 9. Таблица вариантов заданий
- •13. Подпрограммы
- •13.1. Функции и процедуры
- •Структура программы, содержащей процедуру (функцию)
- •13.2. Процедуры
- •13.3. Вложенные процедуры Директива forward
- •13.4. Функции
- •Пример программы с использованием подпрограмм
- •Вопросы для самоконтроля
- •Методические указания для выполнения практического задания №9. «Подпрограммы»
- •Приложение 10. Таблица вариантов заданий
- •14. Обработка строк текста
- •14.3. Строковые переменные
- •14.4. Функции обработки строковых переменных
- •14.5. Процедуры обработки строковых переменных
- •14.6. Примеры обработки строковых переменных
- •Вопросы для самоконтроля
- •15. Структурированные типы данных
- •Пример программы использования массива записей
- •Вопросы для самоконтроля
- •Методические указания к выполнению индивидуального задания по Модулю 2. «Массивы записей»
- •Приложение 11. Таблица вариантов индивидуального задания
Пример программы с использованием подпрограмм
Задача.
Задан двумерный массив целых чисел. Определить количество четных чисел в массиве.
Составим: процедуру ввода элементов массива;
функцию подсчета количества четных чисел;
процедуру вывода двумерного массива в виде матрицы.
Таблица идентификаторов
№ |
Наименование переменной |
Обозначения в программе |
1 |
Имя массива |
a |
2 |
Количество строк |
n |
3 |
Количество столбцов |
m |
4 |
Индексы массива |
I,j |
Листинг программы.
program pp_1;
type
mas=array[1..10,1..10] of integer;
var
a:mas; n,m,i,j:integer ;
{ Процедура ввода массива }
procedure input_mas(n,m:integer; var a:mas);
begin
for i:=1 to n do
for j:=1 to n do readln(a[i,j]);
end;
{Функция подсчета количества нечетных чисел}
function kol( n,m:integer; a:mas ):integer;
var
k:integer ;
begin
kol:=0;
for i:=1 to n do
for j:=1 to n do
if not odd( a[ i,j ] ) then k:=k+1;
kol:=k;
end;
{Процедура вывода матрицы}
procedure print_mas(n,m:integer; a:mas);
begin
for i:=1 to n do
begin
for j:=1 to n do write( a[i,j],‘ ‘);
writeln;
end;
end;
{ Исполнительная часть основной программы }
begin
writeln(‘Введите n<=10 , m<=10’);
readln (n,m);
writeln(‘Введите элементы массива по строкам’);
input_mas(n,m,a);
writeln(‘Исходная матрица’);
print_mas(n,m,a);
writeln(‘Количество нечетных чисел =’,kol(n,m,a));
readln;
end.
Вопросы для самоконтроля
В каких случаях прибегают к построению подпрограмм?
В каком месте программы располагаются функции или процедуры?
Что такое процедура?
Какова структура процедуры?
Как передается информация в процедуру?
Каким образом возвращаются результаты работы процедуры в основную программу?
Какое соответствие должно быть между формальными и фактическими параметрами?
Какие переменные называются глобальными? Время существования глобальных переменных?
Какие переменные называются локальными? Время существования локальных переменных?
Когда используют директиву forward?
В каких случаях целесообразно прибегать к построению функций?
Как передается информация в функцию?
Каким образом возвращается результат работы функции в основную программу?
Методические указания для выполнения практического задания №9. «Подпрограммы»
Цель работы:Ознакомиться со структурой программы, содержащей процедуру или функцию, использовать глобальные и локальные переменные, применять формальные и фактические параметры.
Задание:
В приложении 10 выбрать свой вариант задания.
Выполнить практическое задание №9, используя пример программы с использованием подпрограмм
Составить блок-схему алгоритма.
Написать программу и отладить ее по заранее подготовленному тесту.
Оформить задание в тетради для практических работ.
Результат выполнения программы предъявить преподавателю.
Ответить на вопросы самоконтроля.
Защитить выполненную работу у преподавателя.
Приложение 10. Таблица вариантов заданий
Составить программу с использованием процедуры и функции
| |
Вариант |
Задание |
1 |
В данной действительной матрице размером nm поменять местами строку, содержащую элемент с наибольшим значением, со строкой, содержащей элемент с наименьшим значением. Предполагается, что эти элементы единственны. |
2 |
Дана действительная матрица размером nm, все элементы которой различны. В каждой строке выбирается элемент с наибольшим значением, затем среди этих чисел выбирается наибольшее. Указать индексы элемента с найденным значением. |
3 |
Дана целочисленная матрица размером nm. Написать программу, формирующую двумерный массив по следующему правилу: элементы первой строки – в порядке возрастания индексов столбцов, элементы второй строки – в порядке убывания индексов столбцов и т. д. |
4 |
Дана действительная матрица размером nm. Найти среднее арифметическое каждого из столбцов, имеющих четные номера. |
5 |
Дана действительная матрица размером nm. Все элементы с наибольшим значением заменить нулями (таких элементов может быть несколько). |
6 |
Дана целочисленная матрица размером nm. Написать программу, позволяющую находить сумму наибольших значений элементов ее строк. |
7 |
Дана целочисленная квадратная матрица размером nm. Написать программу, формирующую два одномерных массива. В один переслать по строкам верхний треугольник матрицы, включая элементы главной диагонали, в другой – нижний треугольник. Полученные массивы распечатать. |
8 |
Дана целочисленная квадратная матрица размером nm. Написать программу, позволяющую исключать из нее столбец, в котором расположен минимальный элемент главной диагонали. |
9 |
Дана целочисленная квадратная матрица размером nm. Написать программу, позволяющую поменять местами элементы, расположенные в верхней и нижней четвертях, ограниченные главной и побочной диагоналями (за исключением элементов, расположенных на диагоналях). |
10 |
Задана действительная матрица размером nm. Написать программу, позволяющую заменить все элементы, наименьшие в строке, на нули. |
11 |
Задана целочисленная матрица размером nm. Написать программу, позволяющую находить строки с наименьшей и наибольшей суммой и выводить их на печать. |
12 |
Задана целочисленная квадратная матрица размером nn. Написать программу, преобразующую исходную матрицу по правилу: начетные столбцы разделить на среднее значение диагональных элементов матрицы, а четные оставить без изменения. |
13 |
Задана действительная квадратная матрица размером nn. Вычислить сумму тех из ее элементов, расположенных на главной диагонали и выше ее, которые превосходят по величине все элементы, расположенные ниже главной диагонали. Если таких элементов нет, то ответом должно служить сообщение об этом. |
14 |
Задана целочисленная квадратная матрица размером nn (n - четное). Написать программу, позволяющую менять местами элементы первой и второй строк, элементы третьей и четвертой строк и т. д. |
15 |
Даны две действительные квадратные матрицы размером nn. Получить новую матрицу, прибавлением к элементам каждого столбца первой матрицы, произведения элементов соответствующих строк второй матрицы. |
16 |
Даны две действительные квадратные матрицы размером nn. Получить новую матрицу умножением элементов каждой строки первой матрицы на наибольшее из значений элементов соответствующей строки второй матрицы. |
17 |
Дана целочисленная квадратная матрица размером nn. Найти номера строк, все элементы которых – нули.
|
18 |
Задан массив из целых чисел размером n и число L. Написать программу, формирующую из него матрицу, содержащую по L элементов в строке. Недостающие элементы заполнить нулями.
|
19 |
Дана целочисленная матрица размером nm (m - четное). Написать программу, позволяющую менять местами элементы первого и последнего столбцов, элементы второго и (n-1)-го столбцов и т. д. до среднего столбца (n - нечетно) |
20 |
Дана действительная квадратная матрица размером nn (n - четное), все элементы которой различны. Найти наибольший элемент среди стоящих на главной и побочной диагоналях и поменять его местами с элементом, стоящим на пересечении с этими диагоналями. |
21 |
Дана целочисленная матрица размером nm. Найти максимальный по модулю элемент среди отрицательных элементов нечетных столбцов. |
22 |
Дана целочисленная матрица размером nm и число K. Написать программу, переставляющую строки и столбцы таким образом, чтобы максимальный по модулю элемент был расположен на пересечении K–ой строки и K–го столбца. |
23 |
Дана действительная матрица размером nm. Все элементы с наибольшим значением заменить нулями (таких элементов может быть несколько). |
24 |
Дана целочисленная матрица размером nm. Написать программу, формирующую двумерный массив по следующему правилу: элементы первой строки – в порядке возрастания индексов столбцов, элементы второй строки – в порядке убывания индексов столбцов и т. д. |
25 |
Дана целочисленная квадратная матрица размером nn. Написать программу, позволяющую исключать из нее столбец, в котором расположен минимальный элемент главной диагонали. |
26 |
В данной действительной матрице размером nm обнулить все отрицательные элементы. Подсчитать, количество обнуленных элементов. |
27 |
Дана целочисленная квадратная матрица размером nn. Найти номера строк, все элементы которых отрицательны. |
28 |
Задана целочисленная квадратная матрица размером nn (n - четное). Написать программу, позволяющую менять местами элементы первой и последней строк, второй и предпоследней строк и т. д. |
29 |
Задана целочисленная матрица размером nm. Написать программу, позволяющую находить строки с наименьшим и наибольшим произведением элементов. Вывести на печать номера этих строк. |
30 |
Даны две действительные квадратные матрицы размером nn. Получить новую матрицу умножением элементов каждой строки первой матрицы на наименьшее из значений элементов соответствующей строки второй матрицы. |