ERİNMEZKAPTAN

ERİNMEZKAPTAN

Python

Python / Bölüm 4

29/10/2007

Fonksiyonlar ve kendi kendini çağırma(recursion)

 4.1 Kat sayı (mod) operatorleri

Kat sayı (mod) operatorleri tamsayılarda çalışır ve bölünen sayının kalanını verir.Pythonda mod işareti  % ‘dir.

 

>>> bölüm = 7 / 3

<  2  

>>> kalan = 7 % 3

< 1

diğer kullanımlar;

·        eğer x % y kalan  sıfırsa x , y ’ye tam böünür.

·        x % 10 işlemi x ‘in son rakamını verir.

·        x % 100  işlemi x’in son iki rakamını verir.

4.2 Koşula bağlı uygulamalar(fonksiyonlar)

Koşula bağlı uygulamalar kesin koşulları kontrol eder ve programın davranışını değiştirmemiz için bize izin verir.

 

En basit koşul terimi ; if

 

>>> if x > 0 :

         print  “ x is positive “

if ve : arasındaki ifadeye koşul denir.

·        Eğer koşul doğruysa program çalışmaya başlar.

Eğer koşul doğru değilse program çalışmaz.

 

Koşul yada fonksiyon herhangi bir karşılaştırma operatörünü içerebilir.

 

             X = = Y   àààX , Y ‘ye eşit ise ;

             X ! = Y    àààX , Y ’den farklı ise;

        X > Y      àààX, Y’den büyüktür

        X < Y      àààX, Y’den küçüktür.

        X >= Y      àààX, Y’den büyük veya eşit olduğu sürece;

 

4.3 Bileşik ifadeler (compound statement)

Fonksiyon tnımları gibi “if ” ifadeleri  bileşik (compound statement) ifadedir.

 

HEADER :

       FIRST STATEMENT

       ……………

       LAST STATEMENT

·        Sayfa başlığı yeni çizgi üzerinde başlar ve colon la biter.

·        Satır başı ile başlayan ifadelere block ifadelerdir.

Block içindeki tüm ifadeler birer ünite gibi davranır.

·        if fonksiyonu ya bütünü  yada hiçbirisi uygulanır.

 

 

4.4 Alternative execution

if ifadelerinin ikinci formu alternatif  fonksiyonlardır.Burada iki olabilirlik var ve bu durum hangi fonksiyonun yapılacağını kararlaştır.

 

>>> if  x % 2 = = 0 :

            print x , “ciftir.”

>>> else :

             print x , “tektir. ”

4.5 Çok yönlü dallar (multiple branches)

Fnoksiyon uygulamalarının diğer bir adı da conditional branching (fonksiyon dallanması), çünkü bazı tip control yapıları uygulama akışının farklı yönlere dağılmasına yada dallanmasına neden olabilir.

 

>>> if  x < y :

             print  x , “kucuktur”, y

>>> elif x > y :

             print  x, “buyuktur” , y

>>> else :

             print x ,”ve” , y ,  “esittir”

elif  komutu yada fonksiyonu birden çok tekrar edebilir.

 

>>>  if choice = =  ‘A’ :

                 ********A ( )

>>> elif choice = =  ‘B’ :

                 ********B ( )

>>> elif choice = =  ‘C’ :

                 ********C ( )

>>> elif choice = =  ‘D’ :

                 ********D ( )

>>> else :

            print “invalid choice.”

>>> else :

            print “invalid choice.”

4.6 İç içe fonksiyonlar

Bir fonksiyon diğer bir fonksiyon içinde olabilir.

 

>>>  if  x = = y :

>>>       print  x, “ve “, y , “eşittir.”

>>>  else :

>>>        if x < y :

>>>             print  x, “kucuktur” , y

>>>         else :

     >>>             print x , “buyuktur” , y           

4.7 Dönüş (return) ifadesi

Dönüş (return) ifadesi bir fonksiyon uygulamsının sonuca ulaşmadan sonlandırılmasında kullanılır.

>>> import math

>>> def printLogarithm(x) :

>>>        if x <= 0 :

>>>             print  positive numbers only , please.“

>>>             return

4.8  Kendi kendini çağırma

Fonksiyonlar başka fonksiyonları çağırmasının yanı sıra kendi kendilerini de çağırabilirler.Bu programın yapabildiği en güzel ve değişik şeydir.

>>> def countdown (n) :

>>>  if n = = 0 :

>>>       print “ blast off !”

>>> else :

>>>      print n

>>>      countdown(n-1)

countdown ‘a 3 değeri verdiğimizde ekran çıktısı

 

> 3     (n değerini bir azaltır ve tekrar kendini çağırır.)

> 2     (n değerini bir azaltır ve tekrar kendini çağırır.)

> 1     (n değerini bir azaltır ve tekrar kendini çağırır.) 

> 0     (n değeri sıfır olduğunda program biter.)

 

İkinci örnek olarak , newLine ve threeLine fonksiyonuna bakalım.

>>>  def  newLine ( ):

>>>       Print

>>>  def  threeLine ( ):

>>>        newLine ( )

 >>>       newLine ( )  

 >>>       newLine ( )

Yukarıdaki fonksiyonun çalışmasına rağmen, eğer 2 satır boşluk çıktısı istiyorsak bu fonksiyon pek kullanışlı olmaz.Daha iyi bir alternatif olarak ;

 

 >>>  def  nLines (n) :

 >>>         if n > 0 :

 >>>         print

 >>>         nLines (n-1)

Yukarıda program countdown programına benzer ve girilen n sayısı kadar alt alta satır açar.

Fonksiyonun kendi kendini çağırmasına recursion , bu fonksiyonlarda recursive ******** denir.

4.9 Sonsuz döngü (infinite recursion)

Recursive fonksiyonlar girilen değerler azaltılarak kendini çağırır ve girilen değer (n) sıfır olduğu zaman fonksiyon biter.

Fonksiyon hiç tekrarlama yapmadan tamamlandığı duruma base case denir.

Eğer tekrarlama “base case “ e ulaşmazsa,sonsuza dek tekrarlama yaparak fonksiyon dewam eder ve buda infinite recursion denir.

Python içerisinde birikmiş sınırlı seyler tüketilir ve her biri tekrarlanarak çağırılır ve sonunda bu program mesajı ile biter.

<    RuntimeError : Maximum recurcion depth exceeded

Bu sebepten dolayı Python içerisinde  “nLines “gibi fonksiyonlar tekrarlama kullanılarak yazılır. 

 

4.10 tekrarlı fonksiyonlar için akış diagramı

 

Countdown (3) için akış diagramı :

 

 

4.11 Keyboard input (klavye girdileri)

  raw­_input 

·        program kullanıcıdan bir şey girmesini ister.

·       Kullanıcı enter veya return tusuna bastığında program calışmaya devam eder.

·       Raw_input komutu girilen değer ne olursa olsun onu “string” olarak kabul eder.

           >>> reply = raw_input ( )

              What are you waiting for ?

           >>> print reply

               What are you waiting for ?

           >>> name = raw_input (“ What is your name? ”)

                What is your name ? Mustafa (kullanıcının girdiği isim)

            >>> print name

                         Mustafa

Kalıcı Bağlantı

Python / Bölüm 3

17/10/2007

BÖLÜM 3

FONKSİYON ÇAĞIRMA

3.1 Fonksiyon isimleri

Fonksiyon isimlerine bir örnek vermek gerekirse:

>>> type (''32'')

-fonksiyonun adı type tır.

-Bu değerin ve değişkenin tipini gösterir.

-Parantezlerle çevrili değerler ve değişkenlere argument denir.

-Sonuç 'return value'olarak adlandırılır

