BLM210 HAFTA 10 SUBPROGRAMS (ALTPROGRAMLAR)

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "BLM210 HAFTA 10 SUBPROGRAMS (ALTPROGRAMLAR)"

Transkript

1 1 BLM210 HAFTA 10 SUBPROGRAMS (ALTPROGRAMLAR) Introduction Giriş Process abstraction Süreç soyutlaması Data abstraction Veri soyutlaması Fundamentals of subprograms Altprogramların esasları Each subprogram has a single entry point Her altprogramın tek giriş noktası vardır The calling program is suspended during execution of the called subprogram Çağırılan altprogramın koşması sırasında, çağıran program durdurulur (bekletilir). Control always returns to the caller when the called subprogram s execution terminates Çağırılan altprogramın koşması bittiğinde, kontrol çağırana döner Basic definitions Temel tanımlar A subprogram definition describes the interface to and the actions of the subprogram abstraction Bir altprogram tanımlaması, altprograma olan arayüzü ve altprogram soyutlamasının eylemlerini tarif eder A subprogram call is an explicit request that the subprogram be executed Bir altprogram çağrısı, altprogramın koşması için doğrudan bir istektir A subprogram header is the first part of the definition, including the name, the kind of subprogram, and the formal parameters Bir altprogram başlığı, altprogramın adını, türünü ve parametrelerinin tiplerini içeren tanımının ilk bölümüdür The parameter profile of a subprogram is the number, order, and types of its parameters Bir altprogramın parametre profili, parametrelerinin sayısı, sırası ve tipleridir

2 2 The protocol is a subprogram s parameter profile and, if it is a function, its return type Protokol, bir altprogramın parametre profile ve, eğer fonksiyonsa, döndüğü tiptir Function declarations in C and C++ are often called prototypes C ve C++ daki fonksiyon bildirimlerine, sıklıkla prototipler denir A subprogram declaration provides the protocol, but not the body, of the subprogram Bir altprogram bildirimi, altprogramın protoloünü söyler ama vücudunu (deyimleri) söylemez A formal parameter is a dummy variable listed in the subprogram header and used in the subprogram Bir göstermelik parametre, altprogram başlığında listelenmiş olan ve altprogramda kullanılan göstermelik değişkendir An actual parameter represents a value or address used in the subprogram call statement Bir yürürlükteki parametre, altprogram çağrısı deyiminde bir değeri veya adresi gösterir Actual/Formal parameter correspondence Yürürlükteki/Göstermelik parametre eşleşmeleri Positional Konumsal o The binding of actual parameters to formal parameters is by position: the first actual parameter is bound to the first formal parameter and so forth Yürürlükteki parametrelerin göstermelik parametrelere bağlanması konum iledir: ilk yürürlükteki parametre, ilk göstermelik parametreye bağlanır, ikinci ikinciye, vs. o Safe and effective Güvenli ve etkili Keyword Anahtar sözcük o The name of the formal parameter to which an actual parameter is to be bound is specified with the actual parameter Yürürlükteki bir parametrenin kendisine bağlanması gereken göstermelik parametrenin adı, yürürlükteki parametre ile belirtilir Example (örnek): Python

3 3 o Avantaj: Parameters can appear in any order, thereby avoiding parameter correspondence errors Avantaj: Parametreler herhangi bir sırada yer alabilir, böylelikle parametrelerin eşleşme hatalarından kaçınılır o Disadvantage: User must know the formal parameter s names Dezavantaj: Kullanıcı göstermelik parametrelerin isimlerini bilmek zorundadır Formal parameter default values Göstermelik parametrelerin varsayılan değerleri In some languages, formal parameters can have default values (if no actual parameter is passed) Bazı dillerde, altprograma yürürlükteki parametre geçilmezse, göstermelik parametrelerin varsayılan değerleri olabilir In C++, default parameters must appear last because parameters are positionally associated (no keyword parameters) C++ da, varsayılan değeri olan parametreler, parametre listesinin en sonunda bulunmalıdır; çünkü eşleşmeleri konumsal olarak yapılır (anahtar sözcükle belirlenen parametre yok) o Example (Örnek): Variable numbers of parameters Değişebilen sayıda parametreler C# methods can accept a variable number of parameters as long as they are of the same type, the corresponding formal parameter is an array preceded by params C# metotlarında, aynı tipten olmaları koşulyla değişebilen sayıda parametre olabilir, karşılık gelen göstermelik parametre params ve ardından gelen bir dizidir. o Example (Örnek):

4 4 Procedures and functions Prosedürler ve fonksiyonlar There are two categories of subprograms: İki çeşit altprogram vardır: o Procedures are collection of statements that define parameterized computations Prosedürler, parametreli hesaplamaları tanımlayan deyim topluluklarıdır o Functions structurally resemble procedures but are semantically modeled on mathematical functions Fonksiyonlar yapısal olarak prosedürlere benzer, ancak anlamsal olarak matematiksel fonksiyonlar üzerine modellenmiştir They are expected to produce no side effects Yan etki oluşturmamaları beklenir In practice, program functions have side effects Pratikte, yan etkileri vardır Design issues for subprograms Altprogramlar için tasarım meseleleri Are local variables static or dynamic? Yerel değişkenler statik mi dinamik mi? Can subprogram definitions appear in other subprogram definitions? Altprogram tanımları başka altprogram tanımlarında yer alabilir mi? What parameter passing methods are provided? Hangi parametre geçme yöntemleri kullanılabilir? Are parameter types checked? Parametre tipleri kontrol ediliyor mu? If subprograms can be passed as parameters and subprograms can be nested, what is the referencing environment of a passed subprogram? Altprogramlar parametre olarak geçilebiliyor ve altprogramlar iç-içe olabiliyorsa, geçilen bir altprogramın başvuru ortamı nedir? Can subprograms be overloaded? Altprogramların üstüne yüklenebilir mi? Can subprogram be generic? Altprogramlar şablonsal (genel) olabilir mi?

5 5 If the language allows nested subprograms, are closures supported? Eğer dil iç-içe altprogramlara izin veriyorsa, kapalılıklar destekleniyor mu? Local referencing environments Yerel başvuru ortamları Local variables can be stack-dynamic Yerel değişkenler yığıt-dinamik olabilir o Advantages Avantajlar Support for recursion Özyineleme desteği Storage for locals is shared among some subprograms Yerel değişkenler için kullanılan bellek altprogramlar arasında paylaşılabilir o Disadvantages Dezavantajlar Allocation/de-allocation, initialization time Yer ayırma/yer boşaltma, ilk değer atama zaman maliyetleri Indirect addressing Doğrudan olmayan adresleme Subprograms cannot be history sensitive Altprogramlar geçmişe duyarlı olamaz Local variables can be static Yerel değişkenler statik olabilir o Advantages and disadvantages are the opposite of those for stack-dynamic locals Avantaj ve dezavantajlar yığıt-dinamik yerel değişkenlerin tersidir In most contemporary languages, locals are stack dynamic Birçok çağdaş dilde, yerel değişkenler yığıt-dinamiktir In C-based languages, locals are by default stack dynamic, but can be declared static C-tabanlı dillerde, yerel değişkenler kendiliğinden yığıt-dinamiktir, ama static bildirilebilirler

6 6 Semantic models of parameter passing Parametre geçmenin anlamsal modelleri In mode İçeriye kipi (modu) Out mode Dışarıya kipi Inout mode Hem içeriye hem dışarıya kipi Call = Çağır Return = Dön Conceptual models of transfer Aktarımın kavramsal modelleri Physically move a value Bir değeri fiziksel olarak taşımak Move an access path to a value Bir değere erişilebilecek yolu (adresi) taşımak Pass-by-Value (In mode) Değerle geçmek (İçeriye kipi) The value of the actual parameter is used to initialize the corresponding formal parameter Yürürlükteki parametrenin değeri, karşılık gelen göstermelik parametrenin ilk değerini belirler o Normally implemented by copying Normalde kopyalayarak gerçeklenir

