char değişkeni / C Programlama Veri Tipleri | /dev/null Web Günlüğü

Char Değişkeni

char değişkeni

Char Degişken Tipi

Char Degişken Tipi

String degiskenler karakterlik veri alabiliyordu. Char ise tahmin edeceginiz gibi daha fazla karakter almiyor! Char tipinde bir degisken yanlizca bir adet karakter alabilir ve bir byte yer kaplar hafizada. Yine string tipindeki gibi deger atamasinda iki apostrof isareti arasina en fazla 1 karakter olabilecek sekilde yazilir. Örnek bir program yapalim daha iyi anlariz.

Program Char_Tipinde_alistirma; Uses crt; var c: char; isim: string; a: byte; begin clrscr; write('Yine adinizi girin bakalim ');readln(isim); write('Simdi en fazla ',length(isim),' olacak sekilde sifindan büyük bir sayi giriniz: '); readln(a); c:=isim[a]; writeln('Sizin isminizin ',a,'. harfi "',c,'"');readln; end.

Bu örnek simdiye kadar yaptiklarimizin en karisigi gibi gözükebilir ama biraz dikkat ederseniz anlayacaginiz kesin. clrscr; komutuna kadar olan yeri biliyorsunuz. Ondan sonra isim adli degiskene ekrandan (daha sonra ayrintili olarak anlatacagimiz sekilde) bilgi girilmesi isteniyor. Ondan sonra yazilan write ifadesinde bilmedigimiz birsey var. Length fonksyonu bir string tipli ifadenin kaç karakter uzunlugunda oldugunu verir. Bunu da daha sonra anlatacagiz. Ondan sonra c:=isim[a]; ifadesinde c adli char degiskene isim degikeninin a. karakterini atiyoruz. Mesela isminiz "Osman" ise ve a degerine de 3 girdiyseniz c:= ifadesinin karsisindaki deger 'm' olur. Yani c degiskeninin degerine 'm' harfini (karakterini) atamis oluruz. Programi birkaç defa çalistirarak daha iyi anlayabilirsiniz.

Tabii bu sekilde bizim pek isimize yaramayabilir ama özellikle bir char tipindeki degiskeni readkey komutuyla kullanilarak faydalanabiliriz. Bunlara ilerde deginecegiz.

Bunlarin disinda su anda hemen kullanamayacak olsak da diger tiplere de kisaca deginelim.

Boolean Tipli degiskenler:

Degeri ya TRUE (dogru) ya da FALSE (yanlis) olabilen degiskenlerdir. Mantiksal karsilastirmalarda kullanilabilir. Hafizada 1 byte alan kaplar.

Bundan sonraki tipdeki olan dizi ve record tipleri için sonraki derslerde özel bir bölüm açip anlatacagi çünkü kullanim alanlari çok genis.

Dizi (Array) tipli degiskenler:

Dizi degisken genelde benzer bilgileri bulunduran degiskenlerdir. Örnek verirsek daha iyi anlasilir. Önceki programlarimizin birisinde hatirlarsaniz bir ögrencinin üç notunun ortalamasini bulmustuk. Peki 1 degil de ögrenci varsa ne olacak. Her birisi için üç not ve bir ortalama olmak üzere 4 degisken tanimlarsak toplam degisken tanimlamamiz lazim. Bu hem çok uzun zaman alir, hem de degisken isimlerini birbirine karistirmamiz olasidir. Bunun yerine ögrencinin 3'er notunu ve ortalamasini sadece 2 degisken kullanarak kolayca tutabiliriz. Bunun için degisken tanimlarimiz

Var notlar: Array[,] of byte; ortalama: Array[] of real;

seklinde olmalidir. Simdilik bunlari nasil kullanacagimiz fazla deginmeden geçelim çünkü diziler diye ayri bir bölümde hepsini anlatacagim.

Kayit (Record) tipli degiskenler:

Simdiye kadar bir ögrencinin adi, notlari ve ortalamasi için ayri degiskenler kullandik. Peki bunlarin hepsini bir ana degiskenin alt degiskenleri olarak tutsak daha kolay ve anlasilir olmaz mi? Özellikle bu tip degiskenler dosyalama konusunda çok isimize yarayacak. Genel olarak tanimlamasi su sekildedir:

Type kayit_tipi=Record degiskenler end; Var kayit_adi = kayit_tipi;

Gördügünüz gibi bu tip bir degiskeni tanimlamak için type etiketini kullaniyoruz ve yeni bir tip olusturuyoruz ilk önce. Sonra bir degiskeni tipi bu olacak sekilde tanimliyoruz. Hemen örnek bir program yazalim. Bunu kendi ellerinizle yazmalisiniz (ben de hep öyle yapiyorum):

Program Filiz; uses crt; type ogrenci_tipi=Record isim: string[40]; not1: byte; not2: byte; not3: byte; orta: real; end; Var ogrenci: ogrenci_tipi; Begin clrscr; write('Isminiz:');readln(monash.pw); write('1. Sinavin sonucu:');readln(monash.pw1); write('2. Sinavin sonucu:');readln(monash.pw2); write('3. Sinavin sonucu:');readln(monash.pw3); monash.pw:=(monash.pw1+monash.pw2+monash.pw3)/3; write('Ortalamaniz: ');write(monash.pw); readln; end.

Gördügünüz gibi kayit tipindeki bir degiskenin alt degiskenini nokta ile ayirarak kayit_monash.pw_degisken seklinde yaziyoruz. Isterseniz with deyimini kullanarak alt degisken isimlerini direk de kullanabilirsiniz:

yastik; uses crt; type ogrenci_tipi=Record isim: string[40]; not1: byte; not2: byte; not3: byte; orta: real; end; Var ogrenci: ogrenci_tipi; Begin clrscr; with ogrenci do begin write('Isminiz:');readln(isim); write('1. Sinavin sonucu:');readln(not1); write('2. Sinavin sonucu:');readln(not2); write('3. Sinavin sonucu:');readln(not3); orta:=(not1+not2+not3)/3; write('Ortalamaniz: ');write(orta); end; readln; end.

Bu iki program de birbirinin aynisi islemleri yapar. With Türkçe'de "ile, beraber" demektir. Simdilik bu record tipinin üzerinde fazla durmayalim. Dosyalar konusunda ayrintili olarak görecegiz zaten.

&#; Detaylı anlatım      &#; Video anlatım

İfade (expression) adı verilen yapı içinde, program değişken ve sabitlerden oluşan verilere işlemciler yoluyla bir işlem yapar. Artık, ifadeleri oluşturan veri kavramını incelemeye başlayabiliriz.

C'de aşağıda gösterilen 5 temel veri çeşidi vardır:

Anahtar kelimeVeri türü
charKarakter
intTamsayı
floatKayan noktalı sayı
doubleÇift duyarlıklı kayan noktalı sayı
voidDeğersiz

Sadece char, int ve double veri türlerinin önüne aşağıda gösterilen değiştiricileri koyarak, veri tiplerinin işaret (+/-) durumunu, byte olarak boyutlarını ve sınırlarını değiştirebiliriz. C++'da kullanılan veri türü değiştiricileri ve uygulandıkları veri türleri aşağıda gösterilmektedir:

DeğiştiriciUygulandığı veri türü
signedchar, int
unsignedchar, int
longint, double
shortint

Değişken tanımlamalarında signed değiştirici ifadesi kullanıldığında, tanımlanan değişkenin ikili sayı sistem değeri içinde en üst sırada yer alan bit'i işaret bit'i olarak kullanılır. Bu değer 0 olursa sayı pozitif, 1 olursa sayı negatif olur. Ancak, bu durumda bir bit sayının işaretini belirlemek için ayrıldığından tanımlanan değişkene atanacak değer otomatik olarak azalır.

Bilgisayarlarda, bir sayının ikili sayı sisteminde gösteriminde en solda yer alan bit, sayının negatif veya pozitif olduğunu göstermek üzere, işaret bit'i olarak kullanılır.

Pozitif bir sayıyı negatif bir sayıya çevirmek için, sayıdaki bütün bit değerlerinin tersi alınır ve elde edilen sayıya 1 değeri eklenir. Biri signed diğeri unsigned olan iki adet char ve iki adet short int veri türünden değişken tanımlayalım:

cd ve sid değişkenleri için el solda yer alan değer işaret bit'i olarak kullanıldığından, değişkenlerin alabileceği maksimum değer sırasıyla ve olacaktır. ucd ve usid değişkenleri en solda yer alan bit'i sayı değerleri için kullanabileceğinden, değişkenlerin alabileceği maksimum değer sırasıyla ve olacaktır.

C'de, unsigned, short veya long int değerlerin bildirimi yapılırken int ifadesinin kullanılması tamamen isteğe bağlıdır. Başka bir ifade ile, bu tip tanımlamalarda int ifadesini kullanmayabiliriz. Örneğin, aşağıdaki işlem satırlarının her ikisi de id adlı unsigned int bir değişken tanımlar:

C dilinde temel veri çeşitleri kullanılarak oluşturulabilen bütün veri çeşitleri ile byte uzunlukları ve sınırlarının genel olarak kullanılan değerleri ile printf() ve scanf() fonksiyonları ile kullanılan format tanımlayıcıları aşağıdaki tabloda gösterilmektedir:

C'nin diğer önemli bir özelliği de, char değişkenlerin ASCII karakter seti dışında değerler taşıyabilmesidir. Eğer, ile arasında kalan küçük int değerlerle işlem yapıyorsak, bu int değerleri atamak için int değişken yerine char bir değişken kullanabiliriz.

Veri türüBit genişliğiAlt sınırÜst sınırFormat tanımlayıcısı
printf()scanf()
char8%c%c
unsigned char80%c%c
signed char8%c%c
int16 veya 32 veya veya %d%d
unsigned int16 veya 320 veya %u%u
short int16%hd%hd
unsigned short int160%hu%hu
long int32%ld%ld
long long int (C99)64%lld%lld
unsigned long int320%lu%lu
unsigned long long int (C99)640%llu%llu
float32ee+%f%f
double64ee+%f%lf
long double96ee+%Lf%Lf

Aşağıdaki program çalıştırıldığı bilgisayardaki tanımlı veri türlerinin byte ve bit olarak genişlikleri ile limits.h ve float.h başlık dosyalarında tanımlı alt ve üst sınır değerlerini ekrana yazar.

Yukarıdaki program aşağıdaki verileri ekrana yazar.

char -> byte: 1 bit: 8 min: max: unsigned char -> byte: 1 bit: 8 min: 0 max: signed char -> byte: 1 bit: 8 min: max: int -> byte: 4 bit: 32 min: max: unsigned int -> byte: 4 bit: 32 min: 0 max: short int -> byte: 2 bit: 16 min: max: unsigned short int -> byte: 2 bit: 16 min: 0 max: long int -> byte: 4 bit: 32 min: max: long long int -> byte: 8 bit: 64 min: max: unsigned long int -> byte: 4 bit: 32 min: 0 max: unsigned long long int -> byte: 8 bit: 64 min: 0 max: float -> byte: 4 bit: 32 min: e+ max: e+ double -> byte: 8 bit: 64 min: e+ max: e+ long double -> byte: 12 bit: 96 min: E max: E+

nest...

oksabron ne için kullanılır patates yardımı başvurusu adana yüzme ihtisas spor kulübü izmit doğantepe satılık arsa bir örümceğin kaç bacağı vardır