Присваивание указателей друг другу 8 страница

2. Бахтизин В.В., Глухова Л.А. Лабораторный практикум по курсам "Конструирование программ и языки программирование" и "Программирование". Часть 3. Программирование на языке Си в среде Турбо для ПЭВМ. - Мн.: БГУИР, 1993.

3. Берри Р., Микинз Б. Язык Си. Введение для программистов. - М.: Финансы и статистика, 1988.

4. Болски М.И. Язык программирования Си. - М.: Радио и связь, 1988.

5. Касаткин А.И., Вальвачев А.И. От Turbo C к Borland C++. - Мн.: Высш. школа, 1992.

6. Керниган Б., Ритчи Л., Фьюер А. Язык программирования Си. Задачи по языку СИ. - М.: Финансы и статистика, 1985.

7. Кормен Т., Лейзерсон Ч., Ривест Р. Алгоритмы: Построение и анализ. – СПб, 2003.

8. Универ Р. Язык Тurbo C. - М.: Мир, 1991.

9. Уэйт М., Прата С., Мартин Д. Язык СИ. - М., 2002.

10. Хенкок Я., Кригер М. Введение в программирование на языке Си. - М.: Радио и связь. - М.: Мир, 1993.

11. Шелест В.Д. Программирование: Структурный подход. Алгоритмы. Turbo Pascal. Borland C++. Современный Fortran. – СПб, 2003.

12. Юлин В.А., Булатова И.Р. Приглашение к Си. - Мн.: Выш. школа, 1990.

Приложение 1.
Рекомендации по оформлению текстов программ

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

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

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

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

а) не зависеть от конкретной среды разработки;

б) максимально полно отражать семантику языковых конструкций;

в) способствовать повышению читаемости исходного кода.

Несмотря на то, что правила сформулированы с использованием слов «должны», «следует», они носят лишь рекомендательный характер.

Комментарии

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

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

Основные операции

В общем случае используется свободная форма записи выражений. Между тем, рекомендуется и встречается чаще вариант с использованием пробелов для отделения знака операции от операндов, поскольку это в ряде случаев позволяет повысить читаемость кода.

a = b * x;

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

for (i=1; i<=10; i++)...

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

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

y = 9*x*x + 5*x + 3;

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

Неудачный вариант Предпочтительный вариант
a = b - (c + 5 / d) – (e + f / h * j)); a = b - (c + 5 / d) – (e + f / h * j));

При разрыве выражения в правой части оператора присваивания рекомендуется продолжать выражение в следующей строке начиная с позиции под первым символом выражения в предыдущей строке (см. предпочтительный вариант выше).

Кроме того, не рекомендуется разрыв выражения вблизи оператора деления /, поскольку в таком применении его можно перепутать с обратным слешем \, используемым для разрыва строк.

Скобочные выражения

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

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

Неудачный вариант Предпочтительный вариант
a = b + (c * d) – (e / f) a = b + (c * d) – (e / f)

Условный оператор

Условный оператор if-else предполагает наличие одного или двух «подчинённых» операторов. «Подчинённые» операторы записываются с дополнительным отступом от левого края экрана.

if (x < 0)

y = -x;

else

y = x;

Для сокращённой формы оператора (без else-блока) оформление отступов сохраняется.

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

Неудачные варианты Предпочтительный вариант
if (a == b) { printf(“Equal\n”); x = a + b; } else { printf(“Not equal\n”); x = b + 3*a; }   if (a == b) { printf(“Equal\n”); x = a + b; } else { printf(“Not equal\n”); x = b + 3*a; }
if (a == b) { printf(“Equal\n”); x = a + b; } else { printf(“Not equal\n”); x = b + 3*a; }  
if (a == b) { printf(“Equal\n”); x = a + b; } else { printf(“Not equal\n”); x = b + 3*a; }  
if (a == b) { printf(“Equal\n”); x = a + b; } else { printf(“Not equal\n”); x = b + 3*a; }

В столбце «Неудачный вариант» приведено несколько вариантов, не рекомендуемых к применению.

Операторы циклов

Оператор while записывается по тем же правилам, что и условный оператор if без else-блока.

a = 1;

while (a < 3)

printf(“%d\n”,a++);

a = 1;

while (a < 3)

{

printf(“%d\n”,a);

a++;

}

Оператор do-while от while отличается тем, что, фактически, представляет собой операторные скобки. Тем самым, этот оператор выбивается из общего ряда операторов. Тем не менее, рекомендуется следующий вариант оформления цикла do-while.

i = 1;

do

{

printf(“%d\n”,i);

i++;

}

while (i > 3);

Цикл for оформляется аналогично while, за исключением заголовочной части. Заголовок цикла for рекомендуется записывать следующим образом:

for (i=100, j=3; i<2, j>5; i--, j++)

printf(“%d %d\n”,i,j);


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: