1 или 0, а при переводе в шестнадцатиричную систему мы
рассматриваем не просто степень числа шестнадцати, а
произведение этой степени на величину будущего разряда.
Возникает вопрос: а не одно ли это и тоже. Ведь умножив
число на единицу мы его не изменяем, а следовательно
нет разницы между тем, сравнивать степень с остатком
или с остатком умноженным на единицу. Таким образом вы-
яснилось, что перевод из десятеричной системы исчисле-
ния в двоичную и в шестнадцатиричную можно осуществлять
одной процедурой, в которую в качестве параметра пере-
давать основание степени, т.е. основание конечной
системы исчисления.
Чтобы не усложнять программу и не делать множество
операторов условного перехода в зависимости от того, к
какой системе исчисления принадлежит исходное число,
ввод этого числа осуществляется единым блоком, и исход-
ное число в результате выполнения этого блока записыва-
ется в виде строковой переменной и передается на обра-
ботку следующему блоку. Второй блок поступившую в него
строку символов обрабатывает таким образом, что на вы-
ходе этого блока получается числовое значение в десяте-
ричной системе исчисления исходного числа. И третий
заключительный блок преобразует это числовое значение в
строку символов, которая будет содержать результат в
системе исчисления, которая требовалась.
В результате такого подхода к решению задачи алго-
ритм значительно упрощается, т.к. в нем нет ветвлений.
- 10 -
2VII. ПОДРОБНЫЕ РАЗЪЯСНЕНИЯ ПО ПРОГРАММЕ
Программа начинается стандартной строкой:
Program Perevod;
Далее следует описательная часть программы. Она
состоит из нескольких разделов:
- Uses: указывает какие внешние TPU файлы будет
использовать программа (это специфика Turbo Pascal).
- Const: описывает используемые в программе констан-
ты. S - массив констант строк символов состоящих из пя-
тидесяти символов. Им присваиваются значения, которые
будут использоваться для составления меню.
- Var: описывает переменные.
Longint - целочисленный тип, значение которого может
изменяться от -2147483648 до 2147483647 и занимает в
памяти 32 бита.
Integer - целочисленный тип, может принимать значе-
ние от -32768 до 32767 и занимает объем памяти в 16
бит.
Char - символьный тип, может принимать значение лю-
бого символа.
Byte - целочисленный тип, может принимать значения
от 0 до 255 из занимает объем памяти в 8 бит.
Set of '0'..'F' - тип множество, элементы которого
могут быть любые символы находящиеся в промежутке от
'0' до 'F'.
Array [1..255] of Char - массив символов размером в
- 11 -
255 знаков.
String - строка символов переменной длины (длина мо-
жет изменяться от 1 до 255 символов).
Далее в программе идет описание процедуры Zast. Эта
процедура выводит на экран в столбик пункты меню, в ко-
торых указывается из какой и в какую систему исчисления
пользователь хочет перевести число. Структура процедуры
линейная. Она состоит из нескольких операторов:
Window (1,1,80,24) - отводит окно доступное для вы-
вода.
ClrScr - очищает экран.
TextColor (15) - устанавливает цвет последующего вы-
вода (ярко белый).
GoToXY (x,y) - переводит курсор в строку с номером y
и столбец с номером x.
Write ( ) - выводит на экран от позиции курсора вы-
ражение указанное в скобках.
Далее в программе следует функция возведения в сте-
пень. Она будет использоваться в дальнейшей программе
несколько раз для непосредственного перевода из одной
системы исчисления в другую, поэтому пришлось оформить
ее как функцию, чтобы не использовать каждый раз опера-
ции с логарифмом и экспонентой. Возведение в степень в
этой функции осуществляется обычным многократным умно-
жением в цикле, и думаю, на ней не следует останавли-
ваться.
Продолжим рассмотрение программы. После функции воз-
ведения в степень идет оператор начала исполнительной
- 12 -
части основной программы Begin.
Переменной Y присваивается значение 1 - начальное
положение курсора в меню.
Далее идет вызов процедуры Zast, в результате выпол-
нения которой на экран выводится список возможных ком-
бинаций переводов.
После выполнения процедуры Zast следует оператор ор-
ганизации цикла с пост-условием Repeat. Внутри этого
цикла осуществляется выполнение всей дальнейшей прог-
раммы.
Внутри него последовательно идет установка цвета на
малиновый, перемещение курсора в позицию 13,2 и вывод
символа метки текущего положения курсора в меню ( 2> 0 ).
Далее идет оператор ожидания ввода клавиши ReadKey.
Когда клавиша будет нажата, ее значение будет присвоено
переменной Klav. Затем идет стирание метки текущей по-
зиции курсора в меню.
После этого идет блок условных операторов If, кото-
рые обрабатывают нажатую клавишу и выполняют определен-
ные действия в соответствии с нажатой клавишей.
Первый оператор If обрабатывает ситуацию, если была
нажата клавиша "ВВЕРХ". В результате его выполнения
значение переменной Y уменьшается на единицу, а если
она была равна 1, то ее значение становится равным 7.
Аналогично действует второй условный оператор, только
он обрабатывает клавишу "ВНИЗ".
Третий условный оператор принимает значение True
если была нажата клавиша ESC (выход). В этом случае пе-
- 13 -
ременной Y присваивается значение 7, а переменной Klav
значение клавиши ВВОД. Оба эти значения переменных сим-
волизируют выход из внешнего цикла с пост-условием, а
значит и выход из программы.
Четвертый условный оператор обрабатывает клавишу
ВВОД, но при условии, что Y<7, т.е. курсор в меню не
подведен к последней строке со значением выхода из
программы. Если значение выражения этого условного опе-
ратора примет значение True, то начинается выполнение
основной части программы, которая осуществляет не-
посредственно перевод из одной системы исчисления в
другую.
Сначала очищается экран. Затем малиновым цветом в
первой строке выводится из какой и в какую систему
исчисления программа будет переводить числа. После это-
го, в нижней строке зеленым цветом выводится фраза "ESC
- ВЫХОД В МЕНЮ". Затем устанавливается цвет вывода на
экран белый и выделяется окно для вывода исключающее
первую и последнюю строки экрана. Переменной Stroka
(переменная указывает строку положения курсора) присва-
ивается значение 2.
После этих подготовительных процессов оператор Case
в зависимости от того из какой и в какую систему
исчисления мы будем переводить числа, определяет значе-
ния переменных Isx (основание исходной системы исчисле-
ния), Keys (клавиши, которые можно нажимать для ввода
исходного числа) и Kon (основание конечной системы
исчисления).
- 14 -
Далее в программе следует оператор цикла с
пост-условием Repeat, внутри которого осуществляется
ввод исходного числа. Сначала идет ожидание нажатия
клавиши, и если клавиша будет нажата, то значение этой
клавиши запишется в переменную Klav. Стандартная функ-
ция UpCase переводит символ из нижнего регистра в верх-
ний. Условный оператор If определяет, является ли нажа-
тая клавиша допустимой, и если это так, то переменная
Kol (количество символов во введенном числе) увеличива-
ется на единицу, значение клавиши записывается в массив
A (массив символов с исходным числом) и введенная кла-
виша отображается на экране.
Следующий условный оператор определяет, не была ли
нажата клавиша ЗАБОЙ. В этом случае Kol уменьшается на
единицу, курсор перемещается на одну позицию влево и
стирается последний введенный символ.
Оператор Until осуществляет выход из цикла с
пост-условием в том случае, если была нажата клавиша
ВВОД или клавиша ESC.
Далее следует условный оператор, который обрабатыва-
ет условие нажатия клавиши ВВОД. Если это так, то это
означает, что исходное число введено и пользователь хо-
чет получить результат, и необходимо приступить к не-
посредственному переводу.
Внутри этого условного оператора выполняется цикл от
... по соответствующему полю). В окне Конструктора таблиц созданные связи отображаются визуально, их легко изменить, установить новые, удалить (клавиша Del). 1 Многозвенные информационные системы. Модель распределённого приложения БД называется многозвенной и её наиболее простой вариант – трёхзвенное распределённое приложение. Тремя частями такого приложения являются: ...
... Е Ц Е Н З И Яна магистерскую диссертацию магистра Азербайджанского Государственного Экономического Университета Султанлы Ильгара Рауф оглы на тему «Учет и аудит текущих операций и расчетов» Тема диссертационной работы и план темы по представлению кафедры «Бухгалтерский учет и аудит» утверждены ректоратом Азербайджанского Государственного Экономического Университета и ...
... . Совокупность заведений, занимающихся однородным видом деятельности, представляет собой отрасль. Для количественного описания состояния и функционирования экономики в системе национальных счетов используются понятия запасов и потоков. Запасы отражают все виды активов и пассивов в экономике и отражаются в учете на определенную дату. Потоки отражают любые действия по созданию, преобразованию, ...
... , несмотря на такое лидерство, еще рано говорить о том, что информационные системы прочно вошли жизнь современных управленцев. 2 АНАЛИЗ ИНФОРМАЦИОННОГО ОБЕСПЕЧЕНИЯ УПРАВЛЕНИЯ ПРЕДПРИЯТИЕМ 2.1 Общая характеристика объекта исследования ОАО «Технический университет КубГТУ» был создан 9 октября 1992 года. Новые экономические условия требовали создания в Кубанском государственном ...
0 комментариев