16 Mart 2009, 22:53 | #1 | |
Guest
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
| C# Hakkında Herşey.
| |
|
16 Mart 2009, 22:54 | #2 |
Guest
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
| Cevap: C# Hakkında Herşey. C# Programlama Sanatı Programlama Sanatı Programcılar modern çağın ressamları, heykeltıraşları yani sanatçılarıdır. Programlama da sanatın ta kendisi. Bir başka açıdan baktığımızda da programlama bir bilim, programcı da bilim adamıdır. Bence her ikisi de doğru. Şöyle ki, programcı da sanatçının esin kaynağına yani ilhama dayanarak program yazar, aklına ilginç bir fikir gelir, bu fikri kendi araçlarını kullanarak başlar program halinde vücuda getirmeye. Programcının en büyük görevi, insanlar ile bilgi arasındaki iletişimi ve bağlantıyı sağlamaktır. İnsan yaşamını kolaylaştıran bu kutsal görev programcı olmayanlarca pek de önemsenmez. Geleceğin sanal şehirlerini kuranlar programcı dediğimiz gizli kahramanlardır. Yeni yazdığı programın kullanıldığını ve yararlı olduğun görmek ona her şeyi unutturur, programcı olmayanların asla anlayamayacağı bir haz verir. Bilgisayar kullanıcısı sayısı gün geçtikçe geometrik olarak artıyor ama bu tür bir haz bilgisayar kullanıcılarının büyük bir çoğunluğu tarafından asla yaşanmaz. Çünkü bilgisayar kullanıcılarının büyük bir çoğunluğu programcı değildir ve asla da olmayacaklar. Onlar sadece yazılan programları ve içerisinde yazılım gömülü akıllı cihazları kullanırlar. BİR PROGRAMLAMA DİLİ ÖĞRENMEK Programlama dili öğrenmeyi yabancı dil öğrenemeye benzetebilirsiniz. Mesela her ikinde de öğrenilmesi gereken, o dile özgü bir grup kelime var. Anahtar kelime diye adlandırdığımız bu kelimelerin c# dilindeki sayısı 77 tanedir. C dilinin geleneğini sürdürdüğü için de bu kelimeler küçük harflerle yazılır. Yabancı dil öğrenirken bir takım yazım ve dil bilgisi kuralları öğrenmek zorundayız. Programlama dilinin yazım ve dil bilgisi kuralları konuşulan dillerin kurallarına göre daha katıdır. Programlama dili ile yabancı dil öğrenme arasındaki en büyük benzerlik bence her ikisinin de okuyarak öğrenilememesidir. Pratik yapmak zorundayız. Bir müzik aletini çalmayı öğrenirken olduğu kadar çok pratik yapmalıyız hem de. Bir programcı gibi düşünmeye ve kendi kodumuzu kendimiz yazmaya alışmalıyız. Programlama bir problem çözme etkinliğidir. Programcının tek en önemli kalite göstergesi problemleri bileşenlerine ayırma ve daha küçük parçalara bölerek çözebilme yeteneğidir. Programcının sorumluluğu bu küçük parçaları bir araya getirip çözümü oluşturmaktır. Bu beceri de bence sadece pratik yaparak gelişir. PROGRAMLAMA NEREDEN NEREYE Charles Petzold, bilgisayar devrimini iki evreye ayırır: Birinci evre bilgisayarların tasarlandığı ve yapıldığı zaman, ikinci evre ise onlarca yıl sonra bilgisayarların programcı olmayan kimseler tarafından da kullanılabilir olmasıdır. İlk programlanabilir bilgisayar 1930'lu yıllarda yapıldı. Uzun bir süre programlama işlemi delikli kartlar gibi mekanizmalar kullanılarak sağlandı. Bilgisayarın kendisine donanım, üzerinde çalışan kodlara da yazılım adı verildi. Bir kaç dekad boyunca donanım ve yazılım birbirine bitişikti. Her makinanın kendine özgü bir komut seti vardı ve bu komutlar başka makinalarda çalışmazdı. Sayısal tümleşik devreler kullanıldığı dönemlerde de bu durum devam etti. 1950'lerin başında mimariden bağımsız bilgisayar dilleri geliştirilmeye başlandı. Bu diller Makine kodu ile karşılaştırıldığında yüksek seviyeli diller olarak aklandırıldı. COBOL, BASIC, FORTRAN gibi diller hala farklı sürümleri ile hayattadır. Derlemek, Yorumlamak Bilgisayar sadece Makine kodunu çalıştırabilir. Öyleyse yüksek seviyeli dillerle yazılan program kodları Makine konuda dönüştürülmelidir. Derleyici, bir programı tamamen Makine koduna çevirirken yorumlayıcı bu işlemi eş zamanlı olarak yapar. Bilinen en eski programlama dillerinden birisi de ALGOL dilidir. 1950'li yıllarda uluslar arası bir komite tarafından geliştirildi ve uzun yıllar değişiklikler yapılarak kullanıldı. Hâlâ Pascal, PL/I ve C gibi dillerin temelini oluşturduğu için yaşamını sürdürmektedir. C Dilinin Serüveni Bell Laboratuarlarının etkisi olmadan çağdaş dünyayı düşünmek imkansızdır. 1947 yılında transistor orada icat edildi. 1970’lerde UNIX işletim sistemi orada geliştirildi.Uzun yıllar, büyük bir kısmı Dennis Ritchie tarafından geliştirilen C dili, UNIX işletim sistemi ile ilişkilendirilir. C dili tek harfle temsil edildiğinden bu adın nereden geldiği merak edilebilir: İlk olarak CPL (Combined Programming Language) dili vardı. BCPL (Basic CPL) dili daha sonra CPL dilinden esinlenerek geliştirildi. Sonraları BCPL dilinin basitleştirilmiş bir hali olan B dili ortaya çıktı. C dili de bu B dilinden türetildi. C ismi oradan gelir. ALGOL ve onun türevi olan dillerde, program parçaları BEGIN ve END kelimeleri arasına yazılır. C ise bu işi küme parantezlerini kullanak yapar. C’de yazılmış programların en belirgin farkı hızlı olmalarıdır. Çünkü C işaretçiler dediğimiz, bellek bölgelerine doğrudan erişmeye yarayan yapılara izin verir. Bazıları C’ye yüksek seviyeli assembly dili der. Çünkü C; bit, byte ve bellek düzeyinde çok iyi çalışır. Aslında bu yaklaşımın tehlikeli tarafı da var. Yüksek seviyeli dillerin derleyicileri program kodları derlenirken programın çökmemesi ve veri kayıplarına neden olmaması için fazladan kodlar eklerler. C derleyicisi ise hızlı program ortaya koyma adına, fazladan kod eklemez. Bu yüzden, dikkatli davranılmadığında hata oluşturmaya daha elverişlidir. Hatasız program olmaz ise de, C’de bu durum daha yaygındır. Hataların çoğunluğu işaretçi kullanmanın yol açtığı hatalardır. C, hala çok yaygındır ama bazı açılardan tarih olmuştur. Geleneksel prosedürel diller grubuna dahil edilmektedir. Program içerisinde belirli bir işi yapan ya da algoritmayı gerçekleştiren program parçasına prosedür denir. Bir C programı da, bir grup prosedür ya da fonksiyondan oluşur. Fonksiyonlar, devamlı veriler ile çalışır. Prosedürel yapıda bu veriler ile program kodu iç içe bulunur. Nesne yönelimli programlama terimini çok sık duymaya başladık. Nesne yönelimli programlama dillerinin (OOP) ilki Palo Alto Araştırma Merkezinde (PARC) geliştirilen SmallTalk dilidir. PARC, Microsoft Windows ve Apple Machintosh’ta da kullanılan grafiksel kullanıcı arayüzü kavramlarını geliştiren Xerox tarafından kurulan araştırma laboratuarıdır. Nesne yönelimli dilde, programcılar prosedürler yerine sınıflar oluştururlar, kodların ve verilerin birleşiminden oluşan nesneler de bu sınıflardan türetilir. Programlamadaki bu bakış açısı değişimi, çeşitli programlama işlerinde tekrar tekrar kullanılabilecek kodlar yazmaya olanağı sağladı. C dilinin de nesne yönelimli sürümünü yazmak isteyenler oldu. 1980lerin başında Bjarne Stroustrup tarafından Bell laboratuarlarında C++ (Si plas plas okunur) geliştirildi. C++ dilinin adında geçen ++, C dilinde bir sayıya 1 eklemek için kullanılır, yani sayının değeri 1   Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. ar. C++ dili, C’nin tüm özelliklerine sahip ama nesne yönelimli olması için bir takım ek özellikler katılmış hali diye özetlenebilir. Ama bu yapı biraz hantal bir yapı oldu. Çünkü C’de olan her şeyi destekleme kaygısı ile garip bir notasyon ortaya çıktı. Bu hantal yapının yanında, baş edilmesi gereken bir sorun daha vardı. Bilgisayar donanımı hızla gelişiyor. Gereğinden fazla hızlı işlemciler ve gereğinden fazla bellek var. Bir program yazılırken dikkat edilen temel kriterler değişti. Eskiden performans ve ekonomik kaynak kullanımı iken şimdilerde yerini daha hızlı ve hatadan arınmış kod yazmaya bıraktı. Bu da alçak seviyeli yapıdan hızla uzaklaşma ve işaretçi kullanımının azalması demekti. Artık programcılar işaretçi kullanmaktan kaçınıyorlar. 1990’larda Sun Microsystems, C++ dilinden daha esnek bir notasyona sahip olan, daha güvenli kod yazmayı olanaklı kılan bir yapı ortaya koydu, yani Java dilini geliştirdi. C#’ın Doğuşu Borland firmasından ayrılan Anders Hejlsberg, 20002li yılların başında Microsoft için C# (Si Şarp okunur) dilini geliştirdi. C#’taki diyez işareti (şarp), C++ taki ++ ın 2 tanesinin üst üste koyulmuş halidir. C# Java gibi, C# da C’nin tehlikeli özelliklerini almadı. Ama işaretçiler C#’tan tamamıyla çıkarılmadı. Java ile C# arasındaki diğer bir benzerlik, derleyicinin rolündedir. Geleneksel olarak, derleyici kaynak kodu (yüksek seviyeli dil metin dosyası) makina koduna çevirir. Makina kodu, bilgisayar tarafından çalıştırılabilir bir formdadır. Bu da Microsoft Windows ile Apple Machintosh üzerinde aynı programın çalıştırılamayacağı anlamına geliyor. C# derleyicisi, kaynak kodu bir ara dile (IL) çevirir. Program çalıştırılacağında ise IL makina koduna dönüştürülür. Bunu kullanıcı fark etmez. Teorik olarak, bu iki adımlı işlem, aynı IL kodunun farklı makinalarda da çalışabilmesine olanak tanır. Ayrıca IL formundaki bir programda bulunan kötü ve zararlı kod işletim sistemi tarafından kolaylıkla tetkik edilebilir. |
|
16 Mart 2009, 22:55 | #3 |
Guest
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
| Cevap: C# Hakkında Herşey. .Net Framwork .net Framework Bu bölümde .net Framework nedir sorusuna cevap verip .NET Framework Redistributable ile .NET Framework SDK uygulamaları arasındaki farklardan bahsedeceğiz. Sonra da .NET Framework Redistributable uygulamasını adım adım kurmayı öğreneceğiz. .net Framework Nedir? Bir çok uygulama geliştirme dili var. Bu dillerle yazılmış uygulamaları çalıştırmak için ise farklı platformlar var. .net Framework, windows tabanlı uygulamalar geliştirebilmek için farklı programlama dillerinin birlikte çalışabileceği ortak bir geliştirme ortamıdır. Bu ortam hem yazılımları geliştirmek hem de çalıştırmak için gereklidir. .net Framework aşağıdaki bileşenlerden oluşur:
|
|
16 Mart 2009, 22:57 | #4 |
Guest
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
| Cevap: C# Hakkında Herşey. C# Atama İşlemleri C# ile program yazmaya ilk adım: Atama İşlemleri Programlamaya başlarken, ilk olarak onu matematiğe benzetebiliriz. Mesela ilk yazacağımız programlardan biri de iki tane sayıyı toplayıp sonucunu ekrana yazdırmak olabilir. Ama tabiki matematikteki her şey programlamada da olduğu gibi var anlamına gelmiyor. Bu farkları başlarda iyi anlarsak programlama mantığını kavramakta zorluk çekmeyiz. Şimdi matematiksel bir ifade görelim: 1 A = 1 2 B = 2 3 C = A + B Oldukça anlaşılır ifadeler. Şimdi bu işlemi C# dilinde yazalım: 1 A = 1; 2 B = 2; 3 C = A + B; Yukarıda görülen program parçasında A, B ve C ifadeleri değişken olarak adlandırılır. Değişkenler basitçe kendilerine atanan değerleri saklayan bellek bölgelerini sembolize eder diye tanımlanabilir. Görüldüğü gibi C# kodu ile matematiksel ifade arasında sadece sonlara konulan noktalı virgül farkı var. Ama bu benzerlik aldatıcıdır. 1 A = 1; 2 C = A + B; 3 B=2; Yukarıdaki program parçası matematiksel olarak anlamlı olsa da programlama açısından anlamsızdır. Matematikte eşittir işareti eşitlik bildirmek için kullanılır. Bu yüzden matematiksel olarak bu ifadeyi gördüğümüzde C’nin 5 olacağını rahatlıkla söyleyebiliriz. C#’ta eşittir ifadesi atama operatörüdür. Program kodları satır satır sırayla derlenir. İlk satır derlendiğinde A değişkenine 1 değeri atanır. C# derleyicisi, daha henüz değeri belli olmayan B ifadesini kullanan 2. satıra geldiğinde ne yapacağını bilemez ve hata olduğunu bildirir. Operatörler, bilgisayarın bir işlemi gerçekleştirmesini sağlayan semboller ya da kısa kelimelerdir. Mesela yukarıdaki program kodlarındaki eşittir ifadesi atama operatörüdür. Operatörlerin sağındaki ve solundaki ifadelere ise operand denir. Atama operatörünün de 2 tane operandı vardır. Atama operatörünün solundaki ifade mutlaka bir değişken olmalıdır. Sağındaki ifadelerin hesaplanması sonucu oluşacak değer solundaki değişkene atanır. Artı işareti de aritmetik operatörlerden biridir. Operatörlerin tamamı ileride geniş bir şekilde işlenecektir. Burada kısaca bahsettik. Atama işlemi sadece yukarıda verdiğimiz örnekteki gibi değildir. Aşağıda gördüğünüz atamaların hepsi C#’ta geçerlidir: 1 C = A + 3; 2 C = 27 + A + B; 3 C = B + A + A + B + A + B + 14; 4 C = 45 + 27; A=A+1 MESELESİ Matematiksel olarak hiçbir anlamı olmayan ama programlamada kullanılan bir ifade var. Bunu ilk defa öğrenirken doğru anlarsanız, daha sonra zorluk çekmezsiniz. 1 A = 11; 2 A = A + 1; Atama yaparken göz önüne alınacak en önemli kural atamaların daima sağdan sola doğru olduğudur. Yukarıdaki örneğin 1. satırında A değişkenine 11 değeri atandı. Daha sonraki satırda ise A değişkeninin değeri olan 11 ile 1 toplanıp hesaplanan değer A değişkenine atandı. Kısacası A’nın yeni değeri 12 oldu. Negatif sayıları da bir eksi işareti ile gösteririz. 1 A = -11; Aşağıdaki ifade matematikte geçerli olmasına rağmen programlamada geçersizdir. 1 A + 2 = 4; Değişkenlere değerleri değişebildiği için değişken denmiştir. Aşağıdaki örneği inceleyelim. 1 A = 10; 2 B = -2; 3 C = A + B; 4 B = 5; 5 C = A + B; Yukarıdaki örneğin 3. satırında C 8’e eşit oluyor. 4. satırda B’nin değeri değişerek 5 oluyor. 5. satırda ise C’nin değeri 15 oluyor. C#’ta program yazarken satır kavramı yoktur. ALGOL dilinden türeyen diğer dillerde olduğu gibi C#’ta da her ifadenin sonuna noktalı virgül konur. İfadenin bittiği yerden hemen bir yenisi başlayabilir, bir ifade birden çok satıra bölünebilir. 1 A=3;B=2;C=A+B; 2 3 A = 10; 4 B 5 = -2; 6 C = A 7 + B; Yukarıda verilen örneklerden her ikisi de doğrudur. C#’ta her ikisine de izin verilir. Programlamada boşluklar ve boş satırlar, alfabe dışı karakter olarak bilinir. Programcılar alfabe dışı karakterleri programlarını daha okunur yapabilmek için kullanırlar. Mesela ben, atama ve aritmetik operatörlerde operatörün sağında ve solunda 1 karakterlik boşluk bırakmayı severim: 1 C = 3; 2 B = 27; 3 A = B + C; C# büyük- küçük harfe duyarlı bir programlama dilidir, değişken isimlendirirken küçük harf ve büyük harf kullanabilirsiniz. Aşağıdaki örnekte her üç değişken de diğerinden farklıdır. Ama yine de program yazarken karışıklığa mahal vermemek için birbirine sadece bir harfin büyük ya da küçük olması kadar benzeyen değişken isimleri kullanılmaz. 1 Antalya = 38; 2 antalya = 36; 3 ANTALYA = Antalya + antalya; İSİMLENDİRME KURALLARI Değişkenleri isimlendirirken dikkat edilecek kurallar vardır ama bu kurallar son derece basittir:
Birden çok kelime içeren değişkenlerin isimlendirilmesi için yaygın olan iki yaklaşım çok sık görülür. Birincisi her kelimeler arasına alt çizgi koyarak küçük harflerle yazmaktır. Diğeri ise her kelimenin baş harfini büyük yazarak bitişik yazmaktır. Bu konuyu daha sonra isimlendirme notasyonlarını işlediğimiz ünitede geniş bir şekilde işleyeceğiz. 1 okuldaki_ogrenci_sayisi = 500; 2 Deney41 = 36; 3 OgretmenlerinSayisi = 46; 4 _sonuc = 12; Değişken ismi olarak kullanılamayacak kelimeler vardır. Bunlara anahtar kelime denir, bunlar C# tarafından ayrılmış kelimelerdir. 77 tanedir. Bunların listesini inceleyiniz. Değişkenlere isim verirken X, A, B gibi isimler verebilirsiniz. Ama sizin yazdığınız programa birisi devam edecekse, siz daha sonra dönüp bakacaksanız anlamlı isimler vermeniz gerekiyor. 1 OgrenciNumarasi = 36; 2 BirinciYaziliSonucu = 85; 3 SozluNotu = 90; 4 YazililarinOrtalamasi = 86; Ama değişkenlere uzun isimler vermek de sıkıcı olabilir. Onun yerine anlamlı kısaltmalar yapmak daha mantıklıdır. 1 OgrNo = 36; 2 Yazili1 = 85; 3 Sozlu = 90; 4 Ort = 86; |
|
16 Mart 2009, 22:58 | #5 |
Guest
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
| Cevap: C# Hakkında Herşey. C# Türlerinin Belirlenmesi Türlerin Tanımlanması 05 Ocak 2006 C#’ta bir değişkeni kullanmadan önce onun türünü tanımlamak zorundayız. Bir değişken program içerisinde yalnızca bir kere tanımlanabilir. Bir sayı C#’ta üç farklı türde olabilir. Canlıların sayısını yazıyorsak tamsayıları kullanmak isteyebiliriz. Eğer yazdığımız programda para miktarı bulunuyorsa bunun için desimal sayılar gerekecektir. Mesela 2 YTL 50 YKr gibi. Eğer bilimsel rakamlar içeren bir program yazıyorsak bilimsel notasyonu kullanmalıyız. Programlamada bu tür sayılara kayar noktalı sayılar denir. Bir programın içinde her üç türden de sayılar bulunabilir. Şimdilik sadece tamsayı türünden örnekler yapalım. Daha sonra her bir türü ayrı bir ünite olarak işleyeceğiz. Şimdi bir tamsayı tanımlayalım. 1 int Elma; Aşağıdaki örnekte değişkenler tanımlanacak ve değer ataması yapılacaktır. 1 int Elma; 2 int Armut; 3 int Toplam; 4 5 Elma = 2; 6 Armut = 3; 7 Toplam = Elma + Armut; Aşağıdaki örnekte olduğu gibi bir satırda birden çok tür tanımlaması yapılabilir. 1 int Elma, Armut, Toplam; 2 3 Elma = 2; 4 Armut = 3; 5 Toplam = Elma + Armut; Bazı değişkenleri birlikte bazılarını da ayrı tanımlayabiliriz. 1 int Elma, Armut; 2 int Toplam; 3 4 Elma = 2; 5 Armut = 3; 6 Toplam = Elma + Armut; Tür tanımlamasını hep bir arada yapmak zorunda değiliz. Tek önemli kural değişkenelrin kullanılmadan önce tanımlanması gerektiğidir. 1 int Elma; 2 Elma = 2; 3 4 int Armut; 5 Armut = 3; 6 7 int Toplam; 7 Toplam = Elma + Armut; Bir değişkenin tür tanımlaması ve değer atama işlemi aynı ifade içinde yapılabilir. 1 int Elma = 2; 2 3 int Armut = 3; 4 5 int Toplam = Elma + Armut; Bir satırda birden çok değişkenin tanımlanması ve değer atanması aynı anda yapılabilir. 1 int Elma = 2, Armut = 3, Toplam = Elma + Armut; Ama bir satırda tanımlanan bütün değişkenlere değer ataması yapma zorunluluğu yoktur. Bazılarına değer ataması yapmayabiliriz. 1 int Elma, Armut = 3, Toplam; 2 Elma = 2; 3 Toplam = Elma + Armut; Bir tek satırda çok fazla değişken tanımlanması programın okunurluğunu ve hata ayıklamayı zorlaştırabilir. Kısa ve anlaşılır olmak iyi kodlanmış bir programda olması gereken özelliklerdendir. Aşağıdaki örnekte değişkenlerin tanımlanması ve değer atama işlemleri oldukça güzel yapılmıştır. 1 int Elma = 2; 2 3 int Armut = 3; 4 5 int Toplam = Elma + Armut; |
|
16 Mart 2009, 22:58 | #6 |
Guest
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
| Cevap: C# Hakkında Herşey. C# ile ilk Program C# ile ilk Program Şimdiye kadar yaptığımz örneklerin hiç biri çalışır bir program değildi. Şimdi çalışabilecek komple bir program yazalım. C#’ta programlar yöntemlerden ve birbiri ile alakalı olan yöntemlerin gruplanarak oluşturduğu sınıflardan oluşur. Yöntem, belirli bir işi yapan program kodlarının bir araya gelerek oluşturduğu program bloğudur. Sonra bu yöntemleri gruplayarak sınıfları oluştururuz. En basit C# programı bir sınıftan ve o sınıfa üye bir yöntemden oluşur. Bir sınıfın içinde birden çok yöntem bulunabileceğine göre birisinin giriş noktası olması gerekir. Program çalıştığında ilk olarak hangi yöntem devreye girecek? Bu sorunun cevabı Main yöntemidir. Bilgisayar, sınıfın içindeki Main isimli yöntemi ilk olarak çalıştır. Daha sonra programcının belirlediği yönergeleri izleyerek diğer yöntemleri de çalıştırır. C# programında özel bir role sahip olan Main, bir anahtar kelime değildir. Eğer isterseniz Main isminde bir değişken de tanımlayabilirsiniz. Yöntemlerin girdileri ve çıktıları vardır. Örneğin öğrencinin bir dersten aldığı sınavların ortalamasını alan bir yöntemimiz varsa, öğrencinin sınavlardan aldığı sonuçlar yönteme girdi olarak geçilir ve geriye bu sınav sonuçlarının ortalaması olan puan döner. Başka bir ifadeyle söylersek, yöntemler; yöntem parametreleri olarak adlandırılan değişkenelri girdi olarak alırlar, bir takım işlemlere tabi tutarlar ve dönen değer olarak bir çıktı üretirler. Yöntemlerin bir belirteçleri bir de dönen değerleri olur. Bnular yöntem isminin soluna yazılır. Daha sonra yöntem isminin önüne parantez içerisinde aralarına virgül konularak yöntem parametreleri olan değişkenelr yazılır. Daha sonra yöntemin gövdesi gelir. Bu gövde küme parantezleri içerisine alınır. Eğer yöntemin bir dönen değeri yoksa dönen değer olarak void yazılır. Yöntem parametresi almayacaksa yöntem isminin önüne boş parantezler konur. Şimi Main yöntemini yazalım. 1 static void Main() 2 { 3 int Elma, Armut, Toplam; 4 5 Elma = 2; 6 Armut = 3; 7 Toplam = Elma + Armut; 8 } Çoğu programcı yöntem içeriğini girintili olarak yazmayı tercih eder. Ben de girintilemeyi severim. 1 static void Main() 2 { 3 int Elma, Armut, Toplam; 4 5 Elma = 2; 6 Armut = 3; 7 Toplam = Elma + Armut; 8 } Bazı programcılar sınıfın başlangıcını ve bitimini belirten küme parantezlerinden ilkini hemen sınıfın bildiriminin yapıldığı ilk satırın sonuna koyarlar. Ben bu şekilde yazmayı tercih etmiyorum. C# derleyicisi bizim girintileme tarzımızla ilgilenmez. Çalıştığınız şirket ya da birlikte çalıştığınız proje yöneticisi sizi bir tarzı kullanmaya zorlayabilir. Eğer böyle bir zorunluluk yoksa istediğiniz girintileme tarzını seçer devam edersiniz. Bir C# programında en temel birim yöntem değildir tabiî ki. Daha önce de bahsettiğimiz gibi en temel birim sınıftır. Yöntemler bir araya gelerek sınıfları oluştururlar. Mesela yukarıda yazdığımız Main de bir yöntemdir. Temel bir C# programı bir adet sınıftan ve bir de Main isminde yöntemden oluşur. Sınıflara isim belirlerken değişkenlerin isimlendirilmesinde dikkat ettiğimiz kurallar geçerlidir. Main kelimesi anahtar kelime olmamasına rağmen, Main isminde bir yönteme sahipse sınıf ismi olarak Main kullanılmaz. Sınıf bildirim de class kelimesi, sınıf ismi ve sınıf gövdesinden oluşur. Sınıf gövdesini de yine küme parantezleri içine alırız. Sınıf gövdesinde sınıfı oluşturan yöntemler bulunur. Sınıf içeriğini de girintilemek benim tercih ettiğim bir tarzdır. Demek oluyor ki yöntem içerikleri iki defa girintelenecek. Şimdi çalışan bir bütün C# programı yazalım. Bir sonraki ünitede de derleme ve çalıştırma işlemlerini inceleriz. 1 class BirProgram 2 { 1 static void Main() 2 { 3 int Elma, Armut, Toplam; 4 5 Elma = 2; 6 Armut = 3; 7 Toplam = Elma + Armut; Console.Writeline (Toplam); 8 } 8 } |
|
16 Mart 2009, 22:59 | #7 |
Guest
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
| Cevap: C# Hakkında Herşey. C# Yaz, Derle, Çalıştır Yaz, Derle, Çalıştır Bir bilgisayar programı başlangıçta basit bir metin dosyası olarak hayata başlar. Mesela C# programları .cs uzantılı dosyalardır. Bir programın birden çok kaynak dosyası olabilir. Programı yazıp bitirdiğimizde programımızın kaynak dosyasındaki kodu, C# derleyicisi IL (Ara Dil) denilen bir koda çevirir. Genelde yazmış olduğumuz kod hatasız olmaz. Derleyici bir hata tespit ettiğinde bu hata ile ilgili gerekli bildirimleri yapar. Bu tür hatalara yazma zamanı hataları denir. Eğer herhangi bir hata bildirimi varsa geri dönüp programınızdaki hatayı düzeltmemiz gerekir. Derleme işlemini başarıyla tamamlarsak programın çalıştırılabilir EXE dosyası oluşur. Bu aşamadan sonra kontrol işletim sistemine geçer. Bazen yazdığımız programlar bellekte izin verilmeyen bir bölgeye ulaşmak ister. CLR bu durumda bir hata mesajı ile bizi uyarır. Bu tür problemler çalışma zamanı hatalarıdır veya istisna durumlardır. Aynı şekilde geriye dönüp hatayı düzeltmeliyiz. Bir programın yazma işlemi bittiğinde her şey tam gibi görünür, fakat genellikle problemsiz olmaz. Bazen hatayı yakalamak kolaydır ama program büyüdükçe yakalamak zorlaşır, hemen hemen imkânsız hale gelir. Derleme ve hata ayıklama ile ilgili yazılmış pek çok kitap var. Daha sonra bu kitaplardan birini alıp hata ayıklama üzerine de bilgi edinebilirsiniz. C# programı yazmak ve derlemek için birçok seçenek var. Microsoft tarafından üretilen Visual Studio 2005 paketi, .net ortamında yazılım geliştirme araçları içerir. 30 günlük deneme sürümü olan C# Express yazılımını Microsoft web sitesinden indirip deneyebilirsiniz. Ama bu kadar karmaşık bir geliştirme ortamı yerine Charles Petzold tarafından geliştirilen daha basit ve ücretsiz bir araç olan Key Of Csharp isimli araç başlangıç seviyesi bir kullanıcının işini görecektir. Biz de çalışmalarımızı bu aracı kullanarak yapacağız. Programı indirdikten sonra çalıştırdığımızda karşımıza kurulum ekranı gelecektir. Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. Bu ekranda I aggree diye başlayan kutuyu işaretlersek üzerinde Install yazan buton aktifleşecektir. Install butonuna basıp programı kurma işlemine başlarız. Kırma işlemi tek adımda gerçekleşir ve OK butonuna basarak kurulumu bitiririz. Masaüstüne gelen kısayol simgesi yardımıyla programı açıp ilk kodlarımızı yazmaya başlayalım. Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. File menüsünden New Project seçince proje ismi olaral Project01 yazan bir pencere gelir. O pencerede programın verdiği ismi kabul ediyorsak OK butonuna basıyoruz ve yeni bir projeye başlamış oluyoruz. Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. Program default olarak ürettiği dosyaları Belgelerim klasörü içerisinde Key of C# Projects klasörü altına Project01, Project02 gibi isimlerle kaydeder. Bu Project01 gibi klasörlerin içerisinde .cs uzantılı olan bizim yazdığımız kodları içeren kaynak dosya, .exe uzantılı derlenmiş çalıştırılabilir dosya ve .kcsproj uzantılı programın proje bilgilerini tuttuğu kendi özel dosyası bulunur. Şimdi daha önce yazdığımız örneği Key Of Csharp ile yazıp derleyelim. Önce bir Project ismi vererek programı açıyoruz. Örneğimizi editörde yazıyoruz. Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. Daha sonra örneğimizi yazıp Build menüsünden Compile seçtiğimizde aşağıdaki durum çubuğunda Ready yazar. Bu durumda yine Build menüsünden Run seçilerek ekran çıktısı görülebilir. Ama daha henüz ekran çıktısı üreten bir program yazamadığımız için sadece Pres any key to continue ibaresi çıkar, klavyeden bir tuşa bastığımızda da konsol ekranı kaybolur. Bu iki işlemi birlikte yapmaya yarayan Build menüsünde Compile and Run seçilirse ya da klavye kısayolu olan F8’e basılırsa da yine aynı ekran karşımıza gelir. Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. Kullanıcı etkileşimi olmadığı için, hiçbir çıktı üretmediği için, hiçbir girdi almadığı için şu anda programımız bir işe yaramıyor. Ama temel bir C# programının bütün öğelerine sahip. Daha sonra ekrana bir şeyler yazan programlar da yazacağız. |
|
16 Mart 2009, 22:59 | #8 |
Guest
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
| Cevap: C# Hakkında Herşey. C# Ekranda Yazı Yazdırmak Ekranda Yazı Yazdırmak 19 Şubat 2007 Program yazmanın iki boyutundan bahsedebiliriz, bunlar ise programcı açısından program ve kullanıcı açısından programdır. Program geliştiriciler olarak başlangıçta her iki kişi de biziz. Rolümüz programcıdan kullanıcıya değişince ya da kullanıcıdan programcıya değişince, bakış açımız da değişecektir. Mesela, programımızın verdiği çıktı, kullanıcı açısından girdidir. Kullanıcının programa girdiği veriler program açısından girdi, kullanıcı açısından çıktıdır. Burada bahsedilen girdi ve çıktı kavramları üzerinde durmak istiyorum. Programın dış dünyaya verdiği bilgiler, gösterdiği tepkiler çıktı olarak tanımlanırken, dış dünyadan aldığı bilgiler ise girdi olarak tanımlanır. Bir bilgisayar programı da aldığı girdileri yorumlar, saklar, bu bilgilere dayanarak dış dünyaya bir takım sonuçlar gönderir. Bu modele I/O modeli denir. I/O Modelleri Windows ortamında çalışan bir program kullanıcıdan girdileri klavye, mouse, buton ya da kaydırma çubukları gibi çeşitli kontroller yardımı ile alır. Bir Windows programı çıktıyı kullanıcıya yazı veya grafik olarak gösterir. Bir fırını çalıştıran program ise farklı bir kullanıcı I/O modeline sahiptir. Burada girdiler fırınını ön panelindeki butonlarla yapılır. Çıktılar ise fırının açılması, fırının kapanması, tepsinin döndürülmesi, ışığın yakılması şeklinde olacaktır. C ve C# gibi dillerde kullanıcı girdi ve çıktısı için özel bir model yoktur. Bu bir eksiklik gibi görünüyor fakat değil. Bunu şöyle söylemek daha doğru olacaktır: C#, kullanıcıyı herhangi bir girdi ve çıktı modelini kullanmaya zorlamaz. Siz yazdığınız programın nerede kullanılacağına göre girdi ve çıktı modelinizi kendiniz seçersiniz. Bu bölümde konsol ekranı yardımıyla kullanıcıya çıktı verebilen bir program yazmaya çalışacağız. Bunu yapmadan önce bazı kavramları açıklamakta yarar var. Ekranda yazı göstermeye yarayan System.Console.WriteLine() ve System.Console.Write komutlarıdır. Bu komutlar neden üç parçadan oluşuyor? Bu parçaların adları nelerdir? System bir isimuzayıdır. İsimuzayları C#’a C++ dilinden miras kalmıştır. İsimuzayları birbiri ile alakalı yöntemleri bir paket içinde toplamaya yarayan bir paketleme sistemidir. Bir isimuzayının içindeki bir yöntemin adı diğer bir isimuzayı içinde de bulunabilir. Bu da isimuzayının bir diğer işlevidir. System isimuzayı; kullanıcı ile iletişim kurmaya yarayan I/O modeli olan Console, matematiksel işlemlerin bir araya toplandığı Math gibi temel sınıfları içinde barındırır. Burada sınıf terimi geçti. Bir önceki bölümde de anlattığımız gibi, C# programının temel birimi sınıftır. Bunu daha doğrusu şöyle söylemek lazım: Nesne yönelimli dillerin temel birimi sınıftır. Sınıfların özellikleri ve yöntemleri vardır. Bir   Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. yı örnek alalım. Rengi, modeli fiyatı gibi özellikleri vardır. Hareket etmek, korna çalmak, durmak gibi yöntemleri vardır. Daha sonra bu temel araba sınıfından bir takım farklı özellik ve yöntemlere sahip olan otobüs, kamyon, minibüs gibi sınıflar türetiriz. Bu sınıfların örnekleri olan nesneler ise araba sınıfının niteliklerini taşırlar. Türetilmiş sınıftan oluşturulan nesne de türetilmiş sınıfın özelliklerini ve temel sınıfın özelliklerini taşır. Yöntemler ise sınıfın dış dünya ile etkileşimini sağlayan eylemleridir. Mesela Console sınıfının WriteLine yöntemi ekranda bir satır yazı gösterir. Write yöntemi ise ekranda yazı gösterir ama alt satıra geçmez işini bitirince. WriteLine yöntemini kullanan bir program bu yönteme bir argüman yollar: 1 System.Console.WriteLine(ToplamMeyve); Bazı programcılar parantez ile argümanı ayırmak için argümanın sağına ve soluna boşluk koymayı tercih ederler. 1 System.Console.WriteLine( Toplam ); WriteLine yöntemine bir değişkeni argüman olarak geçebildiğimiz gibi, bir sayısal ifadeyi de geçebiliriz. 1 System.Console.WriteLine( Elma + Armut ); Yukarıdaki iki satırı incelersek ilkinde bir işlemin sonucunu tutan değişkenin değerini yazdırıyoruz. İkincisinde ise işlemin kendisini direkt parantezlerin içine yazıyoruz. Sonucu hesaplayıp ekrana yazıyor. Eğer amacımız sadece 2 ve 3 sayılarının toplamını ekrana yazdırmak ise 1 System.Console.WriteLine( 2+3 ); yazabiliriz. using Direktifi Eğer programda birden fazla System.Console.WriteLine yöntem çağrısı yapıyorsak System isimuzayınu using direktifini sınıf tanımı yapmadan önce programımızın başına ekleriz. using direktifi ile tanımladığımız herhangi bir isimuzayına dahil sınıfların yöntemlerini çağırırken artık isimuzayı ismini yazmadan sadece sınf.yöntem() şeklinde yöntemi yazarız. Bu bize zaman kazandırır. using direktifine direktif denmesinin sebebi programın çalışma zamanında hiçbir işlevinin olmamasındandır. 1 Console.WriteLine(Toplam); Şimdi artık çalışan ve ekrana yazı yazan bir program yazalım. 1 using System; 2 class BirProgram 3 { 4 static void Main() 5 { 6 int Elma, Armut, Toplam; 7 8 Elma = 2; 9 Armut = 3; 10 Toplam = Elma + Armut; 11 Console.WriteLine ( Toplam ); 12 } 13 } |
|
16 Mart 2009, 23:00 | #9 |
Guest
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
| Cevap: C# Hakkında Herşey. C# Aritmetik İşlemler Aritmetik İşlemlerAritmetik operatörler ve kullanım şekilleri Bilgisayarlar yapıları gereği, çeşitli matematiksel hesaplamaları gerçekleştirirler. Bu sebeple, C# ile temel matematiksel işlemlerin nasıl yapıldığını inceleyelim. Temel matematiksel işlemler derken toplama, çıkarma, çarpma ve bölme işlemlerini kastediyorum. Daha önceki bölümlerden, toplama işleminin C#’ta nasıl yapıldığını biliyoruz: 1 C = A + B; Bir tamsayıdan diğer bir tamsayıyı çıkarmak da bu kadar kolaydır: 1 C = A - B; Yukarıda yaptığımız işlemlerde kullandığımız artı ve eksi işaretlerinin her ikisi de aritmetik işaretlerdir. Bu işaretlere aynı zamanda ikili operatör de denilir. Bu durumda, bu işaretlere operatör, sağında ve solunda bulunan ifadelere de operand denir. İkili operatör denmesi de, işaretin sağında ve solunda iki tane operand bulunmasındandır. 1 C = A + -B; 1 C = -B + A; Yukarıdaki iki örneği incelersek, burada eksi işaretleri tekli operatördür. Çünkü bu işaretler B’nin değerini işlem sırasında negatif yapmak için orada bulunuyorlar ve sadece sağında bir operandı var. Toplama işlemi için bir ikili operatör olan artı işareti aynı zamanda tekli operatör olarak da kullanılabilir. 1 C = +A - +B; Ama bu örnekte olduğu gibi artı işaretinin değişkenin önünde olması hiçbir şeyi değiştirmez. O yüzden sırf olabileceğini göstermek için yazdığım bu tür bir ifadeyi daha sonra hiç yazmayacağım. C#’ta çarpma işlemi yapmak istediğimizde çarpma için gerçek dünyada kullandığımız gibi bir çarpı işaretinin olmadığını göreceksiniz. Bu işlemi asteriks ile yapıyoruz. Asteriks işareti genelde bütün programlama dillerinde çarpma için kullanılır. 1 Alan = En * Boy; Bazı programcılar asteriks için yıldız kelimesini kullanır, ama Alan eşittir En çarpı Boy demek istedikleri bellidir. Klavyede bölme işlemi için de, matematikteki bölme işareti yoktur. Bunun için bölü işaretini kullanacağız. 1 Saat = Dakika / 60; Saat eşittir dakika bölü altmış. Bölme İşlemi ve Sıfıra Bölünme Durumu Dört temel matematiksel işlemden kuşkusuz en zoru bölme işlemidir, çünkü tamsayılarla bölme işlemi yaparken bir takım problemler ortaya çıkar. Şimdi 3 tane ekmek var ve bunu 2 kişi eşit paylaşacaklar diye düşünelim. 1 int ekmek, kisi, hak; 2 ekmek = 3; 3 kisi = 2; 4 hak = ekmek / kisi; Bu örnekteki hak neye eşittir? Kesinlikle 1.5 değil, çünkü hak değişkeni tamsayı olarak tanımlanmış. ekmek ve kisi değişkenleri de tamsayı. Eğer gerçekten 1.5 çıksın istiyorsak o zaman başka yöntemler var, onları ilerde tartışacağız. Burada tamsayı olarak sonuç çıkmasının nedeni, iki tane tamsayı arasında yapılacak herhangi bir işlemin sonucunun yine tamsayı olması gerektiğidir. Bu kuraldan dolayı C#, iki tamsayı arasında bölme işlemi gerçekleştiğinde sonucun küsurat kısmını atar ve tamsayı kısmını alır. Küsurat kısmını atma işlemi, negatif tamsayılarla işlem yaparken de gerçekleşir. Aşağıdaki örnekte sonuç -1.5 değil, -1 olacaktır. Küsuratı atma işlemine sıfıra yuvarlama da denir. Bir tamsayı bölme işleminde sonuç, sıfıra en yakın olan bir sonraki tamsayıdır. 1 int ekmek, kisi, hak; 2 ekmek = 3; 3 kisi = 2; 4 hak = ekmek / kisi; 5 kalan = ekmek % kisi; İşlem sonucunda hak, 1 çıkacaktır. Her kişiye 1 tane ekmek düşüyor. kalan ise 1 ekmektir. Kalanı bu şekilde elde edebiliriz. Negatif sayılarla yapılacak kalan bulma işleminde ise sonuç her zaman % işaretinin solundaki sayının işareti ile aynıdır. Kalan operatörü ile yapabileceğimiz güzel uygulamalar var. Bunlardan birkaçını inceleyelim. Mesela 1995, 2005 gibi dört basamakla yazılan yılları 95, 05 gibi 2 basamaklı halde yazmak isteyebiliriz. Bu durumda kalan operatörü işimize yarar. 1 IkiBasamakliYil = DortBasamakliYil % 100 ; Sonuç her zaman 00 ile 99 arasında olacaktır. Sonuç her zaman 00 ile 99 arasında olacaktır. Eğer bir işin sonucu toplam dakika olarak verilmişse, bunu saat ve dakika olarak ayırmak istersek, bunu kalan operatörü ile yapabiliriz. Eğer bir işin sonucu toplam dakika olarak verilmişse, bunu saat ve dakika olarak ayırmak istersek, bunu kalan operatörü ile yapabiliriz. 1 Saat = ToplamSure / 60; 2 Dakika = ToplamSure % 60; Bir sayının diğer bir sayıya bölünüp bölünemeyeceği ile ilgili durumlarda da kalan operatörü kullanılabilir. Artık yıl hesabı bu şeklide yapılır. Eğer bir yıl dörde bölünebiliyorsa artık yıldır. Eğer Yil % 4 ifadesi sıfıra eşit olursa Yil sayısı dörde tam bölünüyor demektir ve dolayısıyla artık yıldır. Şimdi aşağıdaki ifadeyi dikkatli inceleyelim. Bu işlemde bir problem var. 1 A = 3; 2 B = 0; 3 C = A / B; Yukarıdaki bölme işleminin sonucunda division by zero denilen istisna oluşur ve bu işleme tamsayılarda izin verilmez. Şimdi aşağıdaki şekilde bu örneği baştan yazalım ve sonucunu çalıştırıp görelim. 1 using System; 2 class SifiraBolunme 3 { 4 static void Main() 5 { 6 7 int A, B, C; 8 9 A = 3; 10 B = 0; 11 12 Console.WriteLine (A); 13 Console.WriteLine (B); 14 15 C = A / B; 16 17 Console.WriteLine (C); 18 } 19 } Program çalıştığında ekrana A ve B değişkenlerinin değerlerini yazar ve daha sonra aşağıdaki pencere çıkar. Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. Eğer iptal seçersek aşağıdaki pencere gelir. Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. Just – In – Time Debugger penceresinden de no seçtikten sonra aşağıdaki ekran gelir ve istisna, konsol ekranında görüntülenir. Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. C değişkenini ekrana yazan Console.WriteLine ifadesi, program kesildiğinden dolayı görüntülenmez. Bir program, üç evreden geçer. Yazma, derleme ve çalıştırma evreleri. Genelde program hataları yazma evresinde yazım hataları olarak meydana gelir. Bu örneğimizde ise çalıştırma evresinde ortaya çıkan bir istisna var. Program çalışmaya başlıyor ve yarısına gelince kesiliyor. Programı kesip ekrana sebebini yazan sınıf ise System isim uzayındaki System.DivideByZeroException sınıfıdır. Daha sonra, başka bir yazıda bu sınıfı kullanarak oluşan istisna durumlarla başa çıkma yollarını inceleyeceğiz. Eğer yukarıda yazdığımız programda C = A / B ifadesini C = 3 / 0 haline getirip yeniden derlersek derleyici aşağıdaki ekranda görülen hatayı derleme evresinde algılayacak ve programı derlemeyecektir. Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. Şu ana kadar yaptığımız aritmetik işlem örneklerinde hep iki tane sayı kullandık. Karmaşık işlemleri de bir ifadede yazabiliriz. 1 using System; 2 class IslemOnceligi1 3 { 4 static void Main() 5 { 6 7 int A = 2, B = 4, C = 5; 8 9 int D = A / B + C + 2*A; 10 11 Console.WriteLine (D); 12 } 13 } Çarpma ve bölme işlemlerinin toplama ve çıkarma işlemlerine göre önceliği vardır. İşlemleri soldan sağa doğru incelersek, önce A/B işlemi meydana gelir, 2*A işlemi hesaplanır ve sonuçta çıkan üç tane sayı toplanır. Bölme ile çarpma işlemi aynı önceliğe sahiptir. Toplama ile çıkarma da öyle. Eğer bunlardan ikisi, mesela bölme ve çarpma, aynı ifadede yan yana gelirlerse, soldan sağa doğru bakılıp daha solda olan daha önce yapılır. Parantezin önceliği çarpma ile bölme, toplama ile çıkarma işlemleri ile kıyaslandığında daha yüksektir. O zaman, daha önce yapılmasını istediğimiz işlemleri parantez içine almalıyız. 1 using System; 2 class IslemOnceligi2 3 { 4 static void Main() 5 { 6 7 int A = 2, B = 4, C = 5; 8 9 int D = (A + B) + (C + 2*A – C/(B – A) ); 10 11 Console.WriteLine (D); 12 } 13 } Yukarıdaki örnekte ilk olarak en içteki parantez olan B – A işlemi yapılır. Daha sonra diğer parantezlerin içindeki işlemler, en sonunda da toplama ve çıkarma yapılır. Tekli artı ve eksi operatörleri ise hem çarpma ile bölme, hem de toplama ile çıkarmadan daha yüksek önceliğe sahiptir. Eşittir operatörü ise öncelik tablosunun en altındadır. Yaptığı iş, sağdaki ifadeyi soldaki değişkene atamaktır. Bir ifade içerisinde birden fazla eşittir operatörü kullanılabilir. 1 A = B = C = 10; Yukarıdaki örnekte önce C değişkeni 10 değerini alır, daha sonra B değişkeni C değişkenine eşit olur, daha sonra da A değişkenine B değişkeni atanır. Şimdi aşağıdaki ifadeyi inceleyelim. 1 C = (A = 10) + (B = 20); Önce A değişkeni 10, B değişkeni de 20 değerlerini alır, daha sonra da C değişkenine bunların toplamı atanır. Yukarıda görülen ifadeyi parantezleri kullanmadan yazmak mümkün olmaz. Mümkün olamaması da toplama işleminin atama işlemine göre önceliğinin olmasından kaynaklanır. Çünkü, yukarıdaki ifadeyi aşağıdaki gibi yazdığımızda üçüncü operand olan + işaretinin solundaki ifade değişken olmaz. 1 C = A = 10 + B = 20; Yazmanın mümkün olamayacağı diğer bir ifade de aşağıda görülen, hiçbir işlevi olmayan ifadedir. 1 A + 20; Programlama dillerinde, bir değişkenin değerinin üzerine bir ilave yapmak, ya da bir eksiltme yapmak ihtiyacı çok sık görülür. 1 ToplamOgrenciSayisi = KatilanOgrenciSayisi + IzinliOlanlar; Yukarıdaki ifadeyi yazarken aynı değişken adını tekrar yazamktansa aşağıdaki gibi yazmak mümkündür. 1 ToplamOgrenciSayisi += IzinliOlanlar; Bu örnekteki += operatörlerine birlikte, bitişik atama operatörü de denir. Bitişik atama operatörünü diğer dört işlem operatörleri ile de yazmak mümkündür. 1 Devamsizlar -= GecGelenler; Karmaşık ifadeler yazarken de birleşik atama operatörü kullanabiliriz. 1 C = (A += 4) / (B *= 7); Artırma ve Azaltma Operatörleri Programlamada bir değişkenin değerini 1 artırmak ve bir azaltmak da çok yaygındır. Bunu yapmak için aşağıdaki gibi bir ifade yazılabilir. 1 A = A + 1; Bu ifadeyi daha kısa ve kolay yazmak da C#ta mümkündür. 1 A += 1; Şimdi bunu daha kolay ve kısa yazalım. 1 A ++; ++ operatörü artırma operatörü olarak da söylenir, C tabanlı dillerde vardır ve yaygın kullanılır. Tabiî ki eksiltme operatörü de vardır. Bu da -- operatörü. Operatörlerin bu şekilde yazılması sonek şeklinde yazmaktır. 1 A --; Artırma ve eksiltme operatörleri, bu şekilde yapılabileceği gibi, önek olarak da yazılabilir. 1 ++A; 2 --B; Önek ve sonek arasında bir nüans vardır ve önemlidir. Aşağıdaki örneği çalıştırırsak aradaki farkı görebiliriz. 1 using System; 2 class ArtirmaEksiltme 3 { 4 static void Main() 5 { 6 7 int A = 2, B = 4, C, D; 8 9 C = A++; 9 D = ++A; 10 11 Console.WriteLine (C); 11 Console.WriteLine (D); 12 } 13 } A değişkeni başlangıçta 2 dir. Sonra 9. satırda C değişkeni, A değişkeninin 2 olan değerini alır, daha sonra A, 1 artarak 3 olur. 10. satırda ise önce A, 1 artırılıyor yani 4 oluyor, daha sonra da A’nın değeri, D’ye atanıyor. Yani D, 4 oluyor. 17. ve 18. satırlarda ise ekrana yazdırıp test ediyoruz |
|
16 Mart 2009, 23:01 | #10 |
Guest
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
| Cevap: C# Hakkında Herşey. C# Yorum Cümleleri Yorum Cümleleri Şimdi yaptığımız çalışmalar çok kısa ve basit olsa da, gerçek bir program çok uzun, karmaşık ve anlaşılması güç olabilir. Programcı bazen bir şey denemeye başlar, bitirir ve bitirdiği zaman da ne yaptığını unutur. Bazen de bizim yazdığımız programı başkaları devam ettirmek durumunda olabilir. Diğer bir deyişle kodumuzun dokümantasyonunu yapmamız gerekebilir. Değişkenleri isimlendirirken, anlamlı isimler seçmek gerektiğinden bahsetmiştim. Ama sadece değişkenlerin anlamlı isimlere sahip olması yetmez. Bazen anlamlı isimler seçerken de çok açık, anlaşılır seçemediğimiz durumlarda işin içinden çıkılmaz olur. Yalın saylar kullanmaktan kaçınmak da kolalık sağlar. Mesela aşağıdaki örnek çok açık değildir: 1 HaftalikUcret = 80 * GunSayisi; Bunun yerine aşağıdaki gibi bir kullanım daha açıklayıcı olur: 1 GunlukUcret = 80; 2 HaftalikUcret = GunlukUcret * GunSayisi; Değişkenlerin anlamlı isimlere sahip olması ve tanımlanmamış sayıları kullanmaktan kaçınmak, programcıların kendi kendisinin dokümantasyonunu yapan programlar yazmak için kullandıkları yöntemlerdir. Yorum cümleleri yazmak da kendi kendisinin dokümantasyonunu yapan program yazmanın güzel bir yoludur. Yorum cümleleri, derleyici tarafından dikkate alınmayan, ama programın üzerinde çalışacak olanlar için açıklayıcı bilgiler içeren, programcı tarafından programın yazıldığı esnada ya da daha sonra eklenen yazılardır. Programcılar genellikle yorum satırları yazmak istemezler. Çünkü yorum satırları programın çalışması açısından hiçbir şey ifade etmez. Program bittikten sonra ve çalışmaya başladıktan sonra yorum satırları ekleyebilirsiniz. Fakat yazma aşamasındayken yorum satırı eklemek daha iyi bir yaklaşımdır. Zira, daha sonra unutacağınız bazı şeyler o anda aklınızdadır ve onları yazarsanız kaybolmamış olur. C# iki çeşit yorum satırını destekler. Bunlardan birincisi tek satırlık yorum cümlesi denilen iki tane sağa eğik çizgi ( // ) kullanmaktır. İlk olarak C++ dilinde kullanılan ve daha C programcılarının da kullanmak istediği tek satırlık yorum cümlesi, daha sonra C diline de eklendi. Bu şekilde bir kullanımda satırın sonuna kadar olan her şey, derleyici tarafından yorum cümlesi olarak kabul edilir. C# da tek satırlık yorum cümlesi yapısını miras almıştır. 1 int Ogrenciler = 32; //Bir sınıfın öğrenci mevcudu. C#’ta genellikle satır sonları önemli değildir. Bir çok ifade tek satırda yazılabileceği gibi bir ifadeyi birden çok satıra bölmek de mümkündür. Bu yapı ifadeler arasında bırakılan fazladan boşluklar ya da diğer bir deyişle beyaz boşluklar gibidir. Tek satırlık yorum cümleleri ise bu kuralın dışındadır. Çünkü yorum cümlesi, satırın bittiği yerde sona erer. Bu durum C# dilinde, satır sonlarının diğer beyaz boşluklardan farklı değerlendirildiği çok nadir durumlardan biridir. Diğer yorum cümlesi yazma şekli de sınırlanmış yorum cümlesidir. C’de uzun yıllar tek yorum cümlesi yazma şekli sınırlanmış yorum cümlesi oldu. /* karakterleri ile başlar, */ ile biter. Bir sınırlanmış yorum ifadesi birden çok satır tutabilir. /* karakterleri ile başlar, alt satırda da devam edebilir, */ karakterleri ile sona erer. Yorum cümleleri derleyici tarafından hiçbir şekilde dikkate alınmaz. 1 /* Bu satırda yorum cümlesi başladı, 2 Alt satırda devam etti, hala devam ediyor, şimdi bitti */ Yorumun kendisi /* karakterlerini içerebilir, derleyici bunu kabul edebilir. 1 /* Şimdi yorumun içinde /* karakteri kullandım, ama problem olmadı. */ Her iki yorum cümlesi türünü iç içe kullanabilirsiniz, ama bazen problem olur. Mesela aşağıdaki gibi bir kullanım yanlıştır: 1 // Tek satırlık yorum cümlesi /* sınırlanmış yorum cümlesi, 2 Sınırlanmış yorum cümlesinin devamı. */ Yukarıdaki yorum cümlelerinin kullanımının yanlış olmasının sebebi, her iki türün de anlamlarından kaynaklanıyor. // karakterleri, önünde bulunan satırın sonuna kadar tamamını yorum cümlesi kabul eder. Bu durumda alt satırda devam ettiğini düşündüğümüz yorum cümlesinin başlama karakterleri olan /*, hiç algılanmamış olur. Bu durumda alt satırdaki */ karakterlerinin daha önce başlamış bir yorumu bitirdiğini fark edemez. Hata olur. Oysa aşağıdaki kullanım doğrudur: 1 /* sınırlanmış yorum cümlesi // Tek satırlık yorum cümlesi */ Derleyici // ifadelerini dikkate almaz, çünkü /* karakterleri ile başlan yorum cümlesi */ karakterlerine kadar devam eder. // karakterleri de yorumun bir parçası kabul edilir. Bir çok programcı, yazdıkları kod sayfalarının en üstüne aşağıdaki gibi bir açıklayıcı ifade eklemeyi uygun bulur: 1 /************************************************** **************************** 2 3 ExcelBenzeri.cs 4 5 Yazan Yunus Özen, Mart 2006 6 7 Bu Excel benzeri programı gördükten sonra Excel kullanmak istemezsiniz artık 8 9 ************************************************** ****************************/ Yukarıda görülen yorum cümleleri de standart /* karakterleri ile başlar, */ ile biter. Ama aradaki fazladan asteriksler estetik için koyulmuş, özel bir anlam ifade etmiyor. Bunun gibi, yazdığımız her sınıfın veya yöntemin başına açıklama cümleleri ekleyebiliriz. Çok uzun bir program yazmışsak, programın başkaları tarafından anlaşılabilmesi böylece çok kolaylaşmış olur. Yazdığımız ifadeleri de program içerisinde hemen bir üst satırlarına tek satırlık oyrum cümlesi ekleyerek anlaşılır hale getirebiliriz. 1 // Burada bir işçinin haftada kazanacağı parayı hesaplıyorum. 2 HaftalikUcret = GunlukUcret * GunSayisi; Değişkenlere isim verirken, anlamlı isimler seçmek ve düzgün kodlamak bazen yetmeyebilir. Mesela bir program bloğunu denedikten sonra, fikrimizi değiştirip başka bir blok denemek isteyebiliriz. Bu durumda ilk bloğu sınırlı yorum cümleleri haline getirip diğer bloğu yazabiliriz. Gerekirse de ikinci bloğu yorum cümleleri haline getirip ilk bloğu açarız. 1 /* 2 GeldigiGunSayisi += 10; 1 KalanGun = ToplamGun – GeldigiGunSayisi; 2 */ Deneme yanılma yöntemi programlamada çoğu zaman işe yarar. Tecrübelerimiz de bize yol gösterir. Ama doğru programlamayı da öğrenmek gerekir. |
|
Etiketler |
c#, hakkinda, hakkında, hersey, herşey |
Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) | |
| |
Benzer Konular | ||||
Konu | Konuyu Başlatan | Forum | Cevaplar | Son Mesaj |
İskelet Hakkında Herşey | Violent | Biyoloji | 0 | 28 Kasım 2013 21:29 |
Lösemi Hakkında Herşey... | Kralice | Aile Evlilik ve Çocuklar | 2 | 08 Aralık 2012 14:33 |
İphone Hakkında [ Herşey ] | Julw | Bilim Dünyasından Son Haberler | 0 | 21 Ekim 2007 13:47 |
İRC Hakkında herşey!! | aLLeN34 | mIRC Scripting Sorunları | 0 | 26 Mart 2007 00:40 |