трусики женские украина

На головну

Вивчення методики перекладу з однієї системи числення в іншу і розробка програми для цієї операц - Інформатика

2О ГЛАВЛЕНИЕ

1. Введення

2. Постановка задачі

3. Теоретична основа рішення задачі

4. Методологічний підхід

5. Алгоритм програми для перекладу з однієї

системи числення в іншу

6. Текст програми з коментарями

7. Докладні роз'яснення по програмі

8. Як користуватися програмою

- 2 -

2I. ВВЕДЕННЯ

Проблема перекладу з однієї системи числення в іншу

дуже часто зустрічається при програмуванні. Особливо

часто з'являється така проблема при програмуванні

на Асемблері. Наприклад при визначенні адреси

елемента пам'яті, для отримання двійкового або шістнадцяткового

еквівалентів десятеричного числа. Іноді встає

проблема збільшення швидкості обчислень, і тоді приходить

на допомогу двійкова система числення. У цій

системі числення дуже швидко проводити операцію

множення шляхом зсуву одного з операндів в двійковому

вигляді вліво на таке число позицій в якій стоїть одиниця

у другому операнді.

Розглянемо детальніше як це здійснюється. Нехай

нам треба помножити число 1101 на 101 (ба числа в двійковій

системі числення). Машина робить це таким

чином: вона бере число 1101, і якщо перший елемент

другого множника рівний 1 то вона заносить його в суму.

Потім зсуває число 1101 вліво на одну позицію, отримуючи

тим самим 11010 і якщо другий елемент другого множника

рівний одиниці те також заносить його в суму. Якщо

елемент другого множника рівний нулю те сума не змінюється.

У зв'язку з цим, якщо другий множник містить

багато нулів, то операція множення виконується досить

- 3 -

довго, так як машина перевіряє кожну цифру другого множника,

в тому числі і нулі. Якщо ж самому робити операцію

множення те нулі можна пропустити і тоді множення

зробиться швидше.

Що стосується застосування шістнадцяткової системи

числення те тут також великі можливості. По-перше,

деякі стандартні процедури Паськаля і Сі вимагають

задачі параметрів в шістнадцятковій системі, а

по-друге, така система числення дуже зручна для

зберігання інформації, так як число в шістнадцятковому вигляді

займає менше об'єму диска чим також число в десятеричному,

а тим більше в двійковому вигляді.

Таким чином ми пересвідчилися, що проблема перекладу з

двійкової системи числення в десятеричну, з шістнадцяткової

в десятеричну і зворотно дуже актуальна.

2II. ПОСТАНОВКА ЗАДАЧІ

З введення стало зрозуміло, що системи числення, що найчастіше зустрічаються

це двійкова, шістнадцяткова

і десятерична. Іноді зустрічається і восьмирич-ная

система числення, але це буває так рідко, що не

варто на цьому зупинятися. Отже, наша задача здійснити

переклад з двійкової системи числення в десятеричну

і шістнадцяткову, з десятеричної в двійкову

і шістнадцяткову і з шістнадцяткової в двійкову

і десятеричну, тобто взаємно зв'язати всі ці три

системи числення.

- 4 -

2III. ТЕОРЕТИЧНА ОСНОВА РІШЕННЯ ЗАДАЧІ

Як же на практиці здійснюється переклад з однієї

системи числення в іншу? Спробуємо розібратися.

Допустимо нам треба перевести число 567 десятеричної

системи в двійкову систему. Робиться це таким чином:

відшукується максимальна міра двійки, щоб

два в цій мірі було менше або дорівнює початковому

числу. У нашому випадку це 9, так як 2^9=512, а 2^10=1024

що більше нашого початкового числа. Таким чином ми

отримали число розрядів результату. Воно дорівнює 9+1=10.

Означає результат буде мати вигляд 1ххххххххх, де замість

х може стояти 1 або 0. Знайдемо другу цифру результату.

Зведемо двійку в міру 9 і віднімемо з початкового

числа: 567-2^9=55. Потім порівнюємо з числом 2^8=256.

Оскільки 55 менше 256 те дев'ятий розряд буде нулем,

тобто результат вже прийме вигляд 10хххххххх. Розглянемо

восьмий розряд: 2^7=128 > 55, значить і восьмий розряд

буде нулем. Так як 2^6=64 те сьомий розряд рівний нулю.

Таким чином ми отримали чотири старших розряди і

число прийме вигляд 1000хххххх. Обчислюємо 2^5=32 і бачимо,

що 32 <55, означає шостий розряд рівний 1 (езультат

10001ххххх), залишок 55-32=23. 2^4=16 <23 - п'ятий розряд

1 => 100011хххх.>< Залишок 23-16=7.>< 2^3=8 > 7 =>

1000110ххх. 2^2=4 < 7 => 10001101хх, залишок 3. 2^1=2 < 3 => 100011011х, залишок 1. 2^0=1 = 1 => 1000110111. Ми

отримали кінцевий результат.

- 5 -

Тепер спробуємо перевести також число 567, але вже в

