Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая3.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.82 Mб
Скачать

1.4.6. Пробелы

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

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

int a, size;

char *buf;

float lenght1, lenght2;

. . .

a = 1;

lenght1 = GetLength();

lenght2 = 0;

size = (int) lenght1;

Практику правильного использования пробелов можно также изучить по всем остальным примерам данного подраздела.

1.4.7. Пустые строки

Использование пустых строк является важным средством для выделения участков программы. При этом имеет смысл отделять:

1) определения переменных:

char str[80];

int counter = 0;

fgets( str, 79, infile);

counter++;

2) последовательности однотипных инструкций или директив:

#include

#include

#include

#define NAME_SIZE 256

#define MAX_LEN 3000

3) функции:

int main()

{

. . .

}

char *get_name(FILE *f)

{

. . .

}

4) любые логически завершенные блоки кода:

printf( "Enter size and delta: " ); //Блок ввода данных

scanf( "%d", &size );

scanf( "%f", &delta );

for( i=0; i < size; i++ ) //Блок использования данных

{ a[i] -= delta;

b[i] += delta;

}

1.4.8. Имена

Типичной ошибкой начинающих является стремление давать всем переменным неосмысленные однобуквенные имена, например m, n, a, s, p и т.п. Это глубоко порочная практика, поскольку при этом теряется сам смысл понятия имя. Однобуквенные имена принято давать только индексам. Исключением являются случаи, когда количество переменных в процедуре

#define NAME_SIZE 256

#define MAX_LEN 3000

3) функции:

int main()

{

. . .

}

char *get_name(FILE *f)

{

. . .

}

4) любые логически завершенные блоки кода:

printf( "Enter size and delta: " ); //Блок ввода данных

scanf( "%d", &size );

scanf( "%f", &delta );

for( i=0; i < size; i++ ) //Блок использования данных

{ a[i] -= delta;

b[i] += delta;

}

1.4.9. Комментарии

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

size = 10; // Присвоить size значение 10

for( i=0; i < size; i++) // Цикл по i от 0 до size

{ . . .

}

Такого рода комментарии только загромождают программу.

Комментировать следует:

заголовок файла, описывая содержимое данного файла;

заголовок функции, поясняя назначение ее аргументов и смысл самой функции;

вводимые переменные и структуры данных;

основные этапы и особенности реализуемых алгоритмов;

любые места, которые трудны для быстрого понимания, в особенности использование различных программных "трюков" и нестандартных приемов;

1.5. Методы тестирования по

Тестирование программ — процесс исследования, испытания программного обеспечения (ПО) с целью получения информации о качестве продукта.

Программы в процессе тестирования используются в двух принципиально различных формах представления:

  • в виде текста на языке программирования или описания спецификаций требований (символьное представление), удобном для анализа человеком и обычно недоступном для непосредственного получения результатов функционирования на ЭВМ;

  • в машинном коде конкретной ЭВМ (объектное представление), пригодном для автоматической обработки определенных кодовых исходных данных и неудобном для анализа человеком.

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

  • статические — использующие только исходные тексты программ, преимущественно на языках высокого уровня без исполнения той же программы в машинном коде на ЭВМ;

  • динамические — при которых тестируемая программа исполняется на ЭВМ в соответствующем машинном коде, а тексты на языке программирования используются как вспомогательные.