7 7 o Can be implemented by transmitting an access path but not recommended (enforcing write protection is not easy) Değere erişilebilecek yol (adres) geçilerek gerçeklenebilir, ama önerilmez (yazmaya karşı koruma sağlamak kolay değildir) o Disadvantages (if by physical move): additional storage is required (stored twice) and the actual move can be costly (for large parameters) Dezavantajlar (fiziksel taşımayla): ek bellek gerekir (iki kez saklanır) ve gerçek taşıma maliyetli olabilir (büyük parametreler için) o Disadvantages (if by access path method): must write-protect in the called subprogram and accesses cost more (indirect addressing) Dezavantajlar (erişim yolunu geçmeyleyse): çağırılan altprogramda yazmaya karşı koruma sağlanmalı ve erişimler daha maliyetlidir (doğrudan olmayan adresleme) if the language allows nested subprograms, are closures supported? Eğer dil iç-içe altprogramlara izin veriyorsa, kapalılıklar destekleniyor mu? Pass-by-Result (Out mode) Sonuçla geçmek (Dışarıya kipi) When a parameter is passed by result, no value is transmitted to the subprogram; the corresponding formal parameter acts as a local variable; its value is transmitted to caller s actual parameter when control is returned to the caller, by physical move Bir parametre sonuçla geçilince, altprograma bir değer iletilmez; karşılık gelen göstermelik parametre yerel bir değişken olarak rol alır; kontrol çağırana döndürüldüğünde yerel değişkenin değeri fiziksel taşımayla çağıranın yürürlükteki parametresine iletilir o Require extra storage location and copy operation Fazladan bellek ve kopyalama işlemi gerektirir Potential problems: Olası sorunlar: o Examples (örnekler): sub(p1, p1) which formal parameter is copied back last represents the current value of p1 hangi göstermelik parametrenin değerinin en son kopyalandığına bağlı olarak p1 in son değeri belirlenir sub(list[sub], sub) Compute address of list[sub] at the beginning of the subprogram or end? list[sub] ın adresinin altprogramın başında mı sonunda mı hesaplandığına bağlı olarak dizinin farklı elemanlarının değeri değişebilir

8 Pass-by-Value-Result (Inout mode) Değer ve sonuçla geçmek (Hem içeriye hem dışarıya kipi) 8 A combination of pass-by-value and pass-by-result Değerle geçme ve sonuçla geçmenin birleşimi Sometimes called pass-by-copy Bazen kopyayla geçmek de denir Formal parameters have local storage Göstermelik parametrelerin tutulması (bellekteki yeri) yereldir Disadvantages: Dezavantajlar: o Those of pass-by-result Sonuçla geçmenin dezavantajları o Those of pass-by-value Değerle geçmenin dezavantajları Pass-by-Reference (Inout mode) Başvuruyla geçmek (Hem içeriye hem dışarıya kipi) Pass an access path Değere erişilecek yol geçmektir Also called pass-by-sharing Paylaşımla geçmek de denir Advantage: Passing process is efficient (no copying and no duplicated storage) Avantaj: Geçme işi verimlidir (kopyalama ve iki yerde tutma işi yoktur) Disadvantages: Dezavantajlar: o Slower accesses (compared to pass-by-value) to formal parameters Göstermelik parametrelere daha yavaş erişim (değerle geçme ile karşılaştırıldığında) o Potentials for unwanted side effects (collisions) İstenmeyen yan etkiler potasiyeli o Unwanted aliases (access broadened) İstenmeyen öteki adlar (erişim genişletiliyor)

9 Aliasing examples (Öteki ad örnekleri) 9 fun(total, total) fun(list[i], list[j]) (when i == j, i == j iken) fun1(list[i], list) Pass-by-Name (Inout mode) Adla geçmek (Hem içeriye hem dışarıya kipi) By textual substitution Metin olarak yerine koyarak Formals are bound to an access method at the time of the call, but actual binding to a value or address takes place at the time of a reference or assignment Göstermelik parametreler, çağrı zamanında bir erişim yöntemine bağlanır, ama bir değere veya adrese bağlanma başvuru veya atama zamanında gerçekleşir Allows flexibility in late binding Geç bağlanmada esneklik sağlar Implementation requires that the referencing environment of the caller is passed with the parameter, so the actual parameter address can be calculated Gerçeklemede, çağıranın başvuru ortamının parametre ile geçilmesi gerekir, bu durumda yürürlükteki parametrenin adresi hesaplanabilir Implementing parameter-passing methods Parametre-geçme yöntemlerini gerçekleme In most languages parameter communication takes place through the run-time stack Birçok dilde, parametre iletişimi koşma-zamanı yığıtı aracılığıyla gerçekleşir Pass-by-reference are the simplest to implement; only an address is placed in the stack Başvuruyla geçme gerçeklemesi en basit olandır, yığıta sadece bir adres konur. Example (örnek): o Function header: Fonksiyon başlığı: void sub(int a, int b, int c, int d) o Function call in main: Main deki fonksiyon çağrısı: sub(w, x, y, z)

10 o (pass w by value, x by result, y by value-result, z by reference) w: değerle geç, x: sonuçla geç, y: değer ve sonuçla geç, z: başvuruyla geç 10 Parameter passing methods of some languages Bazı dillerin parametre geçme yöntemleri C o Pass-by-value Değerle geçme o Pass-by-reference is achieved by using pointers as parameters Başvuruyla geçme, işaretçileri parametre olarak kullanarak başarılır C++ o A special pointer type called reference type for pass-by-reference Başvuru tipi denilen özel bir işaretçi tipi kullanarak başvuruyla geçme C# o Default method: pass-by-value Varsayılan yöntem: değerle geçme o Pass-by-reference is specified by preceding both a formal parameter and its actual parameter with ref Hem göstermelik hem de yürürlükteki parametrenin başına ref getirilerek, başvuruyla geçme işi başarılabilir

11 11 Type checking parameters Parametrelerin tip kontrolü Considered very important for reliability Güvenilirlik için önemli sayılmaktadır FORTRAN 77 and original C: none FORTRAN 77 ve ilk C dilinde parametrelerin tipi kontrol edilmez Pascal, FORTRAN 90+, Java, and Ada: it is always required Pascal, FORTRAN 90+, Java ve Ada da: tip kontrolü her zaman gereklidir ANSI C and C++: choice is made by the user (Prototypes) ANSI C ve C++ da, seçim kullanıcıya bırakılır (Prototipler) Multidimensional arrays as parameters Çok boyutlu dizilerin parametre olması If a multidimensional array is passed to a subprogram and the subprogram is separately compiled, the compiler needs to know the declared size of that array to build the storage mapping function Çok boyutlu bir dizi bir altprograma geçilir ve altprogram ayrı olarak derlenirse, derleyicinin bellek eşlem fonksiyonunu oluşturması için dizinin bildirilen boyunu bilmesi gerekir o Examples (örnekler) Storage mapping function Bellek eşlem fonksiyonu C & C++ Programmer is required to include the declared sizes of all but the first dimension in the actual parameter Programcı, yürürlükteki dizi parametresinin ilk boyutu dışında diğer tüm boyutlarını bildirmesi gerekir

12 12 Disallows writing flexible subprograms Esnek altprogramları yazmayı engeller Solution: pass a pointer to the array and the sizes of the dimensions as other parameters; the user must include the storage mapping function in terms of the size parameters Çözüm: diziye bir işaretçi ve boyutların tümünü ayrı parametreler olarak geçmek: kullanıcı, bellek eşlem fonksiyonunu boyut parametreleri cinsinden gerçeklemelidir C# Arrays are objects; they are one-dimensioned, the elements can be arrays Diziler nesnelerdir; hepsi tek-boyutludur, ama elemanlar diziler olabilir Each array inherits a named constant (Length) that is set to the length of the array when the array object is created Her diziye ait adlı bir sabit (Length) vardır. Dizi nesnesi yaratıldığında bu sabitin değerine dizinin uzunluğu atanır Design considerations for parameter passing Parametre geçme için tasarım meseleleri Two important considerations İki önemli mesele o Efficiency Verimlilik o One-way or two-way data transfer Bir veya iki yönlü veri aktarımı But the above considerations are in conflict Ama yukarıdaki unsurlar çatışma halindedir o Good programming suggest limited access to variables, which means one-way whenever possible İyi programlama, değişkenlere sınırlı erişim gerektirir, yani mümkün oldukça tek yönlü veri aktarımı yapılmalı o But pass-by-reference is more efficient to pass structures of significant size Ama başvuruyla geçme, büyük boylu yapılar için daha verimlidir