шістнадцяткову систему. Підхід приблизно такий же.

Визначимо максимальний розряд. Так як 16^2=256 <567, а

16^3=4096 > 567, то максимальний розряд 2+1=3. Визначимо

число, яке буде стояти в третьому розряді.

Шукається максимальний множник в межах від 1 до 15,

щоб поточна міра шістнадцяти помножена на цей

множник була менше або дорівнювала початковому числу (

надалі - залишку). У нашому прикладі цей множник

2, так як 256*2=512 < 567, а 256*3=768 > 567. Означає

старший розряд нашого результату буде рівний 22 0, і результат

прийме вигляд 2хх, де замість х можуть стояти будь-які

цифри або букви з нижче перерахованих:

0,1,2,3,4,5,6,7,8,9, А, В, З, D, Е, F. Вичисляем залишок:

567-2*16^2=55. Визначимо що буде стояти у другому

розряді. Оскільки 3*16^1=48 < 55, а 4*16^1=64 > 55, то

у другому розряді буде стояти цифра 23 0. Залишок

=55-3*16^1=7. Визначаємо перший розряд: так як 16^0=1

те цифра першого розряду рівна залишку, тобто 27 0. Таким

чином ми отримали число 2237 0, але вже в шістнадцятковій

системі числення.

Операція перекладу з десятеричної системи виглядає

набагато простіше. Розглянемо її на прикладі перекладу з

шістнадцяткової системи в десятеричну.

Допустимо нам треба перевести число 24A3F 0в десятеричну

систему. Беремо старший (4 ый) розряд і зводимо 16

в міру 4-1=3, отримуємо 16^3=4096. Отриманий результат

множимо на значення четвертого розряду, тобто 4.

- 6 -

Виходить 4096*4=16384. Цей результат ми заносимо в

суму. Переходимо до наступного розряду: 16^2=256. 256

треба помножити на значення третього розряду тобто A. Как

відомо в шістнадцятковій системі числення букви

від А до F символізують числа від 10 до 15 (=10, В=11,

З=12, D=13, Е=14, F=15). Помноживши 256 на 10 отримаємо 2560

і цей результат додаємо до суми, в якій у нас поки

було 16384. У суму у нас вийшло 18944. Переходимо

до другого розряду: 3*16^1=48, додавши це в суму

отримаємо 18992. І останній розряд: 15*16^0=15. Кінцева

сума рівна 219007 0. Ми отримали результат в десятеричній

системі числення.

2IV. МЕТОДОЛОГІЧНИЙ ПІДХІД

Розглядаючи переклад з десятеричної системи

числення в двійкову і шістнадцяткову, можна знайти

багато загального. У обох випадках ми шукаємо максимальну міру,

потім в обох випадках порівнюємо залишок з числом

зведеним в міру розряду. Єдина різниця

полягає в тому, що при перекладі в двійкову систему

основою міри служить двійка, а при перекладі в

шістнадцяткову систему основою служить число шістнадцять.

Виникає питання: а чи не можна об'єднати обидва

цих перекладу в одну процедуру, в яку як

параметри передавати основу міри? При більш докладному

розгляді перекладу в двійкову систему можна

помітити, що порівнюючи залишок зі мірою двійки ми

- 7 -

відмічаємо тільки як би два стани: так чи ні, тобто

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 (х, у) - переводить курсор в рядок з номером у

і стовпець з номером х.

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< тобто курсор в меню не

підведений до останнього рядка зі значенням виходу з

програми. Якщо значення вираження цього умовного оператора

прийме значення True, то починається виконання

основної частини програми, яка здійснює безпосередньо

переклад з однієї системи числення в

іншу.

Спочатку очищається екран. Потім малиновим кольором в

першому рядку виводиться з якої і в яку систему

числення програма буде переводити числа. Після цього,

в нижньому рядку зеленим кольором виводиться фраза "ESC

- ВИХІД В МЕНЮ". Потім встановлюється колір виведення на

екран білий і виділяється вікно для висновку що виключає

перший і останній рядки екрана. Змінної Stroka

(змінна вказує рядок положення курсора) привласнюється

значення 2.

Після цих підготовчих процесів оператор Case

в залежності від того з якої і в яку систему

числення ми будемо переводити числа, визначає значення

змінних Isx (снування початкової системи числення

), Keys (лавиши, які можна натискати для введення

початкового числа) і Kon (снування кінцевої системи

числення).

- 14 -

Далі в програмі слідує оператор циклу з

постом-умовою Repeat, всередині якої здійснюється

введення початкового числа. Спочатку йде очікування натиснення

клавіші, і якщо клавіша буде натиснена, то значення цієї

клавіші запишеться в змінну Klav. Стандартна функція

UpCase переводить символ з нижнього регістра у верхній.

Умовний оператор If визначає, чи є натиснена

клавіша допустимої, і якщо це так, то змінна

Kol (кількість символів у введеному числі) збільшується

на одиницю, значення клавіші записується в масив

А (масив символів з початковим числом) і введена клавіша

відображається на екрані.

Наступний умовний оператор визначає, чи не була

натиснена клавіша ВИБІЙ. У цьому випадку Kol меншає на

одиницю, курсор переміщається на одну позицію вліво і

стирається останній введений символ.

Оператор Until здійснює вихід з циклу з

постом-умовою в тому випадку, якщо була натиснена клавіша

ВВЕДЕННЯ або клавіша ESC.

Далі слідує умовний оператор, який обробляє

умову натиснення клавіші ВВЕДЕННЯ. Якщо це так, то це

означає, що початкове число введене і користувач хоче

отримати результат, і необхідно приступити до безпосереднього

перекладу.

Всередині цього умовного оператора виконується цикл від

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+' шістнадцятковий коди в двоичный.',

' ESC - ВИХІД В DOS');

Var Promeg, Chast:Longint;

Znach, j:Integer;

Klav:Char;

i, Stroka, Isx, Kon, у, 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 з: Byte;

Res: longint;

begin

Res:=1;

For з:=1 to st do Res:=Res*chis;

Stepen:=Res; { привласнення функції значення }

End { Stepen }; { кінець функції зведення в сепень }

Begin { ПОЧАТОК ОСНОВНОЇ ПРОГРАМИ }

у:=1; { у - поточний рядок в меню }

Zast; { вивести меню }

Repeat { цикл для переміщення в меню }

TextColor(13);

GoToXY (13, у*2); Write(Chr(16)); { вивести мітку поточного рядка меню }

klav:=ReadKey; { лічення клавіші в klav }

GoToXY (13, у*2); Write(' '); { стирання старої мітки поточного рядка }

if Ord(Klav)=72 then if у > 1 then у:=у-1 else у:= 7; { якщо клавіша ВГОРУ }

if Ord(Klav)=80 then if у < 7 then у:=у+1 else у:= 1; { якщо клавіша ВНИЗ }

if Ord(Klav)=27 then begin у:=7; klav:=Chr(13) end; { якщо клавіша ESC }

if (Ord(Klav)=13) and (у<) then begin { якщо клавіша ВВЕДЕННЯ не на виході }

ClrScr; { очистити екран }

TextCOLOR (13); GoToXY (20, 1); Write (s[у]); { вивести назву перекладу }

TextCOLOR (10); GoToXY (31,24); Write ('ESC - ВИХІД В МЕНЮ'); { вивести клавішу для виходу }

TextColor(15); { поміняти колір - білий }

Window(1,2,80,23);  { встановити вікно з 2 по 23 рядки }

Stroka:=2; { поточний рядок }

- 9 -

Case у of { визначення клавіш які можна буде натискати }

1,3: begin { якщо переклад з десятиричного коду }

Isx:=10;

Keys:=['0'..' 9']; { можливі клавіші }

If у=1 Then Kon:=2 else Kon:=16; { привласнення системи числення результату }

end;

2,5: begin

Isx:= 2;

Keys:=['0','1']; { визначення клавіш які можна буде натискати }

If у=2 Then Kon:=10 else Kon:=16; { привласнення системи числення результату }

end;

4,6: begin

isx:=16;

keys:=['0'..' 9',' А'. 'F']; {. визначення клавіш які можна буде натискати }

if у=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]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 ChastFor 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 (у=7); { якщо в меню натиснули ESC або ВВЕДЕННЯ на виході }

ClrScr { очистити екран }

end.

Авіація і космонавтика
Автоматизація та управління
Архітектура
Астрологія
Астрономія
Банківська справа
Безпека життєдіяльності
Біографії
Біологія
Біологія і хімія
Біржова справа
Ботаніка та сільське господарство
Валютні відносини
Ветеринарія
Військова кафедра
Географія
Геодезія
Геологія
Діловодство
Гроші та кредит
Природознавство
Журналістика
Зарубіжна література
Зоологія
Видавнича справа та поліграфія
Інвестиції
Інформатика
Історія
Історія техніки
Комунікації і зв'язок
Косметологія
Короткий зміст творів
Криміналістика
Кримінологія
Криптологія
Кулінарія
Культура і мистецтво
Культурологія
Логіка
Логістика
Маркетинг
Математика
Медицина, здоров'я
Медичні науки
Менеджмент
Металургія
Музика
Наука і техніка
Нарисна геометрія
Фільми онлайн
Педагогіка
Підприємництво
Промисловість, виробництво
Психологія
Психологія, педагогіка
Радіоелектроніка
Реклама
Релігія і міфологія
Риторика
Різне
Сексологія
Соціологія
Статистика
Страхування
Будівельні науки
Будівництво
Схемотехніка
Теорія організації
Теплотехніка
Технологія
Товарознавство
Транспорт
Туризм
Управління
Керуючі науки
Фізика
Фізкультура і спорт
Філософія
Фінансові науки
Фінанси
Фотографія
Хімія
Цифрові пристрої
Екологія
Економіка
Економіко-математичне моделювання
Економічна географія
Економічна теорія
Етика

8ref.com

© 8ref.com - українські реферати


енциклопедія  бефстроганов  рагу  оселедець  солянка