Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
 Аватар для Predvestnik
7 / 6 / 4
Регистрация: 09.10.2010
Сообщений: 192

перевод с Delphi

02.12.2011, 19:13. Показов 955. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
переделываю программу с делфи и столкнулся с трудностью

Delphi
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
{МНК со степенным базисом}
procedure TForm1.MNK1Click(Sender: TObject);
type matrix=array[0..100,0..100] of real;
     vector=array [0..100] of real; {Нумеруем точки с нуля}
var n,m,k,i:integer;
    x,f,c:vector;
    a:matrix;
    x0,x9,h,x1:real;
    t:cardinal;
 
procedure InputData(n:integer; var x,f:vector); {Ввод исходных данных}
var i:integer;
begin
 for i:=0 to n do begin
  x[i]:=StrToFloat(StringGrid1.Cells[0,i+1]);
  f[i]:=StrToFloat(StringGrid1.Cells[1,i+1]);
 end;
end;
 
function ex (a:real; n:integer):real;
 {Показательная функция для формирования матрицы Грама}
var i:integer;
    e:real;
begin
 e:=1;
 for i:=1 to n do e:=e*a;
 ex:=e;
end;
 
procedure Gram (n,m:integer; var x,f:vector; var a:matrix);
{Формирование матрицы Грама A по векторам данных X,F}
var i,j:integer;
    p,q,r,s:real;
begin
 for j:=0 to m do begin
  s:=0; r:=0; q:=0;
  for i:=0 to n do begin
   p:=ex(x[i],j);
   s:=s+p;
   r:=r+p*f[i];
   q:=q+p*ex(x[i],m);
  end;
  a[0,j]:=s;
  a[j,m]:=q;
  a[j,m+1]:=r;
 end;
 {Надо формировать только 1-ю строку и 2 последних столбца матрицы Грама,
  остальные элементы легко получить циклическим копированием:}
 for i:=1 to m do
 for j:=0 to m-1 do a[i,j]:=a[i-1,j+1];
end;
 
procedure Gauss(n:integer; var a:matrix; var x:vector);
{Решение СЛАУ методом Гаусса}
{a - расширенная матрица системы, x - вектор результата}
var i,j,k,l,k1,n1:integer;
    r,s:real;
begin
 {Прямой ход:}
 n1:=n+1;
 for k:=0 to n do begin
  k1:=k+1;
  s:=a[k,k];
  for j:=k1 to n1 do a[k,j]:=a[k,j]/s;
  for i:=k1 to n do begin
   r:=a[i,k];
   for j:=k1 to n1 do a[i,j]:=a[i,j]-a[k,j]*r;
  end;
 end;
 {Обратный ход:}
 for i:=n downto 0 do begin
  s:=a[i,n1];
  for j:=i+1 to n do s:=s-a[i,j]*x[j];
  x[i]:=s;
 end;
end;
 
function fi (m:integer; var c:vector; x1:real):real;
{Аппроксимирующая функция по найденным коэффициентам МНК}
{m - степень полинома, c - вектор коэффициентов,
 x1 - точка, в которой ищем значение}
var i:integer; p:real;
begin
 p:=c[m];
 for i:=m-1 downto 0 do p:=c[i]+x1*p;
 fi:=p;
end;
 
begin
 n:=StrToInt(Nl.Text);
 n:=n-1; {нумерация будет с нуля!}
 m:=StrToInt(M1.Text);
 InputData (n,x,f); {вводим данные}
 t:=gettickcount;
 Gram (n,m,x,f,a); {считаем матрицу Грама}
 Gauss (m,a,c); {решаем систему линейных уравнений}
 x0:=StrToFloat(Xn.Text);
 x9:=StrToFloat(Xk.Text);
 h:=StrToFloat(Hl.Text);
 k:=round((x9-x0)/h+1);
 x1:=x0;
 StringGrid2.RowCount:=k+1;
 for i:=1 to k do begin
  StringGrid2.Cells[0,i]:=FloatToStr(x1);
  StringGrid2.Cells[1,i]:=FloatToStr(fi(m,c,x1));
  x1:=x1+h;
 end;
 t:=gettickcount-t;
 Time1.Text:=FloatToStr(t);
