Upload
others
View
10
Download
0
Embed Size (px)
Citation preview
BİLGİSAYARLARIN YAPISI
Bir bilgisayar sistemi donanım ve yazılım olmak üzere iki bölümden oluşur.
Donanım (Hardware): Bilgisayarın fiziksel ve elektronik yapısını oluşturan ana ve çevre birimlerinin tümüne donanım denir. Donanım birimleri görev alanlarına göre 3 gruba ayrılır. Giriş birimleri (klavye, fare vb.), çıkış birimleri (ekran, yazıcı, çizici, hoparlör vb.) ve merkezi işlem ve bellek ünitesi (anakart, merkezi işlemci, harddisk, RAM vb.)
Donanım
Yazılım (Software): Donanım birimlerini istenen işlere yöneltip bir çalışma düzeni içerisinde kullanabilmek için gerekli tüm programlardan ve veri yapılarından oluşur.
Yazılım
Giriş Birimleri
Bellek Birimleri
İletişim(Uzak, yerel)
Merkezi İşlem Ünitesi
İletişim(Uzak, Yerel)
Çıkış Birimleri
1
İşletim Sistemi(MS-DOS, Windows, Unix, Linux vs.)
Programlama Dilleri(BASIC, Fortran, C, Pascal, Java vs.)
Uygulama Programları(Word, Excel, Autocad vs.)
Veri ve Bilgi Kavramları
Veri, bir konuda gözlemler veya faaliyetler sonucu ortaya çıkan gerçeklerdir. Örneğin, hava sıcaklığının gözlenmesi sonucu elde edilen değerler, sıcaklık verileridir veya bir sınıftaki öğrencilerin herhangi bir dersten aldıkları notlar, not verileridir.
Bilgi, verilerin işlenmesi sonucu ortaya çıkan toplam değere veya faydaya denir. Örneğin, sıcaklık verilerinin ortalaması alınarak o bölgenin ortalama sıcaklığı hesaplanır veya sıcaklık verileri daha başka işlemlere tabi tutularak o bölgenin iklimi hakkında bilgi sahibi olunur. Benzer şekilde not verilerinin işlenmesi sonucu sınıfın başarısı hakkında bilgi sahibi olunur.
Bir Problemin Bilgisayarla Çözülebilmesi İçin:
Problem iyi tanımlanabilmeli ve bütün ayrıntıları ile önceden bilinmeli Problemi çözebilmek için bir sayısal hesap yöntemi bilinmeli Problem, çözümde kullanılacak programın ve bilgisayarın özelliklerine
uymalı Bilgisayarla çözüm diğer çözümlerden daha güvenilir ve ekonomik
olmalıdır. Yukarıdaki koşulları sağlayan her problem bilgisayarla çözülebilir.
Programlamanın aşamaları şunlardır:
Algoritma (hesap düzeni) Akış diyagramı Kodlama Programın kontrolü (sınama) Çıktılar ve yorumlanması Programın yeni koşullara göre geliştirilmesi (güncelleme)
Verilerİşlem süreci(Bilgi İşlem)
Bilgi
2
ALGORİTMA GELİŞTİRME
VE
BASIC PROGRAMLAMA DİLİ
A – Programlamaya Giriş
1- Program
Program, belirli bir işlemi gerçekleştirmek için bilgisayara iletilen komutlar
dizisidir.
2- Programlama dilleri
Programlama dili, programcı ile bilgisayar arasındaki iletişimi sağlamaya
yarayan araçtır. Programlama dillerinin komutları İngilizce kelimelerdir.
Örneğin; ekrana yazı yazdırmak için BASIC’te Print, Pascal’da Writeln, C’de
Printf komutları kullanılır.
Programlama dilleri üç gruba ayrılır:
Düşük düzeyli diller: Makine dilleridir (ASSEMBLY)
Orta düzeyli diller: Makine dillerine yakın dillerdir (C)
Yüksek düzeyli diller: Konuşma diline yakın dillerdir. (BASIC,
FORTRAN vb.)
Yüksek düzeyli dillerde yazılan bir program derleyici (compiler) adı verilen bir
program ile makine diline çevrilir. Bu işleme derleme (compile) adı verilir.
3
3- İşlemler
a) Matematik İşlemler: Bilgisayarda en çok kullanılan işlemlerdir.
Matematik işlemlerin bilgisayar programlarındaki karşılıkları
İşlem Matematik Bilgisayar
Toplama a + b a + b
Çıkarma a - b a - b
Çarpma a . b a * b
Bölme a ÷ b a / b
Üs alma ab a ^ b
İşlem öncelik sıraları önemlidir ve matematiksel işlemler programa aktarılırken
öncelik sıralarına dikkat edilmelidir. İşlem sıralamasında yapılan hata derleyici
tarafından fark edilemeyeceği için sonucun yanlış çıkmasına neden olur.
Aşağıdaki tabloda işlem öncelik sıraları görülmektedir.
Öncelik
Sırasıİşlem Bilgisayar
1 Parantezler ((………))
2 Üs alma a ^ b
3 Çarpma ve bölme a * b ve a / b
4 Toplama ve çıkarma a + b ve a – b
Aynı önceliğe sahip işlemler soldan sağa doğru yapılır.
Matematik gösterim Programda gösterim (kodlama)a + b – c + 2abc - 7 a + b – c + 2 * a * b * c -7
a + b2 – c3 a + b ^ 2 – c ^ 3
a – b / c + 2 * a * c – 2 / (a + b)
(a + b) ^ (1 / 2) – 2 * a * b / (b ^ 2 – 4 * a * c)
4
(a + b - c) / (a ^ 2 + b ^ 3) ^ (1 / 2) –
2 * (a * b + a * c + b * c) / 9
(a ^ 2 + b ^ 2) ^ (1 / 3) + a * b * c / (a + b / (c – b /
a ^ 3)^(1 / 2))
((a - b) ^ (1 / 5)/(a + b – c / (a * b)) ^ (1 / 4)) ^ 1 /
3)
+1 / (1 + 1/ (1 + 1 / (a * b * c)) ^ (1 / 2)) ^ (1 / 2)
Örnek: a=9 ve b=6 için
İfade Matematik eşdeğeri Sonuç
a + b ^ 1 / 2 12
a + b ^ (1 / 2) 11.449
(a + b) ^ 1 / 2 7.5
(a + b) ^ (1 / 2) 3.873
b) Karşılaştırma İşlemleri: İki değerin birbirine göre büyüklük,
küçüklük veya eşitlik durumlarını işlemlerdir.
İşlem sembolü Anlamı
= Eşittir
< > veya > < Eşit değildir
> Büyüktür
< Küçüktür
> = veya = > Büyük eşittir
< = veya = < Küçük eşittir
5
c) Mantıksal İşlemler: Mantıksal işlem operatörleri, hem
karşılaştırma hem de matematik işlemlerde kullanılır. Karşılaştırma
ifadelerinde birden fazla koşulun sağlanması istenebilir.
Mantıksal İşlem Komut
VE AND
VEYA OR
DEĞİL NOT
“VE” işleminde bütün koşullar doğru ise sonuç doğrudur. “VEYA”
işleminde koşullardan biri doğru ise sonuç doğrudur. Bütün şartların sağlanması
isteniyorsa “VE”, şartların herhangi birinin sağlanması isteniyorsa “VEYA” ve
koşulu sağlamayanlar isteniyorsa “DEĞİL” operatörü kullanılır.
Mantıksal işlemlerde de matematiksel işlemlerde olduğu gibi işlem öncelik
sıraları vardır.
Sıra İşlem Komut
1 Parantez içindeki
işlemler
(…..)
2 DEĞİL NOT
3 VE AND
4 VEYA OR
6
ALGORİTMA GELİŞTİRME
Bir problemin çözümünde izlenecek olan adımlar algoritma olarak adlandırılır.
Algoritmanın özel şekillerle gösterilmesine akış diyagramı denir.
Problemin algoritması hazırlanabiliyorsa bu problem bütün programlama
dillerinde yazılabilir.
Program yazarken izlenecek yol:
a. Programın algoritması hazırlanır, istenirse akış diyagramı çizilir.
b. Algoritma, herhangi bir programlama diliyle yazılır. (Kodlama)
c. Program çalıştırılır. (Run)
d. Derleyicinin belirttiği hatalar düzeltilir. (Syntax Error)
e. Program deneme verileriyle çalıştırılır. Böylece derleyicinin
bulamadığı hatalar yakalanmaya çalışılır. (Debug)
Algoritmalarda Kullanılan Özel Terimler
Değişken: Programın değişik aşamalarında farklı değerler alabilen bilgi
alanlarıdır. Değişken isimlendirmesinde temsil ettiği ifadeyi çağrıştıracak
şekilde olması programın anlaşılırlığını arttırır. Örneğin öğrencilerin ismi için
“ad”, “adsoyad”, “isim”; öğrencilerin aldığı notlar için “vize”, “final” gibi
değişken isimleri uygun olabilir.
Değişken İsimlerinde:
a. İngiliz alfabesinin harfleri kullanılır.
b. 0 – 9 arası rakamlar kullanılabilir.
c. Alt çizgi ( _ ) karakteri dışında özel işaretler kullanılmaz.
d. Değişken isimleri mutlaka harf ile başlamalıdır.
7
Örneğin öğrencilerin 1. vize notu için “1.VİZE” hatalı bir değişken ismidir,
doğrusu “VIZE_1” olabilir.
Aktarma: Bir değişkene değer aktarılması işlemidir.
Değişken İsmi = Değer
Eşitliğin sağ tarafındaki “değer” matematiksel, mantıksal veya karakter bir ifade
olabilir. Aktarma operatörü “ = “ ile ifadenin değeri değişkene aktarılır. Eğer
değişkene yeni bir değer aktarılırsa eski değer silinir.
Sayaç: Değişkene başka bir değer aktarıldığında eski değerin silinmesi
prensibine göre değişkenin değerinin düzenli olarak artması veya azalması
işlemine sayaç denir.
Yeni Sayaç Değeri = Eski Sayaç Değeri ± Artım
Örnek:
X = X + 3 (üçer üçer artan bir sayaç)
S = S – 5 (beşer beşer azalan bir sayaç)
Sayaç oluşturulurken, sayaç değişkenine bir başlangıç değeri verilir. BASIC
dilinde başlangıç değeri verilmemesi durumunda 0 olur.
8
Örnek: Aşağıdaki algoritmada 1 ve 5 arasındaki sayılar ekrana
yazdırılmaktadır.
1- Başla
2- S = 0
3- Eğer S = 5 ise git 7
4- S = S + 1
5- Yaz S
6- Git 3
7- Dur
Eski S Yeni S Ekran
0 0+1=1 1
1 1+1=2 2
2 2+1=3 3
3 3+1=4 4
4 4+1=5 5
Ardışık Toplama: Başlangıç değeri 0 ve artım değeri düzensiz olan bir sayaçtır.
Yeni Toplam Değeri = Eski Toplam Değeri + Sayı
Örnek: 5 sayıdan oluşan bir dizinin ortalaması probleminin algoritması
gösterilmektedir.
1. Başla
2. Toplam = 0
3. S = 0
4. EĞER S = 5 ise GİT 9
5. S = S + 1
6. Sayı GİR
7. Toplam = Toplam + Sayı
8. GİT 4
9. Ortalama = Toplam / S
10. YAZ Ortalama
11. DUR
Eski
S
Yeni
S
Sayı Eski
Toplam
Yeni
Toplam
0 0+1=1 7 0 0+7=7
1 1+1=2 3 7 7+3=10
2 2+1=3 45 10 10+45=55
3 3+1=4 32 55 55+32=87
4 4+1=5 8 87 87+8=95
Ortalama = 95 / 5 = 19
9
Ardışık Çarpma: Başlangıç değeri 1 olan çarpım sayacıdır.
Yeni Çarpım Değeri = Eski Çarpım Değeri * Sayı
Örnek: 5 faktöryeli ( 5! ) hesaplayan algoritmayı yazınız.
1. Başla
2. Faktor = 1
3. S = 0
4. EĞER S = 5 ise GİT 8
5. S = S + 1
6. Faktor = Faktor * S
7. GİT 4
8. YAZ Faktor
9. DUR
Eski
S
Yeni
S
Eski
Faktor
Yeni
Faktor
0 0+1=1 1 1*1=1
1 1+1=2 1 1*2=2
2 2+1=3 2 2*3=6
3 3+1=4 6 6*4=24
4 4+1=5 24 24*5=120
AKIŞ DİYAGRAMLARI
10
Algoritmanın özel şekillerle çizilmesi “akış diyagramı” olarak adlandırılır.
İşlem Şekil
Başla / Dur
Veri girişi
Atama
Döngü
Karar
Çıktı, Yazdırma
Bağlantı
İşlem akış yönü
BASIC PROGRAMLAMA DİLİ
11
BASIC kelimesi, “Beginner’s All-Purpose Symbolic Instruction Code” (Yeni Başlayanlar İçin Tüm Amaçlara Yönelik Sembolik Öğretim Kodu) kelimelerinin baş harflerinden üretilmiştir. 1964 yılında geliştirilmiştir. Bilgisayarda işlenen veriler iki çeşittir. Sayısal (nümerik) ve karakter (alfanümerik). Sayısal veriler, sayısal bir değeri olan tamsayılar, ondalıklı sayılar vb. gibi verilerdir. Karakter veriler ise sayısal değeri olmayan harfler, kelimeler ve diğer karakterlerdir.
BASIC Dilinde Kullanılan Değişken Türleri:
BASIC’te işlenen bilgileri temsil eden değişkenlerin yanına yazılan sembollerle bilgi tipi belirtilir.
Değişken Türü Belirtme SembolüTamsayı %Tek duyarlıklı ondalık sayı !Çift duyarlıklı ondalık sayı #Karakter $
BASIC dilinde tamsayılar -32768 ile 32767 arasında bir değer alır. Tek ve çift duyarlıklı ondalık sayılar -1.7E38 ve 1.7E38 aralığında olabilirler. Tek duyarlıklı sayı da anlamlı basamak sayısı 7 veya daha az; çift duyarlıklı sayıda ise anlamlı basamak sayısı 8 ile 18 arasındadır. Aşağıda tek ve çift duyarlıklı sayılara örnekler verilmiştir.
Tek duyarlıklı: 23.29456, -1.234567, -2.34567E-3, 1756.345! Çift duyarlıklı: 1.2345678901234567, -1.432D-12, 3.141592654#, 56#
Tek duyarlıklı sayılar için ( ! ) belirteci kullanılmayabilir. Programın başında, programda kullanılacak değişkenlerin türü belirtilirse her seferinde tür belirteci kullanılmayabilir.
DEFSTR Karakter tür belirteciDEFINT Tamsayı tür belirteciDEFSNG Tek duyarlıklı ondalık sayı tür belirteciDEFDBL Çift duyarlıklı ondalık sayı tür belirteci
Karakter değişkenler için değişken isminden sonra ( $ ) belirteci konur ve karakter tırnak (“ “ ) içinde yazılır. Örneğin; isim$ = “Ali” gibi.
BASIC’teki Veri Giriş Komutları
12
1. INPUT
Programın çalışması sırasında klavyeden programa veri girilmesini sağlar.
INPUT değişken1, değişken2, ……..
INPUT “mesaj”, değişken1, ….
Örnek:
……..INPUT aINPUT “b ve c sayılarını giriniz”, b, cd=a+b+c…….
INPUT komutundan sonra girilen değişken değeri ile istenen değişken türü aynı olmalıdır.
Örnek:………INPUT “bir sayı giriniz”, aPRINT “girilen sayının karesi=”; a^2……..
Bu örnekte eğer a için bir karakter girilirse hata mesajı alınır.
Örnek:……..INPUT “iki sayı giriniz”, a$,b$PRINT “girilen sayıların toplamı=”;a$+b$…………
Burada 5 ve 6 değerleri a$ ve b$ için girilirse program a ve b birer karakter değişken olduğu için onları sayı olarak değil sadece karakter olarak algılar ve 11 yerine 56 sonucunu verir. Buradaki + operatörü toplama işlemi yerine karakterleri birleştirme işlemini yapar.
13
2. READ-DATA VE RESTORE
Değişkenlere program içinden bilgi girilmesini sağlar. “READ” deyiminden sonra girilen değişkenlerin değerleri “DATA” deyiminden sonra sırayla girilir.
READ değişken 1, değişken 2, …..DATA değişken 1, değişken 2, …..
READ deyimleri ile istenen veri sayısı ile DATA deyimleri ile girilen veri sayısı eşit olmalıdır.
Eğer READ deyiminden sonra verilen yeni değişkenlere de DATA’daki eski değerler verilmek isteniyorsa RESTORE komutu kullanılır.
READ A, BRESTORE 50READ C, DPRINT A, B, C, D50 DATA 3, 11
Programı sonucunda elde edilen çıktı: 3 11 3 11 şeklinde olur. Böylece READ deyimleriyle istenen veri sayısı DATA deyimiyle girilenlerden daha fazla olduğu halde hata mesajıyla karşılaşılmaz.
BASIC’teki Çıkış/Yazdırma Komutları
1. PRINT
Değişken değerlerinin ekrana yazılmasını sağlar.
PRINT değişken PRINT “mesaj” değişken
Birden fazla değişken ( , ) veya ( ; ) kullanılarak ayrılır. BASIC derleyicileri 40 veya 80 karakter genişliğindeki ekranı 14 , 15 karakterlik sütunlara böler. Ayraç olarak ( , ) kullanılırsa değerler sütun başlarından başlayarak yazılır. Ayraç olarak ( ; ) kullanılırsa değerler bitişik olarak yazılır.
2. PRINT USING
14
Ekranda veya yazıcıda düzenli (formatlı) gösterim sağlar.
PRINT USING “Alan tanımlayıcı” ; Değişken ListesiAlan tanımlayıcıları çıktının hangi düzende olacağını belirtir. Karakter ve sayısal değerler için farklı alan tanımlayıcıları vardır.
a) Karakter Alan Tanımlayıcıları
! : Değişken listesinde yer alan ifadelerin sadece ilk karakterlerinin yazılmasını sağlar.
READ A$, B$, C$PRINT USING “!”;A$, B$, C$DATA İstanbul, Teknik, Üniversitesi
Ekranda İTÜ görünür.
\ n tane boşluk \ : Değişken listesindeki karakterlerin (n+2) kısmını yazar.
b) Sayısal Alan Tanımlayıcıları
# : Sayının basamaklarının yerini tanımlar. Eğer tanımlanan alan değerden büyükse değer sağa dayalı olarak yazılır. Tanımlanan alan değerden küçükse değerin önüne % işareti belirir.
. : Yazdırılacak sayının ondalık kısmını ayırmak için kullanılır.
** : Tanımlanan alan değişken değerinden büyük ise bu boşlukların yıldızlarla doldurulmasını sağlar. Ayrıca iki karakterlik ek alan oluşturur.
PRINT USING "**##.###";a,b
$$ : Yazdırılacak değerlerin başına ( $ ) işaretinin yazılmasını sağlar. Ayrıca iki karakterlik ek alan oluşturur.
**$ : Sayıların başına ( $ ) işaretinin yazılmasını ve boşlukların ( * ) dolmasını sağlar. Üç karakterlik ek alan oluşturur.
, : Tam kısım ile ondalıklı kısmı ayıran noktanın hemen önünde yer alan ( , ) işareti yazdırılacak rakamların üçer hane virgülle ayrılmasını sağlar. ^^^^ : Yazdırılacak sayının üstel formda yazılmasını sağlar. Alan tanımlayıcısından sonra yazılır.
15
BASIC’teki Döngü Komutları
1. FOR-NEXT
FOR Kontrol değişkeni = Başlangıç TO Bitiş STEP Artım…………………………NEXT Kontrol değişkeni
Eğer artım 1’er 1’er olacaksa STEP komutuna gerek yoktur. NEXT deyiminden sonra kontrol değişkeni yazılmayabilir. İç içe açılan döngüler birbirini kesmemelidir.
2. WHILE-WEND
WHILE … koşul….…………………………………………WENDKoşul sağlandığı sürece döngü devam eder.
BASIC’teki Karar Komutları
1. IF-THEN
IF’ den sonra yazılan koşul doğru ise THEN’ den sonraki işlem yapılır.
IF …koşul…THEN ….işlem…
Örnek:
INPUT “İki sayı giriniz”, a , bIF a > b THEN PRINT “a > b”IF a = b THEN PRINT “a = b”IF a < b THEN PRINT “a < b”END
2. IF – THEN – ELSE
16
IF – THEN komutunda koşul sağlanmadığı zaman program bir alt satırdan devam ediyordu. Ancak ELSE komutu ile koşul sağlanmadığı zaman yapılacak işlem belirtilebilir.
IF …koşul… THEN …koşul sağlanırsa yapılacak işlem… ELSE … koşul sağlanmayınca yapılacak işlem …
Örnek:
INPUT “iki sayı giriniz” , a , bIF a < b THEN PRINT “a < b” ELSE PRINT “a = b veya a > b”
3. IF – THEN - ELSE IF – THEN – ELSE
Eğer ikiden fazla koşul varsa bu yapı kullanılabilir.
IF …koşul 1… THEN …koşul 1 sağlanırsa yapılacak işlem… ELSE IF …koşul 2 … THEN …koşul 2 sağlanırsa yapılacak işlem… ELSE …tüm koşullar yanlış ise yapılacak işlem
Örnek:
INPUT “iki sayı giriniz”, a, bIF a > b THEN PRINT “a > b” ELSE IF a = b THEN PRINT “a = b” ELSE PRINT “a < b”END
Bazı Matematik Fonksiyonların BASIC Karşılıkları
17
Matematiksel Fonksiyon BASIC Karşılığı|x| ABS(x)
SQR(x)sgn(x)x > 0 ise sgn(x) = 1x = 0 ise sgn(x) = 0x < 0 ise sgn(x) = -1
SGN(x)
ex EXP(x)Ln(x) LOG(x)Log(x) LOG(x)/LOG(10)Sin(x) SIN(x)Cos(x) COS(x)Tan(x) TAN(x)Cotan(x) 1 / TAN(x)Arctan(x) ATN(x)Arcsin(x) ATN(x / SQR(1 – x * x))Arccos(x) 1.570796 - ATN(x / SQR(1 – x * x))Arccotg(x) 1.570796 – ATN(x)Sinh (x) (EXP(x) – EXP(-x)) / 2Cosh(x) (EXP(x) + EXP(-x)) / 2Tanh(x) (EXP(x) – EXP(-x)) / (EXP(x) + EXP(-x))Coth(x) (EXP(x) + EXP(-x)) / (EXP(x) - EXP(-x))Arcsinh(x) LOG(x + SQR(x * x + 1))Arccosh(x) LOG(x + SQR(x * x - 1))Arctanh(x) LOG((1 + x) / (1 – x)) / 2Arccotanh(x) LOG((1 + x) / (x – 1)) / 2x sayısını en yakın küçük tam sayıya yuvarlar
INT(x) INT(2.51) = 2 INT(-3.4) = -4
x sayısını en yakın tam sayıya yuvarlar
CINT(x) CINT(2.51) = 3 CINT(-3.4) = -3
X sayısının ondalık kısmını atar FIX(x) FIX(2.51) = 2 FIX(-3.4) = -3
0 ile 1 arasında rasgele bir sayı üretir
RND(x)
BASIC’teki Bazı Karakter Fonksiyonlar
18
Fonksiyon İşlevi ÖrneklerRIGHT$(A$,n) A$ değişkeninde sağdan
başlayarak n karakter alır.RIGHT$(“pamukkale”,4) =”kale”
LEFT$(A$,n) A$ değişkeninde soldan başlayarak n karakter alır.
LEFT$(“pamukkale”,5)=”pamuk”
MID$(A$,m,n) A$ değişkeninde m. karakterden başlayarak m. dahil n karakter alır.
MID$(“pamukkale”,5,2)= ”kk”
LEN(A$) A$ karakter sayısını bulur. LEN(“pamukkale”) = 9SPACE$(n) n adet boşluk koyarSTRING$(n,m) ASCII kodu m olan n
uzunluğunda bir karakter dizi oluşturur.
STRING$(5,80) = ”PPPPP”
STRING$(n,A$) A$ değişkeninin ilk karakteri ile n uzunluğunda bir dizgi oluşturur.
STRING$(5,”inşaat”) = ”iiiii”
UCASE$(A$) A$ değişkeninin tüm harflerini büyük harf yapar
UCASE$(“Pamukkale”)=”PAMUKKALE”
TAB(x) PRINT deyimi ile birlikte kullanılır. Kendinden sonra gelen bilginin ilk karakteri x’inci kolona gelecek şekilde basılmasını veya kayıt yapılmasını sağlar.
PRINT TAB(5);”İnşaat”= İnşaat
SPC(x) PRINT deyimi ile birlikte kullanılır, yazımı istenen iki değişken arasında x boşluk bırakır.
PRINT “A”; SPC(5);”B”=A B
DATE$ Sistem tarihini verir PRINT DATE$= 03-21-2003TIME$ Sistem saatini verir PRINT TIME$= 16:14:18ASC(A$) A$ karakterinin ASCII
kodunu verirASC(“P”)= 80
CHR$(x) ASCII kodu x olan karakteri verir
CHR$(80)= “P”
ASCII: American Standard Code for Information Interchange (Bilgi Değişimi için Standart Amerikan Kodu) 0'dan 255'e kadar toplam 256 (28) karakter.
19
ALT SIRALI (İNDİSLİ) DEĞİŞKENLER
20
Bir değişkene değer atandığında, bu değer ilgili değişken ismi altında bellekte saklanmakta ve program içinde işlem görmektedir. Aynı değişkene başka bir değer atandığında eski değer silinmektedir. Aynı değişkenin önceki değerlerini saklamanın yolu değişkeni alt sıralı tanımlamaktır.
DIM DEYİMİ
Alt sıralı değişkene bilgisayar belleğinde yer ayırmak için kullanılır.
DIM Değişken(indis1, indis2, …. indisN)
DIM vize(20)
Burada vize değişkenine 0'dan başlayarak 21 tane yer ayrılır. Ancak indisler genellikle 1 den başladığı için
OPTION BASE 1
komutu ile 1'den başlar ve 20 yer ayrılır. Option Base komutu unutulursa bellekte indisli değişkenler için 1 yer fazladan ayrılmış olur.
Basic’te DIM ifadesi tanımlanmadan altsıralı değişken kullanılırsa indisin alabileceği maksimum değer 10'dur.
Bir değişkene DIM deyimiyle atanandan daha büyük indis kullanılırsa indis sınır dışı" (subscript out of range) hata mesajıyla karşılaşılır.
DIM deyimiyle değişken için ayrılan yer eleman sayısından fazla ise hata olmaz ancak bellekte gereksiz yer işgal edilmiş olur.
OPTION BASE 1DIM x(8)x(1)=5x(2)=8x(3)=12x(4)=20PRINT x(2)END
Ekranda 8 görülür.
KURALLAR:
21
X(1) X(2) X(3) X(4) X(5) X(6) X(7) X(8)5 8 12 20
1- Bir değişken en çok 255 indisli olabilir.2- Bir indis en çok 32767 değerini alabilir.3- İndis değerleri ondalık veya tamsayı olabilir. Ondalık sayılar ifadeler
tamsayıya yuvarlanarak indis değeri belirlenir.
Alt sıralı/indisli Matematik İfade BASIC Karşılığıai,j A(I;J)yk Y(K)xi-k+1 X(I-K+1)yk=xk-1+3xk+xk+1 Y(K)=X(K-1)+3*X(K)+X(K+1)
BASIC’te Alt Programlar
Bir programın sık tekrarlanan bölümleri programı sadeleştirmek için ana programdan ayrılarak alt program adı altında program parçaları oluşturulur. Alt programlarla çalışılması ana programın daha kısa oluşmasına neden olmaktadır. Ayrıca, genel amaçlı hazırlanmış alt programların, başka kullanıcılar tarafından kullanılması da mümkündür.
BASIC programlama dilinde, kullanıcı tarafından DEF FN deyimiyle tanımlanmış fonksiyonlar ve GOSUB deyimiyle çağrılan alt programlar bu amaçla kullanılır.
DEF FN fonksiyon ismi (değişken listesi) = fonksiyon
Fonksiyon programın başında tanımlanır ve gerektiği zaman programın herhangi bir yerinde sadece ismi ve gerekli değişkenleri verilerek kullanılır.
Örnek:
REM silindir hacmipi=3.14159DEF FNhacim(D , H) = pi * D ^ 2 * H / 4………………………………….D1=…….V1=FNhacim(D1,2)D2=……V2=FNhacim(D2,2)PRINT V1, V2……………….
22
Eğer tekrarlanan işlemler bir fonksiyondan daha büyük ise alt programlar kullanılır. Alt programa GOSUB n deyimi ile gidilir. Burada n alt programın ilk satırının numarasıdır. Alt programın sonundaki RETURN komutu ile GOSUB komutunun altından program işleyişi devam eder.
………….GOSUB n………….………….ENDn ……….……………………RETURN
Ana program için geçerli olan tüm kurallar alt program için de geçerlidir. Değişkenler ortak olarak kullanılmaktadır. Yani bir değişkenin değeri hem ana hem de alt programda aynıdır. Bir ana programda birden fazla alt program olabileceği gibi bir alt programın içinde de başka bir alt program olabilir.
QBASIC'te program listesi dışında da alt program yazılabilmektedir. Edit menüsünden New Sub komutu seçilerek yeni bir alt program oluşturulabilir.
DECLARE SUB Komutu:
Program listesi dışında yazılmış alt program olduğunu ve bunlarla ilgili değişkenleri belirtir. Programcı tarafından yazılmazsa derleyici tarafından program listesine eklenir.DECLARE SUB Alt program ismi (değişken 1, değişken 2, …)
CALL Komutu:
Ayrı yazılan alt programları program içinde çağırmak için kullanılır. DECLARE komutunda belirtilen değişkenlerin tamamı CALL komutunda bulunmalıdır.
CALL Alt program ismi (Değişken 1, Değişken 2, ……)
CALL deyimi ve parantezler kullanılmayabilir.
Alt program ismi Değişken 1, Değişken 2, …..
23
COMMON SHARED Komutu:
Ayrı yazılan alt programlarda kullanılan parametrelerin değerlerinin ortak kullanıldığını belirtir. Genellikle ana programın ilk satırlarına yazılır.
COMMON SHARED Değişken 1, Değişken2, ….
EXIT SUB Komutu:
Ayrı yazılan bir alt program END SUB komutuyla sona eriyordu ve ana program CALL komutunun altından devam ediyordu. EXIT SUB komutuyla alt program tamamlanmadan ana programa dönülebilir.
BASIC’te Dosya (Kütük) İşlemleri
Veri giriş ve çıkışları için kullandığımız INPUT ve PRINT komutları klavyeden girilen veriyi okuyup, sonuçları ekrana yazıyordu; ancak büyük hacimli veriler söz konusu olduğunda, programın her çalışmasında bunların klavyede yazılıp sonra da sonuçların ekrandan alınması zor olmaktadır. Böyle durumlarda verilerin daha önceden açılmış dosyalardan okutulup, elde edilen sonuçların da yine başka dosyalara yazdırılması daha uygun olmaktadır.
OPEN “kütük ismi” FOR INPUT AS # dosya no OUTPUT APPEND…………..………….CLOSE # dosya no
Dosyadan veriler okunurken
INPUT # dosya no, değişken1, değişken 2
Sonuçlar dosyaya yazdırılırken
PRINT #dosya no, değişken1, değişken2
Formatlı yazdırmada
PRINT # dosya no , USING “… Alan tanımlayıcı…” ; … Değişken Listesi …
Örnek:
24
OPEN “veri.dat” FOR INPUT AS #1 OPEN "I", #1, "veri.dat"OPEN “sonuc.cık” FOR OUTPUT AS #2 OPEN "O", #2, "sonuc.cık" INPUT #1, a,bc=a+bPRINT #2, c
OPEN " O " , # kütük no, "kütük ismi" " I " " A "
Program her çalıştırıldığında çıktı kütüğü yeniden yazılır ve eski bilgiler kaybolur bunu önlemek için OUTPUT kütüğü yerine APPEND kütüğü açılmalıdır.
Kütüklerin Kapatılması
OPEN komutu ile açılan kütüklere ilişkin işlemler tamamlandıktan sonra bunların program içinde kapatılmaları gerekmektedir.
CLOSE #kütük no, #kütük no, ……
CLOSE komutundan sonra kütük ismi ve kütük numarası arasındaki ilişki ortadan kalkar. Bir kütük kapandıktan sonra onunla ilgili işlem yapılamaz. Kütük daha sonra aynı veya farklı kütük numarasıyla ve farklı kütük tipiyle açılabilir. CLOSE ifadesinde kütük numarası belirtilmezse açılan bütün kütükler kapatılır.
Kütüklerin Durumlarının Elde Edilmesi
Bir kütüğün durumu hakkında, yani bir okuma işlemi sırasında kütüğün sonuna gelinip gelinmediğinin veya program içerisinde açılan kütüklerden kaç kayıt okunduğunun veya kaç kayıt yazıldığının veya kütüğün kaç kayıttan oluştuğunun bilinmesi isteniyorsa
LOF fonksiyonu, çalışılan kütüğün uzunluğunu byte cinsinden verir.LOC fonksiyonu, kütüğün açılmasından itibaren kütükten okunan veya yazılan kayıt sayısını verir
IF LOC(1) > 30 THEN STOP (1 numaralı kütükte 30 ncu kayıt geçildiğinde program durdurulmaktadır.)
25
EOF fonksiyonu, bir kütüğün sonuna erişilip erişilmediğinin kontrol edilmesinde kullanılır.
IF EOF(1) THEN CLOSE #1 (1 numaralı kütüğün sonuna erişildiğinde kütük kapatılmaktadır.)
BASIC' DE ÇİZİM KOMUTLARI
SCREEN Komutu:
SCREEN komutu ekran çözünürlüğünü değiştirerek çizim için uygun ortamı sağlar. Çünkü yazı yazmak için daha az çözünürlük yeterli olmaktadır ve QBASIC varsayılan ortam olarak metin (text) ortamını kabul eder. Ekrandaki görüntü noktaların birleşiminden oluşur. Bu noktalara piksel denir. Çözünürlüğün artması demek ekrandaki piksel sayısının artması demektir.
SCREEN Mod
Mod Tanım0 Yazı modu, grafik çizilemez1 320 x 200 piksel, 4 renk, 25 satır 40 kolon2 640 x 200 piksel, 2 renk (siyah, beyaz), 25 satır 80 kolon7 320 x 200 piksel, 16 renk, 25 satır 40 kolon8 640 x 200 piksel, 16 renk, 25 satır 80 kolon9 640 x 350 piksel, 16 renk10 640 x 350 piksel, 9 gri ton11 640 x 480 piksel, 2 renk12 640 x 480 piksel, 16 renk13 320 x 200 piksel, 256 renk, 25 satır 40 kolon
Grafik kartımıza uymayan SCREEN Mod'ları "Illegal Function Call" hata mesajı verir. Bu durumda başka bir mod denenir.
26
PSET (Pixel Set) Komutu:
Bu komut ile ekrandaki herhangi bir yere nokta koyabiliriz.
PSET (x,y), Renk No
Renk No Renk Renk No Renk0 Siyah 8 Koyu gri1 Lacivert 9 Mavi2 Yeşil 10 Parlak yeşil3 Açık mavi 11 Parlak mavi4 Kırmızı 12 Parlak kırmızı5 Pembe 13 Parlak pembe6 Kahverengi 14 Sarı7 Açık gri 15 Beyaz
LINE Komutu:
Çizgi çizmek için kullanılır. (x1,y1) ve (x2,y2) noktaları arasında bir çizgi çizmek için
LINE (x1,y1)-(x2,y2), Renk no
Köşegeni (x1,y1) ve (x2,y2) noktaları olan bir dikdörtgen çizdirmek için
LINE (x1,y1)-(x2,y2), Renk no, B (Box)
Bu kutuyu doldurmak için
LINE (x1,y1)-(x2,y2), Renk no, BF (Box Fill)
Screen 13
(0,0) (320,0)
(320,200)(0,200)
( x )
( y )
27
CIRCLE Komutu:
Çember çizmek için kullanılır. Merkezi (x,y) yarıçapı R olan bir çemberi çizdirmek için
CIRCLE (x,y), R, Renk No
Bir çemberin tamamını değil de bir kısmını çizdirmek için renk parametresinden sonra -2 ve 2 arasında değişen başlangıç ve bitiş parametreleri kullanılır.
CIRCLE (x,y), R, Renk No, Başlangıç, Bitiş
Çemberin yatay ve dikey koordinatlarının birbirine oranını belirleyerek çemberi elips şekline dönüştürmek te mümkündür.
CIRCLE (x,y), R, Renk No, Başlangıç, Bitiş, Yatay/Düşey
Arada girilmek istenmeyen değerler boş bırakılır. Virgüller konur.
PAINT Komutu:
Ekran üzerinde belirtilen bir noktadan başlayarak ekranı belirtilen renge boyar. Kapalı bir alanla karşılaşıncaya kadar bu işlem sürer.
PAINT (x,y), Renk No
CIRCLE (100,100),75,4 PAINT (100,100),4 (Çemberin içini boyar) PAINT(200,200),4 (Çemberin dışını boyar)
BASIC'te SES KOMUTLARI
BEEP Komutu:
Programların gerekli yerlerinde bazen sesle uyarı vermek gerekebilir. BEEP komutu belirli bir tonda ve standart uzunlukta zil sesi çıkarır. Komutun kullanım parametresi yoktur.
SOUND Komutu:
BEEP komutu hep aynı sesi çıkardığı için farklı uyarı mesajları için yeterli olmayabilir. SOUND komutu iki parametreyle kullanılır. Birincisi frekansı, ikincisi ise uzunluğu verir.
28
SOUND frekans, uzunluk
Frekans parametresi 37 ile 32767 arasında değişebilse de 14000 den yüksek frekanslı sesler insan kulağı tarafından duyulamaz.
SLEEP Komutu:
Programın belirtilen sürede veya bir tuşa basılıncaya kadar durmasını sağlar.
SLEEP Zaman
Burada zaman saniye cinsinden bir tamsayıdır. Zaman belirtilmezse bir tuşa basılıncaya kadar bekler.
29