Small Basic (Kalitesiz Baskı, Düşük Boyut)

Transkript

Small Basic (Kalitesiz Baskı, Düşük Boyut)
Anne, Baba ve Öğretm enlerim ize: "Çocuklarımız bu kitabı neden kullanm alı?"
Uzun zamandır"Çocuklarımızın bilgisayar ve
internet teknolojilerini tüketim amaçlı değil
de üretim amaçlı kullanması için bir şeyler
yapmamız gerekiyor"diye düşünüyorum. Annebabalar hevesle çocuklarına bilgisayar alıyor;
devlet ve hayırseverler okulları bilgisayarla
donatıyor. Ancak, bunca yatırıma rağmen,
yaptığımız bilimsel çalışmalar çocuklarımızda
bilişim teknolojileri alanında hedeflenen bilgi
ve becerin gelişmediğini gösteriyor. Bunun
birçok sebebi var. En önemlisi ne evde ne de
okulda çocuklarımıza bilgisayar denilen aletin
oyun veya iletişim aracından çok bir üretim ve
gerçek hayattaki sorunlarımıza çare olduğu bakış
açısını kazandıramıyor olmamızdır. Bilgisayarında
oyun ve internetten başka bir şey olmayan, olsa
bile ne yapacağı konusunda yönlendirilmeyen,
yönlendirilse bile kitap veya web sitesi gibi
yeterli kaynak bulamayan çocuklarımız da
daha eğlenceli olan bilgisayar oyunları oynuyor
veya sosyal paylaşım sitelerinde geziniyorlar.
Bundan dolayı, birçok aile eve bilgisayar almayı
geciktiriyor veya aldığı bilgisayarı çocukların
kullanımına kapatıyor!
Peki, Microsoft'un kurucusu Bili Gates'in babası,
derslerden kaçarak bilgisayar kullanan, daha
ilkokul 7. sınıfta yazdığı bilgisayar oyunları ile
harçlığını çıkartan ve lise ikinci sınıfta Amerikan
Enerji Kurumu'na 250.000$'lık yazılım geliştiren
oğluna bilgisayar kullanmayı yasaklasaydı, ne
olurdu?
Yakın zamanda dünyaya gözlerini kapatan
Apple'ın kurucusu Steve Jobs teknolojik
yaratıcılık konusundaki bilgi ve becerisini
çocuk yaşlarda tanıştığı elektronik oyun
setlerine borçlu olduğunu söylerdi. Çocukların
bilgisayar, yazıcı, bilgisayar ağları ve otomobil
teknolojileri konusunda kendi tasarımlarını
Çocuklar için
Programlama
yapmasına izin veren bu oyuncaklar için Jobs:
"Bunlar bana insanın araştırma ve öğrenme ile
çevresinde bulunan görünüşte çok karmaşık
şeyleri anlayabileceğiyönünde müthiş bir özgüven
kazandırdı. Bu bakımdan çocukluğum çok talihli
geçmiştir"
Facebook'u daha 20 yaşında kuran Zuckerberg,
bilgisayar programlama becerisini 10'lu
yaşlarında Atari programları yazmayı öğrenmekle
başlamış ve ardından babasının tuttuğu bir
bilgisayar programlama hocasından aldığı özel
derslerle kendini geliştirmiştir.
örnekleri çoğaltabiliriz. Bugün dünyadaki
yazılımların büyük çoğunluğunun çıkış noktası
olan A.B.D'deki Silikon Vadisi'nde bulunan
yüzlerce firma, henüz yirmili yaşlarının başındaki
gençler tarafından kurulmuştur.
Genç yaşta büyük işler başaran bu insanların en
büyük ortak noktası teknolojinin bir üretim aracı
olduâu aerceâini cocuk vasta fark etmeleridir\
Bu kitap ve kitabın destek sitesi
www.mucitlergaraji.com
9 yaş ve üzeri çocuklarımıza, temel bilgisayar
programlama becerisi ve onun da ötesinde
bir yazılım uzmanı bakış açısı kazandırmayı
hedeflemektedir.
ileride bir yazılım uzmanı olmak istemese bile,
çocuklarımızın bilgisayarın gerçek kullanım
amacını daha iyi anlamalarını, problemlere
çözüm üretmelerini ve algoritmik becerilerini
geliştirmelerini sağlayacak olan bu çalışmanın
ülkemizden de ileride dünya devi bilişim şirketleri
çıkmasına yardımcı olmasını diliyorum.
Doç. Dr. Selçuk ÖZDEMİR
V
İm -
Anne, Baba ve Öğretm enlerim ize: "Çocuklarımız bu kitabı neden kullanm alı?"
ANNE, BABA VE ÖĞRETMENLERİMİZE: "ÇOCUKLARIMIZ BU KİTABI NEDEN
KULLAN MALIP......................................................
4
KİTAP BÖLÜMLERİNİN AÇIKLAMASI........................................................................... 6
İÇİNDEKİLER
..............................................................................
*
7
BÖLÜM 1.
PROGRAMLAMAYA HAZIRLIK
................
10
BÖLÜM 2.
YAZILIM VE PROGRAMLAMA DİLİ NEDİR?....,.......,..... ......... ...................... 22
BÖLÜM 3.
BİLGİSAYARLARIN GEREKSİNİM DUYDUĞU EN TEMEL GIDA: VERİ.............. 36
BÖLÜM 4.
KOŞUL VE DALLANMA - HANGİ KARARI VERSEM?NE TARAFA GİTSEM?
48
BÖLÜM 5.
DÖNGÜLER.............................................................. .............
58
BÖLÜM 6.
GRAFİKLERLE ÇALIŞMAK ....
68
...........................................
BÖLÜM 7.
FARKLI GEOMETRİK ŞEKİLLER.............................................................. 78
BÖLÜM 8.
KAPLUMBAĞA İLE PROGRAMLAMA........................................................84
BÖLÜM 9.
ALTPROGRAMLAR (SUBROUTİNES)...................
92
BÖLÜM 10. DİZİLER - DİZİ DİZİ DEĞİŞKENLER!...................................................... 102
BÖLÜM 11.
BİLGİSAYARLA ETKİLEŞİM - SADECE KLAVYE YETMEZ!
BÖLÜM 12.
BİR BİLGİSAYAR PROGRAMINI ADIM ADIM PLANLAMAK
.....................108
...............114
Çocuklar İçin Progı
Programlamaya
Hazırlık
| . ^ 0 w s 7 * “»
kttrucusudur.
Bu kitapta, Microsoft'un programlamışa
başlayanlar için özel olarak üretilmiş bir
yeni başlayanlar için g id ild iğ i Small
pfogramiiîT® dîlitr, 'OcrRöft S İ M İ *0
Basic dilini kullanarak bilgisayar
kolay kurulumu sebebi île bu kitapta
programlamayı öğreneceğiz. Bu sebeple,
kullandığımız Small Basic çerçevesinde
çalışmalarımız ilerlemeden Small Basic
programını internetten W gîii|w riTra
indirelim, kuralım ve onunla tanışalım.
öğreneceğin her türlü bilgi ve beceri
aynı zamanda diğer bütün programlama
dilleri için de geçerli olacaktır. Kısacası
amacıma, Small Basic'i öğretmek değil,
mw
Microsoft:
Small Basic
Small Basic tatlanarak programlamanın
temel bilgi ve becerilerini ö§fetrre$dfc
Bunda kazanılan bilgisayar programlama
Neden Small Basic?
alt yapı» ile C#, C++, Visual Basic.NET,
J#, Java gibi popüler programlama
Small Basic, Microsoft tarafından
dillerinde ilerlemek çok daha kolay ve •
çocuklar ve programlamaya yeni
hızlı olacaktır.
Programlamaya Hazırlık
Sm all Basic'i bilgisayarına kur
Small Basic programlama d ilrf
Type: WindowsInstallerPackage
Rom: ü\Usefs\mo¥3iDes6töp\5maHBasic.msf
kullanabileceğimiz editörü http://
L^Âu n
f .-CanceK -|
smallbasic.com/download.aspx
msBŞ
Computer
pufaisheıs
rfdfe. WhfefileşfmıntheInternetcanbeuseful.thlsfilelypecan
potentıaByharmyour
Ontymnsoftwarefram
'
™ trust.Wba*ether^MİMlS
adresinden bilgisayarımıza indirebiliriz
Burası aynı amanda, Microsoft'un Small
Basic İle İlgili yaptığı güncellemeleri de
bulabileceğin bir adrestir. Bu sebeple
ara sıra buraya göz atmakta fayda var!
Bu adrese bağlandığında sana "Small
Basicmsi adlı dosvavı bilgisayarınıza
indirmek istivor musunuz?" benzeri bir
soru sorulacak. İndireceğin dosyanın
büyüklüğü yaklaşık 5-6 megabayt. Bu
Yükleme işlemini başlatmak için Next
dosyayı bilgl^yaraiın/m ıal^irE
(İleri) düğmesini tıkla.
kaydet.
Lisans sözleşmesini kabul etmek İçin
Masaüstüne kaydettiğin Small lasfcjrtf
"I accept the terms in the Licence
adlı dosyayı çift tıklayarak çalıştır. Âpkfl
Aareement" ifadesinin yanındaki
penceredeki Run (Çalıştır) düğmesini
kutucuğu seç ve Next (İleri) düğmesini
tıklayarak kurulum işlemini başlat.
tıkla.
•
Small Basic,
3 ana bölümden oluşurA. Araç çubuğu
B. Kod düzenleyici
f c . Small Basic
Sonra, her bir ekran için, Next (ileri)
düğmesini tıkla.
İşlem bittiğinde başarılı bir yükleme
yapıldığını bildiren yandaki ekranı
göreceksin. Finish (Bitir) düğmesini
tıklayarak kurulumu sonlandır.
1
Small Basic'de yazdığın
Kodları çalıştırmak için
Klavyeden F5 tuşuna
basabilir veya Araç
Çubuğunda bulunan
Çalıştır düğmesini
tıklayabilirsin.
Small Basic kullanıma hazır! Ekranının
sol alt köşesinde bulunan Başlat
düğmesini tıkladığında açılan pencerede
Tüm Programlar satırını tıkla ve açılan
pencerede Small Basic'! tıklayarak
kurduğun programı çalıştır.
Sm all Basic'i tanıyalım
Small Basic'i bilgisayarına kurup
çalıştırdıktan sonra diğer sayfadaki
pencere ile karşılaşırsın. Burası, bundan
sonra sihirli programlar yazacağımız
çalışma alanımız. Biraz çalışma alanımızı
tanıyalım:
Sonraki sayfada gördüğün Small Basic
ortamında programlarımızı yazıyoruz ve
çalıştırıyoruz. Small Baslc'te 3 ana bölür
h ö t a y t A r a ç
Çubuğu
bize, yık ığ ım a pîbgpsiRS teydetme,
A S Ç Ö ± S " r T
3 F
İ l
diba ®nm kayd ilip m ii bir progratıı
açmı^-yeni p s ^ p ii ysKnııkl^R pencere
açma §fc| p g il temutfıra ulaşma $MP
f'ifciHIV
Vemtittedlr. (B) İte gösterilen ilan Small
Basic program kodlifimaı yazacağımız
Harf öuyarh kodlama
özelliği sayesinde, bir
bözsrtl^iö#4Cçbitöfl Deh® Önce
komutun ilk harfini
yazdığında o harfle
başlayan tim komutlar
listeleniri
yazdığın bir.programı açtığında da
Small Basic'todianili bu düzenleyicide
f M A l değlşirebflr-ve tekrar
fö fflgefûttfti, ipsrEprerift S a irü t
k a ^ M ^ ife ln . Kod btenteyld ılın
-iiii,rinğti -.bua t a «n alında "ise
sana aynı andı- bftdenfizla programa
teİ®®riı§ın Small Basic programının
i t M dlsaaçrM şansı fert.Her bir
ÛRttfflj w ^ o n u n u görebilirsin, "Smtfll
programa ait kodlar ayn bir düzenleyici
Basic'in yeni versiyonuyaymda. İndirmek
pencere İr s in d e açılır. 0 anda çalıştığın
için buraya tıklayın" ifadesi sana, zaman
Small Basic kodlarının butur«4ij§Li
zaman Microsoft'un daha yeni bir Small
pencereye aktif düzenleri adı verilir.
Basic ürettiğini ve İndirip kullanmaya
Aktif düzenleyicide yazacağın kodlar
başlayabileceğini bildirir.
Çalıştır (F5) düşmesini tıkladığında
devreye girecek olan kodlardır.
I
m pn
y0d'°ma
İlk programımızı yazalım
TarofmdagSr
^
Aynı zamanda, yazdığın kodlarda bir hata
Şu anda insanlık İp i k a k a m a semrim|
olması duıumunda yine aktif düzenleyici
için büyük bir adım
pencere içerisinde uyarı kutusunu
kadar sürekli başkalarının yaz.dığı
görürsün»
Şimdiye
bilgisayar programlarını kullanmışın.
Şimdi ise yazacağın programla
t»1gfS8y*râ n f'pıpm »ı gemktiğ iftfâgn
^ Is ^ B le ö a
Apğtîfagördüğün Small Basic tedynş
dCMnİemi peneiMMhi
îsöyororm •
1
■2;.
TextWindow.WriteLine ("Merhaba Dünya")
.feodun nasıl p it ş ^ f t merak #*
Ş e r Araç Çnl^uŞîandttkı
"ÇaIıştır”ı|lJ§m tsiff fMapcsjtWm:
ttşvpndtn FStfcfufl®:.tefitfı
programının çalışmasını sağlayabilirsin
Program çslşığmda ekrana “Merhaba
ûünp^-^^ıidığını görürıüm. Ya^Hn
kodlarda b t sortin yoksa yandıkine
tenztF tergârûntö île tafilişm en
g eıekfyöf. "Press anv kevto continue”
yazdığın kAıı^ı-före^pnda. teşriine
Program lam aya Hazırlık
p t e iS e v t m
fğgı . h e r t i ü i f t
b ir
p^ttfförr ^ ^ p ü B ü ı js9£p!^W Hfer
» fc iâ te rt !^ b kiavyegfen hstBiigt
Ü rty p
yattrflfiilim s i
jftta ttfM fc
Evet İlk programını yazdın ve çalıştırdın
Artık bilgîSBpmsı sea MteaedlyeMtffL
Bundan sonra bilgisayarın sen ne
s%i@n®i prte pfks*W
Yazdığımız Small Basic koduna şöyle bir
Yapman gereken sadece klavyedeki
göz atalım ve tam olarak ne yaptığımızı
aşağı yön okuna basarakTextWindow
anlamaya çalışalım. Kod düzenleyici
komutunun üzerine gelmek
pencereye TextWindow komutunun ilk
harfi olan t'yi yazdığın anda komutlar
listesi içeren bir pencere açılır.
S»*1..
İp
......ZIT
'ı m
ve "Enter"tuşuna basmak olacak.
..M K M
Harf Duyarlı (intellisense) olarak
Türkçeleştirebileceğimiz bu özellik,
kodları çok daha hızlı yazmamıza
Her komutun ik i
önemli bileşeni
bulunmaktadırM etotlar ve
Ö zellikler. Metot,
komutun yaptığı işi.
Ö zellik ise komutun
alabileceği değerleri
ifade etm ektedir. ^
yardımcı olur. Bir komutun ilk harfini
yazdığın zaman Small Basic o harfle
başlayan tüm komutları listeler. Böylece,
komutların yazılması kolaylaşır. Burada,
t harfine bastıktan sonra açılan listede
yazmak istediğimiz TextWindow
Düşünsene sadece bir harf (t) ile
komutun tamamını yazabildik!
Small Basic
bbb
Yeni
komutunu gördük.
Aç
Kaydet f
Adsız *
| -l TextWindow|
Harf duyarlı açılan listede istediğin
komutu klavyendeki aşağı/yukarı
Çocuklar İçin Programlama
yön oklarını kullanarak seçebilir ve
Enter tuşuna basarak kod düzenleyici
penceresine eklenmesini sağlayabilirsin.
Harf Duyarlı liste açıldığında
kodlar»
Yazdığımız
Ctrl ve S tuşlarına
beraber basarak
veya Araç Çubuğunda
bulunan Kaydet
düğmesin» tıklayarak
kaydedebiliriz ■
dikkatini çeken başka bir şey
oldu mu? Aşağı yukarı oklarla
hangi komutu seçersen sağ
tarafında o komutla ilgili
Yazdığımız Program ı İnceleyelim
açıklamayı ve pencerenin en
sağ tarafında ise o komuta
Small Basic'de kodları satır satır yazıyoruz,
ait açıklamayı, özellikleri
yani vermek istediğimiz her bir komutu
ve metotları (metoda
yeni bir satıra yazmamız gerekiyor. İlk
Türkçe'de yöntem veya yordam da
programımız sadece tek bir satırlık
denir) görüyorsun. Özellik ve metodun
komut içermekte. Bakalım bu bir satırlık
ne olduğunu daha sonra ayrıntılı bir
komutta neler yapmışız?
biçimde öğreneceksin.
TextWindow.WriteLine ("Merhaba
Keşke bu kadar açıklamalı programlama
Dünya")
ortamları bizim zamanımızda da olsaydı.
(A
Ne kadar şanslısın!
Bu komut satırı bilgisayara şu emri
veriyor: Metin (Text) Penceresine
te - ™ » * » »
IS **» **»
(Window) Yaz (WriteLine). Peki neyi
yaz? Parantez ve tırnak içinde hangi
girdi verildiyse onu yaz. Biz ne yazmasını
istemiştik? "Merhaba Dünya".
<| ^
Programlamaya Hazırlık
Burada dlNNıil prfnwwı gereten
| Yazdığımız kodu Çalıştır düğmesini
en hassas nöklaiiRfen biri kefereler
: bkiiyartfe'v^te FStı^üba te srak
arasında to to fita noteyparsnı®
r çalıştırdığımızda açılan siyah tsıÜ i
w .'tefini .'^peöeffdfc Nasıl H
| çencereyî IM 0 N 0 L O ;pertce*eftin,
ödev
ys§» mektup p a t e n , c & ıra iK p V I
j adı TextWindow'dur (metin penceresi),
yazdıklarırniZKdaha iyi anlaması için
Small Basic'de matinsel çıktılarımı!
n f it a M ı fjpHSBMii
g ö r e ^ î m i 2 W ' m r t i ' f
,fdölfc:-
Textwindow (merin penceresi) feuncteî
bsniŞr şekilde
progm rtiifii a ıs ın iı di
sonm sıklıkla felktnâötffma ifeffçök
yizartün nal&slama
nesneden blrteroisIf/ftenB (objtsö
çok dikkatli kullanmak zorundayız.
bâşSf dîye mf iöruy&rsuıı? M s im s ı
HinİMiHililHr faŞö&sp®■
İlf ıpü îsm -
biraz uzun sürer, Yalnız şunu bilmeni
olarak ne söylersek onu yapar*demiştik!
fa%im fe1î®^iifyi b r r y ^ l iir o ö t a f
Eksik, fazla veya hatalı kullanacağımız bir i M |l?af$r nesnelerin! çok îyf feultenrsina
neteîiBSi işareti v^î$f§iRi!zta fB llıft
1 ve kodlamana bağlı,
irtsm p ı deŞtftlreâeŞln-d^ı bilgisayarın
i1 Sonraki sayfada bilgisayar nesneleri
kafası tefp rve programımız batalı çılıp t
ı hakkında kısa ifertr-tftlİjEî Yir, ilk önce bu
j . yazıyı diktada o ta
O
s Daha .sonra,ettefinda bir-ttlglSiyaf ‘;
n
99
ı
j
I
i
müharsfiıf veya bilgîsayir
yarfMteftdsn anlayın birM |^ ^ n
varsa, onunla konu hakkında küçükbîr
sohbet gerpkteşriE Atana Uttan bîr
i irita S H İİtM lo ra M M ft -
Çocuklarlif;
Ek bilgi i
| S sstis îtidir? iumön faittffdtfwtıı
; prtfftlpOT Snsfrtî bir tep» birden fazla
i *8Bstaü
birppajjars)pg
!pEdikta- todfaı bışfesptöpipjtebi da
l^ ^ ıit ’fapaîîsM ra^İ^i& eİ işleri
yaş^ praffi&ffr köfteni pstetldyp
nesne h^rwştı#1ydriar ve Ü^tefc^nı
' ptepafr
prog ramIarda kolay11kla IsiferıaÖ îiipfe
! ratamtada Sahafta# bir p &jteftia&a;
f |pW4fifc:fİtfEO fltti, ÜSîWttft>â® im
: açrtıaiirîçSn
i
t&&Pd@u'tâs
Hatta bu
Aç p B IIH llM I#'f$k1i$£fc,pfö§rtpra.n
[ is
b®rtı. ffestf oiyybr
i d i aynı per^ite-öı çokfarktı yanlım
:;nrtnabin M m teflyeit f % li tktyot.
ı
1<jç
; Ahm cİM tduparşii p^şram iM lnM
: paketleyip
bilgisayara yükİüyor. Yazılımları geliştiren
tîaftsnlif'ü'ID ^şi'
İp ftİiM it dkjydöitortünün fiitolf■
bu
kdilstı y®Tâl®rffis. gerek ta|}»i#itpn
bu haar dolayı kullanıyorlar. Bu tear
dcsyakr
kısmı W^âsâM ^ m ^ l$s?@rirş(îrf
altında “dil*uzantısı île bulunmaktadır. Bu
,bâ^ftoâ JAfcui silrne!
........
•j g
Programlamaya Hazırlık
TextWindow niS'tütodSfl ne
yıp ratanı .istedik? VVriteLine metodu
$g.yazmasını lised e Etetm
:1Mted^a.Ûı3^|@ıJI!ff!ı€tfiîni TextWindow
WriteLine nrîÖtO^İJUTl®0 tR
@ feftks|iidık Son aiarateygzd^tmg
kodları Çalıştır d fl|ıtw W
ç^iı|ti!d%m adS' yjglsayanmg kod
dÖisrıteyld^iTS!yazdığıtüK komutu
îştadtteen M fM I çikfi olsste tteant yazdı.
Program ım ızı kaydedelim
YSiritairn todktı dabs sbtuh U m
I
!ÎW i kaydetmek isfiyörsfn,Araç
Çubuğu'ndabulynan Kaydet
d ^ ır® sW
veya klavyeden
Ctrl ve S tuşlarına betater te a M M a
(sol elftfft işaret parmağıyla Ctrl
tuşunu basdı tutarken, sağ elinin HjÜÜi
parmağıyla da lİEŞU îlâ h$sicıd&gr(j
Pr^fflm ın ilk defa .^ d ed |© n iîi açıta
Farklı Kaydet psrctftiftdedc^öfti
k ayd ed eb il Ua^rö belirleyip bîr
dosya adı verdikten sonra Kaydet
düğmesini tıklamalısın.
t i
Kaydet
9»
Farklı Kaydet
Bu aşamadan sonra programın üzerinde
çalıştığın sürece zaman zaman Kaydet
düğmesini tıklayarak veya Ctrl ve
S tuşlarına basarak yazdığın kodları
kaydetmelisin. Böylece, elektrik kesintisi,
bilgisayarı yanlışlıkla kapatmak veya
bilgisayarın kilitlenmesi gibi istenmeyen
durumlara karşı yazdığın kodları koruma
altına alabilirsin. Programını farklı bir adla
farklı bir klasöre kaydetmek gibi isteklerin
olması durumunda Araç Çubuğu'nda
bulunan Farklı Kaydet düğmesini
tıklamalısın.
Kendini S ın a :
Aşağıdaki soruları cevaplayarak bu bölümde
çalıştığın konuları tekrarlayabilir ve böylece daha
iyi öğrenebilirsin!
1. Small Basic'in 3 ana bölümünün adı nedir?
2. Small Basic ile yazılan bir programın
çalıştırılması için tıklanması gereken
düğmenin adı ve klavye kısayolu nedir?
3. Harf duyarlı (intellisense) kodlama özelliği
nedir? Ne işe yarar?
4. TextWindow.WriteLine (“Small Basic") komut
satırı nasıl bir işlem yapar?
dS; Bilgisayar yazılımlarında nesne kavramı ne
anlama gelmektedir ve neden önemlidir?
6. Small Basic ile yazdığımız programları
1~
kaydetmek için tıklamamız gereken
^^düğmenir^d^^davy^usayolunedir?^^^
Daha detaylı bilgi almak için
www.mucitlergaraji.com adresini
ziyaret et.
Çocuklar İçin Programlama *| q
Yazılım ve
Programlama Dili
Nedir?
Bakma bilgisayarların öyle çokzeki
ancak uygun bir yazılımın devreye
göründüklerine! Yazı11mlarolmadan
girm eliİt cpHgvtartai yerine getirirler
bilgisayarlar sadece kablo, plastik ve
ve bizi çok etkileyen o müthiş işleri
metal yığını Olu? v» ne yapacaklarını
tıkrr tıkıryapmaya İsşşJiıfer, Yazılımları
geliştiren uzmanlar, yazdıktın komutlarla
bilgisayarlara yapmaları gen,kat şeyleri
jSH ife- Yazılımlardan fjglsn emirler
doğrultusunda bilgisayarlar sahip
oldukları parçaları hangi aşamada nasıl
kullanacaklarını bilirler!
8İr yazılım,
kullanıcıdan gelen
istekleri nasıl
yapacağını bilgisayara
anlatan ve ona yol
gösteren komutlar
bütünüdür.
Programlama dilleri
Kullantcıntn fareyle, klavyeyle veya
joystrck'le verdiği emirleri ilan
bilgisayarın ne yapması gerekilin!
O fili» îöyteyen 'komutlar bütününe
Bilgisayarları meydana getiren ekran,
yazıİm denir. Yazılımfır bir anlamda,
kasa, klavye, fare* yazıcı glbrparçalar
kullanıcının yapmak istediği fiyleri,
bilgisayara nasıl yapacağını
kılavuzlardır. Hml >®ftmttr, kullanıcı
l ı bffteyar arasında iletişim kuran
vi.bkte!taW ;«îîamıİarfnEi sağlayan
i^ ijT ir# ıd c.Y âaiim l® ‘^ u il feste* C
Ç++, C#, iava gibi ftrtetf programlama
syjgd jiilM M İi
Bu
programlama çilerinde komutlar farklı
öte fet% bütün
bu dfliffin bazı İŞffMf orök komutları
v® d K tep w ıtaBd İteln i'R rfeçfe
•
fa&fâBbA fm tt^ p ı^ vg ya Arapça
gibi farklı konuşma dilleri olarak düşünl
Çok lirk ! yazılsa veya söyleme .di feötön
insan dfitel rmutMıA,. ttân© , şaşkınlık,
heyecan gibi duygulan ifade ©Msiirte,
Farklı bilgisayar programlan da beratr
feMtete"değişken” "koşut",Üüngîfî
bilgisayarlara emir vermede
-taiiaîtfeı ânak tan ju titn sablstrfer
ve tü k bir biçimde yazılsalar da aynı
işlemterl ppsMrter»
Burada sormamız gereken önemli
bîr soru vır: Nasıl oluyor da bir
programlama dili ile yazdığımız
komutları bilgisayarların biraz önce
hıklinncfe. k î^ O 'n a ^ ert
^ n t^ u m u z örnetaiden^.
p lilfte n yap k iif ~
parçaları anlıplsi|©rtir
ve
v e re b i^ ö tü 'Su sötysiJö
cevabı hnffi çök MÜH hem -
Bir bilgisayardaki en
remel ve önemli yazılım
işletim sistemidir. Bir
işletim sistemi yüklü
almayan bilgisayara
başka program
yükleyemezsin!
.çok ferıp'fc İ H W R : biraz
daha sem pîlsprm im ii
gereklise ln iin f if
Çocuklar için Programlama
assrl
VVindovvs'da sol alt köşede
Bir kullanıcının bilgisayarla etkileşiminde
görd üğün "Başlat" düğmeşini
verdiği emirleri anlayan ve bu emirlere
tıkladığında bilgisayar "Başlat
bilgisayarın bir çıktı ile tepki vermesini
Menüsü"nü açması gerektiğini nasıl
sağlayan en temel yazılım "İşletim
anlıyor?
Sİstemi'dir. Microsoft Windows, Unix
Windows'u geliştiren bilgisayar
programcıları "Başlat"düğmesi
tıklandığında "Başlat Menüsü*flÖ
görünür kılacak bîr komut yazarlar. Bu
komut aşağı yukarı şu şekildedir;
Startmenu.visible=true
ve Linux en çok kullanılan işletim
sistemlerinden bazılarıdır. Kendisi de bîr
bilgisayar programı olan "İşletim Sistemi",
geliştirilen diğer programların verdiği
komutları bilgisayarın fiziksel parçalarımıanlayabileceği elektrik sinyallerine
"Başlat" Düğmesi
dönüştürür.
İslında bunu, bir odadaki ışığı açmak
Bu tomuî, başlat düğmesi tıkandığında
ve kapatmak için kullanılan elektrik
startmenu nün Cyanî başlat menüsü)
düğmesine benzetebiliriz. Düğmeye
visible (yâni görünürlük) özelliğini true
fejf kere basıldığında lambaya elektrik
oluyor. Görünürlük
gider ve ışık yanar, tekrar basıldığında
İttlltpnln doğru olması, başlat
ise elektrik kesilir ve ışık söner.
menüşünün görünür ol ması anlamına
Benzer şekilde, bilgisayarlar da sahip
oldukları elektrik devrelerini açıp
YâaJıHi Ve Programlama Dili Nedir?
kapatarakSK^nörtert'Plgsü^srits
uzmsiîtteî: bsu' sfHszfertn •
|u iki sinyal dufybîüfil t e l binarv
dertlimtkfedîfc
ilûşİTigisîlmesi lp fi sadece M rfastm ete
faydalanmışlaTdır: -
Devre açık
HaterBe yok® **■
sS§ ve elektrik var
(1» bir), iu O’larve 11er bifteferefc
Devre kapalı
iMtnımgefebleı^fehef tstSB .şernbsftî
QtufturabîW®f.
aflâbelerdeki
harfte fÇlno» Japonca ve Arapça güff
ctlte de d ah lf, w^j0 ğğhMdiğer
Girdi-işlem-çıktı
M m &fiaff«®, i,.n, 0 ve beraMit sadece
Önceki sayfada bir tefe W İtew ^te
*¥aatolâ«dfn file n emirler
fi (devrede elektrik ydl# ve î (devrede
dpğıuteunria W şw 3ş@ ^ $û ip
d ıte fîl’varf durumur» göTt dtiftütîiük
öldüfeı parpte hangi aşamada fi§®§
kullanacaklarını bilirler!". Peki, kullanım
İp i o metal ve pla^ky^ftı dfdf|irftJi
bflgî^pr parçaları bu W e fe M ts iî^ ltıî
jbtumlsyarafe o kadit $t yapabilirler.
1.
2.
mW
sırasında"aşama" deyince ne «nüypruzf
# İ p i !lrt8 ft © p IlM ljt İt e İf e p ;
BitİliiM1
İşlem^j^
iuÎİi8 t IW 1 M (# ^ (M * İİM l^
3.
4 .
Depolama^P^
1
gönderilir.
i
illi
İlil
fiil
tueKis1
hazır p g fiil^ j suyu
j
K r jp jt e * f t ^ 1 İt e # * ı^ t t çıkar.
Son olarak, üretilen kutu kutu portakal suları daha
SO nS kullan 11mak uzefe depolarda saklanır.
Girdi - işlem - çıktı - depolama süreci
’
I
Veri Giriş Araçları
En bilinen veri
g iriş araçları
fare, klavye,
joystick ve
dokunmatik
ekranlardır.
Fare
Klavye
Joystick
Dokunmatik Ekran
VVebcam
Mikrofon
Bîr kullanıcr bilgisayannı şu dört aşama
toplanmış portakallardır. Kamyonlarla,
içerisinde kullanın
fabrikaya taşınan portakallar, burada
Girdi
İşlem
j
Çıktı
Depolama
yıkama, çürüklerin ayıklanması, sıkma»
tatlandırma ve son alarak kutulama git
Girdi, işlem» çıktı ve depolama aşamatan
Ur teteıo n ın bilgisayarda iş yaparken '
atması gereken ılım ları göstermektedir.
Bir tallınıcı, fellglsayas veri girişi yapaç
Öî^fflyar feu yaftel 'P ^ işlenen veriler
bir dizi işlemden geçerler. Fabrikaya
girdi olarak gelen portakallar bir dizi
işlemin ardından kutulanmış portakal
suyu çıktısı olarak insanların tüketimini
sunulur veya daha sonra kullanılmak
üzert depolanır.
C tt olarak kullamcıyâ gösterilir ve
istenirse bu çıkoisr depolanır!
fimdi de bilgisayar ortamında girdi,
işlem, çıktı ve depolama aşamalarını na
Hadi gel bilgisayar kullanımındaki bu
gerçekleştirdiğimizi hatırlayalım.
adımları başka bir örnekle açıklamaya
i
CPU -merkez»
işlemci- ad»
veriler» cihaz o»r
plışalım: Bir meyve suyu fabrikası
Girdi: Bilgisayar kullanıcısı» işlemesi
düşün! İş yapılan fflm süreçlerde olduğu
için bilgisayara veri girişi yapmalıdır.
gibi, fabrikalar da bir şey üretmek için
en9s^smU5pars^M ilk önce bir hammadde girdisi ister.
2 0
Ya» l« rr
Unutmayın, bilgisayarlar ancak
kendilerine söylenen şeyleri yapan
Portakal suyu üfiten bir fabrikanın en
araçlardır. Biz onlara ne söylersek onu
önemli hammadde girdisi çullarından
yaparlar ve onlara ne verirsek onu işleri
** Pr° 9 ramlama Dili Nedir?
Veri işlem Araçları
Bilgisayarlara veri girişi yapmama
sağlayan çeşitli araçlar vardır. En bilinen
veri giriş araçları fare ve klavyedir.
Bunların yanında oyun konsüllerinde
sıklıkla kullanılan joystick'ler, özellikte
Veri Çıktı Araçları
İşlenen verilerin
sonuçlarının
kullanıcıya
gösterilmesi için
ekran ve yazıcı
gibi cihazlar
kullanılır.
✓
Görev 2.1:
Başka hangi veri gfflş araçları bulunmaktadır?
Arkadaşların, büyüklerin ve öğretmenlerinle
konuşarak bunların bir listesini yapar mısın?
Hazırladığın listeyi www.mudtlergaraji.com
adresinde bizimle paylaşmayı unutma.
son yıllarda i-phone, HTC ve Samsung
gibi akıllı telefonlarda ve i-pad, Galaxy
Bilgisayarlar önceki sayfada listelediğimiz
% Motorola Zoom gibi tablet PC'Ierde
girdi araçlarından gelen her türlü veriyi
kullanmaya başladığımız dokunmatik
merkezi işlemci adlı parçasını kullanarak
ekranlar da yine girdi araçları arasında
işlemeye başlarlar. Merkezi işlemci
sayılabilirler. Ayrıca, artık dizüstü
bu işlemleri yaparken başka işlem
bilgisayarların bir parçası olarak
araçlarından da yardım alır, örneğin,
gelen vvebcam'ler ve mikrofonlar da
mikrofon ile bilgisayara ses girişi
bilgisayarlara işitsel ve görsel veri girişi
yapıldığında, merkezi işlemci gelen veri
yapmamızı sağlayan araçlardır.
türüne bağlı olarak ses kartından yardım
alır! Ayrıca, ekran kartı da görüntü ile ilgili
İşlem: Bilgisayara nedm^bilgisayar*
işlemlerde merkezi işlemciye yardımcı
denilmiştir? Çünkü, bilgisayarlar en
olur. Burada unutulmaması gereken
temelde girdi olarak gelen bilgileri
en önemli özellik ise işlem sonucunda
sayarlar! Yani gelen veriler üzerinde
elde edilen verilerin ve işlemi yapan
çeşitli hesaplamalar gerçekleştirirler.
yaalımların geçici olarak depolandığı
Çocuklar İçin Programlama
Jl
Ct). bVb ve
harici sabit disk
gibi araçiara
depo\ad»ğmuz
veriierimizi her
yere taşıyabiiir ve
istediğimiz zaman j i
kulianabiiiriz
ve gereksinim duyuldukça çağrılıp
Elbette, bu resmi kaydetmen yani bir
kullanıldığı bilgisayar parçasının
depoya koyarak koruma altına alman
adının "Geçici Bellek"(RAM Random Access Memory - Rastgele
gerekiyor. Bilgisayar ortamında elde
ettiğimiz çıktıları depolayabileceğimiz
Erişimli Bellek) olduğudur. Özellikle
çeşitli araçlar vardır. Örneğin, bilgisayarın
ilerleyen konularda değişkenlerden
içindeki sabit disk veya artık çok popüler
bahsederken zaman zaman bu parçanın
olan bellek çubukları ve harici diskler,
ismi geçecek. Unutma!
CD'ler ve DVD'ler bunlardan bazılarıdır.
Bu araçlara kaydettiğimiz çıktıları daha
Görev 2.2
Merkezi işlemciyeyardımcı olan başka hangi işlem
araçları bulunmaktadır? Arkadaşların, büyüklerin
ve öğretmenlerinle konuşarakbunların bir
'istesin! yapa' mısır? Hazırladığın listeyi www.
mucitlergaraji.com adresinde bizimle paylaşmayı
unutma.
sonra istediğimiz başka bilgisayarlarda da
kullanabiliriz.
Çıktı: Girdi araçları tarafından gönderilen
ve işlenen veriler çıktı olarak kullanıcıya
sunulur. En bilinen çıktı araçları ekran ve
Veri Depolama Araçları
yazıcıdır.
Depolama: Girdilerin işlenmesinin
ardından oluşan çıktıların daha sonra
kullanım için depolanması gerekip
Örneğin bilgisayarda çizdiğin bir
resmi daha sonra tekrar açmak mı
istiyorsun? Ne yapman gerekiyor?
Yazılım ve Programlama Dili Nedir?
Görev 2.3
Başka hangi çıktı araçları bulunmaktadır?
Ar<aoaş ann, büyüklerin ve öğretmenlerinle
konuşarak bunların bir listesini yapar mısın?
Hazırladığın listeyi www.mucitlergaraji.com
adresinde bizimle paylaşmayı unutma.
Görev 2.4:
Başka hangi depolama araçları bulunmaktadır?
Arkadaşların, büyüklerin ve öğretmenlerinle
konuşarak bunların bir listesini yapar mısın?
Hazırladığın listeyi www.mucitlergaraji.com
adresinde bizimle paylaşmayı unutma.
Ardından yine TextWindow nesnesinin
ForegroundColor (önalan rengi)
özelliğini ise"yellovv"(sarı) yaptıktan
sonra ilk programdaki gibi "Merhaba
Dünya" metnini ekrana yazdırdık.
İkinci program ım ızı yazalım
ikinci programımızda ilk yaptığımız
programı biraz renklendireceğiz, ilk
programda yazdığımız"Merhaba
Alt zemin veya ön alan rengi için şu
Dünya" metninin alt zemin rengini ve
renkleri deneyebilirsin:
yazı rengini belirleyeceğiz. Hangi rengi
istersen onu yapabilirsin. Unutma,
bundan sonra patron sensin!
1
2
3
TextWindow.BackgroundColor="blue"
TextWindow. ForegnoundColon="yellow''
TextWindow.WriteLine ("Merhaba Dünya”)
Yukarıdaki komutları kod düzenleyici
pencerene yazıp çalıştırdığında yandaki
gibi mavi zemin üzerine sarı ile yazılmış
"Merhaba Dünya" metnini göreceksin.
İlk önce TextWindow nesnesinin
BackgroundColor (arka zemin
rengi) özelliğini "blue" (mavi) yaptık.
Black = Siyah
Blue = Mavi
Gray = Gri
Green = Yeşil
Red = Kırmızı
White = Beyaz
Yellovv = Sarı
BackgroundColor,
metnin arka zemin
rengini değiştirirken,
ForegroundColor,
metnin yazı rengini
değiştirir.
Renkleri belirleyen kodlarda dikkatini
çeken bir şey oldu mu? Bu kodlarda
parantez yerine eşittir (=) işaretini
kullandık. BackgroundColor ve
ForegroundColor, TextWindow
nesnesinin birer özelliğidir. Özelliklere
Çocuklar İçin Programlama ^
değer atarken kullanılan yöntem eşittir
kullanıcının yapmak istediklerini
işaretinin ardından tırnak içinde istenilen
bilgisayarın anlayabileceği bir dile
değeri yazmaktır.
dönüştüren tercümanlar olduğunu
belirtmiştik. Ne yazık ki, biz programcıla
TextWindow.BackgroundColor="Blue"
programlama arasında bazı komutları
Bu programımızda birden fazla
eksik yazdığımız komutlar ister istemez
satır kod yazdık. Peki programımızı
bilgisayar tarafından anlaşılamaz. Bu
hatalı veya eksik yazabiliriz. Hatalı veya
çalıştırdığımızda acaba bilgisayar ilk
durumu örneklendirmek gerekirse,
önce hangi kodumuzu işleme aldı? Yani
annen sabah evden çıkarken
ilkönce hangi kodumuz çalıştı. Şimdilik
"ayakkabılarını badın mı"dive seslense
şunu bilmemiz yeterli: Aksi söylenmediği
ne anlarsın? Büyük ihtimalle "anne
sürece programlar yukarıdan aşağıya
anlamadım, ne dedin"şeklinde tepki
doğru satır satır çalışırlar. Sırası gelen
verirsin. "Ayakkabılarını bağladın mı?"
satırdaki kodlar çalışır ve sonra işi bir
cümlesini duyuncaya kadar annenin
sonraki satıra bırakır.Ta ki son satıra
sorusuna cevap verme veya istediği
gelinceye kadar!
şeyi yapma şansın olmayacaktır. Benzer
şekilde, bilgisayarlar da, programlardaki
Sinirlerine hakim ol! Hata
komutlar tam ve doğru şekilde
mesajları ©
yazılmadığı sürece ne yapacaklarını
Hatırlarsan, bir yazılımın
bilemeyecekleri için Hata Mesajları
ne olduğunu anlatırken,
verirler.
programlann bir anlamda
ne yapacakları konusunda
bilgisayarlara rehberlik yaptıklarını
söylemiştik. Ayrıca, programların,
Yazılım ve Programlama Dili Nedir?
Sonraki sayfadaki komutları, yeni bir
Small Basic kod düzenleyicisine yaz ve
Çalıştır düğmesini tıkla.
T«xtwirido.BackgroundColor=:"blue"
pl). TextWindow.ForegroundColor="yellow"
|îii TextWindow.W riteLine ( “Merhaba Dünya")
düzelip tekrar Çalıştır düğmesini
t^iadığıniiads p s |W W M lB I
«u n su z
f iM ii
. o +Qr Hata
Ue^
Programı çtlıpff#ı§ındt ap§ı?il$ hata
ne olduğuna dair bir açıklama •
ProgratPİStfns dilirtilifı tamamı
bu tür yanlış veya eksik yazımdan ™
kaynaklanan hataları hemen yakalarken,
mantıksal hataları yakalayamazları
Mantıksal hatalar, programın çalışmanın
engellemez ancak programın çalıştıktan
sonra ürettiği sonuçların beklenenden
farklı veya hatalı olmasına sebebiyet
verebilirler. Mantıksal hata veya hatalar
olup olmadığını anlamak fÇin, programı
plıştırıp ürettiği sonuçlan ve çıktıları
dikkatlice incelemeliyiz. Aksi takdirde,
bu tür hataları yakalamak ve fark etmek
İB İt e lB Program^ ÎMunan hataların
oldukça zordur.
rhesâl İle'fc^ p lificsft
1 1 TextWindo,BackgroundColora"blue”
lllfi YextWindow.ForegrourıdColor«"yellow"
||H| TextWindow.WriteLine ("Merhaba Dünya")
Özgünüz, bazı hatalar bulduk...
l,l:'TextWindoJ nesnesi bulunamıyor.
"Üzgünüz, bazı hatalar bulduk..."
iMfâgmın itanda $*iiî§jis programda
hata İçeren.sıhrfijffhatisı ve hatanın
Hatalar» ve
temamı bu listede görüntülenir. 1,1
d^ertnde/tîksayı hatanın bulunduğu
satın göstermektedir. Ikfircd sayı ise
yaklaşıkolarak hatanınbulunduğu
Sübinvîyanf karakteri) göstermektedir.
M
satırda bulunan TextWindow
nesneârff mes^Üan da' anlifılacağı
üzere eksik yazdık ve"TextWindo nesnesi
bulunamıyor" harasıyla karşılaştık.
Eğerbaste bir hata yoksa, bu hatayı
Mantıksa) hatalar, genellikte
yazdığımız: kodların
sıralamasında optiğimiz
yanlışlardan veya kodlan
yanlış değer veya kontrollerle
kullanıyor olmamızdan
kaynaklanıyor olabilir.
Peki, programımızın mantıksal
hatalar içermemesi/doğru sonuç w
Mantık hataları
yakalaması en zor
hata türüdür, çünkü
programlar normal
Çû'tŞfflolonnodevam
ederken hatalı ve
istenmedik çıktılar
verebilirler.
çıktılar vermesi için ne yapmamız
gerekiyor? Bir yazılımı geliştirmeye hemen
bilgisayarın başına oturup kod yazarak
başlamayız. Programımızı kodlamaya
başlamadan önce yapmamız gereken
çok önemli işlerimiz var. Bunların neler
olduğunu biraz daha merak etmeni
istiyorum. Kitabın son bölümünü bir
program yazmadan önce ve yazdıktan
sonra yapılması gerekenlere ayırdım,
ileride gerçek bir yazılım uzmanı olmak
istiyorsan, bir bilgisayar programını
geliştirme işini başından sonuna
planlamayla ilgili bilgiler içeren 12/Bölüm'e
kadar sabredeceksin!
Kendini Sına:
Aşağıdaki sorulan cevaplayarak bu bölümde;
içalıştığın koduları fekrarlayabilir ve bayiece daha iyi
öğrenebilirsin!T: :
1. . Yadlım,nedir?;.;, V
Z. Programlama dili nedir? iki tane programlama dili
söyler misin? ,
;:3i İşletim sisteminin görevi ,hedir?.’.tki tane işletim
Şs&ömlsğj/İer misin? c
4 . Bilgisayara veri girişi yapmamızı sağlayan 3 iane
araç ismi söyler misin?
15. Merkezi işlem birimi ne işe yarar?
& Bilgisayarda;.çıktı amaçlı kutlanılan araçlardan üç
tanesini söyler misin?
7. Bilgisayarda depolama deyince aklına ne geliyor?
3 tane depolama biriminin adını söyler misin?
8.’ TextWindow.BackgroundColor='Blue*- - ~
- komut satırı nasıl bir işlem yapar?
9. Yazılımlarda kaç çeşit hata vardır?
Daha detaylı bilgi almak için
www.mucitlergaraji.com adresini
ziyaret et.
3
Y az ıl® ve Programlama Dili Nedir?
I
Bilgisayarın
Gereksinim Duyduğu
En Temel Gıda: Veri
OhSikl ssyfaltrda bl^okbi& sveri"
îürtirtfrtft yarımda ifttsıl ve görsel veri
feteslrfl; -iaıûttdifc. NedJrbu "veri"
H rts Ü de teâlmtfffli
dırffto |^?¥tîl:M ftityfn;n alabildiği
ö ts tiK iip ve
saklayabildiği her şeydir. Çeşitli girdi
Ölteft izdeki bir ;eep taiefwiu.
çpemtörön:®! ݧ İnç te Jtem tfi yit*
-DipSi?? W t e fs to v fsrrtMt SÖ&
ÜHpVi fe|İ®âfâkbI]L^îî|j^0f^|t
yazarını veya feM idörfî merak ettin,
rn SıİB# ısy ıİa b iiilıry e görüntüler
iu operatöre ait bir numarayı cep
bilgisayarın iş yapması içirt gereken
telefonundan arıyorsun m merak
verilerdir. Bilgisayarlar ttm sayı, ondalıklı
ettiğin şarkının belli bir kısmını telefonla
sayı ve metin gibi en bilinen veri
aradığın bu numaraya dinletiyorsun.
Bilgisayarın Gereksinim Duyduğu En Temel Gıda: Veri
I I M P K i liiifid a li
gfllm
Veri türü
Ö rnek
Tam sayı
' i
JŞ ti *
bu “işitsel veriyi"inceleyerekşarkıyı
sonra şarkının ismini süzyazarın
* :feisw elift^ İl® ö t t j(w ıı sma
t*
O ndalıklı sayı
i
i^ Â p â
SNM ibir âtmek Is®»g iiü f ı® t:fM 8 W 8
Metin
mBt
S K p f !.
i l i f i n # f îiia ®
"benim yaşım 15"‘
W fctlM İS
M f f l M © fll
yeni Hizmetinde kendisine-göncteîten
fötdfrafiann benzerlerini bulup getiriyörî
Höıbii te$5dsıt ö f f f i î hçffisi
Çİndteflen b lrfö iö irai^ Bffiİ isti*'
t e w ııı^ f t lıiÖ r t r t iii* * w i.
obm fc&n S b ö jfe öcau sfetdi biilm ib
g$Şg$s&?f W # ’-lıflp flM p K jK t m
şey
^ ğ ^ t ^ ^ s i U i t kstrşıiıştmyerve
6p m !‘w ls i''p R î l w
görüntülüyor!
program yazarken hangi veri türünü
kullanacağımızı doğru bir şekilde
tanımlamamız gerektiğidir, çörttt
O nto» M to «ert tffirîj A rafefi ta rte r
yazdığımız program girdi ölaskalöigpı
bu kitaptatam sayı, ondalıklı sayı ve
veya ürettiği bir veriyi isteten IM i
metih veti ûrtl te ftffi örneklereyer
defa kullanmak isteyebilir. İşte bu tür
vereûeğiz.
durumlar İçin veri Ierimizi "değişkenler*
M
İçinde koruruz.
Yandaki tabiodatam sayvondalıMiî sayı
ve metin veri türleri: feîfgilli ürneklef var.
VazıV«wtar. girdiliniz”
verileri değişkenlerde
saklar ve gerecinim
duyduğunda çağırarak
kullanır.
Değişkenler
Ben duymadım. Mutfakta boyları
farklı tencere ve kaplar olur ve o anda
Bir değişken, bir bilgisayar programının
muhafaza edilecek yemeğin türü ve
çalışma süresince gereksinim duyduğu
miktarı ne İse ona uygun boş bir tencere
Vöitefi depolamak için kullandığı bir
veya kap kullanılır.
tür nesnedir. Bir yazılım çalışmaya
başladıktan sonra hatırlamak ve
kullanmak isteyebileceği verileri
değişkenler içinde depolar, gereksinim
duyduğu zaman çağırır, kullanır ve
isterse yine değişkenlerde depolamaya
devam edebilir ki bu kullanım arasında
çağırıp kullandığı verinin değeri değişmiş
olabilir, önemli değil, değişken, değeri
değişen veriyi de depolamaya devam
eder!
Annelerimiz; çelik büyük tencereleri
özellikle misafir geleceği zaman
Değişkenler bana hep annelerimizin.
pişirecekleri sebze ve et yemekleri
mutfakta yemekleri muhafaza etmek
için kullanırlar; ağzı sıkı kapalı ve hava
için kullandığı tencereleri ve kapları
almayan kapları uzun süre saklanması
hatırlatır. Siz hiç mutfakta "bu tencere
gereken gıdalar için kullanırlar; küçük
sadece şehriye çorbası için kullanılır,
kâseleri sütlaç, puding ve dondurma
bu kap sadece etli kuru fasulye İçin
gibi kısa sürede tüketilecek tatlılar için
kullanılır ve şu tencere de sadece etsiz
kullanırlar. Mutfaktaki bu tür tencere
kuru fasulye için kullanılır"şeklinde
ve kap kullanımından nasıl bir sonuç
bir ayrıma gidildiğini duydunuz mu?
çıkarabiliriz? Birinci sonuç, tencere ve
Bilgisayarın Gereksinim Duyduğu En Temel Gıda: Veri
kaplar farklı gıdalar İçin kullanılabilirler,
ve şifre isteyecektir, ilk sayfada bu
lifecl sonuç İM, gıdaların bazı
ttlğitei doğru girdikten sonra,o
özelliklerine ve amaçlarımıza göre belli
ait diğer sayfalarda sana-isminle hitap
tür kapları kullanmamız gerekebilir.
edildiğini görürsün. Kullanıp: adını
sadece ilk sayfada giriş yaparken verdiğin
Ptefej, mutfakla ilgili bütün bu
halde, ismin sitenin tüm sayfalarında
anlattıklarımızın bilgisayar programları
kullanılabilmekte, çünkü siteyi oluşturan
ve değişkenlerle ilgisi ne? Hatırlarsan,
bilgisayar programı giriş yaptığın
girdi-işlem-çıktı sürecini anlatırken
anda kullanıcı adını veya takma
"rasgele erişimli bellek"ten bahsetmiştik
adını (riitk name) bir değişken
Rasgerel erişimli bellek bir anlamda
içerisine depoluyor ve kullanmak
bizim bilgisayardaki mutfağımız,
istediğinde çağırıp ekranda
yani değişkenlerin barındığı yerdir.
görüntülüyor.
iliştirm iştir
Değişkenler ise mutfakta tuttuğumu^
ve gereksinim duyduğumuzda alıp
kullandığımız tencere ve kaplarımızdır.
Bilgisayara girdi araçları ile verdiğimiz '
fsair-**
Hartan hemen bütün
programlama dillerinde
değişkenleri kullanmak oldukça basittir.
veya bilgisayarın işlem yaparak
Yazdığın bilgisayar programının çalışma
kendisinin ürettiği veriler ise bir süre
süresince bir veriyi hatırlamasını
korumamız gereken yemeklerimizdir!
istiyorsan yapman gereken sadece
defişfene bîr
Basit bir örnek verelim. Bu kitabı alıp
|$pvifrttsk ve vırfyl
bu değişkene atamaktır. Bilgisayarın
çalıştığına göre, internette bir siteye
geçici belleğinde bu değişten için bir
•mutlaka daha örm öye olmuşsundur.
yer açılacata vs,program açık kaldığı
Üye olduğun bu siteye her girmek
veya başka bir komutla sîİinmediği
istediğinde site senden kullanıcı adı
sürece değişken "hayatta kalarak"verisini
Çocuklar için Programlama
depolamaya ve kullandırmaya devam
edecektir. Aşağıdaki örnekte, isim adlı
değişkene"Melis"değerini depoluyoruz
ve ardından bu değişkenin sahip
olduğu değeri TextWindow nesnesinin
VVriteLine metodunu kullanarak ekrana
yazdırıyoruz:
;İ 1 isim="Melis”
•’Ş;I TextWindow.WriteLine (isim)
Değişken kullanan program
yazalım
Şimdi yazacağımız program herkese
"Merhaba Dünya"demek yerine,
kendi ismiyle hitap edecek! Bunu
nasıl yapacağımızı sanırım tahmin
ettin. Program, çalıştırıldığında önce
kullanıcıya ismini soracak. Kullanıcının
klavyeyi kullanarak ismini girmesinin
ardından programımız kişinin ismini bir
değişkene depolayarak istediği yerde
kullanabilecek.
Önce yeni bir Small Basic kod
düzenleyicisi aç. Yeni bir kod
Bilgisayarın Gereksinim Duyduğu En Temel Gıda: Veri
düzenleyiciyi nasıl mı açıyorduk?
Hatırlarsan, tek yapman gereken Araç
Çubuğu'ndaki Yeni düğmesini tıklamak!
1 TextWindow.WriteLine ("İsmini Gir: ")
2 isimsakla = TextWindow.Read()
3 i TextWindow.WriteLine ("Merhaba " + isimsakla)
Şimdi yukarıdaki kodları yazarak
çalıştır. Aşağıdaki gibi bir pencere ile
karşılaşacaksın.
ismini yazıp Enter tuşuna bastığında ise
aşağıdaki ekranı göreceksin.
Bundan sonra programımız çalıştığında
hangi ismi girersek bizi o İsimle
girdiye gereksinim duymaksızın
selamlayacak. Şimdi yazdığımız
programı duraksatıyor ve
kodları gözden geçirelim. Bakalım
ardından kullanıcıdan bir şeyler
bilgisayarımızın bizi ismimizle
yazıp Enter tuşuna basmasını
selamlayabilmesi İçin ona hangi
bekliyor. Kullametnin tenini yazıp
komutları vermişiz:
Enter tuşuna basmasıyla, eşitliğin
sağ tarafındaki TextWindow
llk.)üidi|îmiz komut "TextWindow.
Write("İsmini Gir:")" şeklinde. Bu. sefer
TextWindow
WriteUne, metni
ekrana yazmak için
bulunduğu satırın
tamamını kullanırken,
Write metodu sadece
metnin uzuniuğu kadar
bir aianı kapsar.
nesnesinin Read metodu
ıgMen ismi okuyor ve eşitliğin
VVriteLine
değil VVrite matoduro feylfndtk» lu ■.
ş İ P M fellm m am s M i l farklı: fcffir
VVriteLine, metni
sol tarafındaki isimsakla"adlı değişkene
atatıyor,
isimsakla =TextWindow.Read()
M anduğy
tamamıhı kuö&nırfeen, Write metodu
.sadece mönte ı® n ii§ u kMisr bff s lıri'
kapsar.
İkinci satırda yazdığımız"isimsakla =
TextWindow.Read()" kodu, girdiğimiz
ismi ekrandan okuyup değişkene
Artık kullanıcının girdiği veri,"isimsakla"
adlı değişkenin f p s t e n d e depolanmış
durumda. Programım çalıştığı sürece bu
değişkende depolanan veriyi istediğim
yerde fsullanabilMM
aktarmamızı sağlıyor. Write metodunun
Son olarak, değişkene aktardığımız
parantez içerisinde verdiğimiz ismini
veriyi ekranda gösteren *TextWindow.
t3r:"girdisini ekrana yazmasının ardından,
WriteLine("Merhaba" + İsimsakla)"
TextWindow nesnesinin Read()
komutunu yazdık,TextWindow
metodu parantez İçerisinde herhangi bir
nesnesinin VVriteLine metoduna iki id it
girdi sağladık. VVriteLîne metoduna
Programı tekrar çalıştırdığında aşağıda
ait p e r is i "ftetebs *metni ve
fiteyı göreceksin.
isimsakla adlı değişkemizden fiiyp B
ğlrâtırıfet V '^ sıeft ite' beraber
S%}ee@ eten d i pktt olarak^Merhaba'
* ® ö f t iR ,p K iıii beğfıktemgBAı
depolanan tsrof te n te ' görebityoTUE.
(ylıierttitöte gemlerde toplama
pprimasffiı ^ ip ın / V 'te ö î» V
metinsel veri arasında kullanılırsa, bu
Değişkenleri nasıl
isim lendirm eliyiz?
metinlerin yırt p n |telmasati ağlar.
Gördüğün gibi değişkenimize bir isim
Burada dikkatli olmamız gereken tek şev
verdft isimsakla. Bfr dsğîştent neder
metînsel tfidevl tırnak İçinde yazarken:
Mm w
gseMniml duyarız ve' te
temi nasıl v#m a^M ;
değipertrnMt3:f faii'^ !rı^ »ıifrBvang.
Bu'programa bir sıtır kod dshı
Bir program ^rtsfnde feirtes tefe
ekleyerek, bir değişkende depolanan
değişken lâifeft-ıTâf,nızğirokeblR,
verinin program içerisinde birden fazla
ve değişkeni#! proptm ınfartt yetelnd® birden tela defa çağnp
kuîianTİablIdiğtnî gltefriiî
içindeki değeri teJânmifTiz veya
Biraz in cs yazdığımız 3 satotık programa
değeri e^^rm em &'geıekebilît fşte,
dördüncü şaftf ofask p komutu e fc
bu tür birden fazla değişkenin olduğu
yiıni'cağım ız d^ tşkenT
temiyle ça#nyöfti£ Bu nedenle,
İu sefe,1te#%ıdîiw üşffesinin
programlarımızda feiffarfelığımız
VYfSMJnemeroduna üç ffrdi suladık,
değ%kenfefe> ustgels ve teım sız Mır
Bilgisayarın Gereksinim Duyduğu En Temel Gıda; Verî
«srmeıfeyerine» program lifftasûi^ndi
ha&tfimajî köla|r * değişkertin iffiiöna.
y^gun temler vermeyi teiefe etmemiz
t e n «p m ıte lte
âiaşsfidı boşluk var, Mncisf ise ş ve i
g M lîrk çe tefytaîtertejllaRfltw|.
Değişkenlerde sayısal değerleri
kullanmak
* Değişken ismi tirharfte başIsmalt,
Değişkenlerle tuttuğumuz sayısal
* Değişken ismindeki itk karakterden
sprükl karakterler te ri
v^ p
-ait çfesptfdinoluşabilir. Yalnız,
d tp fM İtelerin d i I firtjyiftt, ı
M tü k4 .Û : 6,'Ş.ş y iy ş lb f^ rte ^ ^ .
Öapü te ffe ft olmamasında fayda var.
tu-karttarlgri (Çentn değişkenlerin
bulunduğu bir program çalışacağı
bilgisayara göre § rtt « p ıis t
değerlerle her tûrîö m atem atik işlemi ■
:geıçeki^iıiWlife Bu sayede,te rs li'
glröfteri faı{Jinıtıfc^^^1 matematik,
fizikve kimya formüllerini kolaylıkla
hssapiıyiri preğiin^f p ^ ö Stfe
Şimdi aşağıdaki tesmutltfl spcağınyenl
Smıül itette ted dü^n:t^dtene yas
1 Sayisal_Degerl - 5
2 ;Sayisal_Deger2 «= 10
* D e ^ » t e /V®8cıSlti'''ttfr-MidQin
kadar uzun olabilir. Yalnız buradaki
■tek te§#¥®reo§§^ temde bâffciı
olm®mitıdît Ömsğin
4?||Sayisal_Deger3 * S»yisal_Degerl + Sayisal_Deger2
TextWindow.WrittUfl# (Sayisal_Deger3)
Programı çMıştırdığ®ı®nwt şuna benzer
Ü t ü n rta taşrlaşacaksın
amacıyla kullanacaksan, ismini
kişinin kullanıcı adı yerine kisinin_
kullanici_adi obîlfc¥WRi*itafı1,
kişinin kullanıcı adı değişken t t i
iki hata | | ^ M
M
ketimeler -
Çocu klar için fjsg!l>ri68fflşi.
Küçük bir hesaplam a program ı
Görev 3.1 :
Şimdi, yukarıda toplama için yaptığımız işlemi
çıkartma, çarpma ve bölme için yapar mısın?
Sonuçlarını kontrol etmeyi unutma, bakalım
bilgisayarın doğru hesaplamış mı?
yazalım
Öğretmenlerimiz her dönemin sonun>
derslerde aldığımız sınav sonuçlarının
ortalamasını bularak karne notumuzu
Yazdığımız kodların ilk satırında
belirler. Bu bilgisayar programımızda
Sayisal_Deger1 isimli değişkene 5
değerini depoluyoruz, ikinci satırında
ise Sayisal_Deger2 isimli değişkene 10
değerini depoluyoruz. Üçüncü satırda
Sayisal_Deger1 ile Sayisal_Deger2 isimli
değişkenlere depoladığımız değerleri
"+" işareti ile topluyoruz ve çıkan
sonucu.Sayisal_Deger3 isimli değişkene
depoluyoruz. Dördüncü satırda ise
TextWindow nesnesinin VVriteLine
öğretmen öğrencinin adını, birinci
sınav notunu ve ikinci sınav notunu
girecek ve programımız aldığı girdiler
doğrultusunda öğrencinin karne notu
ekrana yazacak.
,'.3.ü
v2.
V#;
4
,5:
.6
7
8
TextWindow.Write ("Öğrenci İsmi: ")
ogrenci_adi=TextWindow.Read()
TextWindow.Write ("1. Sınav Notu: ")
birinci_Sinav_Notu=TextWindow.Read()
TextWindow.Write ("2. Sınav Notu: ")
ikinci_Sinav_Notu=TextWindow.Read()
karne_notu=(birinci_Sinav_Notu + ikinci_Sinav_Notu'
TextWindow.WriteLine (ogrenci_adi + "=" + karne_no
metodunu kullanarak Sayisal_Deger3
isimli değişkende depolanan sonucu
Small Basic kod düzenleyicisine yaz.
ekrana çıktı olarak yazdırıyoruz.
Bilgisayar programlarında dört temel
matematik işlemi için şu işaretler
Yazdığımız kodları çalıştırdığımızda ve
gerekli girdileri sağladığımızda diğer
sayfadaki görüntü ile karşılaşırız:
kullanılır:
Toplama +
Şimdi yukarıdaki komutları açacağın y
Çıkartma - I Çarpma *
y | Bilgisayarın Gereksinim Duyduğu En Temel Gıda: Veri
Bölme /
Görev 3.2 :
Kodlardan da kolayca anlaşılacağı gibi,
Bir marketten, çikolata, süt ve şeker alan bir kişinin
kaçîira ödemesi gerektiğini hesaplayan bir program
yazmaya ne dersin? Öyle bir program yaz ki, kullanıcı
satın aldığı çikolatanın,sütün ve şekerin fiyatını girebilsin
ve program en sonunda toplam borcunu ekrana yazsın.
Yazdığın programın kodlarını arkadaşlarınla www.
programımızın ilk altı satırında kullanıcıdan
öğrencinin adını ve iki sınav notunu
sırayla girmesini istiyoruz. Öğrencinin
adını "ogrenci_Adi", 1. Sınav notunu
"birinci_Sinav_Notu"ve 2. sınav notunu
ise "!kinci_Sinav_Notu"1simli değişkenlere
depoluyoruz. 7. satırdaki kodumuzda
birinci sınav notu ile ikinci sınav notunu
toplayıp daha sonra ikiye bölerek aritmetik
Kendini Sın a:
Aşağıdaki soruları cevaplayarak bu bölümde
çatıştığın konuları'tekrarlayabilir ve böyiece daha iyi;
öğrenebilirsin!
1. Veri türlerinden 3 tanesinin adını söyfer misin?
2. Değişken-nedir? Ne işe yaradığını açıklar mısın? ,
3. değer s=TextWindow.ReadO komut satırı nasıl bir
4. Deger1=5, değer2=15 ise*degerson=
V ' 'Jdeger1+deger2)/2”kodu çalıştırıldığında
^^^tegerroı^teğiştenirtmdeğefm^iu^^^
ortalamayı buluyor ve bulduğumuz yeni
değeri “karne_Notu"isimli değişkene
Daha detaylı bilgi almak için
depoluyoruz. 8. satırda ise girdi olarak
www.m ucitlergaraji.com adresini
aldığımız adının da bulunduğu bir cümle
ziyaret et.
içerisinde öğrencinin aritmetik ortalamasını
ekrana yazdırıyoruz.
Çocuklar İçin
I
no m
Koşul ve dallanma
ile programın akışın»
İstediğimiz gibi
değiştirebilir, duruma
göre baz» kodların
çalışmasın» sağlar veya
Koşul ve Dallanma
e n g e lle y e b iliriz .
Koşul ve dallanma, bilgisayar programı
akışını koşullara bağlıyoruz. Böyleçe,
yazmanın belki de en önemli
kullanılanın sağladığı bir veriye veya
bileşenlerindendir. Yapay zeka kavram w
hesapladığımız bir değere göre
duymuşsundur, Hani şu bilgisayarların
yazdığımız kodlardan bazıları çalışırken
inan gîbl "düşünebiImelerini sağlayan
bazıları çalışmıyor. Yani, yazdığımız
, bilgisayar programları! Gerçi
fyp « y ze k T k y(1927~>'
dunyayatanıTramtnt
bamıdır mtan
halde bazı kod satırları programın
henüz inan gibi düşünebilen
çalışma anında işleme alınmayabiliyor.
bir bilgisayar programı
Hatırlarsan, "aksi söylenmediği sürece
geliştirilemedi. Yapay zeka
programlaryukarıdan aşağıya doğru
olarak adlandırılan gelişmiş
satır satır çalışırlar"demiştik. İşte şimdi
bilgisayar programları aslında
o"aksi"ni söyleme durumu ortaya
"koşul"ve "dallanmaların çok
çıktı. Programımız kendisine sağlanan
fazla kullanıldığı yazılımlardır.
verilere bakıp, hangi koşula uygun
girdi sağlandıysa ona uygun kodları
Geliştirdiğimiz bir programın, farklı
durumlara göre farklı işlemler
yapmasını istiyorsak, programımızın
çalıştırabilecek. Aslında, gerçek dünyada
da hayatımızı koşullara göre belirleriz.
Akşam saatlerinde bir odaya girdiğimde
"â§tf (fik açık değilse apsiîfY.Vfeys, satıh
upratfım dl oM a gitmeden imce
dışarıdaki havaya b a k iri w %ğer .hava
soğuksa M
lifteyim ,:delise, öttü
imMffyineyinf dîye ^ ^ ıftİiiT ü j
Koşul İçeren Program Yazalım
tikyazdığımızprogramda
ÜM N H v Dûnp"demtelk Şimdi de
gürsün saatine göre dünyayı selamlayalım,
Eğ® 1sa t ö fts 12den tafta efense
"Günaydın Dünya"diyelim. Eğer saat öğlen
12'den daha geçse%î :Alşimlar D İnpf
«tyefint
1
2
3
4
5
6
■ If (Clock.Hour < 12) Then
1 TextWindow.UriteLine ("Günaydın Dünya”)
Endlf
j If (Clock.Hour > 12) Then
; TextWindow.WriteLine (’*îyi Akşamlar Dünya”Jff
t Endlf
Yukarıdaki temuîtsn yenf açacağın bir
Small BaSfctod d ü ^ le y lçftte y iı.
Daha sonra yazdığın kodlan pitprm ak
için ister Araç Çutağu'ndi bufcran
Çalıştır dfii§m sinîflta tersen
itavşendeki F5 tüfuna bas. Benîm bu
ta lJsfı
jgl&İğişft 12 sonrası
olduğu fffet ifsf|ıfMtf # IS H İI .terpHgım.
Gördüğün gibi yazdığımız program
çalıştığında fenîmbflgisâpKîTCla'lyî
AJsprnlir M n p ?fiil®t-#6Iirıa geldi.
S t l İ# bu taöte fiZtp çalıştırdığın zaman
bilgisayarındaki saate göre ya
■
’l it e lp t a •
S ft|flP veya 1yi
Âkpmtif Dünya" ifâdesi İle
karşılaşacaksın.
Smatt ÖöSicde koşut
ifadesi yaz'l'l»'
tf
TVıen «
b R I •
Yazdığımız kodların rlk.3 satırç
.ĞSÜİ'tfd!,;
eğer saat 12'den daha erken
'İH A lım Günaydın Dünya
Ş Ü M vermesini emrediyor,
W
t i 3 siörda gördüğün "If"
feğid 'Then" (sonra), "Endlf" (koşul
bitimi) telımeferî, verdiğimiz komutun
bir koşul cümlesi olduğunu bilgisayarın
antaptbfaiSi için kullanmak zorunda
olduğufftuz özel kelimelerdir. Eh temel
a|
Program çdıştrken
I
değişkende sakındığı
b ir verinin sahip
f lf
olduğu değere gore
karar vermek için
''{I
koşul komutunu
kullanır
J jğ f .
koşuI kelimesi olan If (eğer), koşul
Son olarak, Endlf özel kelimesiyle .
karşılaştırma ifadesi tarafından
bilgisayara If (eğer) özel kelimesiyle
7
7
takip edilir. Burada koşul •
başlattığımız koşul komutunu
karşılaştırma ifadesi (Clock.Hour
sonlandırmasını söylemiş oluyoruz,!!
Clock (zaman) nesnesinin
ûflatifi: ardından, 4., S,.¥ö ötatırtsı®
< i 2 ).
Hour fsastt özeJBğt pı%5iwtffBSBl
di benzer şekilde safin llfdendilıs
çalıştığı bilgisayarın o andaki saatini alır.
p Ç t & M f i koşulunun doğru d m
SmiH Eadc programlama otam ınta'
duruiîiunta;1yî A kftfliif Şüny#
Mbrtabild^lmfz: Ö ö d nssnstf
çt'tenın ekrana p z d rtm e t tarifaf§l
sapsindirpzdıfım epısfram ın p k p |ı
byfattmi,ksdjc <
. M lp tap sıı o andaki bırfiN w » t in e
'erişebiliriz.
%ncaj Una$mâ ki Then ve Endlf özel
talmsteri arasına birden fazla satır
If (eğer) öztl W im ®!ni ve (Clock.Hour
komut yatabiliriz.
<12) koşul karşılaştırma ifadesini takip
eden Then özel kelimesinin ardından
bu koşulun doğru olması durumunda
yapılacak işle İlgili komutu yazıyoruz.
Biz de programımızda TextWindow.
VVriteLine ("Günaydın Dünya") komut
satırı 1le, bilgisayarın saatinin 12den
küçük olması durumunda, TextWindow
nesnesinin VVriteLine metoduna
"Günaydın Dünya" İtetesîrt ekrana
yazmasını söylemiş olduk.
■
■
im
If (Clock.Hour < 12) Then
TextUindow.UriteLine ("Günaydın Dünya! ")
TextWindow.UriteLine ("Umarım güzel bir gün olu
Endlf
Yukarıdaki kodlarda gördüğün gibi If
koşulunu gerçekleşmesi durumunda,
Endlf özel kelimesi ne kadar olan ta n
satırları yukarıdan aşağıya doğru sıray
çalışırlar.
Else
İki koşuldan birinin doğru olduğu
durumlarda ikinci defa lf...Then...Endlf
% 1 7 azaltmayı başarsan, Microsoft seni
bu yaşında hemen çok yüksek maaşla işe
alır. Yani bu işi o kadar küçümseme!
özel komutları ile koşul tanımlamak
yerine Else (değilse) özel kelimesini
kullanmayı tercih ederiz. Böylece,
yazdığımız kod satırı sayısı biraz
daha azalmış olur. Şimdi biraz önce
yazdığımız programı bir de Else özel
kelimesini kullanarak tekrar yazalım ve
kod miktarının nasıl azaldığını beraber
Bir Soru 4.1:
yazdığımız programların kod satırlarını azaltmak
neden bu kadar önemli olabilir? Sonuçta
bilgisayar denilen cihazverdiğimiz komutları ' !işlemiyor mu? Yazdığımız komutların herhangi
bîr ağırlığı yok ki bilgisayara yük olsun? Kod satırı
sayısını azaltmak neden bu kadar önemli? Bu
sorunun cevabını arkadaşların ve bu konularda
bilgi sahibi olduğunu düşündüğün büyüklerinle
tartışıp cevaplarını www.mucitlergaraji.com
görelim.
1 If (Clock.Hour < 12) Then
2
TextWindow.WriteLine ("Günaydın Dünya”)
3 Else
4
TextWindow.WriteLine ("İyi Akşamlar Dünya")
;.5'. Endlf______________ ___________________________
Gördüğün gibi kod satırı sayısını azalttık!
Else özel kelimesinin bu programdaki
işlevine bakacak olursak, ilk satırdaki
saatin 12'den daha erken olma koşulu
doğru değilse (Else) başka bir koşul
Şimdi bazılarınızın bütün bu gürültü bir
karşılaştırmasına gerek duymadan
satır az yazmak için miydi? dediğini duyar
TextWindow nesnesinin VVriteLine
gibiyim. Burada sadece 6 satırlık küçük
metodunun ekrana "İyi Akşamlar Dünya"
bir programda bir satırlık azalmanın
yazmasını sağlıyoruz, çünkü saat 12'den
yüzdesel karşılığı yaklaşık % 1 7. Microsoft
daha erken değilse 12'den daha geçtir,
Windows gibi, Microsoft Word veya
yani daha büyüktür! Şu soruyu soracağını
Microsoft Excel gibi milyonlarca satır kod
tahmin ediyorum: peki saat tam 12 ise
içeren büyük programlarda kod miktarını
ne olacak? Elbette yazılım uzmanları
Çocuklar İçin Progr;
bu durumları da düşünerek farklı
karşılaştırma operatörleri kullanıyorlar:
Küçüktür <
Küçük veya eşittir <=
Büyüktür >
Büyük veya eşittir = >
Eşittir
=
Eşit değildir <>
::2;
;v
3
4
5
'“fi:?,
7
:8
TextWindow.Mrite (“Bir sayı girin: ")
girilen_Sayi » TextWindow.ReadNumbe r (]
kalan ■ Math.Remainder (girilen_Sayi,
lf (kalan=0) Then
TextWindow.WriteLine ("Çift Sayı Giı
Else
TextWindow.WriteLine ("Tek Sayı Girı
Endlf
Eğer saat 12'den daha erken veya 12'ye
Programı çalıştırdığında aşağıdaki
eşitse "Günaydın Dünya" mesajını vermek
ekranla karşılaşacaksın:
üzere kodumuzu değiştirmek istersek,
yapmamız gereken sadece küçük bir
karşılaştırma operatörü değişikliği
olacaktır.
•1 j lf (Clock.Hourp)l2) Ttıen
TextWindow.Wrîteline ("Günaydın Dünya")
H E|se
S ;
TextWindow.WniteLine ("İyi Akşamlar Dünya")
iüŞ j Endlf__________________________________________
Bu programda yeni bir nesne kullan
Math. Bu nesne bir sayının kareköki
karesini veya ortalamasını almak git
Tek mi çift mi?
Şimdi yazacağımız program, kullanıcı
tarafından girilen bir sayının tek sayı
bir çok matematiksel işlemi kolaylıkl
yapmamızı sağlar. Burada da Math
nesnesinin Remainder metodunu
kullandık. Remainder metodunun
mı yoksa çift sayı mı olduğunu kontrol
ederek sonucu bildirecek. Yandaki kodlan
yeni açacağın bir Small Basic kod
düzenleyicisine yaz.
görevi kendisine verilen iki sayıdan
birincisini İkincisine bölerek kalan
sayıyı vermektir. Biliyorsun, bir sayı 2
bölündüğünde eğer kalan 0 (sıfır) is
I bölünen sayı çift sayıdır, değilse yan
telin'ö'dın büyük bir Fftem® Mİtnen
yyteü"¥®ya 'l|l|ı dğpu i®»dipfflfe-Sinı*
sap tek sayıdır. Math nesneıMû.
ı t e r r i b f l l f e : 't e f t a r ; y i r t Iftr
Remainder metodo feteiftiki girdi
SmtD Sülc ted d û zşn te® n iıysı.
M ^R ®rt«isi Mjünıcek'Siyii ikîncM ■
lü
i& ûldûp
glfei Math.Remainder(girilen_Sayi, 2)
i|teîrind®i gMlen syı Tys tflinöyef
vü biten
« im in d i artan değer
kalan İM İ dssf^tefid'&depölanjyff.
Mî ıdt satıra baktığımBte. ise kalan
IH
değişken = i
basla:
t extwindow.W rİte Lin e ( degisken)
değişken » değişken + ı
lf (değişken < 25) Then
Goto b asla
Endlf
Program çalıştığında aşağıdaki ekranla
karşılaşırsın,
değişkenin übipcMu^y
değerin ö aifpait.dywnwnda belli
İ
biretaın çıkansTtı/%değîisa başta
1 Dallanma, programın
akışım vukarıdan aşağı
* veya aşağıdan yukarı
değiştirmemizi sağlar
bir eten çıtesrffii'prtnîölen'itıflsf
sığlinmıtediK
Ftogrsmın îik satırında değişken
Dallanm a
M i değlftete 1' değerinl-d^öfiyıyöMi
iHnei 'Sûrda |g p ^ ||i^ rj^ pşpm basla
Jtefırlifsah, programlım pişma
popftfnûtca üif'fc&:'te8Wlrt;^ d u k :C4' *
anınd» blgfii^a.rlırıny^ttrıraı.te^Jın -
ikinci safim imaca s fSİM p ^teûemeter.:
yulMiSin aşağıyı m r «far öteşrarsk
Neden programın belli |M rnM iM IÜS?
piştirdiğim .sl^İerniştffe,Anstfe dıllaniTta
sayesinde programın akışını biranda
etiket koyma gereksinimi duyuyorum?
ÇEritt daha sorat1o nfep'sbğry: ite
atlamamız veya geri dönmemiz gerekebilir.
ÇpcuBöİçinPfogtatnlatfia r ı
Bunu, bir kitap okurken belli sayfalara
I değişken = değişken + 1
işaretler koyarak, o noktaya istediğimiz
anda geri dönmemize benzetebiliriz Bir
Burada, ilk önce değişken isimli
bilgisayar programında istediğimiz kadar
değişkenin sahip olduğu değere 1
etiket kullanabilir ve bunlara istediğimiz
ekliyor ve yeni değeri tekrar değişken
ismi verebiliriz (değişkenleri isimlendirirken
isimli değişkende depoluyoruz
dikkat etmemiz gerekenler, etiket
isimlendirme için de geçerlidir!)
Beşinci satırda değişken isimli
değişkenin sahip olduğu değerin 25'de
küçük olma durumuna bakıyoruz
Eğer değişken 25'den küçükse altıncı
satırda Goto basla satırı ile programın
akışım tersine çevirerek tekrar basla:
etiketinin olduğu satıra geri dönüyoruz
ve programın oradan çalışmaya devam
etmesini sağlamış oluyoruz Goto
kelimesinin Türkçe karşılığının "Git"
demek olduğunu sanırım söylemeye
Oçüncü satırda değişken isimli
gerek yok. Böylece, degisken'in
değişkenin sahip olduğu değeri ekrana
değeri 25'den küçük olduğu sürece
çıktı olarak yazdırıyoruz Dördüncü
ekrana değişkenimizin sahip olduğu
satırda ise ilginç bir komut yazdık:
değeri yazdırabiliyoruz Değer 25'e eşit
veya büyük olduğu zaman ise koşul
54
Koşul ve Dallanma
sağlanmadığı için Goto basla satırı
devreye girmiyor ve programımız
sonlanıyor.
değişken = 1
[basla: |
TextWindow.WriteLine(degisken)
değişken » değişken + 1
If (değişken < 2 5 ) Then
Goto Ibasla
Endlf
Görev 4.2:
Tek ml çift mi adlı prograrnırrıızın ilk satırına
'basla:" ve son satırına "Goto basla" komutlarını
eklesek acaba programımız nasıl davranır? Bu
sorunun cevabını kendin kolaylıkla bulabilirsin.
SllllMH
■■■II.. I I II.. İlil..II 11I
II I------ HnHir*1
Kendini Sına 1
Vışağıdaki soruiarteevaplayarakbu bölümde
çalıştığırfkonuları tekrarlayabilir ve böylece daha
iyi öğrenebilirsin!
'1. Programlamada koşul komutunun nedem ;
kullantldığmraçtklar mısın?
2. Programlamada dallanma komutunun neden
' --kullanıldığını açıklar mısın?
3, Kullanıcının klavyeden gireceği yaş 18 den
küçükse "Çocuk", 18-25 arasındaysa "Gene",
25-45 arasındaysa "Orta vaslı" ve 45-70,arada ise
"Yaşlı" mesatı verecek bir program vazar mısın?
: -*
Daha detaylı bilgi almak için
www.mucitlergaraji.com adresini
ziyaret et.
Çocuklariçin Programlama
Döngüler
Aksi söylenmediği takdirde program
Pazartesi ile başlar ve böyle devam eder.
kodlaroın yukarıdan aşağıya satır satır bir
Ocak ayı ile başlayan bir yıl Aralık ayı
defa çalıştığını artık biliyoruz. Ancak bazı
ile sona erer ve Ocak ayı ile yeni bir yıl
programlarda, yazdığımız onlarca satır
başlar,
kod içinden belli bir bölümünün
birden fazla çalışmasını isteriz, Bu
tür durumlarda "döngü" (loop)
denilen komutlardan en uygun
ötenini kullanırız. Döngü komutları
m yazılım uzmanlanma, bir veya daha
W fazla satırı belli bir sayıda veya belli
î
\
\
/
bir koşul yetine gelinceye kadar
tekrar tekrar çalıştırma imkanı verir.
Dallanma konuşumu anlatırken
Türk] Dil Kurumu Söztüğü'nde “herhangi
jg
Döngüler
yaptığımız son programı hatırlarsam
bîr olayın birden fazla tekrarlanması"
başlangıçta 1değerine sahip olan
Olarak tanımlanan döngü/ aslında
değişken isimli değişkenin değerini
hayatımızın içimde var olan bir kavram,
25den küçük olduğu sûrece birer birer
örneğim haftalar veya yıllar bir
artırmış ve bu değişkenin sahip olduğu
döngüdür. Pazartesiden başlayan hafta.
değeri her artırma işleminin ardından
Pazar sona erer, yeni bîr hafta tekrar
ekrana yazdırmıştık.
1
2
3
4
5
6
7
değişken s ı
b a s la :
TextWindow.W rite L in e (d e g is ken)
değişken = değişken + 1
If (d eğişken < 25) Then
Goto b a sla
Endlf
Kodlarını yazdıktan sonra Araç
Çubuğu'nda bulunan Çalıştır düğmesM
tıklayarak programını çalıştırdığında şu .
ekranla karşılaşacaksın.
Değişken değerinin 2ffe©fîüeridiğl
If...Then....Endlf taaşul tamutu ile
belirlendiğinde program sofılanıyordu.
Aslında yangım ız sadece şuydu:
basla: etüastf ve Goto tsfauilı ırasında
)«zdrğiiTiii,İsornytlift'' b itt Öf fedful
yerine gelinceye kidir birden fazla
çalıştırmışdık. Şimdi aynı işlemi çök daha
te lis i'A h a az k ^ p ıııık y s p ic ş i® ..
Daha önce 7 ıtırd ı yaptığımız M* ‘
işi artık sadece 3 satır kod yaprak
ppabîIİydfLid Döngüler,tekrarlanan işlen
daha az kAy^Piky8:prf*ETW.«ğlfrlar.
H*sriersan,Ahaszkafpat*® ne
For döngüsü
s A m i f ^ d f î n i ö ğ ı^ m iş ıil* *
Şimdi, yeni bîr Small Basic kod
Yazdığımız üç satır kodu
döısnteyîcî persiîi^ügpa|i§ıA W
kodlan yazalım.
&m im â8 değişken
idlt bir dfeğlşkene îtte n ta il 8P ® k
24'e kadar adım adım yeni bir değer
1.. For değişken = 1 To 24
2
Textwindow.WriteLine {değişken)
3,ffi EndFor
böngû, bir veya daha
fazla sa tırı belli bir
sayıda veya belli bir
koşul yerine gelinceye
kadar çalıştırma
imkanı verir.
aradığımızı gSıÜıÛz. For d in g ö
tem yiu kendişndın ü m şefen
rişŞftenş.e rite n sonra kullanılan
imnNHıiıiTjMMptnkılHi çq
Step
İlk değerden Jö n değere doğru yeni
değerleri sırayla depolar.
For değişken ağ = ilk değer to son değer
Yazdığımız kodlara dönersek, programı
ilk çalıştırdığımızda değişken isimli
cteğijkentl değeri atanıyor, ardından
ikinci satırdaki kod devreye girerek
değişkenin sahip olduğu değer ekrana
yazılıyor ve son satırda EndFor komut
satın ile döngü değişkene yeni bir değer
atamak üzere tekrar birinci satıra geri
dönüyor. Bu sefer değişkenin
değeri 1 artırılarak 2 değeri
değişkene depolanıyor, tekrar
,v a daW
a fûzla
KftCİ satır ve ardından üçüncü
tırmok ıçl T
,asü kui»ow»T
« t r çalıştırılarak program
işlimi yapmaya devam ediyor.
'İte jgftfsö a firü fllûifiü satır
arasındaki bu gidip gelmeler değişkene
en sun: 24.değer!nîn atanıp aynı iştemin ’
Peki, 1'den başlayıp 24'e kadar olan
artışın birer birer değil de mesela
ikişer ikişer veya altışar altışar gibi farklı
olmasını istersem ne yapmam gerekiyor?
Küçük bir değişiklik büyük sonuçlar
doğurabilir! Aşağıdaki kodlara bir gözat:
l | For değişken = 1 To 24^tep 2^
2;
TextWindow.WriteLine (35ğısken)
31 EndFor
Birinci satırdaki döngü komutu olan For
cümlesinin sonuna Step özel kelimesintr
ardından hangi değeri yazarsan, ilk
değerden son değere artış adımları da o
kadar olur. Bizim örneğimizle Step 2 ite
artışın ikişer ikişer olması sağlandı.
li t e İ H M İM i fesdst devirt MffpM •
24 d.i|eriBİn Eteğîşkirîi'-aöniHastnin *
ardından döngü gonisnıyor, .
B
Döngüler
For değişken » 1 To 24
TextWindow.WriteLine (degiskan)
EndFor
■M.
1
Step kûmutühün bîr özelliği ise, ilk.
dö^eKten son tfeğss olan değişîmirv
ister artış ister eksilme şeklinde olmasını
sağlamaktır. Yani, eğer eşittir (=)
işaretinden sonraki ilk değeri büyük,
son değeri ise küçük olarak verirsen
ve örneğin Step -1 yazarsan, bu sefer
döngü, sayıları artırarak değil azaltarak
ekrana yazar.
2'
For değişken = 10 To 1 Step -1
TextWindow.WriteLine (değişken)
EndFor
Yukarıdaki komutları yazıp çalıştırdığında
ekranında aşağıdakine benzer bir
görüntü olacaktır;
Görev 5.1 :
Yaptığımız For döngülerinde ilkve son değeri
kodlarımıza yazdıkve program sürekli aynı ilkve son
değerlerle çalıştı (Birincisinde ilkdeğer 1, son değer
24ve İkincisinde ilkdeğer 10ve son değer 1). Peki,
senden ilkdeğeri ve son değeri kullanıcının programın
çalışmasının ardından kendisinin giriş yaparak
belirlemesi istenirse, nasıl bir kod yazman gerekirdi?
Bu soruyu cevaplayacak kodları yazve bizimle www.
jTUjatieraarajixon^dresjnd^)a^a^^^^^^^^^
VVhile döngüsü
Bir önceki programda, For döngüsünün
hangi sayıdan başlayacağını
ve hangi sayıda sona ereceğini
belirlemiştik. Peki, döngünün
ygvo d&Ho
hangi sayıdan başlayıp hangi
ır, betti bir koşui
line9eVmeeye kadar
sayıda sona ereceği belli
Hrn\ok tçw Wbwe
\g ü sü kuttoru'.ır.
değilse ne olacak? While
döngü komutu dönüş sayısının
bilinmediği durumlarda kullanılır.
For döngüsü önceden belirlenen bir sayı
kadar çalışırken, VVhile döngüsü belli bir
koşul durumu gerçekleşinceye kadar
çalışır. Şimdi For döngüsü için yaptığımız
kodu bir de VVhile döngüsü ile yapalım
ve ikisinin kodlanması arasındaki farkı
anlamaya çalışalım.
Çocuklar İçirt Programla®*# ^ * j
Aplfidaitf
$tp$M$ t e îc tad
iS ted.iBöffnGÖsl^-#rrBmÖoMtJİpStt
i g M rflg '
S i l değişten - 1
2 While (degisken<25)
While (degisken<25)
.3.
•
’İA.d
TextWindow.WriteLine (değişten)
degisken=degisken + i
$ m EndVVhile
f Bu satırdaki While kçŞfmjtu, aslında ;
Yazdığımfz kodlan çalştırdtğında
aşağıdaki ekranli teıpitp^tefr*
| te te ö n c E ^ s rıiÇ ııfe lffe ffîrtu
[ gibi çatışıyor. Bu kpmut satmrpşu
1 şekilde okuvabfiiriz: değişken isimli
değişkenin değeri 25'den küçük
olduau sürece çalış! iklltiM B lteİftİte
I
rttîp d d ıöw
I d®§if tattfol
değmen.
| teı^lufftLWif|piftb&!de§«^shfpse'
w hiie
^h^SK^ğıfnüt kodlif, • I (yart dB^teföh .<fe§erî i^^an küçûteeî
For ct^%;Qıöııi#3' bpd}sflrtsft,%rti
|
tsAffW TextWindow.
WriteLine (değişken) kastık- p jşpİE.
Ş |İp p W ^ '‘t t İU >
kı, While döngüşûnd*
2 â ftf f e ll W ;PPM
1 Ardından dördüncü satırda, değişken
WhiledûngüwyerineFor tğilnşffğğriğ:
1 m fsi
d^feri MfMfââj&MFor
fe#®tmaasgip î# iF öystıtfel duy®*
| ıjBEljp p de^ef sıprog
göyfffı, ınc^^aita önce-teftftfftp it
iİ
işini kendisi otomatik yaparken, While
W hile dllngSıö özellikli dttnöfIIP## #! !j
Okbaştan telif öirntdığidüftrtkf IşjNı
M a p tfrtfl
yaaTiaif^.{degisken=degisken+1). Spp
l liîütefci EndWhile
afep ttikrar vvhile Shrhhbnur
bulunduğu 2. satıra ger! döndürüyor,.
W hile döngüsüne uygun örnek
pmdi VVhile îf c Ç iiif lİR yap U ®
yfp iBt Ör ftnirfrw|^ım ».ıâ^ y t o ^iiTte
gim ıçp stp
1Sâsft îşû|fîfe öMü^jı10&Ğ& İÜ W İ.2 ^
Yazdığımız kodlan incelediğimizde ükiki
satırda kullantcrnın bir sayı girmesini istiyor
w tfrifenkfH!iyi değişken isimli değişkene
ta S İîB H rf^ h f c u sabun* d a n a
depoluyoruz. X satırda başlattığımız
yazılacak. Şimdi aşağıdaki temutiarı, yeni
VVhile îllijiiy it değişken K İH İB jS p B â l
bir Small Basic kod düzenleyicisine yaz.
koşulunu kontrol ediyor, Eğer, değişkenin
ifi'll texttftn*tew,Writ«:t "Bir sayS gip'Sus **$j
| ® § âesğîsfc&i m Textwi ndow.ReadMumbeP()
3 ,v While (degisken>l)
:!m \û
k s 'ı
TextWindow.WriteLine .ÇjseSsteffil
değişken *» ıfegisSea /İ
6 :. EndWhile
sahip olduğu değer 1'den büyükse 4.
satırda bu değeri ekrana yazdıktan sonra
i ı ı i i i B . s ^ ^ te fa
w yeni değeri tekrar aynı değişkene
Prcştamı
d ^ sttp s. ÜİU
5§
ftig liS fİİh tH a i
3 Ö î# ft feft" sayı .gfe iliB n ü m
Enter tıpiıi-te«'W H d^#îB fenser tflr
dtKanî#
değişkenin
S fa fc ifa B H m&mL
*"
S ra s fc ö P ^ E H Il F o rıtfn c ^ fifc
û ıte 'lt a i
iü t feefim si siyasâTiifa-c fa ^ g
kod satırlarrmtz istediğimiz koşul
PM ö H f ttfp filı? f c t â lıip | (® r MmÛM#
.te to sö EB
ğlıaBff» p a t
kaç ddlt jJps*
M çlifeıiaiiip i i f e ı â : B m M h i
ıçonî tr çınBtıp
döngünün çalışma sayısını baştan
belirlemek yerine, belirttiğimiz bir koşul
(değişkenin sahip olduğu değerin l'den
küçük olması) gerçekleşinceye kadar
çalışmasını sağlayacak olan W hile
döngüsünü kullanmayı tercih etmeliyiz.
Bir Soru 5.2:
Son programı döngü kullanmadan yapabilir miyiz?
Sence yapabiliriz. Şu ana kadar öğrendiklerini
kullanarakherhangi btr döngü komutu
kullanmadan son programla aynılşi yapacak bir
program yaz ve kodlarını www.mucitlergaraji.
Kendini Sına1
Aşağıdaki sorulan cevaplayarak bu bölümde
çalıştığın konuları tekrarlayabilir ve böylece daha
iyi öğrenebilirsin!
1. Döngünün yazılımlarda üstlendiği görevi açıklar
mısın?
2. Aşağıdaki kodlar çalıştırıldığında ekrana hangi değerler yazılacaktır?
değeri=1
deger2=J0
artim—3
for degısken=deger1 To deger2 Step artim
TextWindow.WrîteLine{degisken)
EndFor
3. Kullanıcının klavyeden girdiği değer 5den farklı
olduğu sürece ekrana Tekrar giriş yapınız!” ;
yazan, kutlama klavyeden 5 değerini girdiğinde
ise"Hoşgeldiniz!”yazan bir program yapar
Daha detaylı bilgi almak için
www.mucitlergaraji.com adresini
ziyaret et.
Grafiklerle Çalışmak
Graphics Window
nesnesi ile ekrana
çeşitli şekiller
çizebilir ve bunları
renklendirebiliz.
^m pryrtı» bu' b itlik » I
hgyecinlindHffl » f? İÜ'
m
m
y ık ım ız a İ Ü v s in bir'nesne,
’
'
sebebf p ir® tad ır
yazdığımız tüm M lan n simsiyah
Bunakarşılık, #tfi:ndaçeşitli'pkltar
ç i z m e k Small Basic bize
GraphicsWindow isimli başka bîr
ek iid lib a çaiifm ifb irim Bu siyah
nesne sunmatosfer. TextWindow'un
ekranlardan ve sadece rakam yada
aksine, GraphicsWindow isimli nesneyi
S M M M I çalışmaktan sıkılmış olabilirsin.
çalıştırdığında, siyah değil beyaz bif
Arbk d ib i eğlence! vs Mgtsayannın
pencere ile karşılaşacaksın.
ğ irstl M tikterini d# k ü llin d ik
kornııüirr
başlıpaa.
. Trtte
. WidtV\
Height
Grafik nesneleri
GraphiesWindow.Show()
GraphicsWindow H
Ü
İ
show m n A m i Sullıniiiiçiiifîda'îi.
Ü l ü pilftteFl çîzeceğimte pencereyi
TextWindow, meflnigf v e .
sayısal işlemleri kolaylıkla
68
1
^ û n ffll^öü rsîin .
Burada, GraphicsWindow nesnesinin
dört özelliğine ait değerleri değiştirerek
resimde görülen görüntüyü elde ettik.
Bu özellikler:
BackgroundColor: Arka zemin rengi
anlamına gelen bu özellik sayesinde,
Arka zemin rengi, pencerenin başlığı,
genişliği ve yüksekliği gibi grafik
penceresinin görsel tüm özeliklerini
kendi isteklerimiz ve ihtiyaçlarımız
eşitliğin sağ tarafına tırnak içine
İngilizcesini yazdığımız rengin
pencerenin arka zeminine
atandığını görüyoruz.
doğrultusunda yazacağımız kodlarla
değiştirebiliriz.
Title: Başlık anlamına gelen bu
özellik sayesinde, pencerenin
8 Bilgisayarının ekran
ayarlarını öenet'm
basası' nda bulunan
Ekran Çözünürlüğünü
Ayarla'yı kullanarak
k değiştirebilirsin.
üst bölümünde yer alan başlık
v
alanına pencereyi tanımlayıcı
istediğimiz bilgiyi yazabiliyoruz.
Ziyaret ettiğimiz web sitelerinin başlık
bölümüne bakarsak siteyi tanımlayıcı
bilgi veya sloganlar görürüz.
Yukarıdaki görüntüyü elde etmek için şu
kodları yazmamız gerekir:
Width: Genişlik anlamına gelen bu
özellik sayesinde, GraphicsWindow.
lİGraphicsUindou.BackgroundColor « "Blue"
2|GraphicsWindow.Title ="Burası penceremin baslığı"
3 |GraphicsWindow.Width = 300
4|GraphicsWindow.Height = 200
51 GraphicsWindow.Show()
Show() komutuyla açtığımız
pencerenin genişliğini piksel cinsinden
belirleyebiliyoruz.
Çocuklar İçin Programlama
Height: Yükseklik anlamına gelen bu
cevabını bîlryorsundur ama tesaca
(S^etlîk sayesinde, GraphicsWindow.
açıklamakta fayda görüyorum. Dijital
Show() komutuyla açtığın®
pencerenin yüksekliğini piksel dsinden
■görfintûteç yttıy ve d:İt8y tipncle yan
yana sıralanmış noktalardan fplİpeS
oluşur. Yatay ve dikey noktaifyııı
%rtı ®m«red§ is®gîseyırekrifa?®
çöıünürtöğünü ete beRıfet Nokta
arfibkşi ekrandaki görüntü -kitlteşl
iilarfat» nste ssym tsldtkça görüntü
H K üjf düpr.. Çalıp|iw Mlgbsprın
' eişM fıft kaç noktadan meydanı
peJcİğM merak/edlysrsın sol alt köşede
bulunan Başlat düğmesine tıkladığında
piksel neslîrf Eminim bu sorunun
açılan menüde Denetim Masasında
x ekseni
Ekranda bulunan her
nokta bir adrese
sahiptir. Bir nokta
Özerinde bulunduğu
yatay (x ekseni) ve
dikey (y ekseni) ile
isim lendirilir.
*
BBBBBBBBBBBBBBBBBiBBBBflBBBBflBSBSBBBBBSBBBBB
IBBBS
■■■
y ekseni
■İSIIIIIIIIIIB
■7A Grafiklerle Çalışmak
(■IIBIBIIIBIII
■■■■■■■■■■■■■
bulunan Görüntü Özellikleri bnşlıfı
Ekrarajs bulunan her nokranın bir adresi
altında 1024 x 768 veya 1280 x 720
ü & Her nokra üzerinde bulunduğu yatay
veya 1280 x 768 veya 800 x 600 gibi
(xeksinf ve iflsşff( y f î f t a ni l i r . ,
rakamlarş M h û fi İ u rakam^teînden
İM ekranındaki yatay |Ü İÜ nokta
Ekranınid üst köşesindeki fit nokra
tdtsâne
Buradaki Jlk rakam'
$Ü W İEfiİ!âS^ rakam î^ y eksenini •
saysını, M idili dlîfity ÖNelfNfl .sokra
sayısın} M it e ,
Peki ratamlaraı arasında neden çwpr
işareti var? 8u Mitrafcamitfi çarparsan
İlk çizim imizi yapalım
ekranındaki nokra sayısını öğrenebilirsin!
Şimdi ekranda bir çizgi çizelim.
Hemen birkaç örneğe bsl#öws t
Yeni açacağın bir Small Basic kod
düzenleyicisine aşağıdaki kodları yaz ve
1280 x 800 = 1.024.000 piksel
çalıştır.
1024 x 768 = 786.432 piksel
I\İİ GraphicsWindow.BackgroundColor * “Yellow"
2 GraphicsWindow.Width • 200
kiri GraphicsWindow.Height = 200
‘4|6raphicsMindow.DrawLlne (10, 50, 100, 158)
Bana inanmıyorsan ekranındaki
noktaları tek tek sayabilirsin! ©
Ks&tsrrıgflprdıtında aşıfısM İ ekranla
karşılaşırsın.
öraıvLine metodu,
oluşturacağı çizginin
başlangıç x ,y ve bitiş
K y değerlerini ister*
Yazdığımız kodların, ilk satırında
pencerenin arka zemin rengini sarı olarak
belirliyoruz. İkinci ve üçüncü satırlarda
pencerenin genişliğini ve yüksekliğini
piksel cinsinden ayarlıyoruz. Son satırda,
GraphicsWindow nesnesinin DrawLine
metodu ile çizgimizi çiziyoruz. DravvLine
metodu bizden 4 girdi istiyor.
olarak verilen başlangıçtan itibaren
bitiş noktasına kadar bir çizgi çizer.
(10, 50,100,150)
Şimdi
GraphicsWindow nesnesinin
çizimlerimizi daha renkli ve farklı hale
gelmesini sağlayacak diğer özelliklerine
Başlangıç
*,y
bir göz atalım.
(10,50,100,150) rakamları, çizginin
başlangıç ve bitiş noktalarının
DravvLine metodu, ekranda girdi
(piksel)
adreslerini belirtmektedir. İlk iki
rakam olan (10,50) çizginin başlangıç
noktasının x ekseni (yatay) ve y ekseni
1
2
3
4
5
6
7
8
GraphicsWindow.Width = 200
GraphicsWindow.Height = 200
GraphicsWindow.PenColor = "Red"
GraphicsWindow.PenWidth = 10
GraphicsWindow.DrawLine (10, 50, 100, 150)
GraphicsWindow.PenColor = "Blue"
GraphicsWindow.PenWidth = 20
GraphicsWindow.DrawLine (100, 50, 10, 150)
Yukarıdaki kodlarda, 3. satırda bulunan
PenColor özelliği, çizginin rengini
(dikey) adreslerini verirken, (100,150) ise
(kırmızı) belirlememizi sağlarken, 4.
çizginin bitiş noktasının x ekseni (yatay)
satırdaki
—
&raphicsWindow
nesnesi PenColor
özelliği ile çizgi rengini
ve PenWidth İle çizgi
kaimliğini belirler
PenVVidth özelliği ise çizginin
ve y ekseni (dikey) adreslerini
kalınlığını piksel olarak belirlememizi
belirtmektedir.
sağlıyor. Ardından, 5. satırda ilk çizgi
çiziliyor ve 6 ile 7. satırlarda çizginin rengi
(mavi) ve kalınlığı değiştirilerek 8. satırda
yeni çizgiyi çiziyoruz.
Kodları çalıştırdığında aşağıdaki ekran
noktası ikinci çizgide başlangıç noktası
çıktısı ile karşılaşırsın. Gördüğün gibi
oldu.
ilk çizdiğimiz kırmızı çizgi 10 piksellik
kalınlığa sahipken, ikinci çizgi mavi ve 20
piksellik bir kalınlığa sahip.
X
Döngü kullanarak çizgi çizm ek
Birden fazla çizgiyi ardı ardına çizmek
Burada önemli bir nokta ise ikinci
için döngü komutu kullanılabilir.
çizginin koordinatları. İki çizginin de
Aşağıdaki kodları yeni bir Small Basic kod
yüksekliği aynı. Tek yaptığımız birinci
düzenleyicisine yazarak çalıştır.
çizginin x ekseni (yatay) değerlerinin
ikinci çizgide yerlerini değiştirdik.
Böylece, birinci çizgide başlangıç noktası
Yazdığın kodları çalıştırdığında diğer
sayfadaki görüntüyle karşılaşacaksın.
ikinci çizgide bitiş ve birinci çizgide bitiş
1
2
3
4
C
D
GraphicsWindow.BackgroundColor = "Blue"
GraphicsWindow.PenColor = "yellow"
GraphicsWindow.Width = 280
GraphicsWindow.Height = 200
6 For değişken = 1 To 5
GraphicsWindow.PenWidth=degisken * 2
7
GraphicsWindow.DrawLine (10 * değişken, değişken * 15, 20 * değişken, değişken * 15)
S
9 EndFor
Çocuklar İçin Progr
Görev 6.1:
Aşağıdaki şekli görüyorsun, değil mi? Sence bu
şekli çizmek için nasıl bir kod yazmış olabilirim?
En az kodla bu şekli sen de çiz ve kodlarını www.
mucitlergaraji.com adresinde bizimle paylaş.
6. satırda başlattığımız For döngüsünde
değişken isimli değişkene 1'den
başlayarak 5'e kadar sayıları sırayla
depoluyoruz. İlkönce, döngünün her
tekrarında değişkene depolanan değer,
7. satırda GraphicsWindow nesnesinin
PenVVidth özelliğine atanarak çizgi
kalınlığı belirleniyor. Ardından, 8. satırda
GraphicsWindow nesnesinin DravvLine
metodunun başlangıç (x ekseni) ve bitiş
(y ekseni) değerlerini değişkenimizde
depolanan değer ile çarpıyoruz. Böylece
döngünün her çalışmasında ekranda
faklı bir pikselde başlayan ve faklı bir
pikselde sona eren farklı kalınlıkta çizgiler
Kendini Sın a :
Aşağıdaki soruları cevaplayarak bu bölümde
çalıştığın konuları tekrarlayabilir ve böylece daha
iyi öğrenebilirsin!
1. GraphicsWindow nesnesinin hangi amaçla
kullanıldığını söyler misin?
2. GraohicsVVindovv nesnesinin özelliklerinden
dört tanesinin isimlerini ve ne işe yaradıklarını
söyler misin?
3. Ekrana her birinin kalınlığı farklı, uzunluğu aynı
olan 10 tane çizgi çizen programı en az sayıda
komut satiri ile yazar mısın?
4. Piksel (nokta).ile koordinat arasındaki ilişkiyi
açıklar mısm?
çizebiliyoruz.
Daha detaylı bilgi almak için
www.mucitlergaraji.com adresini
ziyaret et.
Farklı
Geometrik
Şekiller
6raphicsWindow
nesnesinin
Orauüectmgle
metodu ile
veya dikdörtgenler
çizebiliriz.
kare
Doğru koordinatları vererek, dikdörtgen,
kare, beşgen, elips ve daire gibi
g£sn«ttk.pMtef1 İs s a ld ı
vs
i p iB ri:tiktekiîrifei!ö l,î».
Dörtgen çizmek
1 İGraphicsWindow.Width = 350
2 'GraphicsWindow.Height = 200
3 İGraphicsWindow.BackgroundColor m "navy"
4 >GraphicsWlndow.PenWidth = 10
5 i6raphicsWirrdow.PenColor = "Yellov*"
6 :GraphicsWindow.DrawRectangle (100, 50, 200, 90)
Kodlan çalıştırdığında aşağıdaki*
dikdörtgeni göreceksin.
Ekranda bir dörtgen (dikdörtgen
rrm&\m
u ,| M i y ı
ı ın
• veya kare olabilir) çizmek için
GraphicsWindow nesnesinin
DravvRectangle metodunu kullanırız.
□
f DpW y^s^;sntsfîtını gelirken
t ifeetangle ise dikdörtgen ınMmfia
gelmektedir.
Şimdi yandaM tedteı yeni bir Small
Basic kod düzenleyicisine yaz ve çalıştır.
BarklıGeometrikSekiHer
Sarpım, sadece A satın ıp lt a ıık yeterli
olacak. GraphicsWindow nesnelinin
DrawRectangle metodunu çalıştırarak
sol te n Ü M
f9&
piksel vs y ekseninde ( s ü ^ lS piktetrf®,
İP lp f l 200 ve yÜlssMfJ 90pîtesl d ia
,Üf’difeİöripgn çMirîywu2,
GraphicsWindow. DrawRectangle (100,50>200,90)
genişlik=200
DrawRectangle rnetockjndin "ferktl
fiifilv GraphicsWindow ne$fte#fliî
FilIRectangle mft@$t|
tgfl dö|i
©tırak çfıeâ
200
B GraphicsWindow.Width =
«GraphicsUindou.Height * 206
.Ş'xGraphicsWindow.BackgroundColor * "Navy"
fjfcüGraphicsMindow.BrushColor ■ ”Yellow"
5 GraphicsWindow.FillRectangle (80, 50, 66, 60)
'YUâneâ^t-terty
ı^ ip B i^ rta
■pedılî Afifin fttejo t pftrörfte*
■fcvJtJV- ^
*
Yeni yazdığımız kodlara baktığımızda,
% n ö rA GraphicsWindow nesnesinin;
BrushColor §zdl3||tffîn m ş p â sarı
BrushColor
özelliği, PenColor'dan fittştelfeö d e ce
çizgi rengini değil, çizginin içinde kalan
«teni otarenginik â ı ^ * İ i satırda ise
FillRectangle metöbu, DrawRectangle
f i aynı | !ı$ İf i iisrvfc istediğimiz
dörtgeni çiziyor. Dörtgenin ham
İte
genişliğine (60 piksel) hem de
yüksekliğine (60 piksel) aynı
değerleri verdiğimiz için çıktımız
ÖravuRectangle
metodundan
kare şeklinde oldu]
Daire Çizmek
-
farklı olarak,
ĞraphtçşWindo\N
nesnesinin
FillRectangle metodu
dörtgen^İ^ dölü
^ar^içiîier.
İçi dolu daire veya eiips çizmek
için GraphicsWindow nesnesinin
FillEllipse metodunu veya İçi boş
bir çember çizmek için DravvEllipse
Çocuklar İrin
Orrmr-.
Graphics Window
nesnesinin
ÖrawEllipse
metodu ile daire
veya elipsler
çizeb iliriz.
jg f■
metodunu kullanıyoruz. Aşağıdaki
verdiğimiz (170,70,80,80) girdileri ile x
kodları kullanarak hem daireyi hem elipsi
ekseni (yatay) 170. piksel, y ekseni (dikey)
beraber çiziyoruz.
70. piksel, genişliği 80 piksel ve yüksekliği
de 80 piksel olan bir elips çizilmesini
1
2
3
4
(S
i.6
7
8
9
10
GraphicsWindow.Width = 400
|GraphicsWindow.Height = 450
[GraphicsWindow.BrushColor - "blue"
İGraphicsWindow.FillEllipse (170, 70, 80, 80)
]GraphicsWindow.FillRectangle (180, 150, 50, 150)
|GraphicsWindow.FillEllipse (80, 150, 95, 25)
[GraphicsWindow.FillEllipse (245, 150 95 25)
İGraphicsWindow.PenColor = "Red"
|GraphicsWindow.DrawEllipse (180, 305 25 100)
|GraphicsWindow.DrawEllipse (215, 305 25, 100)
sağlamış oluyoruz. Ortaya çıkan şeklin bir
elips değil de bir daire olmasının nedeni
nedir? Elipsin genişliğine ve yüksekliğine
aynı değerlerin verilmesi durumunda
ortaya çıkan şekil daire şeklinde olur.
FillEllipse metodunu kullanarak, 6.
Yazdığımız kodları çalıştırdığımızda
satırda şeklin sağ kolunu, 7. satırda ise sol
eğlenceli bir ekran çıktısı ile
kolunu çiziyoruz. 8. satırda çizgi rengini
karşılaşıyoruz.
değiştirdikten sonra, DravvEllipse
metodunu kullanarak 9. satırda sol bacak
ve 10. satırda da sağ bacağı çiziyoruz.
Elips çizmek için kullandığımız
metotlardan FillEllipse çizimin içini
BrushColor özelliğine verilen renk
m
ile boyarken, DravvEllipse metodu
brav*EWtpse
odundan
farklı olarak,
&rapV\\csW'mdo\N
nesnesinin FHOVps®
metodu daireyi içi doiu
olarak çizer.
PenColor özelliğine verilen renk ile elipsi
çizgi olarak çizer.
4. satırda yazdığımız kod
W
80
ile FillEllipse metoduna
Görev 7.1 :
Aşağıdaki ekran çıktılarını sağlayacak kodları;
yazabilir misin? Bence yapabilirsin! İş içe
çizilmiş kare ve daireler. Sanki bazı kodlar tekrar
tekrar çalışmış gibi, ne detsin? Yazdığın kodlan
www.mucitlergaraji.com adresinde bizimle
paylaşmayı unutma.
Unutma! www.mucitlergaraji.com
adresini hem yardım almak hem de
geliştirdiğin kodları arkadaşlarınla
paylaşmak için kullanabilirsin.
Ayrıca, çeşitli geometrik şekillerle
oldukça eğlenceli ekran çıktıları elde
edebileceğin program örneklerini de
yine vveb sitemizde bulabilirsin.
Daha detaylı bilgi almak için
www.mucitlergaraji.com adresini
Kendini Sına:
ziyaret et.
Aşağıdaki soruları cevaplayarak bu bölümde
çalıştığın konuları tekrarlayabilir ve böylece daha
iyi öğrenebilirsin!
1. Aşağıdaki şekli çizmek için gereken kodları
yazar mısın?
2. BrushColor ile PenColor metotları arasındaki
farkı açıklar mısın/
Çocuklar İçin Programlama
Eğlenceli bir
programlama ortam»
yaratmak için
geliştirilen Turtle
nesnesine ait metot ve
özellikleri kullanarak
ekranda çeşitli şekiller
Ç izebiliriz.
Kaplumbağa
ile Programlama
Kaplumbağa ile programlamanın ne
ilgisi var? Microsoft, programlamayı
biraz daha eğlenceli hale getirmek için
1-970'lerde yaratılan bir programlama
-nesnesi olan Turtle'ı (kaplumbağa)
Small Basic programlama ortamına
dahil etmiş. Turtle nesnesine ait
metotları ve Özellikleri kullanarak ;
ite n d i çegitff i k l i f ^tpunbltoruz.-'
1 Turtle.Show()
npnönîftShsırmstşdtrrfiı
plftorosrosduntmunıh»fetr
Turtle
GraphicsWindow ne^ı#înîfıkte
benzer.örpenesteîlete|İBsm
Açılan pencerede gördüğümüz
kaplumbağa artık bizden komutlar
bekliyor. Onu ekranda istediğimiz
yönde hareket ettirefalllrve geçtiği her
noktada istediğimiz bir çizglyiçizrnesini
sağlayabiliriz.
Turtle nesnesini hareketlendirmek İçin
MoveO metodunu kullanıyoruz. Move
metodu parantez içerisinde ekranda kaç
p ltei fa k a ) ilerleyeceğini söyleyecek
sayı saI fefr
1 Turtle.Move(150)
& Ç0&
>
kaplumbağa, pencerede kafamın
İ M
d iş ili' sidoğu yin d i ISÖ p îtel fhBteö:
iîerl^ieeütec
Q i laplıanA^teftogwrteıw
S^fşlumbaggmaM fitıferkSso irktsındı
btmttrğj M ^ % w a i:n . Turtle nesnesi
TurnRight (ss§â dön! ve TurnLeft flpja
din! M M A r sayesinde istenilen $fa§
dönerek üeflemeye devam. tötMlyof,:
Görev 8.1 :
Aşağıda gördüğün Ş£kh er az kodla çiz ve bu
MŞİan www.mucitiergaraji.com adnMUİt
arkadaşlarınla paylaş. Eminim, artık böylesine
birbirini tekrarlayan işlemlerin olduğukodlan
nasıl cfafeâ tosayazacağın konusunda t l | M
1 Turtle.Move(100)
2İTurtle.TurnRight ()
3İTurtle.Move (200)
« T u r t l e .TurnLeft()
5İTurtle.Move{100)
YukârsÜİ' tesTiyîjirı yen! fafr Small
Basic kod d iM İ^ ttlR d e yisp
ç iiftırtı|iîîi^ ..l^Cıırnteöiî®: îk
üsse fitt p M t l«liöpn|.«RiiitfifeFfl
mfföd.unyhpİifmaeşrfi,
sağa döndödjsn föhüEÖÖpîksı} daha
Çizim lerde farklı renkler
kullanm ak
TurnRightO
Hif §tü§f «fıgftta fttrklj plmâfffiB:.
îtetedptlî «e .Uf! olarakTurnLeft()
istersek, dahi &TfS'.^t:ffindݧîfRîı
tem yîyytı solı steâp t 00 pîkse! dahi
GraphicsWindow ntirıejilliT
f iK M f r ıi görtrsörı
PenColor (kalem rer§İİ® II||il1f
111
t
Graphics Window
nesnesinin
GetRandomColorO
metodu, her
çalıştırıldığında rastgele
birrânkütled'fr.
kullanarak istediğimiz çizgiye
Kodları çalıştırdığında aşağıdaki ekran
istediğimiz rengi verebilirdik. Ancak,
çıktısını göreceksin.
yine GraphicsWindow nesnesinin bir
diğer metodu GetRandomColorO, her
çalıştırıldığında rastgele bir rengi alıp
çizgi rengi olarak kullanmamıza izin
veriyor.
Şimdi aşağıdaki kodları dikkatli bir şekilde
yeni bir Small Basic kod düzenleyicisine
yazalım ve çalıştıralım.
M M I GraphicsWindow.PenWidth=5
2 i GraphicsWindow.PenColor =
[3 i Turtle.Move(50)
S A | Turtle.TurnRight()
5 GraphicsWindow.PenColor =
6 Turtle.Move(50)
;:|||| Turtle.TurnLeft()
8 GraphicsWindow.PenColor =
9 ; Turtle.Move(50)
10 Turtle.TurnRight()
11 GraphicsWindow.PenColor =
'İM : Turtle.Move(50)
13 Turtle.TurnRight()
1 4 j GraphicsWindow.PenColor =
15 Turtle.Move(50)
16 Turtle.TurnLeft()
17 GraphicsWindow.PenColor =
18 Turtle.Move(50)
19 ( Turtle.TurnRight()
20 | GraphicsWindow.PenColor =
2 1 j Turtle.Move(50)
22 . Turtle.TurnRight()
23 GraphicsWindow.PenColor =
24 Turtle.Move(150)
Kaplum bağa ile Program lama
GraphicsWindow.GetRandomColor(
GraphicsWindow.GetRandomColor(
GraphicsWindow.GetRandomColor(
GraphicsWindow.GetRandomColor(
GraphicsWindow.GetRandomColor(
GraphicsWindow.GetRandomColor(
GraphicsWindow.GetRandomColor(
GraphicsWindow.GetRandomColor(
Kodlara göz attığımızda, ilk:satırda kalem
TurnRightO (sağa dön) ve TurnLeftO
kalrftl^ireSpiteel olarak ayarladıktan
(sola dön) metotları Menilen yöne
sonra, her üç satırda bîrşyny yaptık;
SPSfe bir dönüş yapıyor. Bunlara ek
GraphicsWindow nesnesinin
GetRandomColorO metodu rastgele
bir renk aldı ve yine GraphicsWindow
olarak, Turtle nesnesinin bir diğer
metodu Turn() (dön) îıe parantez içinde
belirlediğimiz açı değeri kadar bir dönüş
gerçekleştiriyor,
nesnesinin PenColor özelliğine aktardı.
Ardından Turtle nesnesinin MoveO
Aşağıdaki kodlarla, Turn() metoduna
metodu î§ kaplumbağa parantez
İçerisinde verilen piksel sayısı kadar
için döngü kullanarak bir ddkuâpn
mm
çizebiliyoruz.
Bu ilerlemenin ardından bazı
satırlarda sağa bazı satırlarda ise şola
dönatil ttasöl sayfadaki reıîmtte
görülen ekran görüntÖiûnÖ Çİzdt
1
3
4
For i = 1 To 9
Turtle.Move (100)
Turtle.Turn (40)
EndFor
Kodiarfffiizda, sadece son satırda
MoveO metoduna 50 yerine 150 piksel
üeffteıieM
Bunun iib ıls!
Yıldığımız kodları çalıştırdığımızda şu
ekran görüntüsüyle karşılaşırız.
kolaylıkla anlayacağın gibi şeklin tabanın
tam olarakçtzebiimektir.
SOpfkMİ
ISO piksel
jp ü r iit İç in Progr;
Kodları incelediğimizde, döngü her
Kendini S ın a :
çalıştığında Turtle ilkönce 100 piksel
ilerliyor ve daha sonra 40 derecelik açıyla
sağa doğru dönüyor. Bu işlem 9 defa
tekrarlandığı için, ortaya birdokuzgen
çıkıyor.
Aşağıdaki sorulan cevaplayarak bu bölümde
çalıştığın konuları tekrarlayabilir ve böylece
daha iyi öğrenebilirsin!
1.
Turtle nesnesi ile önceki bölümde
öğrendiğimiz GraphicsVVindovv
nesnesinin DravvRectangie ve DravvEllipse
metotlarının yapamadığı neleri
yapabiliriz?
2 Turtle nesnesi TurnRightO veTurnLeft
metotları ile kaç derecelik açılarla
dönüşler yapar?
3. Turtle nesnesinin istediğimiz bir açı ile
dönüş yanabilmesi için hangi metodunu ; .:
kullanmalıyız?
4
GraphıcsWındow nesnesinin
GetRandomColorO metodu hangi amaçla
kullanılmaktadır?
Daha detaylı bilgi almak için
ww w .m ucitlergaraji.com adresini
ziyaret et.
0 0
K a p lu m b a ğ a ile Program lam a
İngilizcesi subroutine
olan altprogramlar,
program içerisinde
tekrar tekrar yazmak
zorunda kaldığımız
kodlan sadece bir
defa yazarak, birden
fazla kullanmamıza
izin verirler.
Altprogramlar
Aitprogram. Değişik bîr İfade, değilmİ?
komutta bîrdefa“aitprogram" (Ingfcesi
Hatırlarsan, en dikkatli olmamız gereken
subroutine) olarak kodlarız ve gereksinim
konulardan biri mümkün olan en
duyduğumuz zaman bu altprogramı
ay kodla programımızı yazmamız
çağırarak kullanabiliriz
gerektiğiydi. Yazılım uzmanları, bazen
program içerisinde aynı kodları farklı
Şimdi, öncelikle aitprogram kullanımını
satırlara yazmakzorunda kalırlar. Bir
bîr örnekle somutlaştıralım. Daha önce
programda aynı kodlar neden farklı
ekranda şu şekli oluşturduğumuz
satırlarda yazılmak zorunda kalınır?
programı hatırlıyorsam
örneğin, öyle bir program yazıyoruz ki
programın çalışması sırasında kullanıcının
birden fazla defa bölme işlemi yapması
gerekiyor. Bu tür durumlarda, bölme
işlemi yapan kodları ihtiyaç duyulan her
yere yazmak yerine bölme işini yapan
Altprogramlar
1
2
3
4
5
6
;7
,8
9
10
11;
12
13
14
15
16
17
18
19
20
21
;22:
23
24
;2f:
26
27
ZamaniEkranaYaz()
GraphicsWindow.PenWidth=5
GraphicsWindow.PenColor = GraphicsWindow.GetRandomColor(
Turtle.Move(50)
Turtle.TurnRight()
GraphicsWindow.PenColor = GraphicsWindow.GetRandomColor(
Turtle.Move(50)
Turtle.TurnLeft()
GraphicsWindow.PenColor = GraphicsWindow.GetRandomColor(
Turtle.Move(50)
Turtle.TurnRight()
GraphicsWindow.PenColor
Turtle.Move(50)
Turtle.TurnRight()
GraphicsWindow.PenColor
Turtle.Move(50)
Turtle.TurnLeft()
GraphicsWindow.PenColor
Turtle.Move(50)
Turtle.TurnRight()
GraphicsWindow.PenColor
Turtle.Move(50)
Turtle.TurnRight()
GraphicsWindow.PenColor
Turtle.Move(150)
ZamaniEkranaYaz()
= GraphicsWindow.GetRandomColor(
= GraphicsWindow.GetRandomColor(
= GraphicsWindow.GetRandomColor(
= GraphicsWindow.GetRandomColor(
= GraphicsWindow.GetRandomColor(
28 İSublZamaniEkranaYaz
29 T extWind o w .Writeline(Clock.Time)
30 lEndSub I
Kaplumbağa'nın bu şekli çizmesi oldukça
andaki zamanı ekrana yazdıracağız. Aynı
uzun sürmüştü.Tam olarak kaç saniye
programda iki farklı yerde zamanı ekrana
sürdüğünü hesaplayalım mı? Bunun
yazma ihtiyacımız var. Zamanı ekrana
için, TextWindow nesnesinin VVriteLine
yazan komutları ihtiyaç duyduğumuz
metodunu kullanarak Turtle nesnesinin
her yere kodlamak yerine, bu komutları
çizmeye başladığı ve çizmeyi bitirdiği
bîr defa alt program olarak kodluyoruz
Çocuklar İçin
ve daha swta 'M ^!İΧW k'y^an
1 ZamaniEkranaYaz ifadesinin ardında
1 tattandım e ö îpıpefe^ feıamn Kr
i
afîpıogıs®iâdiufltınu giftpm efaidii
löM tetRB g flfp j^ ıa şö S ! M M Ü f
Siyah TextWindow ekranında Turtle
rfânstrtil gtelme b âffiffiiısittöf
2afwıtaBT8 g iî^ ^ a ,- ■
î iföiihiit b#te§ii8zcils çizme l|teı?i ’
t. b^Jtm ^an hüfnsn önot 1«^fKrba ve
İ ffene§lirff-fc^ftlrfıfwfiBn am®3S»
I ıtırda ZamaniEkranaYazO fedffiviB
Za ma niEkra naYaz() satırı 0Şü3fı.tncfo
ktrfariffts't « t ıfeftdt Sub anahtar
| kelmas?ili fesş'&fflinı ve EndSub amsh®
j kelimesi ite biten ZamaniEkranaYaz
j attpfoşmmı ffingjdd toeflar devreye .
gibi tepfifnba^ırpffi' çten®
i ş t e m i n î T 2 santyetiı lamarrtJtyeö Turtle
29KfHİ fftŞsnf feaştamedj&'r fem pı
pfc@f®ns.S|ftraâte‘3?er
TextWindow.WriteLine(Clock.Time)
I İIÜ M tt:^ ttİ^ p M İp y ^ ^ ^ ;İ ^ İ
S ® ? ZamaniEkranaYazO saöftâ tijM I
ekj'ana'>a.ay0r.Cîock(sâaî3nesnes?rtîn
M§jî$fıyâhfi o âfidıM ztfflinînf ekrana
Time (şm#r§ felîi§i .fe&rrt^fî
yazıyor. Çizimin bitiminin hemen
ardından yfne ZamaniEkranaYazO
satırı Mgfaavaftfl öintftki
ekranay M fK 1»ve SSfcM Ü
Altprogramlar
j
j W ğKŞğ0jt ö
l ' TextWindow.WriteLine ("Ne çizmek istiyorsun?")
2 ' TextWindow.WriteLine ("1.Dikdörtgen, 2.Elips")
TextWindow.WriteLine ("Çizmek istediğin peklin numarasını gir:")
SeklinNumarasi= Te xt Wi nd ow.ReadNumber()
v-5s TextWindow.WriteLine ("Şeklin genişliği ne kadar olsun? Değer gir:")
6 SeklinGenisligi= TextWindow.ReadNumber()
Ç A . SeklinGenisliginiKontrolEt()
8 lf SeklinNumarasi=l then
GraphicsWindow.DrawRectangle(100,100,SeklinGenisligi,200)
9
10 Else
GraphicsWindow.DrawEllipse(100,100,SeklinGenisligi,200)
11
12 endif
13
14 Sub SeklinGenisliginiKontrolEt
lf SeklinNumarasi>l then
İ5
SeklinGenisligi=SeklinGenisligi*2
u
17
Else
SeklinGenisligi=SeklinGenisligi*3
18
19
Endlf
20 EndSub
4
sebeple bir örnek daha yapmakta fayda
var. Öncelikle yukarıdaki kodları yeni bir
Programımız
içerisinde
Şltprogramlar
(subroutine) kullanmarafl bir diğer avantajı,
da, yazdığım? kodlan daha rahat okunabilir
hale getirmesidir. Sub anahtar kelimesi ile
başlayıp EndSub anahtar kelimesi İle biten
altprogramlar, bir anlamda programımızda
bulunan kodları küçük parçalar halinde
düzenlememize yardımcı oluyor. Programımıza
baktığımızda aitprogram olarak ayrılmış
kodlarımızı rahatlıkla görebiliyor ve daha
helı çalışabiliyoruz. Bu, özellikte uzun kodlar
yazdığımız programlarda çok faydalı olacaktır.
Sm all B ask kod düzenleyicisinde yaz ve
çalıştır.
Programı çalıştırdığında ilkönce
TextW indow nesnesinin o siyah,
penceresi açılıyor ve kullanıcıya “Ne
çizmek istiyorsun?" sorusunu sorduktan
sonra iki seçenek sunuyor:"î. Dikdörtgen,
Bir örnek daha
2.Elips". Kullanıcının çizmek istediği
şeklin rakamını girmesinin ardından,
Aitprogram kullanımı oldukça önemli, bu
program bu sefer kullanıcıya çizeceği
Çocuklar İt
şeklin genişliğini soruyor. SeklinGenisligi
adlı değişkene atılan değer, 7. satırda
SeklinGenisliginiKontrolEtO komutuyla
Sub SeklinGenisliginiKontrolEt isimli
altprogramın bulunduğu 14. satıra atlıyor.
Altprogramın amacı, kullanıcın seçtiği şekil
2 numaralı Elips ise yine kullanıcın girdiği
şeklin genişliğini iki misli artırmak, değilse
yani kullanıcı 1 numaralı dikdörtgeni seçtiyse
kullanıcının girdiği genişliği 3 misli artırmak. 7.
satırdan 14. satıra atlayarak çalışan program, alt
Altprogramları döngü içinden
çağırmak
programın işi bittikten sonra tekrar 8. satırdan
itibaren çalışmaya devam ederek kullanıcınin
tercih ettiği çizimi yapıyor.
Aitprogram kullanımıyla ilgili bu örneğimi
programımız içerisinde oluşturduğumuz
aitprogram bir döngünün içerisinden
i
2
3
4
5
6
7
8
Basla:
TextWindow.WriteLine ("Döngü İçin küçük sayı gir: ")
KucukSayi=TextWindow.ReadNumber()
TextWindow.WriteLine ("Döngü için büyük sayı gir: ")
BuyukSayi = TextWindow.ReadNumber()
lf BuyukSayi - KucukSayi >20 Then
Goto Basla
Endlf
g
10
11
12
13
14
15
16
17
18
Altprogramlar
For degisken=KucukSayi To BuyukSayi
Sayi=degisken
SayininKaresiniAl()
TextWindow.WriteLine (değişken + " değerinin karesi: " + SayininKaresi)
EndFor
Sub SayininKaresiniAl
SayininKaresi=Sayi * Sayi
EndSub
defalara çiğrtoak teiItolâibStyöK
kullanıcıdan SİıypREta BuyukSayi
ŞWiÖI yap2fç|^Jft^'®Trifeîe, 'tofllît»SIW
adlı değip®'!®. depctapssK 6. latifdaM
^m %-dAj^ıW ı sayı ım nöskl hs-tetr
koşulun amacı ne? Eğer kullanıcının
değerin karesini ita a k e te M .p M iiljE.
§tfrtf|î teşîîngif fyiW t S İİl £$$ ve bitiş
sd^akitedîafi|«'i teSe a ltelc üst
(yani büyük sayı) sayıları arasındaki fark
diöiBİeyftiiiiie ')saırt$ pigBE
IöMstî böfösfi- M t o c p ita a p t a
tekrar girmeye zörtt^saa. Söytee
Frapanlı pA$brp ü n t e cevap
yerdiğindebu ektanlâ ktî|îfei)rsfh.
tefisttonın tart gîd|f 'ia gfttıfe tentröl
« K p it â ilp R i^ ’
If t satırda İ&ifcfisnifî KucukSayi
ve
Buyu kSayi üStuKdegfltaltae İjiM jİ
şMâMustefjarİKÎ kullanarak bir For
döngüsü başisfipsrui: For dÖngötCMSl
her dönüşünde üretilen değer değişken
adlı değişkende depolanıyor. 11, satırda
İte saiifim ıait ö t ö#ıst tiü
"Basla:! HaMtamftıSİktatrî Goto
değişken isimli de§^tairtilİiİ8|ta1
Sayi îyfffl
rt^ cy jBTT».
temutuyfa geri veya ilerî ag am ılar
Ktataff Çtekâ btrıfüsü 12*üörda
îçîû
2, satırda biraz
M M i i^i^sfcsğtnfi# .1#d3n§i Ipn
kullanıcıdan bişlir)fp| i^ p te î alıyoruz
SayininKaresiniAİO ifadesi programın
ftfepat bir anda IS^ ü rd a 'bulunan
1İLpMMdji
ve 3.. satırda bu değeri KucukSayi isimli ‘
başlayan SayininKaresiniAl IM M t
d^^feffle depciifyTOiı, 4»ve S»saijfiSli
program Sayi isimli dÖp|tetiî tendüyl#
da bu sefer i4iii§Eirte
prpank te itifiî buluyor yeprteys
fflyiM i
çıkan bu yeni değeri SayininKaresi
isimli değişkene depoluyor. Ardından,
altprogram EndSub satırıyla sonlanıyor
ve programın akışı tekrar üstteki
programda kaldığı son yer olan 13.
satırdan çalışmaya devam ediyor. 13.'
satırda SayininKaresi adlı değişkenin o
anda depolamış olduğu değeri bir cümle
halinde ekrana yazıyor. Bu iş, döngü
bitinceye kadar devam ediyor.
Kendini Sına:
Aşağıdaki soruları cevaplayarak bu bölümde
çalıştığın konuları tekrarlayabilir ve böylece daha
iyi öğrenebilirsini;
1. Yazılımlarda altprogramlar neden kullanılır?
2. Yazılımlarda döngü ve altprogram
kullanılmasının ortak Pir amacı vardı.
Daha detaylı bilgi almak için
www.mucitiergaraji.com adresini
ziyaret et.
oızı birden
t ' f fiskende
tutulabilecek
değerleri tek bir
değişken içinde
depolamamızı sağl
Diziler - dizi dizi
değişkenler!
Bir program yazarken öncelikle
daha az değişken ismiyle uğraşıyoruz.
dikkat etmemiz gereken konu neydi?
Ayrıca, dizi türündeki değişkenlerdeki „
Mümkün olan en az kodla çalışmayı
değerleri okumak veya depolamak gibi
tamamlamaktı, değil mi? Dizi isimli
işler, döngülerin yardımıyla çok daha az
kod kullanılarak yapılabilmektedir.
nesneleri kullanarak, birden fazla
değişkende tutabileceğimiz değerleri tek
Peki, bir program yazarken birden fazla
bir değişken içinde depolayabiliyoruz.
Yani aslında bir dizi, birden fazla
değeri nasıl tek bir değişken içinde
depolayabiliriz? Hatırlarsan, aşağıdaki
değeri aynı anda depolayabilen bir tür
küçük hesaplama programını daha önce
değişkendir! Böylece, program içerisinde
kodlayıp çalıştırmıştık.
1
TextWindow.WriteLine ("Öğrenci ismi: ")
ogrenci_Adi= TextWindow.Read()
I H TextWindow.UriteLine ("1. sınav notu: ")
Ç 4 '■ birinci_Sinav_Notu= TextWindow.ReadNumber()
jB|j TextWindow.WriteLine ("2. sınav notu: ")
-6 | ikinci_Sinav_Notu= TextUindow.ReadNumber()
7 karne_Notu=(birinci_Sinav_Notu + ikinci_Sınav_Notu)/2
8 TextUindow.UriteLine (ogrenci_Adi + " isimli öğrencinin karne notu:" + karne_Notu)
2
Diziler - dizi dizi değişkenler!
VI" TextWindow.WriteLine ("Öğrenci ismi: ")
ogrenci_Bilgisi[0]= TextUindow.Read()
TextWindow.WriteLine ("1. sınav notu: ")
4 ogrenci_Bilgisi[l]= TextWindow.ReadNumber()
TextWindow.UriteLine ("2. sınav notu: ")
ogrenci_Bilgisi[2]= TextUindow.ReadNumber()
7 ' TextWindow.UriteLine ("3. sınav notu: ")
8 ogrenci_Bilgisi[3]» TextUindow.ReadNumber()
; 9 ■ ogrenci_Bilgisi[4]«(ogrenci_Bilgisi[l] + ogrenci_Bilgisi[2] + ogrenci_Bilgisi[3])/3
10 TextUindow.UriteLine ("Öğrenci Bilgileri:")
11 For degisken=0 To 4
If degisken=4 Then
ii
TextUindow.UriteLine ("Öğrencinin ortalaması: " + ogrenci_Bilgisi[degisken])
13
14
Else
TextUindow.UriteLine (ogrenci_Bilgisi[değişken])
15
Endlf
16
17 EndFor
Öğretmen, öğrenci İsmini ve 1. sınav
Şimdi, yukarıdaki kodları yeni bir Small
notu ile 2. sınav notunu girdikten sonra
Basic kod düzenleyicisine yaz ve çalıştır.
bu iki notun ortalamasını hesaplıyordu.
Son olarak bulunan ortalama öğrencinin
Programı çalıştırıp istenilen değerleri
girdiğinde aşağıdaki ekranla karşılaşırsın.
ismiyle beraber karne notu olarak ekrana
yazılıyordu. Bu programı tamamlamak
için dört değişken kullanmıştık:
ogrenci_Adi, birinci_Sinav_Notu,
ikinci_Sinav_Notu ve karne_Notu.
Bu dört değişkende adı, notları ve
ortalaması gibi tek bir öğrenciye ait farklı
bilgileri tutuyoruz. Şimdi aynı programı
dizi türünde tek bir değişken kullanarak
tekrar yazacağız.
1-8 arası satırlara göz attığımızda,
öğrenci adı, 1. sınav notu, 2. sınav notu
ve 3. sınav notu değerlerini kullanıcıdan
girmesini istiyoruz. Bu kodlarda bizim
için yeni olan tek şey, girilen değerleri
Çocuklar İçin
Oizileri, sadece ilgik
ve benzer değerleri,
aynı değişken ismi
altında depolamak
için kullanırız.
dâpcteöfğHSHz d^iltefilfflrs
depoiamakistediğimiz her Wf öteler
dizi türünde olması. Gördüğün
İçintyrtbîr alanaçarız vebu a iırta
gibi her bîr değeri ütrtt bir
fsm affllâîslftfa
değiıtendi depalimak.
yedne, ogrencLBilgisi asi:
tek bir âg§f$BSiİRStiSpttüBEL
İ .
*
3
4
5
■Dtfp|teı abından jpnp 'h lp i'P H IIM
Söyiıst beğsisrl Medîffinfe rurM rrt
f f îf ' Itride
ilin d i, depolayabiliriz, Mr değeri okumak
| feynun
d ö ttıire le bîr d e ğ îf ten oiSüğiffiLı
veya depolamak t§fe jjiiMiMfMt fertten?
gösteriyor. Köşeli parantez içindeki
tefe psy üstece cRü ıdıren ardından K ip i
bu .saplıwne aniims ı ı g e lp ıt HtaS»,
p u a n ® k p ttM t itenm JM jm ıniM
beraber snlamaya ğüşıiaai.
yazmak: ogrenci_Biigisi[0], ogrenci_
Bilgisi[1 ], ogrenci_Bilgisi[2] gibi.
Sırada, dizi ysrfiîfi''t!i^l|to,teltoacak'
olsaydık» öğrenörtln idini* sınav n o d ırii
ve ortalamasını depolamak için S tane
firkll değişkene gereksinim duyacaktık. .
Kullandığımız her bir değişkeni bîr
Dizilerde alanlanh numaralandı nimasma
O'dan (sıfır) başlayabiliriz. ogrenci_Bilgisi
isimli dizimizin İçerisinde de O'dan
başlayarak 4'e kadar numaralandırılmış
toplam 5 tane kutumuz var.
kutuya benzetirsek, her bir kutu aynı
anda sadece bir değer depolayabilir»
JS I
v Notu
104
m
2. Sınav Notu
3. Sınav Notu
Ortalama
“Programımda dizi türünde tek bir
değişken oluştururum ve bütün değerleri
onun içinde tutarım" diye düşünebilirsin.
Diğer yândan, birden fazla kutuyla
Hemen bu düşünceyi kafandan sil!
uğraşmakyerine diziler sayesinde
Dizileri, sadece ilgili ve benzer değerleri,
tek bîr kutu (yani değişken) oluşturup,
aynı değişken ismi altında depolamak
oluşturduğumuz kutunun içinde
için kullanırız. Böylece elimizdeki
değişkenler!
değerfiri sanki eşya dolıteoRgfci
Sâdese birim e WriteLine metftiıj
«İSasıîi ttia ö iftf:lifti,. Ig llta bstıasf
kullanmamız yeterli oluyor. Döngü içine
egyatar aynı dolap rafına tep r gibi,
y ff!ş|tîtd^îm% 15. satırdaki
HgSFve benzer ıtegertal aynı dizi veya
||||jTextWindow.Wrİteline(ogrencl_BtIgiSl[tiagtsken])
değişten iğne Ic a M M t
temıft^ia ogrenci_Bilgisî adlı
llzi, değişken adlı dığ^tenle
döngüden gelen ılın mrmmm
tettp kutudaki bilgiyi ekrana yaayor»,
Iş gffisSf&te lf teaguî
tanüijtefü faîltentwnwn seistbf fet,
değişken isiıü diğîgteo 4 defertfll
depoladığında, ılttana üdteee ortatem
a
Kbdlaflmtfi geri dönüSA S. M itte
tp& ve 3,s tw i r i m
ogrenci_bilgisi
depsta$ı|fi
2,;¥e
%teiutedbkî değerleri fdpteyîp, Ö fi
bölüyoruz ve bulunan ortalamayı
ogrenci_bilgisİ dteMhblM iİlirii. ,
dtpoluyortK.
11, satırda b ulayan döngü b îp , dizi
defettir yiSİirmak)®#®, "Öğrencinin
Ortalaması: ^ffldkSİM PÜtaTÜ
de^tıfrî: inöog.eklra8Wr,
Kendim Sın a :
Aşağıdaki soruları cevaplayarak bu bölümde
çalıştığın konulan tekrarlayabilir ve boylece daha
jylöğrenebiirstBÎ
3, .Dizi ve değişken ktllann» »asındakifark ve
benzerlikleri açıklar mısın?
2. ÖöfKfder, dizt kuterttmmânaştl Wr yarar
sağlar?
kullanmanın avantajını ild tfk p sem irt
Oteİ te&nâtsk'V®^!
depoledığîm s ^ n , teHanjanîn fW fg •
tim d s§®rl#fl A r a n ı yazdırmak İçin
Daha detaylı bilgi almak İçin
www.mucitiergaraji.com adresini
I ziyaret et.
Kullanıcının bilgisayarla
etkileşim kurmasını
sağlayan fareyi
tıklama, çift tıklama,
sağ tıklama, klavyeden
tuşa basma gibi
eylemlere olay (event)
adı verilir .
Bilgisayarla
etkileşim - sadece
klavye yetmez!
Bir kullanıcının, klavyenin yanında
eğlenceli ye önemli taraflarından birini
bilgisayara veri girişi yaparken en fazla
sonlara bıraktık. Neden? Hem bilgisayar
kullandığı diğer araç faredir. Bunu
denilen cihazların kısa tarihçesine
biliyorsun. Bu kitapta şimdiye kadar
uygun hareket etmek istedik hem de
geliştirdiğimiz tüm örneklerde ise sadece
ilk anlattığımız konuların, bilgisayar
klavyeyi veri giriş aracı olarak kullandık.
programlama çalışmalarının temelini
Neden fare kullanmadığımızı
oluşturması bizi böyle bir plan yapmaya
merak etmedin mi? Eminim
M»
sabırla bekliyorsun ve
"böylesine önemli bir şeyi
1990'lı yılların başına kadar bilgisayarlar
atlamış olamcizlarr diye
için veri giriş aracı ağırlıklı olarak
düşünüyorsun. Haklısın. İşin en
klavyeydi. 1960'larda ilk defa bulunmuş,
108 KlgliayartaM flA gtt' sadece klavye yetmez!
1980'lerde daha çok geliştirilmiş olmakla
görüntüye sahip bir bilgisayarda
beraber, farenin yaygın kullanımı
çalıştığını düşün! Böylesine bir
ifSÖ'lerin son yıllarında oldu. Bunun
ortamda klavyeden bafka bir
sebebi, önceki yıllardaki yazılımlarda
veri giriş aracına pek gereksinim
fare kullanımım gerektirecek grafiksel
duymazdın herhalde.
arayüzler yoldu. Onun yerine simsiyah
ekranda beyaz yazılar vardı. Benzer
siyah zemin üzerine beyaz yazılı sıkıcı
arayüzü görmek istersen sol alt köşedeki
başlat düğmesine tıkladığında açılan
pencerede metin kutusuna "cmd" yaz ve
enter tuşuna bas.
..yazılımlarda fare kullanımmt
gerektirecekgrafiksel aravüzler vakti/
Programlardı-..
Belgeler(363)
■ -
__
.
ifadesi dikkatini çekü mi? Nedir bu
grafiksel arayüz? Graffari arayüz denilen
Sdgfpstcmd
şey neden fare kullanımı gereksinimi
gjMMMconrf
^reboottmd
SPROMOTE.dk®
|gwMtup.cmd
doğurdu?
ı*utup.anĞ
; §3
SHOCSKtOfi
f£fcWbfcaW*
Grafiksel kullanıcı arayüzü
S P»tptAaH
SftapbfcaMİ
S «k n d
P
"Cmd" İfadesini yaz we
enter tuşuna bas
Ojğcrsoaufbr
Windows benzeri, kullanıcının
bilgisayarla etkileşiminin görsel nesneler
U f sağlandığı ortamlara Grafiksel
Karşına çıkan s^rah pencerenin tüm
Kullanıcı Arayüzü (Graphical User
ekranı kapladığını ve sadece bu
Interface - GUI) adı verilir.
Bilgisayara yaptırmak istediğin
' glıff
te ıu ® ü t Mf görsele
i
m
ö tlıp s lı -g fa ta p n fc S w p ı
Kullanıcının
bilgisayarla
■sağ öMayiafe veyı g ü n lü
etkileşiminin görsel
nesneler ile sağlandıgt
ortamlara Grafiksel
Kullanıcı Arayüzii
(Graphical User
Interface - GUI)
adı verilir.
yttüR ttüpritnM tuflnı
dasarafc yt^dİJM n, örnek mî?
fihH M ff sağ ü t tospfnbtlci
Başlat dü|§mis}ni istersen
Ü P M F Ü Ctrl ^ :E S C tı|iififS :biraber
basarak p t o ıM r ir f ,
basma gibi eylemlere olay (event) adı
verilmektedir.. Kullanıcının bir yazılımla
istediği işleri yapabilmesi İp i o yazıltrw
ekranında bulunan çeşitli nesnelere
alt olayları kullanması gerekir. Örneğin,
M rlffitN M belgesinde y « t yazmak
istiyorsam klavyenden tup basma
olayını kullanman gd^örl^n, yazcfağın
bîr yazıyı kalın yapmak veva aİtim
çizmek için âfi^ çubuğundaki îlğîlf
düğmeleri tıklama olayını kullanman
genttr.
Q W E
• - A
S
Z
Y
D
OfFİGİH
R T
J
X C
V I B İ N If
&llâfitönın bilgisayarla etkileşim
Programla etkileşim için fareyi
kullanmak
kurmasını sağlayan fareyi tıklama, çift
tıklama, sağ tıklama, klavyeden tusa
1
Aşağıdaki program örneğinde ktJknıçı
GraphicsWindow.MouseDown • FareTiklandiginda
2
3
4
5
Sub FareTiklandiginda
QraphicsWindow.BackgroundColor=GraphicsWindow.GetRandomColor()
EndSub
Bilgisayada etkileşim * sadece klavye yetrasst
açılan pencerede herhangi bir noktayı
aktarıyor. Böylece, her tıklamada
fareyle tıkladığında, pencerenin alt zemin
pencerenin arka zemin rengi değişiyor.
renginin değiştiğini göreceksin.
Programı çalıştır ve açılan pencerede
herhangi bir yeri farenle tıkla. Fareyi her
tıkladığında zemin rengi değişir.
ir
Gördüğün gibi GraphicsWindow
nesnesinin MouseDovvn olayına
FareTiklandiginda isimli altprogramı
hm
atadık. Hatırlarsan, aslında özelliklere
"
HB
sadece belli değerleri aktarabiliyorduk.
Örneğin GraphicsWindow nesnesinin
PenColor özelliğine yazı rengi olarak
Red (kırmızı) değerini aktarabiliyorduk.
Kendini Sına
Aşağıdaki soruları cevaplayarak bu bölümde
çalıştığın konuları tekrarlayabilir ve böylece daha'
iyi öğrenebilirsin!
Bu örneğimizde ise, farenin tuşuna
tıklandığında aktifleşen MouseDovvn
olayına bir değer değil, bir alt program
aktarıyoruz. Farenin tuşuna tıklandığında
FareTiklandiginda isimli alt program,
GraphicsWindow nesnesinin
1. Farenin kullanımının yaygınlaşması neden
gecikmiştir?
2. Grafiksel Kullanıcı Arayüzü ne demektir? '
Bilgisayar
kullanımında nasıl bîr değişikliğe sebep
olmuştur?
3. Olay nedir? Bilgisayarla etkileşimde kullanılan
en az 3 olay ismi söyler misin?
GetRandomColor metodunu kullanarak
Daha detaylı bilgi almak için
rastgele bir rengi GraphicsWindow
www.mucitlergaraji.com adresini
nesnesinin BackgroundColor özelliğine
ziyaret et.
Çocuklar İçin Programlama 4
I
Vazıhm uzmantart
bir program
geliştirileceği zaman
hemen bilgisayarın
başına oturup kod
yazmaya başiamaziari
Bir Bilgisayar Programını
Adım Adım Planlamak
Şimdiye kadar bilgisayar programlama
döngüler ve koşullar kullanıyorlar, Ancak
tle-ilgilibirçokşey öğrendik: Değişkenler,
burada gözden kaçırmamamız gereken
d#ngQtar, koşullar ve daha bîr çok şey.
çok önemli bir ayrıntı var: Yazılım
bu bilgile; sadece Small
Basic programfema'.dlfcıte:cİ®§îtM^k ■
yaslımp l Ü lIM l kufendıği'
'SasîçMST,C*4* Java gibi bir çok farklı .
programlara dftrtde de kullanılmaktadır.
Wndows gibi feîlgisayırfartnsıda
teAndıİrme yaalmlırifi birçoğunu
yapan şIrteJerin yazılım uzmanlan da,
prepamtonnı kodIarken değişkenleş
Bir Bilgisayar Programını Planlamak
uzmanları bir program geliştirileceği
zaman hemen bilgisayarın basına oturup
kod: yazmaya başiamaziari
Çevrende bir çskdfnt inşaatı ffiSrûülffiı
..f%kshîç.blrblnihinnMilyapıM#ıı *'
yayabina yapımttıı tifigf ıpıralııdio
merak ettin üfeSm sadece
inşaat işçilerini, sürekli binaya beton,
Binanın yapımının önünde kanuni bir problem olup
olmadığına dair belediye ve tapu dairelerinden çeşitli izinler
Adım 1
(Analiz)
ve onaylar alınır.
I-IIJU-
Zeminin inşaata uygunluk analizi yapılır ve rapor yazılır.
â
Adım 2
(Tasarım)
Mimarlar ve inşaat mühendisleri gerekli mimari çizim leri ve
hesapları gerçekleştirirler. Kağıt üzerinde binanın bittiğinde
nasıl bir şey olacağı bu aşamada görülebilir.
Adım 3
(Geliştirme)
İnşaata başlamak için her şey hazırdır. İnşaat mühendisleri
ve işçiler binayı yapmaya başlarlar.
Adım 4
(Test)
İnşaatın tamamlanmasının ardından, çeşitli uzmanlar binayı
yangın, ısı yalıtımı, elektrik tesisatı ve oturmaya uygunluğu
açısından inceler.
-
Tüm üretim süreçleri
4 ana aşamadan oluşur •’
• Analiz
• Tasarım
• Geliştirme (üretim)
Test
w
eO
demir ve tuğla benzeri malzemeleri
• inşaatın yapılması,
taşıyan kocaman kamyonları ve yavaş
• inşaatın tamamlanmasının ardından
yavaş yükselen binayı görüyorsun.
itfaiye, elektrik idaresi ve belediyeden
Halbuki, o inşaat başlayıncaya kadar
binanın oturmaya uygun olduğuna
uzun bir planlama ve çalışma dönemi
dair izinlerin alınması
gerekir:
gibi çeşitli aşamalar içeren inşaat
• binanın yapımıyla ilgili izinlerin
alınması,
sürecinde bu işlemlerden herhangi
birinin hatalı veya eksik yapılması işlerin
• zemin analizlerinin yapılması,
aksamasına, uzamasına hatta bazen tüm
• gerekli mimari çizim ve
çalışmanın başarısız olmasına sebep
hesaplamaların gerçekleştirilmesi,
olabilir!
Çocuklar için Programlama
Bilgisayar program ı geliştirm e
aşam aları
I hakkında bilgi toplayacaksın. Ardından,
elde ettiğin bilgiler doğrultusunda
probleme en uygun çözümü düşünüp
tasarımları yapacaksın. Yaptığın
üretiminin yapılmasının
Aslında, burada sadece inşaat yapım
gerekli
aşamalarını değil, otomobil veya cep
tasarımların
telefonu üretimi gibi farklı teknolojilerin
ardından, istenildiği gibi olup
üretiminden de bahsedebilirdik. Hemen
olmadığını anlamak için çeşitli testler
hemen tüm üretim ve hizmet süreçleri:
gerçekleştireceksin.
1. Analiz
2. Tasarım
3. Geliştirme (üretim)
4. Test
adımlarından meydana gelir. Aslında
bu adımlar, karşılaştığımız bir problemi
çözme aşamalarıdır. Her üretim
ve geliştirme çalışması
problem veya problemleri
Yazılım gevdirmenin
4
ilk adımı, çözüm
geliştirmek
istediğimiz problemi
tüm yönleriylfc
incelemektir
!
116
Bir Bilgisayar Programını Planlamak'
Gördüğün gibi, bir bilgisayar programı,
çözmeyi gerektirir. Hangi
bir çok kişinin bir çok adımda beraber
ürünü geliştiriyor olursan
çalışmasıyla ortaya çıkıyor. Burada önemli
ol, mutlaka o problemi
bir soru aklımıza gelebilir: "Bir yazılım
anlamanı sağlayacak
projesi geliştirme çalışmasında, ekipte
analizler yapacak ve sorun
yer alan kişiler arasında iletişim doğru
fifafREA- plşan ■yzrniffferıbffhtfte^ie
Analiz: Bilgisayar programı
öü^şln anlaşamazlarsa ne sfMrF
geliştirme işi aslında bir problem
Bilgisayar yazılımı projelerinde,
yazılımın siparişini veren müşteriden
itibaren, analiz uzmanı, tasarım
uzmanı, programcı ve test uzmanının
çözme ve gereksinim karşılama
işidir! Bilgisayarında kullandığın tüm
yazılımlar çeşitli firmalar tarafından
belli
birbirlerini doğru anlaması, problemin
gerekılriîmtefn tarf#thma®ı
v t gefitelrıimterto doğru ırfaîılırtisı
gel^ jflm y r. örneğin*. ItosipfPttn
v t doğru tn iş rtîM is ip iiı önem
lıfefb pe§pfi daha.kalînltw ipUşıt;
l^ p T iiaiö ff ftınun için aşağıdaki
ıç r iiff ısıgin mateupir{ ideylsr
adim i» doğru ş^idfe-.atmalıyız!
is® fipöfitf yssM jp p M if M r t t
Bilgisayar programları da diğer
ta fM n r â ın i progrsmtfok'ftzJf
teknolojiler gibi 4 temel aşamada
seyçal değer kufteatfil karmaşık
geliştirilirler:
ğg
matematiksel işlemler yapma
sorunumuzu çözmektedir.
’-SMttMNJasMMiKâii,,
G e r e k s in im le r in b e lirle n m e s i,
itaisİwîn
■
Jftm mır îjfeyveû^lîklafninffHBUftMtKi
Hotmail ve Ğmafl gibi e-posta
'
yazılımları başkalarıyla bilgisayar j
oramında hızlı bir şekilde iletişim
g J ^ a'Qrm'
Programın g h llll!$ l| IS H ‘lw İBW ',.
kunmtmraya^ımçı olurken,
Belirlenen işlev f g ^ M S H I jM B lM t o H
■spgşırîn » M M H m İ İ I I İ
G eliştirilen p ro g ra m ın ferklt in san lara
ku Ila n d ı r ılara k o rtaya çı kabi le ce k hataların
v e d ü ze ltilm e si
Fb âtefiîp foenasî
simizdekifeRBgrrfv» firtmleröü*fnde
ttyiÇ ;d u p A # Jim ıı dkBğiffkfMB kolaylıkla
■yapmama Mft ü
ü
f t
Çocuklar için Programlama 1 1 1
Bir problemin çözülmesi veya bir
Unutma, problemi anlamak onu
gereksinimin karşılanmasındaki ilk
çözmenin varışıdır!
adım o problem veya gereksinimin tam
olarak tanımlanmasıdır. Problemi veya
gereksinimi doğru anlamak, yazılımı
geliştirmek için en önemli ve gerekli
adımdır. Problem yanlış anlaşılırsa,
Bu ve benzeri bilgilerin toplanmasının
ardından, artık yaslımın çözüm üreteceği
problemi daha iyi tanıdığımız için,
programın sahip olacağı metot ve
özeİlikleri ayrı ntılandırabiliriz
geliştirdiğimiz kodlar işe yaramaz
olabilir. Yazılım uzmanları, geliştirilecek
Tasarım :Tasarım aşamasında, analiz
programın nasıl bir problemi çözeceğine
aşamasında elde edilen bilgiler
veya ihtiyaca cevap vereceğine karar
doğrultusunda nasıl bir yazılım
verebilmek için bilgi toplar. Bilgi toplamak
geliştireceğimize karar veririz Bu aşamada
için:
yapılacak işlemlerden biri, yazılımda
olmasını planladığımız tüm metot ve
• Geliştirilecek yazılımı kullanacak
.kişilerle görüşme yapılarak istekleri ve
problemleri ortaya çıkarılır,
• Geliştirilecek yazılımı kullanacak olan
şirketin veya kurumun yetkililerinden
programla ilgili beklentileri öğrenilir,
• Yazılımın hangi işleri yapacağı ortaya
çıkarılın
• Geliştirilecek yazılımının çalışacağı
bilgisayarların iştem yapma ve hafıza
kapasiteleri incelenir,
118^'r ^ ® 'S3^ar f>ro9ramlnı Planlamak
özelliklerin ayrıntılı bir şekilde listelenmesi
olacaktır. Programımızın sahip olacağı tüm
metot ve özellikleri listelememizin bas
önemli sebepleri vardın
• Bittiğinde f is i bir program olacağını
bu aşamada kâğıt üzerinde görebiliriz,
• Tüm metot ve özellikler listelendiği
için atladığımız herhangi bir metot
veya özellik olup olmadığını kontrol
edebiliriz,
• Tüm metot ve Özellikler listelendiği için
birbirini tekrarlayan metot ve îştevter
intarm ğatdjğfr# îih aiıtte
olup olmadığım görebiliriz,
Ilylâos, ekipte-çalışan uzmanların
* Benzer kod içerecek metot ve özellikler
için altprogramlar kullanmaya karar
Mfbîrterfnf yanlış ante*» feteral aaim ıf•
olur, -
verebiliriz.
Akış şemalarında kullanılan temel
Listelediğimiz metot ve Özelliklerin
nasıl çalışacağını ve kodların hangi sıra
îte yalatacağımı baha programlamaya
l i f temadan önşg bdttepfeîirrtels tçîn tut
Akış Şemalarını kullanırz.
Akış şeması
simgeler şunlardır:
l
(
/
/
...7
/
r
ı
Âteş şem s bmr\mm, problemin
Akrşşemasının başladrğım ya da
sona erdiğini belirtmek için kullanılır
Klavye araçlığıyla bilgi gMşi
yâpılacağtnı gösterir . Bir değerin ekranaya dayazıcıya
. çıktısının alınacağını gösterir
Matematiksel işlemler yapılacağı
zaman kullanılır
tzl^teoeğ'feft'yolurt:
meönset olarak,değil simge ve
seminîterte anlâömttı işidir. Afeş
şemsten biralım da, yazılımın analizin!,
tasarımını m programlamışını yapacak
olan kişiler arasında kullanılan "ortak
Aritmetiksel ya da mantfeaf ifadeler
içm karar verme durumunda
kullanılır
O
/
\
N.
' ...... ...•'
/
ite lim ptîşbfme çalışmalarının
herhıngl İi? aşamasında çalışan
'
1
•
Yapılacak işlemler birden fazla sayıda
■yineleneeek-teeOşteTndedöngö
varsa) kullanılır
Oklar ven akışını yönlendirebilmek
için kutlanılır
uzmanlar, IsbtLd lte kultenanlfcfM!
üfefertn vatandaşlarıalsalar dtehi,Jkış
şemalarında bulunan sembollerin ne
Çocuklar için Programlama
Akış şeması örneği
Geliştirdiğim iz
yazılım ları
2 aşamada
test ederiz• A lfa te st
• Beta test
Koşul konusunu işlerken yaptığımız Tek
mi Çift mi? örneğini hatırlıyor musun?
Kullanıcıdan bir sayı alarak bunun tek ya
da çift sayı mı olduğunu belirleyip ekrana
yazdıran programımızın çözümünü
metinsel olarak ve akış diyagramı ile
gösterelim: Problemimiz, bir kullanıcı
tarafından girilen sayının tek mi çift mi
olduğunun bulunmasıdır. Kullanıcı bir
sayı girecek. Ardından yapılacak işlemler
ise, sayının tek mi çift mi olduğunu
belirleyecek matematiksel işlemi yapmak
ve ekrana sonucu yazdırmaktır.
Akışın metinsel olarak ifade edilmesi:
1. Başla
2. Kullanıcıdan bir sayı al
3. Sayı 2 ile kalansız bölünebiliyor mu?
4. Sonuç evet ise ekrana "Bu savı çift
savıdır" yaz
5. Sonuç hayır ise ekrana "Bu savı tek
sayıdır"yaz
6. Kullanıcıya devam etmek isteyip
istemediğini sor
7. Cevap evet ise 1 numaralı adıma git
8. Cevap hayır ise işlemi bitir
Problemin akış şeması ile gösterilme
biçimi ise aşağıdaki gibidir:
f
Başla
j
I
Bu programın tasarımının A kişisi
tarafından ve programlamasının da
B kişisi tarafından yapılmak zorunda
olduğunu düşünelim.
Tasarım uzmanı olarak çalışan kişi
programın yapısını ister metinsel ister
akış şeması olarak gösterebilir.
^
Bitir
^
Tasarımcının, an ili: uzmanından,gelen
Test.Test aşaması, oldukça karmaşık
bilgiler doğrultusunda hazırladığıönceki
bazı aşamalardan meydana gelmekle
sayfadaki akış şemasına bakan Mf
beraber, temelde programcılarından
bilgisayar programcısı artık kodlan hangi
başka birilerinîn de yazılımtkuHanması
sıra içerisinde yazacağma rahatlıkla karar
w kurcalaması olarak düşünülebilir.
verebilir. Çünkü, ateş şeması programın
Bazen İnsanlar kendi yaptıkları işlerdeki
en başından sonuna kadar neler
hata m eksikleri göremeyehilirler. Bunun
yapacağını tek tek anlatmaktadır.
için dışarıdan birilerinin üretilen işi
B kişisi de aşağıdaki kodu yazarak
yakalaması önemlidir,Test aşâması, büyük
programı çalışır hale getirir:
yazılım projelerinde temelde 2 aşamada
değerlendirmesi ve varsa eksikleri hataları
gerçekleştirilir:
X -TextWindow.Write
("Bir sayı girin: ")
2 girilen_Sayi = TextWindow.ReadNumber()
, kalan w Math.Remainder (girilen_Sayi, 2)
If (kalan=0) Then
■
TextWindow.UriteLine ("Çift Sayı Girdin")
? lîlse
6- TextUindow.WriteLine ("Tek Sayı Girdin")
7 Endlf
• Alfa testi pirinci test)
• Beta testi (ikinci test)
Alfa testi, prcgramryapan ekibin dışında
başka şirketveya kurumlarda çalışan
Geliştirme: Bu aşamaya gelindiğinde
uzmanların,yazılımı amacına uygun
artık bilgisayar programcıları kollan
olarak kulaoarak, ortaya çıkabilecek
sıvar ve yazılımı geliştirmeye başlarlar.
hataları ve eksikleri programı geliştiren
Program geliştirme sürecindeki en
ekibe M dirmesi pİjşmasıAı* Burada
büyük yardımcıları, onlara ne yapmaları
sadece ortaya çıkabilecek kod hataları
gerefefpnJ anlatan ajpş profifı benss&H
değil, daha önce bahsettiğimiz mantık
belgeler olacaktır.
hataları da yakalanmaya çalipte
Beta testi, bilgisayar programını satın
Grafikten de anlaşılacağı gibi, yazılım
alabilecek kişilere, yazılımın ücretsiz
geliştiren şirketler, satmaya başlamadan
olarak verilmesi ve bu kişilerin programı
önce programlarının mümkün olan en
belirli bir süre kullanmalarını sağlamaktır.
fazla insan tarafından test edilmesini
Kullanıcılar yazılımı, amacına uygun
isterler. Programı test eden kişilerin
şekilde kullanacak ve yakaladıkları
programcı veya yazılım uzmanı olması
hataları yazılımı geliştiren takıma
gerekmez. Programınızı amacına uygun
bildirecektir. Beta testinde bulunan
kullanabilecek herkes sizin için bir test
hataların düzeltilmesinin ardından
uzmanı adayıdır! Geliştirdiğiniz yazılımı
yazılım artık ticari olarak piyasaya
zorla da olsa kullandırın ve yakaladıkları
sürülebilir ve satılabilir.
hataları size söylemelerini sağlayın.
Alfa testi ile beta testi arasındaki en büyük
Kendini S ın a :
fark, programı test eden kullanıcı sayısının
Aşağıdaki soruları cevaplayarak bu bölümde
çalıştığın konuları tekrarlayabilir ve böylece daha
Alfa testinde daha azken, Beta testinde daha
iyi öğrenebilirsin!
çok olmasıdır.
1. Bir bilgisayar programının geliştirme çalışması
kaç aşamadan oluşur? Aşamaların
isimlerini söyler misin?
2. “Bir bilgisayar programı geliştirmek aslında bir
problem çözme çâitşmasıdır"
ifadesini açıklar mısın?
3. Aşağıdaki işler hangi aşamada
gerçekleştirilmektedir?
Sakın unutma, yazdığın programı
ne kadar çok insana kullandırırsan,
hataların bulunma ihtimali o kadar
a. Hedeflerin tanımlanması,
b. Yazılımın bir programlama di* ile
geliştirilmesi,
4. Akış şeması nedir ve yazılım geliştirme
çoğalır.
çalışmalarının hangi aşamasında kullanılır?
Daha detaylı bilgi almak için
www.mucitlergaraji.com adresini
Hata Sayısı
Bir Bilgisayar Programını Planlamak
ziyaret et.

Benzer belgeler

Microsoft Small Basic

Microsoft Small Basic ya da daha önce kaydedilmiş olan bir programı açtığınızda, ekranda bu düzenleyici görüntülenecektir. Bu durumda, o programı değiştirebilir ve daha sonra kullanmak üzere kaydedebilirsiniz. Ayrıca, b...

Detaylı