-Type bir düşünce alır ve bir sonuca dönüşür.

Geri dönen değerler değişken olarak tayin edilir.

>>> betty =type ( ''32'')

>>> print betty

> type 'string'>

3.2 Dönüşümü yazmak

Python yapılmış olan fonksiyonların toplanmasını 'değerlerin bir tipinden diğer tipe değişimini sağlar.

“Int” fonksiyonların değerleri tamsayıdır ve tekrar tam sayıya çevrilir.

>>> int (''32'')

> 32

>>> int (''HELLO'')

> ValueError:invalid literal for int( ) : Hello

“İnt” ayrıca ondalık sayılarıda tam sayı olarak kabul eder.

>>> int(3,99999)

> 3

Float fonksiyonlar tamsayıları ve string'leri kabul eder.

>>> float ( 32 )

> 32.0

>>> float (''3.14159'')

> 3.14159

 

str  fonksiyonu girilen değeri string‘e çevirir.

>>> str(32)

> '32'

>>> str(3.14149)

> ‘3.14149’

3.3 Type zorlama (Type Coercion)

Bir önceki bölümdeki problemi hatırlayalım : dakika / 60

Bu problem için iki türlü çözüm vardır.

·        “float “a açık dönüştürme (explicit conversion to float)

>>> dakika = 59

>>> float (dakika) / 60.0

>0.9833333333

·        Type zorlama (type coercion)

Matematiksel operasyonlar için eğer operand lardan ikiside float ise diğer float’ta otomatik olarak değişir.

>>> dakika = 59

>>> dakika /60.0

>0.98333333333

3.4 Matematiksel fonksiyonlar:

Python matematiksel modüle sahiptir.Bu modül sin veya log gibi iyi bilinen fonksiyonlardır..Modül bir dosyadır bu dosya bir arada gruplandırılmış fonksiyonlar içerir.

    Modül içinde fonksiyonları kullanmadan önce onları import (aktarma) etmeliyiz

>>>import math

Fonksiyonlar isimlendirilirken  modüllerin isimlerini de belirtmeli ve fonksiyonun isimlerini nokta ile ayırmalıyız.

decibel : math.log10(17.0)           # base  10; use  log()  for base e

angle : 1.5

height : math.sin ( angle )              # argument  in radians

Matematiksel modul ayrıca sabit olan pi saysını icerir.

>>>print math.pi

>3.14159265359

3.5 Birleştirme

Matematiksel fonksiyonlar gibi python’da da bunlar gerçekleştirilebilir.

x: math.cos(angle + math.pi/2)

x: math.exp(math.log(10.0))

3.6 Yeni fonksiyonlar eklemek

            Programlamada fonksiyonlar ifadeler dizisi olarak adlandırılır.Bunlar istenmiş veya seçilmiş operasyonları performe ederler.Bu operasyonlar fonksiyon tanımlarının içinde belirtilirler.

            Fonksiyon tanımları için söz dizimi şöyle olur:

