Помощь - Поиск - Пользователи - Календарь
Полная версия: Помогите написать функцию сравнения
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
FiReDoGGi
Функция sravnenie должна сравнивать произведение матрицы с заданным числом k, помогите мне ее написать... функция должна возвращать логическое значение после чего производится сортировка...

Вообще задание такое
Упорядочить по убыванию элементы тех строк матрицы, в которых произведение элементов меньше заданного числа


Вот

function sravnenie(const ms: tvector;var k:integer): boolean;
var
d: integer;
i, j: integer;
begin
i:=ms[n,1];
For j:=1 to m-1 do
i=i*ms[n,j+1];
begin
if i<k then do
sravnenie:=(i = n + 1);
end;




А вот сама прога


program laba5;
Uses crt;

const
size_row = 10; { число строк }
size_col = 10; { число столбцов }

type
tvector = array[1 .. size_col] of integer;
tmatrix = array[1 .. size_row] of tvector;


var
mx: tmatrix;
i, j: integer;
n, m: integer;
NN, MM: integer;
k:integer;

procedure sort(var ms: tvector; n, m: integer);
var i, j, T: integer;
begin
for i := 1 to n do
for j := n downto i + 1 do
if ms[j - 1] < ms[j] then begin
T := ms[j - 1]; ms[j - 1] := ms[j]; ms[j] := T
end
end;




function sravnenie(const ms: tvector;var k:integer): boolean;
var
d: integer;
i, j: integer;
begin
i:=ms[n,1];
For j:=1 to m-1 do
i=i*ms[n,j+1];
begin
if i<k then do
sravnenie:=(i = n + 1);
end;




begin
clrscr;
NN:=size_row;
MM:=size_col;

writeln('Упорядочить по убыванию элементы тех строк матрицы,');
writeln('в которых произведение элементов меньше заданного числа.');


writeln('Введите число');
readln(k);

{ Заполнение матрицы }
repeat
write('Введите количество строк: '); readln(N)
until (n>0) and (n<=NN);
repeat
write('Введите количество столбцов: '); readln(m)
until (m>0) and (m<=MM);
For i:=1 to n do
begin
For j:=1 to m do
begin
write('mx[',i,j,']= ');
readln(mx[i,j])
end
end;

{ Матрица до обмена }
writeln('до:');
for i := 1 to n do
begin
for j := 1 to m do
write(mx[i,j]:4);
writeln
end;

{ цикл с проверкой и сортировкой }
for i := 1 to n do
if sravnenie(mx[i]) then sort(mx[i], m, n);




{ Матрица после обмена }
writeln('после:');
for i := 1 to n do
begin
for j := 1 to m do
write(mx[i,j]:4);
writeln
end;
end.
Feagor
млин не понятно где у тебя что, помести коды в теги
volvo
Круто... Мне вот например непонятно, что значит:
Цитата
сравнивать произведение матрицы с заданным числом k
Это как так? Произведение матрицы на что? Или имелось в виду произведение элементов матрицы?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.