Yazar |
|
alew
istanbul
Kayıt: 01.04.2007 |
|
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 sevinirim ben büte kalmış biri olarak bazı ayrıntıları karıştırıyorum
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
istanbul
banlandı
Kayıt: 15.02.2006 |
|
insa ettigim binanin cimentosu kelâm
|
|
Yazar |
|
alew
istanbul
Kayıt: 01.04.2007 |
|
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
Kayıt: 09.01.2007 |
|
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
istanbul
Kayıt: 01.04.2007 |
|
evet işte ben de o yüzden anlamadım zaten olay bitmiş bide sonuna return koymuş hoca ne anlamı varsa 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ı yine de teşekkür ederim
|
|
Yazar |
|
extreme
Kahramanmaras
admin
Kayıt: 24.10.2006 |
|
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
istanbul
Kayıt: 01.04.2007 |
|
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ıyor
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
Kahramanmaras
admin
Kayıt: 24.10.2006 |
|
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
Kahramanmaras
admin
Kayıt: 24.10.2006 |
|
Defterdeki örneklere takılma çok fazla hata var. sen kendin yazmaya bak.
The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com
|
|
Yazar |
|
alew
istanbul
Kayıt: 01.04.2007 |
|
merhaba arkadaşlar ben defterde olan bir kodu bakmadan yazdım hata vermediği halde doğru çalışmadı defterdeki ile kontrol ettiğimde ise ufak bir fark gördüm
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ı
yardımcı olursanız sevinirim
|
|
Yazar |
|
siyah
Kayıt: 08.03.2007 |
|
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.
|
|
Yazar |
|
alew
istanbul
Kayıt: 01.04.2007 |
|
teşekkür ederim siyah
|
|
Yazar |
|
alew
istanbul
Kayıt: 01.04.2007 |
|
extreme yolladığın kodlara bakabilecek bilgiye yeni sahip olabildiim gerçekten iyi kodlar çok teşekkür ederim paylaşımın için bö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
|
|
Yazar |
|
extreme
Kahramanmaras
admin
Kayıt: 24.10.2006 |
|
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
istanbul
Kayıt: 01.04.2007 |
|
bi mutluluk kargaşası olmuş ama gerçekten kodlar süper çok saol annadım ben onu ama senin dikkat et dediğin yeri anlamadım nereye n demicez de i dicez dizilerde
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 eğer zamanın varsa bi bakabilirmisin
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
|
|
|
|
-
Del.icio.us
-
Digg
-
Facebook
-
Furl
-
Google
-
Blink
-
Simpy
-
Spurl
-
Y! MyWeb
|
|
| | | | | | | | | | | |