10 BILGISAYAR

bölüm 3

DEĞİŞKENLER
Temel programlama işlevlerini gerçekleştirebilmek için “değişkenler” kullanılmaktadır. Değişken, adından da anlaşılabileceği gibi  programcı tarafından tanımlanan ve  istenildiğinde veya her program çalıştırıldığında değeri değişebilen nesneleridir. Örneğin, programcı "isim" adına bir değişken tanımlayıp program içerisinde bu değişkene "Ali", "Veli" gibi istediği herhangi bir değeri atayabilir ve ihtiyacı olduğunda bu değeri değiştirebilir. 

Bir değişken küçük bir depo alanıdır. İçinde sayılar, kelimeler, harfler saklanabilir. Değişkenleri defalarca kullanabilsek de, içinde aynı anda sadece bir bilgi tutabilmektedirler. Değişkenler geçici olarak kullanıldıkları için, program veya bilgisayar kapanınca silinirler.

Bilgisayarın iç kısmında bir donanım olarak bir hafıza olduğunu biliyorsunuz. Bu hafızada kullanıcı girişleri ve işlem sonuçları gibi bilgiler saklanır. Bilgisayar tarafından işlenen veriler bilgisayarın hafızasında tutulur. Verilerin saklandığı bu hafıza alanına “Değişken” denir. Değişkenlerin içindeki bilgilere “değer” adı verilir. 

    X, Bellek alanın ismidir.85 sayısı ise bu bellek alanında tutulmaktadır.85 sayısının saklandığı bellek bölgesine X değişken ismiyle ulaşılır.


       Başka bir önemli nokta, değişken ve sabitlerin adlandırılmasıdır. Değişken ve sabitleri adlandırılırken İsim ve tür çok önemli olduğuna göre, değişkene isim verilirken isim ve türü birleştirebiliriz. Bu tür stilde isimlendirmeye “Macar notasyonu” denir.  Macar notasyonu, bir değişken isimlendirme metodudur. Değişkenin isminden onun tipinin ve kullanım amacının anlaşılması hedeflenir. Değişken isminin ilk kısmı değişkenin tipini gösterir. İkinci kısım ise değişkenin kullanımına yönelik adıdır.

Örnek isimlendirmeler:
tNo = tamsayı Numara
mAd = metin Ad
bCinsiyet = boolean (mantıksal) Cinsiyet

Pascal programlama dilinde değişkenlere isim verilirken dikkat edilecek hususlar şunlardır;
•	Daima bir harfle başlarlar. İlk harf veya tamamı sayı olamaz. “Ad, Soyad1 (doğru)”, “1ad (yanlış)”
•	Tanımlanan değişken adı 63 karakteri geçmemelidir.
•	Değişken ismi içinde özel karakter, boşluk, TAB ve Enter olamaz. “Okul*, Ad.soyad, Soy ad 1 (Yanlış)”
•	Pascal da ayrılmış kelimeler, komut, deyim ve fonksiyon adları değişken adı olamaz. Örneğin: “Begin, const (Yanlış)”
•	Türkçe karakterleri (ü,ı,ç,ş,İ,ö,ğ) kullanılmaz. Örneğin: “Çığır_şöç (Yanlış)”, “cigir_soc (Doğru)”
•	İlk karakterin dışındaki karakterler alfabetik ve nümerik olabilir. Örneğin: “A12”
•	Alt çizgi isimlendirmede kullanılabilir. Örneğin: “Calısma_Ucreti” 


       Değişken isimlendirme ve türünü seçmeden sonra dikkat edilecek konu da değişkenin ilk değerinin ne olacağına karar vermektir. İlk değeri belli olmayan ve program boyunca da değer atanmayan bir değişkenin değeri “belirsiz” olarak kabul edilir. Yanlışlıkla da bu değişken, işlemlerde kullanılırsa, programda istenmeyen değerler elde edilebilir. İlk değer atamaları ile böcek oluşmasını en başta engelleyebilirsiniz. 
Bir başka sık oluşan böcek de, değişken ismini program ilerledikçe unutarak ya da klavyeden yanlış tuşlara basmaktan dolayı, farklı yazmaktır. Eğer en başta “OgrenciAdi” diye değişken tanımlamış, daha sonra da “OgrencininAdi” diye değişkeni kullanmaya başlarsanız programınız yanlış çalışmaya başlayabilir. 

Genellikle değişkenler programın ilk satırlarında tanımlanmaktadır. Pascal programlama dilinde değişken tanımlama bloğu VAR (variable) başlığı ile başlar ve kullanım biçimi aşağıda verildiği gibidir.

VAR
	Değişken_ismi: tip;
	Değişken_ismi: tip;
	…
	…
	…
	Değişken_ismi: tip;

Değişken Veri Tipleri
	




                                                  









1. INTEGER (TAMSAYI) TİPİ VERİLER
      Aritmetik işlemlerde kullanılan pozitif ve negatif tamsayılardır. Örneğin 375, 8, -45, 325335 sayıları. Bu tip sayıların ondalık hanesi bulunmaz. Pascal da 5 tip tamsayı grubu vardır. Bunlar;

Tip	Alt Sınır	Üst Sınır	Bellekte Kapladığı Alan
ShortInt	-128	127	1 Byte, işaretli
Integer	-32768	32767	2 Byte, işaretli
Byte	0	255	1 Byte, işaretsiz
Word	0	65535	2 Byte, işaretsiz
LongInt	—2.147.483.648	2.147.483.647	4 Byte, işaretli

Eğer siz -100 ile 50 arasındaki sayılar üzerinde işlem yapacaksanız shortint, integer, longint veri tiplerinden birini kullanabilirsiniz. Çünkü -100 ile 50 arasına en uygun olan tip ise shortint tipidir. Diğer tiplerde uygundur ama shortint veri tipi bellekte 1 byte yer kapladığı için integer (2 byte) ve longint (4 byte) tiplerinden daha uygundur. Çünkü bellekte en az yer tutan veri tip seçmek en uygun olanıdır.




İnteger tipi değişenler kullanarak yapılan işlemlerde aşağıdaki kurallar geçerlidir;
•	İki operand (işlenen) bulunan aritmetiksel işlemlerde işlemden önce her iki işlenen ortak tipe çevrilir. Ortak tip, her iki işleneni de kapsayan en küçük integer tipidir. Örneğin integer ve byte tiplerinin ortak tipi integerdir. Word ve integer tiplerinin ortak tipi ise longint olur.  
•	İşlem, ortak tip kullanılarak yapılır ve sonuç ortak tip olur. Örneğin biri integer, diğeri ise word tipi iki sayı toplanacaksa ilk önce bunlar ortak tip olan longintte çevrilir ve sonuç longint tipinde olur.

2. REAL (GERÇEK) TİPİ VERİLER
Belirli sınırlar içindeki kesirli (ondalıklı) , üslü ve kesirsiz (tam) bütün sayıları kapsar. Real tipi sayılara kayan noktalı kayan noktalı (floating point) sayılarda denir. 4 tip real sayı vardır. Bunlar;

TİP	ALT SINIR	ÜST SINIR	BELLEKTE KAPLADIĞI ALAN	BASAMAK SAYISI
Real	2.9 * 10–39	1.7 * 1038	6 Byte	11–12
Single	1.5 * 10–45	3.4 * 1038	4 Byte	7–8
Double	5.0 * 10–324	1.7 * 10308	8 Byte	15–16
Extended	3.4 * 10–4932	1.1 * 104932	10 Byte	19–20

3. BOOLEAN (MANTIK) TİPİ VERİLER
Boolean tipi değişkenler, programlarda iki durumun birbirinden ayırt edilmesi amacıyla kullanırlar.  Bir değişken boolean tipinde tanımlanmışsa ancak iki değişik değer alabilir. Bu değer TRUE (doğru) ya da FALSE (yanlış) değerleridir.  

Bir ifadeye değişken tanımlama bloğunda true ya da false gibi değerler verilebileceği gibi program içinde de karşılaştırma işlemleri gibi işlemlerin sonucunda da true ya da false değeri atanabilir. 

True = 1  (Doğru)                        False = 0 (Yanlış) 

4. STRING TİPİ VERİLER
Alfabetik, nümerik ve diğer karakterlerin kombinasyonundan oluşan dizileri kapsar. Sayısal olmayan verilerdir. String tipi bir ifade en fazla 255 karakter uzunluğunda olabilir. String tipi değişken tanımlanırken en fazla kaç karakterlik ifade tutacağını kullanıcı belirleyebilir. Default (varsayılan) değeri 255’dir. 

Kullanım şekli:
değişken_listesi: String [x];

 
				
Ad: String [20];  Burada kullanıcı Ad isimli String tipi değişkenin uzunluğunu 20 karakter belirlemiştir.
Adres: String;    Burada kullanıcı Adres isimli String tipi değişkenin uzunluğunu belirtmemiştir. Bu yüzden bu değişken varsayılan değer olan 255 karakterliktir.

String tipi veriler, tek tırnak (‘) içerisinde yazılır.
‘Merhaba’  7 karakter
‘123’  3 karakter
’ 123’  boşluk ile 4 karakter
‘*’ 1 karakter
’ ’  boşluk var 1 karakter
’’ boşluk yok 0 karakter 
5. CHAR TİPİ VERİLER
Char tipi veriler, 255 adet olan ASCII karakterlerin sadece bir tanesinden oluşurlar.  Char tipinde tanımlanan değişken sadece bir tane karakter tutabilir. Bu karakter alfabetik, nümerik veya özel bir karakter olabilir. Char tipi veriler tek tırnak içerisinde yazılırlar. Bellekte 1 byte’lık alan kaplarlar.

‘*’, ‘3’, ‘a’, ‘.’, ‘’, ‘ ’ (boşluk)
Kullanım şekli:
değişken_listesi: Char ;


Secenek:Char;

6. ARRAY (İNDİSLİ) TİPİ VERİLER
Aynı tipten olan verileri sıralı bir biçimde bellekte tutmak için kullanılan değişkenlerdir. Birden fazla bilgi saklayan sabit ve değişkenler bu tip değişkenlerdir.

Kullanım şekli:
Değişken_listesi: Array [başlangıç değeri..Son değer] of Değişken tipi ;


Örnek:
No: Array [1..200] of integer; (200 tane integer tipi olan öğrenci numarası saklar.)





Matriks: Array [1..4, 1..3] of integer;

		
		
		
		


İki boyutlu dizi 4x3’lük matris

Son değer, başlangıç değerinden büyük olmalıdır.

7. RECORD (KAYITLI) TİPİ VERİLER
Farklı tiplere sahip olan değişkenleri bir tek değişken adı altında toplamak için yaratılan değişkenler setidir. Record tipi değişkenler birbiriyle aynı kümede yer alan ve mantıksal bir bütünlük içerisinde olan değişkenlerdir. Record tipinde değişkenler farklı tiplerde olabilir.  

Örnek:
Ogrenci = Record
               Ad: String [10];
               Soyad: String [10];
	     Evno: integer;	Alt alanlar
               Okulno: Byte;
End;


Veritabanı programlarında Record tipi değişkenler kolaylık sağlar. Örneğin okul numarası ile herhangi bir öğrenci kaydı çağrıldığında Record- end arasında bulunan bütün alanlardaki bilgilere ulaşılır. 


8. KÜME (SET) TİPİ VERİLER
     Birbiriyle ilişkili olan ve aynı tipte olan birden fazla değerin oluşturduğu sonlu sayıdaki verilerin tanımlandığı değişken tipidir. Küme tipi verilerde elemanlar real sayılardan oluşmaz. Küme elemanları virgül (,) ile birbirinden ayrılır ve köşeli parantez [] işaretleri içinde yazılırlar. 

Örnek:
[‘p’], [1..12]
[1, 2, 3, 4, 5]
Kis_aylari:=[aralik, ocak, subat]
Teksayi:=[1,3,5,7,9]

9. SIRALI TİP VERİLER
      Birbiri ardı sıra gelen değerlerdir. İnteger sayılar, İngiliz alfabesindeki büyük ve küçük harfler standart sıralı tip verilerdir. Kendimizde özel olarak sıralı tip veriler oluşturabiliriz.

10. SINIRLI TİP VERİLER
     Değişkenler içerisine yerleştirilecek olan değerlerin alt ve üst sınırı programların içinde ayarlanabilir. Örneğin Yaş işlemlerinde 15- 65 arasındaki yaş verilerinin kabul edilip dışındakilerin kabul edilmeyerek programı yönlendirebilir ve ayarlayabiliriz. 

Örnek:
TYPE
     YAS=15..65;
VAR
    OGRYAS:YAS; 
Değişkenlerin Tanımlanması
     Turbo Pascal programlama dilinde değişkenlerin tanımlanması değişken tanımlama bloğunda yapılır. Değişken tanımlama bloğu VAR ifadesi ile başlar.
Sayısal değişkenlerin tanımlanması	Sayısal olmayan değişkenlerin tanımlanması	Sıralı tip değişkenlerin tanımlanması	Record tipi değişkenlerin tanımlanması
VAR
   a:integer;
   B:integer;
   c:real;
   d:longint;
   e:word;	Var 
   ad:String;
   soyad:String [20];	TYPE
     Gunler=(pazartesi, sali, carsamba, persembe,Cuma, cumartesi, pazar);
VAR
    gun:gunler;
          .    
          . 
          .
Begin
      gun:Cuma;
          .
          . 
          .
