Требования к программному проекту

(А. А. Валов доцент каф. ВТ, 2007)

Целью программного проекта является приобретение навыков разработки и отладки программ на языке ассемблера для IBM-совместимых компьютеров.

При решении сложных задач используется метод декомпозиции, предусматривающий разбиение решаемой задачи на совокупность подзадач, которые упорядочиваются иерархически. Процесс решение каждой подзадачи можно представить в виде совокупности действий, оформленных как программный модуль для преобразования указанных исходных данных в результирующие данные. Для управления последовательностью своевременных вызовов программных модулей, предназначенных для решения соответствующих подзадач, выделяется основной программный модуль MAIN.

Используя созданные во время выполнения лабораторных работ программные модули, разработать многомодульную программу на языке ассемблера. Эта программа состоит из основного программного модуля MAIN и ряда вспомогательных программных модулей, каждый из которых содержит только одну процедуру, предназначенную для решения выделенной подзадачи.

Создаваемая программа должна осуществлять последовательный ВВОД двух двоичных N-разрядных чисел. Одно из этих чисел назовем числовым объектом, другое маской. Величина N определяется вариантом задания. Для ввода числового объекта и маски необходимо создать программный модуль INPUT ввода с клавиатуры двоичного числа нужной разрядности, а своевременный вызов этого модуля будет осуществляться из основного программного модуля MAIN.

Создаваемая программа должна после ВВОДА числового объекта и маски осуществить преобразование числового объекта и количественно оценить результат этого преобразования. Для указанных действий необходимо создать соответствующий программный модуль MASK преобразования числового объекта. Процедура этого модуля своевременно активизируется оператором CALL из основного программного модуля MAIN. Преобразование числового объекта заключается в замене значений соответствующих разрядов числового объекта и подсчете количества единиц (или нулей) в преобразованном числовом объекте. Значение i-го разряда числового объекта заменяется на значение А, если i-й разряд маски равен значению В. Величины А и В определяются вариантом задания.

После решения подзадачи преобразования числового объекта основной программный модуль MAIN должен, во-первых, выполнить подсчет количества единиц (или нулей) в преобразованном числовом объекте, во-вторых, проверить наличие заданного свойства у вычисленной величины и по результату проверки осуществить вызов либо программного модуля OUTSTAR, либо модуля OUTNUMBER.

Если количество единиц (или нулей) числового объекта характеризуется заданным свойством (смотри вариант задания), то активизируется работа программного модуля OUTSTAR, выполняющего отображение на экране символа звездочки (*) в количестве, равном количеству единиц (или нулей) в числовом объекте. Символы звездочки размещаются по прямой линии, положение которой на экране необходимо согласовать с преподавателем.

Если количество единиц (или нулей) в числовом объекте не характеризуется заданным свойством, то вызывается программный модуль OUTNUMBER, осуществляющий вывод на экран десятичного числа, соответствующего количеству единиц (или нулей) в преобразованном числовом объекте. После вывода на экран десятичного числа основной программный модуль MAIN активизирует работу программного модуля FILECHANGE обработки предварительно созданного текстового файла. Обработка файла производится в соответствии с вариантом задания. Исходный файл необходимо создать состоящим из цифр и строчных латинских символов.

Обработка файла заключается, во-первых, в перемещении содержимого файла в буфер, созданный в программе. Во-вторых, в замене соответствующих элементов файла (цифр или строчных латинских символов) на новые или в добавлении к элементам файла новых элементов в соответствии с вариантами задания. В-третьих, в осуществлении вывода отредактированного текста на экран и в размещении его в новом файле, который необходимо создать. Вывод текста на экран осуществляется по согласованию с преподавателем либо с помощью специальных функций операционной системы, либо путем пересылки текста в память видеоадаптера.

Двухуровневая структура создаваемой многомодульной программы состоит из шести модулей, пять из которых являются исполнительными. Управляющий модуль MAIN имеет связь с каждым из следующих исполнительных модулей: INPUT, MASK, OUTSTAR, OUTNUMBER, FILECHANGE.

Варианты задания приведены в таблице. Анализируемая величина в таблице обозначена символом X.

Таблица

Вариант N А В Свойство X Что нужно заменять (добавлять)
           
    Инверсное   Кратное 3 Цифры на пробелы
        Больше 5 Строчные на прописные
    Инверсное   Нечетное После первой цифры свое имя
        (Второй бит X)=1 Вместо первой буквы свое имя
        Меньше 7 В конец файла свое имя
    Инверсное   Кратное 5 В начало файла свое имя
        Равно 6 После второй цифры свое имя
        Четное 5 первых символов на пробелы
        (Пятый бит X)=0 Цифры на знак +
        3<X<7 Первый символ на первую цифру

Результаты проекта оформляются в виде пояснительной записки, содержащей следующие разделы.

1. Вариант задания с пояснением исходных данных;

2. Описание программы;

3. Листинг программы на языке ассемблера с комментариями;

4. Анализ результатов обучения и оценка времени, затраченного на приобретение практических навыков.

Результаты выполнения работы демонстрируются преподавателю с целью аттестации уровня знаний и навыков программирования. Для успешной защиты проекта необходимо владеть уменьем модернизации созданной программы.

Выполнение данного проекта осуществляется в два этапа.

На первом этапе необходимо сформировать знания и практические навыки для достижения поставленной цели. Изучению подлежит содержимое файлов Book_abel.exe, Asmdoc.exe. В первом из названных файлов достаточно изучить содержание разделов (глав) 1-3, 5-8, 11, 13, 17, 21, 23-25. В файле Asmdoc.exe содержится справочная информация об языке ассемблера. После прочтения содержимого файла Book_abel.exe необходимо выполнить цикл лабораторных работ, перечень и содержание которых изложены в файле ZADLAB.doc. Дополнительные сведения для обретения практических навыков программирования содержатся в файлах Lab_arch.doc, Lab3_ar.doc, Lab5_ar.doc.

На втором этапе в соответствии с вариантом задания создается многомодульная программа на базе модулей, разработанных при выполнении цикла лабораторных работ.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: