Примеры задач СПС 2014
.docЗадачи по курсу "Системные программные средства"
Задание 1
Задать в памяти массив четырехбайтовых целых чисел со знаком. Количество чисел автоматически определяется в виде константы по числу инициализирующих значений в директиве определения переменной.
Вычислить восьмибайтовую сумму чисел. Вычесть из суммы максимальное из исходных чисел. Результат записать в память. Контролировать переполнения.
Задание 2
Задать в памяти массив многозначных десятичных чисел со знаком, представленных в виде строк десятичных цифр (возможно, разной длины). В перевести числа в упакованный формат и найти из них максимальное. Результат вывести на экран.
Задание 3
Написать программу по следующему алгоритму:
- очищается экран,
- в верхней строке экрана выводится произвольная строка символов,
- курсор устанавливается в начало строки
- вводится один символ с клавиатуры. Если текущий символ на экране
(над курсором) совпадает с введенным, то он заменяется на пробел.
- курсор перемещается по строке в следующую позицию
- при достижении конца строки все оставшиеся в строке символы смещаются влево (из строки удаляются пробелы)
- цикл повторяется до тех пор, пока в верхней строке не останется символов.
Задание 4
Написать программу формирования в памяти массива всех простых чисел, представимых в виде четырехбайтовых положительных целых. Определить количество полученных простых чисел.
Задание 5
Написать макрокоманду инициализации массива из N одинаковых элементов. Аргументы макрокоманды: имя массива, его тип, количество элеменотв N и инициализирующее значение. В теле макрокоманды контролировать правильность заданных фактических параметров.
По умолчанию принимается тип WORD и значение 0.
Описать допустимые типы фактических параметров.
Привести пример использования макрокоманды в программе.
Задание 6
Написать процедуру сортировки массива четырехбайтовых элементов.
Адрес массива и число элементов передаются через стек.
Оформить процедуру в отдельном модуле с полными директивами сегментации для компоновки с самостоятельной головной программой. Изобразить на рисунке состояние стека при обращении к параметрам.
Написать головную программу, вызывающую процедуру сортировки массива.
Задание 7
Написать программу, в которой формируется последовательность двухбайтовых чисел x(i) (i=0,1…N) по алгоритму
x(i+1) = ax(i)-bx(i-1)
при заданных начальных значениях x(0), x(1) и коэффициентах a и b.
Найти максимальное значение в последовательности.
Контролировать переполнения.
Изобразить состояние стека при вызове процедуры.
Задание 8
Написать макрокоманду, в которой производится поиск заданного
слова в прямоугольной области экрана. Через аргументы в макрокоманду передаются координаты области экрана и заданное слово, а возвращаются координаты найденного слова или признак его отсутствия на экране.
По умолчанию поиск делать на всем экране.
Оформить программу с применением макрокоманды. Описать допустимые типы фактических аргументов.
Задание 9
Написать макрокоманду, которая выполняет сложение или вычитание матриц размерности (m x n). Адреса массивов, размерности и тип операции передаются через аргументы. В макрокоманде контролируются типы фактических аргументов.
С использованием макрокоманды составить программу, которая вычисляет среднее значение кодов символов в каждом столбце экрана.
Задание 10
Написать и оформить отдельным модулем процедуру, отображающую в правом верхнем углу экрана текущее время в течение заданного интервала. Длительность инервала отображения передается через стек. В вызываюшую программу возвращается значение текущего времени.
Написать программу с вызовом данной процедуры.
Задание 11
Написать процедуру поиска в заданной области физической памяти заданной последовательности байтов. Адреса области памяти и последовательности байтов передаются в процедуру через стек, а возвращается признак результата поиска.
Написать программу с использованием процедуры для поиска строки символов «AWARD» в начальном сегменте физической памяти. По результату поиска вывести на экран сообщение.
Изобразить на рисунке состояние стека при обращении к параметрам процедуры.