You are on page 1of 104

Genel zet

Programcln temelinde algoritma gelitirme vardr. Program, belirli tasarlanm/gelitirilmi kodlardan oluan bir yazlm parasdr. Veri Yaps (data structure): verilerin saklanma ekli
verilerin etkin olarak saklanmas ve ilenmesi iin kullanlan yap uygun veri yaps yerden kazandrr, algoritmay hzlandrr

Veri Tr: veriyi aklamak zere kurulmutur Veri Modeli (data model): verilerin ilikisel dzeni her problem doas gerei en uygun veri modeline sahiptir veri modeline dayanlarak algoritmik ifadeler ortaya konur
1

Temel Veri Trleri

tamsay - karakter - gerel say - string vs

Veri Yap Snar

temel tanmlamal
topluluk oluturma (struct) ortaklk oluturma (union) bit dzeyinde eriim

Veri Modelleri

balantl liste - aa - graf - durum makinesi veritaban-ilikisel - a balant hash (rp) TODO: ekil eklenecek

devam

devam

Algoritma Algoritma: belirli bir ii var olan veya sonradan


tanmlanan veri modeline dayandrarak adm adm ortaya koyma
bir sorunun zm iin ngrlen ilemlerin mantksal ve sembolik anlatm. Sedgewicke gre problem zme yntemi hayatmzn parasdr: ie alnan kiinin oryantasyonu, ...

Abu Jafar Mohammed ibn Musa el Khowarizmi (Horazmi)


zbekistann Harezm (Khiva) kenti, Fars bilgini El Horazmiye gre ... deyimi zaman ierisinde algoritma kelimesi, hesaplarn anlatm Euclidin almalar

Sonlu ve dzenli eylemler dizisinin betimlenmesi...Kesin


7

Algoritmik X Sezsel Dnme


Algoritma: bir sonucun bulunmasn kolaylatran, ama deneme-yanlmaya ve sezgisel zmlemeye kart olan bir yntemdir. Algoritmada zm iin olas yntemlerden en uygun olan seilir, ve yaplmas gerekenler adm adm ortaya konur Sezisel dnmede ise zm ak deildir; tasarmcnn deneyimi, birikimi ve o andaki dncesine gre problemi zecek bireylerin ekillendirilmesiyle yaplr. Baz problemler (network cennectivity) ancak algoritmik dnceyle zlebilir. Algoritmann zel geometrik ekillerle izilmi hali: ak diyagram, N-S ve W-O emalar

Ak izgesi

Algoritmalarla kimler alr

Internet. Web search, packet routing, distributed le sharing. Biology. Human genome project, protein folding. Computers. Circuit layout, le system, compilers. Computer graphics. Movies, video games, virtual reality. Security. Cell phones, e-commerce, voting machines. Multimedia. CD player, DVD, MP3, JPG, DivX, HDTV. Transportation. Airline crew scheduling, map routing. Physics. N-body simulation, particle collision simulation.

10

Algoritmalar

20.yy bilimi formle dayal 21.yy bilimi algoritmaya dayal algoritma: doann - insann - bilgisayarn ortak dili (Avi Wigderson) Bir ok algoritmaya ihtiya duyulur
Arama - Sralama - Matrissel - Graf- Matematiksel Problem

11

Algoritmann zellikleri

Etkinlik: tekrarlarn olmamas, genel amallk Sonluluk: zyinelilik Kesinlik: kesin sonu/netice, kesin srallk (admlarn sras) sray belirleyen kumanda yaps girdi/kt olmaldr baarm

12

Hesap, Programlama Dilleri ve Algoritmalar

Gndelik yaammzda her zaman hesaplarz: paramz, puanmz, deerlerimizi, yamz vb nitel->nicel: l->hesap bir algoritmann gerekletirilmesi iin programlanmas gerekir -> programlama dili.

13

Soyutlama
Soyutlama: problem ve zm mantksal ve ziksel ynleriyle ayrarak grmeye imkan verir.

