N m Mİ - III, Fortran IV, Fortran 66, Fortran 77, Fortran 90, Fortran 95, Fortran 2003 ve Eyll 2010da Fortran 2010 adıyla bilinen geliştirilmiş versiyonları da ...

Download N m Mİ -   III, Fortran IV, Fortran 66, Fortran 77, Fortran 90, Fortran 95, Fortran 2003 ve Eyll 2010da Fortran 2010 adıyla bilinen geliştirilmiş versiyonları da ...

Post on 08-May-2018

232 views

Category:

Documents

9 download

Embed Size (px)

TRANSCRIPT

  • Arz

    u E

    rdem

    20

    10

    -20

    11

    BA

    HA

    R D

    N

    EM

    FO

    RT

    RA

    N

    2010-2011 Bahar Dnemi Matematik Blm ders notlar

    Koceali niversitesi erdem.arzu@gmail.com

    http://fef.kocaeli.edu.tr/yonetim/goruntu.php?action=Hsayfa&numara=100025http://umm.kocaeli.edu.tr/dosyalar/index.htm

  • GR

    AMA:

    Problem zme kavramn gelitirmek ve incelemek

    Problem zerken baka yollar dnmek ve gelitirmek

    Problemi zmek iin ncelikle, problemin nasl bir duruunun veya tavrnn olduunu

    dnmemiz gerekmektedir. Ve bu bazen grnd kadar kolay olmamaktadr. Bunun iin

    2 temel yntem ele alnabilir:

    1. Doal diller

    2. Yapay diller

    DOAL DLLER

    Pek ok insann kullanm olduu dillerdir. Fakat zaman zaman farkllklar mevcut olabilir.

    rnein

    o 3 yandaki bir ocuk ile yetikinin konumas arasndaki farklar

    o Bir araba yapmnda, fiziki ile mhendisin kullanm olduu dil arasndaki farkllklar

    o Yeni teknolojilerin kullanmlarnn anlatlmasnda ii ve yneticilerin kullanm

    olduu diller, vb.

    Veya doal diller bazen ok anlaml da olabilirler. rnein

    Yal bir adam ve kadn yolda yryorlar.==> Kadn ve adam ikisi de yal m?

    Bu yzden problemin tanmlanmas ve zlmesinde doal dilleri kullanrken ok dikkatli

    olmalyz!

    YAPAY DLLER

    En ok kullanlan yapay diller ise teknik terim ve notasyonlardr:

    Terimler

    o Scaklk (C, F)

    o Basn ((Pa)-Pascal, (N/m2) Newton/m2)

    o Ktle ((kg), (g), (t) - ton), vb.

    Notasyonlar

    o Cebir (N,Z,Q,R,C ile gsterilen say kmeleri)

    o Temel hesaplar ( )

    o Mantk ( )

  • ALGORTMA

    Bir problemi veya problemin bir parasn zmek iin kullanlan admlar dizisidir.

    Hata! Sra belirtilmemi.Tost ve yada yumurta piirmek iin bir algoritma yaznz.

    ncelikle piirmek iin eksiklerimizin olup olmadn kontrol etmek ve varsa bunlar

    tamamlamak iimizin yarsn yapmak demektir. Buna gre

    1. htiya listesini belirleriz

    sonra ise

    2. Yaplacaklar adm adm sralarz. Burada admlarmzn tam olmas gerekmektedir. rnein

    yumurta yapmnda ya koymadan yumurtalar krarsak yumurtalarmz yanabilir gibi

    PROGRAM DLLER

    PROGRAM DL NEDR?

    Problemi zmek iin bilgisayarn anlamlandrd bir aratr. Problemlerin eitlilii ile

    birlikte programlarn eitlilii meydana gelmitir.

    Programn ilk olarak 0-1 i kullanan bir dijital ara olarak balamtr. Ve 0-1 ikilisinin

    kullanmnn yetersiz geldii durumlarda ise programlar gelitirilmitir.

    FORTRAN (FORMULA TRANSLATON)

    1954ten 1957 ye kadar IBM ve John Backus tarafndan gelitirilen bir dildir. Problemlerin

    bilimsel olarak zlmesinde kullanlr ve renmesi olduka kolaydr. Bilimsel olarak hala

    kullanlan bir dildir ve zellikle eitim sektrnde uygun olmas sebebiyle kullanlr. 1958 de

    Fortan II versiyonu ile yenilenmitir. Fortran III, Fortran IV, Fortran 66, Fortran 77, Fortran 90,

    Fortran 95, Fortran 2003 ve Eyll 2010da Fortran 2010 adyla bilinen gelitirilmi versiyonlar

    da mevcuttur.

    COBOL (COMMON BUSNESS ORENTATED LANGUAGE)

    dnyas tarafndan kabul edilen bir programdr. Bilimsel hesaplamalardan daha ok daha

    karmak tarzdaki problemler iin kullanlr.

    ALGOL

    1950lerde gelitirilen ve UNESCO tarafndan desteklenen bir dildir. Ve Algol 60, Algol 68 gibi

    versiyonlar ile gelitirilmitir.

    PASCAL

  • Pascal dizayn eden Niklaus Wirth, Algol 68in disaynnda bulunmutur. Pascal grnt

    olarak Algol 68 ile benzerlikler tarken daha etkili ve renmesi daha kolay bir dildir.

    BASC (BEGNNERS ALL PURPOSE SYMBOLC INSTRUCTON CODE)

    Kemeny ve Kurtz tarafndan Dartmouth da, 1960larda gelitirilmitir. renmesi kolay

    olduu gibi baz yetersizliklerinden dolay ok fazla eletiri alan bir dildir.

    C

    Brian Kernighan ve Dennis Ritchie tarafndan gelitirilen yksek seviyede gelimeler ieren

    bir dildir.

    MATLAB(MATRX LABORATORY)

    C, C++ ve Fortran dillerini iinde barndran bir ara yzdr. 1970 lerde University of New

    Mexicoda Cleve Moler tarafndan oluturulmu ve 2000 lerde MathWorks tarafndan

    gelitirilmitir.

  • VER TPLER

    SABTLER

    INTEGER (TAM SAYI)

    Tamsay trdr ve snrldr. lemcinin ve bilgisayarn kapasitesine gre snr deiir.

    rrrnnneeekkk:::

    1234 tamsaydr ancak 1234. deildir.

    REAL (REEL SAYI)

    8 basamaa kadar deien bir sabittir.

    rrrnnneeekkk:::

    1234.

    1234E3=1234000

    -23456. = -2.3456E4

    DOUBLE

    16 basamaa kadar deien reel saylardr. Reel saylardaki E sembol yerine D sembol

    kullanlr.

    rnek:

    1234D3=1234000

    CHARACTER (KARAKTER)

    Tek harf veya harfler btndr. Tek trnak iinde yazlr.

    rnek:

    S

    Abab

    Bugn hava ok gzel

    Yanl kullanm

  • Yanl kullanm

    Yanl kullanm

    Karakter ilemlerinde kesme iareti kullanmak iin iki kesme iareti tanmlanmaldr.

    rrrnnneeekkk::: Bugn Slann doum gn

    LOGCAL (MANTIKSAL)

    Doru ve yanl deerlerini alan mantksal sabitlerdir.

    rrrnnneeekkk::: . true ve .false

    COMPLEX (KOMPLEKS SAYILAR)

    Kompleks saylar reel say ikilileri olarak tanmlanr.

    rrrnnneeekkk::: (1.2345,-6.5E4) 1.2345 reel ksm, -6.5E4 sanal ksm olarak tanmlanr.

    DEKENLER

    Deikenler, programn depolad giri, k, sabit ve ara deerlerdir. Deikenlerin

    isimlerinde alfabetik karakter ve say bulunabilir. Ancak isimler harflerle balamaldr ve 31

    karakterden uzun olmamaldr. Ayrca deikenleri programn banda tanmlamalyz!

    rrrnnneeekkk:::

    A3, A_2, loop3, sam, A3B4 Doru

    123x, 0A, _abc Yanl

    Fortran byk ve kk harf ayrm yapmaz!

    rrrnnneeekkk::: NUMBER ve NUMber isimli deikenler ayndr!

    Sabitler gibi deikenlerinde tipleri mevcuttur ve tipler sabit tipleri gibidir. Programn

    balangcnda deiken tiplerini tanmlarken ok dikkatli olunmaldr. Eer deiken

    tanmlamay yapmazsanz, Fortran otomatik olarak bir belirleme yapar:

    I,J,K,L,M,N harfleri ile balayan deikenler tam saydr,

    A -H ve O Z harfleri ile balayan deikenler reel say olarak atanr.

    CHARACTER*7:: PROG PROG=FORTRAN

  • EKRANA YAZMAK

    VARSAYILAN FORMATTA YAZMAK

    EKRANA YAZMAK

    VARSAYILAN FORMATTA YAZMAK

    LOGCAL:: D D=.TRUE.

    PROGRAM NASIL YAZILIR VE ALITIRILIR?

    Fortran ara yz iin kullanlacak program Force 2.0 dr.

    Yeni dosya amak iin FLE NEW

    Var olan dosyay amak iin FLE OPEN

    En son alm olan dosyalar amak iin FLE REOPEN

    Kaydetmek, Farkl formatta kaydetmek ve tm dosyalar kaydetmek iin FLE SAVE,

    FLE SAVE AS, FLE SAVE ALL kullanlr. Dosya uzantlar .f olarak kaydedilir.

    Program veya tm programlar kapatmak iin FLE CLOSE, FLE CLOSE ALL

    Program altrmak iin RUN (F9)

    Program derlemek iin RUN COMPLE (CTRL+F9)

    Derlenen program amak iin RUN EXECUTE (SHFT + F9)

    Program durdurmak iin RUN STOP (CTRL+ F12)

    WRTE(*,*)

    Programn ktlarnn ekranda grnmesi ve yazdrlmas iin kullanlr. Parantez iindeki ilk *

    iareti ktnn nereye yazlacan ikinci * ise hangi formatta yazlacan belirtir.

    WRITE(*,*)

    READ(*,*)

    Programn girilerinin okunmas iin kullanlr. Write da olduu gibi parantez iindeki ilk *

    iareti ktnn nereye yazlacan ikinci * ise hangi formatta yazlacan belirtir.

    READ (*,*)

    Klavye

    Read (*,*)

    Bilgisayar

  • PROGRAMI ADLANDIRMAK VE BTRMEK

    Program yazarken aadaki gibi program ile balamal stop ve end ile bitirmeliyiz.

    Program Program_ad . lemler . Stop End Program_ad

    Program kaydederken kaydedeceimiz ad ve Program_ad ayn olmak zorunda deildir

    ancak hangi programn neyi ifade ettiini anlamamz asndan ayn adlar vermekte fayda

    vardr.

    COMMENT (YORUM) SATIRLARI

    almayan ve yorumda bulunulacak veya aklama yaplacak satrlar iin C, ! iaretlerinden

    biri kullanlr.

    rrrnnneeekkk::: Merhaba tantma memnun oldum. Ben yazdran program,

    hi.f

    rrrnnneeekkk::: ki saynn toplamn yazdran program,

    top.f

    rrrnnneeekkk::: Deiken tiplerinin hassasiyeti ile ilgili program. (x=3.4 y=3 ve tanmlama integer

    olarak ve x/(x-y) ifadesini buldursun!),

    Degisken.f

    rrrnnneeekkk::: Kompleks saylarda 4 ilemi hesaplayan program,

    Kompleks.f

    Bilgisayar

    write (*,*)

    Ekran

  • OPERATRLER

    ARTMETK OPERATRLER

    Operator Aklama

    + Toplama veya pozitif say

    - karma veya negatif say

    * arpma

    / Blme

    ** Kuvvet

    MATEMATKSEL FONKSYONLAR

    Fonksiyon Aklama

    ABS (x) X in mutlak deer

    COS (x) x in Cosine deeri (radian olarak)

    EXP(x) Exponential Fonksiyon

    INT(x) Xin tam ksm

    LOG(x) X in doal logaritmas

    MAX(xl, . . . , Xn) xl, . . .,xn nin Maximumu

  • MIN(xl, . . . , xn) xl, . . ., xn nin Minimumu

    MOD(x,y) x (mod y); x - INT(x/y) * y

    NINT(x) X in en yakn tamsayya yuvarlatlmas

    SIN(x) X in Sine deeri (radian olarak)

    SQRT(x) x in karekk

    MANTIKSAL OPERATRLER

    Operator Aklama

    .NOT. Mantksal negatiflik

    .AND. Mantksal birleme

    .OR. Mantksal ayrlma

    .EQV. Mantksal eitlik

    .NEQV. Mantksal eitsizlik

    .NOT.

    Logic 1 .NOT. (Logic 1)

    TRUE FALSE

    FALSE TRUE

    .AND.

    Logic 1 Logic 2 (Logic 1) .AND. (Logic 2)

    TRUE TRUE TRUE

    TRUE FALSE FALSE

  • FALSE TRUE FALSE

    FALSE FALSE FALSE

    .OR.

    Logic 1 Logic 2 (Logic 1) .OR. (Logic 2)

    TRUE TRUE TRUE

    TRUE FALSE TRUE

    FALSE TRUE TRUE

    FALSE FALSE FALSE

    .EQV.

    Logic 1 Logic 2 (Logic 1) .EQV. (Logic 2)

    TRUE TRUE TRUE

    TRUE FALSE FALSE

    FALSE TRUE FALSE

    FALSE FALSE TRUE

    .NEQV.

    Logic 1 Logic 2 (Logic 1) .NEQV. (Logic 2)

    TRUE TRUE FALSE

    TRUE FALSE TRUE

    FALSE TRUE TRUE

    FALSE FALSE FALSE

    rrrnnneeekkk::: employed=.true, age=50 test = employed .AND. (agesmall) , test = .NOT. test deerleri nedir?

  • rrrnnneeekkk::: test = (5*3>12) .EQV. (6*2>8), test = (5*313), test = (5*3>12) .NEQV. (6*2

  • rrrnnneeekkk::: Aadaki ifadeleri dardan girilen deerler iin sonular bulduran programlar,

    A+B-C+2AB-7,

    ,

    ,

    ,

    ,

  • KONTROL FADELER

    IF KOUL

    If karar yaps, bir koul saland zaman yaplacak ilemleri kapsar. Kontrol edilecek koul

    ifadesinin sonucu True deerini alrsa, If End If blou arasndaki kodlar altrlr.

    If (art) Then Komutlar ElseIf (art) Komutlar ElseIf (art) Komutlar Else Komutlar End If

    Eer birden fazla koulumuz yoksa ancak birden fazla komutumuz varsa

    If (art) then Komutlar End If

    Tek artmz varsa Then ve End If kullanmayabiliriz.

    IF (TODAY.EQ.MONDAY) THEN

    .

    ELSEIF (TODAY.EQ.TUSDAY) THEN

    .

    ELSEIF (TODAY.EQ.WEDDAY) THEN

    .

    ELSEIF (TODAY.EQ.THRDAY) THEN

    .

    ELSEIF (TODAY.EQ.FRIDAY) THEN

    .

    ELSEIF (TODAY.EQ.SATDAY) THEN

    .

  • ELSEIF (TODAY.EQ.SUNDAY) THEN

    .

    ELSE

    there has been an error. The variable TODAY has

    taken on an illegal value.

    ENDIF

    If (art) Komutlar

    rnek:

    1 , 0

    ,0 2( )

    3 ,2 4

    4 , 4

    x

    x xf x

    x

    x x

    ile tanmlanan fonksiyonun dardan girilen x deerine

    gre ( )f x i hesaplayan program,

    rnek: 2( ) 5 3f x x x fonksiyonu iin sgn ( )f x fonksiyonunu hesaplayan ,

    rnek: Dardan girilen herhangi bir saynn negatifi pozitif veya 0 olduunu veren program,

    rnek: Dardan girilen bir saynn tek mi ift mi olduunu veren program,

    rnek: Dardan girilen 2 saydan byk olan veren program yaznz.

    rnek: 1.vize ve 2. Vize durumlarna gre not hesab yapan ve gemesi iin finalden ka

    almas gerektiini veren program,

  • SELECT CASE

    Tekrarlamal If koulu yerine Select Case yaps da kullanlabilir.

    SELECT CASE( ifade ) CASE( deeri ) koullar ... CASE DEFAULT koullar END SELECT

    select case season

    case ('summer')

    leaves = .true.

    sun = .true.

    case('winter')

    leaves = .false.

    sun = .false.

    case('spring','autumn')

    leaves = .true.

    sun = .false.

    case default

    write(*,*) 'mistake in season name'

    end select

    rnek: Verilen aya gre hangi mevsimde olduu belirten program,

    rnek: Belirtilen tarihteki ayn ka gn srdn veren algoritmay yaznz.

    AY.f

  • rnek: Dardan girilen tek haneli bir sayy yaz ile yazdran programn VBasic dilinde yaznz.

    SAYI.f

    rnek: Katl bir otoparkta arabalar girite plaka numaralar, sahibinin ad ve giri saati kaydedilecektir. Garaj yneticisi araba sahibi gelip plakasn veya ismini sylediinde arabann kalma sresi ile orantl olan cretini bulup fiini kesebilecek program,

    OTOPARK.f

    0 - 2 saat 1,5 YTL

    2 - 8 saat 3 YTL

    8-24 saat 5 YTL

    rnek:

    Koc - 21 Mart - 20 Nisan

    Boga - 21 Nisan - 20 Mays

    Ikizler - 21 Mays - 21 Haziran

    Yengec - 22 Haziran - 22 Temmuz

    Aslan - 23 Temmuz - 23 Austos

    Basak - 24 Austos - 23 Eyll

    Terazi - 24 Eyll - 23 Ekim

    Akrep - 24 Ekim - 22 Kasm

    Yay - 23 Kasm -21 Aralk

    Oglak - 22 Aralk -20 Ocak

    Kova - 21 Ocak - 19 ubat

    Balik - 20 ubat - 20 Mart

    Bur izelgesine gre ay ve gn girdiimizde hangi burcumuzun olduunu veren program.

    BURC.f

  • GOTO

    Program durdurmadan nce baka bir ifadeye ynlendirmek istiyorsak GOTO ifadesini

    kullanrz.

    ...

    IF( x100 ) THEN

    inner: DO i=1,n

    ...

    END IF main

    END DO inner !illegal, inner must be within main

    EXT

    Koullu olarak DO dngsnden kmak iin kullanlr.

    do

  • ifadeler if (mantksal ifade) exit komutlar end do

    rnek: Dardan girilen N saysna gre 1den Ne kadar olan saylarn karelerinin toplamn

    hesaplayan program,

    DO1.f

    rnek: Dardan girilen N saysna gre; T1,1den Ne kadar saylarn toplam; T2, 1den Ne kadar tek saylarn toplam; T3 de 1den Ne kadar ift saylarn toplamdr. Buna gre T1, T2,

    T3 deerlerini hesaplayan program

    DO2.f

    rnek: 1-N arasnda girilen pozitif saylardan negatif say girii olduunda dngden kp

    yeniden giri yapmasn salayan program,

    DO3.f

    rnek: Tm kenarlar tamsay ve hipotens 20den kk olan tm dik genleri bulduran program

    rnek: Dardan girilen bir N tamsays iin 1-N arasnda ka tane asal say olduunu bulduran program

    rnek: Dardan girilen N deerine gre (N>20), 0-N aras tm saylarn toplamn, 5-N-6 aras tek saylarn arpmn, 14-N aras ift saylarn toplamn hesaplayan program

    rnek: ln 1 x fonksiyonun seriye alm ......432

    )1ln(432 xxx

    xx eklindedir.

    Buna gre dardan girilen x iin ln 1 x deerini hesaplayan program,

    rnek: arctan x fonksiyonun seriye alm ......!5!3

    arctan53 xx

    xx eklindedir. Buna

    gre dardan girilen x iin arctan x deerini hesaplayan program

    rnek: Dardan girilen x iin ......53

    53 xxxT ; 1x deerini hesaplayan program,

  • rnek: Dardan girilen x iin ......5

    1

    3

    1153 xxx

    T ; 1x deerini hesaplayan

    program,

    rnek: Dardan girilen x iin ......3

    )1(

    2

    )1(13

    3

    2

    2

    x

    x

    x

    x

    x

    xT ; 2/1x deerini

    hesaplayan program,

    rnek: Dardan girilen n saysna gre 2222

    11......

    3

    11

    2

    11

    1

    11

    na arpmn

    bulduran program,

    rnek: Dardan girilen n saysna gre 1 1 1

    ....sin1 sin1 sin 2 sin1 sin 2 ... sin

    an

    seri toplamn bulduran program,

    rnek: Dardan girilen n saysna gre

    n

    na

    1....

    2

    11

    !.....

    2

    11

    !2

    1

    !1 ifadesini bulduran

    program,

    DO WHLE

    Tekrarlamal ifadelerde koul salandka ilemlerin salanmas iin kullanlan bir komuttur.

    do while(mantksal ifade) komutlar end do

    rnek: Dardan girilen 10 tabanndaki pozitif bir tamsaynn, belirtilen tabandaki karln hesaplayan program,

    rnek: Verilen N saysn oluturan tek rakamlarn toplamn bulmak iin program yaznz.

    rnek: M tabannda verilen N saysnn 10 tabannda deerini bulmak iin program yaznz.

  • DZLER

    Birden fazla giri yaplp, programda kullanlacak olan deiken trlerini dizi olarak

    tanmlamamz gerekir. Dizilerin 2 boyutlu durumunu ise matris olarak dnrz.

    Aada 8 elemanl bir dizi rnei grmekteyiz.

    Aadaki ise 2 satr ve 4 stundan oluan bir matrisi gsterir.

    Fortran dilinde dizi ve matrisleri aadaki kullanmlar ile belirtiriz:

    DIMENSION name(bound) DIMENSION name (bound1,bound2) REAL name(bound) INTEGER name(bound) CHARACTER name(bound) LOGICAL name(bound) REAL name (bound1,bound2) INTEGER name (bound1,bound2) CHARACTER name (bound1,bound2) LOGICAL name (bound1,bound2)

    Aadaki rnekte bir telefon rehberi rnei verilmitir. Matris gibi dndmzde 1.

    Stun k...

Recommended

View more >