![]() |
![]() ![]() |
![]() |
AlexSt |
![]() ![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 38 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() Code: |
Lapp |
![]()
Сообщение
#2
|
|||
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
AlexSt, пожалуйста, не дублируй темы.
-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
|||
AlexSt |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 38 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
помогите модернизировать алгоритм конвертации чисел(чтобы конвертировал числа с дробной частью), или на словах хотя бы напишите что делать.
![]() function Convert(Num, SetIn, SetOut: String): String; |
AlexSt |
![]() ![]()
Сообщение
#4
|
Новичок ![]() Группа: Пользователи Сообщений: 38 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
что, никто не может объяснить даже на словах как замутить с дробной частью???java script:emoticon(':blink:', 'smid_2')
|
Lapp |
![]()
Сообщение
#5
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Послушай, AlexSt, а сам-то ты что-нибудь сделал?..
Насколько я понял, ты притащил чужой код и просишь нас изменить его для тебя. А кому от этого какая польза? Только та, что ты зачет сдашь? Твоя задача, на самом деле, интересная и не очень простая. Но копаться в чужом коде лично я не хочу. Лично мне удобнее и быстрее было бы написать свою прогу. И тебе я рекомендую сделать именно это. С нуля. И если ты решишься на это - помощь я тебе гарантирую (как минимум - свою). А так - какой смысл? Ты правда думаешь, что мне так хочется, чтоб ты сдал свой зачет или что там у тебя?.. Вот научить тебя я хочу. Честно. Кстати, добавление возможности вещественных чисел к этой программе - совсем не такая простая вещь. Например, для конвертации тебе понадобится деление. Если ты все же хочешь переделывать эту программу, разберись, как она работает. Я готов отвечать на твои вопросы (по делу). -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
AlexSt |
![]()
Сообщение
#6
|
Новичок ![]() Группа: Пользователи Сообщений: 38 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
в проге я разобрался, сам сделал вычитание, хочу ща сделать конвертацию без деления... будут вопросы - отпишусь
|
Lapp |
![]()
Сообщение
#7
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
в проге я разобрался, сам сделал вычитание, хочу ща сделать конвертацию без деления... ![]() Буду следить за темой. Добавлено через 18 мин. Некоторые соображения общего характера.. Из истории арифметики ![]() Как появились числа? Просто люди стали считать - пальцы, коров.. Какие это были числа? Натуральные (то есть 1, 2, 3...) Потом появилось сложение. Многократное сложение - это умножение. Сначала система счисления была римская - в ней считать неудобно. Потом появилась десятичная запись. Что она собой представляет? Сумму произведений цифр на основание системы. Теперь остановимся и посмотрим на ту прогу, которую ты привел. Что там есть? Мне видится, что главное там - конвертация. Для нее нужно уметь умножать (цифры на основание). Для умножения надо уметь складывать. Чувствуешь аналогию с историческим процессом? ![]() Идем дальше. Появилось вычитание - как действие, обратное сложению. Вычитание повлекло расширение натуральных чисел, добавление к ним нуля и отрицательных чисел. Что такое число "-5"? Это результат операции "0-5". То есть отрицательные числа просто заменили длинную запись (операцию) на короткую (отрицательное число). (попутно вопрос: ты ввел отрицательные числа, когда сделал вычитание? без этого нельзя) Наконец, появилось действие, обратное умножению - деление. Оно также повлекло за собой расширение понятия числа - появились дробные числа. Что такое 1/5? Это результат операции 1:5 - то есть снова просто укороченная запись, а по сути одно и то же. Как видишь, дробные числа не бывают без деления ![]() Но я буду рад, если ты мне докажешь обратное ![]() -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
AlexSt |
![]() ![]()
Сообщение
#8
|
Новичок ![]() Группа: Пользователи Сообщений: 38 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
ок, только что весьма надёжно получилось сделать умножение с дробной частью, думаю сам смогу сделать и вычитание, для деления хочу перевести числа в десятичную разделить и перевести обратно в нужную сс. остаётся только конвертация чисел с дробной частью... я бы хотел узнать как вообще должна вести себя запятая при конвертации в другую сс?
|
AlexSt |
![]() ![]()
Сообщение
#9
|
Новичок ![]() Группа: Пользователи Сообщений: 38 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
и ещё там есть ф-ция преконверт, гре я пытался сделать перевод в др. сс с запятой, но нажимая выполнить прога виснет( почему?
|
AlexSt |
![]()
Сообщение
#10
|
Новичок ![]() Группа: Пользователи Сообщений: 38 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
и ещё, под каким номером находится shift и space, в книге не могу найти(, знаю enter - #13, backspace - #8...
|
andriano |
![]()
Сообщение
#11
|
Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: ![]() ![]() ![]() |
Пробел - #20, у Shift кода нет - это клавиша-модификатор. Если в DOS, то можно определить ее нажатие, анализируя область данных BIOS по смещению $17 и $18.
|
AlexSt |
![]() ![]()
Сообщение
#12
|
Новичок ![]() Группа: Пользователи Сообщений: 38 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
спасибо за подсказочку
![]() ![]() ![]() ![]() ![]() function preConvert (Num1, SetIn, SetOut: String): String; |
Lapp |
![]()
Сообщение
#13
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
наваял код по конвертированию в др сс с дробной частью, но он работает некорректно, может кто сможет найти ошибку? - ф-ция преконверт (у неё в подопечных ф-ция конверт для перевода целой части) Видимо, не в подопечных, а в подручных.. ![]() Посмотрел я твой код.. Если честно - до конца не разобрался, но у меня есть подозрение, что это не нужно. Хотя тут сайт про Паскаль, по-русски иногда говорить тоже желательно ![]() Заранее скажу, что если она (основная идея) состоит в том, чтобы разделить число на целую и дробную части, перевести их по отдельности в другую СС (систему счисления, так правильно, не "исчисления"), а потом снова слепить вместе через десятичную точку (а мне показалось, что ты хочешь делать именно так), то вынужден тебя разочаровать - этот путь неверный. Он неверен в корне, а не в отдельных деталях, так что, я думаю, его и подправить нельзя ![]() Пожалуйста, прежде чем предлагать код для выискивания ошибок, говори хотя бы в нескольких словах алгоритм. Ладно? Если хочешь, можем начать обсуждение работоспособного алгоритма. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
AlexSt |
![]()
Сообщение
#14
|
Новичок ![]() Группа: Пользователи Сообщений: 38 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
а какие ещё есть варианты кроме как "разделить" и "слепить"? у меня только такая идея и была...(
|
Lapp |
![]()
Сообщение
#15
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
а какие ещё есть варианты кроме как "разделить" и "слепить"? у меня только такая идея и была...( Еще вариант - про который я говорил с самого начала. В той проге, которую ты выбрал за образец, перевод делается так: Число (А) в записанное в СС1 с основанием D1 нужно перевести в СС2 с основанием D2. Допустим, что мы уже умеем умножать числа в любой системе счисления (одинаковой, естественно, для обоих сомножителей). Переводим каждую цифру этого числа из СС1 в СС2. Теперь это уже, возможно, не цифры, а числа (например, 5 десятичное = 101 двоичное). Дальше действуем по формуле, которую я сегодня уже кому-то тут писал.. Например, исходное число a3a2a1a0 (каждое ai - цифра), то есть: A(СС1) = a3*D1^3 + a2*D1^2 + a1*D1 + a0 Мы перевели каждую цифру в другую систему ai(CC1) = ai(CC2) = ai2. Также, мы переводим основание первой системы В1 в СС2 D1(CC1) = D1(CC2) = D12 Теперь перепишем, чему равно А, но уже в СС2: A(СС2) = a32*D12^3 + a22*D12^2 + a12*D12 + a0 Осталось произвести эти умножения и сложения (теперь понял, почему они есть в той проге?) Идем дальше, хотим дроби. То есть теперь у нас число выглядит так: A = a3a2a1a0.b1b2 - тут две цифры после запятой. Переводить его надо аналогично, только с дробными цифрами будут стоять отрицательные степени основания: A(СС2) = a32*D12^3 + a22*D12^2 + a12*D12 + a0 + b12*D12^-1 + b22*D12^-2 Вот и все. Казалось бы, то же самое. Но только отрицательные степени - это деление: D12^-n = 1/(D12^n) То есть, вот так: A(СС2) = a32*D12^3 + a22*D12^2 + a12*D12 + a0 + b12/D12^1 + b22/D12^2 Так что тебе понадобится деление. Я бы на твоем месте все сделал заново, без той проги.. Ничего особо сложного, а путаницы меньше. Время есть? -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Гость |
![]()
Сообщение
#16
|
Гость ![]() |
спасибо, наверно так и сделаю, деление только как...
|
Lapp |
![]()
Сообщение
#17
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
спасибо, наверно так и сделаю, деление только как... Можно просто обычным уголком ![]() Деление a/b это есть нахождение корня уравнения a=b*x. В оригинале это делается подбором. Способ деления уголком - это и есть подбор (вспомни, каждую цифру приходится подбирать). Вообще, если хочешь подойти серьезно, рекомендую почитать Кнута. Я помогу с делением. Только чуть позже.. спать пора ![]() -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
AlexSt |
![]()
Сообщение
#18
|
Новичок ![]() Группа: Пользователи Сообщений: 38 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Цитата обычным уголком ))) если есть алгоритм или знаешь где есть отпишись как проснёшся ![]() по поводу времени - его уже нет, курсовую лучше всего было бы сдать завтра (к отчёту ещё и не приступал) ![]() ![]() ![]() Кнута почитать не успею ![]() |
AlexSt |
![]()
Сообщение
#19
|
Новичок ![]() Группа: Пользователи Сообщений: 38 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
кстати, к свелению у меня прога на делфы...
я думаю целесообразно буит изменить ф-цию конверт используя "правило уголка"... жду, жду, жду.... ![]() |
Lapp |
![]()
Сообщение
#20
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
к свелению у меня прога на делфы... Не знаю, к какому "свелению", но это касается интерфейса, о котором пока разговора не было.я думаю целесообразно буит изменить ф-цию конверт используя "правило уголка"... жду, жду, жду.... Ну думаешь - ну делай! Ты когда нибудь пробовал сделать стол из кровати? Или, скажем, штаны на рубашку перешить?.. Попробуй. Сделать с нуля, повторяю, проще. Если, конечно, без очковтирательства - типа: авось пронесет - похоже же! Для вещественного числа нужен соответствующий формат. Если не продумать заранее - получится себе дороже. Вот, как я бы стал делать, например: type Посмотри. Здесь, конечно, не без недочетов - на скорую руку сляпал. Если понравится - давай дальше двигать. Вместе. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
![]() ![]() |
![]() |
Текстовая версия | 21.07.2025 9:11 |