Program ZADACHA; var a,b,c,d,k:integer; begin c:=0; k:=0; d:=0; repeat begin readln(a); b:=a; c:=c+1; if (a<-3) then begin d:=b+a; k:=k+1; end; end; until c=8; writeln(d);//ETO SUMMA writeln(k);//Eto KOLICHESTVO readln; end.
type R = record v: integer; p: integer end; mR = array[1..n] of R;
function SummOfDigits(n: integer): integer; { Сумма цифр в трехзначном числе } begin SummOfDigits := (n div 100) + ((n mod 100) div 10) + (n mod 10) end;
procedure Swp(var a, b: R); { Меняет местами элементы a и b } var t: R; begin t.v := a.v; t.p := a.p; a.v := b.v; a.p := b.p; b.v := t.v; b.p := t.p end;
procedure Shell(var a: mR; n: integer); { сортировка методом Шелла } var i, j, step: integer;
begin step := n div 2; while step > 0 do begin for j := n - step downto 1 do begin i := j; while i <= n - step do begin if a[i].v > a[i + step].v then Swp(a[i], a[i + step]); i := i + step end end; step := step div 2 end end;
var a: array[1..n] of integer; b: mR; i: integer;
begin Randomize; Writeln('*** Исходные элементы массива ***'); for i := 1 to n do begin a[i] := Random(900) + 100; b[i].v := SummOfDigits(a[i]); b[i].p := i; Write(a[i]:4) end; Writeln; Shell(b, n); Writeln('*** Упорядоченные по возрастанию суммы цифр элементы массива ***'); for i := 1 to n do begin Write(a[b[i].p]:4) end; Writeln end.
Разделим исходный код на группы по 4 разряда. 111011 2 = 0011 1011 2 Затем заменяем каждую группу на код из таблицы. Двоичная СС шестнадцатеричная СС 1101D1110E1111F Получаем число: 0011 1011 2 = 3B16 Переводим дробную часть числа. Для этого разделим исходный код на группы по 4 разряда. 10011 2 = 1001 1000 2 Затем заменяем каждую группу на код из таблицы. Получаем число: 1001 1000 2 = 98 16 В итоге получаем число: 3B.98 16
делим 32 на 8 до наименьшего ответа и остатка.Остаток от деления записываем в обратном порядке. Получаем число в 8-ой системе счисления: 040 32 = 040 8 Для перевода дробной части числа последовательно умножаем дробную часть на основание 8. В результате каждый раз записываем целую часть произведения. 0.25*8 = 2 (целая часть 2) 0*8 = 0 (целая часть 0) 0*8 = 0 (целая часть 0) 0*8 = 0 (целая часть 0) Получаем число в 8-ой системе счисления: 2000 0.25 = 2000 8 В итоге получаем число: 040.2000 8
Program ZADACHA;
var a,b,c,d,k:integer;
begin
c:=0;
k:=0;
d:=0;
repeat
begin
readln(a);
b:=a;
c:=c+1;
if (a<-3)
then
begin
d:=b+a;
k:=k+1;
end;
end;
until c=8;
writeln(d);//ETO SUMMA
writeln(k);//Eto KOLICHESTVO
readln;
end.