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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.11.2010, 12:04   #1
nexzis
Пользователь
 
Регистрация: 01.11.2010
Сообщений: 48
По умолчанию сортировка массива из f1book

Код:

procedure TForm1.Button5Click(Sender: TObject);
var i,j:integer;   s:string ;
begin
s:='';
an:=r2-r1+1;  am:=c2-c1+1;
if (an=1) and (am=1) then begin
ShowMessage('Âûäåëåíà âñåãî îäíà êëåòêà'+#13+'ïîâòîðèòå ìàðêèðîâêó è ÎÊ '+#13);
                        exit;
                        end ;
setlength(c,an,am);

for i:=0 to an-1 do  begin
for j:=0 to am-1 do begin
c[i,j]:=F1book1.NumberRC[r1+i,c1+j];
s:=s+floattostr(c[i,j])+#9;
end;
s:=s+#13;
end;
memo1.Lines.Add(inttostr(5));
memo1.Lines.Text:=s;

end;
  

procedure TForm1.Button6Click(Sender: TObject);
var i,j:integer; s:string;
begin
if  RadioButton1.Checked =true  then begin
      for i:=1 to 5 do
      s :=s+inttostr(a[i])+#9;
      label1.Caption:= s;
      end;

if  RadioButton2.Checked =true then begin
      for i:=1 to 5 do
      s:=s+floattostr(b[i])+#9;
      label1.Caption:= s;
      end;

if  RadioButton3.Checked =true  then begin
      for i:=0 to an-1 do
      for j:=0 to am-1 do
      s:=s+floattostr(c[i,j])+#9;
      label1.Caption:= s;
      end;


procedure TForm1.Button7Click(Sender: TObject);
const SIZE=5;
var  k:integer;   i,j:integer;   s:string;
    changed:boolean; { TRUE, åñëè â òåêóùåì öèêëå áûëè îáìåíû }
    buf:real;     { áóôåð äëÿ îáìåíà ýëåìåíòîâ ìàññèâà }
   d:array[1..size] of real;
  begin
    s:=label1.Caption ;
    for i:=1 to size do

begin
   if RadioButton1.Checked =true then
   d[i]:=a[i] ;
   if RadioButton2.Checked =true then
   d[i]:=b[i] ;
   if RadioButton3.Checked =true then
   d[i]:=c[an,am] ;
end;

label2.Caption:='øàãè ñîðòèðîâêè' +#13;
 repeat
       changed:=FALSE;
       for k:=1 to SIZE-1 do
   begin
 if d[k] > d[k+1]  then begin
    { îáìåíÿåì k-ûé è k+1-ûé ýëåìåíòû}
	        buf:=d[k];
	        d[k]:=d[k+1];
	        d[k+1]:=buf;
                changed:=TRUE;
 end;
 end;
         { âûâîä ìàññèâà }
	 for i:=1 to SIZE do
         Label2.caption:=label2.caption+#9+floatTostr(d[i]);
         Label2.caption:=label2.caption+#13+#13;
    until not changed;
    Label2.caption:=label2.caption+'Ìàññèâ îòñîðòèðîâàí.';
end;
вопрос в следующем
я присваиваю динамическому массиву d значения статического массива c(одномерного массива)
при сортировке выдаёт экспоненциальную запись одного и того же числа 5 раз что не так ?не могу разобраться
ЗЫ: вроде код оформил
Вложения
Тип файла: rar ввод- вывод.rar (209.9 Кб, 7 просмотров)

Последний раз редактировалось nexzis; 26.11.2010 в 21:06.
nexzis вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка массива методами предсортировки и слияния, и пирамидальная сортировка. lenny_24 Помощь студентам 2 17.04.2011 18:57
Сортировка массива Weyner Помощь студентам 2 23.10.2010 08:32
Сортировка массива SGadX Помощь студентам 0 22.10.2010 12:56
сортировка массива ts-alan Общие вопросы C/C++ 7 08.08.2010 01:47
Сортировка массива на Си Покемон Общие вопросы C/C++ 2 01.11.2008 08:24