Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы программирования на FORTRAN (ФОРТРАН)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330

Открыть новую тему     Написать ответ в эту тему

akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Обсуждаются все вопросы, связанные с программированием на ФОРТРАН, как общего так и конкретного характера.
Постарайтесь дать как можно больше информации о возникшей проблеме -- это в конце концов в ваших же интересах чтобы вам помогли...

прежде чем просить помощи в задании
платное решение задач

ресурсы этого топика
ссылка на подборку ресурсов, собранных посетителями этого форума
 
то, чем мы решили поделиться
ссылка на страничку программ etc собственного изготовления, которыми любезно делятся наши форумчане


если вам вдруг не отвечают или ответ вас не устраивает
и вообще полезно прочитать всем спрашивающим
 
просьба к пишущим и отвечающим все большие листинги оформлять тегом more
и отключать графические смайлики при размещении фортран-кода

Всего записей: 24107 | Зарегистр. 06-12-2002 | Отправлено: 18:11 14-01-2007 | Исправлено: akaGM, 09:47 01-03-2020
michaehl

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
 
 

спасибо! буду делать!

Всего записей: 5 | Зарегистр. 15-06-2011 | Отправлено: 13:11 17-06-2011
golll

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
помогите разобраться по задаче фортран!
 
Для каждой строки матрицы найти минимальный элемент, а затем среди найденных найти максимальный.
написал. Но ищет минимум по матрице а не по строкам.
ПОМОГИТЕ!!!  
dimension A(5,8),B(5)
      data ((A(i,j),j=1,8),i=1,5)/-2,7,-3,3,-3,5,1,0,0,9,0,-4,-7,7,0,1,2,1,1,-8,1,7,8,-9,3,7,-9,12,-2,-5,1,4,5,8,1,2,6,-4,-4,2/
      min=A(1,1)
      max=B(1)
      do i=1,5
      if(A(i,j).lt.min) then
      min=A(i,j)
      end if
      end do
      do i=1,5
      if (min.gt.max) then
      max=B(i)
      end if
      end do
      print *,'min',min
      print *,max,max
      end

Всего записей: 2 | Зарегистр. 18-06-2011 | Отправлено: 23:46 18-06-2011
karakurt2



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
golll
отсутствует внешний цикл для поиска минимального элемента по строке матрицы и записи его значения в массив B

Всего записей: 733 | Зарегистр. 06-12-2003 | Отправлено: 04:29 19-06-2011
golll

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
куда и как мне нужно его вписать?  

Всего записей: 2 | Зарегистр. 18-06-2011 | Отправлено: 11:30 19-06-2011
KChernov



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
karakurt2
В первую очередь там отсутствует здравый смысл.
Начать хотя бы с "max=B(1)" - что автор этим хотел сказать?
В использовании min в первом цикле тоже смысла мало.
 
Добавлено:
golll
Язык ВСЕГО ЛИШЬ описывает ваши объекты.
И описание и работа со всем объектом подобны.
Так почему вы А описываете 2-мя переменными, а чтобы потом что-то сделать со всем этим А, довольствуетесь только одной?

Всего записей: 2471 | Зарегистр. 20-04-2004 | Отправлено: 11:31 19-06-2011
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
golll
ты напиши сначала программу на бумажке в виде плана:
 
1) делаем раз
2) делаем два
3) если то-то, то идём на 2)
 
самому легче будет...
 
и привыкай описывать все используемые переменные
real A(8,5)
integer i, j, max, min
например, дефолтом A, B -- real, а у тебя как целые...

Всего записей: 24107 | Зарегистр. 06-12-2002 | Отправлено: 15:58 19-06-2011
KChernov



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM

Цитата:
и привыкай описывать все используемые переменные
real A(8,5)  

Вот именно все - 8 и 5 - тоже переменные.
В данном случае константы, но если переделать под переменный размер массива - точно будут обычными переменными.

