Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
37
Добавлен:
16.02.2016
Размер:
4.72 Mб
Скачать

6)Описание функций, созданных программистом

Функции созданные программистом должны размещаться за пределами тела функции main(). Для данного проекта целесообразно разработать функцию, например с именемmenu(), реализующую функциональное символьное меню, в котором должно бытьcемь пронумерованных символьных строк с содержательным наименованием задач и содержательный вопрос к пользователю программы: Введите номер выбранной задачи? В ответ на этот вопрос пользователь вводит один из номеров задач из списка 1…7., которое присваивается целочисленной переменной, напримерL. Значение переменнойLиспользуется в оператореif….elseif() для управления переходами на решаемые задачи.

Начальная часть кода функции menu() может иметь, например такой вид:

int menu()

{int L;

charfm0[]="Функциональное меню для задач обработки двумерных массивов";

AnsiToOem(fm0,fm0);

cout<<fm0<<endl<<endl;

charfm1[]=" 1. Задача 1. Сформировать исходный двумерный массив";

AnsiToOem(fm1,fm1);

cout<<fm1<<endl<<endl;

charfm2[]=" 2. Задача 2. Получить сумму элементов верхней треугольной матрицы";

AnsiToOem(fm2,fm2);

cout<<fm2<<endl<<endl;

………………………….

………………………….

charfm7[]=" 7. Задача 7. Перемножить преобразованную и транспонированную матрицы";

AnsiToOem(fm7,fm7);

cout<<fm7<<endl<<endl;

charfm8[]=" Выберите и введите номер требуемого пункта меню";

AnsiToOem(fm8,fm8);

cout<<fm8<<endl<<endl;

charfm9[]=" Для выхода из программы введите 0";

AnsiToOem(fm9,fm9);

cout<<fm9<<endl<<endl;

getch();

cin>> L;

returnL;

}//конец меню

Функция, реализующая задачу №1, может иметь, например, такой вид:

int Zadacha1()

{ int i,j;

int k=6;

A[0][0] = 2;

for (i=0;i<3;i++)

{

for (j=0;j<3;j++)

{ k=k+1;

srand(time(NULL));// инициализирует ф-ю rand()

A[i][j] = A[i][j]+rand() % k;

cout<<"A["<< i<<"]"<<"["<<j<<"] ="<<A[i][j]<<endl;

}

}

return 0;

} //конец функции int Zadacha1()

3.4. Отладка и доказательство правильности работы программы

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

1)С помощью кнопки Compile(Ctrl+F7) или команды меню Build/Compile имя файла.cpp запускается программа Компилятор(Compiler), которая компилирует и выполняет полный синтаксический контроль исходного текста программы. Ошибки компиляции выводятся в окно сообщений(нижнее окно главной формы VC). Кроме текста сообщения с сущностью ошибки компилятор указывает, правда не всегда точно, местоположение ошибки на строках исходного текста. Для этого необходимо перевести курсор мыши на строку нужного сообщения и дважды щелкнуть левой клавишей мыши. При этом против строки с ошибкой в окне редактирования кода появляется стрелка-указатель голубого цвета. После исправления всех синтаксических ошибок(при этом в протоколе синтаксического контроля счетчики числа ошибок и замечаний будут показывать 0) можно перейти к следующему этапу обработки исходного текста программы– компоновке исполняемой программы.

2)Для этого необходимо с помощью кнопки Buield или команды главного меню Build/Rebuild All запустить программу Компоновщик(Linker). Если эта программа обработала откомпилированный текст программы(объектный код) без ошибок(при этом счетчики числа ошибок и замечаний будут показывать 0), то можно запускать полученную исполняемую программу на выполнение, в противном случае необходимо устранить ошибки и замечания Компоновщика. Для этого можно воспользоваться кнопкой Execute Program, клавишей F7 или пунктом меню Build/ Build имя файла. exe.

3)После исправления всех ошибок Компилятора и Компоновщика можно приступить к обнаружению и исправлению алгоритмических ошибок, присутствующих в коде программы, т.е. доказательству правильности работы программы.

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

При совпадении результатов программа работает правильно. В противном случае следует искать алгоритмическую ошибку в коде задачи: сначала найти ее место в коде, а затем придумать как ее устранить и добиться совпадения контрольного и получаемого программой результирующего значения.

Соседние файлы в папке МетодУказЛабРабот