Задания к работе. Подготовка и выполнение
¨ Задания к работе 1) Ввести строку из произвольных ASCII- символов и произвести её сортировку под управлением функциональных клавиш: < F1> – по возрастанию; < F2> – по убыванию; < F10> – завершение программы. Работу программы отобразить на экране. 2) Ввести строку из произвольного числа символов и произвести в ней поиск подстроки SYMBOL. Если подстрока найдена, то её необходимо удалить. Вновь полученную строку вывести на экран. Если подстрока не найдена, вывести сообщение NOT_FOUND. Программу защитить паролем. 3) Ввести строку из произвольного числа символов. Выполнить преобразование символьной строки в её цифровой аналог на основе ASCII- кодов, после чего произвести поиск максимального кода. Работу программы отобразить на экране и защитить паролем. 4) Ввести строку из произвольных ASCII- символов и произвести её сортировку к виду, включающему четыре части разделённые пробелами: цифры, буквы прописные, буквы строчные, все другие символы. Работу программы отобразить на экране и защитить паролем. 5) Ввести строку из нескольких слов, разделённых пробелами. Слова включают в произвольном порядке цифры, строчные и прописные латинские буквы. Отредактированная строка включает слова, начинающиеся с прописной буквы (остальные строчные). Цифры из слов должны быть удалены. Программу защитить паролем. 6) Ввести строку из произвольных ASCII- символов и выполнить с ней преобразования, задаваемые нажатием функциональных клавиш: < F1> – изменение порядка следования символов исходной строки на обратный, < F2> – замена строчной буквы на прописную и обратно, < F10> – завершение программы. 7) Ввести строку из произвольного числа символов и произвести в ней поиск подстроки COMPUTER. Если такой подстроки нет, то данную подстроку ввести в начало исходной строки и вывести на экран. В противном случае дать сообщение There is. Программу защитить паролем. 8) Добавление и удаление элементов из неупорядоченного массива. Элементы последовательно один за другим вводятся с клавиатуры. При этом, если такой элемент отсутствует в массиве (первоначально он пуст), то он вводится в конец списка, в противном случае, он удаляется из него, а оставшиеся элементы сдвигаются влево (в сторону младших адресов) на одну позицию. Список элементов постоянно отображается на экране. Выход из программы осуществляется с помощью клавиши < Esc>. 9) Ввести строку из произвольного числа символов. Выполнить преобразование символьной строки в её цифровой аналог на основе ASCII- кодов, после чего произвести поиск минимального кода. Работу программы отобразить на экране и защитить паролем. 10) Ввод с клавиатуры на экран произвольного текста с одновременной записью в буфер. Реализовать элементы редактирования: стирание последних символов клавишей Backspace, контроль над прописной буквой первого слова нового предложения (ввести признак начала предложения). При ошибке строчная буква заменяется прописной. Переход на новую строку осуществляется клавишей < Enter>. Управление: < F1> – вывод копии отредактированного текста из буфера, < F10> – выход из программы. 11) Ввод с клавиатуры на экран произвольного текста с одновременной записью в буфер. Программа демонстрирует переход на новую строку одним из двух способов: – нажатие клавиши < Еnter>; – нажатие клавиши < Пробел>, если последнее введённое слово пересекло границу в 40 символов. В этом случае на новую строку автоматически переносится всё последнее слово. После перехода на новую строку вывод текста может быть продолжен в обычном порядке. Выход из программы с помощью клавиши < Esc>. 12) Ввести строку из произвольного числа символов и произвести в ней поиск подстроки AUTOMATON. Если такой подстроки нет, то в начало исходной строки поместить символ @, а в её конец дописать подстроку и вывести на экран. В противном случае дать сообщение There is. Программу защитить паролем. 13) Программа проверки работоспособности ОЗУ для заданной области памяти данных с использованием шахматного теста. Тест предусматривает запись в ячейки с чётными адресами числа 0AAh, а в нечётные – 55h. В результате последующего считывания осуществляется проверка записанной информации. При обнаружении сбоя запоминается адрес данной ячейки (для проверки выполнения последнего требования использовать прогон программы в отладчике TD). 14) Программа проверки работоспособности ОЗУ для заданной области памяти с использованием сканирующего теста. Тест предусматривает запись байта 00h с последующим считыванием и проверкой, затем те же действия выполняются с числом 0FFh. По результатам теста формируется массив из адресов ячеек, в которых обнаружен сбой (для проверки выполнения последнего требования использовать прогон программы в отладчике TD). Программу оформить как com-файл. 15) Разработать программу, преобразующую все символы введённой строки (в строке представлены произвольные алфавитно-цифровые символы) из нижнего регистра клавиатуры в верхний. ¨ Подготовка и выполнение: a) ознакомиться с методическими рекомендациями к лабораторной работе и соответствующими тематическими разделами в рекомендуемой литературе; б) разработать и отладить программу в соответствии с индивидуальным заданием; в) программа, по возможности, должна обеспечивать удобный экранный интерфейс с пользователем при её демонстрации; г) отчёт о выплненной работе представляет собой: – индивидуальное задание на разработку программы; – листинг программы с подробными комментариями и описанием её работы. Контрольные вопросы 1. Что такое дескриптор? Сколько дескрипторов определено в DOS и как ими пользоваться? 2. Какие функции DOS можно использовать для ввода символов с клавиатуры в регистр AL процессора? 3. Назовите функции DOS, осуществляющие ввод строки символов с клавиатуры в память данных. 4. Какие функции DOS осуществляют операцию вывода на экран: – одиночных символов из регистра DL процессора; – строки символов из памяти данных? 5. Напишите процедуру перевода курсора на новую строку с помощью функции 02h DOS. 6. Что такое скан-код клавиши и чем он отличается от расширенного кода ASCII? Как нужно организовать вызовы соответствующей функции DOS для получения расширенного ASCII-кода? 7. Каким сегментным регистрам должен адресоваться сегмент данных, в котором располагается: – строка-источник, – строка-приёмник? 8. Какие строковые команды влияют на флаги, а какие нет? 9. Перечислите префиксы повторения строковых команд и их возможные сочетания друг с другом. 10. В какой фазе исполнения команды происходит проверка счётчика на равенство нулю при выполнении: – строковой команды с префиксом повторения; – команды управления циклом Loop < метка>? Что происходит с исполнением этих команд, если счётчик СХ инициализирован нулём?
|