Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КурРаб_ДО_ИнфПрг.doc
Скачиваний:
1
Добавлен:
03.11.2018
Размер:
578.56 Кб
Скачать

Курсовая работа по дисциплине «Информатика и программирование» Расчет оплаты междугородних переговоров по заданным направлениям в Lazarus

Пояснительная записка

на ________ листах

Студент(ка) группы ______________ (Ф. И. О.)

(роспись)

Руководитель ______________ (Ф. И. О.)

(роспись)

№ зачетной книжки ______________

Самара

200_г.

Рис. 1. Образец оформления титульного листа.

    1. Вопросы к защите

  1. Элементы алфавита FPascal.

  2. Операции в FPascal. Идентификаторы и требования к ним.

  3. Типы данных в FPascal.

  4. Целые и вещественные типы данных в FPascal.

  5. Логический тип данных в FPascal.

  6. Символьный и строковый тип данных в FPascal.

  7. Состав проектов «Консольное приложение» и «Приложение под Windows».

  8. Где и как в программе описываются константы, переменные, метки и типы данных?

  9. Стандартные функции FPascal.

  10. Оператор присваивания в FPascal. Последовательность действий при выполнении оператора присваивания.

  11. Как вывести значения переменных совместно с их именами?

  12. Как организовать пропуск одной и более строк при выводе данных?

  13. Какие структуры вычислительных процессов Вы знаете?

  14. Формат условного оператора if…then…else.

  15. Вложенные условные операторы.

  16. Формат оператора перехода Goto…

  17. Какие действия выполняются операторами условного и безусловного перехода?

  18. Зачем при отладке программы тестируют все ветви алгоритма?

  19. Формат оператор выбора Case .. of .. end.

  20. Итерационный и регулярный циклические процессы.

  21. Понятие циклической структуры "до" и "после".

  22. Назначение и формат оператора while…do.

  23. Назначение и формат оператора repeat…until.

  24. Преимущества использования операторов цикла в программе.

  25. Использование оператора цикла for…to…do.

  26. Использование оператора цикла for…downto…do.

  27. Чем отличается оператор for…to…do от for…downto…do.

  28. Организация вычисления сумм и произведений.

  29. Что такое массив? Описание типа–массив.

  30. Какие операторы языка используют для описания массивов?

  31. Что такое подпрограмма? Ее назначение.

  32. Формальные и фактические параметры.

  33. Понятие функций. Правила описания функции и форма вызова.

  34. Назначение переменной Result при работе с функцией?

  35. Понятие процедур. Правила описания процедуры и форма вызова.

  36. Назначение и структура модуля.

    1. Методические рекомендации

6.1. Для создания консольного приложения необходимо выбрать его в диалоговом окне командой Файл => Создать => Project => Custom Program => ОК. Интегральная среда разработки (ИСР) выводит окно выбора типа проекта, в котором выбираем «Консольное». ИСР в окне «Редактор кода» формирует заготовку (каркас кода) для проекта, показанную на рис. 2. Имя проекта по умолчанию содержит слово Project с номером в сеансе работы с ИСР. В заготовке программы проекта размещены:

  • Каркас кода, который формируется ИСР автоматически (эти строки редактировать не надо!).

  • Директива {$mode objfpc}{$H+}, которая предписывает компилятору создавать консольное приложение.

  • В строке ссылок на модули uses указана ссылка на модуль SysUtils (системные утилиты), который содержит наиболее часто употребляемые подпрограммы. Здесь можно подключить и другие модули.

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

  • В теле программы между операторными скобками beginend ввести строки кода, определяющие выполняемые проектом функции.

Рис.2. Код проекта

Код проект сохраняется в отдельной папке. Для этого, в диалоговом окне команды Файл => Сохранить проект как…создать, например на диске D:\Temp\IE-1\Ivanov\Inf_Prog, папку KR, используя кнопку Создание новой папки. Затем открыть эту папку и в поле Имя файла ввести имя файла латинскими символами, например BlankOplaty. Нажать на кнопку Сохранить. В редакторе кода изменится имя проекта.

