Люди....помогите!!!
Сижу над задачей дней пять уже, а результата всего два:
1.Либо не правильно считает.
2.Либо зацикливается.
Вот задача:
Составить Паскаль-программу, производящую обработку квадратной матрицы по-рядка NxN, из целых положительных чисел. Обработка: перестановка в обратном порядке элементов строки, содержащей минимальный элемент матрицы.
Заранее спасибо!
Покажи код, будем разбираться
uses crt;
type mas=array[1..10,1..10] of integer;
var
i,j,n,min:integer;
a:mas;
begin
clrscr;
write('Vvedite razmernost matrici:');
readln(n);
for i:=1 to n do
begin
for j:=1 to n do
begin
write('a[',i,',',j,']=');
readln(a[i,j]);
end;
end;
min:=a[1,1];
for i:=1 to n do
begin
for j:=1 to n do
begin
if a[i,j]<min then min:=a[i,j];
end;
end;
Это вот до перестановки...а дальше у меня полная попа . Я думаю дальше надо, чтобы элемент сравнивался с минимумом и если он ему равен, перепечатывал строку в обратном порядке, а если нет - то печатал старый элемент. Вот ток как это сделать я не понимаю...пробовала цикл, но у меня он у меня где-то видать клинил и печатал элементы без остановки. Приходилось перезапускать все.
uses crt;
type mas=array[1..10,1..10] of integer;
var
i,j,n,min,k,l:integer;
a:mas;
begin
clrscr;
write('Vvedite razmernost matrici:');
readln(n);
for i:=1 to n do
for j:=1 to n do begin
write('a[',i,',',j,']=');
readln(a[i,j]);
end;
min:=1;
for i:=1 to n do
for j:=1 to n do
if a[i,j]<min then
min:=a[i,j];
for i:=1 to n do begin
j:=1;
while j<=n do begin
if a[i,j]=min then begin
for k:=1 to n div 2 do begin
l:=a[i,k];
a[i,k]:=a[i,n-k+1];
a[i,n-k+1]:=l;
j:=n
end
end;
inc(j)
end;
end;
for i:=1 to n do begin
writeln;
for j:=1 to n do write(a[i,j]:6)
end;
readkey
end.
Работает!!! Спасибо!
Я только один момент не могу понять. Вот в этой строке:
for k:=1 to n div 2 do begin - что сдесь "div 2" делает....всмысле как это работает?
Здесь меняются местами первый с последним, второй с предпоследним и т.д.
О как...спасибо еще раз!