end;
у меня в обработчике событий есть подпрограммы и функции, могу ли я так же и в Borland C++ Builder?
или куда мне их тогда сувать?
и как можно определить время выполнения алгоритма?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.12.2011, 19:13
Ответы с готовыми решениями:

Перевод с Delphi на C++
Помогите, пожалуйста, перевести код на C++ Builder с Delphi. unit Unit1; interface uses Windows, Messages, SysUtils,...

Перевод Delphi на С++
Добрый день! Есть код, который написан на делфи. Прошу помощи в переводе его на С++, поскольку с языком программирования делфи не знаком. ...

Перевод из Delphi
Помогите перевести пожалуйста :declare:

5
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069
02.12.2011, 19:59
Как вариант могу предложить скомпелировать проект в Rad Studio и прикрепить дельфи к проекту, чтото типа дельфисорс...
0
 Аватар для Predvestnik
7 / 6 / 4
Регистрация: 09.10.2010
Сообщений: 192
02.12.2011, 20:04  [ТС]
я бы так и сделал если бы нужно было только получить ответ, но программа для курсача и её нужно в двух среда реализовать, так что без переделывания не обойтись...
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
02.12.2011, 22:55
поменяйте конструкции типа
Pascal
1
var i:integer;
на конструкции типа
C++
1
int i;
, и выражения типа
Pascal
1
i:=0
на выражения типа
C++
1
i=0
, и будет вам счастье...
0
return (true);
 Аватар для mimicria
1977 / 1112 / 221
Регистрация: 19.04.2011
Сообщений: 2,346
03.12.2011, 07:02
Цитата Сообщение от Predvestnik Посмотреть сообщение
у меня в обработчике событий есть подпрограммы и функции, могу ли я так же и в Borland C++ Builder?
В дополнение к вышесказанному как процедуры, так и функции паскаля преобразуются к с примерно так:
C++
1
2
3
4
5
6
7
8
double ex (double a, int n)
{
 int i;
 double e;
 e=1;
 for (i=0; i<n; i++) e*=a;
 return e;
}
0
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
03.12.2011, 17:58
Цитата Сообщение от Predvestnik Посмотреть сообщение
у меня в обработчике событий есть подпрограммы и функции, могу ли я так же и в Borland C++ Builder?
Вложенных функций в C++ нет. Роль такой функции может сыграть только вложенный класс-функтор
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void __fastcall TForm1::MNK1Click(TObject *Sender)
{
    static class
    {
        public:
            void operator()(double a,  int n)
            {
                double e = 1.0;
                for(int i = 1; i <= n; ++i) e*= a;
                return e;
            }
    } ex; // ex можно использовать как функцию
 
    // ...
 
}
но это не очень хорошее решение.
Цитата Сообщение от Predvestnik Посмотреть сообщение
или куда мне их тогда сувать?
Как минимум, в отдельный заголовочный файл.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.12.2011, 17:58
Помогаю со студенческими работами здесь

Перевод с Delphi
Привет всем помогите пожалуйста перевести на C++Builder unit Unit1; interface uses Windows, Messages, SysUtils,...

Перевод из Delphi
Ребята, подскажите, как-то можно перевести из Delphi такой код???? with Panel1 do begin Canvas.Rect() Width...

Перевод delphi на с++
Помогите, пожалуйста первеести в код с++ builder procedure TForm1.Timer1Timer(Sender: TObject); begin with vishnya do begin if...

Перевод с Delphi
Что такое &quot;^&quot; и как его перевести на С++ procedure CorrectDevInfo(Buff : PChar) ; var i,idx : LongInt ; x : Word; ...

Перевод с Delphi на С++ Builder '07
Всем привет) Помогите этот код перевести с Borland 7 Delphi на С++ Builder '07 procedure TKrossvord.Image1MouseMove(Sender: TObject;...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru