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


avatar
istanbul
Kayıt: 01.04.2007
01.07.2007-17:12 #24061

slm arkadaşlar aşağıdaki kodda return yazmasak da değişen bir şey olmuyor return yazmamızın amacı nedr? yardımcı olabilirseniz sevinirimapplause ben büte kalmış biri olarak bazı ayrıntıları karıştırıyorumd oh


integer,dimension(5)::a
integer yer
write(*,*)"dizinin elemanlarini gir"
read(*,*)a
yer=minyer(a)
write(*,*)"dizinin en kucuk elemaninin yeri=",yer
contains
function minyer(dizi)
integer,dimension(5),intent(in)::dizi
integer minyer
integer ust,kucuk,y
ust=size (dizi)
kucuk=dizi(1)
minyer=1
do y=2,ust
minyer=merge (y,minyer,dizi(y)<kucuk)
kucuk=min(kucuk,dizi(y))
end do
return
end function minyer
end








Yazar
reccae


avatar
istanbul
banlandı
Kayıt: 15.02.2006
01.07.2007-17:23 #24062






insa ettigim binanin cimentosu kelâm

Yazar
alew


avatar
istanbul
Kayıt: 01.04.2007
01.07.2007-17:29 #24063
hayır anlatamadım galiba program zaten çalışıyor benim demek istediğim return yazsamda çalışıyor yazmasam da çalışıyor bir fark olmuyor. Return ün anlamı başa dön falan demekti ama burda nasıl bir işlev görmüş onu anlamadım?





Yazar
fonemi


avatar

Kayıt: 09.01.2007
01.07.2007-17:34 #24065
Return, fonksiyonun döndürmesi gereken değeri hemen döndürmesini sağlar. Yani fonksiyonda return görülen yerde değer döndürülür fonksiyonun gerisi önemli değildir. Tabii return bu örnekteki gibi fonksiyonun sonundaysa bir anlamı yok zaten...





Yazar
alew


avatar
istanbul
Kayıt: 01.04.2007
01.07.2007-17:41 #24067
evet işte ben de o yüzden anlamadım zaten olay bitmiş bide sonuna return koymuş hocaangry ne anlamı varsaconfused dediğin gibi return ün anlamını biliorum ama anlamına uygun kullanılışı hiç olmadığı için derste yaptığımız kodlarda kafam karıştıfrown yine de teşekkür ederim





Yazar
extreme


avatar
Kahramanmaras
admin
Kayıt: 24.10.2006
01.07.2007-19:39 #24072
minyer(a) zaten önceden tanımlı fonksyon değilmi???

bence bu tip soru çıkmaz büt de. finaldekine benzer olur. sorabileceği en zoru bence:

1. Program: bir dosyaya istenildiği kadar isim ve maaş ekliyor. isimler maaş sırasına göre dosyaya kaydediliyor.

2. Program: BU isimlerin maaşlerını değiştirip maaş sırasına sokuyor, yada yeni kayıt ekleyip maaş sırasına sokuyor.



character*15 A,t2
integer i,j,t1
dimension A(100),B(100)
write(*,*) "Kac kayit girilecek"
read(*,*) n
do i=1,n
write(*,*) i,". ismi giriniz"
read(*,*) A(i)
write(*,*) A(i),"'in maasini giriniz"
read(*,*) B(i)
end do

do i=1,n
do j=(i+1),n
if (B(j) > B(i)) then
t1 = B(j)
B(j) = B(i)
B(i) = t1
t2 = A(j)
A(j) = A(i)
A(i) = t2
end if
end do
end do
write(*,*) "Dosyadaki veriler"
write(*,*) ""
open (10,file="maas.txt")
20 format (A15,1X,I4)
do i=1,n
t2 = A(i)
t1 = B(i)
write(10,20) t2,t1
write(*,20) t2,t1
end do
close(10)
write(*,*) " "
write(*,*) "Dosyaya veriler kaydedildi"
end





character*15 A,t1,isim
integer i,j,t2,n,l,B
dimension A(100),B(100)

open (10,file="C:MSDEVProjectscaner1maas.txt")
20 format(A15,1X,I4)

n = 0
do 
n = n + 1
read(10,20,end=30) t1,t2
A(n) = t1
B(n) = t2
end do
30 close(10)

write(*,*) "Dosyadaki veriler"
write(*,*) " "
do i=1,n
write(*,20) A(i),B(i)
end do

50 write(*,*) " "
write(*,*) "Bir kisinin maasini degistermek icin (1)"
write(*,*) "Yeni Kisi eklemek icin (2) "
write(*,*) "Giriniz"
read(*,*) l

select case(l)

case(1)
write(*,*) "kimin maasi degistirilsin"
read(*,*) isim
do i=1,n
if (A(i) == isim) then
write(*,*) isim,"'in yeni maasini giriniz"
read(*,*) B(i)
end if
end do

case(2)
n = n + 1
write(*,*) n,". kisinin ismini giriniz"
read(*,*) A(n)
write(*,*) A(n),"'in maasini giriniz"
read(*,*) B(n)

case default
write(*,*) "Yanlis deger girdiniz"
goto 50
end select

do i=1,n
do j=(i+1),n
if (B(j) > B(i)) then
t2 = B(j)
B(j) = B(i)
B(i) = t2
t1 = A(j)
A(j) = A(i)
A(i) = t1
end if
end do
end do

write(*,*) "Dosyanin yani hali"
open (10,file="C:MSDEVProjectscaner1maas.txt")

do i=1,n
t1 = A(i)
t2 = B(i)
write(10,20) t1,t2
write(*,20) t1,t2
end do

