- •1. Формулировка задачи
- •2. Представление данных и ограничения
- •3. Описание функций программы
- •3.1. Иерархическая схема
- •3.2. Прототипы функций
- •4. Алгоритм решения задачи
- •5. Тестовые наборы данных и реакции
- •6. Исходный текст программы
- •7. Описание тестирования программы
- •Анализ работы по решению задачи
-
Анализ работы по решению задачи
Общее количество прогонов программы = 43
в том числе для устранения синтаксических ошибок = 5
1. При компиляции программы произошел останов в файле calc2.c в функции main на строке:
calc ( ) ;
c диагностическим сообщением «Call to function ‘calc’ with no prototype in function main» (вызов функции ‘calc’ без прототипа в функции main). Причиной этого стало ошибочное написание названия собственной функции Calc. Для устранения ошибки необходимо исправить calc на Calc.
Было:
сalc ( ) ;
Стало:
Calc ( ) ;
2. При компиляции программы произошел останов в файле myio2.c в функции YesNo в строке:
char c
с диагностическим сообщением «Declaration syntax error in function YesNo» (синтаксическая ошибка в функции YesNo). Причиной этого стало отсутсвие ‘;’ после объявления переменной c. Для устранения этого необходимо поставить ‘;’ после c.
Было:
char c
Стало:
char c;
в том числе для устранения логических ошибок = 38
1. Файл: myio2.c, функция YesNo.
Было:
printf ( “\n%s”, text );
c = getchar ( );
Стало:
printf ( “\n%s”, text );
fflush ( stdin );
c = getchar ( );
2. Файл: myio2.с, функция GetNum.
Было:
printf ( “\n%s = “, query );
scanf ( “%d”, &n);
Стало:
printf ( “\n%s = “, query );
fflush ( stdin );
scanf ( “%d”, &n);
3. Файл: const.h
Было:
#define MINNUM 1 /* минимальное обрабатываемое число */
Стало:
#define MINNUM -181 /* минимальное обрабатываемое число */
4. Файл: const.h
Было:
#define MAXNUM 2000 /* максимальное обрабатываемое число */
Стало:
#define MAXNUM 181 /* максимальное обрабатываемое число */
5. Файл: const.h
Было:
#define MAXLINES 20 /* максимальное количество строк, выводимых на экран */
Стало:
#define MINLINES 1 /* минимальное количество строк, выводимых на экран */
#define MAXLINES 20 /* максимальное количество строк, выводимых на экран */
6. Файл: myio2.c, функция GetPar.
Было:
Maxnum = GetNum ( NUMBERS, MINNUM, MAXLINES );
Стало:
Maxnum = GetNum ( NUMBERS, MINLINES, MAXLINES );
7. Файл: const.h
Было:
#define MAXLINES 20 /* максимальное количество строк, выводимых на экран */
Стало:
#define MAXLINES 23 /* максимальное количество строк, выводимых на экран */
8. Файл: myio2.c, функция GetPar.
Было:
Maxnum = GetNum ( NUMBERS, MINLINES, MAXLINES );
Стало:
Maxnum = GetNum ( NUMBERS, MINLINES, MAXLINES );
if( Begnum + Maxnum > MAXNUM )
Maxnum = MAXNUM – Begnum + 1;
9. Файл: myio2.c, функция GetNum.
Было:
scan( “%d”, &n );
if( n < minnum )
Стало:
scan( ( “%d”, &n ) != 1 );
n = ( minnum + maxnum ) / 2;
if( n < minnum )
10. Файл: myio2.c, функция Title.
Было:
printf ( “%s”, SQUARES );
Стало:
printf ( “\n%s”, SQUARES );
12. Файл myio2.c, функция GetNum.
Было:
printf ( “%s”, text );
Стало:
printf ( “\n%s = ”, text );
13. Файл: myio2.c, функция YesNo.
Было:
printf ( “\n%s”, text );
Стало:
printf ( “\n%s[Y/N]? ”, text );
14. Файл text2.c
Было:
char *SQUARES = "\n Integer squares output";
char *STARTNUM = "\n First value ";
char *NUMBERS = "\n Number of value ";
char *FINAL = "The work is finished!";
char *QUERY = "Repeat";
char *OUTMSG = "\nValue = %3d, its square = %5d";
#else
char *SQUARES = "\n Вывод квадратов целых чисел";
char *STARTNUM = "\n Начальное число";
char *NUMBERS = "\n Количество чисел";
char *FINAL = "Работа закончена!";
char *QUERY = "Повторить";
char *OUTMSG = "\nЧисло = %3d, его квадрат = %5d";
Стало:
char *SQUARES = "Integer squares output";
char *STARTNUM = "First value";
char *NUMBERS = "Number of value";
char *FINAL = "The work is finished!";
char *QUERY = "Repeat";
char *OUTMSG = "\nValue = %3d, its square = %5d";
#else
char *SQUARES = "Вывод квадратов целых чисел";
char *STARTNUM = "Начальное число";
char *NUMBERS = "Количество чисел";
char *FINAL = "Работа закончена!";
char *QUERY = "Повторить";
char *OUTMSG = "\nЧисло = %3d, его квадрат = %5d";
15. Файл: calc2.c, функция Calc.
Было:
int i;
for ( i = 0; i < Maxnum; i++ )
printf ( OUTMSG, Begnum + i, (Begnum + i)*(Begnum - i) );
Стало:
int i, k;
for ( i = 0; i < Maxnum; i++ )
{
k = Begnum + i;
printf ( OUTMSG, k, k*k );
}
16. Файл: myio2.c, функция YesNo.
Было:
int YesNo ( char *query )
{
char c;
Стало:
int YesNo ( char *query )
{
int c;
|
в том числе для тестирования |
26 |
|
Общее количество строк исходного текста программы |
305 |
|
в том числе строк только с комментариями |
154 |
|
Размер исполняемого модуля (sq2.exe), байт |
9988 |
