![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
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 - -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Рустам |
![]()
Сообщение
#5
|
Новичок ![]() Группа: Пользователи Сообщений: 40 Пол: Мужской Репутация: ![]() ![]() ![]() |
Спасибо огромное!!! но почему для отрицательных не работает... |
Lapp |
![]()
Сообщение
#6
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Спасибо огромное!!! но почему для отрицательных не работает... Хм.. Про отрицательные я как-то не подумал даже.. ![]() Но только проблемы никакой нет. Перед началом преобразования запоминаешь знак числа a. После преобразования приписываешь его результату. Вот так примерно: var (Не проверял, просто исправил) Меня, если честно, больше смущает совсем другое - неоднозначность представления. Например: -110 = -1-10 = 19-10 Но это, по-видимому, такое свойство системы счисления с отрицательным основанием, которое нужно просто принять, хоть оно и необычно ![]() Сообщение отредактировано: Lapp - -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Рустам |
![]()
Сообщение
#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 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ууу да я отсюда больше узнаю чем от нашей училки)) спасибо)
|
![]() ![]() |
![]() |
Текстовая версия | 1.09.2025 20:18 |