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

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

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

> удаление столбца матрицы, и сортировка 1 строки., помогите пожалуйста с решением следующей задачи:
HUNTER77
сообщение 25.03.2011 19:27
Сообщение #1





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

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


uses crt;
const
n=3;m=3;
var
a:array[1..n , 1..m] of byte;
i,j,max,imax,jmax:byte;
begin
for i:=1 to n do
for j:=1 to m do begin
writeln('a[',i,j,']'); readln(a[i,j]);
end; writeln;
imax:=1;jmax:=1;
max:=a[imax,jmax];

max:=a[1,1];
For i:=1 to n do begin
For j:=1 to m do begin
If max< a[i,j] then
max:=a[i,j] end end;
imax:=1; jmax:=1;
for i:=1 to n do
for j:=1 to m do
if a[i,j] > a[imax,jmax] then begin
imax:= i;
jmax:= j end;
writeln;
for i:=1 to n do begin
for j:=1 to m do
write(a[i,j], ' '); writeln; end;
writeln;
write(max); read; end.



необходимо:удалить столбец содержащий максимальный элемент матрицы,(это я пытался сделать...но ничего не вышло,мои попытки:
 For i:=imax to n do
For j:=1 to n do
a[i,j]:=a[i+1,j];

For i:=1 to n do
For j:=jmax to n do
a[i,j]:=a[i,j+1];
,,,,,,,,

for j:=1 to n do
write(a[i,j]:4);
writeln;
end;




for j:=jmax to n-1 do
for i:=1 to n do
a[i,j]:=a[i,j+1];

,,,,,,,,,,,,,,,,,,,,,,,,,,,
for i:=1 to n do begin
for j:=1 to m do
write(a[i,j], ' '); writeln; end;
writeln;
write(max); read; end.

for i := 1 to N do
for j := jmax to m - 1 do

a[i, j] := a[i, j + 1];
Dec(i,M);


нечетные отрицательные элементы элементы первой строки расположить по убыванию,,на этот счет вообще нет никаких мыслей.
кто может прошу помочь!

Сообщение отредактировано: volvo - 25.03.2011 19:36
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
DarkWishmaster
сообщение 26.03.2011 14:31
Сообщение #2


Бывалый
***

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

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


Вот похожая програма, удаляет одну колону и одну линию так чтобы сума всех чисел из матрицы была максимальной, может поможет:

Program P1; Uses Crt;
const Nmax=50;
type matrice=array[1..Nmax,1..Nmax] of integer;
var a,b:matrice; m,n,x,y,max,flag,i,j,aux:integer;
procedure Print;
var i,j:integer;
begin
for i:=1 to n do begin
for j:=1 to m do begin
write(a[i,j],' '); end; writeln; end; end;

function Suma:integer;
var x,y,S:integer;
begin
S:=0;
for x:=1 to n do
for y:=1 to m do
if (x<>i) and (y<>j) then S:=a[x,y]+S;
Suma:=S;
end;

Begin ClrsCr;
read(n,m);
for i:=1 to n do
for j:=1 to m do
a[i,j]:=random(9)+1;
Print;
for i:=1 to n do
for j:=1 to m do
if Suma>max then begin
max:=suma; x:=i; y:=j; end;
for i:=1 to n do begin
for j:=1 to m do begin
if (i<>x) and (j<>y) then write(a[i,j],' '); end;
writeln; end; writeln(max);
readln;
readln;
end.


Только я тут не удаляю, а просто пропускаю элементы линии и колоны которые должны быть удалены.
Просто если удалят то надо сместить всю матрицу в одну сторону. Так быстрее

Зачем столько циклов:

max:=a[1,1];
for i:=1 to n
for j:=1 to m do
if a[i,j]>max then begin
max:=a[i,j]; // находим максимальный элемент
x:=j; // запоминаем столбец


// снова в цикл
for i:=1 to n do begin
for j:=1 to m do begin
if j<>x then write(a[i,j],' '); //мы не удаляем а пропускаем элементы колоны X
end; writeln; end;

для удаленя то

if x<m then // так как если макс. элемент находится в последнем столбце то сместить матрицу влево незачем.
for i:=1 to n do
for j:=x to m-1 do
a[i,x]:=a[i,x+1];

m:=m-1; // так как матрица короче на один столбик


В паскале не пробовал, но должно быть правильно.

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

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


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

 



- Текстовая версия 1.07.2025 14:34
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"