![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Рустам |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 40 Пол: Мужской Репутация: ![]() ![]() ![]() |
в качестве основания позиционной системы счисления может быть взято отрицательное число. Например можно рассмотреть систему с основанием -10 . Любое n единственным образом представляется в виде суммы As*(-10)^S+As-1*(-10)^s-1+...+A1(-10)+A0 где 0<=Ai<=9, i=0...s. Из сказанного следует что любое целое n записывается в системе с основанием -10 в виде целого числа без знака As As-1...A1 A0
Дано целое число n. ПОстроить представлени n в системе с основанием -10 те найти соответствующие As , As-1,..,A0 |
amega |
![]()
Сообщение
#2
|
![]() ? ![]() ![]() ![]() Группа: Пользователи Сообщений: 283 Пол: Мужской Репутация: ![]() ![]() ![]() |
тоесть ты имееш ввиду просто раскласти в виде полинома?
|
Рустам |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 40 Пол: Мужской Репутация: ![]() ![]() ![]() |
тоесть ты имееш ввиду просто раскласти в виде полинома? нет надо просто цифры вывести например 436 как я подсчитал уже 5*(-10)^2 + 7*(-10)^1 + 6 то есть надо эти цифры и вывести ( 5 7 6) если надо могу выложить свою прогу которую щас сделал...почти работает но только почему то для трехзначных чисел...для остальных зацикливается |
Lapp |
![]()
Сообщение
#4
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Дано целое число n. ПОстроить представлени n в системе с основанием -10 те найти соответствующие As , As-1,..,A0 Вот: var Сообщение отредактировано: Lapp - 6.04.2009 1:43 -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Рустам |
![]()
Сообщение
#5
|
Новичок ![]() Группа: Пользователи Сообщений: 40 Пол: Мужской Репутация: ![]() ![]() ![]() |
Спасибо огромное!!! но почему для отрицательных не работает... |
Lapp |
![]()
Сообщение
#6
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Спасибо огромное!!! но почему для отрицательных не работает... Хм.. Про отрицательные я как-то не подумал даже.. ![]() Но только проблемы никакой нет. Перед началом преобразования запоминаешь знак числа a. После преобразования приписываешь его результату. Вот так примерно: var (Не проверял, просто исправил) Меня, если честно, больше смущает совсем другое - неоднозначность представления. Например: -110 = -1-10 = 19-10 Но это, по-видимому, такое свойство системы счисления с отрицательным основанием, которое нужно просто принять, хоть оно и необычно ![]() Сообщение отредактировано: Lapp - 6.04.2009 19:39 -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Рустам |
![]()
Сообщение
#7
|
Новичок ![]() Группа: Пользователи Сообщений: 40 Пол: Мужской Репутация: ![]() ![]() ![]() |
Огромное спасибо)) я только сдал ту программу которая без учёта отрицательных чисел...
Кстати насчёт не однозначности...Учительница говорила с точки зрения алгебры чисел должно быть например 12(в 10) = 192(в -10) а -12 = -192 ...вот а с точки зрения алгебры чисел -12= 28 будет неверным))) так что спасибо)) |
amega |
![]()
Сообщение
#8
|
![]() ? ![]() ![]() ![]() Группа: Пользователи Сообщений: 283 Пол: Мужской Репутация: ![]() ![]() ![]() |
ойойой а алгебра для какой системы счисления 10, дак че она приписывает ее для для -10?
с точки зрения дичитичной 1+1 =2 , а двочной 1+1=10, для каждой системы счисления своя алгебра, если взять шеснадцатиричную ... в диситичной нетже а б с д е ф, если есть неоднозначность , то нельзя ее спихивать на алгебру... |
Lapp |
![]()
Сообщение
#9
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
я только сдал ту программу которая без учёта отрицательных чисел... А почему отрицательные не прокатили? ![]() Кстати насчёт не однозначности...Учительница говорила с точки зрения алгебры чисел должно быть например Не совсем понял тебя. Напиши основания во втором равенстве (кстати, используй тэг SUB для индексов). Я говорил про то, что одно и то же число (просто число, без привязки к системе счисления, как пять пирожков) в СС с основанием -10 может иметь больше, чем одно представление. В пример привел минус единицу (что означает, что ты должен один пирожок Пете). Это число в СС-10 представляется двумя способами: как -1-10 и как 19-10.12(в 10) = 192(в -10) а -12 = -192 ...вот а с точки зрения алгебры чисел -12= 28 будет неверным))) так что спасибо)) Но, повторяю, я не вижу тут большого греха. Никто не обязывал СС быть однозначной. Просто лишний повод не пользоваться этой СС на практике)). Стоп.. Если убрать запись с лидирующим минусом, то однозначность восстановится.. Ага, понял. Ты это имел в виду? Поэтому отрицательные не прокатили? Тебе годится только запись без минуса?.. Хорошо, я напишу прожку.. с точки зрения дичитичной 1+1 =2 , а двочной 1+1=10, для каждой системы счисления своя алгебра, если взять шеснадцатиричную ... в диситичной нетже а б с д е ф, если есть неоднозначность , то нельзя ее спихивать на алгебру... amega, потрудись вникнуть перед тем, как отвечать в тему. Речь совершенно не об этом.-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Lapp |
![]()
Сообщение
#10
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
запись без минуса?.. Хорошо, я напишу прожку. Вот, написал.. Если честно - недоволен своим творением. Все как-то через ж.. Суть такова: если число меньше нуля, то я конструирую число p+a, где p - минимальная нечетная степень десяти, превосходящая |a|. Это число я перевожу в СС-10. А число (-p) в СС-10 будет представлено единицей в нечетной позиции. Сложить числа (p+a) и (-p) будет означать просто добавить единицу в ту самую нечетную позицию. Это я и делаю. var Должен быть более логичный способ, не так сильно зависящий от знака числа. Он же, думаю, и более простой. Но слова "более простая программа" абсолютно не значат, что ее проще написать.. ![]() Да, и еще один исправил баг: если введенное число было равно нулю, то вообще ничего не выводилось. В принципе, это правильно, но лучше все же придерживаться общепринятых обозначений ![]() -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
volvo |
![]()
Сообщение
#11
|
Гость ![]() |
Андрей, что-то не так...
Type in a number: 124 Почему -10 восстанавливается нормально, -451 тоже. А все числа в интервале (-91) .. (-11) - нет?. |
Lapp |
![]()
Сообщение
#12
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
-10 восстанавливается нормально, -451 тоже. А все числа в интервале (-91) .. (-11) - нет?. Хм.. интересно...Сейчас проверю. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Рустам |
![]()
Сообщение
#13
|
Новичок ![]() Группа: Пользователи Сообщений: 40 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ничё се прожку я дал....Спасибо всем огромное я сдал прогу уже давно!!! Lapp тебе отдельное) за первую прогу я её и то и сдал)) ...после 50 минут "общения" с преподом... Сдал бы и за 10 минут если бы она не посмотрела на запись "Back to normal" а так спасибо
![]() |
Lapp |
![]()
Сообщение
#14
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
я сдал прогу уже давно!!! Lapp тебе отдельное) за первую прогу я её и то и сдал)) ...после 50 минут "общения" с преподом... Сдал бы и за 10 минут если бы она не посмотрела на запись "Back to normal" Рустам, сдал или не сдал - это твои проблемы. Ты родил тему - дальше она живет сама. А для меня, например, неверно решенная задача - это заноза в за*нице..)) К тому же, я не припомню, чтобы СС с отрицательным основанием засвечивались тут, на Форуме. Так что не серчай, решение я добил. Всего-то нужно было сконцентрироваться и заставить себя исходить из самых общих принципов..Трюк с конструированием числа p+a не проходит, увы. Ошибка в том, что в его записи может быть цифр больше, чем я думал, и сложение не будет столь простым; и это настолько существенно, что зарубает всю идею на корню. Я сделал совершенно новое решение, которое работает на общем принципе позиционных систем (деление и остаток). Это решение, как и полагается, нечувствительно к знаку числа, то есть одинаково работает и для положительных, и для отрицательных. Исключением по-прежнему является ноль, который приходится добавлять искуственно)). var А старые два решения пусть останутся памятником вечной идее перехитрить самого себя..)) Добавлено через 3 мин. Кстати, а чем не понравилось "back to normal"? Проверка никогда не вредит. Здесь, как видишь, помогла (спасибо volvo)). И еще интересное замечание: оказывается, система с отрицательным основанием вообще не требует лидируещего минуса в звписи числа! У меня это с трудом укладывается башке: с одной стороны, минус вроде как совсем не нужен уже, а с другой - само основание как-то же надо записывать! Если записать его в той же самой СС-10, то получится просто 10, - и что дальше?.. С одной стороны это вроде и правильно, с другой - это же не десятка на самом деле! ![]() ![]() -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Рустам |
![]()
Сообщение
#15
|
Новичок ![]() Группа: Пользователи Сообщений: 40 Пол: Мужской Репутация: ![]() ![]() ![]() |
Как мне объясняли... что вот в 10 системе.. 123 например 1*102+2*101+3*100
а вот -123 в -10 это -1*1*102+2*101+3*100 вот это всё что я уяснил из её рассказа.) Не знаю насколько это верно...всё таки учитель можно доверять ...наверное... |
Lapp |
![]()
Сообщение
#16
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Как мне объясняли... что вот в 10 системе.. 123 например 1*102+2*101+3*100 Безусловно верно.а вот -123 в -10 это -1*1*102+2*101+3*100 вот это всё что я уяснил из её рассказа.) Либо ты плохо уяснил, либо плохой рассказ был..Не знаю насколько это верно...всё таки учитель можно доверять ...наверное... угу, наверное.. Доверяй да проверяй.Значица так, смотри и запоминай ![]() -123-10 = -( 1*(-10)2+2*(-10)1+3*(-10)0 ) - и никак иначе. А если ты хочешь число -12310 представить в СС-10, то ты (как ты и писал в своем самом первом мессадже) должен найти соответствующие кэффициенты (проще гря, цифры). Именно это и делает моя программа. Причем, как для отрицательных, так и для положительных, и вполне успешно ![]() -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Рустам |
![]()
Сообщение
#17
|
Новичок ![]() Группа: Пользователи Сообщений: 40 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ууу да я отсюда больше узнаю чем от нашей училки)) спасибо)
|
![]() ![]() |
![]() |
Текстовая версия | 18.07.2025 14:04 |