Использование указателей bc++, страница 5

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 для обоих случаев: