OMU MAKINE Fortran Ornekleri/ Vize 2013

24
FORTRAN ÖRNEKLER (2013) NOT: - Kod sat rlar ndaki baz bo luklar göstermek için "_ " kullan lm r. - Kod sat rlar n hemen yan nda, iki ünlem i areti aras nda yaz lan bilgiler o sat rla ilgili aç klamalar için yaz lm r. sim ile Kar lama Klavyeden isim girildikten sonra, 'merhaba ...' eklinde kullan kar layacak bir program yaz z. program karsilama character ad*20 write(*,*) 'adiniz nedir?' read(*,*) ad write(*,*) 'merhaba_', ad end Toplama lemi Klavyeden girilen iki say toplayan bir program yaz z. program toplama write(*,*) 'toplama icin iki sayi giriniz:' read(*,*) a, b c=a+b write(*,*)'toplam=', c end Daire Çevresi ve Alan Hesaplama Klavyeden yar çap girilen dairenin çevresini ve alan hesaplayan bir program yaz z. program daire pi=3.141592 write(*,*) 'yaricapi giriniz:' read(*,*) r cevre=2*pi*r alan=pi*r**2 write(*,*) 'Alan=_', alan, '_Cevre=_', cevre end

description

Bilgisayar Programlama Dersi Fortran Örnekleri (Vize) Doç. Dr. Bahatttin Topaloğlu

Transcript of OMU MAKINE Fortran Ornekleri/ Vize 2013

Page 1: OMU MAKINE Fortran Ornekleri/ Vize 2013

FORTRAN ÖRNEKLER (2013)

NOT:

- Kod sat rlar ndaki baz bo luklar göstermek için "_ " kullan lm r.

- Kod sat rlar n hemen yan nda, iki ünlem i areti aras nda yaz lan bilgiler o sat rla ilgili aç klamalar için yaz lm r.

sim ile Kar lama

Klavyeden isim girildikten sonra, 'merhaba ...' eklinde kullan kar layacak bir program yaz z.

program karsilama

character ad*20

write(*,*) 'adiniz nedir?'

read(*,*) ad

write(*,*) 'merhaba_', ad

end

Toplama lemi

Klavyeden girilen iki say toplayan bir program yaz z.

program toplama

write(*,*) 'toplama icin iki sayi giriniz:'

read(*,*) a, b

c=a+b

write(*,*)'toplam=', c

end

Daire Çevresi ve Alan Hesaplama

Klavyeden yar çap girilen dairenin çevresini ve alan hesaplayan bir program yaz z.

program daire

pi=3.141592

write(*,*) 'yaricapi giriniz:'

read(*,*) r

cevre=2*pi*r

alan=pi*r**2

write(*,*) 'Alan=_', alan, '_Cevre=_', cevre

end

Page 2: OMU MAKINE Fortran Ornekleri/ Vize 2013

deal Gaz Yo unlu u Hesaplama

Kullan s ras yla gaz n ad ve mol kütlesini yazd ktan sonra "gazin_adi gazinin yogunlugu [kg/m3]" eklinde ç kt veren bir program yaz z.

program yogunluk

character AD*10

P0=1.013E5

T0=273

R=8314

write(*,*)'gazin adi:'

read(*,*) ad

write(*,*) 'gazin mol kutlesi [kg/kmol]:'

read(*,*) m

R0=P0*m/R/T0

write(*,*) ad,'_gazinin yogunlugu [kg/m3]=', R0

end

Page 3: OMU MAKINE Fortran Ornekleri/ Vize 2013

Organik Molekül Yo unlu u Hesaplama

Kimyasal formülü CxHy eklinde verilen bir gaz yak n N. .A. yo unlu unu hesaplayan bir program yaz z.

program yogunluk

character ad*20

R=8314

P0=1.013e5

T0=273

MC=12

MH=1

write(*,*) 'Gazin adini giriniz:'

read(*,*) ad

write(*,*) 'C ve H atomlarinin sayisini giriniz:'

read(*,*) x,y

M=MC*x+MH*y

R0=P0*M/R/T0

write(*,*) ad, '_gazinin yogunlugu [kg/m3]=', R0

end

deal Gaz Hacmi Hesaplama

Bir ideal gaz n 1 atm bas nç ve 273 K s cakl ktaki hacim de erini klavyeden girerek, istenilen ba ka bir s cakl k ve bas nçtaki hacmini hesaplamaya yarayan bir program yaz z.

program hacim

p0=1.013E5 !1 atm bas nç!

T0=273 !273 K s cakl k!

write(*,*) 'v0 giriniz:'

read(*,*) v0

write(*,*) 'P ve T giriniz:'

read(*,*) P, T

V=v0*p0/P*T/T0

write(*,*) 'Hacim=', V

end

.=

.

Page 4: OMU MAKINE Fortran Ornekleri/ Vize 2013

Ortalama ve Toplam Hesaplama

Klavyeden girilen say lar n ortalamas ve toplam hesaplayan bir program yaz z. Bu hesaplamada kullan lacak say lar n giri inin tamamland -999 girerek belirtiniz.

program ortalama

top=0

n=0

20 write(*,*) 'ortalama ve toplam icin sayi giriniz, bitir icin -999'

read(*,*) sayi

if (sayi.eq.-999) goto 10

top=top+sayi

n=n+1

goto 20

10 ort=top/n

write(*,*) 'toplam=', top, '_ortalama=', ort

end

Ders Geçme

Klavyeden s ras yla ö rencinin ad ve soyad , ö renci numaras , aras nav notu, final notu girilerek rencinin ders geçme durumunu ve ba ar notu harfini gösteren bir program yaz z. Program n

sonlanmas için final notunun negatif girilmesi art tan mlay z.

Ba ar Notu Aras nav*0.4+Final*0.6 Ba ar Notu Harfi

100 - 90 A1 89 - 80 A2 79 - 70 B1 69 - 60 B2 59 - 50 C 49 - 0 F3

program sinav

character AS*30, BNH*2

10 write(*,*)'Ad soyad, No, Ara ve Final sinav notlarini gir,final ne

&gatif girilirse programi bitir' !& i areti alt sat rdan devam etmek için kullan r!

read(*,*)AS,NO,ARA,FIN

if (FIN.LT.0) stop

BN=0.4*ARA+0.6*FIN

Page 5: OMU MAKINE Fortran Ornekleri/ Vize 2013

if (BN.GE.90) BNH='A1'

if (BN.GE.80 .and. BN.LT.90) BNH='A2'

if (BN.GE.70 .and. BN.LT.80) BNH='B1'

if (BN.GE.60 .and. BN.LT.70) BNH='B2'

if (BN.GE.50 .and. BN.LT.60) BNH='C'

if (BN.LT.50) BNH='F3'

write(*,*)'ad=',AS,'_No=',No,'_Basari Notu=',BNH

goto 10

end

Denklem Köklerini Bulma

+ + = format ndaki bir denklemin köklerini, klavyeden a, b, c katsay lar girerek hesaplayan bir program yaz z.

program denklem

write(*,*)'A,B,C yi giriniz'

read(*,*)A,B,C

D=B**2-4*A*C ! hesapland !

if (D) 10,20,30 !*!

10 write(*,*)'gercek kok yoktur.'

stop

20 X=-B/(2*A)

write(*,*)'cakisik iki kok var=',x

30 X1=(-B+D**0.5)/(2*A)

X2=(-B-D**0.5)/(2*A)

write(*,*)'X1=',X1,'X2=',X2

end

*if döngülerinde bu tür, virgüllerle ayr lm bir ifade kullan ld nda artlar u ekilde belirlenmektedir:

D < 0 ise 10

D=0 ise 20

D>0 ise 30

Page 6: OMU MAKINE Fortran Ornekleri/ Vize 2013

Üçgen art Kontrolü

Üç kenar uzunlu u klavyeden girildi inde üçgenin türünü ya da üçgen art n sa lanmad belirten bir program yaz z.

program ucgen

write(*,*) 'ucgen kenar uzunluklarini giriniz'

read(*,*) a,b,c

if (a.lt.(b+c) .and. b.lt.(a+c) .and. c.lt.(a+b)) then

if (a.eq.b .and. b.eq.c)then

write(*,*)'bu ucgen eskenar ucgendir'

else if ((a.eq.b .and. b.ne.c) .or.

&(b.eq.c .and. c.ne.a).or.

&(b.eq.c .and. c.ne.a))then

write(*,*)'bu ucgen ikizkenar ucgendir'

else

write(*,*)'bu ucgen cesitkenar ucgendir'

end if

else

write(*,*)'bu bir ucgen degildir'

