Эй, я написал это (fortran) с целью найти минимальное остовное дерево из множества точек (из них syscount). Я точно знаю, что этот подход работает, так как сегодня я написал его на javascript. js работает медленно, и я хотел посмотреть, насколько быстрее будет Фортран!! единственная проблема в том, что он не работает, я получаю раздражающую ошибку;
примс.f95:72.43:
if((check == 1) .and. (path(nodesin(j))(k) ‹ minpath)) тогда
1
Ошибка: ожидалась правая скобка в выражении по адресу (1)
О чем это, черт возьми?! 43-й символ в строке — это «h» в слове «путь».
nodesin(1) = 1
do i = 1,syscount-1
pathstart = -1
pathend = -1
minpath = 2000
do j = 1,i
do k = 1, syscount
check = 1
do l = 1, i
if(nodesin(l) == k) then
check = 0
end if
end do
if((check == 1) .and. (path(nodesin(j))(k) < minpath)) then
minpath = path(nodesin(j))(k)
pathstart = nodesin(j)
pathend = k
end if
end do
end do
nodesin(i+1) = pathend
minpaths(i)(1) = pathstart
minpaths(i)(2) = pathend
end do
Кроме того, я новичок в фортране, поэтому у меня есть несколько других вопросов;
могу ли я использовать && вместо .and. ?
Существуют ли версии цикла for(object in list){} во многих других языках?
есть ли версия функции php in_array? то есть bool in_array(needle,haystack), и если есть, есть ли лучший способ сделать это, чем:
check = false
Asize = size(array)
do i = 1, Asize
if(array(i) == needle) then
check = true
end if
end do
затем использовать проверочную переменную, чтобы увидеть, есть ли она?
(Раньше я ничего не публиковал в stackoverflow. Пожалуйста, не сердитесь, если я нарушил множество правил этикета!)