Дан вещественный массив а[n][м], все элементы которого различны. в каждой строке найти элемент с наименьшим значением, а затем среди найденных элементов выбрать наибольший. вывести на экран индексы этого элемента. написать программу на с++
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.
#include <bits/stdc++.h>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
double a[n][m];
for (int i = 0; i < n; ++i)
for (int j = 0; j < m; ++j)
cin >> a[i][j];
int mxi = 0, mxj = 0;
for (int i = 0; i < n; ++i) {
int mnj = 0;
for (int j = 1; j < m; ++j)
if (a[i][j] < a[i][mnj]) mnj = j;
if (a[i][mnj] > a[mxi][mxj]) {
mxi = i;
mxj = mnj;
}
}
cout << (mxi + 1) << " " << (mxj + 1) << endl;
return 0;
}
ТестВвод:
4 5
1 2 3 4 5
0 1 2 3 4
0 0 0 0 -1
16 32 28 17 100
Вывод:4 1
Пояснение:Минимальные элементы в каждой строке: 1(1;1), 0(2;1), -1(3;5), 16(4;1)
Максимальным среди них является число 16, которое имеет координаты 4 1 (1-индексация).