Форум программистов, компьютерный форум CyberForum.ru

Перевести функцию с Delphi на C++ - C++

Восстановить пароль Регистрация
 
zasadadada
2 / 2 / 0
Регистрация: 03.05.2013
Сообщений: 338
13.07.2015, 10:43     Перевести функцию с Delphi на C++ #1
Ребята, может кто знает хотя бы примерно C или C++ , не понимаю код делфи, а функция на нём.
Delphi
1
2
3
4
5
6
7
8
9
10
11
    type TSingleArray = Array of Single;
    procedure UncleHilbert(var FilterCoefficients: TSingleArray; N : Integer);
    var i,j : Integer;
    begin
    SetLength(FilterCoefficients,N);
    for i:=0 to (N div 4) do
      begin
       FilterCoefficients[(N div 2)+(2*i-1)]:=+2/(PI*(2*i-1));
       FilterCoefficients[(N div 2)-(2*i-1)]:=-2/(PI*(2*i-1));
      end;
    end;
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.07.2015, 10:43     Перевести функцию с Delphi на C++
Посмотрите здесь:

Перевести с Delphi на C/C++. C++
Перевести простую программку с Delphi C++
Перевести с DELPHI в С++ C++
Перевести код программы из Delphi в C++ C++
Перевести синтаксис программы с Delphi в C++, очень нужно C++
Перевести с Delphi на C++. Ускорение умножения двоичных чисел с анализом двух разрядов C++
Программа, реализующая минимизированную логическую функцию. Перевести код с C# C++
Перевести с Delphi на C++. Найти элементы последовательности, представимые в виде суммы двух квадратов C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
_N_
17 / 17 / 7
Регистрация: 17.02.2013
Сообщений: 82
13.07.2015, 11:23     Перевести функцию с Delphi на C++ #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Я не проверял, но вроде без ошибок...
На С:
C++
1
2
3
4
5
6
7
8
9
10
11
#define PI 3.14159
 
float* UncleHilbert(float* FilterCoefficients, int N) {
    int i,j;
    FilterCoefficients = (float*) malloc (N * sizeof(float));
    for (i = 0; i <= (N / 4); i++) {
       FilterCoefficients[(N / 2)+(2*i-1)] = +2.0/(PI*(2*i-1));
       FilterCoefficients[(N / 2)-(2*i-1)] = -2.0/(PI*(2*i-1));
    }
    return  FilterCoefficients;
}
И не забудь потом где-то сделать free(FilterCoefficients);

На C++:
C++
1
2
3
4
5
6
7
8
9
10
11
#define PI 3.14159
 
float* UncleHilbert(float* FilterCoefficients, int N) {
    int i,j;
    FilterCoefficients = new float[N];
    for (i = 0; i <= (N / 4); i++) {
       FilterCoefficients[(N / 2)+(2*i-1)] = +2.0/(PI*(2*i-1));
       FilterCoefficients[(N / 2)-(2*i-1)] = -2.0/(PI*(2*i-1));
    }
    return  FilterCoefficients;
}
И не забудь потом где-то сделать delete [] FilterCoefficients;

P.S. 1) переменная j нигде не используется.
2) можно сделать так:
C++
1
 for (int i = 0; i <= (N / 4); i++) {
и удальть строку:
C++
1
int i; //  int i,j;
3) относительно PI можно сделать и так:
C++
1
2
3
#define _USE_MATH_DEFINES
#include <math.h>
// использовать константу M_PI
zasadadada
2 / 2 / 0
Регистрация: 03.05.2013
Сообщений: 338
13.07.2015, 12:24  [ТС]     Перевести функцию с Delphi на C++ #3
_N_ спасибо большое, выручил.
Yandex
Объявления
13.07.2015, 12:24     Перевести функцию с Delphi на C++
Ответ Создать тему
Опции темы

Текущее время: 09:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru