перетворення десяткового числа в BCD формат
1) На вхід програма отримує два рядки з максимальною кількістю символів, рівним 18.
Так як користувач може помилитися (ввести замість цифри символ або ввести занадто багато цифр), знадобляться додаткові перевірки.
1. Після зчитування рядка перевіряється її довжина. Якщо вона перевищує 19, тоді прапору помилковою довжини присвоюється значення true. p align="justify">. Якщо ж ні то перевіряється на наявність знаку - якщо він присутній, тоді проводитися переклад i-ого символу в двійковий код стільки разів, яка довжина рядку не рахуючи першого так як він є - .
. Якщо ж знак - відсутній, то перевіряється його довжина. Якщо вона не перевищує 18, то проводиться переклад i-ого символу в двійковий код стільки разів, яка довжина рядка. При перевищенні, прапору помилковою довжини присвоюється значення true.
ДСА перетворення рядка в заданий формат представлена ​​на Рис.1
2) При перекладі i-ого символу у формат упаковане десяткове отриманий двійковий код буде зберігатися в байті, по дві тетради в кожному.
. Перевіряється чи є отриманий символ цифрою. У разі негативного результату прапор не числа присвоюється значення true. p align="justify">. В іншому випадку знаходять номер елемента зберігання і визначаться потреба зсуву в ліво на 4 розряди. Далі отримана цифра додається в елемент збереження зі з зрушенням або без. p align="justify"> ДСА упаковки цифри в елемент зберігання представлена ​​на Рис. 2
Ріс1.ГСА перекладу отриманого рядка в BCD формат
Рис. 2 ДСА п/п перекладу цифри у двійковий код
Приклад перекладу з рядка в число формату BCD На вході рядок: 1986258163
Цифра 3 має код 0011
6 0110
1 0001
7 1000
5 0101
0010
0110
1000
9 1001
січня 0001
Одержуємо:
Розробка алгоритму арифметичної операції.
Для визначення формальних правил...