Каеой объем видеопамяти необходим для хранения изображения при условии, что разрешающая дисплея равна 640х350 пиксилей, а количество используемых цветов 16? (ответ ввразите в кбайтах)
Почти эквивалентен. for i := i1 to i2 do writeln(ord(i)) (у вас опечатка в writeln?) выводит ord(i1), ord(i1 + 1), ord(i1 + 2), ..., ord(i2 - 1), ord(i2).
Во втором случае сначала i = i1, выводится ord(i1), и i увеличивается на 1. Так будет продолжаться до тех пор, пока i после увеличения не станет больше i2, т.е. (если всё целое) i2 + 1.
Выводы будут совпадать, но переменная i после выхода из цикла может принимать разные значения: в первом случае она равна i2, во втором i2 + 1. Однако лучше переменную цикла вне цикла не использовать, тогда никакой разницы между двумя конструкциями не будет.
Const n=20; var a:array[1..n] of integer; i,j,t,x,i1,i2:integer; begin Randomize; Writeln('Исходный массив:'); for i:=1 to n do begin a[i]:=Random(21); Write(a[i],' ') end; Writeln; for i:=1 to n-1 do for j:=1 to n-i do if a[j]<a[j+1] then begin t:=a[j]; a[j]:=a[j+1]; a[j+1]:=t end; Writeln('Отсортированный массив:'); for i:=1 to n do Write(a[i],' '); Writeln; write('x = '); readln(x); i1:=1; i2:=n; repeat i:=(i1+i2) div 2; if a[i]>x then i1:=(i1+i2) div 2+1; if a[i]<x then i2:=(i1+i2) div 2-1; until (a[i]=x)or(i1>i2); if a[i]=x then begin writeln('Искомый(ые) номер(а) элемента(ов):'); while (i>0)and(a[i]=x) do i:=i-1; i:=i+1; while (i<=n)and(a[i]=x) do begin write(i,' '); i:=i+1; end; end else writeln('Элемент не найден'); writeln; end.
Немного исправлю:
640 х 350= 224000
16 = = 4 бит
4 * 224000*2 = 1792000 бит = 224000 байт = 218,75 Кбайт