Наверное нам надо все таки определить кто из нас главный.- подумав сказал процессор. Ну что ж, Я не против продолжили клавиатура и память. Я думаю что самым главным органом является ... Я- перебила клавиатура и начала быстро шурша клавишами кричать во весь голос. Как вы сможете вводить информацию если не будет меня? Да вы даже свои имена не напишете.. По этому я должна быть главной. Погоди ка Клава перебил процессор а ведь я тоже не дурак. Ну введешь информацию а кто будет обрабатывать её? Кто будет всё это рассчитывать, все эти биты байты мегабайты? По этому я тут подумал и вычислил себя самым главным. Коллега дайте и мне сказать своё слово - сказала память. Как мне не изменяет моя терабайтная память ваши расчеты и ваши вводы информации без меня ровно слова на ветер. Да, да. Как вы будете помнить завтра то что вы сейчас обсуждаете сегодня. Я же ваш мемори. И по этому. Безусловно я являюсь самым главным органом. Они спорили очень долго долго пока компьютер совсем не завис окончательно.
Function Is3Base(s:string):Boolean; { Возвращает True, если строка представляет натуральное число в троичной системе счисления } const Dig3Base=['0'..'2']; var i,n:integer; err:boolean; begin n:=Length(s); if n=0 then Is3Base:=False else begin i:=n; repeat err:=not(s[i] in Dig3Base); Dec(i); until (i=0) or err; Is3Base:=not err end end;
procedure DigitsAlign(var s1,s2:string); { Дополняет слева нулями короткое слагаемое до длинного } var i,n,l1,l2:integer; begin l1:=Length(s1); l2:=Length(s2); if l1>l2 then for i:=l2+1 to l1 do s2:='0'+s2 else for i:=l1+1 to l2 do s1:='0'+s1 end;
function Add3Base(s1,s2:string):string; { Сложение на строках натуральных чмсел s1 и s2 в системе счисления по основанию 3 } var s:string; c0,i,ip,d:integer; begin c0:=Ord('0'); If not Is3Base(s1) then Add3Base:=s1+' не троичное' else if not Is3Base(s2) then Add3Base:=s2+' не троичное' else begin DigitsAlign(s1,s2); ip:=0; s:=''; for i:=Length(s1) downto 1 do begin d:=Ord(s1[i])+Ord(s2[i])-2*c0+ip; if d>2 then begin ip:=1; d:=d-3 end else ip:=0; s:=Chr(d+c0)+s end; if ip=1 then s:='1'+s; Add3Base:=s end end;
var s1,s2,sr:string; begin Write('Введите первое слагаемое в троичной системе: '); Readln(s1); Write('Введите второе слагаемое в троичной системе: '); Readln(s2); Writeln(s1,'(3) + ',s2,'(3) = ',Add3Base(s1,s2),'(3)') end.
Тестовое решение: Введите первое слагаемое в троичной системе: 12101120122001 Введите второе слагаемое в троичной системе: 10020021122 12101120122001(3) + 10020021122(3) = 12111210220200(3)
Я- перебила клавиатура и начала быстро шурша клавишами кричать во весь голос. Как вы сможете вводить информацию если не будет меня? Да вы даже свои имена не напишете.. По этому я должна быть главной.
Погоди ка Клава перебил процессор а ведь я тоже не дурак. Ну введешь информацию а кто будет обрабатывать её? Кто будет всё это рассчитывать, все эти биты байты мегабайты? По этому я тут подумал и вычислил себя самым главным.
Коллега дайте и мне сказать своё слово - сказала память. Как мне не изменяет моя терабайтная память ваши расчеты и ваши вводы информации без меня ровно слова на ветер. Да, да. Как вы будете помнить завтра то что вы сейчас обсуждаете сегодня. Я же ваш мемори. И по этому. Безусловно я являюсь самым главным органом.
Они спорили очень долго долго пока компьютер совсем не завис окончательно.