(7) C#.NET PROGRAMLAMAYA GİRİŞ. M.İLKUÇAR - 1

Benzer belgeler
C#.NET ile PROGRAMLAMAYA GİRİŞ

7.1- Operatörler ve Giriş-Çıkış İşlemleri. M.İLKUÇAR - 1

JAVA DEĞİŞKEN VE OPERATÖRLER. M.İLKUÇAR - 1

7.1- C#.net Giriş Çıkış İşlemleri ve Visual Studio. M.İLKUÇAR - 1

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

/*int sayi1, sayi2,toplam=0;

8- PROGRAM YAPISAL KOMUTLARI ve. M.ilkucar MAKU MYO 1

KARAR YAPILARI. Acaba hangi yöne gitmeliyim? Oturduğun yerden kalkıp, kapıya varana kadar kaç kez karar verdiniz biliyor musunuz?

HSancak Nesne Tabanlı Programlama I Ders Notları

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach()

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak: Published by Juan Soulié

Giri. Program yazmaya balamadan önce

YZM 2105 Nesneye Yönelik Programlama

BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ Published by Juan Soulié

1 GİRİŞ 1 C# Hakkında Genel Bilgiler 1.Net Framework 1 CLR 2 CLR Ve CTS 2 Temel Sınıf Kütüphanesi 3 CIL 3 Algoritma Nedir? 4 Sözde Kod (Pseudocode) 5

Nesne Tabanlı Programlama

2 VISUAL STUDIO 2012 GELİŞTİRME ORTAMI

M.ilkucar MAKU MYO 1

Programlama Dilleri III 1

Karabük Üniversitesi, Mühendislik Fakültesi... WEB TEKNOLOJİLERİ

Görsel Programlama 1

C#(Sharp) Programlama Dili

Nesne Tabanlı Programlama

giriş program yapısı değişkenler metotlar class kontrol deyimleri döngü deyimleri diziler struct try. catch files GUI

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

Programlama Dilleri 3

HSancak Nesne Tabanlı Programlama I Ders Notları

while(), do-while(), for() M.İLKUÇAR 2010 MAKU-MYO

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Veri Tipleri Aşağıdaki programdaki 5 hatayı bulunuz.

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.2- DEĞİŞKENLER VE SABİTLER ÇALIŞMA YAPRAĞI

C# Çalışma Örnekleri

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

4. Bölüm Programlamaya Giriş

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

11- FONKSİYONLAR (FUNCTIONS)

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

BMT 101 Algoritma ve Programlama I 6. Hafta. Yük. Müh. Köksal Gündoğdu 1

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama

Java da İşleçler, Ders #3 (4 Kasım 2009)

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

İNTERNET TABANLI PROGRAMLAMA

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

PASCAL PROGRAMLAMA DİLİ YAPISI

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

Programlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER,

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

Bölüm 2 - C ile Programlamaya Giriş

Algoritma ve Programlama: Karar Yapıları ve Döngüler

DATA STRUCTURES. Part I C# Programlama Dili Temelleri

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

OPERATÖRLER Alıştırmalar

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

GÜZ YY. - MKT103 - GÖRSEL PROGRAMLAMA DERSİ - ARA SINAVI

C PROGRAMLAMA D İ L İ

ÜNİTE. NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA İÇİNDEKİLER HEDEFLER DEĞİŞKENLER VE VERİ TİPLERİ

BPR152-Algoritma ve Programlama II Uygulama -12

Programlamaya Giriş. Program : Belirli bir problemi çözmek için bir bilgisayar dili kullanılarak yazılmış deyimler dizisi.

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

BMT 106 Algoritma ve Programlama II Bahar Dönemi

BMT 101 Algoritma ve Programlama I 5. Hafta. Yük. Müh. Köksal Gündoğdu 1

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 8

işlemler bittikten sonra dosyaların kapatılması uygun olacaktır. Bunun için, fclose(fin);

// hataları işaret eden referans

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN

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

Programlama Dilleri 3

BBS515 Nesneye Yönelik Programlama. Ders 2 Zümra Kavafoğlu

Java da Program Denetimi ve Operatörler

Nesne Yönelimli Programlama

1 PROGRAMLAMAYA GİRİŞ

Akış Konrol Mekanizmaları

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

Microsoft Visual Studio. internetten temin edilebilir. yazılımının başlatılması

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

Programlama Dilleri 3

B02.6 Karar Verme, Eşitlik ve Bağıntı Operatörleri

HSancak Nesne Tabanlı Programlama I Ders Notları

Diziler İndisli Değişkenler

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

PROGRAMLAMAYA GİRİŞ DERS 2

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

Öğr. Gör. Musa AYDIN Fatih Sultan Mehmet Vakıf Üniversitesi

You're browsing: Bilişim Teknolojileri, Programlama Temelleri, C#» C# (C Sharp),Genel,Programlama Temelleri» C# Değişken Tanımlama ve Veri Türleri

Java da Program Denetimi ve Operatörler. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 2 1

Java Programlama Giriş

Karşılaştırma İşlemleri ve Koşullu İfadeler

Programlama Dilleri 3

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

Pascal Programlama Dili

Programlama Dillerinde Kullanılan Veri Tipleri

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-8 Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

2.3- OPERATÖRLER ÇALIŞMA YAPRAĞI

Transkript:

(7) C#.NET PROGRAMLAMAYA GİRİŞ M.İLKUÇAR - imuammer@yahoo.com 1

Neden C#.NET programlama dili? C, Java ailesinden bir programlama dilidir Platformdan (işletim sistemi-makine) bağımsız yazılım geliştirme Nesne tabanlı (OOP Object Orianted Programming) Console, GUI, Web (server side), uygulamaları oluşturabilirsiniz Kodları C ve Java ya çok benzediğinden bunlardan birini bilen çok kolay adapte olur. Yada da C# öğrenen bunları çok kolay öğrenir En popüler dillerden bir tanesidir Yeteri kadar kaynak bulabilirsiniz ( kitap, ders notu, program örneği vb. ) M.İLKUÇAR - imuammer@yahoo.com 2

C#.NET programlama dili C#.NET Console Uygulamalar Visual Application Grafik-Arabirim Uygulamalar Garphics User Interface (GUI) Web (C#.net aspx) Smart Device (Mobil telefon, PDA) M.İLKUÇAR - imuammer@yahoo.com 3

Platformdan (işlemci- işletim sistemi) bağımsız programlar Kaynak Kod Kaynak Kod Kaynak Kod Compiler Compiler Compiler Ara Dil Ara Dil Java Virtual Machine (JVM) (Java Sanal Makinesi).NET Framework (Sanal Makine) Makine Dili Makine Dili Makine Dili M.İLKUÇAR - imuammer@yahoo.com 4

.NET Mimarisi C# C++ Basic C# Compiler C++ Compiler Basic Compiler Common Intermediate Language (CIL ).NET e uygun dil CIL.NET Framework (Sanal Makine) 1010010100 (Makine Dili) M.İLKUÇAR - imuammer@yahoo.com 5

.Net Uygulamasının Çalışma Süreci: Compile Time: Yazmış olduğunuz uygulamanın CIL(Common Intermediate Language) çevrildiği zaman sürecidir. Her hangi bir dil de yazılmış.net uygulaması, her dile ait derleyiciler ile ortak bir dile CIL(Bytecode) çevrilir. Run Time: Uygulamanın çalıştığı süreçtir, Compile Time da oluşturulan ByteCode lar CLR(Common Language Runtime) ile satır satır yorumlanarak (Interpreter) makine diline çevrilir ve uygulamanın çalışması sağlanır http://www.yazilimakademi.com M.İLKUÇAR - imuammer@yahoo.com 6

C#.net Programlama dilinin genel yapısı using System; static void Main(string[] args) { int x = int.parse(console.readline() ); int y = int.parse(console.readline()); int z = x + y; Start x y z = x + y } Console.Write(z); z Stop M.İLKUÇAR - imuammer@yahoo.com 7

C#.net Programlama dilinin genel yapısı Start vize, final, ort Vize Notunu Giriniz vize Final notunu Giriniz final ort vize*0.2+final*0.8 Ortalama :, ort Stop M.İLKUÇAR - imuammer@yahoo.com 8

7.4 Değişken : program içerisinde değeri dinamik olarak değişebilen yapılardır. Belirli bir tipi vardır. Bu yüzden tanımlandığı tipteki verileri kabul eder. Sabit : program içerisinde değeri değişmeyen yapılardır. Belirli bir tipi vardır. Bu yüzden tanımlandığı tipteki verileri kabul eder. Değişken ve Sabit ismi vermek kuralları : 1- İngiliz alfabesindeki 26 harf, (0-9) rakamlar ve _ (alt tire) kullanılmalıdır. 2- Dilin kendi komutlarını (reserved word) değişken ismi olarak kullanılamaz. 3- ilk karakteri rakam olamaz 4- Harf, alt tire, rakamlar haricinde başka karakter kullanamaz. 5- en az 1 en çok 16383 karakter uzunluğunda olabilir M.İLKUÇAR - imuammer@yahoo.com 9

DOĞRU adi_soyadi vize1 _final devam x _ anastasmumsatsana YANLIŞ adi soyadi 1vize finalclass x+y @edu maku@gamil.com NOT: Değişken ismi verirken içinde tutacağı veriyi çağrıştıracak isim verilmesi önerilir. Örneğin: adi, soyadi, vize, maas, ortalama, toplam M.İLKUÇAR - imuammer@yahoo.com 10

7.5- Değişken ismi verirken Macar Metodu (Hungarian Notation-Medhodology) : Değişken ismi, değişkenin tipini ve içerisinde barındıracak bilgiyi çağrıştıracak şekilde verilmesidir. Örneğin; değişkende vize bilgisi tutulacaksa; vize değeri de 0 ile 100 arasında bir sayı olabileceği bellidir. O halde vize bilgisi için uygun değişken verme kuralı şöyle olmalıdır: Tutulacak veri muhtevası : vize bilgileri Tutulacak veri değeri : 0-100 arası tamsayı bir değer intvize şeklinde verilmesi uygundur. vize yerine int_vize veya intvize veya Vize_int cevap yerine char_cevap veya charcevap veya Cevap_char devam yerine bool_devam veya booldevam veya Devam_bool adi yerine string_adi veya stringadi veya Adi_string M.İLKUÇAR - imuammer@yahoo.com 11

C# Reserved Words abstract as base bool break byte case catch char checked class const continue decimal default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal is lock long namespace new null object operator out override params private protected public readonly ref return sbyte sealed short sizeof stackalloc static string struct switch this throw true try typeof uint ulong unchecked unsafe ushort using virtual void volatile while by descending from group into orderby select var where yield TRUE FALSE M.İLKUÇAR - imuammer@yahoo.com 12

7.6- C#. Net de kullanılan değişken ve sabit tipleri : Sayısal Alfa sayısal Mantıksal nesne Diğer Tamsayı Reel sayı byte sbyte short ushort int uint 128 64266 0-344 float double decimal long ulong 128.0 3.14 0.0-0.34 A baba 234 @98 3+4-5 string char bool Object DateTime A + @. 7 true false Button alic 234 03.11.2010 M.İLKUÇAR - imuammer@yahoo.com 13

7.6- C#. Net deki değişken tipleri : Veri tipi Byte uzunluğu.net veri tipi char 1 Char Herhangi bir ASCII karekterler Sınırları(alabileceği değerler) string - string Karakter veya karakter topluluğu (alfabetik ifadeler) bool 1 Boolean true, false byte 1 Byte (0-255) sbyte 1 Sbyte (-128 ile +127)) short 1 Int16 (-32.768 ile +32.767) ushort 2 Uint16 (0-65.535) int 2 Int32 (-2.147.483.647 ile 2.147.483.647) uint 4 Uint32 0 4.294.967.295 float 4 Single +/-1,5 *10-45 ile +/- 3.4 *10 38 double 8 Double +/- 0,5 *10-324 ile +/- 1.7 *10 308 decimal 8 Decimal Virgülden sonra 28 basamak hassasiyetinde long 8 Int64-9.223.372.036.854.775.808 ile 9.223.372.036.854.775.807 ulong 8 Uint64 0- f f f f f f f f f f f f f f f f ( 0-2 64 ) M.İLKUÇAR - imuammer@yahoo.com 14

7.7- C# da değişken tanımlama işlemi: int vize ; Bellek Modeli vize Değişkenin türü (tipi) Değişkenin adı int vize, final, odev, ortalama ; int vize=0, final=0, ortalama =0 ; NOT : Bir programda aynı isimde birden çok değişken veya sabit olamaz int vize; byte vize; // HATALI daha önce M.İLKUÇAR vize - imuammer@yahoo.com adında değişken tanımlanmış 15

Değişken tanımlama ve bellek modeli 7- PROGRAMLAMAYA GİRİŞ using System; namespace ornek1 { class Program { static void Main (string [ ] args ) { int vize = 70 ; int final = 80 ; double ort = vize *0.2 + final*0.8 ; string adi= Ali ; Değişkenlerin RAM daki durumu vize 70 final 80 ort 78 adi Ali } } } Açılan küme parantezi ( { ) kadar, kapanan küm parantezi ( } ) olmalı Küme parantezleri al alta gelmeli. M.İLKUÇAR - imuammer@yahoo.com 16

7.8- C# da değişken tanımlama örnekleri: bool cevap ; float buce, maas, gelir, gider, blanco; char devam= E ; string devam= E ; string adi, soyadi, yanit= E ; Object butce =null; Random r = new Random() ; DateTime tarih = DateTime.Now; int sayi = 0XFF ; // 0xff hexadecimal sayıdır ve onluk karşılığı 255 tir. M.İLKUÇAR - imuammer@yahoo.com 17

7.8- C# da SABİT tanımlama ve örnekleri: const float pisayisi = 3.14 ; const string mesaj = Devam Etmek İçin Bir Tuşa Basınız ; const char devam= E ; const string s= Bugün hava + (23+5) + derecedir ; // Hatalı çünkü bir işlem var const string adi; adi= Ali ; // hatalı çünkü sabit bir başlangıç değeri verilmeli // sonradan değeri değiştirilemez M.İLKUÇAR - imuammer@yahoo.com 18

NOT : C#, C, C++, Java gibi dillerde değişken ve fonksiyon (komut) tanımlamalarında BÜYÜK, küçük harf AYIRIMI vardır : Console.Write (); // console.write() ; veya Console.write () ; yanlış olacaktır float butce, Butce ; char devam= E, Devam= E ; string yanit= EVET, Yanit= EVET ; TextBox textbox1, textbox1 ; random r ; // YANLIŞTIR (Random olmalı) datetime tarih ; // YANLIŞTIR (DateTime olmalı) M.İLKUÇAR - imuammer@yahoo.com 19

7.9- Tip Dönüşümleri : veriler farklı tipteki değişkenlerden başka bir değişkene aktarılmak istenebilir. Bu durumda yeni gideceği değişkenin tipine uygun olarak tip dönüşümü yapılmalıdır. string vize= 70, final = 90 ; double ort = Convert.ToDouble (vize ) * 0.2 + Convert.ToDouble ( final ) *0.8 ; double ort = double.parse(vize) * 0.2 + double.parse ( final ) * 0.8; int x = int.parse( 245 ) ; int x = int.parse( 25+75 ) ; // HATA string notu = Convert.ToString( 65 ) ; M.İLKUÇAR - imuammer@yahoo.com 20

7.9- Tip Dönüşümleri : veriler farklı tipteki değişkenlerden başka bir değişkene aktarılmak istenebilir. Bu durumda yeni gideceği değişkenin tipine uygun olarak tip dönüşümü yapılmalıdır. double ort =70; string sonuc= ort.tostring() ; // sonuc = Convert.ToString(ort); string x = 657.ToString() ; string y = (3.14).ToString() ; M.İLKUÇAR - imuammer@yahoo.com 21

string sicaklik= Bugün Hava Sıcaklığı + 27.Tostring() + Derecedir ; string sicaklik= Bugün Hava Sıcaklığı + 27 + Derecedir ; 27 rakamı otomatik olarak kendinden önceki tip olan string e dönüştürülecektir. string sicaklik= Sıcaklık + 27 + 13 + derecedir ; // Sıcaklık 2713 dercedir string sicaklik= Sıcaklık + (27 + 13) + derecedir ; // Sıcaklık 40 dercedir M.İLKUÇAR - imuammer@yahoo.com 22

7.9- Taban Aritmetik li Tip Dönüşümleri string x = 182.ToString("X"); // B6 int y = int.parse( x, System.Globalization.NumberStyles.HexNumber); // 182 Convert.ToString ( sayi, taban) ; // sayi yi, taban a çevrilir Console.Write ( Convert.ToString (7, 2) ) ; // ( 0 1 1 1 ) 2 M.İLKUÇAR - imuammer@yahoo.com 23

7.10- Paketleme (BOXING) : 7- PROGRAMLAMAYA GİRİŞ int ort = (int) 3.14; // 3 olur int n= 5/ 2 ; double x= 5/ 2 ; // 2 olur // 2 olur double x= 5.0/ 2 ; // 2.5 olur double x= 5/ 2.0 ; // 2.5 olur Char c = (Char) 65 ; // c nin değeri A olur M.İLKUÇAR - imuammer@yahoo.com 24

7.11- Açıklama (Remark) Operatörü; 7- PROGRAMLAMAYA GİRİŞ // veya /*. */ Açıklama yamak için kullanılır. Komut olarak işlem görmez. int x= 5 ; // x değişkenine 5 aktarılır // int y= 7 ; /* */ int x = 5 ; int y = 5 +8 ; string s = Büyük beyinler fikirlerle ilgilenir. ; M.İLKUÇAR - imuammer@yahoo.com 25

7.11- OPERATÖRLER: 7- PROGRAMLAMAYA GİRİŞ Atama Aritmetik İlişkisel Mantıksal Bit Unary = ata (x=2;) += topla ata -= *= çarp ata /= %= >>= <<= + - * / % > >= < <= ==!= && and OR! Not & ve veya ~ değil ^ xor >> sağa kaydır << sola kaydır ++ -- M.İLKUÇAR - imuammer@yahoo.com 26

int x = 5 ; x += 4 ; // x 4 ekle. Yani x = x + 4; tür. x %=2 ; // x deki değer mod 2 yapılır ve sonuç x e atanır. Yani x = x %2; x >>=1 ; // x deki değerin tüm bitleri bir kez sağa kaydırılıp sonuç x e atanır. bool devam = true; string mail = milkucar@gmail.com ; char dogrumu = e ; if ( x>5 ).. ; // x 5 den büyük ise if ( x>5 && x <10 ).. ; // x 5 den VE 10 dan küçük ise if ( x>5 x <10 ).. ; // x 5 den VEYA 10 dan küçük ise if (!(x>5) ).. ; // x 5 den büyük DEĞİLSE if ( x!= null ).. ; // x null (hiç) den FARKLI ise int sayac = 0; sayac ++; ++ sayac ; int say = 0; say --; -- say ; M.İLKUÇAR - imuammer@yahoo.com 27

7.11- OPERATÖRLER: 7- PROGRAMLAMAYA GİRİŞ int x= 5 + 8; int k=5; x += 6; // x = x + 6; int y ; y++ ; ++y ; // y = y + 1; int m=k++; k m 6 5 int k=5; x++; ++x; x =x + 1; x += 1; //Hepsi aynı işi yapar int m=++k; k m 6 6 M.İLKUÇAR - imuammer@yahoo.com 28

OPERATÖRLER: if( x> 5) Console.Write( A ); if( x> 5 && x<= 7) Console.Write( B ); if( x!= 3) Console.Write( A ); if( harfnot== DC harfnot== DD ) Console.Write( şartlı ); M.İLKUÇAR - imuammer@yahoo.com 29

7.11- & (AND) bitsel operatörü doğruluk tablosu AND ( & ) Doğruluk tablosu & 0 1 0 0 0 1 0 1 int z = 5 & 3; // 1 olur 5 -> 0 1 0 1 3 -> 0 0 1 1 ---------------------- 0 0 0 1 -> (1) 10 Örn: x in üçüncü bitinin 1 olup olmadığını test etmek if( (x & 00100) > 0 ) ise x in üçüncü biti 1 dir x -> b b b b b b 3 -> 0 0 0 1 0 0 ------------------------ y -> b 1 ise y 1 olur, b 0 ise y 0 olur M.İLKUÇAR - imuammer@yahoo.com 30