Всего записей: 2471 | Зарегистр. 20-04-2004 | Отправлено: 16:55 19-06-2011
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KChernov

Цитата:
Вот именно все - 8 и 5 - тоже переменные.
В данном случае константы, но если переделать под переменный размер массива - точно будут обычными переменными.

что-то я как-то не того...

Всего записей: 24107 | Зарегистр. 06-12-2002 | Отправлено: 03:41 20-06-2011
KChernov



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В чём может быть проблема с таким кодом (старый численный код с рисовалкой):
Код:
SUBROUTINE printout(ncolor,nstr,mess)
    USE DFLIB
    INTEGER(2)  nstr,rows,cols,nstrmax
    INTEGER(4)  oldcolor,ncolor
    character(*),intent(in)::mess
    TYPE (windowconfig)  wc
    TYPE (rccoord)       rc
    COMMON               wc
    COMMON /bag/ nstrmax
 
    CALL SETTEXTPOSITION( nstr, INT2(2), rc )
    oldcolor = SETTEXTCOLORRGB(ncolor) !тут ошибка
    write(*,*) mess  
END SUBROUTINE
?
 
При построении приложения в CVF выжаётся ошибка: SUP.OBJ : error LNK2001: unresolved external symbol __settextcolorrgb
Sup - это файл, в котором лежит эта процедура.
Если закоментировать - компилится нормально.
С форматом вызова вроде проблемы нет - сравнил с примером из помощи к CVF и попробовал с константным параметром.
USE DFLIB в начале есть (да и другие вызовы - SETTEXTPOSITION наприимер - работают).
Вообще такое ощущение, что ругается именно на вызовы функций - с процедурами из DFLIB проблем нет.
Может надо правильную опцию компилятора использовать?

Всего записей: 2471 | Зарегистр. 20-04-2004 | Отправлено: 15:14 28-06-2011
Vskazka

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KChernov
у меня нет под рукой компаковского фортрана, но, возможно Вам надо писать не  
USE DFLIB  
а что-то другое. Например в интеловском фортране это  
USE IFQWIN
посмотрите по хелпам, или в примерах, которые идут вместе с дистрибутивом

Всего записей: 382 | Зарегистр. 24-11-2003 | Отправлено: 15:34 28-06-2011 | Исправлено: Vskazka, 15:39 28-06-2011
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KChernov
просто нужно найти в какой библиотеке расположена графика в CVF, может и в КвикВине...
или, насколько я помню, в cvf надо создавать проект build as graphics application вроде
или
cvf /libs:qwin
или
ещё
use dfport писать
 
сам-то квикВин подключен ?

Всего записей: 24107 | Зарегистр. 06-12-2002 | Отправлено: 16:41 28-06-2011
KChernov



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vskazka

Цитата:
а что-то другое. Например в интеловском фортране это  
USE IFQWIN  

Я же написал, что
Цитата:
При построении приложения в CVF

 
akaGM

Цитата:
или, насколько я помню, в cvf надо создавать проект build as graphics application вроде  

Вот то, что проект мог быть создан не того типа, даже в голову не пришло.
Спасибо, так всё собралось
Пошёл пинать "создателя" проекта

Всего записей: 2471 | Зарегистр. 20-04-2004 | Отправлено: 12:16 29-06-2011
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KChernov

Цитата:
Вот то, что проект мог быть создан не того типа...

"у него гранаты не той системы" (c)
обычное дело...

Всего записей: 24107 | Зарегистр. 06-12-2002 | Отправлено: 12:52 29-06-2011 | Исправлено: akaGM, 12:52 29-06-2011
kkuuhhaa

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
функция возвращающая массив переменной длины.
 
Возможно ли это сделать в Фортране?
Как надо определить такую функцию

Всего записей: 131 | Зарегистр. 14-05-2008 | Отправлено: 17:39 11-07-2011
Andrew10

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kkuuhhaa

Цитата:
функция возвращающая массив переменной длины.
 
Возможно ли это сделать в Фортране?
Как надо определить такую функцию
 

 
 
Какой смысл вкладывается в определение "массив переменной длины"?
Возможны варианты:
а) Во время текущего выполнения программы был массив одной длины, стал другой;
б) Заранее неизвестно, какой длины будет массив во время выполнения программы;
в), г) и т.д.) -  что-то еще?

Всего записей: 780 | Зарегистр. 26-02-2005 | Отправлено: 21:22 11-07-2011
kkuuhhaa

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а), б), с) и.т.д какая разница. На входе - стандартная последовательность параметров, на выходе, из неё выжимка.  
Или проще, на вывод команде принт дать с маской, как в maxval (синтаксис напомнить?)

Всего записей: 131 | Зарегистр. 14-05-2008 | Отправлено: 21:31 11-07-2011
terminat0r



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kkuuhhaa
разница есть, потому что работать можно по разному. А проблем никаких, например
 

Код:
module some_module
implicit none
 
 contains
!=======================================================================
!Function
!=======================================================================
function one(x1) result(x2)
implicit none
integer, allocatable,dimension(:), intent(in) :: x1
integer, allocatable,dimension(:) :: x2
 
if(.not. allocated(x1)) then
write(*,*)"STOP"
stop
end if
 
allocate (x2(1:2))
if (size(x1)<3) then
write(*,*)"STOP"
stop
endif
x2(1)=x1(1)
x2(2)=x1(3)
 
end function one
 
end module some_module
 
 
!-----------------------------------------------------------------------
!Main program
!-----------------------------------------------------------------------
program    program_test
use some_module
implicit none
integer, allocatable,dimension(:) :: out1,out2
integer :: i
 
allocate(out1(1:10))
 
out1 = [(i, i=1,10)]
write(*,*) out1
 
write(*,*) one(out1)
 
allocate (out2, source=one(out1))
 
write(*,*) out2
 
end program program_test

 
term@box:~/Documents/temp>ifort -g test_resize.f90 -o test_resize.x
term@box:~/Documents/temp> ./test_resize.x  
           1           2           3           4           5           6           7           8           9          10
           1           3
           1           3
 
кстати, gfortran (у меня сейчас gcc version 4.5.1 20101208) не может скомпилировать этот пример так как ругается на  
allocate (out2, source=one(out1))
          1
Error: Array specification required in ALLOCATE statement at (1)
Вообщем он прав, это уже F2008 стандарт, но интеловцы, как видим, подтянулись
Возможно что и в gfortran 4.6 что то изменилось

Всего записей: 2084 | Зарегистр. 31-03-2002 | Отправлено: 23:01 11-07-2011 | Исправлено: terminat0r, 23:23 11-07-2011
peppersley

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Уважаемые посетители форума, прошу вас мне помочь.
 
Я юзаю fortran power station 4.0 , довольно старая версия. При попытке вызвать функцию из библиотеки IMSL - пишу 'use dfimsl' , выдает ОШИБКУ, что не может найти этот модуль. Сдул строго с книги тов. Бартеньева.  
спасибо.

Всего записей: 16 | Зарегистр. 11-02-2011 | Отправлено: 19:49 13-07-2011
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
peppersley
насколько я помню, префикс "df" уже относится к dec fortran, т.е. к версии, следующей после MS PSF...

Всего записей: 24107 | Зарегистр. 06-12-2002 | Отправлено: 21:32 13-07-2011
peppersley

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
akaGM

подскажи пожалуста, что тогда делать? ставить новый компилятор?
 
я поставил Microsoft Visual studio 2008
затем Intel Fortran Compiler v11
затем Intel MAth kernel Library  v10
затем IMSL library 7.0
и как теперь  все это дело запустить?)) всмысле фортран.

Всего записей: 16 | Зарегистр. 11-02-2011 | Отправлено: 12:41 14-07-2011
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы программирования на FORTRAN (ФОРТРАН)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru