Я хотел бы решить данное уравнение следующего вида с Fortran:магазин арифметические операции в массиве с Fortran
1 ? 2 ? 3 = 7
В этом уравнении только арифметические операторы не хватает, и решение будет «+» для первого вопросительного знака и '*' для второго. Я хотел бы написать короткий скрипт, который находит правильные операторы грубой силой. Поэтому в этом случае необходимо будет проверить четыре раза четыре случая. Для того, чтобы сделать это, я хотел бы хранить операторы в массиве и использовать их в вложенным сделать петлю:
value1=1
value2=2
value3=3
result=7
op(1)=+
op(2)=-
op(3)=/
op(4)=*
do i=1,4
do j=1,4
if(value1 op(i) value2 op(j) value3 .eq. result) then
write(*,*)'Found solution: ' ,op(i), op(j)
else
j=j+1
endif
enddo
i=i+1
enddo
Видимо, это не работает из-за неправильной интерпретации, если-заявление. Любые идеи, как сделать эту работу?
Большого спасибо за вашу работу! Хотя, я боюсь, что мне придется рассмотреть вопрос о соблюдении правил. Кроме того, я на самом деле хотел решить не более двух уравнений работы (до 7). Поэтому, может быть, мне следует переключиться на другой язык, как вы предложили. Есть ли у вас какие-либо конкретные предложения по языку, который подходит для этой проблемы и с которым легко справиться? – user2390654
Все это прекрасно, что дает конструкцию, похожую на eval(), способную оценить строку, содержащую допустимое выражение на этом языке. Если вы уже знаете такой язык, возьмите это. В противном случае Python или Ruby могут быть возможными вариантами, где в моем (определенно * предвзятом *) оппонировании бывший несколько ближе в своей философии к Fortran, поэтому для вас может быть упрощено. Но просто взгляните на них и решите сами. –