Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.77/44: Рейтинг темы: голосов - 44, средняя оценка - 4.77
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755

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

13.12.2020, 10:16. Показов 9180. Ответов 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
6799 / 2298 / 349
Регистрация: 10.12.2013
Сообщений: 7,924
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
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru