Программирование паскаль. Где-то ошибка. Даже просто уже посреди программы понавставлял write(OutPut, '2'); и даже в самом конце оно есть, но файл output все равно пустым создаётся, без текста.
var
s, y, h, n, x: Integer;
InPut, OutPut: Text;
begin
assign(InPut,'c:\input.txt');
assign(OutPut,'c:\output.txt');
reset(InPut);
rewrite(OutPut);
read(InPut, y);
write(OutPut, '1');
for var i:=1 to y do
begin
read(InPut, s);
if s mod 2 = 0 then write(OutPut, s, ' ');
end;
writeln(OutPut);
reset(InPut);
read(InPut, y);
for var i:=1 to y do
begin
read(InPut, s);
if s mod 2 <> 0 then writeln(OutPut);
write(OutPut, s, ' ');
end;
for h:=1 to y do begin
if s mod 2=0 then
n:=n+1;
if s mod 2<>0 then
x:=x+1;
end;
if (n>x) then writeln(OutPut, 'YES')
else writeln(OutPut, 'NO');
write(OutPut, '2');
close(InPut);
close(OutPut);
end.
Ноль - прекрасная подсказка! При поразрядном сложении в младшем разряде 5+2=0. На самом же деле 5+2 были равны 10, ноль записали, а единица пошла в следующий разряд. Но мы знаем, что 5+2 =7 в десятичной системе, следовательно основание системы равно семи, потому что в любой системе счисления ноль с переносом единицы получается тогда, когда число равно основанию этой системы. Именно поэтому ноль - прекрасная подсказка.
Итак, основание системы счисления 7.
Проверим. 25₇+22₇=50₇ - как и следовало ожидать, все верно.
2. Мальчиков в кассе 25₇ = 2·7¹+5·7⁰ = 14+5 = 19₁₀
Девочек в классе 22₇ = 2·7¹+2·7⁰ = 14+2 = 16₁₀
Всего учащихся 50₇ = 5·7¹+0·7⁰ = 35₁₀
Проверка: 19+16=35
Объяснение:
Допустим, у нас есть сообщение «habr», которое необходимо передать без ошибок. Для этого сначала нужно наше сообщение закодировать при Кода Хэмминга. Нам необходимо представить его в бинарном виде.На этом этапе стоит определиться с, так называемой, длиной информационного слова, то есть длиной строки из нулей и единиц, которые мы будем кодировать. Допустим, у нас длина слова будет равна 16. Таким образом, нам необходимо разделить наше исходное сообщение («habr») на блоки по 16 бит, которые мы будем потом кодировать отдельно друг от друга. Так как один символ занимает в памяти 8 бит, то в одно кодируемое слово помещается ровно два ASCII символа. Итак, мы получили две бинарные строки по 16 битбит. распараллеливается, и две части сообщения («ha» и «br») кодируются независимо друг от друга. Рассмотрим, как это делается на примере первой части.
Прежде всего, необходимо вставить контрольные биты. Они вставляются в строго определённых местах — это позиции с номерами, равными степеням двойки. В нашем случае (при длине информационного слова в 16 бит) это будут позиции 1, 2, 4, 8, 16. Соответственно, у нас получилось 5 контрольных бит (выделены красным цветом)Таким образом, длина всего сообщения увеличилась на 5 бит. До вычисления самих контрольных бит, мы присвоили им значение «0».