ПРИЛОЖЕНИЕ Б - Оформление программного кода

1. В программе должны использоваться два вида комментариев: многострочные и однострочные.

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

/* Лабораторная работа по алгоритмизации №1

* «Операторы условия»

* Программа ставит диагноз больному в соответствии

* с его жалобами, задавая наводящие вопросы.

* Выполнил студент группы 1-4

* Пупкин Василий Иванович

* 20 февраля 2009г

*/

1.2. Однострочные комментарии используются в конце строк кода для пояснения сложных конструкций и логики программы. В языке «Си» для однострочных комментариев используется конструкция «// текст» в конце строки кода, например:

int fun (int a, int b) {

return (a>b)?a:b; //возвращаем максимальное из a,b

}

2. Операторные скобки и отступы.

2.1. Текст программы должен быть отформатирован в соответствии с требованиями к удобочитаемости кода. Все вложенные (зависимые) операторы должны иметь отступ. Отступ должен быть образован символом табуляции (кнопка «tab»). Вложенным оператор является, если он входит в составную конструкцию языка и является зависимым от внешнего оператора. Например, языковые конструкции «for», «while» и «do» имеют зависимые (вложенные) операторы. Оператор «if…else» имеет два вложенных оператора. Примеры оформления вложенных операторов:

for (int i=0;i<10;i++) a=b+i;

for (int i=0;i<10;i++)

a=b+i;

while (a>10) a=fun();

while (a>10)

a=fun();

2.2. Если требуется вложить более одного зависимого оператора (фрагмент программы), используются операторные скобки: «{}». Открывающая операторная скобка ставится после оператора, в который требуется вложить другие операторы. Закрывающая операторная скобка ставится под оператором, в который требуется вложить другие операторы, на той же позиции, что и первая буква этого оператора. Между операторными скобками помещаются все вложенные операторы, с отступом относительно внешнего оператора. Это условие соблюдается для всех уровней вложенности, например:

for (int i=0;i<10;i++) {

a=b+i;

c=c+a+b;

}

while (a>10) {

b=fun();

a=a-1;

}

for (int i=0;i<10;i++) {

a=b+i;

while (a>10) {

b=fun();

a=a-1;

}

c=c+a+b;

}

В третьем случае операторы «b=fun()» и «a=a-1» вложены в оператор «while», а сам оператор «while» вместе с операторами «a=b+i» и «c=c+a+b» вложены в оператор for. Пример оформления оператора «if…else» без операторных скобок:

if (a>b) c=a;

else c=b;

Пример оформления оператора «if…else» с операторными скобками:

if (a>b) {

c=a;

d=a+1;

} else {

b=2;

a=b;

}

Пример оформления сложносоставного оператора «if…else»:

if (a>b) {

c=a;

d=b;

if (m>0) {

m=m-1;

} else c=c+1; // блок else относится к несоблюдению if(m>0)

} else {// блок else относится к несоблюдению if(a>b)

if (a==b) {

c=a+1;

d=b+1;

} else { // блок else относится к несоблюдению if(a==b)

c=0;

d=0;

}

}

ПРИЛОЖЕНИЕ В – КРАТКИЙ ОБЗОР ОСНОВНЫХ КОНСТРУКЦИЙ ЯЗЫКА С

Основные типы данных.

Наименование типа Описание типа Примечания
Целое int long short Целочисленные константы могут быть десятичными, восьмеричными или шестнадцатиричными. Восьмеричные константы
Беззнаковое целое unsigned int unsigned short unsigned long обязательно начинаются с 0, шестнадцатиричные с 0х или 0Х. Длинная целая константа явно определяется буквой l или L, стоящей после константы.
Вещественное float double  
Литерное char Символьные константы состоят зи одного символа ASCII,заключенного в апострофы (‘’).
Беззнаковое литерное unsigned char Символьные данные считаются данными типа int и полностью совместимы с этим типом.
Указатель int * char * char ** и т. д.  

Из указанных простых типов строятся структурированные типы (массивы, строки, структуры и т.д.)

Строка char[] Строковая константа представляет собой последовательность кодов ASCII, заключенную в кавычки (“”). В конце каждой строки компилятор помещает нулевой символ (‘\0’). В [] указывается максимальная длина строки.  
Массив int[] float[] и т.д. В [] указывается размер массива. Имя массива является данным типа “указатель”.

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

Арифметические операции.

