Для хранения растрового изображения размером 200 х 400 пикселей отвели 75, 125 кбайт памяти. каково максимальное возможное количество цветов в палитре изображения
1. const n=20; var a: array[1..n] of integer; max,imax,i,j,t: integer; begin randomize; writeln('исходный массив: '); for i: =1 to n do begin a[i]: =random(51)-25; write(a[i],' ') end; writeln; max: =a[1]; imax: =1; for i: =2 to n do if a[i]> max then begin max: =a[i]; imax: =i; end; writeln('max = ',max); for i: =1 to imax-1 do for j: =1 to imax-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; end. пример: исходный массив: -5 -17 -19 4 -10 16 21 -23 22 24 -5 19 11 -24 6 -25 13 3 9 0 max = 24 отсортированный массив: -23 -19 -17 -10 -5 4 16 21 22 24 -5 19 11 -24 6 -25 13 3 9 0 2. const n=20; var a: array[1..n] of integer; min,imin,i,j,t: integer; begin randomize; writeln('исходный массив: '); for i: =1 to n do begin a[i]: =random(51)-25; write(a[i],' '); end; writeln; min: =a[1]; imin: =1; for i: =2 to n do if a[i]< min then begin min: =a[i]; imin: =i; end; writeln('min = ',min); for i: =1 to n-imin-1 do for j: =imin 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; end. пример: исходный массив: 3 -24 -16 -9 -25 3 -25 17 -22 -3 8 2 -7 -8 -8 -24 -23 12 24 -24 min = -25 отсортированный массив: 3 -24 -16 -9 -25 -25 -24 -24 -23 -22 -8 -8 -7 -3 2 3 8 12 17 24 3. const n=20; var a: array[1..n] of integer; max,imax,min,imin,i,j,t: integer; begin randomize; writeln('исходный массив: '); for i: =1 to n do begin a[i]: =random(51)-25; write(a[i],' ') end; writeln; max: =a[1]; imax: =1; min: =a[1]; imin: =1; for i: =2 to n do begin if a[i]> max then begin max: =a[i]; imax: =i; end; if a[i]< min then begin min: =a[i]; imin: =i; end; end; writeln('max = ',max,' min = ',min); if imax> imin then begin for i: =1 to imax-imin-1 do for j: =imin to imax-i do if a[j]> a[j+1] then begin t: =a[j]; a[j]: =a[j+1]; a[j+1]: =t end end else begin for i: =1 to imin-imax-1 do for j: =imax to imin-i do if a[j]< a[j+1] then begin t: =a[j]; a[j]: =a[j+1]; a[j+1]: =t end; end; writeln('отсортированный массив: '); for i: =1 to n do write(a[i],' '); writeln; end. пример: исходный массив: -12 13 1 -17 -13 -10 23 5 8 -11 -9 -2 17 19 10 -5 14 10 -20 -9 max = 23 min = -20 отсортированный массив: -12 13 1 -17 -13 -10 23 19 17 14 10 10 8 5 -2 -5 -9 -11 -20 -9
MArat
11.03.2021
Pascalabc.net 3.3.5, сборка 1650 от 01.04.2018 внимание! если программа не работает, обновите версию! procedure bubblesort(a: array of integer; descending: boolean: =false; // нужна ли сортировка по невозрастанию u: integer: =-1; // начальный индекс v: integer: =-1); // конечный индекс // простая пузырьковая сортировка элементов с индексами с u по v begin // обеспечим корректность параметров u и v if u< 0 then u: =0; var n: =a.length; if (v< 0) or (v> =n) then v: =n-1; if u> v then swap(u,v) else if u=v then exit; // собственно, сортировка if descending then begin // по невозрастанию for var i: =v-1 downto u do for var j: =u to i do if a[j]< a[j+1] then swap(a[j],a[j+1]) end else begin for var i: =v-1 downto u do // по неубыванию for var j: =u to i do if a[j]> a[j+1] then swap(a[j],a[j+1]) end end; begin write(': '); var a: =arrrandom; a.println; var (imin,imax): =(a.indexmin,a.indexmax); var b: =copy(a); write('1: '); bubblesort(b,false,0,imax); b.println; b: =copy(a); write('2: '); bubblesort(b,false,imin); b.println; b: =copy(a); write('3: '); bubblesort(b,true,imax,imin); b.println end. пример : 70 61 10 72 17 84 19 35 83 47 1: 10 17 61 70 72 84 19 35 83 47 2: 70 61 10 17 19 35 47 72 83 84 3: 70 61 84 72 17 10 19 35 83 47