7. Исполнитель Шифровальщик из одной цепочки символов получает новую цепочку следующим образом: Если длина цепочки нечётное число, Шифровальщик удаляет последний символ цепочки, а если чётная, то добавляет в начало цепочки букву Б. После этого каждая буква заменяется следующей за ней буквой в русском алфавите (A — на Б, Б — на в и т.д., а я – на А). д Этот алгоритм применили к слову ИЮНЬ. Какое слово получилось? Русский алфавит: .
т.к. n заранее не дано(и это все лишь фрагмент кода) то m при разных n будет получаться разный. n лежит в промежутке [-2;8]
потому, что тут m:=(l+r)div 2; при n<-2 получается индекс <0
и при n>8 в цикле индекс >7
а массив у нас всего 8 элементов
Поэтому в цикле я вывел все значения m при всех возможных значениях n
Надеюсь понятно объяснил.
при n=-2 m=0
при n=-1 m=0
при n=0 m=0
при n=1 m=1
при n=2 m=2
при n=3 m=3
при n=4 m=4
при n=5 m=5
при n=6 m=6
при n=7 m=6
при n=8 m=6
Pascal
var
a:array [0..7] of integer = (34, 16, 16, 2, 2, 0, -4, -4);
l, n, m, key, r:integer;
flag:boolean;
begin
for n:=-2 to 8 do begin
key:=-4;
L:=1;
r:=n;
flag:=false;
Repeat
m:=(l+r)div 2;
if a[m]>key then
l:=m+1
else
if a[m]=key then
flag:=true
else
r:=m-1;
until flag or (l>r);
writeln('при n=',n,' m=', m);
end;
end.
Var a1,a2,a3,a4,t1,t2,t3,p,d,vp,b: Integer;
begin
writeln ('программа вычисляет норму для данного ученика');
writeln ('введи массу учебника 1');readln (a1);
writeln ('введи массу учебника 2');readln (a2);
writeln ('введи массу учебника 3');readln (a3);
writeln ('введи массу тетради 1');readln (t1);
writeln ('введи массу тетради 2');readln (t2);
writeln ('введи массу тетради 3');readln (t3);
writeln ('введи массу пенала');readln (p);
writeln ('введи массу дневника');readln (d);
writeln ('введи массу портфеля');readln(vp);
b:=a1+a2+a3+a4+t1+t2+t3+p+d+vp;writeln ('общая масса портфеля= ' b);
if (b<=5) then writeln ('норма') else writeln ('ненорма');
readln;
end.