| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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 | ||
Ну ,я не могу программу сделать( Пробовал но не получалось почему-то...Вместо результата ноли писало...Мучался-Мучался Но не смог,вот и решил за помошью обратиться! Программу не могу написать нормальную=( |
| Автор: orthrus 9.2.2010, 04:38 |
| Если хочешь чтоб за тебя написали прогу то обращайся в http://forum.vingrad.ru/forum/Vingrad-help-center.html, если хочешь чтоб помогли разобраться и найти ошибку то выкладывай сюда то что сделал |
| Автор: AgainstAllSenses 9.2.2010, 04:44 | ||
#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. |