Оформление Текста программы
1) Тексту программы должен предшествовать текст с указанием предназначения программы, используемого метода решения задачи (если применимо) и языка, на котором она написана (см. пример 3.1).
Пример 3.1
Ниже следует текст программы на языке программирования TurboPascal7.0 для нахождения интеграла функции, заданной графически по методу левых прямоугольников.
2) Единый стиль оформления (шрифт, размер, выравнивание) для всей работы.
Рекомендуемый стиль:
CourierNew, 10, одинарный интервал, выравнивание по левой границе.
3) Необходимо использовать осмысленные имена переменных, подпрограмм, программ и модулей.
Примеры хороших имен:
functionMatrixSummation(…); // функция сложения матриц
procedureSortByMax(…); // процедура сортировки массива по возрастанию
varnum_colls:integer; // число столбцов матрицы
varInputFileName:string; // имя файла с входными данными
functionPrint2DMatrixToScreen(…); // функция вывода на экран двухмерного массива
Примеры плохих имен:
procedureObrabotka(…); // слишком общее имя – не понятно ни что обрабатывается, ни как
varaaa:integer; // лишенное смысла имя
varmy_array:arrayofinteger; // слово “my” не несет информации, лучше указать предназначение массива
Традиционные имена для счетчиков циклов: i,j,k,p,t,s(а такжеi1,i2,j1,j2 ,…). Их не рекомендуется использовать для каких-либо других целей.
При выборе имен необходимо учитывать регистр. Не использовать имена, отличающиеся только регистрами некоторых символов (ни для обозначения одной и той же переменной, ни для обозначения разных переменных). (см. примеры 3.2 и 3.3) !!!!!
4) Зарезервированные слова выделять жирным шрифтом (см. примеры 3.2 и 3.3)
Рекомендуемый стиль:
Имена переменных всегда писать маленькими буквами, в именах подпрограмм каждую смысловую часть начинать с большой буквы.
Имена констант писать полностью большими буквами.
Пример 3.2
Function SaveToFile( file_name: String, radius: Real, square: Real ): bool;
const MAX_SIZE_OF_ARRAY = 100;
var number: integer;
begin
number : = 1;
end.
5) Если требуется использовать какие-то величины, неизменяемые в программе (например, размер статического массива) необходимо вводить константы. Использование чисел в тексте программы – плохой стиль программирования.
Пример 3.3
const MAX_SIZE_OF_ARRAY = 100;
var
my_array1 : array[0…MAX_SIZE_OF_ARRAY] of real; // правильно
my_array2 : array[1…100] of real; // НЕ правильно
i, size : integer;
begin
…
for i:=1 to size do … // правильно
for i:=1 to 7 do … // не правильно
…
end.
6) Текст программы должен быть отформатирован с использованием отступов (см. пример 3.4)
Пример 3.4 (правильно)
Program FormatExample; // программа… type … var a,b : real; // границы интервала // интегрирования … // -------------------------------------- function Sqare(…); begin … end; // -------------------------------------- procedure OutputData (…); begin … end; // --------------------------------------
// основная часть программы begin … repeat if (a>b ) then Writeln (’ левая граница интервала интегрирования должна быть больше правой’);
if (…) then begin … for (…) do begin …
end; … else begin repeat … until (…); end; until (…); end. |
Пример 3.4 (не правильно)
Program FormatExample; // программа… type … var a,b : real; // границы интервала // интегрирования
… // -------------------------------------- function Sqare(…); begin … end; // -------------------------------------- procedure OutputData (…); begin … end; // --------------------------------------
// основная часть программы begin … // не правильно repeat if (a>b ) then Writeln (’ левая граница интервала интегрирования должна быть больше правой’);
if (…) then begin … for (…) do begin …
end; … else begin repeat … until (…); end; until (…); end.
|
7) Текст программы должен содержать комментарии по следующим аспектам:
- предназначение подпрограммы, входные и выходные данные, возвращаемое значение
- предназначение всех используемых переменных
- пояснение выполняемых действий
(см. пример 3.5)
Пример 3.5
Program IntegralLeftRect;
// программа для вычисления интеграла функции заданной графически методом
// левых прямоугольников
var a,b,c : real; // параметры функции
integral: real; // интеграл
eps: real; // точность
n: integer; // число подынтервалов разбиения
begin
// ввод исходных данных
…
// нахождение значения интеграла с точностью eps
repeat
…
// вычисление интеграла при разбиении на n подынтервалов
…
until (…) // продолжать итерации, пока разность значений интеграла
// при разбиении на n и 2n подынтервалов не станет меньше
// заданной точности
// вывод результатов на экран
…
end.