7.11- ( OR ) bitsel operatörü doğruluk tablosu OR ( ) Doğruluk tablosu 0 1 0 0 1 1 1 1 int x = 5 ; İnt y = 3 ; int z = 5 3; // 7 olur 5 -> 0 1 0 1 3 -> 0 0 1 1 ---------------------- 0 1 1 1 -> 7 M.İLKUÇAR - imuammer@yahoo.com 31

7.11- ^ (XOR) bitsel operatörü doğruluk tablosu XOR (^ ) Doğruluk tablosu ^ 0 1 0 0 1 1 1 0 int x = 5 ; İnt y = 3 ; int z = 5 ^ 3; // 6 olur 5 -> 0 1 0 1 3 -> 0 0 1 1 ---------------------- 0 1 1 0 -> 6 M.İLKUÇAR - imuammer@yahoo.com 32

7.11- ~ (NOT) bitsel operatörü doğruluk tablosu Değil (~ ) Doğruluk tablosu ~ ~ 1 0 ~ 0 1 int x = 5 ; int y = ~ x ; 5 -> 0 1 0 1 ~ 5 -> 1 0 1 0 -> 10 M.İLKUÇAR - imuammer@yahoo.com 33

Örnek: Çıkarma işlemi kullanmadan x sayısından y sayısını çıkartınız? namespace ornek { class Program { static void Main(string[] args) { int x = 5; int y = 3; y = ~y; y += 1; // y ye 1 ekle int z = x + y; Console.Write( z ) ; // 2 yazar } } } // y nin bitlerni ters çevir (comploment) 3-> 0 1 1 1 0 0 bitleri ter çevir 1 1 ekle + --------------- 1 0 1 ( - ) işaretli 3 sayısı 5-> 1 0 1 1 0 1 + ------------ (0 1 0) 2 = ( 2 ) 10 M.İLKUÇAR - imuammer@yahoo.com 34

7.11- << Sola shift ( kaydırma) operatörleri int x = 3 ; int y = x << 2 ; // x, iki kez sola kaydır 3 -> 0 0 1 1 ------------------------------- 0 1 1 0 -> değeri 6, birinci sola kaydırma tüm bitler bir sola kayar 1 1 0 0 -> değeri 12, ikinci sola kaydırma Not : Her sola kaydırmada sayı 2 ile ÇARPILIR. Örn. 3 değeri bir kez sola kaydırılırsa 6 eder. İki kez sola kaydırılırsa 12 eder. M.İLKUÇAR - imuammer@yahoo.com 35

7.11- >> Sağa shift ( kaydırma) operatörleri int x = 8 ; int y = x >> 2 ; // x,i 2 kez sağa kaydır 8 -> 1 0 0 0 ------------------------------- 0 1 0 0 -> değeri 4, birinci sağa kaydırma. Tüm bitler bir sağa kayar 0 0 1 0 -> değeri 2, ikinci sağa kaydırma Not : Her sağa kaydırmada sayı 2 ile BÖLÜNÜR. Örn. 8 değeri bir kez sağa kaydırılırsa 4 eder. İki kez sağa kaydırılırsa 2 eder. M.İLKUÇAR - imuammer@yahoo.com 36

7.12- C#.NET I/O (Giriş / Çıkış Komutları- fonksiyonları) : (Input) Giriş (Output) Çıkış Klavyeden Dosyadan Ekran Dosya Read () ; ReadLine(); ReadKey(); Read () ; ReadLine(); Write () ; WriteLine(); Write () ; WriteLine(); M.İLKUÇAR - imuammer@yahoo.com 37

Program I/O (Giriş / Çıkış Komutları- fonksiyonları) : int x = Console. Read( ) ; // basılan tuşun ASCII kodu okur int y = Console. Read( ) ; // bilgi girişi beklenir girip Enter e basınca y ye ise Enter kodu(13) aktarılır string adi = Console. ReadLine ( ) ; // Enter tuşuna basılınca basılan tuşları programa gönderir Console.Write ( computer ) ; // computer yazar ve imleç aynı satırda bekler Console.Write ( 5 + 8 4/2-9) ; // önce işlemi yapar sonra yazar Console.Write ( Toplam = +5+8) ; // otomatik tip dönüşümü yaparak «Toplam=58» yazar Console.WriteLine ( Computer ) ; // computer yazar ve imleç bir alt satıra geçer M.İLKUÇAR - imuammer@yahoo.com 38

7.13. Formatlı Yazdırma : 7- PROGRAMLAMAYA GİRİŞ Console.Write( Sonuç : {0} dir., 5 ) ; Console.Write( {0} + {1} = {2}, 5, 8, 13 ) ; string ad = Console.ReadLine() ; // klavyeden Ali değeri girip Enter tuşuna basınız string soy= Console.ReadLine() ; // klavyeden Can değeri girip Enter tuşuna basınız int v= int.parse (Console.ReadLine() ); // klavyeden 70 değeri girip Enter tuşuna basınız Console.Write( Adı: {0} \n Soyadı: {1} \n Vize= {2}, ad, soy, v ) ; // \n satır başı yapar Ekran çıktısı Adı : Ali Soyadı : Can Vize : 70 M.İLKUÇAR - imuammer@yahoo.com 39

7.13. Formatlı Yazdırma : 7- PROGRAMLAMAYA GİRİŞ Console.Write( maaşı: {0,6} Yaşı:{1,4}, maas, yas ) ; Maaşı : 1560 Yaşı : 28 Console.Write( maaşı: {0,-6} Yaşı:{1,-4}, maas, yas ) ; Maaşı :1560 Yaşı : 28 Console.Write ( (2134567.679).ToString( ###,###.## ) ) ; // 2.134.567,68 M.İLKUÇAR - imuammer@yahoo.com 40

( \ ) White Space karakterleri- Kurtarma karakteri : Dilde özel anlamı olan karakterleri özel anlamdan çıkartır. Özel bir anlamı olmayan karakterlere de özel anlam kazandırır r -> r karakteri KARAKTER ANLAMI \n New line (Satır başı) \r Carridge Return (enter) \t Horizantal (yatay) tab \v Vertical(dikey) tab \f Form feed (yazıcıdan bir sayfa ) \a Alert ( buzzer dan beep sesi) \ \ \\ \ \r -> Enter \ -> kurtarma karakteri \\ -> \ karakteri M.İLKUÇAR - imuammer@yahoo.com 41

White Space karakterleri- Kurtarma karakteri ( \ ) ile @ kullanımı : string yol = C:\\tablo\\notes\\renew ; Sonuç C:\tablo\notes\renew string yol = @ C :\tablo\notes\renew ; Sonuç C:\tablo\notes\renew M.İLKUÇAR - imuammer@yahoo.com 42

White Space karakterleri- Kurtarma karakteri(\) ile @ kullanımı : string s = MAKU \nmyo\nbilgisayar ; MAKU MYO BILGISAYAR string k = @ windows\nsystem\nwin32 ; EKRANA NASIL YAZAR? windows\nsystem\nwin32 M.İLKUÇAR - imuammer@yahoo.com 43

M.İLKUÇAR - imuammer@yahoo.com 44

SORULAR 1-Aşağıdaki değişken tanımlamalarından hangisi geçerli bir tanımlamadır? A) ortalama not b) case c) 2vize d) @facebook e)_w 2- x = x + 1; dengi olan ifadesine aşağıdakilerden hangisi olabilir? I- ) x++ ; II-) ++x ; III-) x+=1; A) I -II b) I c) III d) I-II-III e) I-IV 3- int x =4, y= 3; int z =x & y; ise z nin değeri ne olur? a) 0 b) 1 c) 2 d) 3 e) 5 4- Aşağıdakilerden değişkenlerin hangisi macar yöntemine göre gösterilmiştir.? a) vize b) Vize_int c) vize_1 d) vint e) int Vize 5- string s =@ MYO\nBIL ; komutuna göre s değişkenin değeri ekrana yazdırılırsa nasıl bir çıktı veriri r? a) MYO\nBIL b) MYO c) @MYO d) @MYO\nBIL e) @MYO BIL @BIL BIL M.İLKUÇAR - imuammer@yahoo.com 45

