Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Деление пятеричного числа на 3

Автор: Guilty 11.04.2006 15:47

Приветы всем smile.gif
Пожалуйста посмотрите на эту задачу. Конечно не прошу написать алгоритм , но хотя бы помоч по теории.
итак условие задачи :

Построить конечный автомат, выдающий результат деления вводимого пятеричного числа на 3. Результат выдается в форме: <частное>(<остаток>). Число вводится со старших разрядов и заканчивается маркером конца "#". Результат представляется также в пятеричной системе счисления.

Хотя бы напишите что-нибудь по теории связанной с делением пятеричного числа. Механизм деления мне интересен. good.gif

Автор: Романтик 11.04.2006 18:33

Цитата(Guilty @ 11.04.2006 12:47)
хотя бы помоч по теории.

В лоб:
Просим сначала пользователя ввести кол-во цифр цисла.(чтобы знать с какой позиции братть цифру).
просим ввести число. например 341 получаем каждое число
3=341 div 100
4=341 div 10 mod 10
.....
просчитоваем так каждую цифру. делем на три. если число меньше 3, то pred_chislo*10+succ. по мере решения заполняем массив часиным от деления.
Я бы сделал, но спешу.

Автор: klem4 11.04.2006 19:47

Guilty, http://forum.pascal.net.ru/index.php?showtopic=4535

Как вариант можно через десятичную все обыграть.

Автор: мисс_граффити 11.04.2006 23:38

Цитата(Романтик @ 11.04.2006 15:33) *

В лоб:
Просим сначала пользователя ввести кол-во цифр цисла.

а зачем? пусть вводит строкой, а там уж length....

Автор: lapp 12.04.2006 11:45

Цитата(Романтик @ 11.04.2006 14:33)
В лоб:

Что в лоб, что по лбу.. smile.gif
Ты хоть сам-то понял, что написал? Нам объясни.. Или спешишь сильно?..
Твои 341 - это же пятиричная запись! Как это ты ее так ловко делишь на 100 и на 10?
Дальше тоже странности...

Автор: lapp 12.04.2006 11:56

Цитата(Guilty @ 11.04.2006 11:47) *

Хотя бы напишите что-нибудь по теории связанной с делением пятеричного числа. Механизм деления мне интересен.

Первый способ.
Заведи целую переменную, положи туда ноль, а по мере ввода цифр умножай ее на 5 и прибавляй следующую цифру. Так ты получишь верное число. Потом дели его на три, а результат переведи в пятеричную систему. Как? В цикле делишь на 5, а остаток всякий раз записываешь - это пятеричные цифры справа налево.

Второй способ.
В лоб smile.gif. Деление уголком знаешь? Вот это и есть твой алгоритм. Только не забудь, что основание 5, а не 10.

Автор: Романтик 12.04.2006 22:54

Цитата(lapp @ 12.04.2006 7:45) *

Что в лоб, что по лбу.. smile.gif
Ты хоть сам-то понял, что написал? Нам объясни.. Или спешишь сильно?..
Твои 341 - это же пятиричная запись! Как это ты ее так ловко делишь на 100 и на 10?
Дальше тоже странности...

smile.gif .Столбик. делением числа(mod,div) я получаю чифру для деления. а pred_chislo*10+succ признаю не прав. понял. unsure.gif