mos197653
?>

Нужно перевести данное творение из Питона в паскаль Задание вот: Яркости пикселей рисунка закодированы числами от 0 до 255 в виде матрицы. Преобразовать рисунок в черно-белый по следующему алгоритму: вычислить среднюю яркость пикселей по всему рисунку все пиксели, яркость которых меньше средней, сделать черными (записать код 0), а остальные – белыми (код 255 Код на питоне: import random A = [] imax = 0 jmax = 0 imin = 0 jmin = 0 x = int(input("размер = ")) for i in range(x): A.append([]) for c in range(x): A[i].append(random.randint(10, 99)) min = A[0][0] max = A[0][0] print('Матрица А:') for i in range(x): print() for c in range(x): print(" ", A[i][c], end = ' ') for i in range(x): print() for c in range(x): if(A[i][c] > max): max = A[i][c] imax = i+1 jmax = c+1 if(A[i][c] < min): min = A[i][c] imin = i+1 jmin = c+1 Заранее большое!

Информатика

Ответы

Ryazanova1575
Хорошо, я могу помочь вам перевести данный код из языка Python в Pascal.

Перед тем, как начать переводить код, стоит отметить, что в языке Pascal индексы массивов начинаются с 1, в отличие от Python, где они начинаются с 0. Также, в Pascal нет готовой функции для генерации случайных чисел, поэтому нам придется вручную реализовать эту функцию.

Вот переведенный код на язык Pascal:

```Pascal
program ConvertToBlackAndWhite;

type
Matrix = array of array of Integer;

var
A: Matrix;
imax, jmax, imin, jmin, x, i, c, currentPixel, min, max, avg: Integer;

procedure GenerateRandomMatrix(var arr: Matrix; size: Integer);
var
i, c: Integer;
begin
SetLength(arr, size, size);
for i := 0 to size-1 do
for c := 0 to size-1 do
arr[i, c] := Random(90) + 10; // генерируем случайное число от 10 до 99
end;

procedure PrintMatrix(arr: Matrix; size: Integer);
var
i, c: Integer;
begin
for i := 0 to size-1 do
begin
for c := 0 to size-1 do
Write(' ', arr[i, c]);
Writeln;
end;
end;

begin
Randomize;
Write('Размер = ');
Readln(x);

SetLength(A, x, x);
GenerateRandomMatrix(A, x);

min := A[0, 0];
max := A[0, 0];

Writeln('Матрица A:');
PrintMatrix(A, x);

for i := 0 to x-1 do
begin
for c := 0 to x-1 do
begin
currentPixel := A[i, c];
if currentPixel > max then
begin
max := currentPixel;
imax := i+1;
jmax := c+1;
end;

if currentPixel < min then
begin
min := currentPixel;
imin := i+1;
jmin := c+1;
end;

avg := avg + currentPixel;
end;
end;

avg := avg div (x*x); // вычисляем среднюю яркость пикселей

Writeln('Средняя яркость = ', avg);

for i := 0 to x-1 do
begin
for c := 0 to x-1 do
begin
if A[i, c] < avg then
A[i, c] := 0 // черный цвет
else
A[i, c] := 255; // белый цвет
end;
end;

Writeln('Черно-белая матрица A:');
PrintMatrix(A, x);
Readln;
end.
```

Я добавил комментарии к коду, чтобы было понятно, что происходит на каждом шаге. Пожалуйста, дайте мне знать, если нужна дополнительная помощь или пояснения.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Нужно перевести данное творение из Питона в паскаль Задание вот: Яркости пикселей рисунка закодированы числами от 0 до 255 в виде матрицы. Преобразовать рисунок в черно-белый по следующему алгоритму: вычислить среднюю яркость пикселей по всему рисунку все пиксели, яркость которых меньше средней, сделать черными (записать код 0), а остальные – белыми (код 255 Код на питоне: import random A = [] imax = 0 jmax = 0 imin = 0 jmin = 0 x = int(input("размер = ")) for i in range(x): A.append([]) for c in range(x): A[i].append(random.randint(10, 99)) min = A[0][0] max = A[0][0] print('Матрица А:') for i in range(x): print() for c in range(x): print(" ", A[i][c], end = ' ') for i in range(x): print() for c in range(x): if(A[i][c] > max): max = A[i][c] imax = i+1 jmax = c+1 if(A[i][c] < min): min = A[i][c] imin = i+1 jmin = c+1 Заранее большое!
Ваше имя (никнейм)*
Email*
Комментарий*