Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |

10.01.2008, 01:22
|
|
Участник форума
Регистрация: 04.05.2007
Сообщений: 267
Провел на форуме: 409147
Репутация:
33
|
|
паскаль !!!
дюди выручайте оооч срочно
есть задание
Дана матрица n x m найти минимальный и максимальный элементы в строке и заменить первый и последний элементы строк соотстветственно... помогите!!!
Код:
program number2;
var a:array[1..3,1..4] of longint;
max,min,buf,k,n,i,j,maxj,minj:longint;
begin
assign(input,'input.txt');
reset(input);
assign(output,'output.txt');
rewrite(output);
readln(n);
readln(k);
for i:=1 to k do
for j:=1 to n do read(a[i,j]);
for i:=1 to k do begin
max:=a[i,1];
min:=a[i,1];
maxj:=1;
minj:=1;
for j:=1 to n do begin
if a[i,j]>max then maxj:=j
else if a[i,j]<min then minj:=j;
end;
if (maxj=n)and(minj=1) then
begin
buf:=a[i,1];
a[i,1]:=a[i,n];
a[i,n]:=buf;
end;
buf:=a[i,1];
a[i,1]:=a[i,maxj];
a[i,maxj]:=buf;
buf:=a[i,n];
a[i,n]:=a[i,minj];
a[i,minj]:=buf;
end;
for i:=1 to k do begin
for j:=1 to n do write(a[i,j],' ');
writeln;
end;
end.
вот задача только как-то неправильно рабтает, достаточно отредить , помогитеееее
|
|
|

10.01.2008, 04:16
|
|
Постоянный
Регистрация: 30.09.2007
Сообщений: 815
Провел на форуме: 2590715
Репутация:
659
|
|
Автор, в четкой формулировке задачи уже половина её решения.
|
|
|

10.01.2008, 04:29
|
|
Постоянный
Регистрация: 30.09.2007
Сообщений: 815
Провел на форуме: 2590715
Репутация:
659
|
|
Если я правильно понял задание, то надо для каждой строки минимальный элемент переставить местами с первым, а максимальный с последним. Тогда это выглядит так:
Код:
type index=word;
var i, j, j_max, j_min : index;
A1, AM, Amax, Amin : integer;
BEGIN
for i:=1 to N do
begin
j_max := 1;
j_min := 1;
for j:=1 to M do
begin
if A[i,j] > A[i,j_max] then j_max := j;
if A[i,j] < A[i,j_min] then j_min := j;
end;
A1 := A[i,1];
Amin := A[i,j_min]
AM := A[i,M];
Amax := A[i,j_max];
A[i,1] := Amin;
A[i,j_min] := A1;
A[i,M] := Amax;
A[i,j_max] := AM;
end;
END.
Всю фигню с вводом-выводом и константами допиши сам.
Последний раз редактировалось diehard; 22.06.2009 в 10:16..
|
|
|

10.01.2008, 13:08
|
|
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме: 3660186
Репутация:
905
|
|
Вроде бы в задании не сказано "обменять", написано "заменить", а про старое значение элемента массива ничего не упоминается, если я правильно понял. Можно и вот так
Код:
program laba1;
const
maxrow = 3;
maxcol = 4;
type
TMass = array [1..maxrow, 1..maxcol] of integer;
function FillArray : TMass;
var
i, j : integer;
a : TMass;
begin
Randomize;
for i := 1 to maxrow do
for j := 1 to maxcol do
a[i][j] := Random (1000) - 500;
FillArray := a
end;
procedure PrintArray (a : TMass);
var
i, j : integer;
begin
for i := 1 to maxrow do
for j := 1 to maxcol do
writeln (a[i][j]);
writeln ('=====');
end;
procedure FindMinMax (a : TMass; row : integer; var min : integer; var max : integer);
var
j : integer;
begin
for j := 1 to maxcol do begin
if j = 1 then begin
min := a [row][j];
max := min;
end
else begin
if min > a [row][j] then
min := a [row][j];
if max < a [row][j] then
max := a [row][j];
end;
end;
end;
procedure ReplaceArr (var a : TMass; row, min, max : integer);
begin
a[row][1] := min;
a[row][maxcol] := max;
end;
var
a : TMass;
max, min, i : integer;
begin
a := FillArray;
PrintArray (a);
for i := 1 to maxrow do begin
///max := FindMax (a, 3);
///writeln (max);
FindMinMax (a, i, min, max);
writeln (min);
writeln (max);
writeln ('=====');
ReplaceArr (a, i, min, max);
end;
PrintArray (a);
end.
|
|
|

10.01.2008, 18:48
|
|
Постоянный
Регистрация: 30.09.2007
Сообщений: 815
Провел на форуме: 2590715
Репутация:
659
|
|
Вроде бы в задании не сказано "обменять", написано "заменить", а про старое значение элемента массива ничего не упоминается, если я правильно понял.
Вот потому и пишу, что надо чётко формулировать задание. А то в задании сказано "заменить соответственно", а в коде делает "обменять несоответственно":
buf:=a[i,1];
a[i,1]:=a[i,maxj];
a[i,maxj]:=buf;
buf:=a[i,n];
a[i,n]:=a[i,minj];
a[i,minj]:=buf;
|
|
|
|
 |
Похожие темы
|
| Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
|
Паскаль
|
rubik-nerubik |
С/С++, C#, Delphi, .NET, Asm |
2 |
14.01.2008 22:07 |
|
мелочи, ПАскаль
|
rubik-nerubik |
С/С++, C#, Delphi, .NET, Asm |
5 |
27.12.2007 21:20 |
|
ПАСКАЛЬ =\
|
rubik-nerubik |
С/С++, C#, Delphi, .NET, Asm |
12 |
27.12.2007 20:08 |
|
паскаль, вы программер?
|
rubik-nerubik |
С/С++, C#, Delphi, .NET, Asm |
45 |
15.12.2007 21:55 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|