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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2006, 00:10   #1
MuRdErDoLL
 
Регистрация: 20.12.2006
Сообщений: 3
Печаль Сортировка массива

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

Мне кажется, что все правильно но на деле что-то не так, вылетает до завершения программы. выполнял пошагово - вылетает в процессе выполнения сортировки столбцов вставкой. процедура - vstavka.
никак не могу разобраться, в чем проблема

Последний раз редактировалось MuRdErDoLL; 20.12.2006 в 00:14.
MuRdErDoLL вне форума Ответить с цитированием
Старый 20.12.2006, 00:13   #2
MuRdErDoLL
 
Регистрация: 20.12.2006
Сообщений: 3
По умолчанию

вот код программы:

program lab5;

{$APPTYPE CONSOLE}

uses
SysUtils,
Math;

type
matrica=array[1..1000,1..1000] of real;

var
t:real;
n,m: integer;
matr: matrica;

procedure vstup(var a,b:integer);
begin
writeln('************************** **********************************' );
writeln('****************** Laboratornaya rabota 5 ******************');
writeln('************************** **********************************' );
writeln;
writeln('1)Vvedite razmer matricu (m*n) ');
writeln;
write('m >> ');
readln(a);
write('n >> ');
readln(b);
writeln;
writeln('2)Vvedite elementu matricu ');
writeln;
end;

procedure input(var arr:matrica; a,b:integer);
var i,j: integer;
begin
//Заполнение матрицы элементами
for i:=1 to a do
for j:=1 to b do
begin
write('Element [',i,',',j,'] >> ');
readln(arr[i,j]);
end;
end;

procedure print(var arr:matrica; a,b:integer);
var i,j: integer;
begin
for i :=1 to a do
begin
for j:= 1 to b do
begin
write(arr[i,j]:0:0,' ');
end;
writeln;
end;
end;

procedure puzirok(var arr:matrica;temp:real; a,b:integer);
var i,j,k: integer;
begin
for i:=1 to a do
begin
for k:=1 to b do
for j:=1 to b-k do
if arr[i,j]<arr[i,j+1] then
begin
temp:=arr[i,j];
arr[i,j]:=arr[i,j+1];
arr[i,j+1]:=temp;
end;
end;
end;

procedure vstavka(var arr:matrica;temp:real; a,b:integer);
var i,j,k: integer;
begin
for k:=1 to b do
begin
for i:=2 to a do
begin
temp:=arr[i,k];
j:=i-1;
while (arr[j,k]>temp) and (j>0) do
begin
arr[j+1,k]:=arr[j,k];
j:=j-1;
end;
arr[j+1,k]:=temp;
end;
end;
end;

begin
{Задание:
Дан двумерный массив. Отсортировать его элементы по строкам методом
пузырька по убыванию. Затем по столбцам методом вставки по возрастанию.}

vstup(m,n);

input(matr,m,n);

//Вывод матрицы
writeln;
writeln('************************** **********************************' );
writeln;
writeln('3)Vnewniy vid matricu:');
writeln;

print(matr,m,n);

writeln;

//Сортировка строк методом "пузырька" по убыванию
puzirok(matr,t,m,n);

writeln;
writeln('Matrica posle sortirovki strok');
writeln;

print(matr,m,n);

writeln;

//Сортировка столбцов методом вставки по возрастанию

vstavka(matr,t,m,n);

writeln;
writeln('Matrica posle sortirovki stolbcov');
writeln;

print(matr,m,n);

writeln;

readln;
end.

Последний раз редактировалось SuperVisor; 20.12.2006 в 18:44. Причина: Немного уменьшил размер сообщения.
MuRdErDoLL вне форума Ответить с цитированием
Старый 20.12.2006, 00:58   #3
MuRdErDoLL
 
Регистрация: 20.12.2006
Сообщений: 3
По умолчанию

и еще... прикол в том, что если, допустим, в качестве элементов массива ввести числа ( 2 7 1 6 4 3 8 4 5 ) или ( 4 2 5 4 3 7 6 5 4) , то программа работает, а если ( 6 1 8 4 9 2 7 3 1) - то нет
MuRdErDoLL вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка массива С/С++ Dagget Помощь студентам 1 16.07.2008 12:18
Сортировка массива Dagmaria Общие вопросы C/C++ 5 05.07.2008 00:23
Сортировка массива Kraven Общие вопросы Delphi 3 25.06.2008 18:22
Сортировка массива...? Roberto Помощь студентам 2 11.04.2008 13:32
Сортировка массива vitalik007 Общие вопросы Delphi 2 22.09.2007 20:04