Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Матрица

Автор: zoha 25.04.2007 14:32

Сделайте пожалуйста мне задачу.

Дана матрица B[N,M]. Найти максимальные и минимальные элементы в каждой строке и поменять их местами соотвественно.

Автор: Артемий 25.04.2007 14:39

Взял и поискал.(нравится,а? dry.gif )

Автор: zoha 25.04.2007 14:49

Зделай пожалуйста а то мне"2" ПОСТАВЯТЬ И ИСКЛЮЧАТ. Я в Паскале только новичок.

Автор: Артемий 25.04.2007 14:55

А вот это уже НИКОГО не интересует!Научись людей уважать!Здесь тебе никто ничего не должен!

Автор: yome 25.04.2007 18:45

Предоставь код,который ты написал,напиши проблему и какие непонятки.
Тебе помогут.

иначе мани отваливайsmile.gif

Автор: zoha 27.04.2007 14:29

помогите????????????????????????
В чем здесь ошибка???
Меняет только первые-две строки, а остальные не меняются

Program lab_5;
Uses crt;
const N=4;M=4;
var a:array[1..5,1..5] of integer;
i,j,max,min,l,k:integer;
Begin
Randomize;
clrscr;
for i:=1 to M do begin
for j:=1 to N do begin
a[i,j]:=random(10);
write(a[i,j]:3);
end;writeln;end;
min:=a[1,1];
for i:=1 to M do begin
for j:=1 to N do begin
if (a[i,j]>min) then begin min:=a[i,j];
l:=a[i,n];
a[i,n]:=min;
a[i,j]:=l;end;end;end;
for i:=1 to M do begin
for j:=1 to N do begin
max:=a[1,1];
if (a[i,j]<max) then begin max:=a[i,j];
k:=a[i,n];
a[i,n]:=max;
a[i,j]:=k;end;
end;end;
writeln;
writeln('Конечная матрица');
for i:=1 to M do begin
for j:=1 to N do begin
write(a[i,j]:3);
end;writeln;end;
readln;
end.




Прикрепленные файлы
Прикрепленный файл  LAB_6..txt ( 683 байт ) Кол-во скачиваний: 252

Автор: Айра 27.04.2007 16:17

Во-первых, пользуйся тегами.
Во-вторых, покажи сам, как должны стоять элементы после отработки программы, потому что тут:
3 5 4 7 (исходная матрица)
5 6 1 9
7 4 8 7
3 7 9 3
и тут:
3 7 4 5 (конечная матрица)
5 9 6 1
7 4 7 8
3 7 3 9
логика какая-то странная.. в первой строке минимальный же 3, а максимальный - 7. Их же местами менять надо было?

Автор: Адель 27.04.2007 17:45

что то типо этого...

const N=4;M=4;
var a:array[1..4,1..4] of integer;
i,j,max,min,l,k:integer;
imin,jmin,imax,jmax:integer;
Begin
Randomize;
for i:=1 to M do begin
for j:=1 to N do begin
a[i,j]:=random(10);
write(a[i,j]:3);
end;writeln;end;
jmin:=1; jmax:=1;
for i:=1 to M do begin
min:=a[i,1];
max:=a[i,1];
imin:=i; imax:=i;
for j:=1 to N do begin
if a[i,j]<min then
begin
min:=a[i,j];
imin:=i;
jmin:=j;
end;

if a[i,j]>max then begin
max:=a[i,j];
imax:=i;
jmax:=j;
end;
end;
a[imin,jmin]:=a[imax,jmax];
a[imax,jmax]:=min;
end;
writeln('Êîíå÷íàÿ ìàòðèöà');
for i:=1 to M do begin
for j:=1 to N do begin
write(a[i,j]:3);
end;writeln;end;
readln;
end.


Артемий ??

Автор: zoha 4.05.2007 13:13

должно быть так:

начальная матрница
6 6 7 1 5
4 5 3 7 3
5 9 1 7 4
Конечная матрица
7 6 6 5 1
7 5 3 4 3
9 5 4 7 1

Автор: -volvo- 4.05.2007 13:31

Цитата
должно быть так:
Не прослеживается в этом связь с тем заданием, которое ты привел в самом первом посте... Если задание наверху правильное - то начальной матрице:
6 6 7 1 5
4 5 3 7 3
5 9 1 7 4
должна соответствовать вот такая конечная (выделенные элементы меняем местами):
6 6 1 7 5
4 5 7 3 3
5 1 9 7 4

А ты говоришь, что должно быть нечто другое...

Автор: zoha 10.05.2007 19:33

минимальные элементы в левом столбце, а максимальные в правом столбце или наоборот