Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755

Как переписать программу с Fortran на Python?

13.12.2020, 10:16. Показов 9397. Ответов 37
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Раньше изучал Fortran под понимание этого кода, сейчас уже забыл, но думаю, что могу вспомнить в случае необходимости за некоторое время, что выучил тогда.
Другой вариант, это писать медицинские алгоритмы на каком - нибудь движке. Некоторое время потратил на изучение одного такого, так что возможно на нем.
Поэтому предлагаю Вам эту задачу с развлекательно-познавательной целью, если кого-то заинтересует на данный момент. Самому тоже интересно Ваше мнение, может займусь сам в будущем, если никто не заинтересуется. С конструкцией GO ознакомился, когда изучал основы Lisp.
C помощью кода программируются алгоритмы диагностики, для примера фрагмент которых на отображаемых на этой странице скриншотах во вложении темы.
Это из книги автора Наумов Л.Б. "Учебные игры в медицине" (дополнения к этому алгоритму есть в других книгах автора, книги серии выпущены в 70-80 годах).
Сейчас в национальном руководстве алгоритм другой, возможно из-за того, что этот более сложен для усвоения и применения.

Сканы в скачиваемом архиве из книги авторов Наумов Л.Б., Мамиконян Р.С., Наумов В.Л. "Болезни органов живота. Алгоритмы дифференциальной диагностики, распознавания, тактики. Справочное программированное руководство для врачей с программой для компьютерной диагностики." Ереван. Айастан. 1990г.
http://vedomo.ru/1TEMP/Automatic-diagnosis.zip
Если что, существуют сканы более высокого качества, только нет под рукой, надо искать, не помню куда положил.
Там, где папка подписана "Можно посмотреть сначала с конца", это значит, что код Fortran в конце этих страниц, а сначала идут примеры, что увидит пользователь на мониторе.
В файле "Смотреть с 27 страницы или с 11.pdf" описание устройства программы на 27 странице.
Папка "Эмуляторы" нам наверное сейчас не понадобится, так как тогда думал, что можно будет легко запустить этот код таким образом, однако потом что-то меня остановило насчет этого способа.
Миниатюры
Как переписать программу с Fortran на Python?   Как переписать программу с Fortran на Python?   Как переписать программу с Fortran на Python?  

Как переписать программу с Fortran на Python?  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.12.2020, 10:16
Ответы с готовыми решениями:

Переписать программу с С на fortran
#include <stdio. h> #include <stdlib. h> #include <math. h> #include <mpi. h> #define N1 50 #define N2 50 #define eps 0.00001 ...

Переписать программу на python
здравствуйте, есть алгоритм на C#. нужно переписать на python. работа с библиотекой opencv. кто может помочь? eohim@mail.ru

Переписать программу с Python на C++
Доброго времени суток, уважаемые форумчане, необходима помощь в переводе программы с языка Python на C++. Исходный код решает следующую...

