Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
0 / 0 / 1
Регистрация: 15.03.2014
Сообщений: 42

Из Dev-C++ в C++ Builder

14.09.2014, 01:24. Показов 1619. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
#include <conio.h>
#include <cstdlib>
const int theN = 10;
const int theK = 4;
int data[theK];
 
void Step( int sum, int num, int val )
{
    if (sum <= 0 || num <= 0 || sum < val) return;
    
    if (num == 1) {
        data[theK - 1] = sum;
        for (int i = 0; i < theK; ++i)
            printf("%i ", data[i]);
        printf("\n");
        return;
    }
    
    for (int i = val; i < sum; ++i) {
        data[theK - num] = i;
        Step(sum - i, num - 1, i);
    }   
}
 
int main( void ) 
{
    Step(theN, theK, 1); 
     system("pause");
    return 0;
}
Надо реализовать под C++ Builder. Вывод в Memo-поле (Memo1);
Делал так:
Unit.cpp:
C++
1
2
3
4
5
6
int theN=StrToInt(Edit1->Text);
int theK=StrToInt(Edit2->Text);
double* data = new double[theK];
 
Step(theN, theK, 1);
    return 0;
Unit.h:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
class TForm1 : public TForm
{
__published:    // IDE-managed Components
    TLabel *Label1;
    TButton *Button1;
    TLabel *Label2;
    TLabel *Label3;
    TEdit *Edit1;
    TEdit *Edit2;
    TButton *Button2;
    TMemo *Memo1;
    TButton *Button3;
    TImage *Image1;
    void __fastcall Label1Click(TObject *Sender);
    void __fastcall Button1Click(TObject *Sender);
    void __fastcall Button3Click(TObject *Sender);
    void __fastcall Button2Click(TObject *Sender);
private:    // User declarations
public:     // User declarations
    __fastcall TForm1(TComponent* Owner);
 
void Step( int sum, int num, int val )
{
    if (sum <= 0 || num <= 0 || sum < val) return;
 
    if (num == 1) {
        data[theK - 1] = sum;
        for (int i = 0; i < theK; ++i)
            Memo1->Lines->Add(data[i] /n);
        return;
    }
 
    for (int i = val; i < sum; ++i) {
        data[theK - num] = i;
        Step(sum - i, num - 1, i);
    }
}
 
};
И еще то так, то так...Как правильно?


Если так, то:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
//---------------------------------------------------------------------------
 
 
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Memo1->Clear();
 
int theN=StrToInt(Edit1->Text);
int theK=StrToInt(Edit2->Text);
double* data = new double[theK];
 
void Step( int sum, int num, int val )
{  <<<======
    if (sum <= 0 || num <= 0 || sum < val) return;
 
    if (num == 1) {
        data[theK - 1] = sum;
        for (int i = 0; i < theK; ++i)
            Memo1->Lines->Add(data[i] /n);
        return;
    }
 
    for (int i = val; i < sum; ++i) {
        data[theK - num] = i;
        Step(sum - i, num - 1, i);
    }
}  <<<======
 
Step(theN, theK, 1);
    return 0;
 
 
}
//---------------------------------------------------------------------------
Ругается на "<<<======"
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.09.2014, 01:24
Ответы с готовыми решениями:

Как использовать компоненты скомпилированные для C++ Builder 2007 в C++ Builder 2010?
Народ! Такая проблема... Есть набор компонентов т.н. Dicom VCL. Сайт производителя - http://www.medicalconnections.co.uk/. У них на...

Можно ли использовать C++ Builder v11 если купить Embarcadero C++Builder XE8
День добрый! Есть старый проект С++. Он компилируется на CodeGear™ C++Builder Version 11. Но на это ПО утеряна лицензия, сейчас...

Как заставить проект Builder 6 загруженный в Builder 2007 отображать новые кнопки
Люди добрые, кто нибудь встречался с такой проблемой: Я установил Builder 2007, загрузил в него проект, сделанный в Builder 6, при этом...

5
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
14.09.2014, 02:12
Вложеные ф-ции нельзя, это не дельфи.
0
0 / 0 / 1
Регистрация: 15.03.2014
Сообщений: 42
14.09.2014, 10:07  [ТС]
Цитата Сообщение от gumi250 Посмотреть сообщение
Вложеные ф-ции нельзя, это не дельфи.
А как тогда быть?
0
Модератор
 Аватар для D1973
9929 / 6467 / 2457
Регистрация: 21.01.2014
Сообщений: 27,423
Записей в блоге: 3
14.09.2014, 10:24
Лучший ответ Сообщение было отмечено QAQA как решение

Решение