SORULAR 6- int x = ( 5 >=k)? 8 : 9 ; komutuna göre k nın 5 değeri için x in değeri nasıl olur? A) x b) k c) 8 d) 9 e) 5 7- Console.Write ( Convert.ToString( 15,16) ) ; komutundan sonra ekranda ne yazar? A) f b) 15 c) 16 d) 15,16 e) I Hiçbiri 8- C#. Net için aşağıdakilerden hangisi doğrudur? I- Oluşturulan programın çalışması için bilgisayarda framework kurulu olmalı II- Nesne Tabanlı bir dildir III- Web uygulamaları geliştirmeye müsait bir dildir a)i b) I II c) II- III d) I-II-III e) I-III 9- string s = \\\\ ; komutuna göre s değişkenin değeri ekrana yazdırılırsa nasıl bir çıktı veriri r? a) \ b) \\ c) \\\\ d) \\\\ e) Hiçbir şey yazmaz 10- string s = Derinliği + 15 + 22 + m. ; komutuna göre s değişkenin değeri ekrana yazdırılırsa nasıl bir çıktı veriri r? a) Derinliği 1522 m. b) Derinliği 37. c) Hata veriri d) Hiçbir şey yazmaz e) null yazar M.İLKUÇAR - imuammer@yahoo.com 46