37
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
15.12.2020, 14:12  [ТС]
Студворк — интернет-сервис помощи студентам
Рыжий Лис, Вы не могли бы код, который Вы дали, написать для первого блока полностью, как он должен быть с фразами. А я для тренировки буду делать уже второй блок, а то не пойму, что там написано.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
15.12.2020, 16:29
Цитата Сообщение от supmener Посмотреть сообщение
Вы не могли бы код, который Вы дали, написать для первого блока полностью, как он должен быть с фразами.
Нет, напиши сам. Ты задаёшь кучу вопросов, но что-то кода от тебя я не видел.
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
06.01.2021, 13:26  [ТС]
Умный человек помог модернизировать код вашей программы. Однако это кажется неудобным. Если придется вставлять что-то в сделанный алгоритм, то не понимаю, как быстро переделать нумерацию. Может быть от части цифр как-то можно избавиться?
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
db = {
    # pk: parent_id, a, a_detail, q
    1: (None, None, None, 'Пульсация на сонных артериях?'),
    2: (1, 'есть', 'Жизнь…', ''),
    3: (1, 'нет', '', 'Кошачий глаз?'),
    4: (3, 'есть', 'Биологическая смерть', ''),
    5: (3, 'нет', '', 'Длительность?'),
    6: (5, 'нет данных', 'Клиническая смерть', 'Основание грудной клетки'),
    7: (5, '< 5 минут', 'Клиническая смерть', 'Основание грудной клетки'),
    8: (5, '> 5 минут', 'Биологическая смерть', ''),
    9: ((6, 7), 'жесткое', 'Реанимация не возможна', 'Разгибание головы к затылку'),
    10: ((6, 7), 'мягкое', 'Реанимация не возможна', ''),
    11: (9, 'сделано', 'Реанимация возможна', 'Очищение ротовой полости'),
    12: (9, 'не сделано', 'Эффективная реанимация не возможна', ''),
    13: (11, 'сделано', 'Реанимация возможна', 'Расположение рук'),
    14: (11, 'не сделано', 'Реанимация может оказаться не возможной', ''),
    15: (13, 'на границе средней и нижней трети', 'Обеспечена оптимальная позиция', 'Чередование компрессий грудины и вентиляций'),
    16: (13, 'другие позиции', 'Эффективная реанимация не возможна или случайна', ''),
    17: (15, '10:2 или 5:1', 'Реанимация эффективна', 'Критерии эффективности реанимации'),
    18: (15, 'другие соотношения', 'Реанимация не эффективна', ''),
    19: (17, 'есть все признаки', 'Реанимация эффективна', 'Краниогипотермия'),
    20: (17, 'нет хотя бы одного признака', 'Реанимация не эффективна', ''),
    21: (19, 'Обеспечена', 'Эффективность реанимации возрастает', 'Организация дальнейшей специпомощи'),
    22: (19, 'не обеспечена', 'Эффективность реанимации убывает', ''),
    23: (21, 'Реанимационной бригадой', 'Оптимальный вариант успешной реанимации', 'Последующая госпитализация больного'),
    24: (21, 'Линейной бригадой', 'Эффективность реанимации сомнительна', 'Последующая госпитализация больного'),
    25: (21, 'Не обеспечена', 'Эффективность реанимации сомнительна', 'Последующая госпитализация больного'),
    26: ((23, 24, 25), 'Реанимационной бригадой или реаниматологом', 'Эффективность реанимации наибольшая', ''),
    27: ((23, 24, 25), 'Силами СП или своими силами', 'Опасность повторной смерти', ''),
}
pk = 1
while True:
    _, _, a_detail, q = db[pk]
    if a_detail is not None:
        print(a_detail)
    if q != '':
        print(q)
    else:
        break
    for pk2, (parent_id, a, _, _) in db.items():
        if isinstance(parent_id, tuple):
            if pk in parent_id:
                print('{}) {}'.format(pk2, a))
        else:
            if parent_id == pk:
                print('{}) {}'.format(pk2, a))
    pk = int(input('> '))
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
06.01.2021, 13:37
Святая Селестия, я же пошутил, когда сделал эмуляцию субд. И у записи мне может быть два родителя - надо дублировать строки.

Если оставить код как есть, то он легко модифицируется под нужды - вставляется новая строка с унмкальным идентификатором (всё перенумеровывать не нужно) и просто правятся parent_id.

Пример:
Python
1
2
3
4
5
#...
    5: (3, 'нет', '', 'Длительность?'),
    42: (5, 'новая строка', 'Клиническая смерть', 'Основание грудной клетки'),
    6: (5, 'нет данных', 'Клиническая смерть', 'Основание грудной клетки'),
#...
1
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
06.01.2021, 15:02  [ТС]
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
И у записи мне может
не понял
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
06.01.2021, 15:10
*не может

Добавлено через 26 секунд
Про строчку if isinstance(parent_id, tuple):
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
06.01.2021, 15:17  [ТС]
А как этот фрагмент должен правильно выглядеть?
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
}
pk = 1
while True:
    _, _, a_detail, q = db[pk]
    if a_detail is not None:
        print(a_detail)
    if q != '':
        print(q)
    else:
        break
    for pk2, (parent_id, a, _, _) in db.items():
        if isinstance(parent_id, tuple):
            if pk in parent_id:
                print('{}) {}'.format(pk2, a))
        else:
            if parent_id == pk:
                print('{}) {}'.format(pk2, a))
    pk = int(input('> '))
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
06.01.2021, 15:28
Не существует правильного и неправильного варианта программы, если программа работает правильно.

Что ты хочешь получить в итоге? Программу за тебя написали двое: "умный человек" и просто лис, она даже работает. С вычислительной сложностью O(N) вместо O(1), но пока это незаметно. Программа легко модифицируется и расширяется под любые, так называемый тобой "алгоритмы"
0
06.01.2021, 15:41

Не по теме:

и хватает же вам терпения

0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
06.01.2021, 17:53  [ТС]
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
И у записи не может быть два родителя - надо дублировать строки
Я думал, это Вы имели в виду, что умный человек допустил какую - то ошибку. По дальнейшим вашим фразам понял, что возможно ошибки нет.