13 13 Parameters that are subprogram names Altprogram adı olan parametreler It is sometimes convenient to pass subprogram names as parameters Bazen, altprogram adlarını parametre olarak geçmek elverişlidir Issues: Meseleler: o Are parameter types checked? Parametre tipleri kontrol ediliyor mu? o What is the correct referencing environment for a subprogram sent as a parameter? Parametre olarak gönderilen bir altprogram için doğru başvuru ortamı nedir? Parameters that are subprogram names: Referencing environment Altprogram adı olan parametreler: Başvuru ortamı Shallow binding: The environment of the call statement that enacts the passed subprogram - most natural for dynamic-scoped languages Sığ bağlanma: Geçilen altprogramı çağıran çağırma deyiminin ortamı dinamik kapsamlı diller için en doğal olanı Deep binding: The environment of the definition of the passed subprogram - Most natural for static-scoped languages Derin bağlanma: Geçilen altprogramın tanımlandığı ortam statik kapsamlı diller için en doğalı Ad hoc binding: The environment of the call statement that passed the subprogram Derme çatma bağlanma: Altprogramı parametre olarak geçen çağrı deyiminin ortamı Example (örnek):

14 14 o Shallow binding: referencing environment of sub4 (x = 4) Sığ bağlanma: sub4 ün başvuru ortamı (x = 4) o Deep binding: referencing environment of sub1 (x = 1) Derin bağlanma: sub1 in başvuru ortamı (x = 1) o Ad hoc binding: referencing environment of sub3 (x = 3) Derme çatma bağlanma: sub3 ün başvuru ortamı (x = 3) Calling subprograms indirectly Altprogramları dolaylı olarak çağırma Usually when there are several possible subprograms to be called and the correct one on a particular run of the program is not known until execution (e.g., event handling and GUIs) Genellikle çağırılabilecek birden fazla alt program varken ve programın belirli bir koşmasında hangisinin çalışması gerektiğine koşma anına kadar karar verilemediği durumlar için kullanılabilir (ör: olay işleme ve grafik kullanıcı arayüzlerinde) In C and C++, such calls are made through function pointers C ve C++ da böyle çağrılar fonksiyon işaretçileri aracılığıyla yapılır In C#, method pointers are implemented as objects called delegates C# ta, yöntem işaretçileri delegate (vekil) adı verilen nesnelerle gerçeklenir o A delegate declaration: Bir vekil bildirimi public delegate int Change(int x); This delegate type, named Change, can be instantiated with any method that takes an int parameter and returns an int value Adı Change olan bu vekil tipi, int bir parametre alıp int bir değer dönen herhangi bir metotla örneklanebilir An example method: örnek bir fonksiyon: static int fun1(int x) { } Instantiate: Change nesnesi yaratma: Change chgfun1 = new Change(fun1);

15 15 Can be called with: Aşağıdaki gibi çağırılabilir: chgfun1(12); o A delegate can store more than one address, which is called a multicast delegate Bir vekil bir adresten daha fazla adres tutabilir. Buna çok gönderimli vekil denir Example (örnek): Overloaded subprograms Üstüne yüklenen altprogramlar An overloaded subprogram is one that has the same name as another subprogram in the same referencing environment Bir üstüne yüklenen altprogram, aynı başvuru ortamındaki başka bir altprogramla aynı ada sahip olan diğer bir altprogramdır Every version of an overloaded subprogram has a unique protocol Üstüne yüklenen bir altprogramın tüm versiyonları farklı bir protokole sahiptir C++ and C# include predefined overloaded subprograms C++ ve C# önceden tanımlı üstüne yüklenmiş altprogramlara sahiptir C++ and C# allow users to write multiple versions of subprograms with the same name C++ ve C# ta kullanıcılar altprogramların aynı ada sahip farklı versiyonlarını yazabilirler Generic subprograms Şablonsal (genel) altprogramlar A generic or polymorphic subprogram takes parameters of different types on different activations Farklı etkinleştirmelerde, şablonsal veya çok biçimli bir altprogram farklı tipte parametreler alır Overloaded subprograms provide ad hoc polymorphism Üstüne yüklenen altprogramlar, derme çatma çok biçimlilik sağlarlar Subtype polymorphism means that a variable of type T can access any object of type T or any type derived from T (OOP languages) Alttip çok biçimlilik, T tipindeki bir değişkenin T tipindeki her nesneye veya T tipinden türetilmiş her tipteki her nesneye erişebilmesi anlamına gelir

16 16 A subprogram that takes a generic parameter that is used in a type expression that describes the type of the parameters of the subprogram provides parametric polymorphism Altprogram parametrelerinin tipini tarif eden bir tip ifadesinde kullanılan şablonsal bir parametre alan altprogram, parametrik çokbiçimlilik sağlar. o A cheap compile-time substitute for dynamic binding Dinamik bağlanmanın yerine geçen az maliyetli bir derleme-zamanı çözümü C# example (C# örneği): Design issues for functions Fonksiyonlar için tasarım meseleleri Are side effects allowed? Yan etkilere izin veriliyor mu? o Parameters should always be in-mode to reduce side effect (like Ada) Parametreler yan etkiyi aza indirmek için hep içeriye kipinde olmalı (Ada gibi) What types of return values are allowed? Hangi tiplerin dönmesine izin veriliyor? o Most imperative languages restrict the return types Birçok buyurgan dil dönülen tipleri kısıtlar o C allows any type except arrays and functions C, diziler ve fonksiyonlar dışında her tipe izin verir o C# methods can return any type (methods are not types; they cannot be returned) C# metotları her tipi dönebilir (metotlar tip değildir ve dönülemezler)

17 17 Closures Kapalılıklar A closure is a subprogram and the referencing environment where it was defined Bir kapalılık, bir altprogram ve tanımlandığı başvuru ortamından oluşur. The referencing environment is needed if the subprogram can be called from any arbitrary place in the program Altprogram, programdaki her yerden çağrılabiliyorsa, başvuru ortamına ihtiyaç duyulur A static-scoped language that does not permit nested subprograms doesn t need closures İç-içe altprogramlara izin vermeyen statik kapsamlı bir dilde kapalılıklara ihtiyaç yoktur. Closures are only needed if a subprogram can access variables in nesting scopes and it can be called from anywhere Kapalılıklara, yalnızca altprogramlar çevreleyen kapsamlardaki değişkenlere erişebiliyor ve her yerden çağırılabiliyorsa, gerek duyulur To support closures, an implementation may need to provide unlimited extent to some variables (because a subprogram may access a nonlocal variable that is normally no longer alive) Kapalılıkları desteklemek için; gerçekleme bazı değişkenlere sınırsız ömür sağlamaya ihtiyaç duyabilir (çünkü bir altprogram, artık yaşamayan ve yerel olmayan bir değişkene erişebilir) Coroutines Eşyordamlar A coroutine is a subprogram that has multiple entries and controls them itself Bir eşyordam, kendisinin kontrol ettiği ve çok girişi olan bir altprogramdır Also called symmetric control: caller and called coroutines are on a more equal basis Çağıran ve çağırılan eşyordamlar eşit temelde olduğu için, simetrik kontrol de denir A coroutine call is named a resume Bir eşyordam çağrısına kaldığı yerden devam etme denir The first resume of a coroutine is to its beginning, but subsequent calls enter at the point just after the last executed statement in the coroutine Bir eşyordamın ilk kaldığı yerden devam etmesi en başındandır, ama sonraki çağrılar eşyordamda son koşulmuş olan deyiminin hemen sonrasından girer Coroutines repeatedly resume each other, possibly forever Eşyordamlar, belki sonsuza dek, kontrolü birbirlerine vererek kaldıkları yerden devam ederler

18 18 Coroutines provide quasi-concurrent execution of program units (the coroutines); their execution is interleaved, but not overlapped Eşyordamlar, program birimlerinin (eşyordamlar) sanki-eşzamanlı koşmalarını sağlar; çalışma sıraları birbirleri arasında dönüp durur ama aynı anda koşmazlar Examples (örnekler): resume = kaldığı yerden devam etme master = efendi (ilk başlayan) subsequent = sonraki

Bölüm 9. Altprogramlar ISBN 0-321-49362-1

Bölüm 9. Altprogramlar ISBN 0-321-49362-1 Bölüm 9 Altprogramlar ISBN 0-321-49362-1 9. Bölüm konuları Giriş Altprogram temelleri Yerel atıf ortamları (local referencing environments) Parametre geçme yöntemleri Altprogram olan parametreler Çok anlamlı

Detaylı

