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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2009, 18:07   #1
world12_tk
Форумчанин
 
Регистрация: 24.02.2009
Сообщений: 269
По умолчанию pascal пузырьковый метод

Добрый день уважаемые форумчанины. Не могу исправить ошибку в программе.
Необходимо Упорядочить матрицу построчно по возрастанию.
вот исходный текст:
Код:
program Project3;

{$APPTYPE CONSOLE}

uses
  SysUtils;
var
  a:array [1..10,1..10] of integer;
  i,j:integer;
  temp:integer;
  n,m:integer;
begin

  writeln('razmernost');
  readln(n,m);
  writeln('massiv');
  for I := 1 to n  do
    for j := 1 to m do

    read(a[i,j]);
  j:=2;

  while(j<=m)  do
  for I := 1 to n do

  begin
  if (a[i,j]<a[i,j-1]) and (j>1) then
  begin
    temp:=a[i,j];
    a[i,j]:=a[i,j-1];
    a[i,j-1]:=temp;
    j:=j-1;
  end
  else
    j:=j+1;
  end;
  for I := 1 to n  do
  for j := 1 to m do
    
    write(a[i,j]);

  readln;
end.
Заранее спасибо...
world12_tk вне форума Ответить с цитированием
Старый 09.06.2009, 18:13   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Код:
program Project3;

{$APPTYPE CONSOLE}

uses
  SysUtils;
var
  a:array [1..10,1..10] of integer;
  i,j,k:integer;
  temp:integer;
  n,m:integer;
begin

  writeln('razmernost');
  readln(n,m);
  writeln('massiv');
  for I := 1 to n  do
    for j := 1 to m do
      readln(a[i,j]);


  for I := 1 to n do
   for j:=m-1 downto 1 do
    for k:=1 to j do
     if a[i,k]>a[i,k+1] then
      begin
      temp := a[i,k];
      a[i,k] := a[i,k+1];
      a[i,k+1] := temp;
      end;

  for I := 1 to n  do
   begin
   for j := 1 to m do
    write(a[i,j]);
   writeln;
   end;

  readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 09.06.2009, 19:20   #3
world12_tk
Форумчанин
 
Регистрация: 24.02.2009
Сообщений: 269
По умолчанию

Уважаемый Sazary! А нельзя ли использовать while, а то препод говорит, что с помощью for этот метод не эффективный. Он очень долгий
world12_tk вне форума Ответить с цитированием
Старый 09.06.2009, 19:31   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Алгоритм описан тут: http://ru.wikipedia.org/wiki/Сортиро...зырьком#Pascal
Цитата:
а то препод говорит, что с помощью for этот метод не эффективный.
Это чем же, интересно, while эффективнее?
Цикл
Код:
for i:=1 to N do
 begin
 .......  
 end;
можно представить через while как
Код:
i:=1;
while i<=N do
 begin
 ........
 inc(i);
 end;
Вот только на эффективность это не повлияет.
Или, может, вы что-то другое имеете в виду?
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 10.06.2009, 01:03   #5
world12_tk
Форумчанин
 
Регистрация: 24.02.2009
Сообщений: 269
По умолчанию

Sazary! Она имело ввиду, что если писать через for то пузырьковый метод будет очень медлительный, т.к. при одномерном массиве используется двойной цикл, а если использовать while то мы его пишем один раз... Но все равно спасибо... Вы мне очень помогли
world12_tk вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод кода Delphi-Pascal! Метод Пауэлла bestlover Помощь студентам 3 21.12.2009 17:35
а free pascal не читает задачи которые написаны на turbo pascal? demonara Паскаль, Turbo Pascal, PascalABC.NET 3 25.05.2009 16:28
Метод послед. приближений. Pascal Кэмерон Помощь студентам 7 24.05.2009 15:39
Pascal, метод Ньютона, вычисление корня ф-ии. Qousio Помощь студентам 2 02.05.2009 19:47
Метод прямого слияния. Pascal SeRhy Помощь студентам 1 04.03.2009 09:36