Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.04.2010, 18:05   #1
Dema91
 
Регистрация: 14.04.2010
Сообщений: 6
По умолчанию Не могу понять где ошибка при сортировке строки!?

Сама задача выглядит так:
Дана вещественная матрица размером N×M. Переставляя ее строки и столбцы добиться того, чтобы наибольший элемент (один из них) оказался в верхнем левом углу.

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

uses crt;
type massiv=array [1..100,1..100] of integer;
var
mass:massiv;
n,m:integer;

procedure vvod_mass (var x:massiv; a,b:integer);
var i,j:integer;
begin
for i:=1 to a do
begin
writeln;
for j:=1 to b do
begin
x[i,j]:=random(100)-30;
write(x[i,j]:5);
end;
end;
writeln;
end;

procedure sort_strok (x:massiv; a,b:integer);
var i,j,k,q:integer;
begin
for i:=1 to a do
{ for j:=1 to (b-1) do}
for k:=1 to (b-1) do
if x[i,k]<x[i,k+1] then
begin
q:=x[i,k];
x[i,k]:=x[i,k+1];
x[i,k+1]:=q;
end;
end;

procedure vyvod_mass (var x:massiv; a,b:integer);
var i,j:integer;
begin
for i:=1 to n do
begin
writeln;
for j:=1 to m do
begin
write(x[a,b]:5);
end;
end;
writeln;
end;

begin
writeln ('Введите размеры матрицы');
write('n=');
readln(n);
write('m=');
readln(m);
writeln;
writeln ('Данная матрица:');
vvod_mass(mass,n,m);
sort_strok(mass,n,m);
vyvod_mass(mass,n,m);
end.

Прога еще не доделана.
Dema91 вне форума Ответить с цитированием
Старый 14.04.2010, 20:11   #2
sllh_111
Форумчанин
 
Регистрация: 10.02.2010
Сообщений: 137
По умолчанию

Цитата:
q:=x[i,k];
x[i,k]:=x[i,k+1];
x[i,k+1]:=q;
q - интеджер, попробуй присвоить q:= massiv


Цитата:
procedure vvod_mass (var x:massiv; a,b:integer);
var i,j:integer;
begin
for i:=1 to a do
begin
writeln;
for j:=1 to b do
begin
x[i,j]:=random(100)-30;
write(x[i,j]:5);
end;
end;
writeln;
end;
попробуй паред
write(x[i,j]:5);
записать еще
for i:=1 to a do
begin
writeln;
for j:=1 to b do
sllh_111 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Где ошибка в сортировке? vaan.sk Общие вопросы C/C++ 1 16.03.2010 23:33
Нужна Помошь: Не могу понять где ошибка CSS_Maker HTML и CSS 1 12.02.2010 00:02
Помогите понять где ошибка !!! beliy13 Помощь студентам 2 12.12.2009 20:22
Не могу понять, где утечка памяти (9 строчек) dueram Win Api 1 24.11.2009 19:56
Не могу понять где ошибка в коде SeRhy Общие вопросы C/C++ 5 20.09.2009 13:10