Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

pomoc Fortran pleaseeeee

[es] :: Ostali programski jezici :: pomoc Fortran pleaseeeee

[ Pregleda: 1978 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mensa
Master iznenjer masinstva
kragujevac

Član broj: 176485
Poruke: 55
*.exe042.net.

ICQ: 140


+1 Profil

icon pomoc Fortran pleaseeeee10.01.2009. u 12:18 - pre 185 meseci
zdravo svima
molim vas treba mi pomoc oko jednog zadatka. ne znam kako da pocnem zadatak pa ako mozete da mi nagovestite kako bi to otpilike izgledalo. hvala unapred.

Nacrtati algoritam i napisati opšti potprogram čiji je zadatak da prepakuje proizvoljan realni niz X u realni niz Y i to pakujuci ga po sledećem algoritmu: članovi niza Y jedan za drugim su članovi X1, Xn+1, X2n+1, ..., X2, Xn+2, X2n+2, ...., pri čemu je dimenzija nizova n2.
Primer : X [1, 4, -6, 7, 3, 2, -2, 5, 9] , Y [1, 7, -2, 4, 3, 5, -6, 2, 9], n=3 , n2=9.
 
Odgovor na temu

Goran Rakić
Beograd

Član broj: 999
Poruke: 3766

Sajt: blog.goranrakic.com


+125 Profil

icon Re: pomoc Fortran pleaseeeee10.01.2009. u 13:11 - pre 185 meseci
Šta je tačno problem, gde je zapelo?

Trebaju ti dve petlje, jedna koja će da broji 1, 2, 3... i druga koja će da broji 0, N, 2N,... Kada ih sabereš dobijaš 1+0N, 1+N, 1+2N,... 2+0N, 2+N, 2+2N,... a to je poredak koji ti treba. Da bismo imali i tekući indeks za upisivanje u Y, stavimo obe petlje da broje 1..N, a ovo što nam treba izračunamo. Tekući indeks računaš kao (i-1)*N + j (i puta smo se pomerili za N i još koliko smo stigli u tekućoj iteraciji po j)

Code:

program nizovi
implicit none
integer :: i, j, N
integer,dimension(:),allocatable :: X, Y

read(*,*) N !ucitaj dimenziju
allocate(X(1:N*N))
allocate(Y(1:N*N))

read(*,*) X !ucitaj X

do i = 1, N    !za 1, 2, 3...  i
  do j = 1, N  !za 0, N, 2N... (j-1)*N
    Y((i-1)*N + j) = X((j-1)*N + i)
  end do
end do

write(*,*) Y

http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
 
Odgovor na temu

mensa
Master iznenjer masinstva
kragujevac

Član broj: 176485
Poruke: 55
*.exe042.net.

ICQ: 140


+1 Profil

icon Re: pomoc Fortran pleaseeeee10.01.2009. u 14:48 - pre 185 meseci
opet mi nesto nije jasno
ne znam kako da mi jedna petlja broji 0,n,2n...
a druga 1,2,3..
ja sam nova u ovome, ne znam kako bi izgledao algoritam
 
Odgovor na temu

Goran Rakić
Beograd

Član broj: 999
Poruke: 3766

Sajt: blog.goranrakic.com


+125 Profil

icon Re: pomoc Fortran pleaseeeee10.01.2009. u 15:11 - pre 185 meseci
U nastavku moje prve poruke je i kod koji radi. Kao tutorial za Fortran 90, može da posluže primeri iz http://www.matf.bg.ac.yu/~ndjurdjevac/FORTRAN%2090.pdf

Petlja koja ide 1..N u Fortranu se piše:
Code:

do i = 1, N 
  write(*,*) i
end do


... a evo i kako da napravimo da ide N, 2N, 3N,... N*N
Code:

do i = 1, N 
  write(*,*) i*N
end do


... i kako da ide 0, N, 2N,... (N-1)*N
Code:

do i = 1, N 
  write(*,*) (i-1)*N
end do


Za gornji zadatak nam trebaju dve petlje zato što će jedna da broji ono +1, +2, +3,... a druga za svako +nešto da broji 0*N, 1*N, 2*N,...
Code:

do i = 1, N 
  do j = 1, N
     write(*,*) i
     write(*,*) (j-1)*N
     ! zbir je tacno ono sto nam treba
     write(*,*) (j-1)*N + i
  end do
end do


Ostatak koda iz prve poruke učitava N, alocira nizove na veličinu N, učitava ulazni niz brojeva i dodeljuje vrednosti... Uz elementarno znanje Fortrana trebalo bi da to bude jasno kako radi. Nadam se da je ova poruka od pomoći za razumevanje ovog i svih sličnih problema.
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
 
Odgovor na temu

[es] :: Ostali programski jezici :: pomoc Fortran pleaseeeee

[ Pregleda: 1978 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.