Помощь - Поиск - Пользователи - Календарь
Полная версия: Массив
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Студентка
Люди....помогите!!!

Сижу над задачей дней пять уже, а результата всего два:
1.Либо не правильно считает.
2.Либо зацикливается.

Вот задача:
Составить Паскаль-программу, производящую обработку квадратной матрицы по-рядка NxN, из целых положительных чисел. Обработка: перестановка в обратном порядке элементов строки, содержащей минимальный элемент матрицы.

Заранее спасибо! smile.gif
Client
Покажи код, будем разбираться smile.gif
Гость
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;

Это вот до перестановки...а дальше у меня полная попа smile.gif . Я думаю дальше надо, чтобы элемент сравнивался с минимумом и если он ему равен, перепечатывал строку в обратном порядке, а если нет - то печатал старый элемент. Вот ток как это сделать я не понимаю...пробовала цикл, но у меня он у меня где-то видать клинил и печатал элементы без остановки. Приходилось перезапускать все.
Client
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" делает....всмысле как это работает?
Client
Здесь меняются местами первый с последним, второй с предпоследним и т.д.
Гость
О как...спасибо еще раз! smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.