Объем занимаемый изображением в видеопамяти определяется по формуле:
V=(a*b)*i а и b - это параметры разрешения изображения (сколько точек в изображении) в нашем случае а=300 b=200. i - количество бит которые требуются для кодирования цвета каждой точки. 4 цвета кодируются 2-мя битами. Следовательно: 200*300*2=120000 бит занимает 4-х цветное изображение в видео памяти. 16 цветов кодируются 4-мя битами. Находим количество точек(16 цветов) которое можно сохранить в видеопамяти. вводи Х: Х - (a*b) 120000=x*4 x=30000 ответ: изображение размером в 30000 точек.
// PascalABC.NET 3.2, сборка 1389 от 01.03.2017 // Внимание! Если программа не работает, обновите версию!
begin var a:=ReadArrInteger('Вводите',ReadInteger('n=')); a:=a.Where(x->x>=0).ToArray; a.Println end.
Пример n= 5 Вводите 3 -2 0 -1 5 8 3 0 5
То же, в терминах Pascal ABC ("по-школьному")
const k=50; var n,i,m:integer; a,t:array[1..k] of integer; begin Write('n='); Read(n); Write('Вводите: '); for i:=1 to n do Read(a[i]); m:=0; for i:=1 to n do if a[i]>=0 then begin m:=m+1; t[m]:=a[i] end; n:=m; for i:=1 to n do begin a[i]:=t[i]; Write(a[i],' ') end; Writeln end.
Думаю, есть о чем подумать: почему в школе учат писать длинно и сложно?
V=(a*b)*i
а и b - это параметры разрешения изображения (сколько точек в изображении) в нашем случае а=300 b=200.
i - количество бит которые требуются для кодирования цвета каждой точки.
4 цвета кодируются 2-мя битами.
Следовательно:
200*300*2=120000 бит занимает 4-х цветное изображение в видео памяти.
16 цветов кодируются 4-мя битами.
Находим количество точек(16 цветов) которое можно сохранить в видеопамяти.
вводи Х:
Х - (a*b)
120000=x*4
x=30000
ответ: изображение размером в 30000 точек.
// Внимание! Если программа не работает, обновите версию!
begin
var a:=ReadArrInteger('Вводите',ReadInteger('n='));
a:=a.Where(x->x>=0).ToArray; a.Println
end.
Пример
n= 5
Вводите 3 -2 0 -1 5 8
3 0 5
То же, в терминах Pascal ABC ("по-школьному")
const
k=50;
var
n,i,m:integer;
a,t:array[1..k] of integer;
begin
Write('n='); Read(n);
Write('Вводите: ');
for i:=1 to n do Read(a[i]);
m:=0;
for i:=1 to n do
if a[i]>=0 then begin
m:=m+1;
t[m]:=a[i]
end;
n:=m;
for i:=1 to n do begin
a[i]:=t[i];
Write(a[i],' ')
end;
Writeln
end.
Думаю, есть о чем подумать: почему в школе учат писать длинно и сложно?