Jump to content

Pascal - матрицы


Recommended Posts

Помогите, пожалуйста, решить задачу или подскажите алгоритм решения:

Задана матрица А(NхM), где 1<N<20, 1<M<40. Преобразовать каждую строку матрицы, расположив вначале отрицательные члены, затем – положительные, а затем – нулевые, с сохранением порядка чисел.

Link to comment
Share on other sites

knorus:

Ну есть же в начале этого раздела тема среди "важных": "Заказы "Сделайте все за меня"", специально для таких вопросов.

А сама программа - например, так:

var A:array[1..20,1..40]of integer; B:array[1..40]of integer; M,N,i,j,k:integer;beginWrite('N=');ReadLn(N); Write('M=');ReadLn(M);randomize; for i:=1 to N do for j:=1 to M do begin A[i,j]:=random(18); A[i,j]:=A[i,j]-9 end;WriteLn; for i:=1 to N do begin for j:=1 to M do Write(A[i,j]:2); WriteLn end;for i:=1 to N dobeginfor j:=1 to M do B[j]:=0;k:=1; for j:=1 to M do if A[i,j]<0 then begin B[k]:=A[i,j]; inc(k) end;k:=M; for j:=M downto 1 do if A[i,j]>0 then begin B[k]:=A[i,j]; dec(k) end;for j:=1 to M do A[i,j]:=B[j];end;WriteLn; for i:=1 to N do begin for j:=1 to M do Write(A[i,j]:2); WriteLn end;WriteLn; ReadLnend.

Для простоты проверки работы программы тут матрица сделана из целых чисел и заполняется однозначными случайными числами. Числа легко заменить на действительные, ввод - на ручной. Хотя я никогда не мог понять, что означают в условии слова "задана матрица". Если задана, то где она? :g: :g:

P.S: Стоп, извиняюсь, перечитал условие, оказалось, сделал не совсем так: надо было в порядке: отрицательные, положительные, нулевые, а я сделал было в порядке: отрицательные, нулевые, положительные. Чтобы исправить, надо заменить строку

k:=M; for j:=M downto 1 do if A[i,j]>0 then begin B[k]:=A[i,j]; dec(k) end;

на

for j:=1 to M do if A[i,j]>0 then begin B[k]:=A[i,j]; inc(k) end;

Edited by Тролль
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...