Bölüm 6. Diziler (arrays) Temel kavramlar Tek boyutlu diziler Çok boyutlu diziler

Bölüm 6. Diziler (arrays) Temel kavramlar Tek boyutlu diziler Çok boyutlu diziler Bölüm 6 Diziler (arrays) Temel kavramlar Tek boyutlu diziler Çok boyutlu diziler Chapter 6 Java: an Introduction to Computer Science & Programming - Walter Savitch 1 Genel Bakış Dizi: Hepsi aynı türde

Detaylı

Bölüm 9. Altprogramlar ISBN

Bölüm 9. Altprogramlar ISBN Bölüm 9 Altprogramlar ISBN 0-321-49362-1 Giriş Bu bölümde, programlarda sıkça kullanılan işlemlerin bir araya gruplanması ile oluşturulan altprogramlar incelenecektir. Altprogramlar sayesinde bir programda

Detaylı

Bölüm 10. Altprogramları Uygulamak

Bölüm 10. Altprogramları Uygulamak Bölüm 10 Altprogramları Uygulamak Altprogramları Uygulamak -- Başlıklar Çağrıların genel anlam analizi Basit altprogramların gerçekleştirilmesi Yığıt dinamik yerel değişkenlerle altprogramları uygulamak

Detaylı

Bölüm 10. Altprogramların gerçeklenmesi ISBN 0-0-321-49362-1

Bölüm 10. Altprogramların gerçeklenmesi ISBN 0-0-321-49362-1 Bölüm 10 Altprogramların gerçeklenmesi ISBN 0-0-321-49362-1 10. Bölüm konuları Çağırma / geri dönme semantiği Yığıt-dinamik yerel değişkeni olan altprogramların gerçeklenmesi İçiçe altprogramlar Statik

Detaylı

BBS 514 YAPISAL PROGRAMLAMA (STRUCTURED PROGRAMMING)

BBS 514 YAPISAL PROGRAMLAMA (STRUCTURED PROGRAMMING) 1 BBS 514 YAPISAL PROGRAMLAMA (STRUCTURED PROGRAMMING) 6 LECTURE 10: STRUCTURES Lecturer: Burcu Can BBS 514 - Yapısal Programlama (Structured Programming) Structures (Yapılar) A structure is a collection

Detaylı

İsimler ve Kapsam. 24 Şubat 2011. Programlama Dilleri - Pamukkale Üniversitesi 1

İsimler ve Kapsam. 24 Şubat 2011. Programlama Dilleri - Pamukkale Üniversitesi 1 İsimler ve Kapsam Tanım: Bir değişkenin kapsamı (scope) değişkenin görülebilir olduğu komutların alanıdır. Görülebilir olduğu alan, bir komut içinde belirlenen değerle kullanılabildiği alandır. Tanım:

Detaylı

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü BİL 203 Veri Yapıları ve Algoritmalar I

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü BİL 203 Veri Yapıları ve Algoritmalar I Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü BİL 203 Veri Yapıları ve Algoritmalar I GENEL DERS BİLGİLERİ Öğretim Elemanı : İzzet TAMER Ofis : MUH 311 Ofis Saatleri : Pazartesi: 14:10 15:00, Salı:

Detaylı

Bölüm 9. Alt Programlar ISBN

Bölüm 9. Alt Programlar ISBN Bölüm 9 Alt Programlar ISBN 0-321-49362-1 Bölüm 9 Konular Giriş Alt programların temelleri Alt programların tasarım kouları Yerel başvuru çevreleri Parametre gönderme metotları Alt program adlarının parametre

Detaylı

Bölüm 5. Adlar(Names), Bağlamalar(Binding s),tip Kontrolleri (Type Checking), ve Etki Alanları ( Scopes) ISBN 0-321-49362-1