Yazılım Geliştirme Modelleri M.İLKUÇAR - imuammer@yahoo.com 47

Yazılım Geliştirme Modelleri Yazılım Geliştirme Modelleri Daha emniyetli yazılımların daha kısa sürede, daha az bütçeyle ve daha az hatayla geliştirilmesi için sürekli yeni teknolojiler ve modeller bulunmaya çalışılmaktadır. Bunlardan bazıları; I) Gelişigüzel Geliştirme II) Şelale (Waterfall) Modeli III) V- Modeli IV) Barok Modeli V) Helezonik (Spiral) Model VI) Arttırımsal (Incremental) Geliştirme Modeli VII) Döngüsel Model VIII) Çevik Yazılım Geliştirme Metodları M.İLKUÇAR - imuammer@yahoo.com 48

Yazılım Geliştirme Modelleri I) Gelişigüzel Geliştirme Gelişigüzel geliştirmede belirlenmiş bir model ya da yöntem bulunmaz. Genellikle kişiye bağlı yazılım geliştirme şeklinde yapılır ve bu yüzden yazılımın izlenebilirliği, bakım yapılabilirliği oldukça zordur. 1960'lı yıllarda uygulanan bu yöntem, genellikle basit programlama içeren ve çoğunlukla tek bir kişinin üretim yaptığı yöntemdir. II) Şelale (Waterfall) Modeli Şelale modeli yakın zamanlara kadar en popüler yazılım geliştirme modeli olarak görülmüştür. Geleneksel yazılım geliştirme modeli olarak da bilinir. Şelale modelinde yazılım, aşamalar en az birer kez tekrarlanarak geliştirilir. Çok iyi tanımlanmış ve üretimi az zaman gerektiren projeler için uygun bir model olmakla birlikte günümüzde kullanımı gittikçe azalmaktadır. III) V -Modeli Bu model popüler geliştirme modellerindendir. Sistemin iki bölümden oluşur ;tasarım ve kabul. Kabul bölümünde isteklere göre tasarım aşamasının uygun adımına gidilerek programda düzeltmeler yapılabilir. M.İLKUÇAR - imuammer@yahoo.com 49

