Program PascalGuru;
{ ------------------------------------------------- }
function dec2hex(des: integer): string;
var
i, ost, n, l: integer;
s, s1, sbox, temp: string;
begin
n := 0;
i := 0;
s := '';
repeat
inc(n);
inc(i);
ost := des mod 16; // остаток
des := des div 16; // целая часть
if ost >= 10 then
begin
if ost = 10 then
s := s + 'A';
if ost = 11 then
s := s + 'B';
if ost = 12 then
s := s + 'C';
if ost = 13 then
s := s + 'D';
if ost = 14 then
s := s + 'E';
if ost = 15 then
s := s + 'F';
end
else
begin
str(ost, temp);
s := s + temp;
end;
until des = 0;
{ Переворачиваем содержимое }
n := 1;
l := length(s);
for i := 1 to (l div 2) do
begin
sbox := s[n];
s[n] := s[l + 1 - n];
s[l + 1 - n] := sbox[1];
inc(n);
end;
dec2hex := s;
end;
{ ------------------------------------------------- }
var
s: string;
i, n, p, summa: integer;
A: array [1 .. 50] of string;
begin
write('Vvedite stroku slov [cerez probely]:');
readln(s);
i := 1;
repeat
if copy(s, i, 2) = ' ' then
delete(s, i, 1)
else
inc(i);
until i > length(s); { оставили по 1 пропуску }
writeln;
writeln('Preobrazovannaya stroka: ', s);
i := 0;
repeat
inc(i);
p := pos(' ', s);
A[i] := copy(s, 1, p - 1);
delete(s, 1, p);
until p = 0;
n := i;
A[n] := s;
summa := 0;
for i := 1 to n do
if not odd(i) then
begin
s := A[i];
for p := 1 to length(s) do
summa := summa + ord(s[p]);
end;
writeln('Summa [10s]: ', summa);
writeln('Summa [16s]: ', dec2hex(summa));
readln;
end.