IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Помогите написать функцию сравнения
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 5
Пол: Мужской

Репутация: -  0  +


Функция 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.


Сообщение отредактировано: FiReDoGGi -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 25.04.2024 15:36
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name