В руки аналитика попала программа, которая выводит ** экран число 6420. Однако при...

0 голосов
28 просмотров

В руки аналитика попала программа, которая выводит на экран число 6420. Однако при копировании исходного кода произошла ошибка. Помогите ему определить, что должно было быть на месте символа █. var

i,size:integer;

r:array of char;

begin

size := ord('&') - ord('!');

setlength(r,size);

i := ord('+');

for i := (ord('$') - ord('$')) to
(ord(
'%') - ord('!')) do

begin

r[i] := chr(ord('█') - ord(#9)-
(ord(
'>') - ord('<')) * i);</p>

end;

r[ord('.')-ord('*')] :=
chr(ord(
'~')-ord('~'));

for i := 0 to size - 1 do

write(r[i]);

end.

Информатика (16 баллов) | 28 просмотров
Дан 1 ответ
0 голосов

Знак "?"

если все расписать, то получится так:

size=5
for i:=0 to 4 do
  begin 
   r[i]:= chr(█-9-2*i)
  end;
r[4]= пустой
for i:=0 to 4 do 
write(r[i]);

Число 6420.
htmlкод 6 - 54, и его по идее достаточно, чтобы найти 

вернемся на строчку, где был 

r[i]:= chr(█-9-2*i)
r[0]:= chr(█-9-2*0)=chr(54) 
█-9=54
█=54+9=63
Cмотрим, какой знак находится под номером 63, и это  "?"

и, действительно, если подставить ? в программу и проверить, в конце выдает 6420 :) 


image
(3.2k баллов)