Bölüm 5. Adlar(Names), Bağlamalar(Binding s),tip Kontrolleri (Type Checking), ve Etki Alanları ( Scopes) ISBN 0-321-49362-1 Bölüm 5 Adlar(Names), Bağlamalar(Binding s),tip Kontrolleri (Type Checking), ve Etki Alanları ( Scopes) ISBN 0-321-49362-1 Bölüm 5 Konular Giriş Adlar(Names) Değişkenler(Variables) Bağlama Kavramı(The

Detaylı

10/17/2007 Nesneye Yonelik Programlama 3.1

10/17/2007 Nesneye Yonelik Programlama 3.1 Procedure-Based Programming in C++ Çoğu gerçek dünya problemleri binlerce kod satırı gerektirir ( MS Windows NT 5.0 25 million dan fazla kod satırından oluşmaktadır). Yazılımın tasarımı, kodlanması ve

Detaylı

Bölüm 11. Soyut veri tipleri ve kapsülleme kavramları ISBN 0-321-49362-1

Bölüm 11. Soyut veri tipleri ve kapsülleme kavramları ISBN 0-321-49362-1 Bölüm 11 Soyut veri tipleri ve kapsülleme kavramları ISBN 0-321-49362-1 11. Bölüm konuları Soyutlama kavramı Veri soyutlamasına giriş Soyut veri tipleri için tasarım konuları Dil örnekleri Parametreli

Detaylı

Bağlama (Binding) Kavramı

Bağlama (Binding) Kavramı Bağlama (Binding) Kavramı Programlarda yer alan tüm program elemanlarının - örneğin; değişkenler, altprogramlar vb.- çeşitli özellikleri vardır. Değişkenlerin isim, adres, değer gibi çeşitli özelliklerini

Detaylı

Konular. Hafta 5 Veri Tipleri (Devam) BLG339 PROGRAMLAMA DİLLERİ KAVRAMI

Konular. Hafta 5 Veri Tipleri (Devam) BLG339 PROGRAMLAMA DİLLERİ KAVRAMI BLG339 PROGRAMLAMA DİLLERİ KAVRAMI Hafta 5 Veri Tipleri (Devam) Yrd. Doç. Dr. Melike Şah Direkoğlu Konular Dizi Tipleri Kayıt Tipleri Birleşik Tipler Küme Tipleri İşaretçi ve Referans Tipleri Alındığı

Detaylı

İsimler ve Kapsam. Hafta 4 Ders 2 BLG339 PROGRAMLAMA DİLLERİ KAVRAMI

İsimler ve Kapsam. Hafta 4 Ders 2 BLG339 PROGRAMLAMA DİLLERİ KAVRAMI BLG339 PROGRAMLAMA DİLLERİ KAVRAMI Hafta 4 Ders 2 Yrd. Doç. Dr. Melike Şah Direkoğlu Alındığı kaynak: Addison-Wesley s Programming Language Concepts slaytları ve Prof. Dr. Tuğrul Yılmaz ın ders notlarından

Detaylı

Göstericiler (Pointers)

Göstericiler (Pointers) C PROGRAMLAMA Göstericiler (Pointers) C programlama dilinin en güçlü özelliklerinden biridir. Göstericiler, işaretçiler yada pointer adı da verilmektedir. Gösterici (pointer); içerisinde bellek adresi

Detaylı

Unlike analytical solutions, numerical methods have an error range. In addition to this

Unlike analytical solutions, numerical methods have an error range. In addition to this ERROR Unlike analytical solutions, numerical methods have an error range. In addition to this input data may have errors. There are 5 basis source of error: The Source of Error 1. Measuring Errors Data

Detaylı

#include <stdio.h> int main(void) { float sayi; float * p; p = &sayi; printf("deger girin:"); scanf("%f", p); printf("girilen deger:%f\n", *p);

#include <stdio.h> int main(void) { float sayi; float * p; p = &sayi; printf(deger girin:); scanf(%f, p); printf(girilen deger:%f\n, *p); Ege University Electrical and Electronics Engineering Introduction to Computer Programming Laboratory Lab 11 - Pointers 1) Pointer syntax. Declare a variable and a pointer with same data type. Assign variable

Detaylı

BTEP243 Ders 3. class Yazım Kuralı:

BTEP243 Ders 3. class Yazım Kuralı: BTEP243 Ders 3 Sınıflar ve Nesneler Nesne tabanlı programlamada, programlamanın temeli sınıflardır (class). Nesnelerin yaratılmasında taslak (blueprint) görevi görür. Sınıflar; o Nesnelerin özelliklerinin

Detaylı

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 7. Bölüm Metot Tanımlama ve Kullanma

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 7. Bölüm Metot Tanımlama ve Kullanma Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 7. Bölüm Metot Tanımlama ve Kullanma C Programlama Dr. Serkan DİŞLİTAŞ 7.1. Metot Kavramı Programlama dillerinde bütün kod satırlarının

Detaylı

Bölüm 5. İsimler, Bağlama, Tür Kontrolü ve Kapsam(Etki Alanı) ISBN

Bölüm 5. İsimler, Bağlama, Tür Kontrolü ve Kapsam(Etki Alanı) ISBN Bölüm 5 İsimler, Bağlama, Tür Kontrolü ve Kapsam(Etki Alanı) ISBN 0-321-49362-1 Bölüm 5 Konular Giriş İsimler Değişkenler Bağlama Kavramı Tür Kontrolü Güçlü Yazım Tür Uyumu Kapsam (Etki Alanı) ve Yaşam

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN Diziler ile Pointer Arası İlişki Bir dizi adı sabit bir pointer gibi düşünülebilir. Diziler ile pointer lar yakından ilişkilidir. Pointer lar değişkenleri gösterdikleri gibi,

Detaylı

CmpE 320 Spring 2008 Project #2 Evaluation Criteria

CmpE 320 Spring 2008 Project #2 Evaluation Criteria CmpE 320 Spring 2008 Project #2 Evaluation Criteria General The project was evaluated in terms of the following criteria: Correctness (55 points) See Correctness Evaluation below. Document (15 points)

Detaylı

Pros and Cons of Pointers. Pointers. Avantajlar. Dezavantajlar

Pros and Cons of Pointers. Pointers. Avantajlar. Dezavantajlar Pointers Java haric, cogu programming languages memory address lerine ait abstract data type destigine sahiptirler C++ da buna pointer denir Pointers lar data structures ve parameter passing in karmasikligini

Detaylı

BMH-303 Nesneye Yönelik Programlama

BMH-303 Nesneye Yönelik Programlama BMH-303 Nesneye Yönelik Programlama Kurucu metotlar (constructors) ve statik deyimi Dr. Musa ATAŞ Siirt Üniversitesi Bilgisayar Mühendisliği Kurucu Metotlar (Constructors) Kurucu metot çeşitleri Varsayılan

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN Fonksiyonu Referans ile Çağırma (Call by Reference) Bir fonksiyona gönderilen parametrenin normalde değeri değişmez. Fonksiyon içinde yapılan işlemlerin hiçbiri argüman değişkeni

Detaylı

Argumentative Essay Nasıl Yazılır?

Argumentative Essay Nasıl Yazılır? Argumentative Essay Nasıl Yazılır? Hüseyin Demirtaş Dersimiz: o Argumentative Essay o Format o Thesis o Örnek yazı Military service Outline Many countries have a professional army yet there is compulsory

Detaylı

WEEK 11 CME323 NUMERIC ANALYSIS. Lect. Yasin ORTAKCI.

WEEK 11 CME323 NUMERIC ANALYSIS. Lect. Yasin ORTAKCI. WEEK 11 CME323 NUMERIC ANALYSIS Lect. Yasin ORTAKCI yasinortakci@karabuk.edu.tr 2 INTERPOLATION Introduction A census of the population of the United States is taken every 10 years. The following table

Detaylı

Bölüm 4: İş Parçacıkları. Operating System Concepts with Java 8 th Edition

Bölüm 4: İş Parçacıkları. Operating System Concepts with Java 8 th Edition Bölüm 4: İş Parçacıkları 14.1 Silberschatz, Galvin and Gagne 2009 Bölüm 4: İş Parçacıkları Genel Bakış Çoklu İş Parçacığı Modelleri İş Parçacığı Kütüphaneleri İş Parçacıkları ile İlgili Meseleler İşletim

Detaylı

Islington da Pratisyen Hekimliğinizi ziyaret ettiğinizde bir tercüman istemek. Getting an interpreter when you visit your GP practice in Islington

Islington da Pratisyen Hekimliğinizi ziyaret ettiğinizde bir tercüman istemek. Getting an interpreter when you visit your GP practice in Islington Islington da Pratisyen Hekimliğinizi ziyaret ettiğinizde bir tercüman istemek Getting an interpreter when you visit your GP practice in Islington Islington daki tüm Pratisyen Hekimlikler (GP) tercümanlık

Detaylı

Pointer Kavramı. Veri Yapıları

Pointer Kavramı. Veri Yapıları Pointer Kavramı Veri Yapıları Pointer Kavramı- Pointer Nedir? Göstericiler, işaretçiler ya da pointer adı da verilmektedir. Gösterici (pointer); içerisinde bellek adresi tutan değişkenlerdir. Şu ana kadar

Detaylı

Sınıflar ve Yapılar Arasındaki Farklılıklar. Değer ve Referans Türde Olan Aktarımlar

Sınıflar ve Yapılar Arasındaki Farklılıklar. Değer ve Referans Türde Olan Aktarımlar Nesneler ve Türler Sınıflar ve Yapılar Arasındaki Farklılıklar Sınıf Üyeleri Değer ve Referans Türde Olan Aktarımlar Yapıcılar ve Statik Yapıcılar Read-Only Statik Sınıflar Object Sınıfı Sınıflar Sınıflar

Detaylı

FONKSİYONLAR. Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır.

FONKSİYONLAR. Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır. C PROGRAMLAMA FONKSİYONLAR Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır. Daha büyük programlar yazmanın en kolay yolu onları küçük parçalar halinde yazıp sonra

Detaylı

BLM 112- Programlama Dilleri II. Hafta 5 İşaretçiler (Pointers)

BLM 112- Programlama Dilleri II. Hafta 5 İşaretçiler (Pointers) 1 BLM 112- Programlama Dilleri II Hafta 5 İşaretçiler (Pointers) Dr. Öğr. Üyesi Caner Özcan Hiç hata yapmayan insan, hiçbir şey yapmayan insandır. Ve hayatta en büyük hata, kendini hatasız sanmaktır. ~Y.

Detaylı

IDENTITY MANAGEMENT FOR EXTERNAL USERS

IDENTITY MANAGEMENT FOR EXTERNAL USERS 1/11 Sürüm Numarası Değişiklik Tarihi Değişikliği Yapan Erman Ulusoy Açıklama İlk Sürüm IDENTITY MANAGEMENT FOR EXTERNAL USERS You can connect EXTERNAL Identity Management System (IDM) with https://selfservice.tai.com.tr/

Detaylı

BİL-142 Bilgisayar Programlama II

BİL-142 Bilgisayar Programlama II BİL-142 Bilgisayar Programlama II (C/C++) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Giriş Sınıflar, Nesneler, Fonksiyon ve Veri Üyeleri Sınıf ve Fonksiyon Üyeleri

Detaylı

SBR331 Egzersiz Biyomekaniği

SBR331 Egzersiz Biyomekaniği SBR331 Egzersiz Biyomekaniği Açısal Kinematik 1 Angular Kinematics 1 Serdar Arıtan serdar.aritan@hacettepe.edu.tr Mekanik bilimi hareketli bütün cisimlerin hareketlerinin gözlemlenebildiği en asil ve kullanışlı

Detaylı

Yazılım Kodlama ve İ simlendirme Standartları v1.0

Yazılım Kodlama ve İ simlendirme Standartları v1.0 Yazılım Kodlama ve İ simlendirme Standartları v1.0 İçerik Yazılım Kodlama ve İsimlendirme Standartları... 2 1. Amaç... Hata! Yer işareti tanımlanmamış. 2. Kapsam... Hata! Yer işareti tanımlanmamış. 3.

Detaylı

Soru Toplam Puan Not

Soru Toplam Puan Not A grubu Pamukkale Üniversitesi Bilgisayar Mühendisliği Programlama Dilleri Dönem Sonu Sınavı Cevap Kağıdı 29.03.2017 Öğrenci Numarası : Adı Soyadı : Sınav çoktan seçmeli ve klasik olmak üzere iki kısımdan

Detaylı

1 I S L U Y G U L A M A L I İ K T İ S A T _ U Y G U L A M A ( 5 ) _ 3 0 K a s ı m

1 I S L U Y G U L A M A L I İ K T İ S A T _ U Y G U L A M A ( 5 ) _ 3 0 K a s ı m 1 I S L 8 0 5 U Y G U L A M A L I İ K T İ S A T _ U Y G U L A M A ( 5 ) _ 3 0 K a s ı m 2 0 1 2 CEVAPLAR 1. Tekelci bir firmanın sabit bir ortalama ve marjinal maliyet ( = =$5) ile ürettiğini ve =53 şeklinde

Detaylı

11- FONKSİYONLAR (FUNCTIONS)

11- FONKSİYONLAR (FUNCTIONS) 1 Fonksiyon : Belirli bir işi yapan programın bir isim altına tanımlanarak, o isimle çağrılarak kullanılması. Fonksiyonun faydaları : Programın modülerliğini arttırır. Aynı işi yapan program parçası tekrar

Detaylı

TEMPLATES. Binnur Kurt kurt@cs.itu.edu.tr. Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi. C++ ile Nesneye Dayalı Programlama 1

TEMPLATES. Binnur Kurt kurt@cs.itu.edu.tr. Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi. C++ ile Nesneye Dayalı Programlama 1 PARAMETRİKÇOKŞEKİLLİLİK: TEMPLATES Binnur Kurt kurt@cs.itu.edu.tr Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi C++ ile Nesneye Dayalı Programlama 1 Sınıf Yapısı Kalıtım Çok Şekillilik Templates

Detaylı

Virtualmin'e Yeni Web Sitesi Host Etmek - Domain Eklemek

Virtualmin'e Yeni Web Sitesi Host Etmek - Domain Eklemek Yeni bir web sitesi tanımlamak, FTP ve Email ayarlarını ayarlamak için yapılması gerekenler Öncelikle Sol Menüden Create Virtual Server(Burdaki Virtual server ifadesi sizi yanıltmasın Reseller gibi düşünün

Detaylı

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR PROGRAMLAMAYA GİRİŞ FONKSİYONLAR Fonksiyonlar C programlama dili fonksiyon olarak adlandırılan alt programların birleştirilmesi kavramına dayanır. Bir C programı bir ya da daha çok fonksiyonun bir araya

Detaylı

Önemli noktalar. Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance

Önemli noktalar. Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance Önemli noktalar Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance public class Test { // çalışır İnsan insan = new Çiçekçi();

Detaylı

Öğr. Gör. Serkan AKSU http://www.serkanaksu.net. http://www.serkanaksu.net/ 1

Öğr. Gör. Serkan AKSU http://www.serkanaksu.net. http://www.serkanaksu.net/ 1 Öğr. Gör. Serkan AKSU http://www.serkanaksu.net http://www.serkanaksu.net/ 1 JavaScript JavaScript Nedir? Nestcape firması tarafından C dilinden esinlenerek yazılmış, Netscape Navigator 2.0 ile birlikte

Detaylı

Yüz Tanımaya Dayalı Uygulamalar. (Özet)

Yüz Tanımaya Dayalı Uygulamalar. (Özet) 4 Yüz Tanımaya Dayalı Uygulamalar (Özet) Günümüzde, teknolojinin gelişmesi ile yüz tanımaya dayalı bir çok yöntem artık uygulama alanı bulabilmekte ve gittikçe de önem kazanmaktadır. Bir çok farklı uygulama

Detaylı

BİL-142 Bilgisayar Programlama II

BİL-142 Bilgisayar Programlama II BİL-142 Bilgisayar Programlama II (C/C++) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Giriş math Kütüphane Fonksiyonları Çok Parametreyle Fonksiyon Tanımı Fonksiyon

Detaylı

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır. Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır. Örneğin; bir öğrenci, sıra, çember, bir buton birer nesnedir. Bir

Detaylı

Bilgisayar Bilimcileri Haklıymış

Bilgisayar Bilimcileri Haklıymış Chris Stephenson Bilgisayar Bilimcileri Haklıymış Slide 1 of 47 Bilgisayar Bilimcileri Haklıymış Programlama dillerindeki son gelişmeler Chris Stephenson Department of Computer Science, İstanbul Bilgi

Detaylı

WEEK 4 BLM323 NUMERIC ANALYSIS. Okt. Yasin ORTAKCI.

WEEK 4 BLM323 NUMERIC ANALYSIS. Okt. Yasin ORTAKCI. WEEK 4 BLM33 NUMERIC ANALYSIS Okt. Yasin ORTAKCI yasinortakci@karabuk.edu.tr Karabük Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi BLM33 NONLINEAR EQUATION SYSTEM Two or more degree polinomial

Detaylı

4. HAFTA BLM323 SAYISAL ANALİZ. Okt. Yasin ORTAKCI.

4. HAFTA BLM323 SAYISAL ANALİZ. Okt. Yasin ORTAKCI. 4. HAFTA BLM33 SAYISAL ANALİZ Okt. Yasin ORTAKCI yasinortakci@karabuk.edu.tr Karabük Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi BLM33 NONLINEAR EQUATION SYSTEM Two or more degree polinomial

Detaylı

Operatörlere İşlev Yükleme

Operatörlere İşlev Yükleme Binnur Kurt kurt@ce.itu.edu.tr Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi Operatörler C tip-duyarlı ve -odaklı bir dildir. Her operatör belirli tiplerde operand alır. C de temel tiplerden

Detaylı

INTRODUCTION TO JAVASCRIPT JAVASCRIPT JavaScript is used in millions of Web pages to improve the design, validate forms, detect browsers, create cookies, and much more. JavaScript is the most popular scripting

Detaylı

Hafta 13 Fonksiyonlar

Hafta 13 Fonksiyonlar BLM111 Programlama Dilleri I Hafta 13 Fonksiyonlar Yrd. Doç. Dr. Caner ÖZCAN Fonksiyonlar Fonksiyonlar C de modüller Programlar kullanıcı tanımlı fonksiyonları ve kütüphane fonksiyonlarını birlikte kullanırlar.

Detaylı

1 PROGRAMLAMAYA GİRİŞ

1 PROGRAMLAMAYA GİRİŞ İÇİNDEKİLER IX İÇİNDEKİLER 1 PROGRAMLAMAYA GİRİŞ 1 Problem Çözme 1 Algoritma 1 Algoritmada Olması Gereken Özellikler 2 Programlama Dilleri 6 Programlama Dillerinin Tarihçesi 6 Fortran (Formula Translator)

Detaylı

HB1002: ORACLE 10G VERĐTABANI PL/SQL ile PROGRAMLAMA (32 saat)

HB1002: ORACLE 10G VERĐTABANI PL/SQL ile PROGRAMLAMA (32 saat) Sayfa: 1 / 5 HB1002: ORACLE 10G VERĐTABANI PL/SQL ile PROGRAMLAMA (32 saat) Eğitimin Amacı Bu eğitim SQL dilinin içermediği (döngü, if/else, hata yakalama, vb.) programlama dili özelliklerini içeren PL/SQL

Detaylı

Bölüm 6. Veri Türleri ISBN

Bölüm 6. Veri Türleri ISBN Bölüm 6 Veri Türleri ISBN 0-321-49362-1 Bölüm 6 Konular Giriş İlkel Veri Türleri Karakter Dizisi Türleri Kullanıcı Tanımlı Sıra Türleri Dizi Türleri İlişkili Diziler Giriş Bir veri türü veri nesnelerinin

Detaylı

Özyineleme (Recursion)

Özyineleme (Recursion) C PROGRAMLAMA Özyineleme (Recursion) Bir fonksiyonun kendisini çağırarak çözüme gitmesine özyineleme (recursion), böyle çalışan fonksiyonlara da özyinelemeli (recursive) fonksiyonlar denilir. Özyineleme,

Detaylı

BMH-303 Nesneye Yönelik Programlama

BMH-303 Nesneye Yönelik Programlama BMH-303 Nesneye Yönelik Programlama this anahtar kelimesi ve kalıtım Dr. Musa ATAŞ Siirt Üniversitesi Bilgisayar Mühendisliği this kelimesinin kullanım yerleri Aktif sınıfın örneğine referans vermek için

Detaylı

Pointers (İşaretçiler)

Pointers (İşaretçiler) Pointers (İşaretçiler) Pointers (İşaretçiler) Verilerin bilgisayar hafızasında tutulduğu fiziki alan adres olarak tanımlanabilir. Adres, hem donanımla hem de yazılımla ile ilişkilidir. Donanımsal açıdan

Detaylı

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say İÇİNDEKİLER 1. Bilgisayarın Yapısı Ve Programlama Dilleri Giriş 1 Bilgisayar ve Programlamanın Kısa Bir Tarihçesi 2 Donanım ve Yazılım Kavramları 3 Bilgisayarın Donanımsal yapısı 4 Giriş Birimi (Input

Detaylı

Metotlar. d e f metot_adı [ ( [ arg [= d e f a u l t ] ]... [, arg [, &expr ] ] ) ] deyim ( l e r ) end

Metotlar. d e f metot_adı [ ( [ arg [= d e f a u l t ] ]... [, arg [, &expr ] ] ) ] deyim ( l e r ) end 4 Metotlar Hemen her programlama dilinde var olan metot kavramı Ruby için de aynıdır. Bazı kaynaklarda metot terimi yerine fonksiyon terimi kullanılır. Bu kitapta iki terimi eşanlamlı kullanacağız. Ruby

Detaylı

BBS 514 YAPISAL PROGRAMLAMA (STRUCTURED PROGRAMMING)

BBS 514 YAPISAL PROGRAMLAMA (STRUCTURED PROGRAMMING) 1 BBS 514 YAPISAL PROGRAMLAMA (STRUCTURED PROGRAMMING) LECTURE 3: ASSIGNMENT OPERATOR Lecturer: Burcu Can BBS 514 - Yapısal Programlama (Structured Programming) 2 Lexical Elements (Sözcüksel Elemanlar)

Detaylı

Arýza Giderme. Troubleshooting

Arýza Giderme. Troubleshooting Arýza Giderme Sorun Olasý Nedenler Giriþ Gerilimi düþük hata mesajý Þebeke giriþ gerilimi alt seviyenin altýnda geliyor Þebeke giriþ gerilimi tehlikeli derecede Yüksek geliyor Regülatör kontrol kartý hatasý

Detaylı

Bölüm 5. İsimler, Bağlamalar, Tip Kontrolü, Etki Alanları ISBN

Bölüm 5. İsimler, Bağlamalar, Tip Kontrolü, Etki Alanları ISBN Bölüm 5 İsimler, Bağlamalar, Tip Kontrolü, Etki Alanları ISBN 0-321-49362-1 5. bölüm konuları Giriş İsimler Değişkenler Bağlama kavramı Tip kontrolü Kuvvetli tipleme Tip Eşdeğerliği Etki alanı (Scope)

Detaylı

PROGRAMLAMAYA GİRİŞ DERS 2

PROGRAMLAMAYA GİRİŞ DERS 2 PROGRAMLAMAYA GİRİŞ DERS 2 Program editörde oluşturulur ve diske kaydedilir Tipik Bir C Programı Geliştirme Ortamının Temelleri 1. Edit 2. Preprocess 3. Compile 4. Link 5. Load 6. Execute Önişlemci programı

Detaylı

const objects & const member functions const objects ve const functions Data Member Initializer List Data Member Initializer List

const objects & const member functions const objects ve const functions Data Member Initializer List Data Member Initializer List const objects & const member functions Principle of Least Privilege: Bir software parcasina sadece kesin olarak ihtiyac duyulani ver. Bu yolla bir cok muhtemel hata yakalanabilir ve bu hatalardan sakinilabilinir

Detaylı

"Şirket" Sunucusu ve Başarı Mobile Arasındaki HTTP Veri Aktarımı için Etkileşim Teknik Protokolü

Şirket Sunucusu ve Başarı Mobile Arasındaki HTTP Veri Aktarımı için Etkileşim Teknik Protokolü "Şirket" Sunucusu ve Başarı Mobile Arasındaki HTTP Veri Aktarımı için Etkileşim Teknik Protokolü BAŞARI Mobile tarafından desteklenmektedir. 1. Genel Bakış Bu döküman ile Şirket Adı nın ve Basari Mobile

Detaylı

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism ) Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism ) BBS-515 Nesneye Yönelik Programlama Ders #9 (16 Aralık 2009) Geçen ders: Java Applet lerde bileşen yerleştirme türleri ( applet layouts

Detaylı

Lambda İfadeleri (Lambda Expressions)

Lambda İfadeleri (Lambda Expressions) Lambda İfadeleri (Lambda Expressions) Lambda İfadeleri, değişkenlere değer atamak için kullanılan sadeleştirilmiş anonim (isimsiz) fonksiyonlardır. Bu fonksiyonlar matematikteki ve bilgisayar bilimlerindeki

Detaylı

C++ Dersi: Nesne Tabanlı Programlama

C++ Dersi: Nesne Tabanlı Programlama C++ Dersi: Nesne Tabanlı Programlama Bölüm 11: Bileşim, Arkadaş ve Diğer Araçlar İçerik Bileşim Arkadaş Fonksiyonlar ve Sınıflar Arkadaş Fonksiyonlar Arkadaş Sınıflar Sabit Nesneler Sabit Üye Fonksiyonlar

Detaylı

NESNEYE YÖNELİK PROGRAMLAMA

NESNEYE YÖNELİK PROGRAMLAMA NESNEYE YÖNELİK PROGRAMLAMA Metotlar Şu ana kadar yaptığımız örneklerde hep önceden hazırlanmış ReadLine(), WriteLine() vb. gibi metotları kullandık. Artık kendi metotlarımızı yapmanın zamanı geldi. Bilmem

Detaylı

BLM401 Mobil Cihazlar için ANDROID İşletim Sistemi. SQLite Veritabanı. BLM401 Dr.Refik SAMET

BLM401 Mobil Cihazlar için ANDROID İşletim Sistemi. SQLite Veritabanı. BLM401 Dr.Refik SAMET BLM401 Mobil Cihazlar için ANDROID İşletim Sistemi SQLite Veritabanı BLM401 Dr.Refik SAMET 1 SQLite açık kaynak kodlu; GİRİŞ (1/4) sunucu gerektirmeyen; konfigürasyon ayarları gerektirmeyen; platformdan

Detaylı

econn (Supplier Portal) of the MANN+HUMMEL Group

econn (Supplier Portal) of the MANN+HUMMEL Group econn (Supplier Portal) of the MANN+HUMMEL Group October 2016 1 econn CONNECTED FOR SUCCESS Support If you have any questions or technical issues during the registration please contact: Teknik sorularınız

Detaylı

C++ Dersi: Nesne Tabanlı Programlama

C++ Dersi: Nesne Tabanlı Programlama C++ Dersi: Nesne Tabanlı Programlama Bölüm 6: Diziler İçerik Diziler Dizi Elemanlarına İlk Atama Diziler ve Fonksiyonlar İki Boyutlu Diziler İki Boyutlu Dizi Tanımı İki Boyutlu Dizi Elemanlarına Erişim

Detaylı

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-12 Fonksiyonlar. Yrd. Doç. Dr. Ümit ATİLA

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-12 Fonksiyonlar. Yrd. Doç. Dr. Ümit ATİLA BLM-111 PROGRAMLAMA DİLLERİ I Ders-12 Fonksiyonlar Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Fonksiyonlar Fonksiyonlar C de modüller Programlar kullanıcı tanımlı

Detaylı

Veri Yapıları ve Algoritmalar 2006-2007 2.dönem

Veri Yapıları ve Algoritmalar 2006-2007 2.dönem Veri Yapıları ve Algoritmalar 2006-2007 2.dönem Öğretim Elemanları: Dr. A. Şima Etaner-Uyar Dr. Gülşen Cebiroğlu-Eryiğit Dersle ilgili bilgiler Ders Kitabı Data Structures and Algorithms in Java, 4th Ed.,

Detaylı

İfadeler bir programlama dilinde hesaplamaları belirtmede temel araçtır. İfadelerin değerlendirmesini anlamak için,

İfadeler bir programlama dilinde hesaplamaları belirtmede temel araçtır. İfadelerin değerlendirmesini anlamak için, PDP 7 1 İfadeler bir programlama dilinde hesaplamaları belirtmede temel araçtır. İfadelerin değerlendirmesini anlamak için, operatörlerin sırası ve İşlenenlerin (operant) değerlendirmesine aşina olmamız

Detaylı

ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ. Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ. Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü Konular Giriş math Kütüphane Fonksiyonları Çok Parametreyle Fonksiyon

Detaylı

Cases in the Turkish Language

Cases in the Turkish Language Fluentinturkish.com Cases in the Turkish Language Grammar Cases Postpositions, circumpositions and prepositions are the words or morphemes that express location to some kind of reference. They are all

Detaylı

C++ Dersi: Nesne Tabanlı Programlama

C++ Dersi: Nesne Tabanlı Programlama C++ Dersi: Nesne Tabanlı Programlama Bölüm 10: Yapıcı ve Yıkıcı Fonksiyonlar Yapıcı Fonksiyonlar İçerik Yapıcı Fonksiyon Tanımı Üyelere İlk Atama Yapıcı Fonksiyonu Yükleme Yapıcı Fonksiyon Çağırımı Kopya

Detaylı

Bölüm 12. Nesne yönelimli programlama desteği

Bölüm 12. Nesne yönelimli programlama desteği Bölüm 12 Nesne yönelimli programlama desteği 12. Bölüm konuları Giriş Nesne yönelimli programlama Nesne yönelimli diller için tasarım konuları C++ dilinde nesne yönelimli programlama desteği Nesne yönelimli

Detaylı

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6 ix Yazılım Nedir? 2 Yazılımın Tarihçesi 3 Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5 Yazılımın Önemi 6 Yazılımcı (Programcı) Kimdir? 8 Yazılımcı Olmak 9 Adım Adım Yazılımcılık 9 Uzman

Detaylı

Diziler (Arrays) Çok Boyutlu Diziler

Diziler (Arrays) Çok Boyutlu Diziler Diziler (Arrays) Çok Boyutlu Diziler ÇOK BOYUTLU DİZİLER Birden fazla indis numarası ile elemanlarına ulaşılan dizilere çok boyutlu diziler denir. Bunlardan en sık kullanılanı çift boyutlu dizilerdir.

Detaylı

Ardunio ve Bluetooth ile RC araba kontrolü

Ardunio ve Bluetooth ile RC araba kontrolü Ardunio ve Bluetooth ile RC araba kontrolü Gerekli Malzemeler: 1) Arduino (herhangi bir model); bizim kullandığımız : Arduino/Geniuno uno 2) Bluetooth modül (herhangi biri); bizim kullandığımız: Hc-05