Yazılım Geliştirme Modelleri- Şelale (Waterfall) Modeli M.İLKUÇAR - imuammer@yahoo.com 50 http://www.sulc3.com/model.html

Yazılım Geliştirme Modelleri- V Modeli Sistem Tasarımı Geçerlilik Sistem Entegrasyonu Sistem Gereklilikleri analizi ve tasarımı Geçerlilik Kabul testleri Genel tasarım (Arayüz tasarımı) Component (nesne) Testleri Yazılım gereksinimleri tasarımı Geçerlilik Birim (Unit) Testler Kaynak Kod M.İLKUÇAR - imuammer@yahoo.com 51

Yazılım Geliştirme Modelleri IV) Barok Modeli 1970'li yıllarda ortaya çıkan Barok modelinde, program yaşam döngüsü temel adımları doğrusal bir şekilde ele alınır ve geliştirilir. Aşamalar arasında gereken geri dönüşlerin nasıl yapılacağı tanımlı değildir. Bu modelde, dokümantasyon günümüz modellerinden farklı olarak ayrı bir süreç olarak ele alınır ve yazılımın geliştirme ve test faaliyetleri tamamlandıktan sonra yapılmasını öngörür. Günümüz yazılım geliştirme projelerinde uygulanan bir model olmaktan çıkmıştır. V) Helezonik (Spiral) Model Spiral yazılım geliştirme modeli temel olarak dört ana bölüm içerir. Bunlar, planlama, risk yönetimi, üretim ve kullanıcı değerlendirmeleri olarak tanımlanabilir. Planlama, üretilecek ara ürün için işin planlanması, amaç ve kısıt ve alternatiflerin belirlenmesi, bir önceki adımda üretilmiş olan ürün ile tümleştirme yapılması faaliyetlerini içerir. Risk yönetiminde, alternatifler değerlendirilir ve risk analizi yapılır. Üretim, planlanmış ara ürünün geliştirildiği aşamadır. Bu aşamadan sonra, kullanıcı değerlendirmesi kısmında, ara ürün hakkında kullanıcıların test ve değerlendirmeleri yapılır. M.İLKUÇAR - imuammer@yahoo.com 52