Otomobil. Src (kullanc) ve Tamirci arasndaki fark. Mantksal ve ziksel bak kullancya sunulan hizmetler arayz olarak adlanr. tamirci kaputun altndaki ayrntlarla da ilgilenir. bilgisayar kullanclar iin de geerli. Mantksal veya kullanc penceresinden gryorlar. Bilg.Bil., teknoloji destek elemanlar, programclar ve sistem yneticileri, alt-seviye ayrntlar denetlerler. Soyutlamann kullanan= istemci, iler yolunda gittii srece arayz doru yant verdii srece ayrntlar bilmesine gerek yoktur.
14

levsel Soyutlama

Python:Math modl

>>> import math >>> math.sqrt(16) 4.0 >>>

15

Kara Kutu bir arayz tanmlarz, neye gerek duyuyor ve ne dndrecek, ve


ayrntlar iine gmlr

16

1.3.1 Programlama Nedir?

Programlama: bir algoritmaya gre bilgisayarn ileyebilecei/yrtebilecei emirlere notasyona (programlama diline) dntrme srecidir.

Bilg.Bil.de programlama nemli bir ara olmann tesi deildir. Programlama, problem zmne temsil retmek Programlama dili, algoritmann temsil edilmesi

17

Veri Tr

bilgisayarda her ey say: 1/0, ikil katar bu katarlara anlam veri trleriyle salanr zmeye altmz probleme ait veri hakknda, ikil veriden yorumlama imkan verir.

18

rnek: Veri Tr: Tamsay

veri: ikil bit katar --> yorum: tamsay rn. 23, 654, -19 hangi ilemler yrtlebilir: toplama, kartma, arpma vs.

19

Karmak Veri Trleri

problem ve zm ar derecede zor olduunda, bu basit veri trleri ve denetim yaplar problem zme srecinde zorluklara neden olur. Bu karmakl idare etmenin ve zm retmenin kolay bir yolu olmal!

20

1.3.2 Veri Trleri ve Soyut Veri Trleri

problemin ve problem-zmenin karmakln idare etmek: soyutlama gereksinimi byk resme odaklanmak problem dzleminde modeller retmek model: problemin doasna uygun, idaresi kolay, daha verimli

21

Veri Soyutlama

Soyut Veri Tr (ADT): nasl tasarlandna dair ayrntlar gz ard ettirecek veri paralar ve ilemler iin mantksal tanmlama dzlemi.

tasarm ayrntlar yerine kullanmna odaklanma imkan

22

Veri Sarmalama Veri sarmalamayla gereklemeye dair ayrntlar kullancdan


gizleriz

bir anlamda bilgi gizlemedir

23

1.3.3 Algoritmalarla Neden alrz?


deneyimle renme dierlerinin zmlerini grp kendimiz zerek reniriz benzer problemlerde belli rntleri yakalayp, hzl ve k tasarmlar yapmamz mmkn olur Python, Nesne Ynelimlidir (OOP) betik dilidir prompt >>> satr-satr yorumlar ve sonular gsterir

>>> print "Merhaba" Merhaba >>>


24

1.4.1 Veri

Python= OOP verinin grnn (durum) ve yapabileceklerini (davran) tanmlamak iin snf (class) tanmlarz. OOPda veri eleri== nesneler (objects) bir nesne, bir snfn rneidir (instance)

25

1.4.1.1 lkel Snar

yerleik saysal snf: tamsay, uzun tamsay ve kayar noktal. standart aritmetik ilemler: +, -, * ve ** (st alma) ve parantezle ncelik ayar % modl ileci. bu gibi ilemler yntem (method)

26

devam
>>> 2+3*4 14 >>> (2+3)*4 20 >>> 2**10 1024 >>> 6/3 2 >>> 7/3 2 >>> 7.0/3 2.3333333333333335 >>> 7%3 1 >>> 3/6 0 >>> 3.0/6 0.5 >>> 2**100 1267650600228229401496703205376L

27

Mantk Snf
Doru (True) ve Yanl (False) mantksal ilemler: and, or, not gibi

>>> True True >>> False False >>> False or True True >>> not (False or True) False >>> True and True True >>>

28

devam

Eitlik (==) ve byktr (>) gibi karlatrma ilemlerinin sonular olarakta karmza kar

>>> 5==10 False >>> 10 > 5 True >>>

29

Tanmlayclar

isimler bir harf veya altizgiyle (_) balar byk/kk harf duyarldr herhangi bir uzunlukta olabilir kod okunurluu ve anlalrl yksek isimler tercih edin! deikenler, atama ifadesinin sol yannda yer ald ilk yerde oluturulur deiken, veri parasna bir referanstr, verinin kendine deil!

30

devam

kod

>>> sum = 0 >>> sum 0 >>> sum = sum + 1 >>> sum 1 >>> sum = True >>> sum True

31

devam
sum= 0 ifadesi sum isminde bir deiken ve 0 veri nesnesine bir referans oluturur.

genelde atama ifadesinin sa yan hesaplanr, elde edilen sonuca bir referans deikene atanr

32

devam
verinin tr deitiinde, Python dinamik karakteristie sahiptir

33

1.4.1.2 Yerleik Kolleksiyonlar: Liste


sfr veya daha fazla sayda Python veri nesnesini sral tutar eleri virglle (,) ve keli parantezle ([ ]) hapsedilir bo liste: [ ]. listeler heterojendir, elemanlar ayn trden olmak zorunda deildir!
[1, 3, True, 6.5] 3, True, 6.5] mylist = [1, 3, True, 6.5] mylist 3, True, 6.5]

>>> [1, >>> >>> [1, >>>

34

Ardllk zerinde desteklenen ilemler

35

devam
>>> mylist [1, 3, True, 6.5] >>> mylist[2] True >>> mylist + mylist [1, 3, True, 6.5, 1, 3, True, 6.5] >>> False in mylist False >>> mylist * 3 [1, 3, True, 6.5, 1, 3, True, 6.5, 1, 3, True, 6.5] >>> mylist[1:3] [3, True] >>> len(mylist) 4 >>> len(mylist*4) 16 >>>
36

devam

liste indisleri 0 ile balar dilimleme ilemi mylist[1:3], 1den balar, 3 dahil olmamak zere paray alr Tekrarlama ilemi veriden ziyade referansn tekrardr!

37

devam
kod

>>> mylist = [1,2,3,4] >>> A = [mylist]*3 >>> A [[1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4]] >>> mylist[2]=45 >>> A [[1, 2, 45, 4], [1, 2, 45, 4], [1, 2, 45, 4]] >>>

A deikeni mylist isimlenen deikene referans ierir bu yzden mylistteki bir deiiklik tm referanslarda etki gsterir.

38

range ilevi

tamsay listesi olutururken range ilevine bavururuz


range(10) 1, 2, 3, 4, 5, 6, 7, 8, 9] range(1,10) 2, 3, 4, 5, 6, 7, 8, 9] range(1,10,3) 4, 7]

>>> [0, >>> [1, >>> [1, >>>

39

Tekrarlama (*) lemi

Listeleri ilklerken tekrarlama ileminden yararlanabiliriz

>>> mylist = [23] * 6 >>> mylist [23, 23, 23, 23, 23, 23] >>>

40

Liste Yntemleri

41

devam
>>> mylist [1024, 3, True, 6.5] >>> mylist.append(False) >>> mylist [1024, 3, True, 6.5, False] >>> mylist.insert(2,4.5) >>> mylist [1024, 3, 4.5, True, 6.5, False] >>> mylist.pop() False >>> mylist [1024, 3, 4.5, True, 6.5] >>> mylist.pop(1) 3 >>> mylist [1024, 4.5, True, 6.5]

42

devam
>>> mylist.pop(2) True >>> mylist [1024, 4.5, 6.5] >>> mylist.sort() >>> mylist [4.5, 6.5, 1024] >>> mylist.reverse() >>> mylist [1024, 6.5, 4.5] >>> mylist.count(6.5) 1 >>> mylist.index(4.5) 2 >>> mylist.remove(6.5) >>> mylist [1024, 4.5] >>> del mylist[0] >>> mylist [4.5]

43

Basit veri nesne yntemleri

kod

>>> (54).__add__(21) 75 >>>

tabii ki basit-ksa olarak 54 + 21

44

Stringler (karakter katarlar)

yalnzca karakter ieren listedir tek () veya ift trnak () kullanlabilir

>>> "Nurettin" Nurettin >>> myname = "Nurettin" >>> myname[3] e >>> myname*2 NurettinNurettin >>> len(myname) 8 >>>

45

Stringler iin salanan ilevler

46

devam

>>> myname Nurettin >>> myname.upper() NURETTIN >>> myname.center(20) Nurettin >>> myname.find(e) 3 >>> myname.split(e) [Nur, ttin] >>>

47

Deitirilebilirlik (mutuability)
kod

>>> mylist [1, 3, True, 6.5] >>> mylist[0] = 2**10 >>> mylist [1024, 3, True, 6.5] >>> >>> myname Nurettin >>> myname[0] = X Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: str object does not support item assignment >>>

Listeyle String arasndaki en byk fark deitirilebilirliktir


48

Tuple
Tuplelar listelere benzerdir, heterojendir string gibi deitirilemezdir eleri virglle (,) ayrlr, parantezle (( )) hapsedilir
mytuple = (2, True, 4.96) mytuple True, 4.96) len(mytuple) mytuple[0] mytuple * 3 True, 4.96, 2, True, 4.96, 2, True, 4.96) mytuple[0:2] True)

>>> >>> (2, >>> 3 >>> 2 >>> (2, >>> (2, >>>

49

Tuple: deitirilebilirlik?

tupledaki bir eyi deitirmeye altnzda hata mesaj alrsnz

>>> mytuple[1] = False Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: tuple object does not support item assignment >>>

50

Szlkler

key:value iftleri biiminde veri tutulur eleri virglle (,) ayrlr, kvrk parantezle ({ }) hapsedilir

>>> capitals = {Turkiye:Ankara} >>> capitals = {Turkiye:Ankara, Yunanistan:Atina, ... Irak:Bagdat} >>> capitals {Yunanistan: Atina, Turkiye: Ankara, Irak: Bagdat} >>>

51

Szlkler: key ile eriim

indis yerine key ile eriim, deitir, ekle, sil. ilk eklenen ilk srada olmayabilir!

>>> capitals[Azerbaycan] = Baku >>> capitals {Azerbaycan: Baku, Yunanistan: Atina, Turkiye: Anka ... Irak: Bagdat} >>> len(capitals) 4 >>>

52

Szlkler iin salanan ilevler


image:: tablo14.png

>>> phoneext = {david:1410, brad:1137} >>> phoneext {brad: 1137, david: 1410} >>> phoneext.keys() [brad, david] >>> phoneext.values() [1137, 1410] >>> phoneext.items() [(brad, 1137), (david, 1410)] >>> phoneext.get(brad) 1137 >>> phoneext.get(kent) >>> phoneext.get(kent, NO ENTRY) NO ENTRY >>>

53

1.4.2 Denetim Yaplar: while


kod

>>> counter = 1 >>> while counter <= 5: ... print "Hello, world!" ... counter = counter + 1 ... Hello, world ! Hello, world ! Hello, world ! Hello, world ! Hello, world ! >>>

koul ksmnda bileik yaplar kullanlabilir while counter <= 5 and not done:
54

for

>>> for item in [1,3,6,2,5]: ... print item ... 1 3 6 2 5 >>>

55

for + range

>>> for item in range(5): ... print item**2 ... 0 1 4 9 16 >>>

56

for: Stringdeki her bir karakter

kod

>>> wordlist = [cat, dog, rabbit] >>> letterlist = [] >>> for aword in wordlist: ... for aletter in aword: ... letterlist.append(aletter) ... >>> letterlist [c, a, t, d, o, g, r, a, b, b, i, t] >>>

57

if: else

kod

if score >= 90: print A else: if score >= 80: print B else: if score >= 60: print D else: print F

58

if: elif

kod

if score >= 90: print A elif score >= 80: print B elif score >= 60: print D else: print F

59

if: tek bana

kod

if n < 0: n = abs(n) print math.sqrt(n)

60

List Comprehension

kod
sqlist = [] for x in range(1,11): sqlist.append(x*x) sqlist 4, 9, 16, 25, 36, 49, 64, 81, 100]

>>> >>> ... ... >>> [1, >>>

61

List Comprehension - 2
kod

>>> sqlist = [x*x for x in range(1,11)] >>> sqlist [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] >>> >>> >>> sqlist = [x*x for x in range(1,11) if x%2 != 0] >>> sqlist [1, 9, 25, 49, 81] >>> >>> >>> [ch.upper() for ch in comprehension if ch not in aeiou [C, M, P, R, H, N, S, N] >>>

62

1.4.3 lev Tanmlama

kod

>>> def square(n): ... return n**2 ... >>> square(4) 16 >>> square(square(3)) 81 >>>

63

Karekk alma: Newton Yntemi

kod

def squareroot(n): root = n/2 for k in range(20): root = (1.0/2)*(root + (n / root)) return root

64

1.4.4 OOP: Snf Tanmlama

Python OOP bir dildir. Yeni snar retilebilir Veri nesnesinin nasl grndn (durumu) ve ne yapabileceini (yntemler) mantksal olarak tanmlamak iin ADT (soyut veri tr) kullanlr. Soyut veri tr ise snf yardmyla salanr, bu durumda programcya soyutlamann stnlkleri de salanr.

65

1.4.4.1 Kesir Snf

Kesir iki paradan oluur: pay ve payda. Kesrin pay ve paydas tamsay.

class Fraction: #yontemler buraya

Tm snar kurucu (constructor) yntemi vardr Pythonda __init__

66

devam

class Fraction: def __init__(self,top,bottom): self.num = top self.den = bottom

67

devam

e ierir: self, top, bottom. self: nesnenin kendisine referans. lk parametre olmal, arrken verilmez. self.num: pay, self.den: payday. kurucu yntemde ilklendirme yaplmtr. Kesir snfndan bir rnek (instance) oluturmak iin,

myFraction = Fraction(3, 5)

bu 3/5 deerli myFraction kesir nesnesini oluturur.

68

devam

Kesir snfnn gerek duyduu yetenekleri kazandrmak iin


69

devam

rn. ekrana yazdrmak

>>> myf = Fraction(3, 5) >>> print myf <__main__.Fraction instance at 0xb7d92a8c> >>>

kesir nesnesi myf, print ileviyle arldnda nasl tepki vereceini bilmiyor. bu yzden print myf bildii tek ey olan bellek adresini ekrana dkyor.

70

devam

Bu sorunu zmenin iki yolu var

1. show isimli yntem yazmak 2. __str__ yntemini gncellemek

ilk yntem genel olmamakla birlikte

def show(self): print self.num,"/",self.den

71

devam

>>> myf = Fraction(3, 5) >>> myf.show() 3 / 5 >>> print myf <__main__.Fraction instance at 0x95c088c> >>>

ikincisi daha geneldir. Tm snara salanan yerleik __str__ ilevinden yararlanlr. ki bu ilev nesneyi stringe evirir.

72

__str__ yntemi: zerine Bindirme (Override)

Pythonun sunduu yerleik __str__ yntemini kullan

def __str__(self): return str(self.num)+"/"+str(self.den) >>> myf = Fraction(3, 5) >>> print myf 3/5 >>>

73

Aritmetik destek

>>> f1 = Fraction(1,4) >>> f2 = Fraction(1,2) >>> f1+f2 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unsupported operand type(s) for +: instance and instance >>>

74

__add__ yntemi Tasarm


def __add__(self,otherfraction): newnum = self.num*otherfraction.den + \ self.den*otherfraction.num newden = self.den * otherfraction.den return Fraction(newnum,newden)

Test
f1 = Fraction(1,4) f2 = Fraction(1,2) f3 = f1.__add__(f2) print f3 f3 = f1 + f2 print f3

>>> >>> >>> >>> 6/8 >>> >>> 6/8 >>>

75

Sonularn iyiletirilmesi: GCD

6/8 yerine 3/4 Euclidin GCD algoritmas

#Assume that m and n are greater than zero def gcd(m,n): while m%n != 0: oldm = m oldn = n m = oldn n = oldm%oldn return n

76

devam

>>> >>> >>> >>> >>> 3/4 >>>

f1 = Fraction(1,4) f2 = Fraction(1,2) f3 = f1.__add__(f2) f3 = f1 + f2 print f3

77

Son durum

78

Shallow Equality x Deep Equality

79

Karlatrma nasl: __cmp__


f1== f2 x bellek adresi karlatrma

def __cmp__(self,otherfraction): num1 = self.num*otherfraction.den num2 = self.den*otherfraction.num if num1 < num2: return -1 else: if num1 == num2: return 0 else return 1

80

Fraction snf
class Fraction: def __init__(self,top,bottom): self.num = top self.den = bottom def __str__(self): return str(self.num)+"/"+str(self.den) def show(self): print self.num,"/",self.den def __add__(self,otherfraction): newnum = self.num*otherfraction.den + \ self.den*otherfraction.num newden = self.den * otherfraction.den common = gcd(newnum,newden) return Fraction(newnum/common,newden/common) def __cmp__(self,otherfraction): num1 = self.num*otherfraction.den num2 = self.den*otherfraction.num if num1 < num2: return -1 else: if num1 == num2:
81

1.4.4.2 Miras: Mantk Kaplar ve Devreler

Miras (Inheritance) bir snf baka bir sna ilikilendirme yntemi.

ebeveyn (parent) - ocuk - miras altsnf - spersnf

82

Python Miras Hiyerarisi

83

devam

liste, ardl koleksiyonu nun ocuudur liste: altsnf, ardl koleksiyonu: spersnf list IS-A sequantial collection.

IS-A D is-a B, D snf B snfnn altsnf.

84

Mantk Kaplar ve Doruluk Tablolar

85

Devre

86

Mantk Kap Hiyerarisi

87

LogicGate spersnf
class LogicGate: def __init__(self,n): self.label = n self.output = None def getLabel(self): return self.label def getOutput(self): self.output = self.performGateLogic() return self.output

her kapnn performGateLogic() yntemi farkllk gsterir self parametresi: yntemi aran kap nesnesine bir referanstr

88

LogicGate:BinaryGate snf NOT kaps UnaryGate, AND kaps BinaryGate her ikisi de LogicGate in altsnfdr pinler: pinA, pinB
class BinaryGate(LogicGate): def __init__(self,n): LogicGate.__init__(self,n) self.pinA = None self.pinB = None def getPinA(self): return input("Enter Pin A input for gate "+ \ self.getLabel()+"-->") def getPinB(self): return input("Enter Pin B input for gate "+ \ self.getLabel()+"-->")
89

LogicGate:UnaryGate snf

pin: pin

class UnaryGate(LogicGate): def __init__(self,n): LogicGate.__init__(self,n) self.pin = None def getPin(self): return input("Enter Pin input for gate "+ \ self.getLabel()+"-->")

90

LogicGate:BinaryGate:AndGate snf
performGateLogic yntemine dikkat Tasarm

class AndGate(BinaryGate): def __init__(self,n): BinaryGate.__init__(self,n) def performGateLogic(self): a = self.getPinA() b = self.getPinB() if a==1 and b==1: return 1 else: return 0

91

devam

Test

>>> g1 = AndGate("G") >>> g1.getOutput() Enter Pin A input for gate G-->1 Enter Pin B input for gate G-->0 0 >>>

92

Connector snf

kap hiyerarisinde yer almaz

93

HAS-A ilikisi

HAS-A: has-a is a relationship where one object (often called the composited object) belongs to (is a part or member of) another object

Connector HAS-A LogicGate: connectors LogicGate in rneklerine sahip, fakat hiyeraride yer almaz. Miras yok.

94

Connector snf
fromGate, toGate, setNextPin

class Connector: def __init__(self, fgate, tgate): self.fromgate = fgate self.togate = tgate tgate.setNextPin(self) def getFrom(self): return self.fromgate def getTo(self): return self.togate

95

setNextPin yntemi

def setNextPin(self,source): if self.pinA == None: self.pinA = source else: if self.pinB == None: self.pinB = source else: print "Cannot Connect: NO EMPTY PINS"

96

Modiye edilmi getPin yntemi

def getPinA(self): if self.pinA == None: return input("Enter Pin A input for gate "+ \ self.getName()+"-->") else: return self.pinA.getFrom().getOutput()

97

Circuit snfnn tamam

VIM de kod gsterimi

98

rnek: devre

99

devam (kod)
>>> g1 = AndGate("G1") >>> g2 = AndGate("G2") >>> g3 = OrGate("G3") >>> g4 = NotGate("G4") >>> c1 = Connector(g1, g3) >>> c2 = Connector(g2, g3) >>> c3 = Connector(g3, g4) >>> >>> g4.getOutput() Enter Pin A input for gate Enter Pin B input for gate Enter Pin A input for gate Enter Pin B input for gate 0 >>>

G1-->0 G1-->1 G2-->1 G2-->1

100

1.5 zet Bilg.Bil., problem-zme almasdr Bilg.Bil., hem veriyi hem de veriyi temsil etmek iin soyutlama
aracn kullanr

Soyut Veri Trleri, programcnn problem dzleminin karmakln, veriye dair ayrntlar gizler Python olduka gl, kullanm kolay, OOP dildir Python, altrlabilir szde kod Listeler, tuples ve katarlar Pythonun yerleik ardl koleksiyonlardr Szlkler, ardl olmayan veri koleksiyonudur Snar, soyut veri tr gerekleme Override X yenisini yazmak Snf: hiyerari - miras alma Snf:kurucu, devam etmeden nce ebeveynin kurucusunu arr
101

Anahtar Kelimeler

Soyut Veri Tr, Snf, Veri Yaps, Sarmalama (Encapsulation), Miras, IS-A ilikisi Nesne, Self, Doruluk Tablosu, Soyutlama, Hesaplanabilirlik, Deep Equality, HAS-A ilikisi, Miras Hiyerarisi, Yntem, Yntemsel Soyutlama, Shallow Equality, Algoritma, Veri Tr, Szlk, Bilgi Gizleme, Arayz, Deitirebilirlik (Mutuability), Programlama, Simlasyon

102

1.7 Tartma Sorular


niversite yerlekesindeki kiiler iin bir snf hiyerarisi kurun.
retim yesi, memur, personel, renciler yer alsn. Ortak olan nedir? Ayrt edici zellikler nelerdir?

Banka hesab iin bir snf hiyerarisi kurun Farkl trdeki bilgisayarlar iin bir snf hiyerarisi kurun Bu blmde verilen snar kullanarak, etkileimli olarak devre kurup, onu test edin.

103

devam

104

You might also like