Professional Documents
Culture Documents
BLM TEKNOLOJLER
BAST KODLAR
482BK0122
Ankara, 2011
Bu modl, mesleki ve teknik eitim okul/kurumlarnda uygulanan ereve retim Programlarnda yer alan yeterlikleri kazandrmaya ynelik olarak rencilere rehberlik etmek amacyla hazrlanm bireysel renme materyalidir. Mill Eitim Bakanlnca cretsiz olarak verilmitir. PARA LE SATILMAZ.
NDEKLER
AIKLAMALAR ....................................................................................................................ii GR ....................................................................................................................................... 1 RENME FAALYET1 .................................................................................................... 2 1. DEKENLER VE SABTLER ........................................................................................ 2 1.1. Deikenler ................................................................................................................... 2 1.2. Deikenleri simlendirme Kurallar............................................................................. 4 1.3. Veri tipleri..................................................................................................................... 4 1.4. Sabitler .......................................................................................................................... 6 1.5. Atama lemi ................................................................................................................. 7 1.6. k lemleri............................................................................................................. 10 1.6.1. Bir metin ifadesini ekrana yazdrma.................................................................... 10 1.6.2. lk deer atanan deiken deerini ekrana yazdrma ........................................... 12 1.6.3. Formatl k ilemleri ........................................................................................ 16 1.7. Giri lemleri ............................................................................................................. 18 1.7.1. Klavyeden deikene deer atama....................................................................... 18 1.8. Giri-k ilemleri hata mesajlar ............................................................................. 21 1.9. Aklama Satrlar ....................................................................................................... 25 UYGULAMA FAALYET .............................................................................................. 26 LME VE DEERLENDRME .................................................................................... 27 RENME FAALYET2 .................................................................................................. 29 2. OPERATRLER ............................................................................................................... 29 2.1. Aritmetiksel Operatrler ............................................................................................. 29 2.1.1. Drt lem ............................................................................................................ 29 2.1.2. Mod Alma............................................................................................................ 32 2.2. likisel Operatrler..................................................................................................... 34 2.3. Mantksal Operatrler ................................................................................................. 36 2.4. lem ncelii ............................................................................................................. 37 UYGULAMA FAALYET .............................................................................................. 38 LME VE DEERLENDRME .................................................................................... 39 MODL DEERLENDRME .............................................................................................. 40 CEVAP ANAHTARLARI ..................................................................................................... 42 KAYNAKA ......................................................................................................................... 43
AIKLAMALAR AIKLAMALAR
KOD ALAN DAL/MESLEK MODLN ADI MODLN TANIMI SRE N KOUL YETERLK Basit kodlar yazmak Genel Ama Bu modl ile gerekli ortam salandnda temel programlamada basit kodlar yazabileceksiniz. MODLN AMACI Amalar 1. Deiken ve sabit kullanabileceksiniz. 2. Operatrleri kullanabileceksiniz. Ortam: Bilgisayar laboratuvar ETM RETM ORTAMLARI VE DONANIMLARI Donanm: Kt, kalem, ak diyagramlar ile ilgili panolar, bilgisayar, lisansl programlama yazlm Modl iinde yer alan her renme faaliyetinden sonra verilen lme aralar ile kendinizi deerlendireceksiniz. retmen modl sonunda lme arac (oktan semeli test, doru-yanl vb.) kullanarak modl uygulamalar ile kazandnz bilgi ve becerileri lerek sizi deerlendirecektir. 482BK0122 Biliim Teknolojileri Alan Ortak Basit Kodlar Bir programla dilinde kullanlan basit kodlara ait bilgilerin verildii renme materyalidir. 40/32
LME VE DEERLENDRME
ii
GR GR
Sevgili renci,
Okul yaantnzda reneceiniz her konu, yaptnz her uygulama ve tamamladnz her modl bilgi daarcnz gelitirecek ve ileride atlacanz i yaantnzda size baar olarak geri dnecektir. Eitim srecinde daha zverili alr ve alma disiplinini kazanrsanz; baarl olmamanz iin hibir neden yoktur. Gnmzde Windows tabanl grsel programlama dillerinin hzla gelimekte olduu ve kullanmnn olduka yaygnlat grlmektedir. Bu programlama dilleri ile sizler programlama mantn ve becerisini ok daha kolay kavrayacaksnz. Bu modlle, bir programlama dilinde kullanlabilecek basit kodlar ve uygulamalarn reneceksiniz. Bu modlde anlatlan konularn tmn rendiinizde, bir programlama dilinde kullanlan deiken ve sabit kavramlar, tanmlanma ve program iinde kullanm ekillerini reneceksiniz. Ayn zamanda program iinde tanmladmz deiken ve sabitler zerinde ilemler yapabilmek iin operatrlerin kullanmlarn kavram olacaksnz.
ARATIRMA
evrenizde deiken olarak nitelendirebileceiniz durumlar listeleyiniz. Bir gn iinde kullandnz nesneleri trlerine gre gruplandrnz.
1. DEKENLER VE SABTLER
1.1. Deikenler
Deikenler bir programlama dilinde verilerin depolanma alanlarn temsil eder. Tanmlanan her deikene bellek blgesinden bir alan ayrlr. Bu bellek blgesine okuma ve yazma ilemleri ise deiken ismi zerinden salanr. Genel olarak deikenler aadaki elikde tanmlanr. <veri tipi><deiken ad>; rnein; int i; Yukardaki rnekte bir int(say) veri tipinde bir deiken tanmlanmtr. Bylelikle bellek blgesinde bir veri saklamak ve ileride kullanmak zere 4 bytelk bir alan am bulunuyoruz. Program iinde bu bellek blgesine erimek iin deiken ismi olan i ifadesini kullanyoruz. rnein; int i; //i adnda bellekte 4 bytelk bir blge a.; i = 5; //i adnn temsil ettii bellek blgesine 5 deerini yaz.; Bir deikene deer atama ilemi tanmlarken yaplabilir. Bir deikene deer atama ilemi yukardaki rnekte olduu gibi program iinde herhangi bir satrda yaplabilir. Bir veri tipi altnda birden fazla isimle farkl deikenler tanmlanabilir.
rnek 1.1-1:
bool dogrumu = false; double yuzde = 98.32, ortalama = 35.32; char karakter = 'A';
Baz programlama dillerinde yerel bir deiken tanmlyorsak bu deikeni kullanmadan nce bir deer atamas yapmak zorundayz.
static void Main(string[] args) { int sayi; //sayi = 5; Console.WriteLine(sayi); Console.ReadKey(); }
Yukardaki kod blokunda sayi deikenine deer atamadnz iin hata verecektir (Use of unassigned local variable 'sayi'). nk sayi deikeni yerel bir deikendir. Eer //sayi = 5; aklama satrndaki // iaretlerini siler ve bu satr koda dhil ederseniz hatann ortadan kalktn grrsnz. Tanmlanan yerel deikenler sadece tanmlandklar bloktan eriebilir. Yaam dngleri sadece o blok olduu iin baka bir bloktan eriilemez. rnek 1.1-2:
namespace megepBilisim { class Program { static void Main(string[] args) { { //Birinci blok int a = 10; } {//kinci blok int a = 20; } Console.WriteLine(a); // a deikeni bu blokta tanmlanmad iin program hata verecektir. } } }
Yukardaki rnekte birinci ve ikinci blokta tanmlanan "a" isimli deikenler sadece kendi bloklarnda geerlidir. Main blounda kullanlmaya alld zaman program hata verecektir.
Standart yazm ekilleri: Camel notasyonunda isim kk harfle balar, eer deiken isminde birden fazla kelime geiyor ise isimdeki dier kelimeler byk harfle balar.
Camel Notasyonu: maas; maasMiktari; massMiktariAciklama;
Pascal Notasyonunda kelime byk harfle balar. Camel Notasyonunda da olduu gibi dier kelimelerde byk harfle balar.
Pascal Notasyonu: Maas(); MaasHesapla();
Bu notasyonlarn kullanm mecburi deildir. Fakat srekli olarak bu tr bir notasyona uyarak kodlarnz yazarsanz, kodlarnz daha anlalr bir hle girer.
Deikenler bellekte bulunan verilerdir. Bir deikeni kullandmz zaman o deikenin bellekte bulunduu yerdeki bilgiyi kullanrz. Deer tipleri bellein stack blgesinde saklanr ve veriyi direkt olarak bellek blgesinden alrken referans tipleri bellekte heap alannda saklanr. Yani referans tipleri iinde veri deil bellekteki heap alannn adres bilgisini tutarlar.
int, double, float gibi veri tipleri deer tiplerine rnek gsterilebilir. Herhangi bir snf tr ise referans tipine rnek gsterilebilir. Deer tipleri birbirine eitlenirken deikenin barndrd deer bir dier deikene kopyalanr. Bylece iki farkl bamsz deiken oluur. Referans tipleri ise eitleme srasnda deikenlerin tadklar veri deil heap blgesinde iaret ettikleri adres kopyalanr. Bylece eer iki referans deikeni birbirine eitledi isek ve daha sonra bunlardan birinde bulunan veriyi deitirdi ise otomatik olarak dier referans deikeninin deeri de deiir. nk adresde bulunan veri deiince bu adresi iaret eden iki deikende yeni veri bilgisine ular. Toplam 15 veri tipi vardr bunlardan 13 deer tipindedir, 2si ise referans tipindedir. Deer tipleri Ad sbyte short int long byte ushort uint ulong float double decimal bool char CTS Karl System.Byte System.Int16 System.Int32 System.Int64 System.Byte System.UInt16 System.UInt32 System.UInt64 System.Single Sytem.Double System.Decimal System.Boolean System.Char Karakterleri temsil eder Aklama 8 bit iaretli tam say 16 bit iaretli tam say 32 bit iaretli tam say 64 bit iaretli tam say 8 bit iaretsiz tam say 16 bit iaretsiz tam say 32 bit iaretsiz tam say 64 bit iaretsiz tam say 32 bit tek kayan say Max ve Min aralk yada deeri -128 : 127 -32.768 : 32.767 -2.147.483.648 : 2.147.483.647 -9.223.372.036.854.775.808 : 9.223.372.036.854.775.807 0,177083333 0 : 65.535 0 : 4.294.967.295 0 : 18.446.744.073.709.551.615 +yada - 1,5*10-45 : + ya da - 3,4*1038
64 bit ift kayan say +yada - 5*10-324 : + ya da - 1,7*10308 128 bit ondalkl say +yada - 1,5*10-28 : + ya da - 7,9*1028 true ya da false 16 Unicode karakterleri
Referans tipleri Ad object string CTS Karl System.Object System.String Aklama Btn veri trlerinin tredii kk eleman Unicode karakterlerinden oluan string
Tablo 1.2: Referans tip listesi
1.4. Sabitler
Program boyunca sabit kalacak veriler iin kullanlan tanmlamalardr. Bir sabit tanmlamak iin const anahtar kelimesini kullanrz. Sabitler tanmlanrken ilk deer atamas yaplmak zorundadr. Program boyunca sabit deeri deitirelemez.
Yukardaki tanmlanan sabitlerden birincisi doru ikincisi ise yanl bir tanmlamadr. nk sabitler tanmlanrken ilk deer atamas yaplmak zorundadr. Sabit kullanm hata mesajlar : The left-hand side of an assignment must be a variable, property or indexer: Tanmlanan sabit deikenin deeri deitirilmeye ald zaman oluaacak hata mesajdr. Bu yzden sabit deiken tanmlanrken atanan deer program boyunca sabit kalmaldr.
rnek 1.4-2:
const double pi = 3.14159265; pi = 2 * pi; //Burada pi deerini deitirdiiniz iin hata mesaj alrsnz.
A const field requires a value to be provided: Tanmlanan sabit deikene ilk deer atamas yaplmadysa oluan hata mesajdr. Dolaysyla sabit deiken tanmlanrken ilk deer atamas yaplmaldr.
rnek 1.4-3:
const int pi; // Burada pi sabitine deer atanmad iin hata mesaj alrsnz.
rnek 1.5-4: int x=0, y=0,toplam; x=y++; toplam = x + y; nce x yye eitlenir, daha sonra y artrlr. lem sonucu: x=0, y=1, toplam=1 olur. ++ deikenden nce kullanlrsa nce artrm yaplr daha sonra atama ilemi yaplr.
rnek 1.5-5: int x=0, y=0,toplam; x=++y; toplam = x + y; nce y artrlr daha sonra x yye eitlenir. lem sonucu: x=1, y=1, toplam=2 olur. -= operatr: Eitliin sandaki deeri eitliin solundaki deiken deerinden eksilterek tekrar eitliin solundaki deikene atar. rnek 1.5-6: int x=50, y=50, z=100; x -= 5;//x'den 5'i kar ve x'e eitle 2.yol x = x - 5 eklinde de yazlabilir. y -= 7;//y'den 7 yi kar ve y'ye eitle 2.yol y = y - 7 eklinde de yazlabilir. z -= x;//z'den x'i kar ve z'ye eitle 2.yol z = z - x eklinde de yazlabilir. lem sonucu: x=45 , y=43 , z=55 olur. Not: Bir bir azaltma ilemi iin x-=1 (veya x=x-1) yerine x-- ilemi kullanlabilir. rnek 1.5-7: int x=20, y=10,fark; x--;//x'i bir azalt y--;//y'yi bir azalt fark = x - y;//x ve y'yi kararak fark deikenine ata. lem sonucu: x=19 , y=9 , fark=10 olur.
-- deikenden sonra kullanlrsa nce atama ilemi yaplr, sonra azaltma yaplr.
rnek 1.5-8: int x=10, y=10,fark; x=y--; fark = x - y; nce x yye eitlenir, daha sonra y azalttrlr. lem sonucu: x=10, y=9 , fark=1 olur. -- deikenden nce kullanlrsa nce azaltma yaplr daha sonra atama ilemi yaplr.
rnek 1.5-9: int x = 10, y = 10, fark; x = --y; fark = x - y; nce y artrlr daha sonra x yye eitlenir. lem sonucu : x=9 , y=9 , fark=0 olur. *= operatr: Eitliin sandaki deerle eitliin solundaki deiken deeri arplp tekrar eitliin solundaki deikene atar. rnek 1.5-10: int x = 2, y = 3, z = 2; x *= 2;//x ile 2'i arp ve x'e eitle 2.yol x = x * 2 eklinde de yazlabilir. y *= 2;//y ile 2 yi arp ve y'ye eitle 2.yol y = y * 2 eklinde de yazlabilir. z *= x;//z ile x'i arp ve z'ye eitle 2.yol z = z * x eklinde de yazlabilir. lem sonucu: x=4 , y=6 , z=8 olur. /= operatr: Eitliin solundaki deiken deerini eitliin sandaki deere blerek tekrar eitliin solundaki deikene atar. rnek 1.5-11: int x = 4, y = 10, z = 64; x /= 2;//x'i 2'ye bl ve x'e eitle 2.yol x = x / 2 eklinde de yazlabilir. y /= 2;//y'yi 2'ye bl ve y'ye eitle 2.yol y = y / 2 eklinde de yazlabilir. z /= x;//z'yi x'e bl ve z'ye eitle 2.yol z = z / x eklinde de yazlabilir. lem sonucu: x=2, y=5, z=32 olur.
1.6. k lemleri
1.6.1. Bir Metin fadesini Ekrana Yazdrma
Bir metin ifadesini ekrana yazdrmak iin iki metot kullanlr: 1. Metot Console.Write(): Yazdrma ileminden sonra imle yazdrlan ifadenin yannda bekler. rnek 1.6-1:
static void Main(string[] args) { Console.Write("Merhaba Dnya"); Console.ReadKey();// Klavyeden bir tua baslana kadar bekle. }
kts:
Dikkat ederseniz imle yaznn sonunda beklemektedir. Bir baka metin yazdrmaya altmz zaman imlecin bulunduu yerden devam eder. rnek 1.6-2:
static void Main(string[] args) { Console.Write("Merhaba Dnya"); Console.Write("Gnaydn"); } Console.ReadKey();
kts:
10
2. Metot Console.WriteLine():Yazdrma ileminden sonra imle yazdrlan ifadenin alt satrnda bekler. rnek 1.6-3:
static void Main(string[] args) { Console.WriteLine("Merhaba Dnya"); Console.ReadKey(); }
kts:
rnek 1.6-4:
static void Main(string[] args) { Console.WriteLine("Merhaba Dnya"); Console.WriteLine("Gnaydn"); Console.ReadKey(); }
kts:
Program altrdmzda ikinci metin bir alt satra yazlmtr. k parametreleri: \n: Bir alt satra gemek iin kullanlr. \r: Paragraf ba yapmak iin kullanlr. rnek 1.6-5:
static void Main(string[] args) { Console.WriteLine("\n\nMerhaba Dnya"); Console.ReadKey(); }
11
kts:
Ekran ktsna baktmzda 2 tane \n kullandmz iin yazmz 2 satr aadan balamtr.
kts:
12
rnek 1.6-7:
static void Main(string[] args) { int x = 5; // ilk deeri tanmlanrken atadk. int y; y = 3; // ilk dereri tanmlandktan sonra atadk.
Console.WriteLine("x deikeninin deeri = {0}", x); // x'in deerini ssl parantez iinde belirtilen sfr (o) yazan yere yaz. Console.ReadKey(); }
kts:
{0} anlam: Virglden sonra tanmlanan ilk deiken deerini sfrn yerine yaznz. Eer ayn anda birden fazla deiken deeri ekrana yazdrlmak isteniyorsa {0},{1},{2} eklinde devam eder. Deikenler virglle ayrlarak tanmlanr. rnek 1.6-8:
static void Main(string[] args) { int x = 5; // ilk deeri tanmlanrken atadk. int y; y = 3; // ilk dereri tanmlandktan sonra atadk. y
kts:
Deiken deerlerini ekrana birlikte yazdrmann bir dier yoluda + iaretini kullanmaktr. + iareti ifadeleri birletirme ilemini gerekletirir.
13
rnek 1.6-9:
static void Main(string[] args) { int x = 5; // ilk deeri tanmlanrken atadk. int y; y = 3; // ilk dereri tanmlandktan sonra atadk.
kts:
Grld zere ssl parantez ile yaplan rnekle art iareti kullanlarak yaplan rnein ktlar ayndr. rnek 1.6-10:
static void Main(string[] args) { int x = 5; // ilk deeri tanmlanrken atadk. int y; y = 3; // ilk dereri tanmlandktan sonra atadk.
Console.WriteLine("x deikeninin deeri = " + x + " y deikeninin deeri =" + y); } Console.ReadKey();
kts:
14
rnek 1.6-11:
static void Main(string[] args) { string ad = "Sleyman";//lk deer tanmlanrken atand. string soyad; soyad = "GRHAN"; //lk deeri tanmladktan sonra atadk. Console.WriteLine(ad + " " + soyad); Console.ReadKey(); }
rnek 1.6-12:
static void Main(string[] args) { int x = 5; // ilk deeri tanmlanrken atadk. int y; y = 3; // ilk dereri tanmlandktan sonra atadk.
kts:
Yapmak istediimiz ilem aslnda x ve y deiken deerlerini toplayp ekrana yazdrmakt. Fakat + iaretinin buradaki grevi ifadeleri birletirmek olduundan x ve y deiken deerlerini yan yana yazarak yanl sonu retmitir. rnek 1.6-13:
static void Main(string[] args) { int x = 5; // ilk deeri tanmlanrken atadk. int y; y = 3; // ilk dereri tanmlandktan sonra atadk.
15
Console.WriteLine("x + y toplam = " + (x + y)); // x + y ilemini parantez iine alrsak + iareti toplama ilemini gerekletirecektir. Console.ReadKey(); }
kts:
parantez iine alnca doru sonu elde edilmitir. Kod satrmz Console.WriteLine("x + y toplam = {0}", x + y); eklinde de yazsaydk ayn sonucu elde ederdik.
16
Formatl yazmda kullanlan parametrelerin aklamas: C: Sayy para birimi eklinde gsterir. D: Tek kullanldnda bir anlam ifade etmez. Yanna say yazlarak kullanlr. Format alnacak saynn basamak deeri yannda yazlan saydan kkse arta kalan deer kadar yanna sfr eklenir. E: Sayy 10 zeri eklinde gsterir. F: Saylarn virglden sonraki basamak says ayarlamada kullanlr. N: Sayy binlik basamaklara ayrarak yazar. X: Sayy hexdecimal(16' lk say sistemi) olarak yazar. # iareti: Formatl yazmda her bir say iin # iaretini kullanabiliriz. rnek 1.6-14:
static void Main(string[] args) { Console.Write("{0:(###) ### ## ##}", 2123552154); Console.ReadKey(); }
kts:
Tarih formatlama Karakter d D t T f F g G M r s sim Ksa Tarih Uzun Tarih Ksa Saat Uzun Saat Tam Tarih ve Saat Tam Tarih ve Uzun Saat Varsaylan Tarih ve Saat Varsaylan Tarih ve Uzun Saat Gn ve Ay RFC1123 Tarih Metni Sortable Tarih Metni 17 rnek(DateTime.Now) iin) 01.04.2005 01 nisan 2005 Cuma 20:24 20:24:27 01 Nisan 2005 Cuma 20:24 01 Nisan 2005 Cuma 20:24:27 01.04.2005 20:24 01.04.2005 20:24:27 01 Nisan Fri, 01 Apr 2005 20:24:27 GMT 2005-04-01 20:24:27
u U
smi
Gn Gn smi Tam Gn smi Saat Saat(24 Saat) Dakika 00-59 Ay 01-12 Ay smi Tam Ay smi Yl, Son ki Karakter Yl Ayrc Ayrc
rnek
Console.Write("{0:dd}", DateTime.Now); Console.Write("{0:ddd}", DateTime.Now); Console.Write("{0:dddd}", DateTime.Now); Console.Write("{0:hh}", DateTime.Now); Console.Write("{0:HH}", DateTime.Now); Console.Write("{0:mm}", DateTime.Now); Console.Write("{0:MM}", DateTime.Now); Console.Write("{0:MMM}", DateTime.Now); Console.Write("{0:MMMM}", DateTime.Now); Console.Write("{0:yy}", DateTime.Now); Console.Write("{0:yyyy}", DateTime.Now); Console.Write("{0:hh:mm:ss}", DateTime.Now); Console.Write("{0:dd/MM/yyyy}", DateTime.Now);
rnek kts
01 Cum Cuma 08 20 53 04 Nis Nisan 05 2005 08:53:56 01/04/2005
18
Console.ReadKey(); }
kts:
Read() metoduyla klavyeden istediiniz kadar deer okutabiliriz, ama geriye sadece ilk karakterin ascii kod karln dndrecektir. Burda dikkat etmemiz gereken bir baka nokta ise Read() metodu geriye tam say bir deer dndrd iin atamay tam say tipinde bir deikene yapmalyz. Aksi hlde hata mesaj alrz ( Cannot implicitly convert type 'int' to 'string') . Console.ReadLine(): Console snfnn ReadLine() metodu kullancnn klavyeden bir deer girmesini salar ve bu deeri metin(string) bir ifade olarak geri dndrr. rnek 1.7-2:
static void Main(string[] args) { string x; Console.Write("Adnz giriniz: "); x = Console.ReadLine(); Console.WriteLine("Merhaba {0} ", x); Console.ReadKey(); }
kts:
ReadLine() metodu ile geri dndrlen deer metin(string) tipindedir. Dolaysyla okunan deeri metin(string) tipinde bir deikene atamalyz. Eer ki matematiksel bir ilem yaplacaksa deeri saysal ifadeye evirmemiz gerekmetedir. Bu ilem iin Convert snf veya veri trlerinin Parse zelliinden faydalnr.
19
rnek 1.7-3:
static void Main(string[] args) { string x, y; Console.Write("1. Sayy Giriniz: "); x = Console.ReadLine(); Console.Write("2. Sayy Giriniz: "); y = Console.ReadLine(); Console.WriteLine("{0} + {1} = {2} ", x, y, (x+y)); Console.ReadKey(); }
kts:
Grld zere string ifadeler zerinde matematiksel ilemler yapamyoruz. Matematiksel ilem yapacaksak deikenimizin tipini saysal ifadeye evirmeliyiz. rnek 1.7-4:
static void Main(string[] args) { string x, y; Console.Write("1. Sayy Giriniz: "); x = Console.ReadLine(); Console.Write("2. Sayy Giriniz: "); y = Console.ReadLine(); Console.WriteLine("{0} + {1} = {2} ", x, y, (Convert.ToInt16(x)+ Convert.ToInt16(y))); Console.ReadKey(); }
kts:
20
Programda istenilen say yerine string bir ifade girdiimiz zaman ekran kts aadaki gibi olacaktr. String ifade int tipine evrilmede zorlanlacandan program duracaktr. Giri dizesinin doru olmadna dair bir hata verecektir (Input string was not in a corrent format.) .
21
rnek 1.8-2:
static void Main(string[] args) { int x, y; Console.Write("1. Sayy Giriniz: "); x = Convert.ToInt16(Console.ReadLine()); Console.Write("2. Sayy Giriniz: "); y = Convert.ToInt16(Console.ReadLine()); Console.WriteLine("{0} / {1} = {2}", x, y, x / y); Console.ReadKey(); }
Girilen saylardan biri sfr olduu zaman programmz sfra blme hatasyla karlaacandan dolay duracaktr (Attempted to divide by zero) .
Yukardaki kodlarda da grld gibi program esnasnda kullanclar tarafndan yaplan hatal giriler programn hatayla karlamasna ve durmasna sebep olmaktadr. Biz bu hatalar program iinde nasl yakalarz ve kullancya hata hakknda nasl mesaj veririz buna bakalm. .Net programclkta biz bu tr hatalara istisnalar(Exception) diyoruz. stisnalar, programmzn alma zamannda yani program alrken ortaya kan olaan d durumlardr. .NET ortamnda her ey gibi istisnalar da snflar kullanlarak oluturulmakta ve tm istisnalar temel System.Exception nesnesinden tretilmektedir. 22
stisnalar program esnasnda yakalamak ve kullancya hata mesajn vermek iin try{} catch{} finally{} bloklarn kullanyoruz. try{} bloku: stisnann kmas muhtemel kodlarn yazld bloktur. catch{} bloku: Oluan istisnann yakaland ve kullancya sunulduu bloktur. finally{} bloku: Try bloku iinde hata olsa da olmasa da almasn istediimiz kadolarn yazld bloktur. Finally blou genellikle baz kaynaklar serbest brakmak iin kullanlr. Kullanlmas istee bal bir bloktur. En sk kullanld yerler ak olan veri taban balantlarnn program krlsa da krlmasa da kapatlmas durumlardr. rnek 1.8-3:
static void Main(string[] args) { int x, y; Console.Write("1. Sayy Giriniz: "); x = Convert.ToInt16(Console.ReadLine()); Console.Write("2. Sayy Giriniz: "); y = Convert.ToInt16(Console.ReadLine()); try { Console.WriteLine("{0} / {1} = {2}", x, y, x / y); } catch (Exception e) { Console.WriteLine("Hata Olutu : {0}", e); } finally { Console.WriteLine("yi Gnler"); } Console.ReadKey(); }
Programmz altrp aadaki gibi deerleri girdiimiz zaman herhangi bir hatayla karlalmadndan istediimiz sonucu retecektir.
Fakat prgorammza aadaki deerleri girdiimiz zaman hatayla karlalacak ve programmz olduu yerde durup catch{} blokuna atlayacak ve buradan almaya devam edecektir.
23
Dikkat ederseniz her iki durumda da finally bloku iine yazdmz kodlar altrlmaktadr. rnek 1.8-4:
static void Main(string[] args) { byte x ; try { Console.Write("0-255 Arasnda Bir Sayy Giriniz: "); x = Convert.ToByte(Console.ReadLine()); Console.WriteLine("Doru Deer Girdiniz"); } catch (Exception e) { Console.WriteLine("Yanl Deer Girdiniz"); Console.WriteLine("Hata Olutu : {0}", e); } finally { Console.WriteLine("yi Gnler"); } Console.ReadKey(); }
24
Eer bizden istenildii gibi 0-255 aras bir deer girersek programmz herhengi bir hatayla karlamayaca iin try bloku iindeki tm kodlar icra edilip finally blouna atlar ve almasna ordan devam eder. Yukardaki ekran ktsnda grld gibi
Fakat istenilen deer dnda bir deer girdiimiz zaman program hatayla karlaacandan hatann olutuu satrda program durdurulur ve catch blokuna atlanr ve almasna ordan devam eder. Yukardaki ekran ktsnda grld zere hata x = Convert.ToByte(Console.ReadLine()); satrnda olutuundan bir sonraki satr icra edilmeden catch blokuna atlanm ve program buradan devam etmitir.
// karakterlerinden sonra gelen ve satrn sonuna kadar olan szckler yorum satrlardr ve programlama dili derleyicisi tarafndan grnmez. Ayn zamanda birden fazla satra yorum eklemek istiyorsak /* */ karakterleri arasna yorum yazarz.
static void Main(string[] args) { /* Bu Satr ekrana Merhaba Dnya Yazar. Bu Ksm derleyici tarafndan yok saylr. */ Console.Write("Merhaba Dnya"); }
25
26
1.
Aadaki deiken isimlerinden hangisi hataldr? A) C) ogrenciNo ogrenci_soyad B) OgrenciAd D) ogrenci sinif
2.
3.
8 bit iaretsiz tam say tipi aadakilerden hangisidir? A) byte B) int C) long D) short
4.
Program boyunca sabit kalacak veriyi hangi kelime ile tanmlarz? A) float B) double C) bool D) const
5.
Aadaki kullanmlardan hangisi ile nce arttrma ilemi yaplp daha sonra atama ilemi yaplr? A) ++a B) a++ C) +a D) a+
6.
7.
27
8.
Bir metin ifadesini ekrana yazdrmak iin ......................... veya ....................... metodunu kullanrz. Metni bir alt satrdan balayarak yazdrmak iin .. parametresini kullanrz. Muhtemel istisna olumasn dndmz kodlar ........................... bloklar arasna alrz.
9. 10.
DEERLENDRME Cevaplarnz cevap anahtaryla karlatrnz. Yanl cevap verdiiniz ya da cevap verirken tereddt ettiiniz sorularla ilgili konular faaliyete geri dnerek tekrarlaynz. Cevaplarnzn tm doru ise bir sonraki renme faaliyetine geiniz.
28
ARATIRMA
Matematik dersinde kullanlan ilem ncelii kurallarn liste hlinde hazrlaynz. ncelikle kendinize bir hedef belirleyiniz. Bu hedefe ulamak iin gerekli olan tm artlar sralaynz. Hangi atlar gerekletirdiinizde hedefinize ulaabileceinizi iaretleyiniz.
2. OPERATRLER
Programlama dillerinde tanmlanm sabit ve deikenler zerinde ilemler yapmamz salayan karakter ya da karakter topluluklarna operatr denir. rnein; int sayi = 2 + 3; Yukardaki rnekte + ve = karakterleri birer operatrdr. + karakteri 2 ve 3 sabitlerini toplama yapyor ve = karakeri ise toplanan deeri tanmlanan deikene atama ilemini gerekletiriyor.
2.1.1. Drt lem Operatr + * / Aklama Toplama lemi karma lemi arpma lemi Blme lemi
29
rnek 2.1-1:
using System; namespace Operatorler { class DortIslem { static void Main(string[] args) { int x = 10; int y = 5; Console.WriteLine("x + y = {0}", x + y); Console.WriteLine("x - y = {0}", x - y); Console.WriteLine("x * y = {0}", x * y); Console.WriteLine("x / y = {0}", x / y); } } } Console.ReadKey();
kts:
rnek 2.1-2:
using System; namespace Operatorler { class DortIslem { static void Main(string[] args) { int x = 10; int y = 4; int intSonuc = x / y; float floatSonuc = x / y; double doubleSonuc = x / y; Console.WriteLine("x / y = {0}", intSonuc); Console.WriteLine("x / y = {0}", floatSonuc); Console.WriteLine("x / y = {0}", doubleSonuc); Console.ReadKey(); } } }
30
kts:
Aslnda sonu 2.5 olmas gerekirken 2 olarak kt. Bunun sebebi ise x ve y deikenleri int yani tam say tipinde tanmlandklarndan kan sonucun da kesirli ksm atlp tam say ksm alnmaktadr. rnek 2.1-3:
using System; namespace Operatorler { class DortIslem { static void Main(string[] args) { int x = 10; int y = 4; int sonuc; float floatSonuc; sonuc = x / y; Console.WriteLine("x / y = {0}", sonuc); floatSonuc = (float)x / y; Console.WriteLine("x / y = {0}", floatSonuc); floatSonuc = x / (float)y; Console.WriteLine("x / y = {0}", floatSonuc); floatSonuc = (float)x / (float)y; Console.WriteLine("x / y = {0}", floatSonuc); floatSonuc = (float)(x / y); Console.WriteLine("x / y = {0}", floatSonuc); } } } Console.ReadKey();
31
kts:
Birinci kt: sonuc = x / y = 10/4 bir tam say blme ilemi olduundan blmn tam say ksm alnmtr. kinci kt: floatSonuc = (float)x / y = (float)10 / 4 deyiminde, nce 10 says float tipine dntrlyor, sonra 4 saysna blnyor. Bir float tipin bir tam sayya blm yine float tipindendir. Dolaysyla, (float)10 / 4 = 2.5tir. nc kt: Bu kt ikinci ktnn simetriidir. floatSonuc = x / (float)y = 10 / (float)4 deyiminde, nce 4 says float tipine dntrlyor, sonra 10 tam says 4.0 saysna blnyor. Bir tam say tipin bir float tipine blm yine float tipindendir. Dolaysyla, 10 / (float)4 = 2.5tir. Drdnc kt: kinci ve nc ktnn birleimidir. floatSonuc = (float)x / (float)y = (float)10 / (float)4 deyiminde, nce 10 ve 4 saylarnn her ikisi de float tipine dontrlr. Sonra iki float tipin birbirine blm yaplr. Bu ilemin sonucu, doal olarak bir float tipidir. Dolaysyla, (float)10 / (float)4 = 2.5tir. Beinci kt: floatSonuc = (float)(x / y) = (float)(10/4) deyiminde, nce (10 / 4 ) blme ilemi yaplr. Bu bir tam say blme ilemi oldugu iin birinci ktda oldugu gibi kan sonu 2 dir. (float) 2 = 2.0000000 olduundan kt 2dir.
32
} } }
Console.ReadKey();
kts :
33
ema 2.1: ki deerin karlatrlmas Hava yamurlu mu sorusu bizim iin bir art ve bu art iinde havann durumunu yamurla karlatryoruz. Bu soruya darda yamur yayorsa evet(true) yamyorsa hayr(false) eklinde boolen bir cevap veriyoruz. Dolaysyla verdiimiz cevaba gre de programmzn ak yn deitirmektedir. Operatr == != > < >= <= Aklama Eittir Eit Deildir Byktr Kktr Byk Eittir Kk Eittir
== Operatr: Ayn trdeki iki deerin birbirine eitliinin kontol iin kullanlan operatrdr.
int x = 10; int y = 4; string str1 = "megep"; string str2 = "megep"; x == y // false str1 == str2 // true 3 == 3 // true 3 == "3" // hatal kullanm. int tipi ile string tipi karlatrlamaz.
34
!= Operatr: Ayn trdeki iki deerin birbirine eit olmadnn(eit deil) kontol iin kullanlan operatrdr.
int x = 10; int y = 4; string str1 = "megep"; string str2 = "megep"; x != y // true str1 != str2 // false 3 != 3 // false 1 != 3 // true
> Operatr: Bir deerin ayn trdeki baka bir deerden byklnn kontrolnn yapld operatrdr. Bu operatr string ilemlere uygulanmaz.
int x = 10; int y = 4; x > y // true y > x // false 3 > 3 // false 5 > 3 // true
< Operatr: Bir deerin ayn trdeki baka bir deerden kklnn kontrolnn yapld operatrdr. Bu operatr string ilemlere uygulanmaz.
int x = 10; int y = 4; x < y // false y < x // true 3 < 3 // false 1 < 3 // true
>= Operatr: Bir deerin ayn trdeki baka bir deerden byk veya eitlii kontrolnn yapld operatrdr. Bu operatr string ilemlere uygulanmaz.
int x = 10; int y = 4; x >= y // true y >= x // false 3 >= 3 // true
<= Operatr: Bir deerin ayn trdeki baka bir deerden kk veya eitlii kontrolnn yapld operatrdr. Bu operatr string ilemlere uygulanmaz. 35
&& Operatr: Ve anlamndadr. Sorgulanan tm artlar doru(true) olduu zaman doru(true), artlardan birinin yanl(false) olmas durumunda yanl(false) deerini dndrr.
int x = 10, y = 4; string str1 = "megep"; x == y && "megep" = str1 // 1. art = false, 2. art = true -> sonu = false x == 10 && y == 4 && true == true // 1. art = true, 2. art = true, 3. art = true -> sonu = true
|| Operatr: Veya anlamndadr. Sorgulanan artlardan birinin doru(true) olmas durumunda doru(true), artlarn hepsinin yanl(false) olmas durumunda yanl(false) deerini dndrr.
int x = 10, y = 4; string str1 = "megep"; x == y || "megep" = str1 // 1. art = false, 2. art = true -> sonu = true x == 4 || y == 10 || "megep" = str1 // 1. art = false, 2. art = false, 3. art = true -> sonu = true x == 4 || y == 10 || true == false // 1. art = false, 2. art = false, 3. art = false -> sonu = false
36
! Operatr: Deil anlamndadr. ! iareti deeri tersine evirir. (!true) // sonu = false (!false) // sonu = true
Yaplan ilemde yukardaki sra tamamlandktan sonra eer ayn tr ilemler kaldysa ilem soldan saa doru yaplr. rnek 2.4-1: 3+5*2 ileminin sonucu nedir? Yukardaki ilemde nce 3 ile 5i toplar ve sonucu 2 ile arparsanz sonu yanl kar. lem nceliine gre nce 2 ile 5i arpp kan sonula 3 topladmz zaman sonu doru kar. 3+5*2 = 8*2 = 16 // yanl cevap 3+5*2 = 3 + 10 = 13 // doru cevap rnek 2.4-2: 10/5*2 ileminin sonucu nedir? Yukardaki ilemde nce 5 ile 2yi arpar ve 10u kan sonuca blerseniz yanl cevap kar. Blme ve arpmann ilem ncelii e deer olduu iin ilem soldan saa doru ileyecektir. 10/5*2 = 10 / 10 = 1 // yanl cevap 10/5*2 = 2 * 2 = 4 // doru cevap rnek 2.4-3: (5+2)*4-6/2 ileminin sonucu nedir? (5+2)*4-6/2 = 7*4-6/2 = 28-6/2 = 28-3 = 25 // doru cevap
37
38
1.
2.
3.
4.
5. 6. 7.
4 > 2 ilemi .......... sonucunu retir. Koul ifadelerinin karlatrlmasnda kullanlan operatrlere ................. denir. ... operatr deil anlamndadr. Deeri tersine evirir.
DEERLENDRME Cevaplarnz cevap anahtaryla karlatrnz. Yanl cevap verdiiniz ya da cevap verirken tereddt ettiiniz sorularla ilgili konular faaliyete geri dnerek tekrarlaynz. Cevaplarnzn tm doru ise Modl Deerlendirmeye geiniz.
39
MODL DEERLENDRME
MODL DEERLENDRME Aadaki soruyu dikkatlice okuyunuz ve doru seenei iaretleyiniz. 1. Aadaki yerel deiken tanmlamalarndan hangisi doru yaplmtr?
A) int16 sayi B) metin ad C) byte yas D) float 12 Aadaki cmlelerin banda bo braklan parantezlere, cmlelerde verilen bilgiler doru ise D, yanl ise Y yaznz. 2. 3. ( ( )Tanmlanan bir deikene, ancak tanmland blok iinde ulalabilir. )ogrNo ile OgrNO ayn hafza blgesini temsil eder.
4. ( )Birden fazla artn olduu durumlarda aritmetiksel operatrler kullanlr. Aadaki sorular dikkatlice okuyunuz ve doru seenei iaretleyiniz. 5. Aadakilerden hangisi referans tipler arasnda yer alr? A) string 6. B) float C) double D) bool
7.
Aadaki yazmlardan hangisi dorudur? A) B) C) D) Console.WriteLine("Boyunuz : {0} Kilonuz : {1}", boy, kilo); Console.WriteLine("Boyunuz : boy Kilonuz : kilo"); Console.WriteLine("Boyunuz : [0] Kilonuz : [1]", boy, kilo); Console.WriteLine("Boyunuz : {0} Kilonuz : {1} " + boy + kilo);
8.
Console.Write("{0:C}", 3000); komutunun ekran kts aadakilerden hangisidir? A) 3.000 TL B) 3000 TL C) 3.000,00 TL D) 0003 TL
9.
10.
DEERLENDRME
40
Cevaplarnz cevap anahtaryla karlatrnz. Yanl cevap verdiiniz ya da cevap verirken tereddt ettiiniz sorularla ilgili konular faaliyete geri dnerek tekrarlaynz. Cevaplarnzn tm doru ise bir sonraki modle gemek iin retmeninize bavurunuz.
41
C A D B true likisel !
42
KAYNAKA KAYNAKA
http://www.ecma-international.org/ http://www.gorselprogramlama.com/ (15.03.2011- 12:00) http://www.yazilimmutfagi.com/ (15.03.2011- 12:00) http://www.csharpnedir.com/ (15.03.2011- 12:00) http://www.programmersheaven.com/ (15.03.2011- 12:00) http://tr.wikipedia.org/wiki/Ana_Sayfa
43