Если кто-то может знать.

За вознаграждение или нахаляву (если повезёт)

Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill

Ответить
zAra
Сообщения: 3
Зарегистрирован: 16 окт 2007, 17:06

Использовать подпрограммы(ввода,вывода,обрабатывающей
части).Дан массив целых чисел A[M,N],где
M,N<=10.Удалить все столбцы,в которых первый элемент
больше последнего.
Вот код,но что-то он не работает,вообщем не получается задачка,если не сложно и кто-то хзнает-помогите подалуйст.
Uses crt;
type
mas=array[1..10,1..10]of integer;
size=1..10;
var
a:mas;
i,j:integer;
n,m:size;
res:integer;
Procedure Inp(n,m:integer;Var a:mas);
Var
i,j:integer;
begin
randomize;
For i:=1 to n do
For j:=1 to m do
a[i,j]:=integer(random(10))-3;
end;
procedure sear(n,m:integer;var a:mas;var res:integer);
var
i,j:integer;
begin
res:=1;
for j:= 1 to m do
if a[1,j]>a[10,j] then res:=j;
end;
Procedure Del(Var a:mas; Var n,m:integer; k1 :
integer);
Var
i, j : integer;
Begin
for j := k1 to m-1 do
for i := 1 to n do
a[i, j] := a[i,j+1];
for i := 1 to n do
a[i, m] := 0;
Dec(m);
End;
Procedure Out(n,m:integer;Var a:mas);
Var
i,j:integer;
begin
For i:=1 to n do begin
For j:=1 to m do
write(a[i,j]:5); writeln;
end;
end;
begin
writeln('Vvedite razmernost'' matricy: ');
readln(n,m);
inp(n,m,a);
writeln('Matrica do udaleniya stolbcov: ');
out(n,m,a);
writeln('Matrica posle udaleniya stolbcov: ');
sear(n,m,a,res);
del(a,n,m,res);
out(n,m,a);
readln;
end.
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Используйте, пожалуйста, тег [ code] - [/ code] (без пробелов), а то нечитаемо
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Проблема в том, что процедура sear (я бы на вашем месте сделал ее функцией), во-первых, возвращает только номер самого последнего нужного ряда, во-вторых, если такой ряд не найден, возвращает 1.

Еще ошибка в том, что процедура sear у вас запускается только один раз, а ее надо гонять, пока существуют столбцы, у которых первый элемент больше последнего. И каждый раз после этого делать del
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Ответить