close(10)

end








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





Yazar
alew


avatar
istanbul
Kayıt: 01.04.2007
01.07.2007-21:42 #24084
extreme yolladığın kodlar için saol ama onlara geçmeden şu kodun neden hata vermediği halde doğru çalışmadığını anlamam lazım yardımcı olabilecek arkadaş var mı?ya defterde olan bir şey farklı değil ama nedense çalışmıyorworried

integer, dimension(6)::a
integer gecici,i,j,ust
write(*,*)"dizi elemanlarini gir"
read(*,*)a
ust=size(a)
do i=1,(ust-1)
do j=(i+1),ust
if(a(i)>a(j)) then
gecici=a(i)
a(i)=a(j)
a(j)=gecici
end if
end do
end do
write(*,*)"dizinin artan siralamasi"
do i=1,ust
write(*,*)a(i)
end do
end






Yazar
extreme


avatar
Kahramanmaras
admin
Kayıt: 24.10.2006
01.07.2007-22:55 #24089
integer, dimension(6)::a
integer gecici,i,j,ust
write(*,*)"dizi elemanlarini gir"
read(*,*)a
ust=size(a)
do i=1,(ust-1)
do j=(i+1),ust
if(a(i)>a(j)) then

gecici=a(i)
a(i)=a(j)
a(j)=gecici
end if
end do
end do
write(*,*)"dizinin artan siralamasi"
do i=1,ust
write(*,*)a(i)
end do
end


O kısmın yerine

do i=1,6
read(*,*) A(i)
end do
do i=1,6
do j=i+1,6

ust degeri zaten 6 olmak zorunda baştan öle belirledik. eğer istersen onun içinde yeni bir değişken girip başta kaç değer girileceğini sorarsın. A serisini "dimension A(100)" gibi geniş bir aralıkta tanımlayıp.

örnek

dimension A(100)
integer A
write(*,*) "kaç kayit girilecek"
read(*,*) kayit
do i=1,kayit
read(*,*) A(i)
end do
do i=1,kayit
do j=i+1,kayit







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





Yazar
extreme


avatar
Kahramanmaras
admin
Kayıt: 24.10.2006
01.07.2007-23:07 #24094
Defterdeki örneklere takılma çok fazla hata var. sen kendin yazmaya bak.





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





Yazar
alew


avatar
istanbul
Kayıt: 01.04.2007
02.07.2007-21:17 #24164
merhaba arkadaşlar ben defterde olan bir kodu bakmadan yazdım hata vermediği halde doğru çalışmadıcrying defterdeki ile kontrol ettiğimde ise ufak bir fark gördümsad
benim yazdığım kod;

implicit none
integer,dimension(10)::a
integer ust,i,j,t
character*2 cevap
do
write(*,*)"dizi elemanlarini gir"
read(*,*)a
ust=size(a)
j=ust-1
do
if(j==0)exit
do i=1,j
if(a(i)>a(i+1)) then
t=a(i)
a(i)=a(i+1)
a(i+1)=t
end if
end do
j=j-1
end do
write(*,*)"artan sirali dizi"
do i=1,ust
write(*,*)a(i)
end do
write(*,*)"yeni bir hesaplama yapmak istermisiniz"
read(*,*)cevap
if(cevap=="h".or.cevap=="H")exit
end do
end


benim kodda geçen

write(*,*)"dizi elemanlarini gir"
read(*,*)a
ust=size(a)

yerine defterde olan;

write(*,*)"kac sayi girceksiniz"
read(*,*)n
write(*,*)"sayileri gir"
do i=1,n
read(*,*)a(i)
end do


defterdeki gibi yazınca doğru bir şekilde çalişiyor ama benim anlamadığım bu iki kod parçası da aynı görevi gördüğü halde benim yazdgım neden doğru çalişmiyor?kafam karıştıworried
yardımcı olursanız sevinirimapplause








Yazar
siyah


avatar

Kayıt: 08.03.2007
03.07.2007-00:01 #24178
yazdığın program ancak 10 tane sayı girersen doğru çalışır.10 dan az sayıları sıralamak istiyorsan defterdeki o farklı olan kısmı kullanmalısın. bu kısım senin belirlediğin sayıda elemanın okunmasını sağlar.böylece 10 tane sayı girmek zorunda kalmazsın.peace








Yazar
alew


avatar
istanbul
Kayıt: 01.04.2007
03.07.2007-00:30 #24185
teşekkür ederim siyah smile





Yazar
alew


avatar
istanbul
Kayıt: 01.04.2007
03.07.2007-18:49 #24227
extreme yolladığın kodlara bakabilecek bilgiye yeni sahip olabildiim gerçekten iyi kodlar çok teşekkür ederim paylaşımın için applauseböyle defterde olmayan sınavda çıkabilecek tarzda kodlar yazabilirseniz büte hazırlananlar için çok makbule geçer özellikle senden bekliyoruz extreme zorlayıcı kodlar praying





Yazar
extreme


avatar
Kahramanmaras
admin
Kayıt: 24.10.2006
03.07.2007-19:33 #24236
alew sana yardımcı olmaktan mutlu oldum ama bu kadar mululuk bana yeter. o kodu yazmak için 1.5 saat uğraştım. bu kadar diyim gerisini sen anla.
tavsiyem değişkenlere dikkat et.

ör: dizilerde

toplam = 0
do i=1,n
toplam = toplam + dizi
...

dizi de "n" değil "i" kullanmak gibi. ben bu hatayı yapıyorum hep





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





Yazar
alew


avatar
istanbul
Kayıt: 01.04.2007
03.07.2007-19:53 #24239
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






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