Konuyu görüntüle
IUCODERS FORUM > Programlama > Diğer (COBOL,asp php js..) > fortran yardım
Yazar
extreme


avatar
Kahramanmaras
admin
Kayıt: 24.10.2006
03.07.2007-20:15 #24240
alew yazdi
 
bi mutluluk kargaşası olmuş hugs ama gerçekten kodlar süper çok saol annadım ben onupeace ama senin dikkat et dediğin yeri anlamadım nereye n demicez de i dicez dizilerde confused

yani do i=1,n demek yerine

do n=1,i ye mi demek zorundayız diosun???

ya bir de bi şey sorcam ben senin yolladığın ikinci kodu kendim yazıyım dedim hatasiz yazdım ama doğru çalişmiyor crying eğer zamanın varsa bi bakabilirmisinapplause

integer,dimension(100)::m
character*10,dimension(100)::ad
integer i,j,gecici,n,z
character*10 sor,isim
open(8,file="c:/msdev/projects/newiki/alev.txt",form="formatted")
do i=1,n
read(8,1)ad(i),m(i)
1 format(a10,I10)
end do

close(8)
do i=1,n
write(*,*)ad(i),m(i)
end do
50 write(*,*)"isme ait maas degisikligi icin 1"
write(*,*)"yeni kayit icin 2"
write(*,*)"gir"
read(*,*)z
select case (z)
case(1)
write(*,*)"maasini degismek istedigin ismi gir"
read(*,*)isim
do i=1,n
if(isim==ad(i)) then
write(*,*)"bu isme ait yeni maasi gir"
read(*,*)m(i)
end if
end do

case(2)
n=n+1
write(*,*)n,". kisinin ismi ve maasi"
read(*,*)ad(i),m(i)


case default
write(*,*)"yanlis deger girdiniz"
go to 50
end select

write(*,*)"yeni maaslara göre isim sıralamasi"

do i=1,n-1
do j=i+1,n

if(m(i)>m(j)) then
gecici=m(i)
m(i)=m(j)
m(j)=gecici
sor=ad(i)
ad(i)=ad(j)
ad(j)=sor

end if
end do
end do


write(*,*)"dosyanın yeni hali"

open(8,file="c:/msdev/projects/newiki/alev.txt",form="formatted")

do i=1,n
write(*,*)ad(i),m(i)
write(8,1)ad(i),m(i)
2 format(a10,I10)end do
close(8)
end




do i=1,n dediğinde seri formülüne i yaz demek istedim.

1.koyu kısım hatalı, n sayısını bilmeden do i=1,n demişsin önce n sayısını okutman lazım..

ör

n=0
do
n = n + 1
read(8,1,end=30) isim,maas
isim = ad(n)
maas = m(n)
end do
30 close(8)

gibi, isim ve maas degiskenleri tanımalısın. read teriminden sonra ad(n) yazarsan hata veriyo nie bilmiyorum.

ikinci koyu yerde
do i=1,n
do j=i+1,n

olmalı


3. sünde ise

write(8,1)ad(i),m(i)

yerine

isim = ad(i)
maas = m(i)
write(8,1) isim,maas

olmalı. senin yazdığın gibi yazında hata veriyo neden bilmiyorum, program hatası heralde...

4. ve son olarak

2 format die naımlamışsın, 1 kullanmışsın. ayrıca formatı program başında yazmalısın.





The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com





Yazar
alew


avatar
istanbul
Kayıt: 01.04.2007
03.07.2007-21:28 #24243
ya senin dediğin gibi yaptım gene hata vermio ama çalıştırırken bir yere kadar çalişiyo sonra çalişmiyo crying

yardımcı olacak kimse yok muuu????????????????????confused

lütfen biri yardım etsinapplause


integer,dimension(100)::m
character*10,dimension(100)::ad
integer i,j,gecici,n,z
character*10 sor,isim
open(8,file="c:/msdev/projects/newiki/alev.txt",form="formatted")
do i=1,n
read(8,1)isim,maas
isim=ad(n)
maas=m(n)
1 format(a10,I10)
end do
close(8)
do i=1,n
write(*,*)ad(i),m(i)
end do
50 write(*,*)"isme ait maas degisikligi icin 1"
write(*,*)"yeni kayit icin 2"
write(*,*)"gir"
read(*,*)z
select case (z)
case(1)
write(*,*)"maasini degismek istedigin ismi gir"
read(*,*)isim
do i=1,n
if(isim==ad(i)) then
write(*,*)"bu isme ait yeni maasi gir"
read(*,*)m(i)
end if
end do

case(2)
n=n+1
write(*,*)n,". kisinin ismi ve maasi"
read(*,*)ad(i),m(i)


case default
write(*,*)"yanlis deger girdiniz"
go to 50
end select


write(*,*)"yeni maaslara gore isim siralamasi"

do i=1,n
do j=i+1,n
if(m(i)>m(j)) then
gecici=m(i)
m(i)=m(j)
m(j)=gecici
sor=ad(i)
ad(i)=ad(j)
ad(j)=sor

end if
end do
end do


write(*,*)"dosyanin yeni hali"

open(8,file="c:/msdev/projects/newiki/alev.txt",form="formatted")

do i=1,n
isim=ad(i)
maas=m(i)
write(8,2)isim,maas
2 format(a10,I10)
end do
close(8)
end






1 2
Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb