Решить упражнение, четко расписать решение(8 класс, Информатика) 1. Напишите наименьшее целое число x, для которого истинно высказывание:
НЕ (X 16) И НЕ (X нечётное).
2. Напишите наименьшее целое число x, для которого истинно высказывание:
НЕ (X 16) И НЕ (X нечётное).
3. Напишите наименьшее число X, для которого истинно высказывание:
(X > 16) И НЕ (X нечётное).
Я- перебила клавиатура и начала быстро шурша клавишами кричать во весь голос. Как вы сможете вводить информацию если не будет меня? Да вы даже свои имена не напишете.. По этому я должна быть главной.
Погоди ка Клава перебил процессор а ведь я тоже не дурак. Ну введешь информацию а кто будет обрабатывать её? Кто будет всё это рассчитывать, все эти биты байты мегабайты? По этому я тут подумал и вычислил себя самым главным.
Коллега дайте и мне сказать своё слово - сказала память. Как мне не изменяет моя терабайтная память ваши расчеты и ваши вводы информации без меня ровно слова на ветер. Да, да. Как вы будете помнить завтра то что вы сейчас обсуждаете сегодня. Я же ваш мемори. И по этому. Безусловно я являюсь самым главным органом.
Они спорили очень долго долго пока компьютер совсем не завис окончательно.
{
Возвращает 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)