end if

end

Page 7: OMU MAKINE Fortran Ornekleri/ Vize 2013

Vücut Kitle ndeksi (BMI) Hesaplama

Klavyeden vücut a rl ve boy bilgileri girilerek vücut kitle indeksi hesaplayan, sonuca göre de erlendirme yapan bir program yaz z.

Vücut Kitle ndeksi =

De erlendirme

35 BMI Obez 30 BMI < 35 man 25 BMI < 30 Kilolu 20 BMI < 25 Normal

BMI < 20 Zay f

program kindex

real ki

write(*,*) 'agirligi (kg) giriniz:'

read(*,*) agirlik

write(*,*) 'boyu (m) giriniz:'

read(*,*) boy

ki=agirlik/boy**2

write(*,*) 'ki=',ki

if (ki.lt.20) then

write(*,*) 'zayif'

elseif (ki.ge.20.and.ki.lt.25) then

write(*,*) 'normal'

elseif (ki.ge.25.and.ki.lt.30) then

write(*,*) 'kilolu'

elseif (ki.ge.30.and.ki.lt.35) then

write(*,*) 'sisman'

else

write(*,*) 'obez'

end if

end

Page 8: OMU MAKINE Fortran Ornekleri/ Vize 2013

Rüzgar H Hesaplama

Farkl arazi ko ullar n etkisini de göz önünde bulunduracak ekilde; klavyeden belirli bir yükseklikte ölçülen rüzgar h ve yükseklik girilerek, istenilen yükseklikteki rüzgar h hesaplayabilen bir program yaz z.

=

Klavyeden girilmesi gereken de erler: V0, Z, Z0, p

V :Hesaplanmak istenen h z

Z :Rüzgar h n hesaplanaca yükseklik

V0 :Belirli bir yükseklikte ölçülen h z

Z0 :V0 n ölçüldü ü yükseklik

p :Pürüz yüksekli i ve stabiliteye ba katsay

1- Büyük ehir: p=0.40 2- Küçük yerle im yeri: p=0.28 3- rsal alan: p=0.16

program ruzgar

10 write(*,*)'1-buyuk sehir'

write(*,*)'2-kucuk yerlesim yeri'

write(*,*)'3-kirsal alan'

write(*,*)'p katsayisinin belirlenmesi icin secim yapiniz:'

read(*,*)no

if (no.lt.1 .or. no.gt.3)then

write(*,*)'yanlis girdiniz tekrar girin'

goto 10

elseif (no.eq.1)then

P=0.4

elseif(no.eq.2)then

P=0.28

else

P=0.16

endif

write(*,*)'Z0 giriniz'

Page 9: OMU MAKINE Fortran Ornekleri/ Vize 2013

read(*,*)Z0

write(*,*)'V0 giriniz'

read(*,*)V0

write(*,*)'Z giriniz'

read(*,*)Z

V=(Z/Z0)**P*V0

write(*,*)'Z=',Z

write(*,*)'V=',V

end

Serbest Dü me

Durgun halden serbest dü me hareketine ba layan bir cismin, klavyeden girilen yükseklik ve t saniye aral klarla h ve zeminden yüksekli ini hesaplayan bir program yaz z.

program sdusme

G=9.81

write(*,*)'yuksekligi (m),DELTAT(s) giriniz'

read(*,*)Y0,DELTAT

write(*,*)'T[s] v[m/s] y[m]'

write(*,*)'------------------------'

10 T=T+DELTAT

V=g*T

Y=Y0-0.5*G*T**2

write(*,20)T,V,Y

20 format(1x,3F10.3)

if (Y.GT.0) goto 10

end

Page 10: OMU MAKINE Fortran Ornekleri/ Vize 2013

Say ya Kadar Toplama (if kullanarak)

Klavyeden girilen n say na kadar olan tamsay lar n toplam if döngüsü kullanarak hesaplayan bir program yaz z.

program toplam

top=0

i=1

write(*,*) 'n giriniz:'

read(*,*) n

20 if (i.gt.n) goto 10

top=top+i

i=i+1

goto 20

10 write(*,*) 'toplam=', top

end

Say ya Kadar Toplama (do kullanarak)

Klavyeden girilen n say na kadar olan tamsay lar n toplam do döngüsü kullanarak hesaplayan bir program yaz z.

program toplam

top=0

write(*,*) 'n giriniz:'

read(*,*) n

do 50 i=1, n, 1

top=top+i

50 continue

write(*,*) 'toplam=', top

end

Page 11: OMU MAKINE Fortran Ornekleri/ Vize 2013

z, Zaman, Yol Hesaplama

Sabit ivme ile hareket eden bir arac n ula maksimum h ve bu h za ula mas için geçen süreyi klavyeden girerek; birer saniye aral klarla ula h (m/s) ve maksimum h za ula ana kadar ald yolu hesaplayan bir program yaz z.

program hiz

write(*,*) 'maksimum hiz (km/h) ve sureyi (s) girin:'

read(*,*) vmax, tmax

A=vmax/tmax

write(*,*) 'Zaman (s) Hiz (m/s) Yol (m)'

do 10 t=1, tmax, 1

v=a*t

x=0.5*a*t**2

write(*,*) t, v*3.6, x

10 continue

end

ç çe Do Döngüsü -1

program do1

write(*,*) 'i j k'

write(*,*) '-----'

do 10 i=1, 3

do 20 j=2, 4

k=i+j

write(*,*) i, j, k

20 continue

10 continue

end

ç çe Do Döngüsü -2

program do2

write(*,*) 'i j k'

write(*,*) '-----'

k=0

i j k -----

1 2 3 1 3 4 1 4 5 2 2 4 2 3 5 2 4 6 3 2 5 3 3 6 3 4 7

i j k -----

1 3 4 1 4 9 2 3 14 2 4 20

Page 12: OMU MAKINE Fortran Ornekleri/ Vize 2013

do 10 i=1, 2

do 20 j=3, 4

k=k+i+j

write(*,*) i, j, k

20 continue

10 continue

end

ç çe Do Döngüsü -3

program do3

write(*,*) 'i j k'

write(*,*) '-----'

do 10 i=1, 2

k=0

do 20 j=3, 4

k=k+i+j

write(*,*) i, j, k

20 continue

10 continue

end

ç çe Do Döngüsü -4

program do4

write(*,*) 'i j k'

write(*,*) '-----'

do 10 i=1, 2

do 20 j=3, 4

k=0

k=k+i+j

write(*,*) i, j, k

20 continue

10 continue

end

i j k -----

1 3 4 1 4 9 2 3 5 2 4 11

i j k -----

1 3 4 1 4 5 2 3 5 2 4 6

Page 13: OMU MAKINE Fortran Ornekleri/ Vize 2013

ç çe Do Döngüsü -5

program do5

write(*,*) 'i j k'

write(*,*) '-----'

k=0

do 10 i=1, 2

do 20 j=5, 3, -1

k=k+i+j

write(*,*) i, j, k

20 continue

10 continue

end

ç çe Do Döngüsü -6

program do6

write(*,*) 'i j k'

write(*,*) '-----'

k=0

do 10 i=1, 3, 2

do 20 j=5, 3, -1

k=k+i+j

write(*,*) i, j, k

20 continue

10 continue

end

i j k -----

1 5 6 1 4 11 1 3 15 3 5 23 3 4 30 3 3 36

i j k -----

1 5 6 1 4 11 1 3 15 2 5 22 2 4 28 2 3 33

Page 14: OMU MAKINE Fortran Ornekleri/ Vize 2013

Pi Say Hesaplama

= 4 + … dizisinin terimleri toplanarak pi say istenen duyarl kla hesaplanabilir. Bu

toplam k saca = 1) eklinde de yaz labilir. Bu dizinin ilk n terimini kullanarak say hesaplayan bir program yaz z.

!denklemler incelendi inde pi say hesaplamak için sadece terim say girilmesinin yeterli oldu u görülmektedir!

program pisayisi

real pi

write(*,*) 'Pi sayisi kac terimle hesaplanacak?'

read(*,*) n

pi=0

isaret=-1

do 10 i=1, n

isaret=-isaret !bu sat r ile döngüdeki i de eri artt kça isaret de eri bir + bir - de er alacakt r!

terim=isaret*4./(2*i-1) !Fortran'da 4. yaz lmazsa bölme i lemi gerçekle memekte!

pi=pi+terim

write(*,*) 'terim sayisi:', i, '_pi=', pi !*!

10 continue

end

* Bu programda her döngü tekrar nda hesaplanan pi say ekrana yazd lmaktad r. Böylece pi say n gittikçe do ru de erine yak nsamas ekrandan izlenebilir. E er continue sat n hemen öncesindeki write sat continue sonras na yaz rsa sadece girilen n terimi sonunda hesaplanan pi say görüntülenebilir.

Page 15: OMU MAKINE Fortran Ornekleri/ Vize 2013

Dizi Toplam

( ) =2

+3 4

fonksiyonunun de erini, verilen x için dizinin ilk n terimini kullanarak hesaplayan bir program yaz z. x ve n de erleri klavyeden girilecektir.

Aç klama:

Fonksiyon incelendi inde 1) i lemine kar k geldi i görülmektedir. Dolay yla n de erine kadar olan i lemlerin hesaplanmas için do döngüsü yaz rken bu i lem tan mlanmal r.

program dizitoplam

write(*,*) 'x degerini giriniz:' !f(x) fonksiyonun hesaplanmas için gerekli olan x de eri!

read(*,*) x

write(*,*) 'toplanacak terim sayisini giriniz:'

read(*,*) n

fx=0 !fx döngüsü olu turmadan önce ba lang ç de erini s r olarak tan tmam z gerekir!

do 10 i=1, n

terim=(-1)**(i+1)*(x**i)/i

fx=fx+terim

write(*,*) 'i=', i, ',_f(x)=', fx

10 continue

end

Page 16: OMU MAKINE Fortran Ornekleri/ Vize 2013

Tarih Yaz

gg.aa.yyyy eklinde girilmi tarihi gg aa yyyy ve gg/aa/yyyy format nda geri veren bir program yaz z.

program tarih

integer gun, ay, yil

write(*,*) 'Gunun tarihini gg.aa.yyyy seklinde giriniz:'

read(*,10) gun, ay, yil

10 format (i2,1x,i2,1x,i4)

write(*,20) gun, ay, yil

20 format ('_',i2,'_',i2,'_',i4)

write(*,30) gun, ay, yil

30 format (1x,i2,'/',i2,'/',i4)

end

Say Giri i

Klavyeden girilen say kaç basamakl olursa olsun, ilk 4 basama okuyan ve 'girilen sayi: (ilk 4 basamak)' eklinde dönü yapan bir program yaz z.

program sayi

write(*,*) 'bir sayi gir'

read(*,10) n

10 format(i4)

write(*,20)n

20 format (1x,'girilen sayi:',i4)

end

Page 17: OMU MAKINE Fortran Ornekleri/ Vize 2013

Faktöriyel Hesaplama

Klavyeden girilecek n say na kadar bütün say lara ait faktöriyel de erlerini hesaplayan bir program yaz z.

Elde edilmek istenen:

program faktoriyel

write(*,*) 'n degerini girin:'

read(*,*) n

fakt=1

write(*,20)

20 format (1x,'sayi',30x,'faktoriyel',/,1x,4('-'),30x,10('-'))

do 100 i=1, n

fakt=fakt*i

write(*,10)i, fakt

10 format (1x,i4,3x,F30.3)

100 continue

end

Sayi Faktoriyel ---- ---------- 1 1 2 2 3 6 4 24 5 120 ... ... n n!

Page 18: OMU MAKINE Fortran Ornekleri/ Vize 2013

Gelecekteki Nüfusu Hesaplama

Bir bölgenin gelecekteki nüfusu = (1 + ) formülü ile hesaplanabilir. Burada

: Gelecekteki nüfus

: Yeni nüfus

p : Nüfus art oran

n : ki nüfus say aras ndaki y l fark

anlam ndad r. Nüfus art oran p, a daki formül yard ile hesaplanabilir.

= 1

eski bir say ma göre nüfustur. Eski ve yeni y llar, bunlara ait nüfus say mlar verildi ine göre say mlardan sonraki 5,10,15,...,50 y l için nüfuslar hesaplay p yazan bir program yaz z.

program nufus

real NY,NE,P,N

integer NG,YY

write(*,*)'eski nufus ve yil'

read(*,*)NE,YE

write(*,*)'yeni nufus ve yil'

read(*,*)NY,YY

N=YY-YE

P=(NY/NE)**(1/N)-1

write(*,*) ' YIL NUFUS'

do 10 I=5,50,5

NG=NY*(1+P)**I

YG=YY+I

write(*,20)YG,NG

10 continue

20 format(1x,F5.0,I9)

end

