Switch to English?
Yes
Переключитись на українську?
Так
Переключиться на русскую?
Да
Przełączyć się na polską?
Tak
Розмістіть свій проєкт безплатно та почніть отримувати пропозиції від фрилансерів-виконавців уже через хвилини після публікації!

Переробка коду з C в C++

Translated255 UAH

Відгук замовника про співпрацю з Виктором Л.

Якість
Професіоналізм
Вартість
Контактність
Терміни

Швидко і якісно виконував роботу. Дуже дякую!

Профіль видалено | Сейф Сейф

Відгук фрилансера про співпрацю з замовником

Оплата
Постановка завдання
Чіткість вимог
Контактність

Чиста задача, швидка оплата і відмінна комунікація, рекомендую до співпраці!

  1. 1275    23  1
    Переможець1 день255 UAH

    Вітаю вас, Влад
    Я переписую код і зроблю навіть трохи оптимізації, якщо хочеш.
    Зверніться

  2. 1 ставку приховано
  • Профіль видалено
    26 травня 2020, 20:53 |

    Здравствуйте, хотелось бы посмотреть код

  • Профіль видалено
    26 травня 2020, 21:19 |

    Прикрепил в ответ на другой комментарий 

  • Андрій Федорко
    26 травня 2020, 21:02 |

    Любой С-шный код уже компилириуется на С++. Плюсы принесли з собой новые функции, и аналоги для уже существущих. Если вы уверены что перевод вам действительно нужно, то скиньте пожалуйста код.
    Писал на чистом С, люблю математику. С задачей справлюсь.

  • Профіль видалено
    26 травня 2020, 21:18 |

    Вот программа на C:


    //Cubic spline interpolation program
    //when we have two columns of data x and y in input file:
    //
    //x0 y0
    //x1 y1
    //...
    //xn yn
    //
    //and we want to find such function f(x)  
    //where f(xi) = yi
    //and f(x) is cubic function on every [x_k-1, x_k] segment
    //and f(x), f'(x), f''(x) are continual
    //the result is four columns of cubic polinom coefficients
    
    #include <math.h>
    #include <stdio.h>
    #include <process.h>
    float *x, *y, *h, *l, *delta, *lambda, *c, *d, *b;
    int N;
    char filename[256];
    FILE* InFile=NULL;
    void count_num_lines(){
       //count number of lines in input file - number of equations
       int nelf=0;       //non empty line flag
       do{
           nelf = 0;
           while(fgetc(InFile)!='\n' && !feof(InFile)) nelf=1;
           if(nelf) N++;
       }while(!feof(InFile));
       N--;
    }
    void readmatrix(){
       int i=0;
       //read matrixes a and b from input file
       for(i=0; i<N+1; i++){
           fscanf(InFile, "%f", &x[i]);
           fscanf(InFile, "%f", &y[i]);
       }
    }
    
    void allocmatrix(){
       //allocate memory for matrixes
       x = new float[N+1];
       y = new float[N+1];
       h = new float[N+1];
       l = new float[N+1];
       delta = new float[N+1];
       lambda = new float[N+1];
       c = new float[N+1];
       d = new float[N+1];
       b = new float[N+1];
    }
    void freematrix(){
       delete [] x;
       delete [] y;
       delete [] h;
       delete [] l;
       delete [] delta;
       delete [] lambda;
       delete [] c;
       delete [] d;
       delete [] b;
    }
    
    void printresult(){
       int k=0;
       printf("\nA[k]\tB[k]\tC[k]\tD[k]\n");
       for(k=1; k<=N; k++){
           printf("%f\t%f\t%f\t%f\n", y[k], b[k], c[k], d[k]);
       }
    }
    void testresult(){
       float start = x[0];
       float end = x[N];
       float step = (end - start)/20;
       FILE* OutFile = fopen("test.txt", "wt");
       for(float s = start; s<=end; s+= step){
           //find k, where s in [x_k-1; x_k]
           for(int k=1; k<=N; k++){
           if(s>=x[k-1] && s<=x[k]){
               break;
           }
           }
           float F = y[k] + b[k]*(s-x[k]) + c[k]*pow(s-x[k], 2) + d[k]*pow(s-x[k], 3);
           fprintf(OutFile, "%f\t%f\n", s,  F);
       }
       fclose(OutFile);
    }
    void cls(){
       for(int i=0; i<25; i++) printf("\n");
    }
    void main(){
       int k=0;
       cls();
       do{
           printf("\nInput filename: ");
           scanf("%s", filename);
           InFile = fopen(filename, "rt");
       }while(InFile==NULL);
       count_num_lines();
       rewind(InFile);
       allocmatrix();
       readmatrix();
       for(k=1; k<=N; k++){
           h[k] = x[k] - x[k-1];
           if(h[k]==0){
           printf("\nError, x[%d]=x[%d]\n", k, k-1);
           return;
           }
           l[k] = (y[k] - y[k-1])/h[k];
       }
       delta[1] = - h[2]/(2*(h[1]+h[2]));
       lambda[1] = 1.5*(l[2] - l[1])/(h[1]+h[2]);
       for(k=3; k<=N; k++){
          delta[k-1] = - h[k]/(2*h[k-1] + 2*h[k] + h[k-1]*delta[k-2]);
          lambda[k-1] = (3*l[k] - 3*l[k-1] - h[k-1]*lambda[k-2]) /
                (2*h[k-1] + 2*h[k] + h[k-1]*delta[k-2]);
       }
       c[0] = 0;
       c[N] = 0;
       for(k=N; k>=2; k--){
          c[k-1] = delta[k-1]*c[k] + lambda[k-1];
       }
       for(k=1; k<=N; k++){
          d[k] = (c[k] - c[k-1])/(3*h[k]);
          b[k] = l[k] + (2*c[k]*h[k] + h[k]*c[k-1])/3;
       }
       printresult();
       testresult();
       freematrix();
    }
  • Марк Славенко
    26 травня 2020, 21:36 |

    Вам тут из того что можно поменять.
    Разве что изменить printf на cout, да и все

Актуальні фриланс-проєкти в категорії C та C++

Порівняльний аналіз ефективності кастомного ПЗ (v2.2-field) та еталонного ПЗ (Meshtastic v2.x)

1000 UAH

Порівняльний аналіз ефективності кастомного ПЗ (v2.2-field) та еталонного ПЗ (Meshtastic v2.x) на ідентичній апаратній платформі (ESP32 + SX1268, 2W) за критеріями дальності, пропускної спроможності, стабільності лінка та енергоспоживання. Провести тести з вимірюваннями з…

C та C++C# ∙ 1 день 6 годин тому ∙ 2 ставки

Консультація та аудит поточного проєкту на Odoo 19 Community Edition

Шукаємо Odoo Developer — соло-розробника з досвідом розробки на Odoo 19 Community Edition, у тому числі за допомогою Claude Code. Нам потрібен спеціаліст, який має успішно реалізовані проєкти в Odoo та практичний досвід розробки з використанням Claude Code. Важливо: розглядаємо…

C та C++Javascript та Typescript ∙ 4 дні 7 годин тому ∙ 7 ставок

Розробка ПЗ для Arduino (RF-модулі 3–7.5 ГГц, автоматичне сканування частот)

Потрібно розробити систему на Arduino для автоматичного пошуку активного аналогового відеосигналу та автоматичного налаштування передавача на виявлену частоту.Планується використання трьох окремих приймально-передавальних модулів: 3000–4200 МГц; 4900–6000 МГц; 6100–7500…

C та C++Вбудовані системи та мікроконтролери ∙ 5 днів 8 годин тому ∙ 4 ставки

Чорна Україна (RP-проект на базі MTA)

51 895 UAH

Виправлення помилок різної складності, як на зображеннях. Коригування навігації карти. Виправлення дірок на карті, адаптація транспортних засобів до проекту, видалення логотипів або їх переписування.

C та C++Python ∙ 6 днів 20 годин тому ∙ 22 ставки

Інженер інфраструктури резидентних проксі

Ми будуємо мережу резидентних проксі з нуля — повністю власну, без сторонніх постачальників. Нам потрібен один винятковий мережевий інженер, щоб побудувати всю технічну основу. Що ви будете будувати: - Android фоновий SDK, який маршрутизує проксі-трафік через пристрої…

C та C++DevOps ∙ 11 днів 4 години тому ∙ 15 ставок

Замовник
Профіль видалено


Проєкт опублікований
6 років тому
102 перегляди
Мітки
  • C/C /C#