-
Анализ работы по решению задачи
Общее количество прогонов программы = 123
в том числе для устранения синтаксических ошибок = 66
в том числе для устранения логических ошибок = 104
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 );
27
7. Файл: const.h
Было:
#define MAXLINES 20 /* максимальное количество строк, выводимых на экран */
Стало:
#define MAXLINES 18 /* максимальное количество строк, выводимых на экран */
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 );
11. Файл myio2.c, функция GetNum.
Было:
printf ( “%s”, query );
Стало:
printf ( “\n%s = ”, query );
12.Файл: myio2.c, функция YesNo.
Было:
printf ( “\n%s”, msg );
Стало:
printf ( “\n%s[Y/N]? ”, msg );
13.Файл text2.c
Было:
char *SQUARES = "\n Integer squares output";
char *STARTNUM = "\n The first number";
char *NUMBERS = "\n The amount of numbers";
char *FINAL = "The work is finished!";
char *QUERY = "Repeat";
char *OUTMSG = "\n Number = %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 = "The first number";
char *NUMBERS = "The amount of numbers";
char *FINAL = "The work is finished!";
char *QUERY = "Repeat";
char *OUTMSG = "\nNumber = %3d, its square = %5d";
#else
char *SQUARES = "Вывод квадратов целых чисел";
char *STARTNUM = "Начальное число";
char *NUMBERS = "Количество чисел";
char *FINAL = "Работа закончена!";
char *QUERY = "Повторить";
char *OUTMSG = "\nЧисло = %3d, его квадрат = %5d";
14. Файл: 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 );
}
}
15. Файл: myio2.c, функция YesNo.
Было:
int YesNo ( char *query )
{
char c;
Стало:
int YesNo ( char *query )
{
int c;
в том числе для тестирования = 115
Общее количество строк исходного текста программы = 295
в том числе строк только с комментариями = 137
Размер исполняемого модуля (sq2.exe), байт =