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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2009, 19:13   #1
Алексей_xXx
Пользователь
 
Регистрация: 29.04.2009
Сообщений: 54
Радость Программа сортировки из учебника, запускаю её а пишет ошибку! Подскажите пожалуйста что не так!

Помогите пожалуйста исправить программу сортировки!
Пишет что ошибка какая-то, хотя написана эта прога была в книжке!

procedure TForm1.Button1Click(Sender: TObject);


const


SIZE=5;


var


a:array[1..SIZE] of integer;


k:integer; // текущий элемент массива


i:integer; // индекс для ввода и вывода массива


changed:boolean; // TRUE, если в текущем цикле были обмены


buf:integer; // буфер для обмена элементами массива


begin


// ввод массива

for i:=1 to SIZE do


a[i] := StrToInt(StringGrid1.Cells[i-1, 0] );

label2.caption:='';


// сортировка массива repeat


Changed:=FALSE; // пусть в текущем цикле нет обменов

for k:=l to SIZE-1 do


if a[k] > a[k+l] then


begin // обменяем k-й и k+1-й элементы

buf := a[k]; a[k] := a[k+l]; a[k+l] := buf;


changed := TRUE;

end;


// вывод массива

for i:=l to SIZE do


Label2.caption:=label2.caption+' '+IntTostr(a[i]);

Label2.caption:=label2.caption+#13;


until not changed; // если не было обменов, значит

// массив отсортирован


Label2.caption:=label2.caption

+#13+'Maccив отсортирован.';

end;
Алексей_xXx вне форума Ответить с цитированием
Старый 28.05.2009, 20:11   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Вручную набирали?
Цитата:
begin // обменяем k-й и k+1-й элементы

buf := a[k]; a[k] := a[k+l]; a[k+l] := buf;
Сказано же, что (k+1)-й. А у вас везде буква 'l' вместо единицы.

И еще repeat где-то пропустили. Похоже, перед
Код:
Changed:=FALSE;
надо поставить.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите, что не так с кодом Grisha248 Помощь студентам 2 24.05.2009 16:41
Подскажите пожалуйста запускаю программу Ctrl+F9, а ничего не происходит. Alt+F9 ошибок не выдает! Dialon Паскаль, Turbo Pascal, PascalABC.NET 5 06.02.2009 14:34
Подскажите что не так... SynonymMixer Работа с сетью в Delphi 10 26.01.2009 23:49
Подскажите что не так в программе? Toxass Общие вопросы Delphi 9 20.12.2008 10:11
Подскажите что тут не так!? dcl Общие вопросы Delphi 5 28.03.2007 08:15