Добавлено через 12 минут
В общем, пока что не имею времени вникнуть в программу, горе в семье, некогда, может быть потом.
Может быть, Вы имеете в виду, что вот так (23, 24, 25) делать нельзя?
0
 Аватар для volodin661
7094 / 2325 / 353
Регистрация: 10.12.2013
Сообщений: 8,026
07.01.2021, 04:12
a я так и не понял, удастся избежать биологической смерти, если переписать с fortran на python ?
1
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
07.01.2021, 10:23  [ТС]
Это пример. А насчет переписывания обдумывал, имеет ли смысл, для других алгоритмов.
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
01.08.2022, 06:55  [ТС]
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
Вообще такие простые пошаговые "алгоритмы" надо отделить от кода и хранить отдельно. То есть написать свой движок. Пример (без бд):

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
db = {
    # pk: parent_id, a, a_detail, q
    1: (None, None, None, 'Пульсация на сонных артериях?'),
    2: (1, 'есть', 'Жизнь…', ''),
    3: (1, 'нет', '', 'Кошачий глаз?'),
    4: (3, 'есть', 'Биологическая смерть', ''),
    5: (3, 'нет', '', 'Длительность?'),
}
pk = 1
while True:
    _, _, a_detail, q = db[pk]
    if a_detail is not None:
        print(a_detail)
    print(q)
    for pk2, (parent_id, a, _, _) in db.items():
        if parent_id == pk:
            print('{}) {}'.format(pk2, a))
    pk = int(input('> '))
Пробовал запускать этот код. И возникают некоторые трудности. Пользователь может захотеть также писать не цифрами, а вводить да или нет (в разном регистре). Возможно этот код нужно сделать на Javascript. Его в этом случае можно будет вставить в вебстраницу и легко запускать также на смартфоне в браузере.

Добавлено через 5 минут
А почему программа опять задала тот же вопрос?
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Пульсация на сонных артериях?
2) есть
3) нет
> 3
 
Кошачий глаз?
4) есть
5) нет
> 5
 
Длительность?
> 3
 
Кошачий глаз?
4) есть
5) нет
>
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
01.08.2022, 16:04
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
Святая Селестия, я же пошутил, когда сделал эмуляцию субд.
...
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
01.08.2022, 16:14  [ТС]
А что сейчас с этим делать?
0
98 / 64 / 36
Регистрация: 04.12.2018
Сообщений: 158
26.08.2022, 15:38
Цитата Сообщение от supmener Посмотреть сообщение
Возможно этот код нужно сделать на Javascript. Его в этом случае можно будет вставить в вебстраницу и легко запускать также на смартфоне в браузере.
Да, хорошо бы определиться, что нужно получить в итоге. Набор тестов для медперсонала с админкой этих тестов, где их можно добавлять без программиста? В виде веб приложения? Вероятно, многие делали такое, когда учились программировать.

Сейчас уже есть готовые системы тестирования. Их много, но бесплатных я не нашёл. Зато нашёл, что Кировский государственный медицинский университет применяет как раз готовую: https://trial.kirovgma.ru/
И ещё можно зайти в демо версию и посмотреть готовые тесты: https://cpp.indigotech.ru/
1
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
28.08.2022, 12:33  [ТС]
Сам интересуюсь скорее не тестами, а системой, которая помогает ставить диагноз.
0
Модератор
Эксперт Python
 Аватар для Fudthhh
2696 / 1602 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
01.09.2022, 16:16
Цитата Сообщение от supmener Посмотреть сообщение
Возможно этот код нужно сделать на Javascript.
Попробуй на yoptascript написать.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.09.2022, 16:16

Переписать программу с python на C++
вот программа : https://pastebin.com/aHyHLYt5 total_disponibil = 123.00 debug = True def simulare(nume_produs): produs =...

Переписать программу с Python на C++
Переписать код с Python на C++ a,b,p,q = map(int,input().split()) s = 0 for i in range(a,b+1): c = 1 d = 1 while...

Переписать программу с Python на C++
Доброго времени суток, уважаемые форумчане, необходима помощь в переводе программы с языка Python на C++. Так как в Python я вообще не...

Переписать программу из Python в Pascal
print ('Введите числа из промежутка ') n,m= map(int,input().split()) print ('Введите числа из промежутка ') k,l=...

Нужно переписать программу с С++ на Python
Задание- Робот двигается по игровому полю (команды: повернуть вправо, повернуть влево, передвинуться на 1 клетку вперёд) после каждого...


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

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

Новые блоги и статьи
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Новости компьютерного мира и их обсуждение (4) Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru