Pascal. паскаль. написать программу, которая меняет знак всех положительных элементов, расположенных в строке и столбце матрицы с максимальным элементом
Program gt; var a:array[1..100,1..100]of integer; n,m,i,j,max,h,l:integer; begin read(n,m); max:=-maxint; for i:=1 to n do for j:=1 to m do begin read(a[i,j]); if(a[i,j]>max)then begin max:=a[i,j]; h:=i;l:=j; end; for j:=1 to m do a[h,j]:=-a[h,j]; for i:=1 to n do a[i,l]:=-a[i,l]; a[h,l]:=-a[h,l]; for i:=1 to n do begin for j:=1 to m do write(a[i,j],' '); writeln; end; end.
1. Количество цвета N=2^i, где i - глубина цвета N=2^4 N=16 ответ: 16 цветов
2. Объем видеопамяти 1 страницы = количество пикселей*глубину цвета Глубину цвета i определим из формулы N=2^i, где N-количество цветов 16=2^i i=4 Тогда объем видеопамяти= 640*350*4= 896000 бит Так как страниц 2, то полученное значение умножим на 2 896000*2= 1792000 бит = 218,75 Кбайт ответ: 218,75 Кбайт
3. Информационный объем изображения = количество пикселей*глубину цвета Глубину цвета i определим из формулы N=2^i, где N-количество цветов Черно-белое изображение имеет 2 цвета 2=2^i i=1 Объем изображения= 10*10*1= 100 бит ответ: 100 бит
4. Информационный объем изображения = количество пикселей*глубину цвета Глубину цвета i определим из формулы N=2^i, где N-количество цветов 256=2^i i=8 Объем изображения= 10*10*8= 800 бит
{ процедуру с параметрами, обеспечивающую перестановку двух заданных строк матрицы написан на PascalABC.NET но должно работать в TurboPascal }
PROGRAM A5; const rows = 5; cols = 8;
type matrix = array [1..rows,1..cols] of integer;
var AR : matrix;// рабочая матрица i,j:byte;// счетчики k1,k2:byte;// номера строк
// обмен строк матрицы местами procedure SwapRows(row1:byte; row2:byte; var m:matrix); var i,j:byte; ax:integer; begin for i:=1 to cols do begin ax := m[row1,i]; m[row1,i] := m[row2,i]; m[row2,i] := ax; end; end;
// выравнивание по правому краю - пробелы перед числом function trailSpace(num:byte; len:byte):string; var s:string; i:byte; begin s := ''+num; i := s.Length; while (i<len) do begin s := ' ' + s; i := i+1; end; trailSpace := s; end;
// вывод матрицы на экран procedure displayMatrix(var m:matrix); var i,j:byte; begin for i:=1 to rows do begin write('Строка ', i, ': '); for j:=1 to cols do begin write(); write(trailSpace(AR[i,j], 4) ); end; writeln(' '); end; end;
BEGIN // заполнение массива и вывод его на экран randomize(); for i:=1 to rows do for j:=1 to cols do AR[i,j] := random(256); writeln('Начальный массив'); displayMatrix(AR);
// ввод данных writeln(' '); write('введите номер строк которые следует поменять местами: '); readln(k1, k2);
if (k1<=rows) and (k2<=rows) then begin SwapRows(k1, k2, AR); writeln('Результат'); displayMatrix(AR); end else writeln('Номера строк должны быть меньше ', rows); END.
var a:array[1..100,1..100]of integer;
n,m,i,j,max,h,l:integer;
begin
read(n,m);
max:=-maxint;
for i:=1 to n do
for j:=1 to m do
begin
read(a[i,j]);
if(a[i,j]>max)then begin
max:=a[i,j];
h:=i;l:=j;
end;
for j:=1 to m do
a[h,j]:=-a[h,j];
for i:=1 to n do
a[i,l]:=-a[i,l];
a[h,l]:=-a[h,l];
for i:=1 to n do
begin
for j:=1 to m do
write(a[i,j],' ');
writeln;
end;
end.