>>> def  NAME ( LIST PARAMETERS

                STATEMENTS

* isim sizin seçiminiz olsun ,değişken isimlerde olan aynı kurallar geçerlidir. bölüm2.3

            * 0'ın veya birden fazla parametrenin virgülle ayrılmış listeleri opsiyonaldir.

                       * parametreler fonksiyonların içerisinde kullanılabilen bilgiler temin eder. 

            * fonksiyonun içinde ifade numarası bulunabilir..

                        * bütün ifadeler soldan boşluk bırakılarak yazılır..

Aşağıdaki fonksiyonun içinde herhangi bir ifade bulunmamaktadır çıktı olarakta yeni satır çıkar..

>>> def new_line( ) :

>>> print

Fonksiyonları nasıl adlandırıyorsak new_line fonksiyonlarıda aynı yolla adlandırılır.

>>> print  ''First Line.''

>>> new_line( )

>>> second  ''Second Line''

     Bu programın çıktısı:

> First  line

> Second line

            Çizgiler arasında ekstra boşlukları not etmeliyiz.Eğer daha fazla boşluk kullanmak istiyorsak fonksiyonu aynı şekilde tekrarlamalıyız.

>>> print ''First line''

>>> new_line( )

>>> new_line( )

>>> new_line( )

>>> print''Second Line.''

Veya threelines isimli yeni bir fonksiyon yazmalıyız.Bu fonksiyon yeni 3 satır hazılar..

>>> def threelines () :

>>> new_line()

>>> new_line()

>>> new_line()

 

>>> print ''First Line.''

>>> threeLines()

>>> print ''second Line.''

            Bu fonksiyon 3 ifade içerir,bunların hepsi iki boşluk tarafından kalıplaştırılmıştır.Diğer  ifadeler kalıplaştırılmamıştır.Phyton bunların fonksiyonun bir parçası olmadığını bilir.

Bu program hakkında not almak için;

        -Aynı fonksiyon tekrarlı bir şekilde isimlendirilir.

        -Bir fonksiyon başka bir fonksiyon olarak çağrılabilir.

 

Yeni fonksiyon  yaratılışlarının sonuçları.

-Guruplaştırılmış karışık ifadeler tek bir komutun altındadır.Bu kodu basitleştirir.

-Daha küçük program yaparken tekrarlı kodları elemelisin.

3.7 Tanımlama ve kullanma

Burada bizim programımız var;

>>> def new_line( ):

>>> print

 

>>> def threeLines( ):

>>> new_line( )

>>> new_line( )

>>> new_line( )

 Bu iki fonksiyon anlamı içerir.;new_line ve threeLines.

    -Fonksiyonların tanımları uygulanırken yeni fonksiyonlar yaratılır.

    -Fonksiyon tanımları herhangi bir çıktı vermezler.

    -Tanımların içindeki   ifadeler fonksiyon isimlendirilene kadar kullanılmaz

    -Fonksiyon isimlendirilmeden önce tanımlanmalı.dır

3.8 Uygulama akışı

    -Uygulamalar programın ilk ifadesi ile başlar.

    -İfadeler fonksiyonların ismine ulaşana kadar uygulanır.

    -Fonksiyonlar fonksiyonların içinde tanımlanabilir.

    -İçteki fonksiyon tanımı dıştaki fonksiyon isimlendirilene kadar meydana gelmez.

 Fonksiyonlar uygulama akış isimlerinin saptırılmış hali ile isimlendirilir.

     -Akış ilk satırdaki isimlendirilmiş fonksiyonla başlar.

     -Çağırılan fonksiyon bütün ifadeleri (statement) kullanır.

     -Fonksiyonlar diğer bir fonksiyonla çağrılabilir.

 3.9 Parametreler ve Argumentler

Fonksiyon içindeki geçilmiş değerler ''argument''olarak çağırılır.

                 X= sin(angle)

               “angle” sin fonksiyonunun bir argumentidir.

PrintTwice fonksiyonu girilen parametrenin iki defa yazılmasını sağlar.

 >>> printTwice (‘Spam’)

> spam spam

>>> printTwice(5)

>5  5

>>> printTwice(3.14159)

>3.14159    3.14159

Birleştirmenin aynı kuralları user_defined fonksiyonuna başvurur bu yüzden çeşitli tabirleri geçebilirsiniz.

>>> printtwice('Spam'*4)

> SpamSpamSpam    SpamSpamSpam

>>> printTwice(math.cos(math.pi))

>-1.0    -1.0

   Değişkenler ayrıca argument olarabilir.

>>> latoya  = ‘eric,  the half a bee.'

>>> printTwice(latoya)

> eric ,the half a bee.    eric the half a bee.

3.10  Değişkenler ve parametreler sınırlıdır.

    Değişkenler fonksiyonun içinde sadece çalışabilmeniz için yaratılmıştır.

>>>def   catTwice (part1,part2):        #concatenates  argument ;print twice

>>>cat:part1 +part 2

>>>printTwice(cat)

 

>>> chant1: ''Die Jesu domine,''

>>> chant2 : ''Dona eis requiem.''

>>> catTwice (chant1,chant2)

> Die Jesu,Dona eis requiem.Die Jesu domine,Dona eis requim

cat bittiği zaman cat diye bir değişken kalmaz.Eğer bunu yazmayı denersek hata ile karşılaşırız.

>>>print cat

> NameError:  cat

   Aynı şekilde eğer cat'in içinde printTwice 'ı kullanmayı denersek hata ile karşılaşarız.

>>> def printTwice (Bruce):

>  print cat,  cat

>>> catTwice (chant1,  chant2)

> NameError: cat

3.11  Stack diagram

 Stack diagramı size her fonksiyona atanmış değerleri veya parametreleri gösterir.

 

 

Kalıcı Bağlantı

Python / Bölüm 2

4/10/2007

BÖLÜM 2

 

Değişkenler(variables),Anlatımlar(expressions) ve İfadeler (statement)

1.1           Değerler 

“Değer” temel şeylerden birisidir.Yazı ve rakamlardır ve programı ifade eder.

 

  • Strings ( yazı dizisi) ; “SELAM DÜNYA!”
  • İntegers (tam sayı)   ;  17
  • Floating point number (küsüratlı sayılar) ;  3.2

Programda numaralar şu şekilde çıkar;

>>>  Print  4

4

>>>   Print  2.17

2.17

Her değerin bir çeşidi vardır.Python çeviricisi bu değerlerin çeşidini söyleyebilir.

>>>   type (messg)

<  type ‘string’ >

>>>   type (n)

<  type ‘int’ >

>>>   type (pi)

<  type ‘float’ >

 

1.2           Değişkenler(variables);

 “Değişken” değeri kasteden bir isimdir.

 

Yeni bir değişken yaratırken onu isimlendirmeli ve neyi kastetmek istiyorsanız ona göre   

 değerini berlemeli.İfadeler tayin etme anlamında adlandırılmaz çünkü o değer                                                             değişkenleştirmeyi tayin eder.

>>>  messg = “ SELAM ALİ”

>>>  n  = 17

>>>  pi = 3,14159

Değerlerin, tipleri olduğu gibi sadece, değişkenleri yapar.

>>> type (“selam”)

<     type   ‘string’ >

>>> type (n)

<     type ‘int’ >

 

Her olayda değişkenin tipi, ona tayin edilen değerin tipidir.

 1.3         Yazılmış değişkenler

 Basılmış ifadeler , değeri belirlenmiş değişkenleri göstermek için kullanılır.

 >>> print messg

‘’ SELAM ALİ’’

>>> print n

7

>>> print pi

3.14159

Basılmış sözcükler hem komut modunda hemde ******^te çalışır.Komut modunda değişkenlerin isimlerini doğru çeşitlendirebilirsiniz.

 >>> messg

‘’SELAM ALİ?’’

 

Scriptin içerisinde bu yasal bir ifadedir ama hiçbirşey yapmaz.

Basılı ifadeler tek çizgi üzerinde coklu değerler olarak yazılır.

 

>>> print ‘’pi^nin değeri ‘’, pi

Pi^nin degeri 3.14159

 

Virgül yazılı olanların değerlerinin ve değişkenlerin listelerini ayırır.Değerlerin arasında boşluk olmasına dikkat ediniz.

 

1.4         Operatorler ve Anlatımlar

  • Operators ; Toplama ve çarpma gibi hesaplamaları gösteren semboller.
  • Operants ; Bir operatörün kullandığı değerler.

 Python’un içerisindeki bir çok operatör sizin beklentilerinizi tamamıyla yerine getirir.Çünkü bunlar genel matematiksel sembollerdir. (+, -, *…..)

 1.5           Order of operations (Operator kuralları)

 Birden fazla işlem içinde belirirse ,değerlendirme sırası öncellik kurallarına ihtiyaç duyar.

 

  • Parantez en yüksek önceliğe sahiptir.

     2 * (3-1) = 4 ; (1+1) ** (5-2) = 8    ** = üs alma (2 üzeri3 gibi)

           (Dakika*100)/60

  • Üs alma ikinci önceliğe sahiptir.

    2**1+1 = 3 ; 3*1**3 =3

  • Daha sonra çarpma ve bölme işlemi gelir.

 1.6           Yazı dizisinde çalışmalar (operations on string)

       Birçok matematiksel operator yazı dizisinde çalışamaz.Buna rağmen operator her hangi bi hata kodu vermez.

           Fruit =”banana”

           bakedGood = “nut bread”

           dessert = fruit + bakedGood

           print dessert

 1.7           Düzenleme veya Bileşim (Compositions)

          Programlar değişken(variables) anlatımlar(expressions) ve ifadeler gibi elementlerin bileşimi ile meydana gelir.

 1.8           Yorumlar (comments) ;

      Yorumlar size kodunuzu açıklamak için izin verir.

 

# compute the percentage of the hour that has elapsed

Percentage = (minute * 100) / 60

Percentage = (minute * 100) / 60 #

 

“# “ ile başlayan ve biten her yorum programı etkilemez.

 

Yorum (yok) Yorum yaz! Kalıcı Bağlantı

Python / Bölüm 1

4/10/2007

PROGRAMIN YOLU

 

Bu dersin amacı nasıl bilgisayar mühendisleri gibi düşünülebileceğini öğretmektir.

Bu şekilde düşünmenin  yolu bazı iyi özelliklerin bir araya gelmesi ile oluşur.

 

* MATEMATİK

         -    Fikirleri ifade etmesi için resmi lisanların olduğu kullanımlar.

 

* MÜHENDİSLİK TEKNİK BİLGİ

 -         Tasarım

-         Bileşenleri sisteme adapte etme

-         Farklı alternatifler yaratma

 

*  DOĞAL BİLİM

      -    Karışık sistemlerin davranışını(Çalışma şeklini) izleme

      -    Varsayımlar oluşturma.

  

BİLGİSAYAR BİLİMİNDE EN ÖNEMLİ NOKTA PROBLEM ÇÖZMEDİR :

-    Problemi belirleme

-    Yaratıcı çözümler düşünme

-    Doğru ve tam çözümü bulma.

 

PROGRAMCILIĞI ÖĞRENMENİN YOLU PROBLEMLERE ÇÖZÜM YARATMAKTAN GEÇER.

 

1.1 The Python Programlama dili :

 İki çeşit programlama dili vardır , bunlar ;

 

HIGH – LEVEL (İLERİ SEVİYE)

  • Python
  • C
  • C++
  • Perl
  • Java

 LOW LEVEL (MAKİNE DİLİ )

  •  Intel x86(Pentium) – IBM PC UYUMLU
  • Motorola /IBM Power PC – Apple Macintosh; IBM bilgi merkezleri
  • Sun SPARC – Sun BİLGİ İŞLEMLERİ VE SERVERLAR.

Bilgisayar sadece low level (makine dili) programlama dillerini kullanır veya anlar.High level yazılan programlarda ise bilgisayar onu kendi anlayabildiği dile yani makine diline çevirir.

Low level (makine dili) programcılığın avantajları ; yazılan programların  çalışma hızı  arttırılabilir ve hafıza tüketimi azaltılabilir.

İleri seviye programlama dillerinin avantajalrı ise

 

  • kolay programlar olması

-   program yazımı daha kısa sürede tamamlanır.

      -   program okunması daha kolay ve kısadır.

      -   hata yapma sayısı daha azdır.

 

  • daha kolay geliştirilebilir ve farklı bilgisayarlarda kullanılabilir.

     Günümüzde pek çok program ileri seviye programlama dilleri ile yazılır.

Bilgisayarlar ileri seviye programları makine diline çevirmek için iki çeşit çevirici kullanır. Bunlar ; interpreters (çevirici) ve compilers (derleyici).

 

       Interpreter (çevirici)  

 

      GİRİŞ èè  ÇEVİRİCİ (INTERPRETER) èè ÇIKIŞ

       Derleyici kaynak kodu okur                                             sonuç ekrana yansıltılır

 

  • Compiler (Derleyici) 

GİRİŞ èè DERLEYİCİ (COMPİLER) èMAKİNE DİLİèEXECUTERèÇIKIŞ

Derleyici kaynak kodu okur                        kaynak kod makine çevrilir                  sonuç

 

Python programlama dili çevirici diller arasına girer.Python programı sadece çevirici tarafından çalıştırılır.

 Çevriciler sadece komut  modunda (command-line) veya yazım modunda (******-mode) çalışır.

 

  • Command-line (komut modu)

 Python ifadelerini ve çeviriciden çıkan sonucu çeşitlendiriniz.

                  $ python

                  Python 1.5.2(#1, Feb 1 2000,    16:32:16)

                  Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam

                  >>>   print 1+1

                   2

  • Script-mode (yazım modu)

Yazılan dosya ayrıca “****** “ olarak adlandırılır ve bu modu uygulamak için çevirici olarak kullanılır.

İçeriğinde Python yazılımı olan programların isimleri “.py” ile biter.

Programı çalıştırmak için “******” in adını belirtmelisiniz.

  1.2Program nedir?

 Program birbiri ardına gelen bilgilerin belirli bir çözüme ulaştıktan sonra çalışmasıdır.

 Örnek:

       

      *  Matematiksel

                  - sistem denklemlerini çözme

                  - çok terimli kökler

          

  • Simgesel hesaplama 

                 - döküman inceleme ve düzeltmek

           -  program çevirmek (python gibi

Farklı programlama dillerinde farklı komutlar vardır fakat bazı komutlar veya kavramlar aynıdır.Bunlar;

 

  • Input

          - bilginin klavye cd veya başka bir aletten bigisayara girişi..

 

  • Output

          - bilgiyi ekrandan alma veya herhangi bir veriyi dosyadan başka bir cihaza gönderme.

 

  • Math

     - matematiksel işlemlerin yapılması

 

  • Koşullu uygulama

           - kesin koşulları kontrol edip uygulama   

      

  • Tekrarlama

           - belirli eylemleri tekrarlama

 

Bütün programlar yukarıdaki gibi yapılarla oluşur.

 

1.2           Debugging nedir?

     Programlarda oluşan hatalara bug (mikrop veya virus) denir.bu viruslerin veya mikropların temizlenmesi işlemine debugging denir.

     Programlarda üç çeşit hata türü vardır.

 

    1.Syntax errors (yazım yanlışı) 

     Pek çok programlama dili gibi Python da da bazı yazım kuralları vardır ,eğer bu yazım kurallarına uyulmasa yazılan program çalışmaz. Ör : (5/2)) è yanlış (5/2) è DOĞRU

 

2. Run-time errors 

-         Eğer programda kusurlu satırlar varsa bunlara istisna (exception) denir ve çoğu zaman kötü sonuçlar doğurabilir.

-         Yazılan program bu noktadan sonra çalışmaz.

 3. Mantıksal veya Şematik hatalar (Logic or sematic errors)

     Bu hatalar sonucu yazılan program çalışır ve ekran da herhangi bir hata mesajı görünmez fakat program istenilen her şeye cevap veremez.

 1.4 Deneysel hata ayıklama (Experimental Debugging)

    Bazı programcılar hata ayıklamanın (debugging) zeka geliştirici, ilgi çekici ve ilginç olduğunu düşünürler.

 Hata ayıklamak dedektiflik yapmaya benzer.

 

  • Hata ayıklarken bazı ipuçlarıyla karşılaşırsın ve o ipuçları sonucunda hatayı onarabilirsin
  • Hata ayıklamak bilimsel deney gibidir..
  • Hata hakkında bir hipotez oluşturma .
  • Programı geliştirmek ve yeni sonuçlar üretmek
  • Eğer çıkan sonuç hipotezle uyuşuyorsa hipotez doğrudur.
  • Eğer uyuşmuyorsa hipotezi düzeltmek gerekir.

Bazı insanlar için ise programcılık ve hata ayıklama aynı anlama gelmektedir.

   

  • Programcılık hata ayıklama sürecinin programdan istediğinizi alıncaya kadar olan süreçtir.

                - Programla çalışmaya başlamak

          - Programda küçük geliştirmeler yap ve hataları kontrol et

          - Sürekli programla çalış

 

  • Bu tür geliştirme işlemlerine örnek olarak Linux’u verebiliriz.

                - Linus Torvald  bu işletim sistemini programlama sırasında Intel 80386 çip ‘i keşfetmiştir.

                 - Bu çip sadece AAAA ve BBBB arası değişim yapar.

                 - Ve yavaş yavaş Linux işletim sistemi gelişmeye başladı.

 

1.5            Resmi (Formal) ve Doğal (Natural) Diller

            

           Doğal (Natural) diller;İnsanların konuştuğu dillerdir. Ör:İngilizce,İtalyanca vb.

Bu diller insanlar tarafından tasarlanmamıştır ,kendi kendine gelişmiştir.

 

         Resmi (Formal)diller;

 

       *   Matematikçiler

         Matematiksel işaretler birer resmi dil sayılır ve  sayılar ve semboller arasında ki ilişkiyi  belirtmek amaçlı kullanılır.

 *   Kimyager

   Kimyasal işaretler birer resmi dil sayılır ve molekuller ve kimyasal yapılar arasındaki ilişkiyi belirtir.

      

       *   Bilgisayar Bilimciler

          Programlama dili bir resmi dildir ve kodları tasarlama amaçlı kullanılır.

 Resmi dillerin katı yazım kuralları wardır.Örneğin;

 

      *   3+3=6   matematiksel yazım kurallarına uygundur.

      *   3=+6$    matematiksel yazım kurallarına uygun değildir.

      *   H2O       kimyasal  yazım kurallarına uygun

      *    2zz        uygun değil

 İki çeşit yazım kuralı vardır;

 

1.      Simge Kuralları ;

-         Kelimeler

-         Sayılar

-         Kimyasal elementler

 

2.      Yapı Kuralları;

-         3+= 6 artı matematiksel olarak eşittir ile yan yana bulunmaz.

-         2zz element isimleri kimyasal yazım kuralları olarak sayıdan sonra gelemez.Sayıdan önce gelmelidir.

-          

Resmi ve Doğal Dillerin benzerlikleri ;

     

-         Semboller

-         Yapılar

-         Yazım kuralları

-         Şemalar

 

  Resmi ve Doğal Diller arasındaki farklar;

  

-         Eş anlamlı kelimeler

           _ Doğal dillerde pek çok eş anlamlı kelime kullanılır.

           _ Resmi dillerde ise eş anlamlı kelime bulunmaz yani her kelime kendine özgüdür.

 

-         İhtiyaç fazlası kelimeler

 

-Doğal diller de cümle içinde  gereğinden fazla kelime kullanılabilir

   fakat anlam bozulmaz.

-         Resmi diller ise kısa ve özdür

 

Yorum (1) Yorum yaz! Kalıcı Bağlantı