Ну можно как-то так реализовать... (Что-то считает, насколько правильно - не знаю, не вникал)
*.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <vcl.h>
#pragma hdrstop
#include "Unit6.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm6 *Form6;
//---------------------------------------------------------------------------
__fastcall TForm6::TForm6(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm6::Button1Click(TObject *Sender)
{
  theN=StrToInt(Edit1->Text);
  theK=StrToInt(Edit2->Text);
  data = new double[theK];
  Memo1->Lines->Clear();
  Step(theN, theK, 1);
}
//---------------------------------------------------------------------------
void __fastcall TForm6::Step(int _Sum, int _Num, int _Val)
{
  if (_Sum <= 0 || _Num <= 0 || _Sum < _Val) return;
  if (_Num == 1)
   {
     data[theK - 1] = _Sum;
     for (int i = 0; i < theK; ++i)
      Memo1->Lines->Add(data[i]);
     Memo1->Lines->Add("\n");
     return;
   }
  for (int i = _Val; i < _Sum; ++i)
   {
     data[theK - _Num] = i;
     Step(_Sum - i, _Num - 1, i);
   }
}
//---------------------------------------------------------------------------

*.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#ifndef Unit6H
#define Unit6H
//---------------------------------------------------------------------------
#include <System.Classes.hpp>
#include <Vcl.Controls.hpp>
#include <Vcl.StdCtrls.hpp>
#include <Vcl.Forms.hpp>
//---------------------------------------------------------------------------
class TForm6 : public TForm
{
__published:    // IDE-managed Components
    TButton *Button1;
    TMemo *Memo1;
    TEdit *Edit1;
    TEdit *Edit2;
    void __fastcall Button1Click(TObject *Sender);
private:    // User declarations
    double *data;
    int theN, theK;
    void __fastcall Step(int, int, int);
public:     // User declarations
    __fastcall TForm6(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm6 *Form6;
//---------------------------------------------------------------------------
#endif

На картинке результат работы
Миниатюры
Из Dev-C++ в C++ Builder  
1
0 / 0 / 1
Регистрация: 15.03.2014
Сообщений: 42
14.09.2014, 13:35  [ТС]
Цитата Сообщение от D1973 Посмотреть сообщение
Ну можно как-то так реализовать... (Что-то считает, насколько правильно - не знаю, не вникал)
Да, всё работает. А как сделать вид в Memo1 такого типа (Строчка-абзац-строчка): "{1, 2, 3} \n { 4, 5, 6 } \n"?

C++
1
2
3
4
5
6
7
8
9
10
 {
     data[theK - 1] = _Sum;
     Memo1->Lines->Add("{");
     for (int i = 0; i < theK; ++i)
        Label4->Caption = data[i];
        Memo1->Lines->Add(data[i]) + ",";  // Не добавляет запятую
        Memo1->Lines->Add("}");
        Memo1->Lines->Add("\n");
     return;
   }
Но тут всё в столбик, даже не знаю с какой стороны подойти. Может что-то типа \n \t \etc ? Смотрел, ничгео подобного не нашёл...
0
Модератор
 Аватар для D1973
9929 / 6467 / 2457
Регистрация: 21.01.2014
Сообщений: 27,423
Записей в блоге: 3
14.09.2014, 19:39
Если я правильно тебя понял, то надо так, ка на скрине.
Тогда просто замени функцию на то, что написано
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void __fastcall TForm6::Step(int _Sum, int _Num, int _Val)
{
  String S = "";
  if (_Sum <= 0 || _Num <= 0 || _Sum < _Val) return;
  if (_Num == 1)
   {
     data[theK - 1] = _Sum;
     for (int i = 0; i < theK; ++i)
        S += FloatToStr(data[i]) + " ";
     Memo1->Lines->Add(S);
     Memo1->Lines->Add("\n");
     return;
   }
  for (int i = _Val; i < _Sum; ++i)
   {
     data[theK - _Num] = i;
     Step(_Sum - i, _Num - 1, i);
   }
}
Миниатюры
Из Dev-C++ в C++ Builder  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.09.2014, 19:39
Помогаю со студенческими работами здесь

Какой компилятор C++ Builder использовать? Rad Studio 2009 глючит. C++ Builder 6 старый
Много раз замечал непонятки с компилятором. Масла в огонь подлил Какой посоветуете?

Как заставить проект сделанный на C++ Builder 6.0 работать на компьютере на котором не установлен этот самый Builder
вопрос абсолютно нубский,но очень волнует...но как заставить проект сделанный на C++ Builder 6.0 работать на компьютере на котором не...

можно ли в С++ Builder 2006 писать программы на С++ Builder 6?
подскажите, пожалуйста... если программка написана на С++ Builder 2006, могу ли я перевести проект под С++ Builder 6? если да, то как? ...

Перевод проекта с Builder 2010 на Builder 10 Seattle
Добрый день. Перевожу проект написанный на С++ с Builder 2010 на Builder 10 Seattle. В проекте для работы с базой данных...

Ошибка E2316 (переход с Builder 6, на Builder 2010)
В общем проект создавался на Builder 6, теперь я его пытаюсь скомпилировать на Builder 2010. Выдает ошибку: Помогите пожалуйста!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru