На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
    > Помогите перевести , FORTRAN -> Pascal
      Я переписываю программу, написанную на Fortran (не мной) на Pascal (в Delphi). :wall:
      В связи с этим хотелось бы уточнить значение некоторых fortran-конструкций:
      1. Значим ли оператор CONTINUE или это просто логический разделитель?
      Пример:
      go to 40
      *участок понятного кода*
      * *
      * *
      40 CONTINUE
      dy(6)=0.0

      Могу я на Паскале сразу переходить на следующую после CONTINUE строку (dy(6)=0.0) или этот оператор имеет какой-то смысл, который нужно учитывать?

      2. Пример:
      GO TO (21,13), ifv
      Это значит, что переход осуществляется, если ifv принимает значения 1, 2 или 0, 1?

      3. Что значит строка:
      IF (str(j:j).eq.'*') then
      k=k+1

      4. Что значит фрагмент кода:
      DO 3 I=1,N
      A(1,I)=B(I)
      A(2,I)=B(I)
      A(3,I)=0
      3 A(4,I)=0

      Спасибо за помощь
        Да.. после 12 лет неконтакта с Fortran-ом он кажется такой дикостью.. :)

        1) Вроде это пустой оператор
        2) ..Не встречал
        3) .eq. - это сравнение на равенство, а перед ним, очевидно, выбор подстроки
        4) Похоже на цикл, аналог for, 3 - метка конца
          Fortran жил, жив и будет жить

          1. Continue --- пустой оператор (нечего не делает) Нужен он для указания точки перехода по Goto или обозначает конец цикла
          2. В жизни не встречал
          3. Сравнивает j символ строки с '*' !!! Если символ равен звездочке то k = k + 1 и.т.д. до End If
          4. Простой цикл по I от 1 до N с меткой окончания 3 ( Последняя строка находится в теле цикла)
            Elf
            ...
            2. Помню такой оператор (а это, похоже, его модификация)
            GOTO (M1,M2,M3) I
            if I < 0 goto M1
            if I = 0 goto M2
            if I > 0 goto M3
            4. Действительно простой цикл по N, но в зависимости от ключа компилятора:
            - выполмяется всегда, хотя бы 1 раз - даже при N < 1
            или
            - при N < 1 переход на строку после строки с меткой 3
            Сделано для совместимости со старыми версиями.
              ...
              2. это ты путаеш с арифметическим If
              IF (усл. выражение) M1,M2,M3
              Если (усл. выражение) > 0 то на M1
              Если (усл. выражение) == 0 то на M2
              Если (усл. выражение) < 0 то на M3

              Нашёл Это вычисляемый GOTO

              GO TO (M1,M2,...Mn), ifv
              вычисляеш значение ifv и переходиш на соответствующую метку начиная с 1
              ifv = 1 то Goto M1
              ifv = 2 то Goto M2

              а если ifv находится вне диапазона (1...n) то выполняется следущий оператор за Goto
              P.S. Goto бывают : безусловный, вычисляемый и по предписанию
              ...
              4. Вариант б) приходится на стандарт Фортран77, если использовался компилятор более старый то вариант а)
                Mav
                Согласен с 2...
                Значит уже забыл (15 лет не видел FORTRAN, даже книжек под рукой нет).
                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                0 пользователей:


                Рейтинг@Mail.ru
                [ Script execution time: 0,1903 ]   [ 14 queries used ]   [ Generated: 19.05.24, 07:37 GMT ]