6.2. При написании проекта для комментариев используются символы кириллицы. Однако при запуске проекта возникает проблема со шрифтом – неправильное отображение букв кириллицы. Причина ошибки в том, что консольное приложение создается в ИСР, где используется операционная система Windows с одной кодировкой, а исполняется проект под управлением операционной системы MS DOS, использующей другую кодировку. Для решения этой проблемы необходимо произвести перекодировку букв кириллицы из стандарта Windows в ГОСТ-альтернативный стандарт под MS DOS. Для этого в проект BlankOplaty следует добавить модуль с функцией, выполняющей это преобразование.

Как известно [1, с. 21-23], каждый символ алфавита кодируется двоичным кодом. Восьми двоичных разрядов достаточно для кодирования 256 различных символов. Институт стандартизации США ANSI (American National Standard Institute) ввел в действие систему кодирования ASCII*. В этой системе закреплены две таблицы кодирования – базовая (со значениями кодов от 0 до 127) и расширенная (относительно символов с номерами от 128 до 255). Соответствующие таблицы кодировок приведены в Приложении.

В базовой таблице первые 32 кода, начиная с нулевого, отданы под управляющие коды. Коды с 32 по 127 предназначены для размещения символов английского алфавита, знаков препинания, цифр, арифметических действий и некоторых вспомогательных символов. Вторая часть (со значениями кодов от128 до 255) не имеет международного стандарта и гостируется национальными системами. Так, в кодировке символов русского языка Windows 1251, используемой в России, в первой части (коды от 0 до 127) размещается стандарт ASCII, а во второй – русские символы в алфавитном порядке непрерывно под номерами 192.., 208.., 224.., 240..255 (всего 64). Причем сначала следуют заглавные А...Я, а затем строчные а...я символы.

На компьютерах, работающих под MS DOS, действует ГОСТ-аль-тернативная кодировка, в которой первая часть таблицы (коды от 0 до 127) соответствует базовой таблице кодирования ASCII, а вторая половина (коды от 128 до 255) – символам кириллицы и псевдографики. Во второй половине символы кириллицы не могут быть размещены по алфавиту непрерывно, как в кодировке Windows 1251, поскольку под номерами 128, …, 175 размещены символы А, …, Я, а, …, п (всего 48), а под номерами 224, …, 239 символы р, …, я (всего 16). Таким образом, для межсистемного преобразования строк Windows 1251 под ГОСТ-альтернативную кодировку необходимо изменить номера символов А, …, п на - 64 (с 192 по 128), а р, …, я на - 16 ( с 240 по 224) позиций.

Кроме того, буквы Ё заглавная и ё строчная находятся в кодировке Windows 1251 на позициях 240 и 241 соответственно, а в кодировке MS DOS – на позиции 168, 184, т.е. для межсистемного преобразования строк должны быть сдвинуты на +72 и +57 позиции соответственно (см. Приложение).

Дадим функции, выполняющей соответствующее преобразование строк, имя Rus. Эта функция должна определять длину обрабатываемой строки, для чего можно воспользоваться встроенной подпрограммой ИСР length, возвращающей длину строки. Затем в цикле перебирать символы строки Windows и для каждого из них в зависимости от кода символа осуществлять изменение номера на 16 (русские символы р, …, я) или 64 позиций (русские символы А, …, п). Остальные символы (от 0 до 127) программой не преобразуются.

6.3. Порядок создания и использования модуля преобразования символов одной кодировки в другую следующий:

  1. Создать проект консольного приложения.

  2. Сохранить его под именем BlankOplaty в папке KR.

  3. Выбрать команду Файл => Модуль. В редакторе кода проекта возникает дополнительная страничка с заготовкой модуля.

  4. Заполнить ее кодом, в соответствии с приведенным алгоритмом:

Рис. 3. Блок-схема алгоритма модуля RusTrans.

unit RusTrans; //Заголовок главного модуля, имя которого

//изменяется после сохранения модуля

interface // Раздел описания

uses

SysUtils; // Ссылка на подключаемые модули

function Rus(mes:string):string; // Заголовок функции с переменной mes

implementation // Раздел реализации

function Rus(mes:string):string; //Преобразует строку Windows под

// строку MS DOS

var i:integer; //Номер обрабатываемого символа

begin // Тело функции

for i:=1 to length(mes) do

case mes[i] of // Оператор выбора

'А'..'п': mes[i] := chr(ord(mes[i])-64); //преобразование символа в код

'р'..'я' : mes[i] := chr(ord(mes[i])-16); //преобразование символа в код

end;

result:=mes; //возвращаемый результат в переменную result

end;

end.

Фрагмент кода проекта с использованием модуля RusTrans:

program BlankOplaty;

{$mode objfpc}{$H+};

uses

Classes, SysUtils, RusTrans;

var

. . .

begin

. . . . .

writeln(Rus('К оплате: '), oplata:6:2, Rus('руб.' ));

readln;

end.

  1. Добавить в модуль RusTrans строки перекодировки букв Ё заглавной и ё строчной, сдвинув коды этих символов на +72 и +57 позиции, соответственно (см. Приложение).

  2. Сохранить код модуля в папке KR под именем RusTrans.pas.

  3. Выполнить компиляцию модуля RusTrans.pas. В папке проекта получится файл компилированного модуля RusTrans.compiled.

  4. В коде проекта BlankOplaty.lpr в строке uses ИСР автоматически добавляет модуль Unit1, который надо исправить вручную на RusTrans.

  5. В код проекта BlankOplaty.dpr в местах вывода строк с буквами кириллицы осуществлять вызов функции по имени Rus() со списком аргументов.

  6. Запустить проект на исполнение и убедиться, что при подключении модуля RusTrans к проекту, проблема с отображением букв кириллицы решена.

  7. Сохранить изменения в проекте.

6.4. Один из возможных вариантов решения основного задания приведен на рис. 4.

Согласно условию имеются 16 междугородних направлений, по четырем из которых могут проводиться телефонных разговоры. Каждое из направлений инициируется соответствующим флагом k1…k4, значение которых изначально устанавливается равным 0 (блок 5). Выбор заданных направлений из 16 возможных целесообразно организовать в виде циклического процесса (блок 6). Цикл начинается с последовательного ввода наименования города и его кода (блок 7). Если код оказался одним из заданных (блок 8), то далее вводятся тариф и длительность, по которым происходит расчет стоимости междугороднего разговора. В противном случае выводится сообщение об ошибке (блок 29).

Поскольку ввод тарифа, длительности и расчет стоимости разговора неизменны, то для этих действий целесообразно сформировать процедуру (блоки 1-4). Если при вводе тарифа или времени (блок 1) не допущены грубые ошибки в виде отрицательно введенных значений (блок 2), происходит расчет стоимости одного междугороднего разговора путем умножения времени на соответствующие значения тарифа по этому направлению (блок 4). В противном случае формируется сигнал «Неправильный ввод данных» (блок 3) до тех пор, пока грубые ошибки при вводе не будут устранены. На основании введенных данных формируется соответствующая строка бланка оплаты: от 1-й – блоки 9… 13 до 4-й – 24…28 (2-я и 3-я в виду идентичности на рисунке не приведены).

Кроме того, первое же обращение к одному из заданных направлений отмечается путем установки флага обращения (блок 13). При последующих повторных обращениях, определяемых блоком 11, выводится оповещающее об этом сообщение (блок 12).

4

направление

1

направление

Рис. 4а. Обобщенная блок-схема основного алгоритма

Рис. 4б. Продолжение обобщенной блок-схемы

Цикл завершается либо по факту перебора всех 16 направлений (блок 6), либо по выбору последнего из заданных путем проверки условия установки флагов по всем направлениям (блок 30).

Затем формируется шапка бланка оплаты (блок 31), содержащая пять столбцов: «Код города», «Время, мин», «Тариф, руб/мин», «Стоимость, руб», «Город». Создание четырех записей бланка оплаты целесообразно организовать в виде вложенного циклического процесса (блоки 32, 33), где параметром i внешнего цикла является номер записи, а параметром j внутреннего цикла – номер столбца. Вывод бланка оплаты отражается блоком 34.

