Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2012, 21:52   #1
minor
 
Регистрация: 22.12.2008
Сообщений: 8
По умолчанию Перевод программы с фортрана на си

Здравствуйте!кто знаком с языками программирования фортрана и си помогите плиз с маленькой прогой,возможно не бесплатно

Последний раз редактировалось minor; 14.03.2012 в 22:37.
minor вне форума Ответить с цитированием
Старый 14.03.2012, 23:25   #2
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Ещё один страдалец!...
...
1. А надо ли?..
2. Какой Фортран? IV/66?.. 77?.. 90?..
3. "Маленькая" это сколько строк?
4. Операторы EQUIVALENCE есть?
5. Из какой прикладной области задача?
Вообще, запаковал бы её да выложил сюда. Было бы проще решение принимать...
Vago вне форума Ответить с цитированием
Старый 15.03.2012, 00:48   #3
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,336
По умолчанию

2minor
случайно не МГУПИ, Корягин? не поверю, что еще где-то дают такие бредовые задания. если это конечно вообще студенческое задание)
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 15.03.2012, 02:33   #4
minor
 
Регистрация: 22.12.2008
Сообщений: 8
По умолчанию

вот такая)
Изображения
Тип файла: gif фильтр.gif (22.8 Кб, 162 просмотров)
minor вне форума Ответить с цитированием
Старый 15.03.2012, 10:52   #5
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Код:
#include <math.h>

void LPSB( int mm, double t, double bw, double* a1, double* a2, double* bzero ) {

   double   a, b, c, d, e, f, g, h,
            fn, fact, wedge, sector, ang ;
   int      i, it, m, m1, m2, m3 ;

   double PI = 4. * atan( 1. ) ;

   fact = PI * t * bw ;
   fact = sin( fact ) ;
   f = 1. ;
   m = mm ;
   m1 = m / 2 ;
   m3 = m1 ;
   if ( m1 != 0 ) {
      m2 = m ;
      a = (double)m2 ;
      sector = PI / a ;
      wedge = sector / 2. ;
      for ( i = 0; i < m1; i++ ) {
         // В Фортране I начиналось с 1, поэтому там 
         // FN = I-1
         // В Си индексация с 0, поэтому отнимать 1 не нужно!
         fn = (double)i ;
         // У Отнеса и Эноксона В ТЕКСТЕ переменная ANG ЕСТЬ,
         // а в программе из приложения её "сократили" :)
         ang = fn * sector + wedge ;
         b = fact * sin( ang ) ;
         c = 1. - fact * fact ;
         d = 0.5 * ( -c + sqrt( c * c + 4. * b * b ) ) ;
         e = sqrt( d + 1. ) + sqrt( d ) ;
         g = 2.* (( 2. * b * b / d ) - 1.) / ( e * e ) ;
         h = -1. / pow( e, 4. ) ;
         f = f * ( 1. - g - h ) ;
         a1[i] = -g ;
         a2[i] = -h ;
      }
   }
   it = m - 2 * m1 ;
   if ( it != 0 ) {
      m3 = m1 + 1 ;
      a = fact * fact ;
      g = 2. * a + 1. - 2 * fact * sqrt( a + 1. ) ;
      // Индексы - Си-шные!!
      a1[m3-1] = -g ;
      a2[m3-1] = 0.;
      f = f * ( 1. - g ) ;
   }
   a = (double)m3 ;
   *bzero = pow( f, 1./a ) ;

   return ;
}
ADDED 13:39 CET
А вообще-то, для таких крошечных программок:
1. В который раз спрашиваем себя "А надо ли?".
2. Прикручиваем Фортран к C++ СТАТИЧЕСКИ:
minor.zip
(только псицу в одном месте для Редактора связей в настройках проекта взвести надо).
3. Спокойно сосредотачиваемся на прикладной задаче и перестаём бояться того, что мы ходим по минному полю, на котором индекс может оказаться не только индексом, но ещё и "ключиком" к каким-то опосредованным вычислениям.

Последний раз редактировалось Vago; 15.03.2012 в 16:39.
Vago вне форума Ответить с цитированием
Старый 15.03.2012, 16:53   #6
minor
 
Регистрация: 22.12.2008
Сообщений: 8
По умолчанию

Спасибо большое!!!+++
minor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод программы из С++ в С# Tol-333 C# (си шарп) 0 15.12.2011 11:00
Перевод программы (С++) Кристинка89 Помощь студентам 1 22.11.2011 15:45
Перевод программы с Pascal в C++ !!! !! ProgFrog Помощь студентам 0 09.04.2011 14:21
перевод программы из фортрана 6(девелопер студио) в бэйзик 6 Kracozebr Помощь студентам 7 20.07.2010 12:08
Перевод фортрана в С varsus Общие вопросы C/C++ 4 10.01.2009 14:18