Есептеуіш техника — есептеу және мәліметтерді өңдеу процессінің маңызды компоненті болып табылады. Есептеуге арналған алғашқы құрал ретінде есептеу таяқшаларын атауға болады, бұл құрал қазіргі кезде де бастауыш сынып оқушыларын есепке үйрету үшін қолданылады. Даму жолында бұл құралдар күрделене түсті (мысалы, финикиялық саз фигуралары).
Уақыт өте келе, қарапайым құрылғылардан күрделі құралдар пайда бола бастады: абак, логарифмдік сызғыш, механикалық арифмометр, электронды компьютер. Алғашқы есептеуіш құрылғылардың қарапайымдылығына қарамастан, олармен жұмыс жасауға үйренген адам, қазіргі заманғы калькуляторларды пайдаланғаннан да жылдам есептер жүргізе алады. Әрине, қазіргі заманғы есептеуіш құрылғыларының жұмыс өнімділігі және есептеу жылдамдығы ең жылдам есептегіш адамның өзін шаң қаптырып кетеі.
т.к. 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.