Detaylı

AKTS Başvurumuz. Bologna Süreci Uzmanlarının Değerlendirmesi

AKTS Başvurumuz. Bologna Süreci Uzmanlarının Değerlendirmesi AKTS Başvurumuz Bologna Süreci Uzmanlarının Değerlendirmesi Bologna Süreci Uzmanlarının Değerlendirme Sistemi Her bir bölüm için verilen skorlar Kabul edilebilir: 3 Çok iyi : 4 Örnek çalışma : 5 Part 1.

Detaylı

Operator Aşırı Yükleme (Operator OverLoading)

Operator Aşırı Yükleme (Operator OverLoading) Operator Aşırı Yükleme (Operator OverLoading) Operator Aşırı Yükleme Operatör metotları bir nesnenin ifadeler içinde operatörlerle kullanıldığı zaman davranışını belirler. Temel veri türleri için operatörler

Detaylı

Squid i Follow X-Forwarded-For headers Yaması İle Patchlemek

Squid i Follow X-Forwarded-For headers Yaması İle Patchlemek /******************************************************** * Gökhan ALKAN * gokhan [at] enderunix [dot] org * EnderUNIX Yazılım Gelistirme Takımı * http://www.enderunix.org * * Sürüm : 1.0 * Tarih : 27.06.2006

Detaylı

Sunum İçeriği. Programlamaya Giriş 22.03.2011

Sunum İçeriği. Programlamaya Giriş 22.03.2011 Programlamaya Giriş Nesne Tabanlı Programlamaya Giriş ve FONKSİYONLAR Sunum İçeriği Nesne Tabanlı Programlama Kavramı Fonksiyon tanımlama ve kullanma Formal Parametre nedir? Gerçel Parametre nedir? Fonksiyon

Detaylı

const objects & const member functions

const objects & const member functions const objects & const member functions Principle of Least Privilege: Bir yazılım parçasına sadece kesin olarak ihtiyac duyulan karadar erişim izni verilmelidir. Bu yolla bir çok muhtemel hata yakalanabilir

Detaylı

NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM

NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM 2014) //Class (Sınıf) // Sınıf (class) soyut veri tipidir. // Nesne (object) sınıfın somutlaşan bir cismidir. // static : nesnesi oluşturulmaz.

Detaylı

Yarışma Sınavı A ) 60 B ) 80 C ) 90 D ) 110 E ) 120. A ) 4(x + 2) B ) 2(x + 4) C ) 2 + ( x + 4) D ) 2 x + 4 E ) x + 4

Yarışma Sınavı A ) 60 B ) 80 C ) 90 D ) 110 E ) 120. A ) 4(x + 2) B ) 2(x + 4) C ) 2 + ( x + 4) D ) 2 x + 4 E ) x + 4 1 4 The price of a book is first raised by 20 TL, and then by another 30 TL. In both cases, the rate of increment is the same. What is the final price of the book? 60 80 90 110 120 2 3 5 Tim ate four more

Detaylı

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ Yrd.Doç.Dr. Emel ARSLAN earslan@istanbul.edu.tr C DİLİNDE FONKSİYONLAR C DİLİNDE FONKSİYONLAR C programlama dili fonksiyon olarak adlandırılan alt programların

Detaylı

Sınıf üyeleri: değişkenler (fields) and metotlar (methods) Değişkenler: nesne içerisindeki değişkenlerdir Temel veri tipi veya sınıf tipi

Sınıf üyeleri: değişkenler (fields) and metotlar (methods) Değişkenler: nesne içerisindeki değişkenlerdir Temel veri tipi veya sınıf tipi Görsel Programlama Metot Yeniden Tanımlama, Metot Aşırı Yükleme, Dinamik Metot Yükleme, Soyut Sınıflar, Soyut Metotlar, Arayüzler, Çoklu Kalıtım, Anonim Sınıflar ve java.lang.object Sınıflar Programcı

Detaylı

İçerik. Temel Kavramlar. Nesne Nedir? 1. Nesne : Örnek. Nesne Nedir? 2. Geçen hafta: Bu hafta: BBS-515 Nesneye Yönelik Programlama

İçerik. Temel Kavramlar. Nesne Nedir? 1. Nesne : Örnek. Nesne Nedir? 2. Geçen hafta: Bu hafta: BBS-515 Nesneye Yönelik Programlama İçerik Temel Kavramlar BBS-515 Nesneye Yönelik Programlama Geçen hafta: Nesneye yönelik programlama Ne demektir, nasıl ortaya çıkmıştır? Nesneye yönelik dil olarak JAVA ve ilişkili kavramlar Bu hafta:

Detaylı

1 C#.NET GELİŞTİRME ORTAMI 1 Visual Studio 2015 Arayüzü 4 Menu Window 6 Solution Explorer 7 Properties Window 8 Server Explorer 8 Toolbox 9

1 C#.NET GELİŞTİRME ORTAMI 1 Visual Studio 2015 Arayüzü 4 Menu Window 6 Solution Explorer 7 Properties Window 8 Server Explorer 8 Toolbox 9 VII 1 C#.NET GELİŞTİRME ORTAMI 1 Visual Studio 2015 Arayüzü 4 Menu Window 6 Solution Explorer 7 Properties Window 8 Server Explorer 8 Toolbox 9 2 KOD YAZMAYA BAŞLANGIÇ 11.Net Framework 11 Yeni Proje Oluşturmak

Detaylı

Bölüm 7. İfadeler ve atamalar ISBN

Bölüm 7. İfadeler ve atamalar ISBN Bölüm 7 İfadeler ve atamalar ISBN 0-321-49362-1 7. Bölüm konuları Giriş Aritmetik ifadeler Çok anlamlı (overloaded) operatörler Tip dönüşümleri (conversions) İlişkisel ve Boolean İfadeler Kısa-devre hesaplama

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları METOTLAR Nesneye yönelik programlama dillerinde genellikle fonksiyonlar metot olarak isimlendirilirler. Metot ve fonksiyon olarak ifade edilecek kavramlar aynı anlamda kullanılacaktır. Her çalışan C# programı

Detaylı

8. İŞARETCİLER (POINTERS)

8. İŞARETCİLER (POINTERS) 8. İŞARETCİLER (POINTERS) Verilerin bilgisayar hafızasında tutulduğu fiziki alan adres olarak tanımlanabilir. Adres, hem donanımla hem de yazılımla ilişkilidir. Donanımsal açıdan adres bellekte yer gösteren

Detaylı