Для расчета суммарной стоимости телефонных переговоров по всем направлениям в цикле накапливается сумма по столбцу «Стоимость» всех записей (блок 35). Результат завершает вывод бланка оплаты (блок 34) и суммы к оплате (блок 36).

По приведенной блок-схеме нетрудно составить детальный алгоритм решения задачи, в котором необходимо подробно раскрыть блоки формирования 10, (15, 20), 25 и вывода строк бланка 31, 34 и 35.

6.5. При написании программы по составленному алгоритму, прежде всего, необходимо объявить массивы исходных данных и формирования бланка оплаты. Четыре массива исходных данных размерностью 16 каждый содержат, соответственно, коды городов, наименования городов, длительности разговоров и тарифы по заданным направлениям. На основе этих массивов формируется бланк оплаты. Поскольку бланк оплаты представляется таблицей из пяти столбцов, необходимы еще 5 массивов размерностью 4 каждый и один массив шапки таблицы размерностью 5. Однако, учитывая однотипность определенных данных, вместо 5 массивов можно организовать лишь 3. Например, для кодов и времени – массив целочисленных данных, для тарифов и стоимостей – массив вещественных данных, для названий городов и шапки таблицы бланка оплаты – массивы строковых данных. Кроме того, должны быть объявлены переменные-параметры циклов и флаги обращения.

Пример объявления массивов данных:

var

T:array[1..16] of string[10]; //одномерный массив из 16 данных

//строкового типа длиной строки до 10 символов

B:array[1..4,1..2] of integer; //двумерный массив целых чисел,

. . . //состоящий из 4 строк и 2 столбцов.

Диалоговый режим реализуется с помощью процедур вывода write(), writeln() и процедур ввода read(), readln().

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

Например:

. . .

for k:=1 to 16 do // k – переменная счетчик числа повторений

begin // инструкций цикла

. . . //инструкции, выполнение которых повторяется

end; // несколько (здесь 16) раз

. . .

При этом данные о тарифах и длительности разговора целесообразно вводить только после проверки соответствия введенного кода коду, заданному по варианту.

Выбор заданных из 16 возможных направлений можно реализовать с помощью оператора условных выражений if .. then .. else или оператора выбора case..of.

Пример записи условного оператора if .. then .. else:

. . .

if <k1> then

begin

//инструкции, которые надо выполнить,

//если условие k1 истинно.

end

else

if <k2> then

begin

//инструкции, которые надо выполнить,

//если условие k2 истинно.

end

else

begin

//инструкции, которые надо выполнить,

//если условие ложно.

end;

. . .

Выполняется оператор if следующим образом:

1. Вычисляется значение первого условия k1 (правда или ложь?);

2. Если условие истинно (true), то выполняются инструкции, следующие за словом then. На этом выполнение первой операции if завершается, инструкции, следующие за словом else, не будут выполнены. Если условие ложно (false), то выполняются инструкции, следующие за словом else. Затем аналогично п.п. 1 и 2 проверяются условия k2, k3 и т.д. Количество проверок условий операции if ограничивается исходными данными поставленной задачи.

Пример записи оператора выбора case..of:

. . .

case <селектор> of

<константа k1>: begin

//инструкции1

end;

. . .

<константа k4>: begin

//инструкции 4

end;

else

begin

//инструкции ветви иначе

end;

end;

где селектор  выражение порядкового типа, значение которого определяет выполнение i-й (i = 1, 2, …) последовательности инструкций, а константами в данном случае являются коды городов, заданные вариантом.

Выполняется оператор case..of следующим образом:

1. Вычисляется значение выражения-селектора.

2. Значение выражения-селектора последовательно сравнивается с константами k1, k2, k3, k4.

3. Если значение выражения-селектора совпадает с одной из констант, выполняется соответствующая ей группа инструкций.

4. В случае несовпадения значения выражения-селектора ни с одной из констант выполняется последовательность инструкций, следующая за оператором else.

