Другие языки программирования и технологии
Нужна помощь в решении задачки на паскале )
При решении задачи использовать процедуры и функции. Ввести случайным образом (используя функцию Random) двумерный массив чисел типа Byte. Число строк равно числу столбцов, размер задать с экрана, но меньше 30. Вывести на экран массив данных, повернуть его элементы на –90 градусов. Вывести на экран преобразованный массив. Сохранить в текстовом файле первый элемент преобразованного массива. Если это был массив а11 а12 а13, нужно получить а13 а23 а33 а21 а22 а23 а12 а22 а32 а31 а32 а33 а11 а21 а31
Как-то так:
const
Size = 30;
type
aType = array [1..Size, 1..Size] of Byte;
var
A : aType;
procedure InitArray;
var
Row, Col : Byte;
begin
Write('Введите размерность массива (до 30) : '); ReadLn(N);
Randomize;
for Row := 1 to N do for Col := 1 to N do A[Row, Col] := Random(255)+1;
end;
procedure OutArray;
var
Row, Col : Byte;
begin
for Row := 1 to N do begin for Col := 1 to N do Write(A[Row, Col]:4); WriteLn; end;
end;
procedure Rotate;
var
Row, Col, tmp : Byte;
begin
if N > 1 then
begin
for Row := 1 to N - 1 do
for Col := Row to N - Row do
begin
tmp := A[Row, Col];
A[Row, Col] := A[Col, N+1 - Row];
A[Col, N+1 - Row] := A[N+1 - Row, N+1 - Col];
A[N+1 - Row, N+1 - Col] := A[N+1 - Col, Row];
A[N+1 - Col, Row] := tmp;
end;
end;
end;
begin
InitArray;
WriteLn('Исходный массив: '); OutArray;
Rotate;
WriteLn('Повёрнутый массив: '); OutArray;
end.
const
Size = 30;
type
aType = array [1..Size, 1..Size] of Byte;
var
A : aType;
procedure InitArray;
var
Row, Col : Byte;
begin
Write('Введите размерность массива (до 30) : '); ReadLn(N);
Randomize;
for Row := 1 to N do for Col := 1 to N do A[Row, Col] := Random(255)+1;
end;
procedure OutArray;
var
Row, Col : Byte;
begin
for Row := 1 to N do begin for Col := 1 to N do Write(A[Row, Col]:4); WriteLn; end;
end;
procedure Rotate;
var
Row, Col, tmp : Byte;
begin
if N > 1 then
begin
for Row := 1 to N - 1 do
for Col := Row to N - Row do
begin
tmp := A[Row, Col];
A[Row, Col] := A[Col, N+1 - Row];
A[Col, N+1 - Row] := A[N+1 - Row, N+1 - Col];
A[N+1 - Row, N+1 - Col] := A[N+1 - Col, Row];
A[N+1 - Col, Row] := tmp;
end;
end;
end;
begin
InitArray;
WriteLn('Исходный массив: '); OutArray;
Rotate;
WriteLn('Повёрнутый массив: '); OutArray;
end.
Есть из старого состава феерические создатели "нового"!!! Так, что пошли нах этих говны, почитай "ман" и реши сама!
Знаешь, а я принципиально не помогаю таким программистам как ты - такая смена нам не нужна, нах нам феерические создатели нового!!!
Похожие вопросы
- Нужна помощь в решении задачи по С++ связанная с матрицами
- Здравствуйте нужна помощь по программе на языке паскаль
- нужна помощь.кто хорошо разбирается в паскале
- Нужна помощь с решением задачи на С++ через Visual Studio
- Нужна помощь в решении задачи по языку программирования С++!!срочно!
- Нужна помощь в решении задач на Циклы и простейшие программы
- Нужна помощь в решении данной задачи на Си.
- Машине Тьюринга и Машины Поста нужна помощь с решением
- задача на С++, нужна помощь в решении
- Нужна помощь с паскалем!