Операция Назначение Примеры использования
+ Суммирование значений. Увеличение значения переменной на заданную величину (в том числе увеличение адреса). c=a+b; c+=3; (эквивалент c=c+3;)
- Вычисление разности. Уменьшение значения переменной на заданную величину (в том числе уменьшение адреса). Изменение знака. c=a-b; c-=3; (эквивалент c=c-3;) c=-c;
* Вычисление произведения. c=a*b; c*=a;(эквивалент c=c*a;)
/ Частное от деления. c=a/3; c/=3;(эквивалент c=c/3;)
% Остаток от деления. c=b%2; c%=b(эквивалент c=c%b;)
++ Увеличение на единицу. i++; j=i++;(эквивалент j=i; i++;) J=++i;(эквивалент i++; j=i;) *p++=0; (эквивалент *p=0; p++;) *++p=0; (эквивалент p++; *p=0;)
-- Уменьшение на единицу. i--; j=i--;(эквивалент j=i; i--;) J=--i;(эквивалент i--; j=i;) *p--=0; (эквивалент *p=0; p--;) *--p=0; (эквивалент p--; *p=0;)

Операции отношения.

Операция Значение выражения
== Истина, если значение правой части выражения (до знака ==) равно значению левой, иначе - Ложь
!= Истина, если значение правой части выражения (до знака !=) не равно значению левой, иначе - Ложь
< Истина, если значение правой части выражения (до знака <) меньше значения левой, иначе - Ложь
> Истина, если значение правой части выражения (до знака >) больше значения левой, иначе - Ложь
<= Истина, если значение правой части выражения (до знака <=) не превышает значения левой, иначе - Ложь
>= Истина, если значение правой части выражения (до знака >=) не меньше значения левой, иначе - Ложь

*З а м е ч а н и е.Логическое значение Ложь представляется целым нулевым значением, а Истина - любым ненулевым значением.

Логические операции.

Операция Значение выражения Пример
!(отрицание) Истина, если значение аргумента ложно. !a
||(логическое ИЛИ) Истина, если истинно значение одного из операндов. x<a || x>b
&&(логическое И) Истина, если истинно значение обоих операндов x<a&&x>b

Побитовые операции.

Обозначение Операция Пример
~ Дополнение до единицы значения аргумента. с=~mask;
>> Сдвиг вправо двоичного представления аргумента на указанное число разрядов. x=x>>3;
<< Сдвиг влево двоичного представления аргумента на указанное число разрядов. x=x<<3;
& Побитовая операция И двоичных представлений аргументов. y=x&mask;
| Побитовая операция ИЛИ двоичных представлений аргументов. s=a1|a2;
^ Побитовая операция исключающее ИЛИ двоичных представлений аргументов. s=a1^a2;

Адресные операции.

Операция Значение Пример
& Значением выражения является адрес переменной. ptr=&n;
* Значением выражения является переменная или функция, адресуемая указателем. *ptr=3; (*Fptr)();

Другие операции.

Операция Назначение Пример
?: условная операция Если значение логического выражения истинно, то значением всего выражения является значение первого из указанных выражений, иначе - второго. abs=(i<=0) ? -i: i; (если i<=0, то abs=-i, иначе abs=i)
(тип) преобразование типа Значение выражения преобразуется в указанный тип данных. x=(float)n/3;
sizeof Вычисление числа байт, требуемых для размещения объекта. IntSize=sizeof(int);

Основные операторы.

Оператор Формат Примечания и примеры
Составной { операторы } ( x=2; y=0; }
Присваивания идентификатор=выражение x=3;
Вызова функции ИмяФункции(арг1,...,аргN) fclose(file);
Пустой ;  
Заиершения break; Прекращает выполнение ближайшего вложенного внешнего оператора switch, while, do или for.
Продолжения continue; Передает управление в начало ближайшего внешнего оператора цикла, вызывая начало следующей итерации.
Возврата return; return выражение; Прекращает выполнение текущей функции и возвращает управление вызвавшей программе с передачей значения выражения (если оно указано).
Перехода goto метка; Управление передается на оператор с указанной меткой. Область действия ограничена текущей функцией.
Условный if (выражение) оператор if(выражение) оператор1 else опратор2 Если выражение истинно, то выполняется оператор.Если выражение истинно, то выполняется оператор1 (оператор2 не выполняется). Если выражение ложно, то выполняется оператор2.
Выбора switch(выражение) { case константа: операторы case константа: операторы default: операторы } Сравнивает значение выражения с константами во всех вариантах case и передает управление оператору, который соответствует значению выражения. Далее выполняются все операторы подряд, пока не встретится оператор break. Операторы, связанные с меткой default, выполняются, если ни одна из констант не равна значению выражения.
Цикл с предусловием while (выражение) оператор Если выражение истинно, то оператор выполняется до тех пор, пока выражение не станет ложным.
Цикл с постусловием do оператор while (выражение) Выполняется оператор, затем вычисляется выражение, и если выражение истинно, то оператор выполняется до тех пор, пока оно не станет ложным.
Цикл с параметром for (выражение1; выражение2; выражение3) оператор Выражение1 описывает инициализацию цикла; Выражение2 - проверка условия завершения цикла Если оно истинно, то выполняется оператор; Выражение3 вычисляется после каждой итерации. Цикл повторяется, пока выражение2 не станет ложным.

Наши рекомендации