Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Помогите ПЛИЗ с написанием программы в C++Builder


Автор: AgainstAllSenses 9.2.2010, 00:29
Привет всем. 
У меня возникла проблема при написании программы , в C++ Builder 6. Мне нужно написать программу "двухпутевое слияние по алгоритму S".
Суть программы : В програму задан массив , заданы элементы массива . есть 2 элемента на Form(е) -Кнопка Button1 и окно вывода ListBox1 .
При нажатии на кнопку происходит двухпутевое слияние и на площадь ListBox1 выдается уже отсортированные элементы массива . Суть алгоритма S , заключается в : В исходной виде все отрезки имеют длину 1, после первого шага она равна 2,  после второго 4, после третьего - 8, после к-го шага - 2 в степени к .
Если кто-то делал эту программу или может сделать помогите пожалуйста , сдать программу нужно через день а у меня с ней ступор..Если кто-то может помочь , Очень прошу...
 Заранее спасибо за ОтВеты!

Автор: Данкинг 9.2.2010, 01:09
В чём именно вопрос-то?

Автор: AgainstAllSenses 9.2.2010, 03:19
Цитата(Данкинг @ 9.2.2010,  01:09)
В чём именно вопрос-то?

Ну ,я не могу программу сделать(  Пробовал но не получалось почему-то...Вместо результата ноли писало...Мучался-Мучался Но не смог,вот и решил за помошью обратиться!  Программу не могу написать нормальную=(

Автор: orthrus 9.2.2010, 04:38
Если хочешь чтоб за тебя написали прогу то обращайся в http://forum.vingrad.ru/forum/Vingrad-help-center.html, если хочешь чтоб помогли разобраться и найти ошибку то выкладывай сюда то что сделал

Автор: AgainstAllSenses 9.2.2010, 04:44
Цитата(orthrus @ 9.2.2010,  04:38)
Если хочешь чтоб за тебя написали прогу то обращайся в http://forum.vingrad.ru/forum/Vingrad-help-center.html, если хочешь чтоб помогли разобраться и найти ошибку то выкладывай сюда то что сделал


#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}


 int K[20]; = {12, 31, 5, 22, 7, 16, 8, 10};
  

  int main()
{
int d,  p, q, r, i, j, l, k, f, N=8;
bool s=true;

 s=true; p=1;

 do
{
 if (s)
 {
   i=1; j=N; k=N+1; l=2*N;
  }
  else
  {
    k=1; l=N; i=N+1; j=2*N;
   }

 d=1; q=p; r=p;

 found:
 if(K[i] <= K[j])
 {
 k=k+d;
 K[k]=K[i];
 i=i+1;
 q=q-1;
 if(q>0) goto found;

 do
 {
  k=k+d;
  if(k==l)  goto found2;
  K[k]=K[j];
  j=j-1;r=r-1;
   } while (r>0);
  }
  else
  {
   k=k+d;
   K[k]=K[j];
   j=j-1;
   r=r-1;
   if(r>0) goto found;

    do
    {
     k=k+d;
     if(k==l) goto found2;
     K[k]=K[i];
     i=i+1; q=q-1;
      }      while(q>0);
     }
    q=p;r=p;d=-d; f=k; k=l; l=f;
    goto found;
  found2:
  p=p+p;
  if (s) s=false;
  else s=true;
  } while(p<N);


  for (int i=1; i<=N; i++)
   {
    K[i]=K[N+i];
   }
  return 0;
  }
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
 int i;

   for (int i=1; i<=8; i++)
  {
    ListBox1->Items->Add(K[i]);
  }

}



Вот то , что я написал , ошибок не находит , НО в окно вывода приходят сплошные ноли а не отсортированый массив ! 
Я не прошу написать мне программу , просто у еня не получается никак вот и сприсил может у кого нить что-то похожее есть...Помогите плиз ! Я не знаю что тут не так =((

Автор: smoke_man 9.2.2010, 08:03
Убери int main, а весь код в ней повесь на обработчик кнопки(button), результат вычисления можно вывести, например, в memo.  

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)