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
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...