0 / 0 / 0
Регистрация: 08.05.2015
Сообщений: 150

Перевод кода из Fortran в QBasic

21.10.2015, 14:08. Показов 3432. Ответов 43
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.

Подскажите пожалуйста с переводом кода из Fortran.
Fortran
1
2
3
4
5
6
       DO 5 I=1,N
5      Y1(I)=Z(I)*H
       IF (E_1) 6, 7, 6
6      IF (E_2) 8, 9, 8
8      IF (E_3) 10, 11, 10
10     IF (E_4) 12, 13, 12
тд.

Если перевести в QBasic то тогда это будет так?
PureBasic
1
2
3
4
5
6
7
8
9
            Do while 5
               For I=1 to N
5           Y1(I)=Z(I)*H
            IF (E_1) Then GOTO 6
            IF (E_1) Then GOTO 7
            IF (E_1) Then GOTO 6
...............и тд............................
                Next I
            Loop
Или нужно делать оператор Do без While?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.10.2015, 14:08
Ответы с готовыми решениями:

Перевод кода из Pascal в QBASIC
Помогите переписать код в язык QBasic Задание такое: Дан массив A размера N и целые числа К и L (1<=K<L<=N). Переставить в...

Перевод кода Fortran в QBasic
Здравствуйте. Подскажите пожалуйста как правильно будет перевести данный код из Fortran в QBasic. Код Fortran: 205 K=0 DO 10...

Перевод кода с С на Fortran
Помогите перевести код: subroutine determineValueOfTheInput(t, result) character result real*8 t if (t .LE. 3.14) then result =...

43
0 / 0 / 0
Регистрация: 08.05.2015
Сообщений: 150
23.10.2015, 11:34  [ТС]
Студворк — интернет-сервис помощи студентам
Для удобства хотел столбиком. Пока что в текстовом (*.txt), а там можно и в Word перевести.
например:
T=???
Tt=???
0
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
23.10.2015, 12:05
Пишите так
QBasic/QuickBASIC
1
PRINT #1, "T="; T
Что в кавычках бейсик просто печатает.
А что без кавычек - выдает значение переменной
0
0 / 0 / 0
Регистрация: 08.05.2015
Сообщений: 150
23.10.2015, 16:32  [ТС]
Тогда "OPEN "1.txt" FOR OUTPUT AS #1" куда записывать? В самом начале программы или в конце?
0
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
23.10.2015, 17:13
Чаще всего файл открывают в самом начале программы. Но это не обязательно. (открывают когда нужно записывать в него). А закрывают, когда файл больше не нужен.
1
0 / 0 / 0
Регистрация: 08.05.2015
Сообщений: 150
23.10.2015, 17:27  [ТС]
Так правильно будет?
Кликните здесь для просмотра всего текста

QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
...........................................
       часть программы
...........................................
           печать
SELECT CASE Iw-23
    CASE IS < 0: GOTO 450              
    CASE 0: GOTO 451                    
    CASE IS > 0: GOTO 451            
    END SELECT
451 Iw=0
 OPEN "1.txt" FOR OUTPUT AS #1
   PRINT #1, "Tt";Tt
   CLOSE #1
450 SELECT CASE (T-FINAL)
    CASE IS < 0: GOTO 555              
    CASE 0: GOTO 555                    
    CASE IS > 0: GOTO 181            
    END SELECT
   OPEN "1.txt" FOR OUTPUT AS #1
  PRINT #1,"T";T
    PRINT #1,"U";U
181 PRINT #1, "S1";S1
    PRINT #1,"S2";S2
    CLOSE #1
0
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
23.10.2015, 17:41
MasterAlex,
Нет, неверно.
Если у вас уже есть файл с записями, то вторично он открывается с ключевым словом APPEND вместо OUTPUT.
В этом случае запись добавляется к предыдущей в конец файла. А если вторично применить OUTPUT, то он все старое сотрет и запишет только новое.
1
0 / 0 / 0
Регистрация: 08.05.2015
Сообщений: 150
24.10.2015, 00:33  [ТС]
Да, получилось вывести в файл *.txt. Выводит не все значения T, только последние 2. Когда провожу расчет в программе, то видно что Т=3 и 6 до 20, а в текстовом документе только 2 последних 18 и 20. В чем может быть ошибка?

Добавлено через 1 час 52 минуты
Сделал в первом разе где открываю OPEN доступ APPEND и второй раз тоже APPEND и тогда он мне выводит время с 4 секунд, а не удаляет предыдущее
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
24.10.2015, 01:38
Не извращайтесь господа, откройте файл в самом начале проги и закройте в самом конце.
1
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
24.10.2015, 09:11
Quiet Snow дал хороший совет.
Открыть файл в начале программы.
Спасибо ему!
0
0 / 0 / 0
Регистрация: 08.05.2015
Сообщений: 150
24.10.2015, 14:34  [ТС]
Если взять код из Fortran

Нужно ли делать переход в GOTO 10?
Сам сделал без него так. Это верно?
QBasic/QuickBASIC
1
2
3
4
5
6
205   K=0
      FOR I=1 TO N
      X(I)=Y(I)
      UCK=Z(3)
      NEXT I
      GOTO 111
0
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
24.10.2015, 14:57
MasterAlex,
Да, верно.
В Бейсике цикл For ограничен Next и ему
дополнительный Goto не нужен (в отличие от фортрана) значит и метка лишняя ни к чему.
1
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
24.10.2015, 16:32
Да, верно.
Серьёзно? Вижу ссылки в теме не читаются чуть более чем полностью.

Цитирую:
цикл начинается оператором DO, в котором, после ключевого слова DO, сначала
указывается метка (например, «100») последнего оператора тела цикла

MasterAlex, портируй ка дружок сам, тут тебе такого сейчас насоветуют, потом не разгребёшь.
Понимаешь, тут люди не знают фортран, это всё равно что у сантехника спросить как варить суп.
Да и очень советую по гуглу пройтись, наверняка что-то да есть.
1
0 / 0 / 0
Регистрация: 08.05.2015
Сообщений: 150
25.10.2015, 16:16  [ТС]
Огромное спасибо!
Извините что не по теме пишу. Не подскажите можно ли сделать вывод данных в Visual Basic (в Excel) в отдельные ячейки, например Т1 в одной ячейке, Т2 уже в следующей для удобства построения графиков или проще будет вбить самому и уже строить?
Нашел только Cells(2, 2) = T, но выводит только одно конечное значение.
0
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
25.10.2015, 16:32
MasterAlex,
Да. В Visual Basic это сделать несложно.
PS.
Я хорошо знаю VB.
Но лучше задать этот вопрос в Visual Basic.
А то эту тему прикроют.
1
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
26.10.2015, 04:14
Не подскажите можно ли сделать вывод данных в Visual Basic (в Excel) в отдельные ячейки, например Т1 в одной ячейке, Т2 уже в следующей
Что у вас T1, T2?
В VBA(Visual Basic for Applications, ведь это имелось в виду?) для вычислений используются макросы.
А графики и диаграммы можно построить встроенными средствами EXCEL.
Более того, макросы пишутся на достаточно схожем по синтаксису диалекте BASIC.

или проще будет вбить самому и уже строить?
Зависит от типа графика. Обычно самому не проще. Но лично я бы делал сам, чисто принципиально.

Я хорошо знаю VB.
Ещё один феликс! ))) Может быть это даже один человек, кто ж знает, кто там зиждится
по ту сторону монитора.
0
0 / 0 / 0
Регистрация: 08.05.2015
Сообщений: 150
28.10.2015, 16:51  [ТС]
Сделал немного иначе. Создал для каждого параметра текстовый файл и после этого копирую-вставляю в столбец в Excel и уже потом строю.

Для проверки сделал в VBA. В VBA получается правильный результат.
Возможно ли так что одинаковый код в QBasic и в VBA, но расчеты получаются разные, в чем может быть ошибка?
0
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
28.10.2015, 17:07
MasterAlex,
QBasic и VBA все же разные языки
PS.
Спросите у Билла Гейтса
1
0 / 0 / 0
Регистрация: 08.05.2015
Сообщений: 150
28.10.2015, 19:58  [ТС]
Точности сделаны одни и те же. Сделал Single. Операторы также сделаны. Вот скобки - порядок выполнения опять же не менял.
0
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
28.10.2015, 20:09
MasterAlex,
А вы задайте этот вопрос в VBA.
Выложите обе программы для сравнения
PS.
Я программирую на VB6. Он круче VBA.
Они тоже различаются.
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
29.10.2015, 10:27
Возможно ли так что одинаковый код в QBasic и в VBA, но расчеты получаются разные.
Может незначительно отличаться результат в младших порядках.
Из-за специфичных особенностей вычислений float чисел в разных компиляторах\интерпретаторах.
Обращать внимание на это не стоит пока оно не критично(пока не округляет int-ы в разные стороны).

Добавлено через 1 час 12 минут
Он круче VBA.
На каких доводах основана ваша точка зрения.
И в чём крутость по-вашему?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.10.2015, 10:27
Помогаю со студенческими работами здесь

Перевод с Fortran на c/c++
Помогите, пожалуйста, перевести с Fortran на язык c/c++(что легче)заранее спасибо subroutine STEP2(x,y,pov) complex x, y,...

Перевод с Fortran на С++
Доброго времени суток. Проблема в следующем, никак не могу разобраться с синтаксисом Fortran. В свое время изучал С++, и то правда давно...

Перевод с Fortran на С++
Здравствуйте. Есть код программы на Fortran, не могли бы Вы переписать его на С++. удалено Задача: Минимизация (или максимизация)...

Перевод с Fortran на с/с++
Помогите, пожалуйста, перевести с Fortran на язык c/c++(что легче)заранее спасибо subroutine STEP2(x,y,pov) complex x, y, pov, u,...

Перевод из Fortran в Delphi
Здравствуйте. Помогите пожалуйста перевести код из фортрана в делфи. Я почти перевел, но не все получилось. Я в тексте пояснил, где-что....


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Опции темы

Новые блоги и статьи
Хитросплетение родственных связей пантеона греческих богов.
russiannick 14.05.2026
Однооконник, позволяющий узреть и изучить отдельных героев древней Греции. <!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible". . .
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов. import "math" func angleClock(hour int, minutes int) float64 { . . .
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html и его же старой инструкции по установке Lazarus с gtk2. . .
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru