31 Ekim 2016 Pazartesi

printf () ve scanf()


printf () - Tip belirleyici (conversion specifier)

% işareti ile başlar ve bir veya iki karakterden oluşur (%d gibi). Ekrana yazdırılmak istenen değişkenin tipi, % işaretinden sonra belirtilir. Ayrıca biçim ifadesinin içine, sola - sağa yaslama, noktadan sonra x basamak yaz vb gibi isteklerimizi belirten karakterler de ekleyebiliriz.

Gerçek sayıların yazdırılmasında, noktadan sonra yazılacak basamak sayısı durumların ifade edilmesi için ve tamsayıların aynı hizada yazdırılması için nokta operatörü veya rakamlar kullanılır.Aynı şekilde karakter katarlarının sağa ya da sola dayalı yazdırılması için veya bir karakter katarındaki karakterlerin kaç tanesinin yazdırılacağını belirtmek için de yine nokta, eksi gibi operatörlerin ve rakamların çeşitli kombinasyonları kullanılır.




 scanf() Fonksiyonu


Birçok programda ekrana verilerin bastırılmasının yanı sıra klavyeden veri okunması gerekebilir.
scanf() fonksiyonu klavyeden veri okumak için kullanılan fonksiyondur. Tip belirleyicileri printf fonksiyonu ile aynı mantıkta kullanılır ve % sembolü ile ifade edilir.

Örneğin klaveden bir x tamsayısı okumak için aşağıdaki ifade kullanılır:

    scanf("%d", &x);


C'de Operatörler

Operatörler

Operatörler, değişkenler veya sabitler üzerinde matematiksel ve karşılaştırma işlemlerini yapan simgelerdir. Yani bir operatör bir veya daha fazla değişken üzerinde işlem yapan semboldür.

C programlama dilinde 4 tip operatör bulunmaktadır.
Aritmetik Operatörler
Atama Operatörleri
Karşılaştırma Operatörleri
Mantıksal Operatörler



a = b + 10;
c = d + c * e –f /g + h % j;
z = u[1] * u[2];
x = 10;
a = b = c = 0;


Bu operatörler bir değişkene, bir sabit veya bir aritmetik ifade atamak (eşitlemek) için kullanılır.




Birleşik atama: Bazı ifadelerde işlem operatörü ile atama operatörü birlikte kullanılarak, ifadeler daha kısa yazılabilir.




Eğer ifade
     değişken = değişken [operatör] aritmetik ifade;
şeklinde ise, daha kısa bir biçimde
    değişken [operatör]= aritmetik ifade;
olarak yazılabilir.













C'de Sabitler


Sabitler

Sabit bildirimi, başlangıç değeri verilen değişken bildirimi gibi yapılır.
Ancak, veri tipinin önüne const anahtar sözcüğü konmalıdır.
Sabit içerikleri program boyunca değiştirilemez. Yalnızca kullanılabilir.
Genellikle, sabit olarak bildirilen değişken isimleri büyük harflerle, diğer değişken isimlerinin ise küçük harflerle yazılması (gösterilmesi) C programcıları tarafından geleneksel hale gelmiştir.

const float PI = 3.142857;
const double NOT= 12345.8596235489;
const int EOF= -1;
const char[] = "devam etmek için bir tuşa basın...";

C'de Değişkenler

Değişkenler


Değişken, program içinde kullanılan değerlere bellek üzerinde açılan alanlardır. Bu alanlar bir değişken ismi ile anılır. Değişken isimlendirilmeleri, tanımlayıcı kurallarına uygun biçimde yapılmalıdır. C’de tüm değişkenler kullanılmadan önce programa bildirilmelidir.
Bu bildirim esnasında, değişkenin veri türü belirlenir.

Örnek:
veri_türü değişken_adı;
int sayac;



Örnekler
int x;
int x1, y1, z1;
long d, d1;
char c;
char c1, c2, c3;
float a;
float a1, a2, a3;
int u[3];
float k[10*20];
int x = 1;
int x1 = 10, y1 = 20, z1 = 30;
char c = ‘a’;
float a = 123.45;



C'de Veri Türleri


Veri Türleri

Veri tipi (data type) program içinde kullanılacak değişken, sabit, fonksiyon isimleri gibi tanımlayıcıların tipini, yani bellekte ayrılacak bölgenin büyüklüğünü, belirlemek için kullanılır.
Bir programcı, bir programlama dilinde ilk olarak öğrenmesi gereken, o dile ait veri tipleridir. Çünkü bu, programcının kullanacağı değişkenlerin ve sabitlerin sınırlarını belirler.


C programlama dilinde 5 tane temel veri tipi bulunmaktadır.
char: karakter veriler
int: tamsayı veriler
float: tek duyarlıklı kayan noktalı sayılar
double: Çift duyarlıklı kayan noktalı sayılar
void: Değer içermeyen verilerdir.


Bazı özel niteleyiciler temel tiplerin önüne gelerek onların türevlerini oluşturur:
short
long
unsigned
Niteleyiciler değişkenin bellekte kaplayacağı alanı değiştirilebilirler.
Kısa (short), uzun (long), ve normal (int) tamsayı arasında yalnızca uzunluk farkı vardır. Eğer normal tamsayı 32 bit (4 bayt) ise uzun tamsayı 64 bit (8 bayt) uzunluğunda ve kısa tamsayı 16 biti (2 bayt) geçmeyecek uzunluktadır.


İşaretsiz (unsigned) ön eki kullanıldığı taktirde, veri tipi ile saklanacak değerin sıfır ve sıfırdan büyük olması sağlanır. İşaretli ve işaretsiz verilerin bellekteki uzunlukları aynıdır. Fakat, işaretsiz tipindeki verilerin üst limiti, işaretlinin iki katıdır.

Kısa ve uzun tamsayı tutacak tanımlayıcılar için int anahtar kelimesinin yazılmasına gerek yoktur.
short s;  /* short int s; anlamında */
long k;   /* long int k;  anlamında */


Bir C programı içerisinde, veri tiplerinin bellekte kapladığı alan sizeof operatörü ile öğrenilebilir. İlgi çekici olan, bu alanların derleyiciye??? ve işletim sistemine??? bağlı olarak değişiklik göstermesidir.





C Programlama Dili Elemanları

Tanımlayıcılar:

Programcı tarafından oluşturulurlar.
Programdaki değişkenleri, sabitleri, kayıt alanlarını, özel bilgi tiplerini vb. adlandırmak için kullanılan kelimelerdir.
Tanımlayıcılar, yerini tuttukları ifadelere çağrışım yapacak şekilde seçilmelidir.
İngiliz alfabesindeki A-Z veya a-z arasındaki 26 harf ile 0-9 arası rakamlar kullanılabilir.
Sembollerden sadece alt çizgi _ kullanılabilir.
Tanımlayıcı isimleri harfle veya alt çizgiyle başlayabilir.
Tanımlayıcı ismi, rakamla başlayamaz veya sadece rakamlardan oluşamaz.
Tanımlayıcılar boşluk karakterini içeremezler.

Anahtar Sözcükler
C dilinde 32 adet anahtar sözcük vardır ve hepsi küçük harfle yazılır. Anahtar sözcükler tanımlayıcı olarak kullanılamazlar.






Diğer mühendislik alanlarında durum nasıl?


Diğer mühendislik alanlarında durum nasıl?
(Yazılımcıdan istenilenler diğer bir alandaki insanlardan istenseydi nasıl bir hikaye çıkardı.)

Sayın mimar;
Lütfen bana bir ev inşa ediniz.Ama tam olarak ne istediğimden emin değilim.Bu nedenle kendi taktirinizi kullanınız.
Evimde 2 ila 45 adet yatak odası olsun. Yatak odalarını kolaylıkla ekleyip kaldırabileyim bir şekilde planlayınız. Siz bana planları getirin ben nihaiyi kararları ona göre vereyim. Ayrıca her bir plan için tek tek maliyet dökümlerini de getirmeyi unutmayınız.Böylelikle bende bana uygun olanı seçebilirim.
Şunu da aklınızda tutun ben sonuçta maliyeti düşük olanı seçeceğim.Maliyeti şu anki evden daha düşük olmalı. Şu anda yaşadığım evde çeşitli aksilikler var(Mutfak ile ilgili sorunlarım var. Ben evde yürüdüğümde eşyalar sallanıyor ayrıca yalıtımda çok iyi değil.)
Ayrıca bu evi yıllık olarak tutmak istiyoruz yani önümüzdeki sene maliyeti daha düşük bir ev bulursak çıkarım haberiniz olsun. Tararımı yaparken de yıllık masrafları oldukça az tutun fazla paramız yok.
Lütfen en son malzemeleri kullanın ve en güzel şekilde tasarlamaya çalışın.Eğer böyle yaparsanız ev gerçekten çok güzel olur. Aaa unutmadan, mutfakta benim 1952 model Gibson buz dolabını barındıracak şekilde olsun.
Evin güvenliği bizim için çok önemli; kanunlar karşısında belirlenmiş yönetmeliklere göre evi hazırlayın yoksa olmaz. Benim eşimin annesi yılda en az bir kere bizi ziyarete gelir geldiğinde ev ile ilgili tasarım ve diğer konularda her hangi bir eksiklik bulmaya çalışacaktır aman dikkat edelim.
Eğer anneciğim her hangi bir yerini beğenmez ise o kısım ile ilgili değiştirme hakkımı elimde tutmak isterim. Lütfen şu anda beni küçük tararım ayrıntıları ile rahatsız etmeyin. Bu tasarım sizin işiniz karışmak istemem. Büyük resmi düşünün ona göre tasarlayın. Bu arada eşim yeşil renkli halıları sever tasarım buna da aklınızda tutun.Ev ile ilgili kaynak sorununu düşünmeyin. Sizin ilk önceliğiniz detaylı bir ev planı ve tanımlamaları oluşturmak. Tabi şunu da beklerim,  ben tasarımı seçtikten sonra 48 saat içinde çatının ilk şekli oluşmuş olsun.
Evi tasarlarken önce ve sonra olabilecek isteklerimi göz önemde bulundurun. Bu evi satmak istiyorum o nedenle potansiyel alıcıları için cazip olmasını da dikkat edin.
Bizim yan komşularda evlerini geçen sene yenilediler onların evlerinin de çok güzel yönleri var. Onların ayrıca büyük bir yüzme havuzları var. İnanıyorum ki güzel bir tasarım ile maliyetleri yukarı çekmeden buna benzer bir yüzme havuzu yapabilirsiniz.
Tasarımları  komple bir set olarak hazırlayın, yeni nesil inşaatçılık yöntemleri kullanabilirsiniz, bakın sizin için ne büyük bir kolaylık bu günlerde böyle anlayışlı müşteri bulmak çok zor. Ama tasarımla ilgili konuları değiştirmeyin yoksa maliyet artar aman maliyetlere dikkat.
Böyle bir proje üzerinde çalışmaktan çok mutlu olduğunuzu düşünüyorum. Bunun gibi tasarımları çok özgür bir şekilde yapılacak olmak ve yeni inşaat yöntemleri kullanmak güzel olsa gerek.
Unutmadan bu arada karım biraz önce söyledi evde olacak bu işlerden ötürü çok ses çıkmasın. Tabi mimar sissiniz nasıl olacağını da siz bizden daha iyi bilirsiniz.
Daha önceden inşaat yaptırma işine girdim ama olmadı umarım bu sefer olur.Eğer siz yapamazsanız başka bir mimar bulurum.
Belki de bu evi yenilemek yerine güzel bir tatil yapsam daha iyi olur neyse başladık bir kere beni bilgilendirin. Sizden haber bekliyorum.






Eğer yazılım içerisinde bir hata bulmuş ve diğerlerini keşfedemiyorsanız ne olur?

Parody “Ormanda bir ağaç düşerse gerçekten ses yapar mı?”
Görülemeyen hata hatamıdır?
Görülemeyen hatalara örtük(gizli) hata“latent bugs”

Bulunan bütün hatalar çözümlenemezmi ? Neden?

Yeterli bilgi birikimi eksikliği!
Bazen yeterli zaman yoktur!
Bazı son tarihler ertelenemez.
Bazen çok riskli olabilir!
Murphy’nin koduna dokunma
Buna değer mi!
Bazı ek özellikle bekleyebilir!
Neden bir sonraki sürüm için müşteriden ücret almayalım ki?
Kod ile ilgili bir hata olmaya bilir!
Tanımlama yanlışlığından olabilir