work_page = (CGA_RAM*) malloc(sizeof(CGA_RAM)); return(1); // Рабочая область
}
void DIRECT_VIDEO::done(void)
{
free(work_page); // Освобождение памяти
}
void DIRECT_VIDEO::fill(char ch, char attr)
{
CGA_RAM_ELEMENT temp_element = {ch, attr};
for(int row=0; row<25; row++)
for(int col=0; col<80; work_page->data[row][col++] = temp_element);
}
void DIRECT_VIDEO::fillarea(char r1, char c1, char r2, char c2, char ch, char attr)
{
CGA_RAM_ELEMENT temp_element = {ch, attr};
for(int row=r1; row<=r2; row++)
for(int col=c1; col<=c2; work_page->data[row][col++] = temp_element);
}
void DIRECT_VIDEO::flip(void)
{
_fmemcpy((void far*)video_ram, (void far*)work_page, sizeof(CGA_RAM));
}
void DIRECT_VIDEO::puttext(char row, char col, char attr, char* text)
{
while (*text!=0)
{
work_page->data[row][col].ch=*text;
work_page->data[row][col].attr=attr;
col++; text++;
}
}
#endif
Программа компилировалась при модели памяти COMPACT, чтобы обеспечить применение дальних указателей (в формате СЕГМЕНТ:СМЕЩЕНИЕ) на объекты списка.
Результаты выполнения программы:
Примечание: в задаче представлены отдельные фрагменты из последующих лабораторных работ, изучение которых можно выполнить по частям. Отчет должен содержать титульный листок, постановку задач, алгоритм их решения, отлаженные программы на алгоритмическом языке и результаты расчета. На кафедру сдать отчет на бумажной основе, выполненный в Word’e и исходные файлы программ.
13. ОТЛАДКА И ТЕСТИРОВАНИЕ ПРОГРАММЫ
Цель работы:
· Научиться выбирать и обосновывать модели памяти при разработке программы;
· Научиться выполнять тестирование программ;
· Научиться определять критерии качества созданной программы.
Задание 1: Ранее разработанную программу (по своему усмотрению), откомпилировать в двух различных моделях памяти: Smallи Large. Разработать для них структуру моделей памяти, дать сравнительную характеристику. Привести объемы памяти для исходных, объектных и исполняемых кодов.
Примечание. Для получения карты размещения компонентов программы используйте map – файл.
Задание 2: Выполнить тестирование разработанной в задании 1 программы. Перечислить виды ошибок, с которыми можно встретиться при разработке программы. Какие из этих видов ошибок не обнаруживает компилятор? Какие ситуации возможны при выдаче неверных результатов? Опишите процесс отладки этой программы с помощью отладчика ВС++.
Задание 3: Определить критерии качества разработанной в задании 1программы. Какие из них являются функциональными, какие конструктивными? К каким видам метрик они относятся? Укажите критерии качества, используемые на этапе проектирования программы. Укажите критерии качества, используемые на этапах эксплуатации и сопровождения программ.
Примечание. Для получения статистических данных о программе используйте программу Turbo Profiler.
Приведем пример выполнения лабораторной работы 13.
Для выполнения задания 1 воспользуемся ранее составленной программой, например, фрагментом программы на указатели, представленной в лабораторной работе 10. Эта программа небольшая по объему, поэтому оптимальным для нее будут модели памяти Tiny или Small. В соответствии с заданием, откомпилируем ее сначала в модели Small. Для этого в меню Options выбираем Compiler->Codegeneration... и в появившемся диалоговом окне указываем модель памяти Small:
Model:
( ) Tiny
(·) Small
( ) Medium
( ) Compact
( ) Large
( ) Huge
Компилируем программу и запишем значения размеров полученных файлов - *.exe и *.obj. Далее то же самое для этой программы повторим для модели памяти Large:
Model:
( ) Tiny
( ) Small
( ) Medium
( ) Compact
(·) Large
( ) Huge
Составим таблицу значений размеров файлов *.exe и *.obj для обоих случаев:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.