Page 19: OMU MAKINE Fortran Ornekleri/ Vize 2013

Celsius-Fahrenheit-Kelvin

Celcius birimindeki s cakl klar -50oC ile 150oC aras nda 10'ar derece aral klarla Fahrenheit ve Kelvin birimine çeviren bir tablo haz rlayan bir program yaz z.

TF=32+1.8*TC

TK=273.15+TC

program sicaklik

C C, F, K sicaklik tablosu

write(*,*) ' T[C] T[F] T[K]'

do 10 TC=-50, 150, 10

TF=32+.18*TC

TK=273.15+TC

write(*,*) TC, TF, TK

10 continue

20 format (1x,F5.0,1x,F5.1,1x,F6.2)

end

Dizi De kenlerle Standart Sapma ve Ortalama Hesaplama

Klavyeden girilen n tane say n aritmetik ortalamas ve standart sapmas hesaplayan bir program yaz z.

= = ( )

program standart

dimension x(100)

write(*,*)'n giriniz:'

read(*,*) n

do 10 i=1, n

write(*,*) i,'. sayiyi gir'

read(*,*) x(i)

top=top+x(i)

10 continue

xort=top/n

top=0

Page 20: OMU MAKINE Fortran Ornekleri/ Vize 2013

do 20 i=1, n

top=top+(x(i)-xort)**2

20 continue

ss=sqrt(top/(n-1))

do 30 i=1, n

write(*,*) 'x(',i,')-', x(i)

30 continue

write(*,*) 'ortalama=', xort

write(*,*) 's sapma=', ss

end

Page 21: OMU MAKINE Fortran Ornekleri/ Vize 2013

Matris Toplama

= 1 3 45 7 8 , = 6 1 7

9 3 4

C=A+B toplama i lemini yapan bir program yaz z.

= 7 314 10 12

m : sat r say

n : sütun say

program matris

dimension A(2,3),B(2,3),C(2,3)

integer A,B,C

write(*,*)'satir ve sutun sayisini gir'

read(*,*)M,N

do 10 I=1,M

read(*,*)(A(I,J),J=1,N)

10 continue

do 20 I=1,M

read(*,*)(B(I,J),J=1,N)

20 continue

do 30 I=1,M

do 30 J=1,N

C(I,J)=A(I,J)+B(I,J)

30 continue

write(*,100)

do 40 I=1,M

write(*,110)(A(I,J),J=1,N)

40 continue

100 format(' A matrisi',/,9('-'))

110 format(1x,3I3)

write(*,120)

do 50 I=1,M

write(*,110)(B(I,J),J=1,N)

Page 22: OMU MAKINE Fortran Ornekleri/ Vize 2013

50 continue

120 format(' B matrisi',/,9('-'))

write(*,130)

do 60 I=1,M

write(*,110)(C(I,J),J=1,N)

60 continue

130 format(' C matrisi',/,9('-'))

end

Page 23: OMU MAKINE Fortran Ornekleri/ Vize 2013

eklinde geli igüzel girilen say lar s ralayan bir program yaz z.

Dizi de kenler kullan lmadan:

program siralama

real ks

read(*,*)A1,A2,A3,A4

if (A2.lt.A1)then

ks=A2

A2=A1

A1=ks

endif

if(A3.lt.A1)then

ks=A3

A3=A1

A1=ks

endif

if(A4.lt.A1)then

ks=A4

A4=A1

A1=ks

endif

if(A3.lt.A2)then

ks=A3

A3=A2

A2=ks

endif

if(A4.lt.A2)then

ks=A4

A4=A2

A2=ks

Say lar s ralama A1 A2 A3 A4 4 3 2 1

Page 24: OMU MAKINE Fortran Ornekleri/ Vize 2013

endif

if(A4.lt.A3)then

ks=A4

A4=A3

A3=ks

endif

write(*,*)A1,A2,A3,A4

end

Dizi de kenler kullan larak:

program sirala

real ks

dimension A(1000)

write(*,*)'kac sayi siralanacak?'

read(*,*)N

do 10 I=1,N

write(*,*)I,'. sayiyi gir'

read(*,*)A(I)

10 continue

do 20 I=1,N-1

do 25 J=I+1,N

if (A(J).lt.A(I))then

ks=A(J)

A(J)=A(I)

A(I)=ks

endif

25 continue

20 continue

do 30 I=1,N

write(*,*)A(I)

30 continue

end