Показать сообщение отдельно
Старый 06.10.2011, 15:50   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от IvaIlga Посмотреть сообщение
Здравствуйте! я написала программу сортировки одномерного массива простым обменом. Проверила в ее работоспособности, массив выводится в правильной последовательности чисел,но бесконечное число раз. Буду рада,если Вы покажете причину и дадите совет,как устранить проблему (или сами поправите код с комментарием).
Да, девушка - что-то Вы тут по части циклов накрутили немыслимое. Зачем-то сортировку затолкали в цикл, да еще и двойной, да и вывод почему-то усложненный... Собственно, исправил одну ошибку (младший индекс массива вы объявили 0, а циклы строите от 1 - исправил), а в остальном редактирование свелось просто к удалению этих лишних циклов. Пожалуйста:
Код:
uses crt;
var
 a:array [1..99] of integer;
 i,j,n,f: integer;
begin
 clrscr;
 writeln('Danna programma sortiryet massiv prostum obmenom.');
 writeln('******************************');
 write('Vvedite chislo zifr massiva n= ');
 readln(n);
 randomize;

 for i:=1 to n do
  begin
   a[i]:=random(10);
   write(a[i]:2);
  end;

 writeln;

{-- algoritm sortirovki --}
 for i:=n downto 2 do
  for j:=1 to i-1 do
   if a[j]>a[j+1] then
    begin
     f:=a[j];
     a[j]:=a[j+1];
     a[j+1]:=f;
    end;

 writeln('Otsortirovannui massiv: ');

 for i:=1 to n do
  write(a[i]:2);
 readln;
end.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070