Karakter, katar Tipleri (Character, String ) Kullanıcı-tanımlı Sıra Tipleri (Ordinal)
|
|
- Iskender Gürses
- 5 yıl önce
- İzleme sayısı:
Transkript
1 PDP 5 Veri Tipleri 1 Veri tipi (data type) bir değerler/nesneler kümesini ve bu nesneler üzerindeki bir takım ön tanımlı işlemlerini (predefined operations) tanımlar. Bir betimleyici/tanımlayıcı (descriptor) bir değişkenin (variable) özelliklerinin (attributes) koleksiyonudur. Bir programlama dilindeki veri tipleri, programlardaki ifade yeteneğini, gerçek hayattaki problemlere nasıl uygulanacagını programların güvenilirliğini doğrudan etkiledikleri için, bir programlama dilinin değerlendirilmesinde önemli bir yer tutarlar. 2 1
2 Bir problemin çözümü esnasında bilgisayarda tutulan, CPU komutu olmayan her türlü bilgiye veri denir. Von Neumann mimarisi CPU ile belleği belirgin bir şekilde ayırır. Bellek içeriği oldukça karışıktır. Bellekte: Her türlü CPU komutları: yazmaç (register), bellek transferleri, aritmetik işlemler, karşılaştırma, vs. Bazı işlemleri yapabilmek için ek bilgi: transfer etmek için adresler, vs. İşlenecek değerler, adres bilgileri gibi veriler (data). Belleğe erişim tamamen adrese göredir. Von Neumann makinesinde işlenecek bütün bilgiler ikili (binary) sayısal sisteme dönüştürülmek zorundadır. 3 2
3 İlkel Veri Tipleri (Primitive) Karakter, katar Tipleri (Character, String ) Kullanıcı-tanımlı Sıra Tipleri (Ordinal) Dizi Tipleri (Array) İlişkili (Çağrışımlı) Diziler (Associative Arrays) Kayıt (Tutanak) Tipleri (Record) Bileşim Tipleri (Union) İşaretçi Tipleri (Pointer) 5 İlkel tipler, çoğu programlama dilinde yer alan ve diğer tiplerden oluşmamış veri tiplerini göstermektedir. Bileşik Tipler Çeşitli veri tiplerinde olabilen bileşenlerden oluşmuştur. 6 3
4 Integer Genellikle her zaman donanımın tam yansımasıdır, bu yüzden eşlenme (mapping) önemsizdir Bir dilde en çok sekiz farklı integer tipi olabilir En bilinen temel veri tipi tamsayı (integer) dır. Bir tamsayı değer, bellekte en sol bit işaret biti olmak üzere bir dizi ikili (bit) ile gösterilir. Temel tamsayı veri tipine ek olarak Ada ve C programlama dillerinde, short int, int, long int gibi üç ayrı büyüklükte tamsayı tipi tanımlanmıştır. C'de işaretsiz tamsayı (unsigned int) veri tipi de bulunmaktadır. 7 TÜR İSMİ UZUNLUK (byte) (DOS / UNIX) SINIR DEĞERLERİ signed char unsigned char signed short int unsigned short int signed int unsigned int long int unsigned long int
5 Kayan Noktalı sayılar (Floating Point) Gerçel (real) sayıları modeller Sadece yaklaşık olarak (pi, e vb) kesirler ve üsler olarak iki bölümde ifade edilirler. duyarlılık (precision) ve alan (range) açısından tanımlanırlar. Duyarlılık, değerin kesir bölümünün tamlığıdır. Alan ise, kesirlerin ve üslerin birleşmesidir. Bilimsel kullanım için olan diller en az iki kayan-nokta tipini destekler 9 Kayan Noktalı sayılar IEEE Kayan Nokta Formatları (IEEE Floating-Point Standard 754 ) Kayan noktalı sayılar, kesir (fraction) ve üst (exponent) olarak iki bölümde ifade edilirler. kayan noktalı veri tipi, gerçel (real) ve çift-duyarlılık (double) olmak üzere iki tiple gösterilebilirler. 10 5
6 Complex Bazı dillerde mevcuttur C99, Fortran, Python 7 + 3j her değer gerçel ve sanal olmak üzere iki parçadan oluşur 11 Onlu / Ondalık (Decimal, BCD) Onlu veri tipi, ondalık noktanın sabit bir yerde bulunduğu sabit sayıda onlu basamak içeren bir veri tipidir. Bu veri tipi, az sayıda programlama dilinde (Örneğin; PL/I) tanımlanmıştır. Onlu veri tipi, onlu değerleri tam olarak saklayabilirse de, üsler bulunmadığı için gösterilebilecek değer alanı sınırlıdır. Her basamak için bir sekizli (byte) gerekli olması nedeniyle, belleği etkin olarak kullanmaz. Ticari uygulamalar için (para) Sabit sayıda ondalık basamak (decimal digits) saklar (kodlanmış) Avantaj: doğruluk (accuracy) Dezavantaj: sınırlı aralık, belleği gereksiz harcar 12 6
7 Boolean (Mantıksal) Mantıksal veri tipi, ilk olarak ALGOL 60 tarafından tanıtılmış ve daha sonra çoğu programlama dilinde yer almıştır. sadece doğru (true) veya yanlış (false) şeklinde ifade edilen iki değer alabilir. bellekte bir ikili ile gösterilebilirse de, çoğu bilgisayarda bellekteki tek bir ikiliye etkin olarak erişim güç olduğu için, bir sekizlide (byte) saklanırlar. Avantaj: okunabilirlik 13 Boolean İlişkisel işlemciler, ve seçimli deyimler gibi programlamadaki birçok yapı, mantıksal tipte bir ifade üzerinde çalıştığı için mantıksal veri tipinin dilde yer almasının önemi büyüktür. ALGOL 60'dan sonraki çoğu dilde yer alan mantıksal veri tipinin yer almadığı bir programlama dili C dilidir. C'de ilişkisel işlemciler, ifadenin sonucu doğru ise 1, değilse 0 değeri döndürürler. C'de if deyimi, sıfır değeri için yanlış bölümünü, diğer durumlarda ise doğru bölümünü işler. 14 7
8 Karakter (Character) Tipleri Karakter veri tipi, tek bir karakterlik bilgi saklayabilen ve bilgisayarlarda sayısal kodlamalar olarak saklanan bir veri tipidir. Karakter veri tipinde en yaygın olarak kullanılan kodlamalardan biri ASCII kodlamasıdır. ASCII kodlaması, 128 farklı karakteri göstermek için, arasındaki tamsayı değerleri kullanır. ASCII kodlamasıyla bağlantılı olarak bazı programlama dilleri, karakter veri tipindeki değerlerle tamsayı tipi arasında ilişki kurarlar. 15 Alternatif, 16-bit kodlama: Unicode Tüm doğal dillerin karakterlerini barındırır. Burada karakterler 1-4 bayt ile gösterilirler. Java, C# ve JavaScript de Unicode u destekliyor Not: C'de char ve int veri tipleri dönüşümlü olarak kullanılabilmektedir. 16 8
9 Karakter Dizgi Tipi (Character String Types) Değerler karakterlerden (Character) oluşan sıradır Bir karakter dizgi veri tipinde, nesneler karakterler dizisi olarak bulunur. Tasarım problemleri: Karakter dizgi veri tipi bazı programlama dillerinde temel bir veri tipi olarak (dolayısıyla dizilim tipi indeksli kullanım yok), bazılarında ise özel bir karakter dizilimi olarak yer almıştır. Önemli tasarım özelliklerinden birisi de boyunun statik veya dinamik mi olmasıdır. 1. Bu bir ilkel (primitive) tip midir yoksa sadece bir çeşit özel dizi midir (array)? 2. Nesnelerin uzunluğu statik mi yoksa dinamik midir? Karakter Dizgi Tipi Bir karakter dizgi veri tipinde, nesneler karakterler dizisi olarak bulunur. Karakter dizgi veri tipi bazı programlama dillerinde ilkel bir veri tipi olarak, bazılarında ise özel bir karakter dizisi olarak yer almıştır. FORTRAN77, FORTRAN90 ve BASIC'te karakter dizgiler ilkel bir veri tipidir ve karakter dizgilerin atanması, karşılaştırılması vb. işlemler için işlemciler sağlanmıştır. Pascal, C, C++ ve Ada'da ise karakter dizgi veri tipi, tek karakterlerden oluşan diziler şeklinde saklanır. 18 9
10 Karakter Dizgi Tipi C and C++ İlkel değildir char dizileri kullanılır ve işlemler için kütüphane fonksiyonları vardır (strcpy(src,dst)). SNOBOL4 (bir string işleme dili) İlkel veri tipidir. Birçok işlem hazır vardır. Java String sınıfıyla ilkeldir. statik dizgi nesneleri yaratır. Nesneler değiştirilemez. StringBuffer sınıfı değiştirilebilir dizgi nesnelerinin sınıfıdır. Ada, FORTRAN 90, and BASIC Temel veri. Atama, karşılaştırma, birleştirme, alt dizgiye erişim FORTRAN da örüntülü eşleme var. Perl, JavaScript, C++, C# Patterns düzenli ifadeler (regular expressions) ile tanımlanır. Çok güçlü bir özellik Örneğin : /[A-Za-z][A-Za-z\d]+/ veya /\d+\.?\d* \.\d+/ 19 Karakter String Tipleri İşlemler: Atama, tanımlama (char *str = özellikler ; ) (Assignment) Karşılaştırma (Kıyaslama)(Comparison) (=, >, strcmp, etc.) Birleştirme (Catenation) Alt dizgiye erişim / Altstring referansı (Substring reference) Örüntülü eşleme (Pattern matching)
11 Örnekler: Pascal İlkel değildir ; sadece atama ve karşılaştırma (paketlenmiş diziler için) Ada, FORTRAN 90, ve BASIC Biraz ilkel Atama, kıyaslama (comparison), birleştirme (zincirleme)(catenation), altstring referansı (substring reference) FORTRAN desen eşleme (pattern matching) sahiptir Ada N := N1 & N2 (bireştirme) N(2..4) (alt string) C ve C++ İlkel(primitive) değildir char dizileri ve işlemleri sağlayan bir fonksiyonlar kütüphanesi kullanır SNOBOL4 (bir string işeleme dili) İlkel Birçok işlem, ayrıntılı desen eşleme(pattern matching) de içerir
12 Perl ve JavaScript Desenler(Patterns) düzenli ifadeler şeklinde tanımlanır (regular expressions) Çok güçlü bir özellik örn., /[A-Za-z][A-Za-z\d]+/ Java - String sınıfı (char dizileri değil) Nesneler değiştirilemez (sabit(immutable)) StringBuffer, değiştirilebilir string nesneleri için bir sınıftır Karakter Dizgilerin Uzunlukları Gerçekleştirim / Implementasyon: 1. Static Uzunluk- FORTRAN 77, Ada, COBOL derleme-süresi betimleyici örn. (FORTRAN 90) CHARACTER (LEN = 15) NAME; 2. Sınırlı Dinamik Uzunluk C ve C++ mutlak uzunluk bir null karakter ile gösterilir (Limited dynamic length) uzunluk için bir yürütme-süresi betimleyicisine (run-time descriptor) ihtiyaç duyabilir (C ve C++ da değil) 3. Dinamik uzunluk SNOBOL4, Perl, JavaScript yürütme süresi betimleyicisine (run-time descriptor) ihtiyaç duyar; ayırma/serbest bırakma (allocation/deallocation) en büyük implementasyon problemidir 24 12
13 Değerlendirme Yazılabilirliğe yardımcıdır Statik uzunluklu (Static length) bir ilkel(primitive) tip olarak, temin edilmesi ucuz--neden kullanmayalım? Dinamik uzunluk (Dynamic length) iyidir, fakat masrafa değer mi? Statik stringler için derleme-süresi tanımı Sınırlı dinamik stringler için yürütme-süresi tanımı
14 Bir sıralı (ordinal) tip, olası değerlerin pozitif tamsayılar kümesi ile ilişkilendirilebildiği veri tipidir. Sayılama (enumeration) Altalan (subrange) olmak üzere iki tür sıralı tip tanımlayabilir. 27 Sayılama (enumeration) tipi, gerçek hayattaki verilerin tamsayı (integer) veri tipine eşleştirilmesi için kullanılan veri tipidir. Tasarım Problemi: Bir sembolik sabitin (symbolic constant) birden fazla tip tanımlaması içinde yer almasına izin verilmeli midir? Bir sayılama tip tanımı, parantezler arasında yazılmış belirli sayıdaki isimden oluşur. Java dilinde sayılama veri tipi bulunmamaktadır, fakat Enumeration arabirimini (interface) sağlar Ada, C# ve Java 5.0; C++ dan daha iyi sayma tipi desteği verir
15 C++: enum renkler {kirmizi, mavi, yesil, sari, siyah}; C typedef enum {kirmizi, mavi, yesil, sari, siyah} renkler; ADA type gunler is (Pazartesi, Salı, Çarsamba, Persembe, Cuma, Cumartesi, Pazar) Bu tanımlamaya göre Pazartesi bilgisi 1 sayısı ile ve Pazar bilgisi 7 sayısı ile eşleştirilmiş olur. PASCAL type renkbilgisi=(kırmızı, mavi, yeşil, sarı); var renk:renkbilgisi; renk:=mavi; if renk > red;. 29 Değerlendirme (enumeration tipleri için): Okunabilirliğe yardım Bir rengi bir sayı olarak kodlamaya gerek yoktur Güvenilirliğe yardım derleyici şunları kontrol edebilir : i. İşlemler (renk eklenmesine izin vermez) ii. değerlerin aralıkları (ranges of values) (eğer 7 renk izin verir ve onları 1..7, diye integers olarak kodlarsa bu durumda 9 bir legal integer olacaktır ve bu yüzden bir legal renk olacaktır) İşlemleri (renklerin toplanması izin vermez) Tanımlandığı aralık dığında değerler atanamaz 30 15
16 Altaralık / Altalan (Subrange) Tipi Bir sıralı tipin (ordinal type), sıralı bir bitişik altdizisi Ana sınıfa uygulanabilen tüm işlemciler, altalan tiplerine de uygulanabilmektedir. Hem programlama dillerinin okunabilirliğine hem de güvenilirliğine olumlu katkı Tasarım Problemi: Nasıl kullanılabilirler? Pascal da: type pos = 0.. MAXINT; 31 Örnekler: Pascal - Subrange tipleri kendi ebeveyn tipleri (parent types) gibi davranır; for değişkenleri(variables) ve dizi indisleri(array indices) olarak kullanılabilir örn. type pos = 0.. MAXINT; Ada Alttipler yeni tipler değildir, sadece kısıtlı varolan tiplerdir; Pascal daki gibi, artı case sabitleri(constants) kullanılabilir subtype POS_TYPE is INTEGER range 0..INTEGER'LAST; 32 16
17 Subrange tiplerin değerlendirmesi: Okunabilirliğe yardım Güvenilirlik; kısıtlanmış aralıklar hata saptama sağlar Kullanıcı-tanımlı sıralı tiplerin gerçekleştirimi Enumeration tipleri integerlar olarak oluşturulur Aralık tipleri, subrange değişkenlerine atamaları sınırlamak için (derleyici tarafından) kod yerleştirilmiş ebeveyn tipleridir Aralık tipleri derleyici tarafından bazı şartlar eklenerek ebeveyn tip gibi gerçekleştirilirler Bir dizi, homojen veri elemanların bir kümesidir, elemanlardan her biri kümedeki birinci elemana göre olan pozisyonuyla tanımlanır. Programlarda dizilere erişim, dizi ismi ve indis değeri şeklinde gerçekleştirilir
18 Tasarım Problemleri: 1. indisler (indeks)(subscripts) için hangi tipler legaldir? 2. Eleman referansları aralığındaki indisleme ifadeleri kontrol edilmiş midir? 3. indis aralıkları ne zaman bağlanır (bounding)? 4. Ayırma (allocation) ne zaman olur? 5. indislerin (subscripts) maksimum sayısı nedir? 6. Dizi (array) nesneleri (objects) başlatılabilir mi (initialize)? 7. Herhangi bir çeşit kesite(slice) izin verilmiş midir? 35 İndeksleme (Dizin oluşturma) indislerden elementlere eşleştirme (mapping) yapmaktır map(array_name, index_value_list) an element Bütün dillerde genel önce dizinin adı sonra parantezler veya köşeli parantezler gelir, bunların arasında da index bulunur. İndeks Sentaksı FORTRAN, PL/I, Ada parentezler kullanır Diğer dillerin çoğu köşeli parantez [ ] kullanır 36 18
19 Index Tipleri FORTRAN, C, Java sadece integer Pascal Her türlü sıralı tip (integer, boolean, char, enum) Ada integer veya enum (boolean ve char dahil) Indexler C tabanlı dillerde 0 dan başlar. Fortran da 1 dir. Bazı dillerde ise tamamen programcı tarafından belirlenir. Aralık kontrolü C, C++, Perl, ve Fortran aralık kontrolünü belirtmez. Java, ML, C# aralık kontrolünü belirtir. İndisin Üst Sınırı: Popüler olan programlama dillerinde dizi indislerinin sayısı sınırlanmaz. C'de ise diğer programlama dillerinden farklı bir tasarım vardır. C'de dizilerin tek indisi olabilir. Ancak, dizilerin elemanları diziler olabildiği için çok boyutlu diziler oluşturulabilir. (int mat [2][3];) 37 İndisin Alt Sınırı: C ve C++'da tüm indisler için alt sınır varsayılan olarak sıfır, FORTRAN 77 ve FORTRAN 90'da ise varsayılan olarak bir kabul edilir. Çoğu programlama dilinde ise, indislerin alt sınır değerleri dizinin tanımında belirtilmelidir
20 indislerin (subscripts) sayısı FORTRAN I en çok 3 e kadar izin verir FORTRAN 77 en çok 7 ye kadar izin verir Diğerleri sınır yoktur Dizi Başlatma (Array Initialization) Genellikle sadece diziye, dizi elemanlarınmın bellekte saklandığı sıra ile sıralanmış olarak konulan değerlerin listesi 43 Dizi başlatma (array initialization) : FORTRAN - DATA ifadesini kullanır, veya değerleri tanımda /... / içine koyar C ve C++ - Kıvrık parantezler içinde, derleyici elemanları sayar ve buna göre yer ayarlar: int sayilar [] = {2, 4, 6, 8}; char isim[] = tugrul ; // karakter string char *isimler[] = { ali, veli } //String dizi (array) Java String[] isimler = [ ali, veli ]; //String nesneleri Ada List : array (1..5) of Integer := (1 => 17, 3 => 34, others => 0); Pascal dizi başlatmaya izin vermez 44 20
21 Kesitler (slices) Dizininin bir kısım altyapısıdır (substructure) ; bir referanslama mekanizmasıdır Sadece dizi işlemleri olan diller için kullanışlıdır FORTRAN 90 INTEGER MAT (1:4, 1:4) MAT(1:4, 1) ilk sütun MAT(2, 1:4) ikinci satır FORTRAN 95 Integer, Dimension (3, 3, 4) :: Cube Ada sadece tek-boyutlu diziler LIST(4..10) Dizilerin İmplementasyonu Erişim fonksiyonları (Access function) indis ifadelerini dizideki bir adrese eşler (map) Satıra göre veya sütuna göre sıralanır Erişim fonksiyonu indexleri hesaplayarak dizinin içindeki hücrenin bellekte durduğu adrese ulaşır. Bunu yaparken Sütün öncelikli (Fortran) veya Satır öncelikli (Diğer diller) yöntemini kullanır. Alt indis sınırı 1 ve her bir elemanının sözcük uzunluğu c olan bir dizinin A[k] nci elemanın adresi: Adres(A[k])=adres(A[1])+(k-1)*c Adres(A[k])={adres(A[1])-c}+k*c 46 21
22 Derleme Zamanı Tanımlamaları (Compile-Time Descriptors) 47 Bir ilişkili dizi (associative array), anahtar (key) adı verilen eşit sayıda değerlerle indekslenmiş veri elemanlarının sırasız bir koleksiyonudur Bir ilişkili dizi kendisiyle aynı sayıdaki anahtar denilen değerlerle indekslenmiş rasgele verilerdir. Anahtar değerlerinden bir hash algoritması ile değerler bulunur. Tasarım Problemleri: 1. Elemanlara referansın şekli nedir? 2. Boyut statik midir yoksa dinamik mi? 48 22
23 Perl de Yapı(Structure) ve İşlemler (Operations) Değişken isimleri % ile başlar. Değişken boyu değişkendir. Değerler parantezler arasına yazılır: %YuksekSicakliklar = ( Pazartesi => 45, Salı => 49, ); Indexleme parantezler ve anahtar verilerle yapılır: $YuksekSicakliklar{ Çarşamba } = 42; Elemanlar delete ile silinebilir: delete $ YuksekSicakliklar{ Salı }; Diziyi tamamen boşaltmak = (); 49 import java.util.hashtable; import java.util.enumeration;... // create a new Hashtable Hashtable h = new Hashtable( 149 /* capacity */, 0.75f /* loadfactor */ ); // add some key/value pairs to the Hashtable h.put( "WA", "Washington" ); h.put( "NY", "New York" ); h.put( "RI", "Rhode Island" ); h.put( "BC", "British Columbia" ); // look up a key in the Hashtable String key = "NY"; String statename = (String)h.get( key ); System.out.println( statename ); // prints "New York" // enumerate all the contents of the hashtable Enumeration keys = h.keys(); while ( keys.hasmoreelements() ) { key = (String)keys.nextElement(); statename = (String)h.get( key ); System.out.println( key + " " + statename ); // prints lines of the form NY New York // in effectively random order. } // end while 50 23
24 Bir kayıt (record) heterojen yapıdaki verilerin birleştirilmiş halidir. Her elemanın kendi tipi ve adı vardır. Tasarım problemleri: Referansların şekli nedir? Hangi birim işlemler tanımlanmıştır? Alanlara erişim sözdizimsel olarak nasıl yapılacak? Kayıt(Record) Tanımlama Sentaksı COBOL içiçe(nested) kayıtları(records) göstermek için düzey(level) sayılar kullanır; diğerleri özyineli(recursive) tanım kullanır Kayıt Alanı Referansları(Record Field References) 1. COBOL field_name OF record_name_1 OF... OF record_name_n 2. Diğerleri (nokta gösterimi - dot notation) record_name_1.record_name_2.... record_name_n.field_name 51 Her kayıt alanı için, kayıtın başlangıcına göre offset adresleri ilişkilendirilir Bir kayıt için bir derleme zamanı betimleyicisi (compile-time descriptor) 54 24
25 İlk olarak COBOL'da tanıtılmıştır. Altalan olarak isimlendirilen birden fazla ifadenin bulunduğu yapıdır. Kayıt veri tipi ile bir isim altında farklı tipte birden fazla alan tanımlanabilir. Yani dizilerde homojen elemanlar bulunurken kayıtlarda heterojen elemanlar vardır. Dizideki bir elemana indis numarası ile ulaşılırken kayıt veri tipinde alanlara her sahayı gösteren tanımlayıcılarla (mus.ad) ulaşılmaktadır. Kayıt içerisinde tanımlanan her alanın birbirinden farklı isimleri vardır. İstenirse bu isimler bu tipin dışında farklı tanımlamalar için de kullanılabilir. 55 Kayıtlar ve Dizilerin Kıyaslanması 1. Dizi elemanlarına erişim kayıt alanlarına erişimden daha yavaştır, çünkü indisler dinamiktir alan adları statiktir 2. Dinamik indisler kayıt alanına erişimle kullanılabilirdi, fakat o zaman tip kontrolüne izin vermeyecekti ve çok daha yavaş olacaktı 56 25
26 Pascal dilinde kayıt veri tipi aşağıdaki söz dizim ile tanımlanır. KayıtTipAdı=RECORD AlanAdı1:TipAdı; AlanAdı2;TipAdı; End; 57 Bir bileşim, değişkenlerinin yürütme süresi sırasında farklı zamanlarda farklı tipteki değerleri tutmasına izin verildiği tiptir Tasarim problemleri : 1. Eğer varsa hangi tip tip kontrolü yapılmalıdır? 2. Bileşimle kayıtlar ile entegre edilmeli midir?
27 Aynı bellek bölgesinin farklı değişkenler tarafından kullanılmasını sağlayan veri tipidir. Bu veri tipindeki değişkenlere ortak değişkenler de denir. Buradaki temel amaç farklı zamanlarda kullanılacak birden fazla değişken için ayrı ayrı yer ayırma zorunluluğunun ortadan kaldırılarak belleğin iyi kullanılmasıdır. 59 üç şekil(shape) değişkeninin(variable) bir discriminated bileşimi(union) 61 27
28 Union ların Değerlendirilmesi Potansiyel olarak güvensiz yapılardır. Tip kontrolüne izin vermezler. Günümüzde programlama dillerinde güvenlik önemlidir. Java and C# union desteklemez. 62 Bir küme değişkenlerinin bazı sıralı tiplerin ayrık değerlerinin sıralı olmayan koleksiyonlarını tutabildiği tiptir Tasarım Problemi: Herhangi bir set tipinde maksimum eleman sayısı nedir Kodlar =set of [0..255]; Harf =set of [ A.. Z ]; Rakam =set of [0..9]; kesişim * Birleşim + fark işlemler - mantıksal operatörler 6-66 (=, <>, <=, >=, in) 66 28
29 İşaretçi tipi, belirli bir veriyi içermek yerine başka bir veriye başvuru amacıyla kullanılır. Bir gösterge tipi sadece bellek adreslerinden oluşan değerler ve boş (null) değerini içerebilen bir tiptir. Gösterge tipindeki değerler, gösterdikleri veriden bağımsız olarak sabit bir büyüklüktedirler ve genellikle tek bir bellek yerine sığarlar. Bu yüzden işaretçilerin kullanımıyla bellek kullanımı ve yönetimi daha etkin hale gelmektedir. Liste, ikili ağaç ve dizi gibi veri yapıları işaretçilerle daha kolay kullanılabilir. 67 Atama işlemi j = *ptr 70 29
30 Pascal: sadece dinamik bellek yönetimi için kullanılır Explicit dereferencing (postfix ^) Askıdaki İşaretçiler (Dangling Pointers) olabilir (dispose) Askıda nesneler (Dangling objects) de olabilir Ada: Pascal dan biraz daha iyidir Bazı askıdaki işaretçilere(dangling pointers) izin verilmez çünkü dinamik nesneler işaretçinin(pointer) tip kapsamının(type scope ) sonunda otomatik olarak serbest bırakılır(deallocated) Bütün işaretçiler(pointers) null değerine başlatılır(initialize) Benzer askıda nesne(dangling object) problemi (fakat nadiren olur, çünkü belirtik serbest bırakma(explicit deallocation) nadiren yapılır) 71 C ve C++ Dinamik Bellek Yönetimi ve adresleme için kullanılır Explicit dereferencing ve address-of operatorü Tanım Kümesi Tipi (Domain type) sabit olmak zorunda değildir (void *) void * herhengi bir tipe işaret edebilir ve tip kontrolü yapılabilir (dereference yapılamaz) Adres aritmetiğini sınırlı biçimlerde yapabilir, örn.: float stuff[100]; float *p; p = stuff; *(p+5) eşittir stuff[5] ve p[5] *(p+i) eşittir stuff[i] ve p[i] (Implicit scaling) 72 30
31 FORTRAN 90 heap ve non-heap değişkenleri gösterebilir Implicit dereferencing İşaretçiler sadece TARGET özelliğine sahip olan değişkenleri gösterebilir TARGET özelliği tanımlama sırasında atanır: INTEGER, TARGET :: NODE non-dereferenced referanslar için özel bir atama operatörü kullanılır, REAL, POINTER :: ptr (POINTER bir özelliktir) ptr => target (target ya bir pointer veya TARGET özelliğine) sahip bir non pointer olabilir) Bu ptr yi target ile aynı değere ayarlar 73 C++ Referans tipleri Ötrük (Implicit) olarak dereference edilmiş sabit işaretçiler (constant pointers) Parametreler için kullanılır pass-by-reference ve pass-by-value nin ikisinin de avantajları Java sadece referanslar pointer aritmetiği yoktur Sadece nesneleri gösterir (hepsi heap üzerinde) Belirtik serbest bırakma (explicit deallocator) yoktur (Garbage collection kullanılır) Askıda referanslar olamayacağı anlamına gelir Dereferencing her zaman örtüktür 74 31
32 İşaretçilerin değerlendirilmesi: 1. Askıda İşaretçiler (Dangling Pointers) ve Askıda Nesneler (dangling objects) problemlerdir, heap yönetiminde olduğu gibi 2. İşaretçiler goto lar gibidir, bir değişkenin erişebileceği hücreler(cells) aralığını (range) genişletirler 3. İşaretçiler veya referanslar dinamik veri yapıları için gereklidir,bu yüzden onlar olmadan bir dil tasarlayamayız 75 İşaretçi Veri Tipinin Sorunları Bir işaretçi değişkenini gösterebileceği veri tipi kısıtlanmazsa güvenlik sorunu oluşabilir. (gösterge kullanımlarında durağan tip denetimi yapılamadığı için) PL/I Bir işaretçi değişkeninin gösterdiği adreste geçerli bir veri olmayabilir. (Pascal, C, C++) GÜVENİLİRLİK tehlikeye girebilir. C'de bir gösterge değişken tanımlanırken, adresini tutabileceği değişken tipi de belirtilmelidir (int *a;) Java pointer kullanımına izin vermez
33 #include <stdio.h> void main() { int a=4, b=7; //int tipinde a ve b değişkenleri tanımlanmış ve 4 ve 7 değerleri atanmıştır. int *pa,*pb; // pa ve pb adında, yine int tipinde iki işaretçi değişken tanımlanmıştır printf("a=%d, b=%d\n",a,b); // a = 4, b = 7 olarak ekrana yazdırır. pa=&a; //a değişkeninin adresini pa işaretçi değişkenine ata pb=&b; //b değişkeninin adresini pb işaretçi değişkenine ata *pa=*pa+10; // pa nin işaret ettikleri değere 10 değerini ekler *pb=*pb+10; // pb nin işaret ettikleri değere 10 değerini ekler printf("a=%d, b=%d",a,b); } Burada *pa=*pa+10; *pb=*pb+10; ifadelerinde pa ve pb nin işaret ettikleri değerlere sırasıyla 10 değerini ekler. pa işaretçi değişkeni a değişkenine ve pb işaretçi değişkeni ise b değişkenini işaret ettiğine göre aslında değeri artırılan değişkenler a ve b dir. Bu programın ekran çıktısı a = 4, b = 7 a = 14, b = 17 olur
PDP 5 Veri Tipleri. İlkel tipler, çoğu programlama dilinde yer alan ve diğer tiplerden oluşmamış veri tiplerini göstermektedir.
PDP 5 Veri Tipleri 1 Veri tipi (data type) bir değerler/nesneler kümesini ve bu nesneler üzerindeki bir takım ön tanımlı işlemlerini (predefined operations) tanımlar. Bir betimleyici/tanımlayıcı (descriptor)
Detaylı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ı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ıBölüm 6. Veri Tipleri ISBN 0-321 49362-1
Bölüm 6 Veri Tipleri ISBN 0-321 49362-1 6. Bölüm konuları Giriş Basit veri tipleri Karakter dizisi tipleri Kullanıcı tanımlı sıralı tipler Dizi tipleri İlişkisel diziler Kayıt (record) tipleri İşaretçi
DetaylıBölüm 6. Veri Tipleri ISBN 0-321 49362-1
Bölüm 6 Veri Tipleri ISBN 0-321 49362-1 Bölüm 6 Başlıkları Giriş İlkel Veri Tipleri Karakter String Tipleri Kullanıcı Tanımlı Tipler Dizi Tipleri Birleşmiş Diziler Kayıt Tipleri Küme Tipleri İşaretçi ve
DetaylıDers 6. Bölüm 6: Veri Tipleri (devam)
Ders 6 Bölüm 6: Veri Tipleri (devam) Dizilimler (Arrays) Dizilim bir toplam homojen veri alanıdır. İçindeki her bir elemana ilk elemana göre olan pozisyonuna göre erişilir. Örnek: C: int aa[4][3][7]; sum
DetaylıYAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta
YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ 3. Hafta YAPILAR Farklı veri tipindeki bilgilerin bir araya gelerek oluşturdukları topluluklara yapı (structure) denir. Yani yapılar, birbiriyle ilişkili değişkenlerin
DetaylıUzaktan Eğitim Uygulama ve Araştırma Merkezi
JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java Veri Tipleri ve Özelilkleri Değişken Tanımlama Kuralları Değişken Veri Tipi Değiştirme (Type Casting) Örnek Kodlar Java Veri Tipleri ve Özelilkleri
DetaylıVeri Tipleri. Ders 6
Veri Tipleri Ders 6 Giriş Temel veri tipleri Konu Başlıkları Karakter dizgi tipleri (character string) Kullanıcı tanımlı sıralı tipler (user defined ordinal types) Dizilimler (arrays) İlişkili dizilimler
Detaylı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ıPASCAL PROGRAMLAMA DİLİ YAPISI
BÖLÜM 3 PASCAL PROGRAMLAMA DİLİ YAPISI 3.1. Giriş Bir Pascal programı en genel anlamda üç ayrı kısımdan oluşmuştur. Bu kısımlar bulunmaları gereken sıraya göre aşağıda verilmiştir. Program Başlığı; Tanımlama
DetaylıAlgoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi
Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları Veri yapısı, bilginin anlamlı sırada bellekte veya disk, çubuk bellek gibi saklama birimlerinde tutulması veya saklanması şeklini gösterir. Bilgisayar
DetaylıÖğr. Gör. Musa AYDIN Fatih Sultan Mehmet Vakıf Üniversitesi
Öğr. Gör. Musa AYDIN Fatih Sultan Mehmet Vakıf Üniversitesi İÇİNDEKİLER Değişken Nedir? Değişken kullanımı faydaları. Değişken türleri Değişken görünürlüğü (scope) Değişken türleri arası dönüşümler Örnek
Detaylı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ı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ıÇ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ıenum bolumler{elektronik, insaat, bilgisayar, makine, gida};
BÖLÜM 12: Giriş C programlama dilinde programcı kendi veri tipini tanımlayabilir. enum Deyimi (Enumeration Constants) Bu tip, değişkenin alabileceği değerlerin belli (sabit) olduğu durumlarda programı
Detaylı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ıHSancak Nesne Tabanlı Programlama I Ders Notları
DİZİLER Bellekte ard arda yer alan aynı türden nesneler kümesine dizi (array) denilir. Bir dizi içerisindeki bütün elemanlara aynı isimle ulaşılır. Yani dizideki bütün elemanların isimleri ortaktır. Elemanlar
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 Konular Giriş Adlar(Names) Değişkenler(Variables) Bağlama Kavramı(The
Detaylı3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler
Veri Tanımları ve Mantıksal Đşlemler Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Kullanılacak bütün değişkenlerin kullanılmadan önce C derleyicisine bildirilmeleri gerekir.
DetaylıDeğişkenler tanımlanırken onlara ne tür veriler atanabileceği de belirtilir. Temel veri türleri oldukça azdır:
C VERİ TÜRLERİ BASİT VERİ TÜRLERİ Değişkenler, program içinde üzerinde işlem yapılan, veri saklanan ve durumlarına göre programın akışı sağlanan nesnelerdir. C de bir değişken kullanılmadan önce tanımlanmalıdır.
DetaylıVeri Yapıları. Amaçlar: Temel Veri Yapılarını Tanımlamalı Veri Yapılarını Veri Modeli ve Türlerini Öğreneceksiniz. İçindekiler:
Veri Yapıları Amaçlar: Temel Veri Yapılarını Tanımlamalı Veri Yapılarını Veri Modeli ve Türlerini Öğreneceksiniz İçindekiler: Giriş Temel Veri Yapıları Tanımlamalı Veri Yapıları Veri Modeli ve Türleri
Detaylı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ıBilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN
Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı Öğr. Gör. Cansu AYVAZ GÜVEN NESNE TABANLI PROGRAMLAMA Java Değişkenler ve Veri Tipleri Operatörler JAVA Java Java SUN bilgisayar şirketince
DetaylıBLM-111 PROGRAMLAMA DİLLERİ I. Ders-8 Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri
BLM-111 PROGRAMLAMA DİLLERİ I Ders-8 Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Temel Veri Tipleri C dilinde
DetaylıYZM 2105 Nesneye Yönelik Programlama
YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 2 C# Programlama Dili Elemanları Bu bölümde;
DetaylıGörsel Programlama DERS 03. Görsel Programlama - Ders03/ 1
Görsel Programlama DERS 03 Görsel Programlama - Ders03/ 1 Java Dili, Veri Tipleri ve Operatörleri İlkel(primitive) Veri Tipleri İLKEL TİP boolean byte short int long float double char void BOYUTU 1 bit
DetaylıNesne Tabanlı Programlama
Nesne Tabanlı Programlama Ders Notu - 1 (Değerler, Değişkenler, İşleçler, Tip Dönüşümleri, Mantıksal Operatörler) Dicle Üniversitesi Mühendislik Fakültesi Elektrik Elektronik Mühendisliği Bölümü 1 Değerler
DetaylıDeğişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while
Değişkenler Değişkenler bir bilginin bellekteki konumunu temsil eden sembolik isimlerdir. Bilgisayarda hemen hemen tüm işlemler bellekte yapılır. Program çalıştırıldığında değişken ve bu değişkenin türüne
DetaylıNesne Tabanlı Programlama
Nesne Tabanlı Programlama Ders Notu - 1 Dicle Üniversitesi Mühendislik Fakültesi Elektrik Elektronik Mühendisliği Bölümü 1 Değerler ve Değişkenler Values & Variables 2 1 Değişkenlerin Özellikleri Tipi
Detaylı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ıBMT 101 Algoritma ve Programlama I 6. Hafta. Yük. Müh. Köksal Gündoğdu 1
BMT 101 Algoritma ve Programlama I 6. Hafta Yük. Müh. Köksal Gündoğdu 1 C++ Veri Tipleri Yük. Müh. Köksal Gündoğdu 2 Veri Tipleri Tam sayı ve Ondalık sayı veri tipleri Veri Tipi Alt Sınıf Üst Sınıf Duyarlı
DetaylıBMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler
BMÜ-111 Algoritma ve Programlama Bölüm 5 Tek Boyutlu Diziler Yrd. Doç. Dr. İlhan AYDIN 1 Problem 100 adet sayı okumak istediğimizi düşünelim. Bu sayıların ortalaması hesaplanacak ve sayıların kaç tanesinin
Detaylıİ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ıUzaktan Eğitim Uygulama ve Araştırma Merkezi
JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Diziler Dizi Tanımlama ve İlk Değer Atama Dizi Elemanlarının Kullanılması Dizi İşlemleri Java da Diziler JAVA DA DİZİLER 4 Dizi; tek bir veri tipinde,
DetaylıTemel Kavramlar BBS-515 Nesneye Yönelik Programlama
Temel Kavramlar BBS-515 Nesneye Yönelik Programlama Ders #2 (2 Kasım 2009) İçerikç Geçen hafta: Nesneye yönelik programlama Ne demektir, nasıl ortaya çıkmıştır? Nesneye yönelik dil olarak JAVA ve ilişkili
DetaylıBÖLÜM 11: YAPISAL VERİ TİPLERİ
BÖLÜM 11: YAPISAL VERİ TİPLERİ I. STRUCTURE-YAPI (struct) TİPİ DEĞİŞKENLER Birbiriyle bağlantılı ve bir küme teşkil eden değerler bir tek değişkenin çatısı altında bu değişkenin alt alanları olarak tanımlanabilirler.
DetaylıALGORİTMA VE PROGRAMLAMA II
ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Bellek ve Adresleme İşaretçi Kavramı
DetaylıHSancak Nesne Tabanlı Programlama I Ders Notları
SABİTLER VE DEĞİŞKENLER Değişken, verilerin bellekte geçici olarak kaydedilmesini ve gerektiğinde kullanılmasını sağlayan değerdir. Nesne tabanlı programlama dilinde değişken kullanımı diğer programlama
Detaylı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ıJAVADA DİZİ İŞLEMLERİ
JAVADA DİZİ İŞLEMLERİ Javada diziler nesnedirler, cdeki gibi hafızada yer kaplayan pointer değillerdir. Javada diziler, cye göre daha güvenilirdir. Dizilerin elemanlarına gelişigüzel değerler atayamazsınız.
DetaylıÖ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ıİç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ıProgramlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1
Programlama Dilleri C Dili Programlama Dilleri-ders02/ 1 Değişkenler, Sabitler ve Operatörler Değişkenler (variables) bellekte bilginin saklandığı gözlere verilen simgesel isimlerdir. Sabitler (constants)
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 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ıC Programlama Dilinde Değişkenler
C Programlama Dilinde Değişkenler Değişkenler bir programlama dilinin en önemli bileşenlerindendir. En basit bir aritmetik işlemin bile kullanıcının girdiği değerleri saklamak için çeşitlik bellek alanlarına
DetaylıBĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ http://www.cplusplus.com/doc/tutorial/ Published by Juan Soulié
BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ http://www.cplusplus.com/doc/tutorial/ Published by Juan Soulié DERSİN WEB SİTESİ: http://nucleus.istanbul.edu.tr/~bilprog2/ DeğiĢkenler ve Data Türleri
DetaylıDeğişkenler, içerisinde tek bir değer tutabilen yapılardır. Örneğin haftanın günlerini değişkenlerde tutmak istersek, her bir gün adı için bir
DİZİLER (ARRAYS) Değişkenler, içerisinde tek bir değer tutabilen yapılardır. Örneğin haftanın günlerini değişkenlerde tutmak istersek, her bir gün adı için bir değişken tanımlamak gereklidir. string gun1,
DetaylıBLM 112- Programlama Dilleri II. Hafta 4 İşaretçiler (Pointers)
1 BLM 112- Programlama Dilleri II Hafta 4 İşaretçiler (Pointers) Dr. Öğr. Üyesi Caner Özcan İyilik insanları birbirine bağlayan altın zincirdir. ~Goethe Hafıza Yapısı 2 Bir değişken tanımlandığında arka
DetaylıNESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2
NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2 JAVA DA PROGRAM DENETİMİ VE OPERATÖRLER Java programlama dilinde temel tipleri ve nesneleri yönlendirmek ve değiştirmek için operatörler kullanılır. Atamalar sağ taraftaki
DetaylıDiziler İndisli Değişkenler
Diziler İndisli Değişkenler Aynı tür bilgileri (öğrenci isimleri, şehir isimleri, kapı numaraları, fakülteler vbg.) bellekte tutmak için kullanabileceğimiz listelere dizi adı verilir. Dizi kullanmanın
Detaylı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ıİ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ıDers 4: Diziler (Arrays( Arrays) barisgokce.com
Ders 4: Diziler (Arrays( Arrays) Hazırlayan : Öğr. Grv.. Barış GÖKÇE Đletişim im : www.barisgokce barisgokce.com Diziler Aynı tipteki bir veri gurubunun bir değişken içinde saklanmasıdır. Veriler Hafızada
DetaylıProgramlama Dilleri 3
Diziler (Arrays) 1 Dizi Kavramı Bellekte ard arda yer alan aynı türden nesneler kümesine dizi (array) denilir. Bir dizi içerisindeki bütün elemanlara aynı isimle ulaşılır. Yani dizideki bütün elemanların
DetaylıMühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler
Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler C Programlama Dr. Serkan DİŞLİTAŞ 3.1. Sabitler Sabitler, tanımlanmasıyla birlikte program içerisinde
DetaylıC++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak: Published by Juan Soulié
Kullanılacak kaynak: http://www.cplusplus.com/doc/tutorial/ Published by Juan Soulié C++ Nedir? Arttırılmış C demektir ve C dilinin geliştirilmiş halini yansıtır. C++ öğrenmeden önce herhangi bir programlama
DetaylıNesne Yönelimli Programlama
1 Nesne Yönelimli Programlama Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu dersin sunumları, Java Programlama Dili ve Yazılım Tasarımı, Altuğ B. Altıntaş, Papatya
DetaylıBİL1001 Bilgisayar Bilimlerine Giriş 1
DEÜ Bilgisayar Bilimleri Bölümü BİL1001 Bilgisayar Bilimlerine Giriş 1 Öğr. Gör. Dr. Alper VAHAPLAR 2017 Yaz Okulu Tekrarlı Yapılar Algoritmanın belirli bir kısmının, belirli kere ya da belirli durumlar
DetaylıNesne Yönelimli Programlama
1 Nesne Yönelimli Programlama Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Genel Bilgiler Ders konuları 1. Programlamaya Giriş 2. Program Denetimi ve Operatörler 3. Nesnelerin
DetaylıBTP 207 İNTERNET PROGRAMCILIĞI I. Ders 8
BTP 27 İNTERNET PROGRAMCILIĞI I Ders 8 Değişkenler 2 Tamsayı Değerler (Integer) Tamsayılar, tabanlı (decimal), 8 tabanlı (octal) veya 6 tabanlı (hexadecimal) olabilir. 8 tabanındaki sayıları belirtmek
DetaylıMAK 1005 Bilgisayar Programlamaya Giriş C DİLİNE GİRİŞ. Prof. Dr. Necmettin Kaya
MAK 1005 Bilgisayar Programlamaya Giriş C DİLİNE GİRİŞ Prof. Dr. Necmettin Kaya C PROGRAMLAMA DİLİ ÖZELLİKLERİ C programlama dili, 1972 yılında Bell Labortuvarı nda Dennis Ritchie tarafından geliştirilmiştir.
DetaylıGiriş. ENF102 Jeoloji
DİZİLER Arrays Giriş Aynı isim altında, aynı türde birden fazla değer tutmak için kullanılan veri yapılarıdır (Data Structure). Dizi bir kümedir; aynı türde verilere tek bir isimle erişmek için kullanılır.
DetaylıDiziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU
Diziler Yrd.Doç.Dr.Bülent ÇOBANOĞLU Dizi (Array) Nedir? Bellekte sürekli yer kaplayan artarda sıralanmış aynı türden verilerin oluşturduğu kümeye dizi (array) denir. Dizi, çok fazla miktardaki tek tip
DetaylıALGORİTMA VE PROGRAMLAMA I
ALGORİTMA VE PROGRAMLAMA I Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Diziler Dizi Nedir? Dizilerin Bildirimi
DetaylıHer veri tipine yetecek ve ancak o kadar anabellek alanı ayrılır. Programcı, ana bellekte ayrılacak adresin büyüklüğünü bilerek değişkenlerini
1 Veri Tipleri Bazı diller veri tiplerini önceden ayırır, bazıları ayırmaz. Teknik olarak, veri tipini önceden belirleyen diller, anabelleğe yerleşecek verileri, orada kapsayacakları alanlara göre gruplara
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 Chapter 6 Java: an Introduction to Computer Science & Programming - Walter Savitch 1 Genel Bakış Dizi: Hepsi aynı türde
DetaylıJava: printf() Metodu İle Çıktıyı Biçemleme
1 Java: printf() Metodu İle Çıktıyı Biçemleme PrintStream ve PrintWriter sınıflarının yapısı: java.io Class PrintStream java.lang.object java.io.outputstream java.io.filteroutputstream java.io.printstream
Detaylı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ıALGORİTMA VE PROGRAMLAMA II
ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Yapılar ve Birlikler enum Deyimi
Detaylı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ı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ıC PROGRAMLAMA D İ L İ
C PROGRAMLAMA DİLİ C Programlama Dilinin Temelleri C Programlama Dili'ni popüler kılan önemli nedenler aşağıda listelenmiştir: C, güçlü ve esnek bir dildir. C ile işletim sistemi veya derleyici yazabilir,
DetaylıPROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.
PROGRAMLAMAYA GİRİŞ Öğr. Gör. Ayhan KOÇ Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay., 2007 Algoritma ve Programlamaya Giriş, Ebubekir YAŞAR, Murathan Yay., 2011
DetaylıSınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0
Selçuk Üniversitesi, Mühendislik Fakültesi, Harita Mühendisliği Bölümü Bitirme Sınavı Test Soruları Adı soyadı : Öğrenci no : Sınav tarihi : 01.06.2017 Süre : 60 dak. 1. t değişkeni hakkında aşağıdakilerden
DetaylıYrd. Doç. Dr. Caner ÖZCAN
Yrd. Doç. Dr. Caner ÖZCAN Hafıza Yapısı Bir değişken tanımlandığında arka planda bilgisayarın hafızasında bir konuma yerleştirilir. Hafıza küçük hücrelerden oluşmuş bir blok olarak düşünülebilir. Bir değişken
DetaylıDizi türündeki referanslar, dizi nesnelerine bağlanmaktadır. Dizi referansları tanımlamak bu dizinin hemen kullanılacağı anlamına gelmez...
Javada Diziler Java da diziler nesnedir; içerisinde belirli sayıda eleman bulunur. Eğer bu sayı sıfır ise, dizi boş demektir. Dizinin içerisindeki elemanlara eksi olmayan bir tam sayı ile ifade edilen
DetaylıGenel Programlama II
Genel Programlama II 15.02.2011 1 Genel Programlama Tekrar Program : Belirli bir problemi çözmek için bir bilgisayar dili kullanılarak yazılmış deyimler dizisi. Önceki bölümde bir problemin çözümü ile
DetaylıD İ Z İ L E R A R R A Y S
D İ Z İ L E R A R R A Y S 1 Örneğin 120 adet öğrencinin adını klavyeden girip, daha sonra bunları ekrandan yazdıralım. Bunun için, her öğrenci için ayrı bir değişken tanımlanmalıdır. String ad1; String
DetaylıÖrnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf
İçindekiler 1. Giriş... 1 1.2. c++ Programı Yapısı... 2 1.3.Using Direktifi... 5 Bölüm 2. Veri türleri, değişken kavramı, sabit ve değişken bildirimleri ve c++ da kullanımı 7 2.1. Temel veri türleri...
DetaylıGörsel Programlama DERS 04. Görsel Programlama - Ders04/ 1
Görsel Programlama DERS 04 Görsel Programlama - Ders04/ 1 Diziler ve Kolleksiyonlar(Collections) Diziler aynı tipli değişkenleri tutmak için kullanılan veri yapılarıdır. Diziler sabit uzunlukludur. Birkez
DetaylıBİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER,
BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER, C++ İÇİN UFAK HATIRLATMALAR Değişken adları bir harf ile başlamalıdır. (a-z, A-Z). Değişken adı numara içerebilir.
Detaylı2 PYTHON A GIRIŞ 13 PyCharm İle Python Projesi Oluşturma 15 Projenin Çalıştırılması 18 İlk Python Programımız 19 Açıklama Satırları 21
İÇİNDEKİLER VII İÇİNDEKİLER 1 PYTHON 1 Neden Python? 2 Python Sürümleri 2 Python Kurulumu 3 Windows Üzerinde Python 3 Ubuntu Üzerinde Python 6 Komut Satırında Python Çalıştırma 6 Windows komut istemi üzerinde
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. Örneğin; bir öğrenci, sıra, çember, bir buton birer nesnedir. Bir
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 umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Fonksiyonlar Fonksiyonlar C de modüller Programlar kullanıcı tanımlı
DetaylıC Programlama Dilininin Basit Yapıları
Bölüm 2 C Programlama Dilininin Basit Yapıları İçindekiler 2.1 Sabitler ve Değişkenler......................... 13 2.2 Açıklamalar (Expresions)........................ 14 2.3 İfadeler (Statements) ve İfade
DetaylıDizi ( Array ) ve Dizgi ( String )
Java da Dizi ( Array ) ve Dizgi ( String ) Tanımlama BBS-515 Nesneye Yönelik Programlama Ders #6 (25 Kasım 2009) İçerikç Geçen ders: Kalıtım ( inheritance ) -- tekrar ziyaret Java da super kullanımı Java
DetaylıVisual Basic 6.0. Anadolu Üniversitesi Endüstri Mühendisliği Bölümü. Değişkenler ve Veri tipleri. Ders Notları
1 Anadolu Üniversitesi Endüstri Mühendisliği Bölümü Değişkenler ve Veri tipleri Visual Basic 6.0 Ders Notları Kaynak: İhsan Karagülle, Zeydin Pala, Visual Basic 6.0, Türkmen Kitabevi, 1999, Beyazıt İstanbul,
DetaylıFonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {
Fonksiyonlar Kendi içinde bağımsız olarak çalışabilen ve belli bir işlevi yerine getiren program modülleridir. C programları bu modüllerden (fonksiyonlar) oluşurlar. Fonksiyonların yazılmasındaki temel
DetaylıSınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD
Selçuk Üniversitesi, Mühendislik Fakültesi, Harita Mühendisliği Bölümü Yıliçi Sınavı Test Soruları Adı soyadı : Öğrenci no : Sınav tarihi : 13.04.2015 Süre : 60 dak. 1. Hangisi gerçek sayı değişmezi değildir?
DetaylıTemel Bilgisayar Bilimleri Ders Notu #4-2. kısım
Nisan 2009 9031150 - Temel Bilgisayar Bilimleri Ders Notu #4-2. kısım Referans: Bugün: 1. Ders Notları. Ders #4.1 Tekrar Dowhile ve for döngüleri Diziler Göstergeler 1. Tekrar for döngüleri Genel yazılımı
Detaylı2.2- DEĞİŞKENLER VE SABİTLER ÇALIŞMA YAPRAĞI
2.2 Değişkenler Ve Sabitler 2.2.1 Değişkenler Değişkenler bir programlama dilinde verilerin depolanma alanlarını temsil eder. Tanımlanan her değişkene bellek bölgesinden bir alan ayrılır. Bu bellek bölgesine
DetaylıBilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ
Ders 10 LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ LINUX de Programlama LINUX işletim sistemi zengin bir programlama ortamı sağlar. Kullanıcılara sistemi geliştirme olanağı sağlar.
DetaylıC# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ
C# Yazım Kuralları 1 İçindekiler C# Yazım Kuralları Veritipleri Değişkenler Operatörler Sınıflar Nesneler, Özellik, Metot ve Olay Bileşenler 2 C# yazım kuralları Deyimlerde büyük küçük harf yazıma uyulmalı
DetaylıDİZİLER 5/4/2010. ENF-102 Jeoloji Giriş. Tek Boyutlu Diziler. Tek Boyutlu Diziler. Örnek. Örnek
Giriş DİZİLER Arrays Aynı isim altında, aynı türde birden fazla değer tutmak için kullanılan veri yapılarıdır (Data Structure). Dizi bir kümedir; aynı türde verilere tek bir isimle erişmek için kullanılır.
Detaylı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ıYrd.Doç.Dr. Celal Murat KANDEMİR. Kodlama (Coding) : Bir nesneler kümesinin bir dizgi (bit dizisi) kümesi ile temsil edilmesidir.
Bilgisayar Mimarisi İkilik Kodlama ve Mantık Devreleri Yrd.Doç.Dr. Celal Murat KANDEMİR ESOGÜ Eğitim Fakültesi - BÖTE twitter.com/cmkandemir Kodlama Kodlama (Coding) : Bir nesneler kümesinin bir dizgi
DetaylıPHP, nesne-yönelimli (object-oriented) bir dil olduğu için, nesne oluşturma imkânına ve bunların kullanılmasını sağlayan metodlara da sahiptir.
PHP'nin Temelleri PHP Nedir? PHP, bir programlama dili olarak, değişkenler, değişkenlerin değerleriyle bir işlem yapmayı sağlayan işlemciler (operatörler), işlemcilerle oluşturulan deyimler ve nihayet
Detaylı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ı