В каждой ветви ki (i=1, 2, 3, 4) оператора case..of следует сформировать одну строку бланка оплаты из 5 позиций. В итоге в бланке будет 4 строки.

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

Например:

if <условное выражение true> then break;

По выходу из регулярного цикла необходимо программно произвести вывод на экран бланка оплаты в виде таблицы, у которой шапка содержит имена полей «Код города», «Время, мин», «Тариф, руб/мин», «Стоимость, руб», «Город», а строки – сформированные ранее записи заданных направлений. Вывод шапки таблицы осуществляется непосредственно процедурами Write или Writeln, а сформированные строки-записи совместно с символами-разделителями, отображающими линии строк и столбцов бланка оплаты, целесообразно выводить в цикле при использовании оператора for. При этом, поскольку бланк оплаты содержит 4 строки и 5 столбцов с данными разного типа, для его вывода следует использовать вложенную структуру циклов – внешний цикл по количеству строк и внутренний цикл по количеству столбцов.

Например:

. . .

for i:=1 to 4 do

begin

for j:=1 to 2 do write(' ',B1[i,j],' *');

for j:=1 to 2 do write(' ',B2[i,j]:6:2,' *');

writeln(' ',B3[i]);

end;

. . .

где i и j – параметры внешнего и внутреннего цикла, соответственно, B1[i,j] – массив кодов городов и длительностей разговоров, B2[i,j] – массив тарифов и стоимости в формате работы с денежными единицами, B3[i] – массив названий городов, '*' – символ-разделитель начертания столбцов бланка оплаты.

По каждому завершению внутреннего цикла (j > 2) значение параметра i внешнего цикла увеличивается на единицу, после чего внутренний цикл выполняется вновь. При i > 4 происходит выход из цикла вложенной структуры.

В этом же цикле можно предусмотреть накопление итоговой суммы по столбцу «стоимость» и последующего вывода ее на печать.

При вычислении конечных сумм искомый результат обычно формируется постепенно (циклически). В первом проходе тела цикла вычисляется первая частичная сумма S1 = S0 + S(i1), во втором проходе эта сумма увеличивается на второе слагаемое – S2 = S1 + S(i2), в третьем проходе – на третье слагаемое – S3 = S2 + S(i3) и т.д. Здесь S0 – начальное значение суммы (начальное условие цикла), и т.к. S1 должна быть равна S(i1) , то S0 = 0.

Например:

. . . s:=0;

For i:=1 to 4 do s:=s+B[i];

//накопление суммы данных массива B[i]

Writeln(Rus(' К оплате: '), s:6:2, Rus('руб.')); //вывод результата

. . .

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

Подпрограмма начинается с заголовка, за которым следуют:

 разделы объявления констант, типов и переменных,

 тело процедуры или функции.

Структура подпрограммы идентична структуре программы.

Имена, объявленные в главной программе являются глобальными. Они доступны во всех внутренних точках программы, в том числе и в подпрограммах. Имена, объявленные в подпрограмме являются локальными. Они доступны во всех внутренних точках подпрограммы.

Локальное имя во внешней программе недоступно. Если используются одинаковые локальное и глобальное имя, то внутри процедуры локальное имя блокирует глобальное.

Пример работы с процедурой MyProc:

var

a1: integer; a2 : real; //аргументы или фактические параметры

//Объявление процедуры

Procedure MyProc( //Заголовок процедуры

var p1: integer; //формальный параметр-переменная

p2 : real); //формальный параметр-значение

var // объявление внутренних переменных процедуры

begin

//Тело процедуры

end;

begin //Основная программа

...............

MyProc(a1, a2); //Вызов процедуры относительно фактических

............... // параметров в строке кода

MyProc(a1, a2); //Вызов процедуры относительно фактических

............... // параметров в строке кода

end.

Аргументы – данные, передаваемые в подпрограмму или возвращаемые из нее. Формальные параметры – данные, с которыми работает подпрограмма. Для аргументов и параметров надо соблюдать их одинаковое количество, одинаковый порядок следования, совместимость типов.

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

Пример работы с функцией MyFunc:

var

a1: integer; // аргументы или фактические параметры

a2, a3: real;

//Объявление функции

Function MyFunc(p1: integer; p2: real): real; //Заголовок функции

//с указанием типа возвращаемого функцией MyFunc результата

//Разделы локальных определений

begin

MyFunc:=<выражение>; //Тело функции

end;

begin //Основная программа

...............

a3:=5+MyFunc(a1,a2); //Вызов функции по имени в выражении

...............

end.

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

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

Function Funt(f: real): real;

const

k=0.4095; //коэффициент пересчета

begin

result:=f*k; //пересчет фунтов в килограммы

end;

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

Функцию или процедуру можно использовать и в других программах, если оформить их в отдельный модуль, а затем указать имя модуля в списке модулей в разделе uses другой программы (например, модуль RusTrans).

Вариант результата выполнения программы приведен на рис. 5.

Рис. 5. Пример вывода результатов выполнения программы

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

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

Блок-схема описанного алгоритма и реализующая его программа приведены на рисунке 6 для следующей задачи: в массиве из N  20 элементов определить значение и номер наибольшего элемента.

Рис. 6. Блок-схема задачи и реализующая ее программа

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

Например:

. . .

n:=0; //обнуление счетчика

for i :=1 to 10 do

begin

if <условие True> then

n :=n+1; //подсчет числа повторений по заданному условию

end;

writeln(' n= ' , n); //вывод количества повторений

. . .

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

Например:

. . .

s:=0; n:=0;

for i:=1 to 4 do

begin

s:=s+B[i,2]; //накопление суммы по 2 столбцу массива В[i,j]

n :=n+1; //подсчет количества повторений

end;

m:=s/n; //расчет среднего значения

writeln(Rus(' Среднее значение: '), m:6:2); //вывод среднего значения

. . .

6.7. При записи операторов и инструкций программы следует руководствоваться следующими рекомендациями:

- программа должна быть легко читаемой, т.е. ее структура должна соответствовать структуре алгоритма решения задачи. В свою очередь, структура алгоритма решения задачи отражается посредством соответствующей структуризации записи операторов и инструкций: 1) операторы thenelse, caseend, repeat .. until записывать один под другим, 2) инструкции между begin .. end размещаются одна под другой, но с отступом относительно begin;

- в пределах операторной строки один оператор может отделяться от другого другими словами, но завершается операторная строка всегда точкой с запятой;

- длинные выражения записывать в несколько сток. Разорвать выражение и перенести оставшуюся часть на следующую строку можно практически в любом месте. Однако нельзя разрывать имена переменных, числовые и строковые константы, а также составные операторы и оператор присваивания (:=);

- для лучшего восприятия можно вводить «лишние» пробелы и пустые строки, т.к. компилятором они игнорируются;

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

- имена переменных, процедур и функций должны нести смысловую нагрузку.

В результате программа становится надежной и «дружественной» по отношению к пользователю.

6.8. При создании пояснительной записки в текстовом процессоре MS Word необходимо установить:

  • параметры логического листа (Файл =>Параметры страницы);

  • автоматический перенос слов в словах (Сервис =>Язык => Расстановка переносов => Автоматическая расстановка переносов),

  • тип шрифта, высоту букв, начертание (Формат => Шрифт);

  • красную (первую) строку, межстрочный интервал, выравнивание абзацев по ширине (Формат => Абзац);

  • номера станиц (Вставка => Номера страниц). Следует отказаться от возможности установки номера страницы на первом (титульном) листе.

При создании блок-схемы использовать инструменты панели Рисование, а именно: кнопки

  • Рисование (с перечнем команд),

  • Выбор объекта (для группирования отдельных элементов блок-схем),

  • Автофигуры (прямоугольник, параллелограмм, овал, ромб, шестигранник),

  • Линия и тип линии (установка толщины нарисованной линии),

  • Стрелка (при движении направления справа налево и снизу вверх),

  • Надпись (для заполнения Автофигур пояснительным текстом).

6.9. Для создания оглавления в пояснительной записке с помощью средств MS Word необходимо:

  1. Присвоить стили всем заголовкам, которые должны быть в оглавлении (выделить текст с заголовком и выбрать из списка стилей панели Форматирования требуемый). Например,

1. Цели и задачи курсовой работы (стиль Заголовок 1)

2. Постановка задачи (стиль Заголовок 1)

3. Задание на выполнение (стиль Заголовок 1)

4. Выполнение заданий (стиль Заголовок 1)

4.1. Модуль преобразования символов (стиль Заголовок 2)

4.2. Обобщенная блок-схема алгоритма (стиль Заголовок 2)

4.3. Детальный алгоритм задачи (стиль Заголовок 2)

4.4. Программа (стиль Заголовок 2)

4.5. Результаты вычислений (стиль Заголовок 2)

5. Выводы по работе (стиль Заголовок 1)

6. Литература (стиль Заголовок 1)

  1. Организовать дополнительную страницу перед описательной частью с целью размещения на ней будущего оглавления. Для этого:

  • поместить курсор перед первым заголовком (1. Цели и задачи курсовой работы);

  • выбрать команду Разрыв… в меню Вставка;

  • в диалоговом окне Разрыв установить переключатель Новую страницу и нажать кнопку ОК.

Аналогично организуется дополнительная страница для рецензии.

  1. Вставка оглавления:

  • установить курсор в место вставки оглавления (в начало новой страницы) и ввести заголовок «Оглавление»;

  • активизировать команду Вставка\Ссылка\Оглавление и указатели;

  • в диалоговом окне Оглавление и указатели открыть вкладку Оглавление;

  • в поле Форматы выбрать один из готовых стилей (например, Классический или любой другой понравившийся);

  • наличие флажка Показать номера страниц позволяет для каждого элемента списка отображать номера страниц;

  • установка флажка Номера страниц по правому краю даёт возможность выровнять номера страниц по правому полю;

  • в поле Уровни задать количество уровней оглавления (в примере их два);

  • в поле Заполнитель можно выбрать тип линий (точечные, пунктирные или прямые) заполнения пространства между элементами указателя и номерами страниц (выбираются по желанию);

  • нажать кнопку ОК.

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

Приложение

Базовая таблица кодировки ASCII

0 -

16 - ►

32 -

48 - 0

64 - @

80 - P

