Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Pascal - матрицы


Рекомендуемые сообщения

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

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

Ссылка на комментарий
Поделиться на другие сайты

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;

Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...