IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Перевод числа из 10 в -10 систему счисления, Перевод числа из 10 в -10 систему счисления
Рустам
сообщение 5.04.2009 15:56
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 40
Пол: Мужской

Репутация: -  1  +


в качестве основания позиционной системы счисления может быть взято отрицательное число. Например можно рассмотреть систему с основанием -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
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Lapp
сообщение 8.04.2009 22:43
Сообщение #2


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Рустам @ 8.04.2009 19:32) *
я только сдал ту программу которая без учёта отрицательных чисел...

А почему отрицательные не прокатили? blink.gif

Цитата(Рустам @ 8.04.2009 19:32) *
Кстати насчёт не однозначности...Учительница говорила с точки зрения алгебры чисел должно быть например
12(в 10) = 192(в -10)
а -12 = -192 ...вот а с точки зрения алгебры чисел -12= 28 будет неверным))) так что спасибо))
Не совсем понял тебя. Напиши основания во втором равенстве (кстати, используй тэг SUB для индексов). Я говорил про то, что одно и то же число (просто число, без привязки к системе счисления, как пять пирожков) в СС с основанием -10 может иметь больше, чем одно представление. В пример привел минус единицу (что означает, что ты должен один пирожок Пете). Это число в СС-10 представляется двумя способами: как -1-10 и как 19-10.
Но, повторяю, я не вижу тут большого греха. Никто не обязывал СС быть однозначной. Просто лишний повод не пользоваться этой СС на практике)).

Стоп.. Если убрать запись с лидирующим минусом, то однозначность восстановится.. Ага, понял. Ты это имел в виду? Поэтому отрицательные не прокатили? Тебе годится только запись без минуса?.. Хорошо, я напишу прожку..

Цитата(amega @ 8.04.2009 21:10) *
с точки зрения дичитичной 1+1 =2 , а двочной 1+1=10, для каждой системы счисления своя алгебра, если взять шеснадцатиричную ... в диситичной нетже а б с д е ф, если есть неоднозначность , то нельзя ее спихивать на алгебру...
amega, потрудись вникнуть перед тем, как отвечать в тему. Речь совершенно не об этом.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 9.04.2009 4:05
Сообщение #3


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Lapp @ 8.04.2009 23:43) *
запись без минуса?.. Хорошо, я напишу прожку.
Вот, написал.. Если честно - недоволен своим творением. Все как-то через ж..
Суть такова: если число меньше нуля, то я конструирую число p+a, где p - минимальная нечетная степень десяти, превосходящая |a|. Это число я перевожу в СС-10. А число (-p) в СС-10 будет представлено единицей в нечетной позиции. Сложить числа (p+a) и (-p) будет означать просто добавить единицу в ту самую нечетную позицию. Это я и делаю.
var
b: array[1..100]of byte;
i,l,d,q: integer;
a,c,p: LongInt;
Neg: boolean;

begin
Write('Type in a number: ');
ReadLn(a);
Neg:=a<0;
if Neg then begin
a:=-a;
p:=10;
q:=1;
while p<a do begin
p:=p*100;
q:=q+2
end;
a:=p-a
end;
l:=0;
while a>0 do begin
d:=a mod 10;
a:=a div 10;
Inc(l);
if Odd(l) or (d=0) then b[l]:=d else begin
b[l]:=10-d;
a:=a+1
end
end;
if l=0 then begin
l:=1;
b[1]:=0
end;
if Neg then begin
l:=q+1;
if l<q then b[q]:=0;
b[l]:=1;
end;
Write('-10 based notation: ');
for i:=l downto 1 do Write(b[i]);
WriteLn;
Write(' Back to normal: ');
c:=0;
for i:=l downto 1 do c:=c*(-10)+b[i];
WriteLn©
end.

Должен быть более логичный способ, не так сильно зависящий от знака числа. Он же, думаю, и более простой. Но слова "более простая программа" абсолютно не значат, что ее проще написать.. smile.gif

Да, и еще один исправил баг: если введенное число было равно нулю, то вообще ничего не выводилось. В принципе, это правильно, но лучше все же придерживаться общепринятых обозначений smile.gif.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Рустам   Перевод числа из 10 в -10 систему счисления   5.04.2009 15:56
amega   тоесть ты имееш ввиду просто раскласти в виде поли...   5.04.2009 16:43
Рустам   тоесть ты имееш ввиду просто раскласти в виде пол...   5.04.2009 16:47
Lapp   Дано целое число n. ПОстроить представлени n в сис...   6.04.2009 0:38
Рустам   Спасибо огромное!!! но почему для отри...   6.04.2009 4:30
Lapp   Спасибо огромное!!! но почему для отри...   6.04.2009 7:44
Рустам   Огромное спасибо)) я только сдал ту программу кото...   8.04.2009 18:32
amega   ойойой а алгебра для какой системы счисления 10, д...   8.04.2009 20:10
Lapp   я только сдал ту программу которая без учёта отриц...   8.04.2009 22:43
Lapp   запись без минуса?.. Хорошо, я напишу прожку.Вот,...   9.04.2009 4:05
volvo   Андрей, что-то не так... Type in a number: 124 -...   9.04.2009 12:20
Lapp   -10 восстанавливается нормально, -451 тоже. А все ...   10.04.2009 0:23
Рустам   Ничё се прожку я дал....Спасибо всем огромное я сд...   10.04.2009 21:07
Lapp   я сдал прогу уже давно!!! Lapp тебе от...   11.04.2009 4:07
Рустам   Как мне объясняли... что вот в 10 системе.. 123 н...   11.04.2009 9:01
Lapp   Как мне объясняли... что вот в 10 системе.. 123 н...   11.04.2009 9:38
Рустам   Ууу да я отсюда больше узнаю чем от нашей училки))...   12.04.2009 11:39


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.07.2025 14:22
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"