Лабораторная работа № 5
(системное программирование)

Консольные операции ввода - вывода.

Цель данной лабораторной работы:

- изучить основные команды, при помощи которых возможно выполнения основных операций ввода - вывода.

- закрепить знания, полученные на предыдущей лабораторной работе, о основных арифметических операциях.

Работа рассчитана на четыре часа (две пары)

Вам необходимо изучить следующие документы:

ПИТЕР АБЕЛЬ АССЕМБЛЕР И ПРОГРАММИРОВАНИЕ ДЛЯ IBM PC

Справочник программиста на персональном компьютере фирмы IBM

И, при необходимости, повторить Архитектура процессора и Основы программирования

1.Постановка задачи

Написать программу, организующую ввод данных с клавиатуры и вывод информации на экран монитора (в окно задачи).

Варианты заданий даны ниже.

Во всех вариантах предусмотреть завершение работы после нажатия пользователем клавиши ESC.

Работать в алфавитно-цифровом режиме монитора, разрешение экрана - 25 на 80 символов. Экран монитора считать "непрерывным", т.е. при достижении, например, позиции строки экрана с координатами (0,25)- (79,25) считать следующей строкой строку с координатами - (0,0) - (79,0)

2. Варианты заданий

1. "След от буквы" - программа выводит на экран заданную букву и при нажатии клавиш "стрелки" - "вверх", "вниз", "влево", "вправо" осуществляет перемещение буквы по экрану монитора не стирая старого изображения буквы.

2. "Бегающая буква" - программа выводит на экран заданную букву и при нажатии клавиш "стрелки" - "вверх", "вниз", "влево", "вправо" осуществляет перемещение буквы по экрану монитора (стирая старое изображение буква).

3. Вывести на экран символ "1" в первую строку, символ "2" - во вторую, и т.д. Строчки 10 - 25 заполнить соответственно буквами "а", "б", и т.д.

4. Вывести на экран символ "*" в "шахматном порядке".

5. Вывести на экран символ "*" так, что бы в первая строка содержала 25 подряд идущих символов, а каждая последующая строка на один символ меньше.

6. Вывести на экран монитора в первую строчку символы цифр от "0" до "9" так, что бы каждой цифре предшествовал 1 пробел слева и 8 пробелов с права.
по нажатию клавиши "стрелка вниз" - выводить информацию в следующую строку так, что бы количество предшествующих цифре пробелов увеличивалось на единицу, а количество пробелов справа уменьшалось на единицу.

7. Вывести на экран монитора в первую строку символы цифр от "0" до "9" В следующие строчки выводить те же цифра, но каждый раз выполняя циклический сдвиг.
Например - в строку 2 - "1", "2", "3", ......"9", "0".

8. Заполнить экран монитора символом "*" по периметру.

9. Вывести на экран монитора, вводимые с клавиатуры символы но не построчно (по горизонтали), а по столбцам (вертикально).

10. Вывести на экран монитора, вводимые с клавиатуры символы справо налево. Начинать вывод с последнего знако-места первой строки.

11. Вывести на экран строку символов "1234567890". При нажатии клавиш "стрелки" - "вверх", "вниз", "влево", "вправо" осуществляет перемещение строки по экрану монитора.

12. Заполнить экран монитора "квадратами" из символа "*" в шахматном порядке. Каждый квадрат имеет "размер" 5 на 5 символов.

13. Вывести на экран монитора вводимые символы по диагонали экрана. Т.е. первый символ выводится в (0,0), второй - в (1,1), третий - (2,2) и т.д.

14. Вывести на экран монитора "квадрат" из символа "*" в левом верхнем углу экрана. При нажатии клавиш "стрелки" - "вверх", "вниз", "влево", "вправо" осуществляет перемещение "квадрата". Попытки "переместить квадрат" за границы экрана - блокировать.

15. Вывести на экран монитора все "печатные" символы построчно, разделяя их символом "пробел".

16. Вывести на экран монитора все "печатные" символы по столбцам, разделяя их символом "пробел".

17. "Мельница" - вывести на экран строку из 10 символов "*" и столбец из 10 символов "@" так, что бы строка и столбец "пересекались" в точке экрана с координатами (40,12). В "точке пересечения" вывести символ Z. При нажатии клавиши "пробел" производить смену символов * на @.

18. "Нарисовать" на экране "квадрат" символом "*". Размер "квадрата" 2 на 2 символа. Место расположение - центр экрана. При нажатии клавиши ">" увеличивать "размер" на один символ, при нажатии клавиши "<" - уменьшать.

19. "Нарисовать " на экране "квадрат" символом "*". Размер "квадрата" 5 на 5 символов. Место расположение - центр экрана. Менять символ "*" на символ вводимый с клавиатуры.

20. Заполнить экран монитора символом "*" по главной диагонали экрана. При нажатии клавиш "стрелки" - "вверх", "вниз" - "перемещать" диагональную строчку над и под диагональ.

Пример программы - "перемещение и смена буквы" можно посмотреть здесь. (в кодировке code page 866 - здесь)

3. Содержание отчета

1. Постановка задачи.

2. Алгоритм решения

3. Программа решения задания

4. «Окно» результатов

5. Объяснение результатов.

Успехов в работе.