End.	TYPE
     Ogrencikaydi=Record
          isim:String[20];
          soyad:String[20]; 
          oknum,yas:integer;
          tarihnotu:integer;
          ortalama:real;
 End;         
 
 Var 
     Ogrenci:Ogrencikaydi;
	Karakter tipi değişkenlerin tanımlanması		
Küme tipi değişkenlerin
Tanımlanması			
	Var
   Secenek:ch; 		
Type
Sayi=set of 1..9;
Var
  Tek,cift:sayi;
   .
   .
   .
Begin
  Tek:=[1,3,5,7,9];
Cift:=[2,4,6,8];
….
End.			
	Mantık tipi verilerin tanımlanması		
			Sınırlı tip değişkenlerin tanımlanması
			TYPE
  Yas=10..70;
  Harf=’A’..’Z’;
  …..
Var
  Calumayas:Yas;
  Ch:Harf;
	Var
    İfade:boolean;		
	Dizi tip değişkenlerin tanımlanması	
	TYPE
  İsim=Array [1..10] of String[15];
Var
  Ogrisim:İsim;	

SABİTLER
    Program içerisinde değeri değişmeyen ifadelerdir. Program içinde sabitler sabit tanımlama bloğu içinde tanımlanır. Böylece sabit, programın içinde tanımlanarak programın her bölgesinde tanımlandığı isim ile kullanılarak programcıya büyük bir kolaylık sağlar. Değişkenlerin isimlendirilmesinde kullanılan kurallar sabitlerin isimlendirilmesinde de geçerlidir. 

    Genellikle sabitler programın ilk satırlarında tanımlanmaktadır. Pascal programlama dilinde sabit tanımlama bloğu CONST (constant) başlığı ile başlar ve kullanım biçimi aşağıda verildiği gibidir. Görüldüğü gibi stringlere bir ifade = (eşit) işareti ile atanıyor.

CONST
      Pi=3,14;
      Ders=’bilgisayar’;


OPERATÖRLER(İŞLEÇLER)
Programa girilen veya programda tanımlanan değerler üzerinde işlemler yapan, yeni sonuçlar üreten ve gerektiğinde üretilen sonuçları istenen değişken adı altında saklayan işaretlere denir. İşleçleri dört gruba ayırırız. Bunlar, Aritmetiksel, karşılaştırma, mantık ve fonksiyonel işleçlerdir.

1.ARİTMETİKSEL OPERATÖRLER
    Aritmetiksel işlemlerin yapılmasında kullanılırlar. Bunlar;

Operatör 	İşlem 	Operand Tipi 	Sonucun Tipi 
+ 	Toplama 	real, integer 	real, integer 
-	Çıkarma 	real, integer 	real, integer 
* 	Çarpma 	real, integer 	real, integer 
/	Bölme 	Real, integer 	Real 
Div 	Tamsayı Bölme 	integer 	İnteger 
Mod 	Kalan Bulma 	integer 	İnteger 

Div, İki tamsayının bölümünün tamsayı kısmını verir.
145/8=18.125
145 div 8=18

Mod, Tamsayı tipindeki operandların bölümünü yaparak sonucun kalan kısmını bir tamsayı değer olarak üretir.

                                   23 mod 5 =3




Örnek:
islem = a + b – c + 3abc – 6 ifadesinin bilgisayar dilindeki karşılığı:  
sonuc = a + b – c + 3* a * b * c – 6






Pascal da matematiksel ifadeleri program içinde nasıl yazacağımız aşağıdaki tablodaki örneklerde görülmektedir.

Matematiksel ifade	Pascal karşılığı
A+B	A+B
A-B	A-B
 
A/B

AXB	A*B
 
B*B + C*C*C 
 

A+(B*B-2*C)/(1+(A+B)/C)

Aritmetik işleçlerin öncelik sırası şu şekildedir:
1.) Bir formülde eğer varsa İşaretli sayısal bilgiler işlemi ilk önce yapılır.
2.) Sonra varsa parantez içindeki işlemler yapılır.
3.) Sonra varsa Aritmetik fonksiyonlar yapılır.
4.) Sonra varsa, üs yapılır.
5.) Sonra varsa, çarpma ve bölme yapılır.
6.) Sonra varsa DIV tamsayıya bölme deyimi yapılır.
7.) Sonra varsa MOD deyimi yapılır.
3.) Sonra varsa, toplama ve çıkarma yapılır.
4.) Eğer aynı tür işleçler var ise, sol taraftaki önce hesaplanır.

Örnek:
İŞLEM=  

İŞLEM	ADIM
1	3+36–8/2*3	Önce üs işlemi yapılır
2	3+36–4*3	Soldaki bölme çarpmadan önceliklidir.
3	3+36–12	Çarpma ilk önceliğe sahip oldu.
4	39–12	Sol taraftaki toplama çıkarma işlemine göre öncelik sahibi
5	27	Çıkarma işlemi yapılır

Not: Parantez kullanarak karmaşık görünen bir formülü basit hale getirebilirsiniz. Ondalıklı sayılarda “.” nokta kullanmaya dikkat ediniz.

İşleçlerin önceliğini değiştirmek için parantez kullanabiliriz. Öncelik o zaman parantez içindeki işlemler için geçerlidir.

Örnek: sonuc = 3 + 2 * 7
Önce 2 sayısı ile 7 sayısı çarpılırdı. Ancak biz sonuc= (3+2)*7 gibi yazsaydık o zaman ya 3 ile 2’i önce toplanır ve toplamanın sonucu 7 sayısı ile çarpılırdı. 

Birden fazla parantez kullanabiliriz. Bu durumda da önce en içteki parantez yapılır. Parantez kalmayana dek tüm parantezler hesaplanır. Daha sonra da normal öncelikli işlemler yapılır.






Örnek:

İŞLEM= ((3 + 4) 5 / 3 –  / 5 * –7
İŞLEM	ADIM
1	((3 + 4) 5 / 3 –  / 5 * –7	Önce en içteki parantez içi yapılır.
2	(7 ^ 5 / 3 –  / 5 * –7	Üs ilk önceliğe sahiptir.
3	(16807 / 3 –  / 5 * –7	Bölme çıkarmadan daha önceliklidir.
4	(5602.33333 –  / 5 * –7	Parantez içi yapılır
5	5594.33333 / 5 * –7	Soldaki bölme daha önceliklidir.
6	1118.86667 * –7	Son adım olarak çarpma yapılır.
7	—7832.06667	Sonuç

2.KARŞILAŞTIRMA (İLİŞKİ) OPERATÖRLERİ
İki değerin büyüklüklerini karşılaştırmak için kullanılırlar.

Operatör	İşlem	İfade	Sonuç
=	Eşit	1=2	False (Yanlış)
<	Küçük	1<2	True (Doğru) 
>	Büyük	1>2	False(Yanlış)
<= ya da =<	Küçük veya Eşit	1< =2 ya da 1= < 2	True (Doğru)
>= ya da =>	Büyük veya Eşit	1= >2 ya da 1> = 2	False (Yanlış)
<> ya da ><	Farklı, Eşit değil	1< >2 ya da 1>< 2	True (Doğru)
İn	İçinde	‘1’ in [‘1’,’2’]	True (Doğru)
Operatör	İşlem	Ürettikleri Sonuç
		
İfade 1	
İfade 2	
Sonuç

Not	Değil	1	-	0
		0	-	1
Or	Veya	1	1	1
		1	0	1
		0	1	1
		0	0	0
And	Ve	1	1	1
		1	0	0
		0	1	0
		0	0	0
Xor	Veya değil	1	1	0
		1	0	1
		0	1	1
		0	0	0


3.MANTIKSAL (BOOLEAN) OPERATÖRLER
Aritmetik ve karşılaştırma operatörleri ile yapılan işlemler sonucunda bulunan değerleri mantıksal olarak karşılaştırır.

TRUE (DOĞRU) = 1
FALSE (YANLIŞ)= 0

Not (Değil) işleminde bir ifadenin tam tersi sonuç üretilir. Eğer ifademiz doğru ise sonuç yanlış olur. Yine ifademiz yanlış ise sonuç doğru olur.

And (ve) işleminde verilen iki ifadeden her ikisi doğru ise sonuçta doğrudur. Ama ifadelerden biri yanlış ya da her ikisi yanlış olursa sonuçta yanlış olur.

Or (veya) işleminde verilen iki ifadeden sadece biri ya da her ikisi doğru ise sonuçta doğrudur. Ama ifadelerden ikisi yanlış olursa sonuçta yanlış olur.
 
XOR (Veya değil) işleminde ifadelerden yalnız her ikisi doğru ya da yanlış ise sonuç yanlış olur. Ama ifadelerden sadece biri doğru diğeri yanlış olursa sonuçta doğru olur.

Öncelik	İşlem
1	Not
2	İşaretli sayısal bilgiler.
3	Aritmetik fonksiyonlar
4	Üs alma işlemi
5	*, /, Div, Mod, And
6	+, -, Or
7	<, <=, =, <>, >=, >, In
Eğer operatörler bir arada kullanılacaksa yandaki tabloda görüldüğü gibi işlem sırasına göre operatörler işlem yaparlar. Tabloda aynı öncelik satırında yer alan işlemlerde ise en soldaki operatör önceliklidir. Yani 5. satır yer alan Div ve And operatörlerinden en öncelikli olanı en soldaki olan Div operatörüdür. Eğer işlemlerde Parantez kullanılmışsa öncelik sırasına en önce yapılır.



4.FONKSİYONEL (İŞLEVSEL)OPERATÖRLER
Pascal programlarında, programcı tarafından Function başlığı ile özel amaçlar için tanımlanmış fonksiyonlardır. Amaçları programa girilen değerleri kullanarak yeni değerler üretmektir. 

5.BİT (BITWISE) OPERATÖRLER
Bit operatörleri ikili sayı siteminde olan 1 ve 0’lar üzerinde işlem yaparlar. Sayıları bir bütün olarak değil bit bit ele alarak işleme sokarlar. Bu operatörler şunlardır;

Not	Değil	İşleme Giren değer	Sonuç

		1	0
		0	1
Bit Değil (Bitwise not):bu operan sayının ikili tabandaki biçimini tümler yani 1’leri 0 yapar, 0’ları 1 yapar.
8 sayısının ikili tabandaki değeri 1000 olur. 1000 ifadesini NOT işlemin sokarsak 0111 olur. 0111 ifadesi ise onluk tabanda 7 sayısına denk gelir.  

SHL (Sola kaydırma operatörü):
Bu operatör bitleri bir sola kaydırır. 6 sayısının ikili tabandaki karşılığı 0110’dır. Aşağıdaki örnekte 0110 değerinin sola kaydırılması gösterilmiştir.
                                                                                              
0	1	1	0
1	1	0	0
                                                         


Yukarıdaki örnekte görüldüğü 0110 değerinin bitleri birer kez sola kaydırılarak 1100 değeri elde edilmiştir. 1100 ikili sayısının onlu tabandaki karşılığı 12 sayısıdır. Dolayısıyla 12 sayısı 6 sayısının 2 katıdır. Bu yüzden SHL işlemi ikili tabandaki bir sayının 2 katını alır.

Genel kullanımı ise,  A SHL B şeklindedir. Burada A kaydırılacak sayı iken B kaç kez kaydırılacağıdır.

Yukarıdaki örnekte 6 sayısı bir kez sola kaydırılmıştır. O zaman 6 SHL 1 şeklinde yazabiliriz.

SHR (Sağa kaydırma operatörü)
Bu operatör bitleri bir sağa kaydırır. 6 sayısının ikili tabandaki karşılığı 0110’dır. Aşağıdaki örnekte 0110 değerinin sağa kaydırılması gösterilmiştir.
                                                                                              
0	1	1	0
0	0	1	1
                                                         

Yukarıdaki örnekte görüldüğü 0110 değerinin bitleri birer kez sağa kaydırılarak 0011 değeri elde edilmiştir. 0011 ikili sayısının onlu tabandaki karşılığı 3 sayısıdır. Dolayısıyla 3 sayısı 6 sayısının yarısıdır. Bu yüzden SHR işlemi ikili tabandaki bir sayının yarısını alır.

Genel kullanımı ise,  A SHL B şeklindedir. Burada A kaydırılacak sayı iken B kaç kez kaydırılacağıdır.

Yukarıdaki örnekte 6 sayısı bir kez sağa kaydırılmıştır. O zaman 6 SHL 1 şeklinde yazabiliriz.

Bit ve (Bitwise and)
İkili tabanda sayıları ve işlemine tabii tutar. 1100 ile 1010 sayıları üzerinde ve işlemi yapalım. Aşağıda ve işleminin tablosu verilmiştir.
And	Ve	İşleme Giren değerler	Sonuç

		1	1	1
		1	0	0
		0	1	0
		0	0	0










Görüldüğü gibi her basamaktaki bitler kendi aralarında ve işlemine giriyor ve yeni bir sonuç elde ediliyor.

Genel kullanımı ise, X AND Y şeklindedir. Burada X ve Y işleme girecek olan sayıları ifade eder. Yukarıdaki örneği 12 AND 10 şeklinde yazarız.

Bit veya (Bitwise or)
İkili tabanda sayıları veya işlemine tabii tutar. Yine 1100 ile 1010 sayıları üzerinde veya işlemini yapalım.
OR	Veya	İşleme Giren değerler	Sonuç

		1	1	1
		1	0	1
		0	1	1
		0	0	0










Görüldüğü gibi her basamaktaki bitler kendi aralarında ve işlemine giriyor ve yeni bir sonuç elde ediliyor.

Genel kullanımı ise, X OR Y şeklindedir. Burada X ve Y işleme girecek olan sayıları ifade eder. Yukarıdaki örneği 12 OR 10 şeklinde yazarız.
XOR	ÖZEL Veya	İşleme Giren değerler	Sonuç

		1	1	0
		1	0	1
		0	1	1
		0	0	0

Bit özel veya (Bitwise exor)
Farklı bitlerin sonucunda 1 değeri, aynı bitlerin sonucunda 0 değeri üreten operatördür. Yine 1100 ile 1010 sayıları üzerinde Özel veya işlemini yapalım.




Görüldüğü gibi her basamaktaki bitler kendi aralarında ve işlemine giriyor ve yeni bir sonuç elde ediliyor.

Genel kullanımı ise, A XOR B şeklindedir. Burada A ve B işleme girecek olan sayıları ifade eder. Yukarıdaki örneği 12 XOR 10 şeklinde yazarız.

6.GÖSTERİCİ (POINTER)OPERATÖRLER
Bellekteki adresler üzerinde işlemler yapan operatörlerdir. Gösterici operatörü @ sembolüdür. 

DEĞER ATAMA
Bellekte yer kaplayan ve içeriklerine erişilebilen alanlara nesne denir. Bir ifadenin nesne olabilmesi için bellekte yer belirtmesi gerekir. Programlama dillerinde nesnelerin isimlerini kullanarak erişiriz. Pascal programlama dilinde bir nesne değişken ya da sabit olabilir.

Pascal programlama dilinde değer atamak istediğimiz nesne sabit ise nesnemize sabit tanımlama bloğunda tanımlayıp değerini atarız.

Const
   Sayı1=45;
   Kelime = ‘Merhaba’

Pascal programlama dilinde değer atamak istediğimiz nesne değişken ise değişken tanımlama bloğu içinde nesnemizi tanımlarız. Fakat değer atamaları ana program bloğu içinde yapılır.

Var 
   A,B,Say:integer;
Begin
  ….
  …
  Say:= A+ 45; 
  …
 Say:=B+58;
  …
End. 

Dikkat ederseniz ana program bloğu içinde say değişken ifadesinin içerisine yeni bir değer atarken := ifadesini kullandık. Bu ifadenin sağındaki işlemler hemen solundaki Say ifadesinin içeriğine atılır. Say ifadesi bellekte bir alan kaplayan bir değişkendir. Bildiğiniz gibi değişkenlerin içeriği sürekli olarak değişir ve yeni değerler alır. Program içinde Say ifadesine ilk önce Say:=A+45; ifadesinde A sayısı 45 sayısı ile toplanarak Say değişkenine aktarılmıştır. Daha sonra ise Say:=B+58; ifadesi ile b sayısı ile 58 sayısı toplanarak Say değişkenin yeni değeri olmuştur.


= ifadesi ile := ifadesi arasındaki fark = ifadesi sabit tanımlama bloğu içinde sabitlere değer atama için kullanılırken, := ifadesi ise ana program bloğu içinde bir işlemin sonucunu ya da bir değeri değişkenin içerisine aktarır.




A sayısı 18 ve B sayısı 37 olsun. 

Say:= A+45;   A=18 idi 18 +45 =63 eder.
                         Say değişkenine 63 sayısı aktarılır.

Say:= B+58;    B=37 idi  37+58=95 eder.
Say değişkeni içindeki 63 sayısı silinir yerine
En son işlenen ve içine atanan 95 sayısı atanır. 


Say:=B+58;










İFADE (EXPRESSION)
Değişken, operatör ve sabitlerin kombinasyonlarına ifade denir.
Örneğin:
C+d/5
F*c[i]-5
a=b+c
…
birer ifadededir.

ATOM KAVRAMI (TOKEN)
Bir programlama dili için anlam taşıyan en küçük birime atom denir. Atomlar programlama dillerinin daha fazla anlamlı parçaya bölünmeyen en yalın elemanlarıdır.

Program deneme;
Var
   X:integer;
Const
   Y=10;
Begin
    Writeln (‘Bir sayı giriniz=’);
    Readln (x);
    Writeln (x*Y);
End.

Yukarıdaki örnek Pascal programının bazı atomları şunlardır;
Program            Const        ‘Bir sayı giriniz=’
Deneme            Y              )
;                       =             ;
Var                  10             Readln
X                     ;  	End
:                      Begin	.
İnteger             Writeln   
;                      (
 
ÖRNEK: Aşağıdaki aritmetiksel işlemde işlem önceliğinin basamaklarını yazınız.

 

ÖRNEK: Aşağıdaki aritmetiksel işlemde işlem önceliğinin basamaklarını yazınız.

 

ÖRNEK: Aşağıdaki aritmetiksel işlemde işlem önceliğinin basamaklarını yazınız.

 

ÖRNEK: Aşağıdaki aritmetiksel işlemde işlem önceliğinin basamaklarını yazınız.
 



ÖRNEK: Aşağıdaki aritmetiksel işlemde işlem önceliğinin basamaklarını yazınız.
 

ÖRNEK: Aşağıdaki aritmetiksel işlemde işlem önceliğinin basamaklarını yazınız.

 

ÖRNEK: Aşağıdaki aritmetiksel işlemde işlem önceliğinin basamaklarını yazınız.

 

ÖRNEK: Aşağıdaki aritmetiksel işlemde işlem önceliğinin basamaklarını yazınız.
 
 


 
Aşağıdaki sorulardan; sonunda parantez olanlar doğru / yanlış sorularıdır. Verilen ifadeye göre parantez içine doğru ise “D”, yanlış ise “Y” yazınız.
1. Akış diyagramı; algoritmanın şekillerle ifade edilmiş hâlidir. ( )
2. Bir akış sembollü içinde aynı anda sadece bir işlem gerçekleştirebilir. ( )
3. Ayrı hazırlanan iki akış diyagramını birleştirmek için işareti kullanılır. ( )
4. Algoritmada işlem sırası önemli değildir.
5. Kullanılan her veri hemen en üstte tanımlanmalıdır. ( )
6. Bir karşılaştırma işleminin sonucu “Evet” ya da “Hayır” gibi bir ifadedir. ( )
7. Aşağıda verilen akış diyagramındaki ifadenin anlamı aşağıdakilerden hangisidir?

 
A) I değeri eğer N’ye eşit ise 1 artır, işlemleri yap
B) I değerini N’den başlayarak 1’er 1’er artır, işlemleri yap ve çık
C) I değeri 1’e eşit ise N’ye 1 ekle, işlemleri yap
D) I’yı 1’den başlayarak N’ye kadar 1’er 1’er artır. I’nın her değeri için işlemleri yap

8. Aşağıdakilerden hangisi bir problem olabilir?
A) Piyangodan büyük ikramiye çıkmasını beklerken amorti çıkması
B) Piyangodan büyük ikramiye çıkmasını beklerken büyük ikramiye çıkması
C) Arasına piyango bileti konulan kitabın yerinin bilinmemesi
D) Piyango çekilişinin her zamanki yerinde ve zamanında yapılması

9. Aşağıda akış diyagramı sembolleri ve anlamları verilmiştir.
 
()Başla/Dur       ()Bilgi Girişi       () İşlem          ()Döngü           ()Karar         ( ) Bağlantı
Yukarıdaki verilere göre aşağıdaki seçeneklerden hangisi yanlıştır?
Sembol Nu. Anlamı
A) 1 İşlem,  5 Bağlantı
B) 3 Karar, 6 Bilgi girişıi
C) 2 Karar, 6 Bağlantı
D) 3 Karar, 5 Döngü
19. Sabitlere sonradan değer aktarılamaz. ( )
20. Tüm dillerde, değişkenleri programın istediğimiz yerinde tanımlayabiliriz. ( )
21. Değişkenin ismini istediğimiz gibi verebiliriz. ( )
22. Bir değişkenin ilk değerini her zaman boşluk olarak atamalıyız. ( )
23. Atamalar çift tırnak içine yazılır. ( )
24. Kullanıcı girişlerini kontrol etmeden işlemlerde kullanabiliriz. ( )
25. Metin değişkenler üzerinde her türlü matematik işlemi yapabiliriz. ( )
26. Metin değişkenleri birbirinden çıkarabiliriz. ( )
27. Bir programda istediğimiz kadar değişken tanımlayabiliriz. ( )
28. Açıklama satırları programın çalıştırılabilir dosyasının boyutunu artırır. ( )
29. Programdaki hataların kaynağını bulabilmek için açıklama satırları ile o kısmı kapatabiliriz. ( )
30. Hangi değişken isimlendirmesi hatalıdır?
A) A5               B) _B                       C) ölçü birimi                        D) AntAlya

31. İşlemlerde ( ) kullanarak belli işlemlere öncelik sağlarız. ( )
32. Metin türünde olan değişkenlerin içinde Türkçe harfler geçmemelidir. ( )
33. "#4+ $,` *?" şeklinde bir metin değişken içeriği olabilir. ( )
34. Bir sayının karesini almak için aşağıdaki gibi yapabiliriz. ( )
sonuc = sayi * sayi

 
Bugün 14 ziyaretçi (20 klik) kişi burdaydı!
Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol