1 до Kol (количество символов в исходном числе). Внутри
этого цикла условным оператором If определяется в за-
висимости от символа его числовой эквивалент для даль-
- 15 -
нейшего умножения, а затем переменная Promeg увеличива-
ется на число равное произведению полученного числового
эквивалента на основание исходной системы исчисления в
степени Kol-1. В результате выполнения этого цикла мы
из исходного числа в виде набора символов получили его
значение в десятеричной системе исчисления. Таким обра-
зом половину перевода мы осуществили. Теперь нам нужно
это значение перевести в необходимую систему исчисления.
Далее следует обнуление переменной I, а после этого
циклом с пост-условием определяется максимальный поря-
док результата (см. п.III. Теоретические основы решения
задачи).
После того как мы определили этот порядок и записали
его в переменную I, организуется цикл от I до 0. Внутри
этого цикла проводятся следующие преобразования для по-
лучения необходимого результата:
- переменной Help присваивается числовое значение
Jтого элемента в исходном результате;
- условным оператором If из этого значения получает
символ, который будет стоять в результате;
- записывается полученный символ в строку символов,
которая будет содержать результат;
- вычисляется остаток, который записывается в пере-
менную Promeg.
Все эти действия были описаны в теоретической части
настоящего реферата, а их практическое осуществление не
требует никакого труда.
После выполнения этих операций, программа переходит
- 16 -
к получению следующего символа, пока не получит послед-
ний символ искомого результата. Как только результат
получен, он выводится на экран оператором WriteLn.
После этого следует переход на начало цикла с
пост-условием, в котором будет опять вводиться исходное
число и получаться результат, если не была нажата кла-
виша ESC. Если все же была нажата клавиша ESC то выпол-
нение программы передается основному циклу с
пост-условием который включает в себя выбор в меню.
Условие выхода из этого цикла - это нажатие клавиши
ВВОД, если курсор меню стоял на строке "ESC - ВЫХОД В
DOS".
Если это условие выполнилось, то осуществляется очи-
щение экрана и выполнение программы завершается.
2VIII. КАК ПОЛЬЗОВАТЬСЯ ПРОГРАММОЙ
Сразу после запуска программы на экране появляется
меню возможных переводов:
- 17 -
_____________________________________________________
| |
| > Перевод из десятеричного кода в двоичный. |
| |
| Перевод из двоичного кода в десятеричный. |
| |
| Перевод из десятеричного кода в шестнадцатиричный.|
| |
| Перевод из шестнадцатиричного кода в десятеричный.|
| |
| Перевод из двоичного кода в шестнадцатиричный. |
| |
| Перевод из шестнадцатиричного кода в двоичный. |
| |
| ESC - ВЫХОД В DOS |
| |
|_____________________________________________________|
Слева от первой строки стоит метка выбора. Клавишами
ВВЕРХ и ВНИЗ можно перемещать метку по меню. После того
как метка подведена к нужной строке нажимается клавиша
ВВОД. Если Вы хотите из главного меню выйти из прог-
раммы, то это можно сделать двумя способами: нажать
клавиши ESC или подвести курсор к последней строке и
нажать ВВОД.
Если Вы нажали ВВОД на одной из верхних строк меню
то на экране появляется следующая картина:
- 18 -
_____________________________________________________
| |
| Перевод из десятеричного кода в двоичный. |
| |
| ? 32 = 100000 |
| ? 33 = 100001 |
| ? 26 = 11010 |
| ? 500 = 111110100 |
| ? 3 = 11 |
| ? 34_ |
| |
| |
| |
| |
| |
| ESC - ВЫХОД В МЕНЮ |
|_____________________________________________________|
Однако вместо верхней строки может стоять любая из
шести строк указанных в меню, в зависимости от того,
стоя на какой строке меню Вы нажали ВВОД.
В этом состоянии можно вводить исходное число, при-
чем программа будет сама определять, допустимый символ
Вы вводите или нет. Так например если Вы переводите из
двоичной системы исчисления, то Вы можете нажимать
только клавиши '1' или '0', в противном случае програм-
ма нажатую клавишу не проигнорирует.
- 19 -
После того как Вы ввели исходное число, нужно нажать
клавишу ВВОД, после чего напротив исходного числа через
знак равно появится эквивалент исходного числа, но уже
в нужной системе исчисления.
Если Вы ошиблись при вводе исходного числа, то можно
нажать клавишу ЗАБОЙ, и последний введенный символ сот-
рется.
Чтобы завершить выполнение программы или осуществить
перевод из другой системы исчисления, нужно нажать кла-
вишу ESC (о чем указано в нижней строке экрана). В этом
случае Вы окажетесь в начальном меню. Если Вы хотите
продолжить перевод, то опять клавишами ВВЕРХ и ВНИЗ
подведите курсор к нужной строке меню и нажмите ВВОД.
Если же Вы хотите завершить выполнение программы, то
это можно сделать двумя вышеописанными способами.
- 8 -
Program Perevod;
Uses Crt;
Const P1='Перевод из '; { константы для начального меню }
s:array [1..7] of string[50]=(p1+'десятеричного кода в двоичный.',
p1+'двоичного кода в десятеричный.',
p1+'десятеричного кода в шестнадцатиричный.',
p1+'шестнадцатиричного кода в десятеричный.',
p1+'двоичного кода в шестнадцатиричный.',
p1+'шестнадцатиричного кода в двоичный.',
' ESC - ВЫХОД В DOS');
Var Promeg,Chast:Longint;
Znach,j:Integer;
Klav:Char;
i,Stroka,Isx,Kon,y,Kol,Help:Byte;
Keys: Set of '0'..'F';
a: Array [1..255] of Char;
Otv,Pom: string;
Procedure Zast; { процедура вывода меню }
begin
Window(1,1,80,24); { выделить окно 80х24 }
ClrScr; { очистить окно }
TextColor(15); { установить цвет - белый }
FOR I:=1 TO 7 do begin { цикл по строкам }
GoToXY (15,I*2); Write (s[i]); { формирование меню }
end;
end { zast }; { конец процедуры меню }
Function Stepen (Chis,St: Byte): Longint; { функция возведения в степень }
var c: Byte;
Res: longint;
begin
Res:=1;
For c:=1 to st do Res:=Res*chis;
Stepen:=Res; { присвоение функции значения }
End { Stepen }; { конец функции возведения в сепень }
Begin { НАЧАЛО ОСНОВНОЙ ПРОГРАММЫ }
y:=1; { y - текущая строка в меню }
Zast; { вывести меню }
Repeat { цикл для перемещения в меню }
TextColor(13);
GoToXY (13,y*2); Write(Chr(16)); { вывести метку текущей строки меню }
klav:=ReadKey; { считывание клавиши в klav }
GoToXY (13,y*2); Write(' '); { стирание старой метки текущей строки }
if Ord(Klav)=72 then if y > 1 then y:=y-1 else y:= 7; { если клавиша ВВЕРХ }
if Ord(Klav)=80 then if y < 7 then y:=y+1 else y:= 1; { если клавиша ВНИЗ }
if Ord(Klav)=27 then begin y:=7; klav:=Chr(13) end; { если клавиша ESC }
if (Ord(Klav)=13) and (y<7) then begin { если клавиша ВВОД не на выходе }
ClrScr; { очистить экран }
TextCOLOR (13); GoToXY (20, 1); Write (s[y]); { вывести название перевода }
TextCOLOR (10); GoToXY (31,24); Write ('ESC - ВЫХОД В МЕНЮ'); { вывести клавишу для выхода }
TextColor(15); { поменять цвет - белый }
Window(1,2,80,23); { установить окно со 2 по 23 строки }
Stroka:=2; { текущая строка }
- 9 -
Case y of { определение клавиш которые можно будет нажимать }
1,3 : begin { если перевод из десятиричного кода }
Isx:=10;
Keys:=['0'..'9']; { возможные клавиши }
If y=1 Then Kon:=2 else Kon:=16; { присвоение системы исчисления результата }
end;
2,5 : begin
Isx:= 2;
Keys:=['0','1']; { определение клавиш которые можно будет нажимать }
If y=2 Then Kon:=10 else Kon:=16; { присвоение системы исчисления результата }
end;
4,6 : begin
isx:=16;
keys:=['0'..'9','A'..'F']; { определение клавиш которые можно будет нажимать }
if y=4 then kon:=10 else kon:=2; { присвоение системы исчисления результата }
end;
end;
Repeat { основной цикл для перевода }
Write('? '); Promeg:=0; Kol:=0; Otv:=''; { подготовительные действия }
Repeat { цикл для ввода числа }
klav:=ReadKey; { чтение клавиши }
if UpCase(Klav) in Keys then begin { если клавиша допустимая }
kol:=kol+1; { количество символов в исходном числе }
a[kol]:=UpCase(Klav); { запоминание введенного символа }
Write (a[kol]); { вывод нажатого символа }
end;
if (Ord(Klav)=8) and (Kol>0) then begin { если клавиша ЗАБОЙ }
kol:=kol-1;
GoToXY(WhereX-1,WhereY);
ClrEol;
end;
Until (Ord(klav)=13) or (Ord(klav)=27); { пока не нажата ВВОД или ESC }
if Ord(klav)=13 then begin { если клавиша ВВОД - начало обработки результата }
for i:=1 to kol do begin { перевода введенного числа в десятеричную систему}
if a[i]<'A' then Znach:=Ord(a[i])-48
else Znach:=Ord(a[i])-55;
promeg:=promeg+Znach*Stepen(isx,kol-i);
end;
i:=0;
Repeat { определение максимального порядка результата }
i:=i+1;
Chast:=Trunc(Promeg/Stepen(Kon,i));
Until Chast<Kon;
For j:=i downto 0 do begin { перевод в нужную систему исчисления }
Help:=Trunc(Promeg/Stepen(Kon,j));
If Help>9 Then Pom:=Chr(55+Help)
Else Str(Help,Pom);
Otv:=Otv+Pom;
Promeg:=Promeg-Help*Stepen(Kon,j);
end;
WriteLn(' = ',Otv); { вывод результата }
end; { конец обработки результата }
Until Ord(Klav)=27; { если нажата ESC то выход в основное меню }
Zast; { вывод заставки }
end;
Until (Ord(Klav)=13) and (y=7); { если в меню нажали ESC или ВВОД на выходе }
ClrScr { очистить экран }
end.
... по соответствующему полю). В окне Конструктора таблиц созданные связи отображаются визуально, их легко изменить, установить новые, удалить (клавиша Del). 1 Многозвенные информационные системы. Модель распределённого приложения БД называется многозвенной и её наиболее простой вариант – трёхзвенное распределённое приложение. Тремя частями такого приложения являются: ...
... Е Ц Е Н З И Яна магистерскую диссертацию магистра Азербайджанского Государственного Экономического Университета Султанлы Ильгара Рауф оглы на тему «Учет и аудит текущих операций и расчетов» Тема диссертационной работы и план темы по представлению кафедры «Бухгалтерский учет и аудит» утверждены ректоратом Азербайджанского Государственного Экономического Университета и ...
... . Совокупность заведений, занимающихся однородным видом деятельности, представляет собой отрасль. Для количественного описания состояния и функционирования экономики в системе национальных счетов используются понятия запасов и потоков. Запасы отражают все виды активов и пассивов в экономике и отражаются в учете на определенную дату. Потоки отражают любые действия по созданию, преобразованию, ...
... , несмотря на такое лидерство, еще рано говорить о том, что информационные системы прочно вошли жизнь современных управленцев. 2 АНАЛИЗ ИНФОРМАЦИОННОГО ОБЕСПЕЧЕНИЯ УПРАВЛЕНИЯ ПРЕДПРИЯТИЕМ 2.1 Общая характеристика объекта исследования ОАО «Технический университет КубГТУ» был создан 9 октября 1992 года. Новые экономические условия требовали создания в Кубанском государственном ...
0 комментариев