96 - `

112 - p

1 - ☺

17 - ◄

33 - !

49 - 1

65 - A

81 - Q

97 - a

113 - q

2 - ☻

18 - ↕

34 - "

50 - 2

66 - B

82 - R

98 - b

114 - r

3 - ♥

19 - ‼

35 - #

51 - 3

67 - C

83 - S

99 - c

115 - s

4 - ♦

20 - ¶

36 - $

52 - 4

68 - D

84 - T

100 - d

116 - t

5 - ♣

21 - §

37 - %

53 - 5

69 - E

85 - U

101 - e

117 - u

6 - ♠

22 - ▬

38 - &

54 - 6

70 - F

86 - V

102 - f

118 - v

7 -

23 - ↨

39 - '

55 - 7

71 - G

87 - W

103 - g

119 - w

8 -

24 - ↑

40 - (

56 - 8

72 - H

88 - X

104 - h

120 - x

9 - Tab

25 - ↓

41 - )

57 - 9

73 - I

89 - Y

105 - i

121 - y

10 -

26 - →

42 - *

58 - :

74 - J

90 - Z

106 - j

122 - z

11 - ♂

27 - ←

43 - +

59 - ;

75 - K

91 - [

107 - k

123 - {

12 - ♀

28 -∟

44 - ,

60 - <

76 - L

92 - \

108 - l

124 - |

13 -

29 - ↔

45 - -

61 - =

77 - M

93 - ]

109 - m

125 - }

14 - ♫

30 -▲

46 - .

62 - >

78 - N

94 - ^

110 - n

126 - ~

15 - ☼

31 - ▼

47 - /

63 - ?

79 - O

95 - _

111 - o

127 - ⌂

ГОСТ-альтернативная кодировка MS DOS

128 - А

144 - Р

160 - а

176 - ░

192 - └

208 - ╨

224 - р

240 - Ё

129 - Б

145 - С

161 - б

177 - ▒

193 - ┴

209 - ╤

225 - с

241 - ё

130 - В

146 - Т

162 - в

178 - ▓

194 - ┬

210 - ╥

226 - т

242 - Є

131 - Г

147 - У

163 - г

179 - │

195 - ├

211 - ╙

227 - у

243 - є

132 - Д

148 - Ф

164 - д

180 - ┤

196 - ─

212 - ╘

228 - ф

244 - Ї

133 - Е

149 - Х

165 - е

181 - ╡

197 - ┼

213 - ╒

229 - х

245 - ї

134 - Ж

150 - Ц

166 - ж

182 - ╢

198 - ╞

214 - ╓

230 - ц

246 - Ў

135 - З

151 - Ч

167 - з

183 - ╖

199 - ╟

215 - ╫

231 - ч

247 - ў

136 - И

152 - Ш

168 - и

184 - ╕

200 - ╚

216 - ╪

232 - ш

248 - °

137 - Й

153 - Щ

169 - й

185 - ╣

201 - ╔

217 - ┘

233 - щ

249 -

138 - К

154 - Ъ

170 - к

186 - ║

202 - ╩

218 - ┌

234 - ъ

250 - ·

139 - Л

155 - Ы

171 - л

187 - ╗

203 - ╦

219 - █

235 - ы

251 - √

140 - М

156 - Ь

172 - м

188 - ╝

204 - ╠

220 - ▄

236 - ь

252 - №

141 - Н

157 - Э

173 - н

189 - ╜

205 - ═

221 - ▌

237 - э

253 - ¤

142 - О

158 - Ю

174 - о

190 - ╛

206 - ╬

222 - ▐

238 - ю

254 - ■

143 - П

159 - Я

175 - п

191 - ┐

207 - ╧

223 - ▀

239 - я

255 -  

Кодировка Windows 1251

128 - Ђ

144 - ђ

160 - 

176 - °

192 - А

208 - Р

224 - а

240 - р

129 - Ѓ

145 - ‘

161 - Ў

177 - ±

193 - Б

209 - С

225 - б

241 - с

130 - ‚

146 - ’

162 - ў

178 - І

194 - В

210 - Т

226 - в

242 - т

131 - ѓ

147 - “

163 - Ј

179 - і

195 - Г

211 - У

227 - г

243 - у

132 - „

148 - ”

164 - ¤

180 - ґ

196 - Д

212 - Ф

228 - д

244 - ф

133 - …

149 - •

165 - Ґ

181 - µ

197 - Е

213 - Х

229 - е

245 - х

134 - †

150 - –

166 - ¦

182 - ¶

198 - Ж

214 - Ц

230 - ж

245 - х

135 - ‡

151 - —

167 - §

183 - ·

199 - З

215 - Ч

231 - з

247 - ч

136 - €

152 - ˜

168 - Ё

184 - ё

200 - И

216 - Ш

232 - и

248 - ш

137 - ‰

153 - ™

169 - ©

185 - №

201 - Й

217 - Щ

233 - й

249 - щ

138 - Љ

154 - љ

170 - Є

186 - є

202 - К

218 - Ъ

234 - к

250 - ъ

139 - ‹

155 - ›

171 - «

187 - »

203 - Л

219 - Ы

235 - л

251 - ы

140 -Њ

156 -њ

172 -¬

188 -ј

204 - М

220 - Ь

236 - м

252 - ь

141 -Ќ

157 -ќ

173 -­

189 -Ѕ

205 - Н

221 - Э

237 - н

253 - э

142 -Ћ

158 -ћ

174 -®

190 -ѕ

206 - О

222 - Ю

238 - о

254 - ю

143 –Џ

159 -џ

175 -Ї

191 -ї

207 - П

223 - Я

239 - п

255 - я

* ASCII American Standard Code for Information Interchange - стандартный код информационного обмена