Другие языки программирования и технологии
Помогите написать программу! Турбо Паскаль 7.0
1.Сортировка столбцов Упорядочить столбцы матрицы А по убыванию максимального среди нечетных чисел. Обратите внимание, что здесь переставляются сами столбцы, а не элементы внутри них. Матрица А предположим уже есть, что дальше?
Доброго времени суток.
Дальше надо находить максимальное среди нечетных чисел среди элементов столбца и осуществлять сортировку.
Как вариант, можно сделать так. Для удобства объявлено несколько процедур и функций: инициализация массива, вывод на экран, перестановка столбцов и получение максимального нечетного элемента столбца.
program Mass;
uses Crt;
const
N = 4;{число строк}
M = 5;{число столбцов}
type
Arr2 = array[1..N, 1..M] of Integer; {двухмерный массив целых чисел}
var A : Arr2;
{инициализации массива для проверки}
procedure InitMass;
var i, j : Integer;
begin
for i:=1 to N do
for j:=1 to M do A[ i,j ] := i*10+j; {десятки - номер строки, единицы - тстолбца}
end;
{выыдит массив на экран}
procedure ShowMass(A: Arr2; Title: String);
var
i, j : Integer;
begin
WriteLn(Title);
for i:=1 to N do begin
for j:=1 to M do Write(A[ i,j ]:3);
WriteLn;
end;
WriteLn;
end;
{перестановка столбцов}
procedure SwapCols(Col1, Col2: Integer);
var
j, T : Integer;
begin
for j:=1 to N do begin
T := A[j,Col1];
A[j,Col1] := A[j,Col2];
A[j,Col2] := T;
end;
end;
{возвращает максимальное нечетное число столбца}
function GetMaxOddFrom(Col: Integer): Integer;
var
MaxN, j : Integer;
begin
MaxN := 0;
for j:=1 to N do
if Odd(A[j,Col]) and (MaxN < A[j,Col]) then MaxN := A[j,Col];
GetMaxOddFrom := MaxN;
end;
var
i, j : Integer;
begin
ClrScr;
InitMass;
ShowMass(A, 'Source'); {выведем для контроля}
{сортировка по убываню пузырьком}
for i := 1 to M do
for j:=1 to M-i do
if GetMaxOddFrom(j)< GetMaxOddFrom(j + 1) then {если текущий элемент меньше следующего}
SwapCols(j, j+1); {переставим соответствующие столбцы}
ShowMass(A, 'Result); {покажем результат}
ReadLn;
end.
Удачи!
Дальше надо находить максимальное среди нечетных чисел среди элементов столбца и осуществлять сортировку.
Как вариант, можно сделать так. Для удобства объявлено несколько процедур и функций: инициализация массива, вывод на экран, перестановка столбцов и получение максимального нечетного элемента столбца.
program Mass;
uses Crt;
const
N = 4;{число строк}
M = 5;{число столбцов}
type
Arr2 = array[1..N, 1..M] of Integer; {двухмерный массив целых чисел}
var A : Arr2;
{инициализации массива для проверки}
procedure InitMass;
var i, j : Integer;
begin
for i:=1 to N do
for j:=1 to M do A[ i,j ] := i*10+j; {десятки - номер строки, единицы - тстолбца}
end;
{выыдит массив на экран}
procedure ShowMass(A: Arr2; Title: String);
var
i, j : Integer;
begin
WriteLn(Title);
for i:=1 to N do begin
for j:=1 to M do Write(A[ i,j ]:3);
WriteLn;
end;
WriteLn;
end;
{перестановка столбцов}
procedure SwapCols(Col1, Col2: Integer);
var
j, T : Integer;
begin
for j:=1 to N do begin
T := A[j,Col1];
A[j,Col1] := A[j,Col2];
A[j,Col2] := T;
end;
end;
{возвращает максимальное нечетное число столбца}
function GetMaxOddFrom(Col: Integer): Integer;
var
MaxN, j : Integer;
begin
MaxN := 0;
for j:=1 to N do
if Odd(A[j,Col]) and (MaxN < A[j,Col]) then MaxN := A[j,Col];
GetMaxOddFrom := MaxN;
end;
var
i, j : Integer;
begin
ClrScr;
InitMass;
ShowMass(A, 'Source'); {выведем для контроля}
{сортировка по убываню пузырьком}
for i := 1 to M do
for j:=1 to M-i do
if GetMaxOddFrom(j)< GetMaxOddFrom(j + 1) then {если текущий элемент меньше следующего}
SwapCols(j, j+1); {переставим соответствующие столбцы}
ShowMass(A, 'Result); {покажем результат}
ReadLn;
end.
Удачи!
Сделай так:
Type TVec=array[1..100] of real;
var matr:array[1..100]of TVec; {Матрица - массив (строки) массивов (столбцов) }
и сможешь переставлять столбцы простым присваиванием. Остальное, я думаю, напишешь сам.
Type TVec=array[1..100] of real;
var matr:array[1..100]of TVec; {Матрица - массив (строки) массивов (столбцов) }
и сможешь переставлять столбцы простым присваиванием. Остальное, я думаю, напишешь сам.
Похожие вопросы
- кто разбирается в паскале??У мя турбо паскаль 7.0 помогите!!!
- Турбо Паскаль 7.0 В функцию val можно загнать конкретный элимент строки или можно только всю строку?
- Кто знает помогите написать на Турбо Паскале
- Помогите написать программу на паскале
- Помогите написать программу на Паскале!
- Ребят, помогите написать программу для Паскаля!
- помогите написать программу на паскале
- помогите написать программу на паскале!!! если можно напишите в комментах что где делаете!!!
- Помогите написать программу в Паскале, пожалуйста. см ниже
- Помогите написать программу на Паскале