Yazılım Geliştirme Modelleri VI) Arttırımsal (Incremental) Geliştirme Modeli Artırımsal model, yazılımın küçük parçalara ayrılarak döngüsel olarak geliştirilmesi fikrine dayanır. Proje süresi, artırım (veya döngü) olarak tanımlanan küçük zaman dilimlerine bölünür. Proje bir çok döngünün gerçekleştirilmesi ile ilerler. Her döngünün sonunda, projeye ait planlanmış çıktılar elde edilir ve yazılıma yeni bir fonksiyonalite eklenir. Bu sayede yazılım artırımsal olarak geliştirilir. Projenin bir döngüsünde henüz tümleştirme süreci sonlanmamışken, diğer bir döngünün döngünün tasarım süreci başlayabilir. Dolayısı ile, bu model yazılım geliştirmenin doğasına daha uygun olarak görünmektedir. Her döngüde yeni bilgi ve tecrübeler edinilir ve bunlar projenin geliştirilmesi aşamasında çok değerli katkılar yapar. Artırımsal modelin en önemli avantajlarından biri, projenin ilk safhalarında elde edilen çıktıların projenin ilerleyen aşamalarında değişikliğe uğraması halinde bile büyük bir maliyete neden olmadan bu değişikliklerin yapılabilir olmasıdır. M.İLKUÇAR - imuammer@yahoo.com 53

Yazılım Geliştirme Modelleri VII) Döngüsel Model Döngüsel yazılım geliştirme modeli artırımsal model çok benzerlik taşır. Bazı kaynaklar döngü veya artırım içeren modelleri evrimsel model olarak nitelendirirler. Döngüsel yazılım geliştirme modeli, proje yaşam döngüsündeki tüm süreçleri içeren döngülerden oluşur. Artırımsal modelden farkı döngülerin içerdiği süreçlerdir. Artırımsal modelde, her döngüde tasarım, kodlama, test ve entegrasyon süreçleri bulunurken döngüsel modelde planlamadan başlayarak tüm proje süreçleri kapsanır. M.İLKUÇAR - imuammer@yahoo.com 54

Yazılım Geliştirme Modelleri VIII) Çevik Yazılım Geliştirme Metodları Çevik yazılım geliştirme metodları, hantal olduğu düşünülen yazılım geliştirme modellerine bir alternatif olarak 90 lı yılların ortalarında gelişmeye başlamıştır. Bu modelde döngüler içerir ve bu anlamda döngüsel modelle benzerlikler taşır. Ancak, çevik metodlarda döngüler çok kısa döngü sayısı da oldukça fazladır. Bu metodlar, proje içerisindeki her bir döngüde yazılımın bir sürümünü küçük bir proje olarak ele alır ve bunu tedarik edenin katılımı ile test eder. Her döngüde projenin öncelikleri yeniden belirlenir ve proje boyunca ortaya çıkan değişikliklere uyum sağlanır. Bu metodlar, doküman üretiminin yazılım geliştirme faaliyetlerini yavaşlattığına inandığından doküman üretme yerine yüz yüze görüşmelere ağırlık verir. Döngüler sonucunda ortaya çıkan yazılım birimleri tedarik makamı tarafından değerlendirilir ve yapılan her yorum yeni bir versiyon olarak yazılıma eklenir. M.İLKUÇAR - imuammer@yahoo.com 55