Saturday 25 March 2017

Forex Fs 103 Portatif Mp3


2GB FM Radyolu Portatif Mp3Mp4 Spieler (Devisen FS-402) Bitenekadarda cretsiz iade yapabilir, paranz geri alabilirsiniz. 14 GN PARA ADE Garants satn aldnz rn, teslim tarihinden itibaren 14 gn ierisinde iade istek bildiriminde bulunarak, orijinal ambalaj ve faturasyla (Faturanzn arka yzndeki iade formunu doldurmanz gerekmektedir.) Birlikte iade edebilirsiniz. Adenizin kabul edilmesi iin rnn, paketi hasar grmemi, kullanlmam ve kullanm hatas sonucu zarar grmemi olmas gerekmektedir. Adenizi Srat kargo ile hi bir cret demeden bize yollayabilirsiniz. Detayl Bilgi S-Link SLX-974 USB 2.0 Korumal Klfl 10 Meter Yazc Kablo Trkiyede bir ilk VideoMzikRadyo dahili 2 GB Hafza 16 GB Bellek Destekler Bitenekadarclara oumlzel Tuumlrkiyede ilk olarak Forex tarafndan tantlan benzersiz Multimedya Kutu Ayn undeinem Video muumlzik ve radyo ilevi goumlren bu cihaz hem ccedilok kaliteli hem ccedilok ileysel Uumlstelik dahili 2 GB Hafza 16 GB USB Bellek ve Kartlar Destekler Muumlkemmel ses kalitesi Muumlkemmel Kalite ldquoTuumlrkiyersquo de ilkldquo olan birccedilok oumlzellik yine FOREX farkylahellip ster evde, ister ofiste, ister tatilde ve. Nerede olursanz olun, muumlzik ve Video Klip keyfiniz her zaman sizinle birliktehellip ster dahili Hafzasndan, ister Hafza kartnzdan, ister MP3 Amp MP4 Player ve Cep Telefonunuzdan sevdiiniz parccedilalar ve videolar zevkle dinlemek, paylamak artk ccedilok kolayhellip Ve daha birccedilok uumlstuumln oumlzellik ve RENK seccedilenei, bildiiniz ve guumlvendiiniz FOREX kalitesiylehellip Genel Oumlzellikler Kullanl ve Salam Metall Kasa Portatif ve-Plan Ccedilok Estetik Tasarm 2 GB dahili Hafza SDMMC Hafza Kart Okuma Zarif ve Multi Fonksiyonel Tu TAKM 3,5rdquo Aydnlatlm LCD Ekran Goumlrsel Nitelikli Kolay Kullanlabilir Menuuml Yeni FM Radyo Oumlzellii 8 Farkl Ekran Arka Seccedilenei Yeni Ses Kayt Oumlzellii Sistem Bilgisi ile dahili ve Harici Hafza Durumunu Kontrol edebilme Medya Kuumltuumlphane Oumlzellii ile Sanatccedil, Albuumlm, Tarz, Favoriler Baznda Kategori Oluturabilme E-Kitap Okuma Oumlzellii Fotoraf Galerisi Oluturabilme, Slayt olarak Goumlsterebilme Eksplorer Oumlzellii sayesinde Birccedilok Dosyaya Kolay Eriim Ccedilok Fonksiyonlu Klasoumlr, Ekolayzr ve Ccedilalma Modu Seccedilenekleri Birccedilok Bilgiyi LCD Ekranda Ayn Anda Goumlsterebilme Kayan Yaz (ID) Teknolojisi ile Ccedilalnan Parccedila ve Sanatccedil Adn Goumlsterebilme Takvim ve ajanda Oumlzellii ile saatin Yan Sra, Guumln Ay Yl Goumlsterebilme Pil Durumunu LCD Ekrandan Takip Edebilme Yeni Klasoumlr Seccedilme Oumlzellii 18 Farkl Dil Seccedilenekleri ile Birlikte Tuumlrkccedile Dil Destei Alarm Oumlzellii ve Ujar Sesi olarak Kendi Parccedilalarnz Seccedilebilme Kendiliinden Otomatik kapanma Oumlzellii Kronometre Oumlzellii Arche Soumlzuuml (Lirik) Oumlzellii 2 Adet Guumlccedillendirilmi Lautsprecher ile Muumlkemmel Ses Kalitesi ldquoLine in rdquo Ses Girii ile Harici MP3 amp MP4-Player, PC, Laptop, iPod-IPHONE ve Dier Cep Telefonlarndan Muumlzik Dinleyebilme Kulaklk Girii ile Uumlruumlnuuml Kulaklk ile Kullanabilme USB 2.0 Uumlzerinden aRJ Olabilme Yuumlksek Performansl ve aRJ edilebilir dahili Lityum batarya 4 Adet AA Pil ile Kullanabilme Kolayl Multi Fonksiyonel Kumanda ile Kolay Kullanm Ambalaj ccedilerii Uumlruumln Multi Fonksiyonel Kumanda USB aRJ kablosu AC aRJ Adaptoumlruuml 3,5 mm Klinke (Audio) Ses kablosu Kullanm Klavuzu Garanti Belgesi Oumllccediluumller: Genilik. 9 cm Derinlik. 8,5 cm Yuumlkseklik. 8.8 cm Ekran Oumllccediluumlsuuml: 7 cm x 5.5 cm Anten Uzunluu. 28 cm Kargo Fiyat Deimeden Tek Verfügbare Kollektionen von Seferde Alnabilecek Maksimum Uumlruumln Adedi. 6 Bu Uumlruumln Kargoya Alveriinizi takip eden 3 i guumlnuuml iccedilerisinde verilecektir. TUumlM UumlRUumlNLERE 3 TL KARGO KAMPANYASI: 3 TLye Hereyi Kargoluyoruz Sitemizde aktif satta olan 1. Uumlruumln veya 2. Uumlruumln veya Haftann Frsatlar Uumlruumlnlerinden ihr Oumllen saat 00.00 den sonraki 24 saat suumlresince yapacanz tuumlm alverilerin hepsine birden adet ve miktar kstlamas olmakszn sadece 3 TL Kargo oumldeyeceksiniz Tek koul uumlruumlnleri Aktive Frsat Uumlruumlnuuml Sa suumlresi olan 24 saat iccedilerisinde almanz. Uumlruumlnleri Tek Sepette de alsanz, Ayr sepetlerde de alsanz yine eskisi gibi ihr aldnz uumlruumln iccedilin Ayr fatura kesilerek goumlnderilecektir. Bedava kargolu uumlruumlnler ve oumlzel kargo oumllccediluumlluuml uumlruumlnler Kapsam ddr. Forex micro Demo MetaTrader Forex Mikro Demo MetaTrader Forex Trading - Eine Einführung Wie mit Forex Trading Es gibt keine tatsächlichen Handelsbarrieren in Bezug auf Ort und Zeit, um loszulegen. Nur wenige Frauen und Männer haben die richtigen Informationen zur idealen Zeit im Aktienhandel. Auch ist Fx viel weniger unberechenbar als Aktien und andere Handelsinstitutionen und damit das Risiko arent als erheblich. Vorausgesetzt, Sie arbeiten mit einem zuverlässigen Agenten, gibt es weiterhin Bedrohungen für Forex Trading. Dies ist, wo ein hervorragendes Verständnis von Trading-Software wird Ihnen helfen. Die einfachen Anwendungen können auf dem Netz heruntergeladen werden, um keinen Preis. Unter den Strategien, die am besten mit, wie Sie möglicherweise handeln müssen Sie schlafend oder weiter weg von Ihrem eigenen Computer zu kämpfen sind, werden die Verwendung von Forex-Anwendungen, die automatisch ist zu kämpfen. Fakten, Belletristik und Forex Trading Barrierefreiheit zu Forex-Markt Handel auf dem Netz ist wirklich einfach zu etablieren. Mit einigen Studie, youll finden Sie die richtige Forex trading Broker whos zweifellos vertraut. FX Trading ist eine ziemlich explosive Art von Gewinn zu erzielen. Alles, was Sie haben, um mit dem Handel beginnen Forex ist grundlegendes Verständnis dieser außergewöhnlichen Handel funktioniert. Geeigneter Handel sollte streng genommen werden. Sollten Sie investieren mehrere Arten von Verträgen, stellen Sie sich vor, wie viele Facetten des Handels Sie kontinuierlich aktualisiert werden sollten. Was Forex Trading ist - und was es nicht ist Als ein Weg, um zu triumphieren, und Sie müssen ein System, das erwies sich als ein Erfolg und wurde gestellt, um zu testen. Die Händler bemühen sich, diese Veränderungen in dem Ausmaß vorherzusagen, das sie später als Mittel zum Geldverdienen handeln könnten, und während es wahr ist, dass Erfahrung und Wissen auf dem Devisenmarkt vorher kritisch waren, ist dies heute tatsächlich nicht der Fall. Life After Forex Trading Ein Forex-Taschenrechner ist ein wichtiges Werkzeug, das im Forex-Markt verwendet wird. Bei der Devisenbörse ist ein wichtiges Untersuchungsinstrument tatsächlich eine Plattform. Das ist wirklich darauf zurückzuführen, dass einige Personen begonnen haben, mit diesen Forex-Anwendungen, um die Besetzung aus ihrer Sicht der Grund. Darüber hinaus haben Sie eine Möglichkeit, Geld zu verdienen. Forex-Austausch ist nicht ein einfacher Punkt zu verwalten, um die Realität zu erzählen, und seine wirklich wichtig, um eine große Investition Geist, um Selektionen zu erstellen. Die Dos und Donts von Forex Trading Es gibt eine Menge Leute Websites bieten, damit Sie lernen, Geldhandel durch Stoff oder Videos, im Internet. Sie könnten erforderlich sein, über jeden dieser Faktoren wissen, wenn youre Handel im Web. Denken Sie immer daran, den wichtigsten Grund youre in Forex Devisenhandel ist, weil gewinnen vollständige Ladung Ihrer Karriere und Sie möchten Ihre Finanzen zu wandern. Es dauert ein extrem ein von einer Art Standpunkt, mit dem die tatsächliche Zeit Forex-Handel zu prüfen. Sie haben die Fähigkeit, Informationen auf forex newsgroups zu finden, wenn youre, das einen Internetagent sucht. Um Forex zu erlernen, ist das Erlernen der Prozedur für den Handel wirklich erforderlich. Bevor sie vollständig in den Handel eintauchen, erhalten sie eine wertvolle Quelle des Unterrichts. Die ideale Strategie für Forex Trading Foreign Exchange ist außergewöhnlich in Bezug auf den Handel Börsen. Es gibt eine große Vielzahl von Taktiken, um Handelswährung zu verstehen. Mit der umfangreichen Menge an Geld und Aktion in Devisenhandel Forex, theres hohe Liquidität in diesem Markt. Uygulamal Genel Programmlama Tark Baryankn Uygulamal Genel Programmlama Kitab 1 Uygulamal Genel Programlama Bilgi paylatka. Gecenin derinliinde Dinleyen bilir, hrtlarn Nekadar dinlendirici olduunu Tark Baryank 2 Unbekannt Giri ve Kitabn Kullanm. 4 Yazar Hakknda. 7 Yazlm Gelitirme ve Bcek Ayklama. 8 Blm 1 Assembler. 10 1. Mavi. txt (mavi renkli ekran). 14 2. meraba. asm (merhaba dnya). 18 3. kucuk. asm (byk harfe evirir). 20 4. cizim. asm (klavye ile izim yapma). 21 5. Kühlschrank (intro yapm). 23 Blm 2 Basic. 26 1. piyano. bas (mzik). 26 2. kutu. bas (kutu ekli). 27 Blm 3 C Dili. 29 1. sralama (balon, seerek ve hzl sralama). 35 2. makro. c (definiere kullanm). 38 3. unionreg. c (Union tanmlama). 39 4. mousetst. c (Fahrpreis kullanm). 40 5. klvy. c (klavye ile izim yapma). 42 6. domgunu. c (tarihin gnn bulma). 44 7. saat. c (DOS saati). 46 8. Grafikli. c (fareli grafik ekran) 48 Blm 4 Pascal. 54 1. txtall. pas (metin dosyalar ama). 55 2. diyot1.pas (grafik ekrana ekil izme). 56 3. hesapmak. pas (hesap makinesi yapm). 58 4. matrice. pas (Matrisler). 60 Blm 5 Delphi. 62 1. Agent (Microsoft Agent kullanm). 69 2. CD (grev ubuunda program altrma). Erstellen (nesne oluturma). 81 4. Dergilerim (basit veritaban uygulamas). 84 5. DLL (Dynamic Linking Library). 89 6. Meraba (resimli ekran koruyucusu). 93 7. ParalelPort (Win9x iin paralel veriyolu kullanm). 103 8. Saat (yuvarlak Form ve izim yaplmas). 111 9. Sozluk (ngilizce Trke szlk). 115 10. surukle (nesne srkleme ve yazc kullanm). 117 11. Gewinde (ilemciyi daha verimli kullanma). 120 12. Sysmenu (sistem mensne eleman eklenmesi). 126 13. Tu Basm (klavye ve fare basmlarn kontrol etme). 127 14. 2 Boyutlu Oyun Yapm (TicTacToe, Pazl, Mayn oyunlar). 129 15. Gezgen (Windows Gezgini yapm). 146 16. Dosya ilemi (Schreiben Sie lesen komutlar ile dosyalama). 152 17. Dosya Listele (dosya bulma ilemleri). 155 18. think2 (kendiliinden dizilen nesneler). 160 19. DirectX-ve OpenGL-Programmierung (grafik programcl). 164 20. MS Peint (PaintBrush yapm). 16. Sagen Bulmaca Oyunu (4 haneli sagen). 174 22. Veritaban Grafik Analizi (DBChart kullanm). 176 23. Okul Ders Programm (Haftalk ders Programm yapm). 179 24. Dolphin (mzik yapma-Programm). 191 25. Ofis (basit bir veritaban uygulamas). 200 26. Tercuman (ngilizceden Trkeye eviri ve okuma Programm). 202 27. CGI kullanm (Gemeinsame Gateway-Schnittstelle). 208 28. renci Bilgi leri (paradox veritaban rnekleri). 211 3 29. Bit Filtrele (8 Bit Bilgiden seim yapma). 213 30. Ekran izimi (ekrana izim yaparak, ders anlatm). 215 31. Asansr (4 kat binann asansr simlasyonu). 216 Blm 6 Visual Basic. 219 1. Sendkeys (dier uygulamalara tu basm yollama). 219 2. Schluss (hesap makinesi yapm). 220 3. Listenfeld (Druckeingabe komutlar ile dosyalama). 225 4. Fractal (pset grafik komutu). 228 Blm 7 Dier Diller ve almalarm. 231 1. Delphi ActiveX (web sayfasnda ActiveX). 231 2. Excel yaziyla. xls (rakam yazya evirme). 234 3. Excel dosyalistesi. xls (dosya arama). 236 4. Excel userform. xls (kullanc tanml formlar). 238 5. Excel ile tarih dkm (modl kullanm). 240 6. WSH ile sagen toplama (.vbs dosyalar). 242 7. WSH ile dosya listeleme (.vbs ile Excel otomasyonu). 244 8. kopyala komutu (Batch ve Pascal dili kullanarak). 245 9. JavaScript ile dosyalama (rasgele yaz kaydrlmas). 249 10. JavaScript ve Flash (rasgele yaz kaydrlmas). 254 11. JavaScript-Datei arama (.html iinde arama). 258 12. ASP ile misafir defteri (.asp ve. mdb veritaban). 259 13. Yunus Programmlama Dili (Trke ak kaynak programlama projesi). 272 14. KPro (Web tabanl uygulama gelitirme). 281 15. MyBoard (Flash ile dijital devre tasarm). 284 16. SiPro (Web tabanl snav programm gelitirme). 287 17. Denklemler (Excel ile denklem zm). 296 18. ASP uygulamas (Online-Telefon Defteri). 299 19. okul3d (Sanal Gereklik rnei - VRML). 314 20. Net Pazar (PHP v MySQL ile internette bit pazar kurmak). 316 21. Trafik Simulasyonu (Flash-Action-Skript). 319 22. Labirent Robotu Simulasyonu (Flash 8 Action Script). 322 23. dbase uygulamalar. 325 24. Ev Kon (Internet zerinden ev kontrol). 328 25. PIC (Peripherie-Schnittstellen-Controller). 334 Ek 1 Algoritma Oluturmak. 341 Ek 2 SQL. 342 Ek 3 ASCII Kod Tablosu. 343 Ek 4 InstallShieldin Kullanm. 345 Ek 5 CDde Neler Var. 349 Ek 6 Szlk. 353 Dizin. 357 Son sz. 366 Kaynaklar. 367 4 Giri und Kitabn Kullanm Kitap und CD deki rnekler, programmierbare heveslenen insanlarmza basit, derine girmeden, z ve faydalandrc ekilde verilmeye alld. Ders kitab olarak deil de, rnekler zerine kurulu, pratik yapma, fikir verme, yntemler gsterme ve kendi programkk felsefenizi oluturmaya yardmc olmak amac ile hazrladm. Aklnzda planladnz ama nasl yapldn kestiremediiniz programmlama rneklerinin benzerlerini burada bulabilirsiniz. Lieferumfang: CDden bamsz olarak da yapabilirsiniz. Bir trl yaptnz Programm almyorsa, yazm hatalarna ve Kitapta verilen tm kodlara dikkatle baknz. Ihr ne Kadar hepsi alyor desem de donanm, iletim sistemi ve yazlm alzyps farkl sistemlerde sorunlar kabiliyor. Mesela NT tabanl bilgisayarlarda Paralel Port Rhini bir ie yaramyor, Delphi 6 ile yazdm baz programlar eski srmlerde almyor veya baz GWBasic Programmierer Qbasic ile alamyor gibi problemler var. Elimden geldiince Für eine grössere Darstellung klicken Sie auf das Bild. Salamaya gayret ettim. Metin kelimesi Trke kaynakl m bilmiyorum, fakat schnur ve text kelimeleri yerine metin kullandm. Baz ngilizce kelimelerin de okunularn italienisch olarak belirttim, kitap sonundaki szlk ile takldnz kelimeleri bulabilirsiniz. Yine de siz yaknnzda bir szlk bulundurun. Kod ve normal yazy farkl Schriftart yaz tipi ile belirgin hale getirmeye altm. Kod yazarken tek trnak, if t. Ak ve ve ve ve ve ve ve ve ve ve ve............... Aklama satrlarn bu fontun kaln olmayan eklinde hazrladm. Baz durumlarda tek trnak, ift trnak, 0 sfr, o harfi, ich byk, l kk le birbirine benziyor. Tu birleimleri AltTab deyimindeki gibi ile birletirilerek yazdm. Männer komutlar iinde von aralar ile ayrlarak Balataltr. Msconfig gibi kullanlyor. Baz kodlarn mavi renk olmas onlara dikkat edilmesi gerektii anlamnda kullandm. Normal yazmda ise kenarlar von dzgn olan Verdana von yaz tipini setim. Baz blmlerde Sie tasarrufu iin iki kolon eklinde bldm. Fakat ilk kez okumada insann bunun devam nerede diye kafas karyor. Lk, kolonun, devam, o sayfadaki, ikinci, kolondur, sonra, dier, sayfann, ilk, kolonuna, devam, Fakat hala programm kodlarnda birok hata ve aklanmas gerekli konular var. Größe hibir yazlmn veya rnn kusursuz olmadn belirtmek istiyorum. Bu sebeple entwerfen yeni srm programlar yazlyor. Kitap iine yaylm birok ipular bulunuyor. Tek sorun bu ipularna hemen ulaamamanz. Ou rnekte, bu rnekte u olay von siz yapabilirsiniz, gibi deyimlerle almanz iin fikirler vermeye altm. Yanl anlamayn, tm rnekler von olduu halde muhakkak siz de keke u zellik von olsayd demisinizdir. Nsanmzn kitap okuma alkanl olmad dnlrse, rneklere tagsüber pratik yapmak daha ilgi ekici ve aklda kalc olduuna inanyorum. Bol bol rneklerle sie ein dilleri birbiri iine girmi ekilde kitaba aktardm. Ihr blm adm adm gemenize gerek yok. Zellikle kendi rneklerimin verirken gelimeye ak olmalarna gayret ettim. Tabii benden daha yetenekli olan programclarmzn ok daha ileriye gideceklerinden eminim. Belki de kitab Dil pl olarak da grebilirsiniz. Ou zaman yle hissediyorum. Yani bir dili iyi bilmek de yeterli olur Belki de kafanz en ok kartran anlatm stili, C dilinde bir rnek anlatrken bu ilevi Pascaldaki u rnekte de yapsak gibi, Kod dnyalar ayr dillerde ayn beklentiye sahip olmak. Sizce de bu kod dnmleri olamaz m rnein VBA makrolarndaki tam aradnz eyi Delphide de yapamaz msnz C dilinde Header, Pascalda unitler, Delphide DLL ve ActiveX ile anlatmak istediim ana dnce, global kod oluturmaktr. Ticari amala retilen Microsoft Windows, ak kod sistemi ile gelitirilen C diline tagal Unix de bu manta tagal olarak devaml ilerliyor. Microsoft firmasnn hemen ihre yl kard versiyonlu Windows, Büro, VB ve DirectX kendi versiyonlar arasnda bile uyumsuz. Yaklak 15 farkl dilden birok rnei aklamalar ile karlarken btn bu dillerin bilmek zorunda deilsiniz. Ok dil bilmekten daha nemli olan ey elinizdeki imkanlar en iyi ekilde deerlendirmektir. Rnekleri noktas virglne komut komut aklayamayacam. Yani bilmediimiz, ezberlemediimiz birok nokta olacak. Zaten buradaki ama Größe tam olarak bu dilleri retmek deil, fikir vermek. Ne ile ne yapabilirsiniz gibi. Dile gre konu belirlemek yerine, konuya gre istediimiz dilde programm yazabilmek asl hedefimiz. Ama genel olarak sitenize misafir defteri yerletirmek istediinizi dnrsek, bunu ASP veya PHP dilleri ile yapabiliriz, hesap tablolar ile ilgilenmek istiyorsak Excel, Access bize uygun, ilgi alanmz donanm ise Assembler, C APIler yeterlidir ve. Dnyaya sadece belli alardan bakarak deil hedefimieren gre uygun alet edevat seerek ilerlemek gerekli. Artk yazlmlarda internet arlk kazanyor. Nternet destekli olmayan programlar yava yava eleniyor. Temel neden gncellenebilirlik ve iletiim. Nternet, bilgisayar dergileri, bilgisayar kitaplar und okul bizim bilgi kaynaklarmz. delphiturk, programmersheaven ve benzeri ihr TRL kod ve program bilgisine sitelerden, en gncel haberlere ve ipularna dergileri takip ederek ulaabilirsiniz. Uraacamz Diller Microsoft Windows zerine olacak. Donanm olarak ilk kullandm intel386dan beri hibir pentium veya baka ilemcide sorun ktm grmedim. Lle de u iletim sistemi ilemci olacak diye bir sorunumuz yok. Zellikle Notizblock - nicht defteri en byk yardmcmz. WindowsSendTo iine nicht defterine ksayolu 5 oluturarak, herhangi bir dosyay sa tklayp GnderNotepad yapabilirsiniz. Crimson Editor ise gzel bir nicht defteri alternatifi. Kod renklendirme, bol geri alma, buchstaben dosyalar kolay ama gibi zellikleri bamllk yapabilir. Rnek kodlar ne ile alacak Assembler (.asm). Tasm. exe, TLink. exe ve bunlar ait dpmiload. exe ve dpmimem. dll enthält. Borland firmasna ait olan Turbo Bin dizininde bulabilirsiniz. Bein dizininde bulabilirsiniz. CDmizde de OrneklerAsm dizininde bunlar var. Bu arada WindowsCommand dizinindeki Debug-Programm von dosya oluturmamza yardmc oluyor. Veröffentlicht von olarak not defteri kullanacaz. Basic (.bas). Gwbasic. exe sadece satr numaral olan. bas dosyalar okuyabiliyor. Genellikle QuickBasic, VB Dilinin. bas dosyalar hari tm. bas dosyalar iler. Visual Basic (.mak veya. vbp - proje dosyas,.frm - kodlar,.bas - modl bilgileri). VB4 ve zeri yeterli. C (.c,.cpp). Turbo C Veya Borland C gerekli. Pascal (.pas). Turbo Pascal Scheinwerfer Borland Pascal gerekli. Delphi (.dpr - proje dosyas,.pas - unitler bu dosyalarda,.dfm - bilgileri). Delphi 3 veya zeri gerekiyor. Excel (.xls). Tabii ki Büro 9x ve st ile makrolar ileyebilirsiniz. Flash (.fla,.swf). Flash ile tasarm yapabilir, ile ile ile ile ile ile ile ile.................................... VB Script (.vbs). WSH (Windows Scripting Host - Windows Komut Dosyas Sistemi) kurulu ise sojad. vbs (Visual Basic-Skript) veya. js (J-Skript) olan dosyalar altrlabilir haldedir. WindowsSamplesWSH dizinindeki rneklere bir gz atn. Nicht defteri ile dzenlenebiliyorlar. Web sayfas (.htm,.html,.asp,.php). Es ist Ihnen nicht erlaubt, Anhänge hochzuladen. Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten. BB-Code ist an. HTML-Code ist aus..asp iin ayrca IIS kurmak gerekiyor..php iin de Xampp tavsiyem. VRML (.wrl). Virtual Reality Markup Language. Grntlemek iin cortvrml. exe gerekiyor. Internet Explorerda grebilirsiniz sonular. Cd2utilityVRML dizininde editr rnekleri bulabilirsiniz. Isa10.zipi tavsiye ederim. Eer hala deiik uzantl dosyalar grrseniz, imdilik onlar bizim iimize yaramyor. Mesela. bak,. Dp gibi dosyalar programmlama dilinin kendi yedek ve yardmc dosyalar. Siz de sonuta sistem yazlm Systemsoftware (bilgisayarn almas ile ilgili iletim sistemi gibi), mesleki ve ticari yazlm Anwendungssoftware (muhasebe, kelime ilemci gibi kullanclara yardmc), yardmc Programlar Dienstprogramm (CD-Player, eit ayar Programm, mp3 alc gibi ilemler yapan) , Grntsel yazlm animation (oyun programlama, elence), yapay zeka künstliche intelligenz (dnen, akll robotlar) zerine bir programm yazmanz gerekebilir. Herhangi Bir Dilde Bu isteinizi baarabilirsiniz. Unutmayn ki kullandmz tm programmlar ve iletim sistemleri bir programmlama dili ile programclarn elinden gemi yazlmlardr. O kadar, uzayllarn bu ilerle ilgileri yok. Takm almasn da unutmamak gerekli. rnein tek banza bir oyun programnn mziini, seslendirmesini, hikaye akn, harita, nesne tasarm, yardm ve kurulumunu yapmanz zoder deil mi Elinizden geldiince proje arkadalar edinip kendinizi ve takmnz gelitirin. Ihre ne kadar bencillikte bizi kimse geemese de, takm halinde olmann verdii zevk tek bana almaktan ok ok daha fazla. U admlar da programmieren Sie gelitirme srasnda yaadmz aamalardr: 1. Daha iyi tasarm ve gelitirme iin programmieren balamadan nce mevcut sistemi analiz ederek, altyap hazrlanr. 2. Schwierigkeit tanm yaplr, sistem elemanlar ile bu elemanlar arasndaki iliki ak diyagramlar ile belirtilir. 3. Sistemdeki hazr bilgiler, kullanclar iin gerekli ktlar, teknik, ekonomik aratrma bilgileri deerlendirilerek programa balanr. 4. Girdi ve ktlar etkin kullanm iin tasarlanr, kullanc arabirimi iyiletirilir. 5. Yaplan-Programm-Test aamasnda ihtiyac grp grmedii belirlenir. 6 6. Yeni isteklere ve eski sistemlere olan uyumluluk kontrol edilir. 7. Programm paketlenir ve yardm ksm, dkmantasyon ilemleri yaplr. Ihr eine aklmzda olmas gereken kullancnn programnz karsnda verebilecei tepkilerdir. Eer kullanc dostu olmak yerine kendi yapnzda srar ederseniz sonunuz iyi olmayabilir. Geschlecht standartlara ve prensiplere uymaya almak en iyisidir. 7 Yazar Hakknda 1975 Krehir Kaman doumluyum. Ne Amiga ile ne de Kommodore ile uratm. Windows 3.1 bile doru dzk kullanmadm, Windows genel platformum. Linux (linuks, linaks, laynaks diye okunur) und BeOS (bi o es diye okunur) und Windows XP iletim sistemi. Kurulumu kolay, oyun (DirectX) Ich habe ein Programm. ASLnda Bu Szleri Biraz Iim Burkularak Sylyorum, nk Keke Linux Veya Unix iin bunlar syleseydim. Bir ara elime Für eine grössere Darstellung klicken Sie auf das Bild. indeki 64KB belleine fazla Uzun bir ey yazlamyordu, ama yine de Grund benzeri dili ile Shell adnda Trke program Dili, arkfelek, Say bulma, Batak kat gibi oyunlar yapmtm. Kitabnn dkmantasyonu ok houma gitmiti. Sade ve tm komutlar rnekle anlatma. 1991den bu yana, liseden itibaren programlama ile ilgileniyorum. Windows-Programmierung 1997de Visual Basic ile baladm. Asl ilgi alanm Delphi olduu iin daha ok bu dilde programlarm Größe tantacam. Lk rendiim programlama dili lisee (Balkesir Anadolu Ticaret Meslek Lisesi) 1991de GWBasic. Yani altyap olarak Beschreibung Visual Basicci olmam gerekirken Delphi beni mknats gibi ekti. 1993de Marmara Teknik Eitim Fakltesi ngilizce Bilgisayar retmenliini kazanarak 5 yllk eitimde srasyla Quickbasic, Pascal, C, Assembler (8088), PLC, dBase, Mikrocontroller (8051), ve VB3.0 rendik. Son ylda (1998) Kein Poster eingereicht Inhaltsangaben & Dialogzitate Inhaltsangabe Unterhaltsames Bezüge zu anderen Titeln Weitere Angaben Zu kaufen bei ... EinspielergebnisseStarttermineDrehorteTechnische AngabenNewsDesk Werbematerial Fotogalerie Externe Links Offizielle Websites Birka ay iinde Okul Ders Programm adl Programm ile ile ile ile ye ye ye ye ye ye ye ile ile ile ile.................................. Burada Team Arbeit yani takm almas ile ilgili olarak Größe diyebileceim, ortak ile almann tek bana ich yapmaktan daha zevkli ve faydal olduudur. Okuldan sonra da retmen olunca rendiim dillere pek yenisini eklemedim. C, Java, Veya C renmek imdilik benim iin ok ar. Delphi ile visuelle Cyi karlatrmay pek gerek yok, ama Delphi von VC kadar zengin ktphanelidir. PIC zerine uralarm devam ediyor. Seviye olarak okuyucularn orta seviyede olmere gerekiyor, birka verdünnen bir eyler yazm olmanz gerek. Yani Größe sfrdan btn ayrntlar ile bir dilde bir Programm nasl yazlr anlatmayacam. Bunun iin sevdiiniz dili belirleyip auf dem zel kitab almanz veya kurs okuldan bunu edinmelisiniz. Aslnda Hangi dili renmeliyim sorusuna cevap vermye alacaz. C ve benzeri, sadece programcla giri dili olmal bence. Daha sonra von VB, Delphi veya VCye geilir. Aslnda Grundlagen uzak durulmas da tavsiye ediliyor. Nk insanlara kt alkanlklar kazandryormu. Grsel program ile kod yazmaktan kurtulunuyormu gibi zannedilse de iyi bir Programm yazdnzda belki programnz yzlerce, binlerce satrdan oluacak. Daha ilerisi de VB Benutzer, die diesen Download gewählt haben, Gibi internet tabanl Windows programlarna benzeyen ve veritaban kullanabilen programlar olacaktr. Site Mail ehir. Yunus. projesi. Tbagriyanikmynet. Stanbul Trkiye. 21 Haziran 2001 Perembe. 2 Haziran 2009 Sal. 639889 adet. 12000 Zeri. 275 defa. 9,38 saat. 228 adet (7,2 MB resimler dosyaya bal eklide eklendi). Microsoft Windows XP SP2 Trke, Delphi 7, Delphi2005, Visual Basic 6, VB2003, Borland Pascal 7.0 Turbo C 3.0, Qbasic 4.5, Microsoft Office 2003 Trke, Adobe Photoshop CE, Macromedia Dreamweaver 8 ve Flash 8. P4 2400, 512 DDRAM, 160 GB, 128 MB GeForceFx5200, 17 LG 775FT, USR ADSL, Dell Inspiron 6000 Notebook Balang Tarihi Son gncelleme Toplam harf sagt Toplam kod satr Toplam kaydetme Toplam sre Resim sagt Tasarm aralar Donanm 8 Yazlm Gelitirme Bcek Ayklamatemel zellikleri bunlarn yi bir programngrevlerin tam olarak ve Yerinesras sizin stilinizi belirler: Doruluk. Verilen getirilmesi. Dayankllk. Beklenmedik hatalardan dolay programmierung almas kesilmemeli. Genileyebilme. Leri aamalarda grevlerin deiiklii veya yenilerinin eklenmesi kolay olmaldr. Basitlik. Karmak tasarmlardan kanmak gerekir. Modlerlik. Programmieren kodlar baka programlarda da kullanlabilmelidir. Uyumluluk. Baka bilgisayar ve sistemlerde alabilmelidir. Kontrol edilebilirlik. Hata olabilecek yerlere aklayc hata mesajlar konulmaldr. Kolay kullanm. Kullanc arabirimi kolay olmal ve rahat renilebilmelidir. Paralanabilirlik Problemi kk paralara ayrlarak yazmak. Anlalrlk. Bakasnn yazd programm elden geirilirken rahata okunabilmeli. Koruma. Modller birbirlerine mdahale etmemelidirler. Yazlmnz ne kadar byrse o kadar iinde Fehler bcek bulunma ihtimali artar. Bcek olumasn nasl nleyebileceinizi, otomatik olarak nasl yakalayabileceinizi dnmelisiniz. Algoritmanz olutururken, kullanacanz, dili tam, olarak, renerek, koullarnz, tamamlaynz. Birden fazla yol gz nne alarak alternatifler ekleyin. Alma annda belaren bcek sinyallerini gz ard etmeyin. Kendi kendilerine kaybolmazlar. Bunu beklerseniz onlar daha da byrler. Deikenlerinizin deerlerini takip edin ve aykr deerler almalar ne zaman ve nerede oluuyor debug bcek ayklama ile grn. Sie können auch jetzt schon Beiträge lesen. Suchen Sie sich einfach das Forum aus, das Sie am meisten interessiert. Denetlenmesi kolay adlandrma v algoritmalar oluturun. Hzl Alan-Programm yapmak iin dayanksz kodlar oluturmayn. Belki tasarmnz batan tekrar oluturmanz gerekebilir ama yazlmnz ihr zaman test edin. Kestirme ve pratik programlama risklidir. Kendi ihtiyacnza gre zm retin. Ara sra temizlik von yaparak, von artk yani von artan kodlarnzn von bcee sebep von olmamalarn salayn. Goto deyiminden kanmak, programn karmak dallanmalarn nler ve derleyicinin optimizasyonunu arttrr, fakat yine de yerinde kullanlan goto ile kod daha anlalr verimli olabilir ve. Yaptnz deiiklik in Ordnung kk olabilir, ama hata oluturabileceini de unutmaynz. Srmler oluturarak ilerleyin. Sohn ticari halinden hata ayklama kodlarnz kararak klterek ilgililere teslim edin. Das Programm iine yerletirdiiniz aklama satrlar az ve z olmal, ya da hi yazmayn. Mkansz olan bir girdi olabilir mi Kullanc ihr zaman sizin gibi dnmez. Bu ihtimallere de nlem almalsnz. Sorunlar sessizce zen kodlar yazabilirsiniz. Bcei gizlemekten ok anu yok etmeye aln. Farkl algoritma kullanarak bceklerin sebebini zebilirsiniz. Devaml hata mesajlar ile kullancy telalandrmaynz. Bcei aa karmann yntemi, onu bulduunuz und ein ortadan kaldrmaktr. Bcekleri tekrarlamaya zorlayn. Yollar kesmekle ehirdeki ekyalar yok edemezsiniz, sessizce bekleiyorlardr. ,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Und der Hotelstil ist: Günstige. Durch seine günstige Lage, nordösstlichen Viertel, ok az Sayda programc kodlara kesme noktalar ekleyerek, Kod iinde adm adm ilerleme ve girdilerin ktya dnt yerlere bakma alkanlna sahip. Bu ilemler angarya deildir. Kodunuzda adm ilerlerken veri akna odaklann. Arabiriminizdeki aksaklklar bulup yok edin. Kaybolan bir bcei gz ard etmeyin, gizleniyor olabilir. Zamannda bulunan bck daha fazla bcek olumasna engel olur. Belirtiyi deil, oluum nedenini dzeltin. Aptal bcek yoktur. Asl sorun programmierung onu bulamam olmasdr. Ayn bcein sizi iki kere sokmasna izin vermeyin Bir Programm yazarken aadaki neriler iinize yarayabilir: ka Bilgisayar kullanm ile ilgili birmaviipucu: karlayorsanz, bunun sebepleri ya o Srada alan Hatal bir Windowsunuz devaml gyor, ekranla Programm yada ucuz donanm paralardr. Markal Arbeitsspeicher (RAM) iyi bir anakart aln. Antivirs Programmierung devaml almas gerekli. Klasre ve dosyaya sa tklayp von Virs kontrol yap von diyebilen antivirs yazlm kullanabilirsiniz. 9 Masastnde resim kullanmak yerine knickente yeil, siyah veya koyu mavi gibi tek renk kullanmanz genel performans olumlu etkiler. Yazlarn okunakl renklerde olga gz en az yoran faktrdr. (Sar zerine siyah gibi.) Masastndeki gereksiz ksayollarn hepsini silin. Bylece Fenster bir de onlar gncellemekle uramaz. Zaten Windows Gezgini (WinE) yeterince kullanl bir programdr. Dosya uzantlarnn Klasr SeenekleriGrnmBilinen dosya trlerinin dosya uzantlarn gizle seeneini iptal ederek gzkmelerini salayn. Klavye ksayollar iyi bilgisayar kullananlarn und byk yardmcsdr. Fare yerine AltTab, WinD, gibi ksayollar kullanmak daha hzldr. Kullandnz paket programlarn von ksayollarn und ksa () zamanda renin. Bir Programm kullanmay seviyor olabilirsiniz, ama alternatif programlar da muhakkak deneyin. Yine geri dneceksiniz, fakat bazen dh yaryor. Ihre Eyin Sohn versiyonunu kullanmak zorunda deilsiniz. Elinizdekileri und iyi ekilde kullanma aln. Muhakkak elinizin altnda ngilizce szlk bulunsun. WordWeb32, Moonstar-Programm ok kullanl. Devaml hafzada yer igal eden gereksiz btn programlar altan Balataltr. Msconfig ile iptal edin. Eer gzelce alan bir donanmnz var ve siz de Dur unu daha hzlandraym diye yola kmsanz, byk bir ihtimalle elinize mahvolmu bir Windows-veya bilgisayar Geer. Zellikle BIOS ve Registrierung Windows Kayt Veritaban ayarlar ok tehlikelidir. Donanm aktualisieren gncelleme ilemi ancak zamannda yaplrsa gncellemedir, yoksa para kaybdr. Bilgisayarda rady dinlemek, televizyon seyretmek gzel eyler, fakat en iyisi normalen rady teyp ve televizyondan yararlanmak. MP3 Dinlemek Winamp Shoutcast serbest neyse ki. Nternete firewall aß duvar programnz altrmadan kmayn. Norton Internet Security, ZoneAlarm und Tiny Personal Firewall tavsiyem. Nternetden sadece chat ve gereksiz Übersetzung siteleri dolamakla faydalanmayn. Vee oyunlar. Muhakkak oyun ile stres atyorsunuzdur. Ama iyeri ile evi birbirine kartrmayn. Bilgisayar kullanrken boyun, el, bilek, srt arlar ekiyorsanz, bunlarn kroniklemesine izin vermeden sebeplerini giderin. Dzgn masa, sandalye, ergonomik klavye ve fare, rahat grebileceiniz monitr ve ekran znrl gibi. Bilgisayarnza ne kadar zen gsteriyorsanz ayn ekilde evrenizin von temiz ve dzenli olmasn salayn. Kitaplarnz, CDDVD lerinizi ypranmaktan koruyun. Park ve baheleri de. Murphynin Yasalar: mutlaka ters gidecektir. Hatta tersliin en az mmkn grld und eine Galle. Ters gidebilecek bir ey Siz spermen deilsiniz. Aptalca grnen bir ey ie yaryorsa, o ey aptalca deildir. Emin deilsen silahn dolu kabul et. Eer saldr iyi gidiyorsa, pusuya dmsndr. Ich bin saniyelik el bombalar saniyeliktir. Kolay yol ihr zaman maynlanmtr. Nemli olan eyler daima basittir. Basit olan eyler daima zordur. Eer dman menzil iinde ist sen de ylesindir. Dost atei dostun atei deildir. Yapabildiin ihre ey vurulmana yol aabilir, hi bir ey yapmaman da dahil. Stne gelen dman ateinden daha isabetli olan tek ey, stne doru gelen dost ateidir. Ki taraf von kaybetmeye baladna inand anda, ikisi de hakldr. Profesyonellerin neyapacan kestirebilirsiniz, ama dnya amatrlerle doludur. Sng kanunu der ki, mermisi olan kazanr. Kusursuz planlar, kusursuz deildir. Savata niformas daha gsterilien olan taraf kaybeder. Eher dman grebiliyorsan o da seni grebilir. 10 Blm 1 Assembler Tm dillerle doal olarak uyumlu olan mikroilemci programcl bazlar iin ok ilgi ekici olabilir. Hata mesajlarn dikkatli okumanz gerekiyor. MS-DOS da hi hata mesaj grmeden makineniz kilitlenebilir. Genellikle eliniz kolunuz bal gibi hissedebilirsiniz. Yani mikroilemci programcl bir fili emekleyerek veya srnerek avlamaya benzer. Yine de avantajlar da var. leri blmlerde Delphi ve dier diller iinde bile hala Assembler kodlar kullanldn grebilirsiniz. nk ok az kod yazarak donanma (grafik ekrana gemek, paralel balant noktasna sinyal yollamak. ), ilemciye eriebilir ve hzl (srnerek de olsa. ) alan program yazabilirsiniz. Alt katmannda ikilik binary (baynri diye okunur) ve onaltlk hexadecimal (heksadesiml diye okunur) say sistemi vardr. Yani srf 1 ve 0larla da yani bitlerle program yazlabilir. Zaten bu programlama diline makine dili programlama da deniliyor. Bu konuya yakn olarak biraz elektronikten bahsetmek gerekirse, eer bir buzdolab gibi yllarca hep ayn ilemleri yapacak bir devre tasarlama ihtiyac duyarsak, hedeflediimiz giri ve k deerlerini bir ROM Read Only Memory salt okunur bellee ykleyerek iimizi grrz. Tabii hepimizin evinde byle bir EPROM erasable programmable read only memory silici ve yazc olmadna gre, bu tip programlama sadece sanayi veya fabrika ortamnda yaplabilir. Novell Netware kullananlar bilirler, a kartlarna boot al EPROM taklarak terminallerin almalarn salanabiliyordu. Ayrca hala bilgisayarlarmzn ilk donanm bilgileri BIOS ipinde saklanyor. BIOS da bir EPROMdur. Alta BIOS bilgileri daha hzl olan RAMin ilk megabytenn st ksmna yerleir. Ayrca ilk megabyte grnt bellei, Expanded geniletilmi kalan tm RAM ise Extended uzatlm bellek olarak ayrlr. PLA Programmable Logic Array ile sadece and, or gibi devre elemanlar ile istenen giri deerleri ile istenen klar elde edilir. Logic gates mantk kaplar kullanarak Flip Flop denilen en kk, yani bir bit saklayabilen hafza devresi yaplr. Toplayc, karc, karlatrc, encoder, decoder, multiplexor (oullayc mux), demultiplexor, saya da mantk kaplar kullanlarak yaplabilir. And (arpma) A 0 0 1 1 B 0 1 0 1 SonucA. B 0 0 0 1 A 0 0 1 1 B Or (Toplama) 0 1 0 1 SonucAB 0 1 1 1 A 0 1 Not (Tersleme) Sonuc 1 0 XOr (zel OR) A 0 0 1 1 B 0 1 0 1 SonucAB 0 1 1 0 CD2programlamapicPLC dizininde Programmable Logic Controller programlanabilir mantk denetleyicisi (microcontroller) ile ilgili dosyalar bulabilirsiniz. PLC ise PLAnn gelimi halidir. Mikroilemci kodlar gibi satr satr programlanabilen, bilgisayarn ok kltlm halidir. Ama mantk olarak bilgisayar ayn anda tek bir ilem yrtebilirken, PLC giri bilgilerini paralel olarak ileyip k darbeleri retiyor. DC direct current girileri (24 Volt) vardr ve bu bilgileri programc ladder diagram merdiven diyagram ile tasarlayp istenen k darbelerini k rlelerine (220 Volt) aktarr. Eer biraz elektrik bilginiz varsa resimdeki giri klar rahatlkla anlayabilirsiniz. Eer bir nolu anahtara baslrsa zamanlayc aktif hale gelip, 50 saniye sonra k veriyor ve eer iki numaral anahtara da baslrsa lambamz yanyor. Zaman diyagramnda 200 knn sadece 2 ve T5 yksek deerde iken altn grebilirsiniz. Resim 1 idec FA-1j uygulamas 11 Bilgisayarmz transistr, diren, kondansatr gibi binlerce elektrik ve elektronik paralardan oluuyor. En temel deer elektrik var 1, elektrik yok 0 dr. Yani oyunlar, mzik paralar, programlar tamamen binary sistem zerine kuruludur, dier deyimle dijitaldirler. Bit kavramn biraz inceledikten sonra imdi de biraz ilemcinin i yapsnda bulunan register saklayclarn yapsna bakalm. Resimde 32 ve 16 bit deyimleri ile bilgisayarmzn eer Pentium ise 32 bit, intel286 ise 16 bit ilemci olduunu anlyoruz. Yakn gelecekte (2006) 64 bit ilemcilerimiz ve iletim sistemlerimiz olacak. Bu hz ve performans ile ilgili. Genellikle 32 bit yazlm 16 bit yazlmdan daha hzl alr. En basit saklayclar 8 bit olan AL, AH, BL, BH, CL, CH, DL ve DHdir. Tm matematiksel ve dier ilemler AX, BX, CX ve DX zerinde yaplr. SS:SP, CS:IP, DS:SI ve ES:DI birlikte kullanlarak adres belirtirler. Segmentler 64KB yer kaplayan zel alanlardr. rnein CS 1A00H deerini, IP de 0200H deerini ieriyorsa iki yazmac birletirerek yani normalletirerek 1A200H adresini elde ederiz. CS ve IP 16 bit iken, sonu 20 bit olmas iin CS sonuna 0 eklenip IP ile toplanr. 8086 ilemcisinin 20 bit address bus adres hatt kapasitesi ile 220 1MB hafzay adresleme imkan vardr. AX yazmacnn 80386 ve zeri iin gelimi 32 bit hali EAXdir. Buradaki E extended uzatlm anlamndadr. 1970 ylnda kan 4040 ve 8008 intel ipleri sadece hesap makinelerinde kullanld. Bunlar sadece 64 KB adresleyebilen sekiz bit ilemcilerdi. u anda kullandmz intel ilemcilerimiz intel286 hatta 1978de piyasaya srlen 16 bitlik 4.77 MHz 8086 ile geriye uyumlu almak zorunda olduu iin yazma yaplar hala 16 ve 8 bit olarak da alyor. Yeni bir programn eski bir bilgisayarda alabilmesine hayret etmemek gerek. Fakat Pentium ilemcilerdeki MMX, SSE, SSE2 ve SSE3(AMDde 3DNow) komut kmeleri geriye doru uyumlu deildir. CISC Complex Instruction Set Computer (Karmak komut kmeli bilgisayar) yntemi ile programland iin intel, geni komut kmesi ile esnek fakat hz dk ilemcidir. PowerPC gibi RISC Reduced Instruction Set Computer (azaltlm komut kmeli bilgisayar) olan sistemler ise belli ilemleri ok hzl bir ekilde yapabilen ilemcilerdir, genellikle zerlerinde zel iletim sistemleri alr. Ama artk Mac iletim sistemi intel uyumlu. Resim 2deki gibi yazmalarmz bu kadar. Ama ilemci iinde sadece bunlar yok. Cache n bellek, FPU floating point unit, giri k yol arabirim mant, code cache kod n hafza, tamsay yrtme birimleri, komut kod zc, ve buna benzer nitelerden oluur. lemcinin anakart balantlar da iindekine benzer. D cache, RAM Random Access Memory, sistem veri yollar, giri k yollar, disk kontrolcs gibi blmlere balanr ve onlar ynetir. Donanm ile ilgili baz rneklerimizi ilerleyen blmlerde bulabilirsiniz. Resim 2 intel x86 ailesinin ilemci yazmalar rnek mikroilemci komutlar: 12 mov ah, bh mov bx, ax jmp ax push ax pop bx add al, cl inc bp dec bp cmp al, cl mul dl div cl and bl, 7 or bl, 2 xor al, al not cl shl cx shr cx rol di loop ETIKET lahf sahf pushf popf 8 bit (1 Byte) bh ierii ahye kopyalanr 16 bit ax yazma deeri bx adresine kopyalanr ax adresine dallan axi ynda sakla yna son atlan deeri bxe aktar alalcl bpbp1 bpbp-1 sadece bayraklar etkileyen al-cl karma ilemi axaldl alaxcl. kalan da ah yazmacnda 0111 ile bl maskeleniyor (arpma), 4. bit sfrlanyor 0010 ile blnin 2. biti 1 haline getiriliyor al ii sfrlanyor, temizleniyor cl ii tersleniyor cxin ii sola 1 bit kaydrlr (yani 2 kat alnr) cxin ii saa 1 bit kaydrlr (yani 2ye blnr) dinin soldaki ilk biti sona, kalan bitler sola kayar ETIKET adresine cx 0 oluncaya dek dner (for gibi) ahye flag bayrak bilgilerini saklar ahden flag bayrak yazmacna geri ykler bayraklar stack segmente itilir bayraklar stack segmentten geri alnr mov ax, 2000 mov bx, 1000 cmp ax, bx jb kucuk buyuk: mov dx, ax sub dx, bx jmp tamam kucuk: mov dx, bx sub dx, ax tamam: nop ax 2000 bx 1000 ax ile bxi karlatr eer ax kkse kucuk etiketine git dx ax dx dx - bx koulsuz tamam etiketine git dx bx dx dx - ax ilem yok Yukardaki karma ilemi yapan rnei Balataltr. debug program ile yle yazabilirsiniz: (OrneklerAsmasm. zipcikarma. txt). Delphi dilinde ise adres belirtmeye gerek kalmadan label eklinde etiketler ile loop, call ve jmp komutlarn kullanabiliriz. (OrneklerAsmdelphiasm. zipProject2.dpr) Dier rneklerde debugn komutlarn bulabilirsiniz. - a 18A2:0100 B80020 18A2:0103 BB0010 18A2:0106 39D8 18A2:0108 7206 18A2:010A 89C2 18A2:010C 29DA 18A2:010E EB04 18A2:0110 89DA 18A2:0112 29C2 18A2:0114 90 - t 6 18A2 adresi sizde farkl olabilir kkse (jump if below) MOV AX,2000 MOV BX,1000 CMP AX, BX JB 0110 MOV DX, AX SUB DX, BX JMP 0114 MOV DX, BX SUB DX, AX NOP son 6 satr trace izle yani altr AX2000 BX1000 CX0000 DXF500 SPFFEE BP0000 SI0000 DI0000 DS18A2 ES18A2 SS18A2 CS18A2 IP0103 NV UP EI NG NZ NA PE CY 18A2:0103 BB0010 MOV BX,1000 AX2000 BX1000 CX0000 DXF500 SPFFEE BP0000 SI0000 DI0000 DS18A2 ES18A2 SS18A2 CS18A2 IP0106 NV UP EI NG NZ NA PE CY 18A2:0106 39D8 CMP AX, BX AX2000 BX1000 CX0000 DXF500 SPFFEE BP0000 SI0000 DI0000 DS18A2 ES18A2 SS18A2 CS18A2 IP0108 NV UP EI PL NZ NA PE NC 13 18A2:0108 7206 JB 0110 AX2000 BX1000 CX0000 DXF500 SPFFEE BP0000 SI0000 DI0000 DS18A2 ES18A2 SS18A2 CS18A2 IP010A NV UP EI PL NZ NA PE NC 18A2:010A 89C2 MOV DX, AX AX2000 BX1000 CX0000 DX2000 SPFFEE BP0000 SI0000 DI0000 DS18A2 ES18A2 SS18A2 CS18A2 IP010C NV UP EI PL NZ NA PE NC 18A2:010C 29DA SUB DX, BX AX2000 BX1000 CX0000 DX1000 SPFFEE BP0000 SI0000 DI0000 DS18A2 ES18A2 SS18A2 CS18A2 IP010E NV UP EI PL NZ NA PE NC 18A2:010E EB04 JMP 0114 - t AX2000 BX1000 CX0000 DX1000 SPFFEE BP0000 SI0000 DI0000 DS18A2 ES18A2 SS18A2 CS18A2 IP0114 NV UP EI PL NZ NA PE NC 18A2:0114 90 NOP AX BXden byk olduu iin 2000-1000 sonucu olan 1000 deeri DX yazmacnda saklanyor. sterseniz AXe 2001, BXe 1975 deerini vererek de deneyebilirsiniz. Sonu neden 068C oldu da 26 olmad acaba Onaltlk say sisteminde olduumuzu unutmayalm. OrneklerAsmdelphiasm. zipProject2.dpr de ise sonu onluk sisteme evrildiinden dolay 26 elde edebilirsiniz. - r ip alacak programn balang adresi 100 olmal IP 0114 :100 - a 100 sadece iki satr deiecek 18A2:0100 mov ax,2001 18A2:0103 mov bx,1975 18A2:0106 - t 6. Aada baz rnekler ise. asm uzantldr. Bunlar derlemek iin CDdeki OrneklerAsmtasm. zip dizinindeki dosyalar (Tasm. exe, Tlink. exe, dpmiload. exe, dpmimem. dll) sabit diskinize kopyalayn. Not defterinde rnek kodlar yazp kendi diskinizdeki bu dizine kaydedebilirsiniz. imdi yapacanz exeyap. bat a ksayol oluturup, benim yaptm ksayoldaki gibi, ksayola sa tklayp zelliklerProgramKomut Satr:exeyap. bat haline getirin. Bu , exeyap. bat dosyasnn almadan nce bize parametre ile dosya adn sormasn salayacak. Ksayolu altrn ve dosyaadi yazp Entera basn. te bitti, hemen hemen hi MS-DOS komut isteminde bir iimiz olmad. exeyap. bat ve comyap. bat dosyalarnn ierii yle: echo off tasm 1 tlink 1 erase. map erase. obj 1.exe echo off tasm 1 m tlink t 1 erase. map erase. obj 1 exeyap. bat olarak kaydedin comyap. bat olarak kaydedin 1 deyimlerinin anlam. bat dosyaya parametre eklenebilmesi iindir. Bu sayede c:exeyap. bat deneme. asm komutu ile bir anda programmz eer hata yoksa derleniyor. Windowsta da uygulamalarn ksayollarna. ekleyerek almalarndan nce bize kk bir pencerede parametre girii imkan verebiliyoruz: 14 1. Mavi. txt (mavi renkli ekran) (OrneklerAsmDiger. zipMavi. TXT) lk rneimiz Mavi. txt dosyasndaki rnek. Aadaki kodlar not defteri ile yazabilirsiniz. Resim 3 Mavi Dorudan CDmizden denemek iin, bu rnei not defteri ile ap hepsini sein ve kopyalayn. Balataltr. dan debug (dibag diye okunur) komutu verin. kan siyah komut isteminin pencere halinde olmas iin AltEnter yapp, ara ubuundaki Yaptr ile hafzadaki bilgilerin yapmasn seyredin. bitmitir, ilk programnz derlediniz. Masa stndeki maviun tek yapt ey mavi bir metin ekran oluturmak. iareti ile de isterseniz debugn yardmna bakabilirsiniz. Kod yazma ksm: - a 100 mov ah,12 mov bl,10 int 10 mov ax,40 mov ds, ax mov ax,600 mov bh,1f SUB CX, CX mov dh,18 cmp bl,10 jz 11d mov dh,84 mov dl,4a dec dl int 10 mov ah,2 mov bh,62 sub dx, dx int 10 ret - n mavi - r cx 30 - w - u 100 18A2:0100 B412 18A2:0102 B310 18A2:0104 CD10 18A2:0106 B84000 18A2:0109 8ED8. - q Aklama ksm: 100nc adresten itibaren kod yazyoruz (a - assemble) burada Enter yapp kod yazmaktan kn programn ismi belirleniyor (n - name) 30h 48 Byte yer kaplayaca belirtilir Sabit diske kayt (w - write) unassemble komutu ile kodlarmz inceliyoruz MOV AH,12 MOV BL,10 INT 10 MOV AX,0040 MOV DS, AX debugdan k (q - quit) 48 byte boyundaki mavi dosyamz bir hex editr ile aarsak, bizim dorudan bir ey anlamadmz u yazlar grebilirsiniz: 00000 B4 12 B3 10 CD 10 B8 40 00 8E D8 B8 00 06 B7 1F -.. 00010 29 C9 B6 18 80 FB 10 74 04 8A 36 84 00 8A 16 4A )t6.J 15 00020 00 FE CA CD 10 B4 02 8A 3E 62 00 29 D2 CD 10 C3 .--b.) Her komutun bir mikroilemci kod evrimi vardr. e yani enter komutu ile makine komutu, yaz veya say girii yapabiliriz. Sadece bu kodlar kullanarak da program yazabiliriz. MOV AH,12 yazmak yerine unu da deneyebilirsiniz: - e 100 b4 12 - e 200 Hafzaya bu yazlr - e eff 11 10 1c 33 45 100 adresinden itibaren kod girii (e - enter) 200 adresine bilgi yazar, string sonu demektir eff adresinden itibaren be say yazdk Baka bir zaman tekrar debugda yazdmz bu program yklemek istersek L yani load komutunu verebiliriz: - n mavi - l - u 100 18CA:0100 B412 18CA:0102 B310 18CA:0104 CD10 18CA:0106 B84000. dosya adn belirtiyoruz ykleme komutu (l - load) MOV AH,12 MOV BL,10 INT 10 MOV AX,0040 Tm saylar tamsaydr, negatif ve ondalkl yani virgll rakamlar bayraklar ve dier yardmc yazmalarla kullanlyor. FPU Floating Point Unit denilen blm ile kayar noktal ilemler daha hzl hesaplanr. lemci yazmalarndan olan bit boyutundaki sekiz adet bayrak ile iaret (negatif veya pozitif say) sign SF, sfr zero ZF, elde carry CF, elik parity PF, yn direction DF, tama overflow OF ile blme, arpma gibi ilemler yaplr. - r f NV UP EI PL NZ NA PO NC flag yazmalarn gster ve deitir komut bekler, Enter ile geebilirsiniz (11010.10110)2 2423212-12-32-4 (26.6875)10 (11010.10110)2 (1.101010110 25)2 olarak da kullanlabilir (0,25)10 0.100 2.10-1 2.10-2 (A2.B)16 A.161 2.160 B.16-1 162.687 On tabanndaki kayar noktal bir say herhangi bir say sistemine evrilirken tamsay ksm 0 kana dek o say sistemine blnp kalanlar tersten yazlr kesirli ksm ise yine 0 kana dek o say sistemi ile arplarak tamsay ksm yanyana yazlr: (72.3)10 (1001000.0100110)2 722 362 182 92 42 22 12 0 Kalan Kalan Kalan Kalan Kalan Kalan Kalan 0 0 0 1 0 0 1 .32.6 .62.2 .22.4 .42.8 .82.6 .62.2 .22.4 Tamsay0 Tamsay1 Tamsay0 Tamsay0 Tamsay1 Tamsay1 Tamsay0 iareti debugn komut istemidir. Burada a, n, r gibi tek harfli komutlar kullanyoruz. a 100 ile 100 nc adresten itibaren yazmaya balarz. Buradaki 100 prensip olarak kullanlan bir deerdir. Her program satrndan sonra 100 yada dier adres art komut boyutu kadar adresin ilerlediini grebiliriz. Komutlarn hafzada kaplad alan kadar onlarn ilemci iinde ne kadar zaman harcad da nemlidir. Mesela div - blme komutu 80486 iin 24 saat darbesi ile biterken, benzer grevi yapan shr saa kaydrma sadece 3 saat evrimine ihtiya duyar. kiye blmek veya arpmak iin en hzl ve pratik komutlar shl arpma ve shr blmedir. Fakat kaydrrken taan bitler yok olur. mov shl. mov shr ax, 8 ax, 1 ax, 4 ax, 1 sola bir bit kaydr, ax artk 0010h olur 10h 16, iki ile arpmak gibi saa bir bit kaydr, ax artk 0002h olur, ikiye blmek gibi Bu ilemleri mul ve div ile yle yapabiliriz: mov ax, 8 16 mov mul. mov mov div bx, 2 bx ax, 4 bx, 2 bx ax ax bx sonu 0010h 16 (st byte dxte saklanr) ax ax bx sonu 0002h (kalan dxte saklanr) Eer bir byte bir byte ile arplrsa iki byte, iki byte iki byte ile arplrsa da drt byte alan kaplayan say oluur. Bu sebeple eer mul bl denilirse ax al bl olur, mul bx denilirse dx:ax ax bx olur. Blmede de div bl gibi bir byte blme yaplrsa (al ax bl ) sonu alde kalan ahde olur. div bx denilirse de (ax dx:ax bx ) sonu axde, kalan da dxde saklanr. - a 100 18A2:0100 18A2:0103 18A2:0106 18A2:0108 - t 3 mov ax,0011 mov bx,2 div bl AX0011 BX0002 CX0000 DX0000 SPFFEE BP0000 SI0000 DI0000 17 2 DS18A2 ES18A2 SS18A2 CS18A2 IP0103 NV UP EI PL NZ NA PO NC 18A2:0103 BB0200 MOV BX,0002 AX0011 BX0002 CX0000 DX0000 SPFFEE BP0000 SI0000 DI0000 DS18A2 ES18A2 SS18A2 CS18A2 IP0106 NV UP EI PL NZ NA PO NC 18A2:0106 F6F3 DIV BL AX0108 BX0002 CX0000 DX0000 SPFFEE DS18A2 ES18A2 SS18A2 CS18A2 IP0108 18A2:0108 0000 ADD BXSI, AL - a 100 18A2:0100 mov ax,0100 18A2:0103 mov bx,05 18A2:0106 div bx 18A2:0108 - r ip IP 0108 :0100 - t3 BP0000 SI0000 DI0000 Kalan 01, Sonu 08 NV UP EI PL NZ NA PO NC DS:000200 256 5 51, kalan 1 olur program 100den itibaren almas gerekir AX0100 BX0002 CX0000 DX0000 SPFFEE BP0000 SI0000 DI0000 DS18A2 ES18A2 SS18A2 CS18A2 IP0103 NV UP EI PL NZ NA PO NC 18A2:0103 BB0500 MOV BX,0005 AX0100 BX0005 CX0000 DX0000 SPFFEE BP0000 SI0000 DI0000 DS18A2 ES18A2 SS18A2 CS18A2 IP0106 NV UP EI PL NZ NA PO NC 18A2:0106 F7F3 DIV BX AX0033 BX0005 CX0000 DX0001 SPFFEE BP0000 SI0000 DI0000 ax 51(onluk sistemde), dx 1 DS18A2 ES18A2 SS18A2 CS18A2 IP0108 NV UP EI PL NZ NA PO NC 18A2:0108 0000 ADD BXSI, AL DS:00059A rnein MOV AH,12 komutu 2 byte yer kaplayarak kod hafzasna b412 yazlmasn salad. Tabii ki buradaki 12 says bildiimiz onluk sistemdeki 12 deil. Heksadesimal olarak dnmeliyiz. 0 ile 9 aras ve A 10, B 11, C 12, D 13, E 14, F de 15 rakam olarak kullanlr. 12h 161.1 160.2 18 FFh 161.15 160.15 255 0Ch 161.0 160.12 12 FF00h 163.15 162.15 161.0 160.0 65280 kilik sistemden de birka rnek yapalm, genellikle yazmda drder drder ayrlrlar: 1100 0Ch 23.1 22.1 21.0 20.0 12 1111 0001 F1h 27.1 26.1 25.1 24.1 23.0 22.0 21.0 20.1 241 17 Eminim 128, 256, 1.44, 65535, 1024 gibi rakamlar bir yerlerde grmsnzdr. rnein RAMlerimiz 1024n katlar eklindedir. 16 MB, 32 MB, 48 MB gibi. Eer 128 MB RAMimiz var ise bilgisayarn POST Power On Self Test ilk alnda 131.072 KB gibi bir rakam grrsnz. Nedeni megabyte ve kilobyte evriminden dolaydr. Anakart veya bir ekran kartnn kitapn incelemenizi tavsiye ederim. Kullanlan terimler, deyimler ve ksaltmalarn anlamlarna baknz. (B byte, K kilo, M mega demektir). Binin katlar eklinde olmas iin en yakn say 210 yani 1024dr. 1 B 8 bit 1024 KB 1 MB 1024 B 210 B 1 KB 131.072 KB 128 MB Temel birimler ise tera T 1012, giga G 109, mega M 106, kilo K 103, hecto h 102, deci d 10, centi c 1, mili m 10-3, micro 10-6, nano n 10-9, pico p 10-12 diyebiliriz. Fakat gn getike daha byk ve daha kk birimlere ihtiyacmz artt iin deiik birimlerle karlaacaz. Mesela perabyte PB 1015, eksabyte EB 1018 gibi. 18 2. meraba. asm (merhaba dnya) (OrneklerAsmasm. zipmeraba. asm) Resim 4 Assembler selam Bir metin editr ile yazdnz kaynak dosya, Tasm Turbo Assembler veya Masm - Microsoft Assembler ile. obj dosyas oluturulur. Eer hata kalmam ise, Tlink veya Link ile. exe veya dosya haline gelir. dosya daha kktr nk sadece MS-DOS geleneksel hafza blgesi olan 1 MB iine yerleebilir, boyut olarak 64 kilobyte gemezler. exe dosya ise RAMin herhangi bir yerine yerleir ve byklkleri mega bytelarca olabilir. DOS Disk Operating System komut isteminde mem komutunu vererek, dosyalar iin en fazla ayrlabilen bo alan grebilirsiniz. u kodlar not defteri ile meraba. asm olarak yazp tasm ile derleyebilirsiniz. model small. stack 100h. data selammesaji DB Meraba Dunya ,13,10,.code start: mov mov mov mov int mov int END start ax, data ds, ax ah,9 dx, OFFSET selammesaji 21h ah,4ch 21h metin dizi sonu belirteci DOS yazma fonksiyonu veriyi iaretle yaz DOS program sonu program sonu meraba. exe dosya oluturmak iin, MS-DOS Komut isteminde unlar yapabilirsiniz. Eer Tasm hata mesajlar veriyorsa bunlar dzeltmeden meraba. obj oluamaz ve Tlink ie yaramaz. c:tasm meraba. asm Turbo Assembler Version 3.2i Copyright (c) 1988, 1992 Borland International Serial No: Tester: Assembling file: meraba. asm Error messages: None Warning messages: None Passes: 1 Remaining memory: 393k c:tlink meraba. obj Turbo Link Version 5.1 Copyright (c) 1992 Borland International c: 19 Artk meraba yazp Enter tuuna basnca ekrana gelen Meraba Dunya yazsn grebilirsiniz. meraba. obj 260 byte, meraba. map 232 byte, meraba. asm 209 byte ve meraba. exe 544 byte olmal. Meraba Dunya yazsnn yanndaki 13 ve 10 Enter ve satr besleme Line Feed tularnn taklididir. CR Carriage Return aryo tama dn ASCII kodu 13, LF Line Feed satr besle ASCII kodu ise 10dur. Birok int komutundan nceki ax veya ah yazmacna atlan deerlere gre kesme ilemi uygulanr. stteki programda iki adet int 21h komutu var, ama etkileri birbirinden ok farkl. Dorudan int 21h komutu verilseydi istediimizi elde edemezdik. int 09h klavye, int 10h ekran BIOS iinde tanmlanmtr, int 33h fare de mouse. sys ile bellee yerleir. Bu interrupt kesmelerle ilgili rneklere kitabn ilerleyen ksmlarda bulabilirsiniz. 256 adet 0-FFh aras yazlm kesmesi olabilir. Hafzann ilk alan interrupt bilgilerini tar ve her biri drt byte dallanlacak adres bilgisi olan yer kaplar. Bir kesmenin alt fonksiyonlar AH yazmac ile belirtilir. AH sekiz bit olduu iin en fazla 256 fonksiyon tanmlanabilir. Mikroilemci interrupt komutu ald anda, o anki yazma bilgilerini ve program adresini saklar ve kesmeyi gerekletirir. Kesme ilemi bitince ana program kald yerden almaya devam eder. Donanm kesmeleri de 15 adettir. Klavye, fare gibi donanmlardan gelecek tetikleme ile alrlar. letim sisteminin sfra blm gibi hatalara kar kulland birok internal i kesmeleri de bulunur. OrneklerAsmasm. zipuserinterrupt. txt rneinde int 60 kendimiz programlayp, belli bir hafza blgesine dallanmay debug programnda yle salyoruz: 60h x 4 180h adresi int 60n balang adresidir. Aadaki 00 00 00 00 bilgisi ile bu kesmenin bo olduunu anlyoruz. - d 0:180 L4 0000:0180 00 00 00 00 - e 0:180 00 01 6d 18 - e 186d:0200 Tark BARIYANIK - a 186d:0100 186D:0100 mov ax,186d 186D:0103 mov ds, ax 186D:0105 mov dx,0200 186D:0108 mov ah,09 186D:010A int 21 186D:010C ret 186D:010D - a 186d:1000 186D:1000 int 60 186D:1002 mov ah,4c 186D:1004 int 21 186D:1006 - g 186d:1000 Tark BARIYANIK Length 4 byte gster (d - dump). 186d:0100 adresine ynlendireceiz 0200 adresinde bilgi var, a dikkat, string sonu bu adrese de kendi programmz yazyoruz offsetimiz 186d mov ds,186d hatal kullanmdr 0200 adresindekileri ekrana yaz interrupt bitirme komutu (iret komutu da olabilirdi) Enter ile program bitirin int 60 aran baka bir program program bitirme program altr (g - go) ekrana bilgi yazld. Aslnda interrupt diye yaptmz bu rnek call komutu ile ayn ii yapyor. call ile alt programlar arabilir ret komutu ile ana programa dnlebilir. Assembler dilini donanma ulamak iin bize yardmc olan dil olarak grebiliriz. Bu sebeple bilgisayarmz kilitleme ihtimalimiz bir hayli fazla, dikkatli yaznz. Dediim gibi tm satrlar tek tek aklamak ok zor, imdilik bu bunlarn op-codelar olduu, bir eylerin ksaltmas olduunu bilin, yeterli. Mesela mov, move yani sadaki deeri al, soldakine yaptr demek. Yaplan ilemler sanki matematiksel yani topla, kar, ekle, eksilt gibi deil mi Sonuta hafza veya yazmalarla ilgili ilem yaparken hesap yapmay da renmemiz gerekiyor. Eer assemblerda programlama yapmaya karar verdiyseniz on, on be komutu iyi bilmeniz gerekiyor. CDdeki CD2ProgramlamaHelpPCHelpPC komutlar ve yazmalar hakknda ayrntl bilgiler veriyor. Ek 3 ASCII Kod Tablosuna baknz. 20 3. kucuk. asm (byk harfe evirir) (OrneklerAsmDiger. zipKUCUK. ASM) Resim 5 10 karakteri byk harfe eviren program (Trke karakterlere dikkat).MODEL SMALL. STACK 100H. DATA buffer label byte maxuzun db. katar db 10 dup() girilen db. mesaj db Cevrilecek cumle (10 karakter): crlf db 10,13,.code basla: mov ax, data mov ds, ax mov dx, offset mesaj mesaj deikeni ekrana baslacak mov ah,09h int 21h mov dx, offset buffer mov buffer,10 mov ah,0ah int 21h xor si, si xor cx, cx mov cl, girilen cmp cl,0 je son buyuk: cmp katarsi, a jl devam cmp katarsi, z jg devam sub katarsi,20h devam: inc si loop buyuk mov katarsi1, goster: mov dx, offset crlf mov ah,09h int 21h mov dx, offset katar mov ah,09h int 21h son: mov ax,4c00h int 21h end basla kucuk. exe dosyas altnda kk harfli on karakter girin ve Entera basn. On harfli olmasna dikkat edin. Program deitirebilmek iin edit veya not defteri ile kucuk. asm dosyasn aabilirsiniz. lk kez not defterinde aadaki program yazp kaydederken de ift trnak iinde dosyaadi. asm eklinde yazp kaydedin, bylece sonu. txt kalmaz. 21 4. cizim. asm (klavye ile izim yapma) (OrneklerAsmDiger. zipCIZIM. ASM) Resim 6 Grafik ekranda izim yapmak. Klavyeden yn tular, Home, End, Page Up, Page Down ve Insert tular ile izim yaplyor. Insert ile izim yapma ve yapmama ayarlanyor. Belki siz de yaptnz kaydetmeyi eklemek istersiniz (tamam Print Screen tuu da ii gryor zaten). Bu rnei de nceki rnekteki gibi derleyebilirsiniz. Ekrann dna da kmaya almayn, garip hatalar greceksiniz. kes. asm dosyas da buna benzer bir rnek, renk seimi dahil edilmi. Hatta bilgisayarnz bile kilitleyen kayt bile var. Biraz inceleyin, belki sizin hounuza gider. Resim 7 kes. asmnin ekran grnts. MODEL SMALL. code org 100H basla: jmp ilk instusu db 0h deltusu db 0h ilk: mov ah,00 mov al,06 int 10h xor cx, cx xor dx, dx tusal: xor ax, ax int 16h cmp al,1bh jne ara mov ah,0 mov al,03 int 10h mov ax,4c00h int 21h ara: cmp ah,47h jl tusal cmp ah,53h jg tusal inst: cmp ah,52h je inst not instusu jmp tusal cmp ah,53h je delt cmp ah,47h je home cmp ah,48h je yukari cmp ah,49h je pgup cmp ah,4bh je sol cmp ah,4dh je sag cmp ah,4fh je endt cmp ah,50h je asagi cmp ah,51h je pgdn jmp tusal 22 delt: not deltusu jmp tusal home: call noktanokta dec cx dec dx jmp tusal yukari: call noktanokta dec dx jmp tusal asagi: call noktanokta inc dx jmp tusal sag: call noktanokta inc cx jmp tusal sol: call noktanokta dec cx jmp tusal endt: call noktanokta dec cx inc dx jmp tusal pgup: call noktanokta inc cx dec dx jmp tusal pgdn: call noktanokta inc cx inc dx jmp tusal noktanokta proc cmp instusu,0h jne don call noktakoy don: ret noktanokta endp noktakoy proc near push es push bx push cx push dx push di xor di, di mov bx,0b800h mov es, bx MOV di, cx shr di,1 L harfi deil, bir yazlr shr di,1 shr di,1 mov ax, dx shr ax,1 mov bl,80 mul bl add di, ax and dx,1 push cx mov cl,13 shl dx, cl pop cx add di, dx and cx,7 mov bl,7 sub bl, cl mov cl, bl mov ah,1 shl ah, cl mov al, es:di or al, ah mov es:di, al pop di pop dx pop cx pop bx pop es ret noktakoy endp end basla 23 5. Fridge (intro yapm) (OrneklerAsmFrigde. zipFridge. asm) Assembler dilinde yaplm ho bir grafik efekti program. Gerekten kaliteli bir alma. olarak derlemeniz gerekiyor. ngilizce aklamalar zebilirseniz siz de gzel deiiklikler yapabilirsiniz. Siz de buzdolabn kapat lafn rahatlkla deitirebilirsiniz: Resim 8 Fridge demosu IDEAL P386 MODEL tiny CODESEG ORG 100h Start: mov al,13h int 10h assume ah0 set mode 13h mov ah,09h mov dx, OFFSET Msg int 21h mov add mov add mov ax, cs ah,10h ds, ax ah,10h es, ax ie. add cs,1000h setup buffer segment 1 ie. add cs,2000h setup buffer segment 2 vga-mem ptr push 0A000h pop fs ------ clear water buffers ----xor ax, ax xor cx, cx c: mov di, al stosb loop c clear ds and es buffers ---- Set Palette -----mov dx,03C8h assume ax 0 out dx, al inc dx p: xor al, al out dx, al red 0 mov al, ah shr al,2 24 out neg inc out inc jnz dx, al green ah4 (0-63) al al dx, al blue - ah41 (64-0) ah SHORT p to decrease sp, and to store cx0 pusha ----------------------- Main loop begins -----------------------Main: ------ calculate water ------xor di, di mov cx,32768 w: mov ax, di-512 add ax, di512 add ax, di-2 add ax, di2 sar ax,1 2 sub ax, es:di mov dx, ax sar dx,5 sub ax, dx stosw mov es:di, ax loop w ----- vertical retrace ---mov dx,03DAh vr1: in al, dx test al,8 jz SHORT vr1 ----------- change water buffers -------push ds push es pop ds pop es exchange dses ------- paint water ----------xor si, si mov di,02D20h y36, x32 o: inc ch assume cx0, inc ch - cx256 i: mov dx,128 lodsw mov ax, si add si,2 sub ax, si x1, (si510 for y1) sub dx, ax color wateryx-wateryx1(should be y1) cmp dx,0 jnl SHORT d1 mov dl,0 d1: cmp dx,255 jng SHORT d2 mov dl,255 d2: mov fs:di, dl inc di loop i slow putpixel add di,2 add di,64 cmp si,0 jne SHORT o -------- add drops -------popa pop regs from the stack 25 add ax,26500 . rol ax,1 fake random generator inc cx frame counter pusha push changed regs to the stack test cl,00000011b only 1 drops 4 frames jnz SHORT nd mov di, ax and al,00000111b drop height (0-7) add di, al nd: ------ add text ------mov al,10 and ch,00000011b mul ch mov bh, al push bx cmp cl,100 ja SHORT skip mov di,24641 (y48,x32)21(1for offset to second byte) to: mov cx,64 x-pixels of text t: mov al, fs:bx cmp al,0 jz SHORT no inc BYTE es:di add WORD es:di,256 (256height) no: inc bx add di,8 loop t inc bh add bx,(320-64) add di,(25632) cmp di,41025 (y4832, x32)2 1 jb SHORT to skip: pop bx ----- key check --------in al,60h read scancode cbw clear ah, for later use dec ax jnz Main jmp if Esc not pressed ------------------------ Main loop Ends -----------------------mov al,03h ah assumed to be 0 int 10h set mode 03h int 20h terminate program, safer than ret in win95 Msg Msg DB Close,13,10,tha,13,10,fridge,13,10,, ascii - string DB Be,13,10,HaPpY,13,10,dont,13,10,WorrY, alternative END Start Mikroilemci ile ilgili notlar imdilik bu kadar. 26 Blm 2 Basic Basic (Beginners All Purpose Symbolic Instruction Code) dili ile olduka uramama ramen burada pek yer vermeyeceim. Pascal veya C dilini grnce insan Basici ad gibi basit ve kaba buluyor. Tamam kzmayn Basicciler. Microsoft her ii kolaylatracam derken kullancnn kendilerine zg tasarm yapmalarna engel oluyorlar ve sanki at gzl takm gibi gitmemizi istiyorlar. 1. piyano. bas (mzik) (OrneklerVBEskiBasicGWBASIC. zippiyano. bas) Resim 1 GWBasic ekran ( yl 1992 gibi. ) Bir metin yaz girii ile nota alnyor. GWBasic ile yazdm. Resimde grld gibi Basic Interpreter yazyor. Yani programlarmz. exe yapamyorduk o zamanlar. 10 COLOR 1,2:CLS 20 LOCATE 12,20:PRINT BU BR PYANO PROGRAMIDIR 30 TRND10000 40 SOUND T,5 50 FOR I1 TO 10000 60 NEXT 70 CLS 80 LOCATE 12,20:INPUT NOTANIZ(CDEFGA-F D A. )A 90 PLAY A 100 GOTO 80 GWBasic 3.2nin kullanm kolay. F1 programn kod listesini paldr kldr ekrana verir, eer program uzunsa yani. F2 altrma, F3 dosya ykleme. Eer dosya adn hatrlamyorsanz files komutu ile dosyalar grebilirsiniz. Ekranda renkler birbirine girerse F10 ile varsaylan siyah beyaz ekrana geri dnebilirsiniz. cls ekran siler, system GWBasici kapatr, program kilitlenirse CtrlPause ile program krabilirsiniz. Mikroilemci komutlar gibi satr numaralar ile program alyor. Yani Goto komutu ile istediiniz an istediiniz yere atlayabiliyorsunuz. Ne gzel deil mi Bu arada sanatmuz. bas bir Trk mzikseverin yapt GWBasic ile program, OrneklerVBEskiBasicQBasic. zipExamples dizininde (Qbasic 4.5 ile rahat alyor). Muhakkak inceleyin, gzel mzikler var. 27 2. kutu. bas (kutu ekli) (OrneklerVBEskiBasicQBASIC. zipEXAMPLESkutu. bas).bas dosyalar not defteri veya edite atmay denediniz mi Dier diller. c,.cpp,.asm,.pas,.htm,.asp dosyalar da dardan alp edit edebilirsiniz. CtrlX, CtrlC gibi ksayollara alanlar, CtrlIns, ShiftIns gibi tulara alamayanlar bu ekilde program yazabilir. DECLARE SUB KUTU (A. B. C. D) CLS KUTU 4, 5, 20, 70 LOCATE 4, 5: PRINT X LOCATE 20, 70: PRINT X SUB KUTU (A, B, C, D) ORTX (A C) 2 ORTY (B D) 2 XX1 ORTX XX2 ORTX 2 YY1 ORTY YY2 ORTY 2 FOR XX2 ORTX TO C - 1 XX1 XX1 - 1: IF XX1. Aufrechtzuerhalten. sizeof() ) genitir. s almak iin pow (taban, s) kullanlabilir. Makine dili seviyesindeki tm operasyonlarn C dilinde karl bulunur. Yani sistem programcl ve benzeri ileri seviye programclna elverilidir. Ana program main() iinde olmaldr. Eer main() iinden arlmayan bir kod yazmsanz asla o ksm altrlamaz. Pascal dilinde de end. deyiminden sonra yazlan ksmlar sadece aklama satr gibi anlalr. include int main(int argsayi, char args ) 3) 1 (0000 0011)2 (0000 0001)2 (0000 0001)2 1 ekrana 1 yazar ESC tuu baslana dek yazlanlarn kelime, harf, paragraf ve satr saysn hesaplar ve rapor eder. if deyimine gzel bir rnek. (OrneklerCokulvizesoru. c) include include include main() while(karakter27) printf(ndkelime says, kelime) printf(dharf says, harf) printf(dparagraf says, paragraf) printf(dsatr says n, satir) getch() 35 1. sralama (balon, seerek ve hzl sralama) (OrneklerCsiralamabubblsor. c, selecsor. c, quicksor. c) Dizilerde sralama iin en ok seerek selection sort, hzl quick sort ve balon bubble sort kullanlyor. Merge sort (birletir srala), insertion sort (ekleme sralama) gibi algoritmalar da incelenebilir. Kullanm amacna gre hz gereken yerde hzl sralama, basit birka say sralanacak ise de balon sralamas kullanlabilir. Balon sralamasnda iteki fordan geriye doru giden bir tane daha yazlarak ift ynl bidirectional balon sralamas olarak hzlandrlabilir. Pascal, Basic dillerinde de algoritma deimiyor. Delphinin DemoThreads dizininde gzel bir rnek var. Tabii ki sralandktan sonra dizinin ilk eleman en kk, son eleman da en byk rakam olur. Bu sayede minimum ve maksimum kendiliinden ortaya kyor. Byk veri ynlarnda yani veritabanlarnda ise SQL deyimleri olan basit komutlar kullanarak istediiniz alan veya alanlar sralayabilirsiniz. Balon sralamas: include bubblsor. c, basit ve yava algoritma int a 10void main (void) for (k 0 k max) en byk bulunarak baa atlr aindis ak ak max Ekrana kan sonu: -4 -3 0 3 6 12 22 33 33 44 Balon sralamasnn mikroilemci kodlar ise, u ekilde not defterine yazlp, debuga yaptrlabilir: r ip 100 for (k 9 k 0 --k) printf ( d, ak) Hzl sralama: include quicksor. c, karmak ve hzl algoritma int a 10void QuickSort(int a , int lo0, int hi0) lo0) mid )) --hi if( lo ah (al bykse) ise 1000:011D jmp 0126 Deilse dnmeye devam et 1000:011F xchg al, ah kisini yer deitir 1000:0121 mov si, al Yeni deerleri gncelle 1000:0123 mov si01, ah Bir sonraki deer 1000:0126 inc si Bir sonraki adres 1000:0127 loop 0114 Alt dng devam eder 1000:0129 pop cx Eski cx ne idi 1000:012a jmp 0108 kinci dng bitiyor gcs:100 10a d ds:100 2000:0100 00 03 03 04 06 12 22 33-33 44 00 00 00 00 00 00. 33D. 2000:0110 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00. Mavi yazl olan adresleri daha program yazarken bilmemiz mmkn deil. Debuga yaptrdktan sonra adreslere bakp buralar dzeltiriz. Bu adres ilemi Microsoft Programmers Workbench adl program ile veya baka dil iinde asm kodlar kullanrken Label tanmlanarak yaplyor. 0 255 arasnda olan onaltlk say sistemindeki tamsaylar rahatlkla sralayabiliyoruz. Bu alan yetmezse 0 65565 aras deer alabilen ikier bytelk AX ve BX yazmalarn buradaki AL ve AH yerine kullanabiliriz. Fakat SI1 yerine de SI2 demek gerekecektir. C dilindeki (iptr1) eklindeki pointer artrmnda kendiliinden sonraki dizi elemanna geilir. Dizi sralamasndan sonraki en ok karlalan problem aramadr. Deer aramann sk kullanlan eidi vardr: linear (dorusal), binary (ikilik) ve hashing (kyma). 1- Dorusal arama ok basittir, ilk dizi elemanndan balayp bulana dek karlatrmaya devam edilir. ok byk dizilerde bu yntem yavatr. 2- kilik de ise sral olan bir dizide aranan deer ile dizinin ortasndaki deer karlatrlr. Eer dizi 1000 elemanl ise 500 deer artk elenmi olur. Kalan yarda da ortadaki eleman karlatrlarak 250, daha sonra da 125 eleman kalacak ekilde dng devam eder. Burada recursive (kendini aran) veya iterative (tekrarlan) yntemler kullanlabilir. Recursive Binary Search Fonksiyonu: (Pascal versiyonu BinSearch (x, 53, 1, 30) gibi kullanlyor) type xarray1..100of integer kendi tipimizi oluturuyoruz function BinSearch (var Table: x Target: integer First, Last: integer ). integer var 37 middle: integer begin middle:(FirstLast) div 2 tamsay olmal if FirstLast then BinSearch:0 else if Target Tablemiddle then BinSearch:middle else if Target b) printf(A Byk) else if (ab) ISE YAZ (A Byk) DEGILSE EGER (ab2)and(c1c2))or((a1a2)and(b1b2)and(c1c2)) then begin gunsayisi:-111exit end if (c1c2)and(b1b2) then begin aradeg:a2-a1gunsayisi:aradegexit end if c1-c20 then begin if b12 then if (c1 mod 4)0 then ay2:28 else ay2:29 for j:b11 to b2-1 do begin if j2 then begin artikgun:c1 mod 4 if artikgun0 then ayj:28 else ayj:29 end aradeg:aradegayj end aradeg:aradegayb1-a1a2 gunsayisi:aradegexit end if c2-c11 then begin if b112 then begin for j:b11 to 12 do begin if j2 then begin artikgun:c1 mod 4 if artikgun0 then ayj:28 else ayj:29 45 end aradeg:aradegayj end aradeg:aradegayb1-a1 end else aradeg:aradegayb1-a1 if b21 then begin for j:1 to b2-1 do begin if j2 then begin artikgun:c2 mod 4 if artikgun0 then ayj:28 else ayj:29 end aradeg:aradegayj end aradeg:aradega2 end else aradeg:aradega2 gunsayisi:aradegexit end if c2-c11 then begin if b112 then begin for j:b11 to 12 do begin if j2 then begin artikgun:c1 mod 4 if artikgun0 then ayj:28 else ayj:29 end aradeg:aradegayj end aradeg:aradegayb1-a1 end else aradeg:aradegayb1-a1 for i:1 to c2-c1-1 do begin for j:1 to 12 do begin if j2 then begin artikgun:(c1i) mod 4 if artikgun0 then ayj:28 else ayj:29 end aradeg:aradegayj end end if b21 then begin for j:1 to b2-1 do begin if j2 then begin artikgun:c2 mod 4 if artikgun0 then ayj:28 else ayj:29 end aradeg:aradegayj end aradeg:aradega2 end else aradeg:aradega2 gunsayisi:aradegexit end end begin writeln(gunsayisi(30,7,2001,30,8,2001)2460) end. 24 saat 60 dakika ile arplp ka dakika olduu bulunuyor Delphi ve VB iindeki hazr tarih fonksiyonlar zaten bu tr karmak mantktan bizi uzaklatryor. Bir iki satr ile gn says bulunabilir veya daha deiik istekler giderilebilir. PHP de ise: Kullancnn son login tarihi ile bugn arasnda ka gn varm fark floor( (mktime(0,0,0,date(m),date(d),date(y))mktime(0,0,0, saat ksm substr(mysqlresult(result, i,sonGiris),5,2), ay substr(mysqlresult(result, i,sonGiris),8,2), gun substr(mysqlresult(result, i,sonGiris),2,2)) yl )86400) 246060 ki tarihin ayn formatta olmas iin mktime() kullanlyor 46 7. saat. c (DOS saati) (OrneklerCTSR2 ve OrneklerCokulSAAT. C) mystr. c kodlarn baz minik deiikliler ile TCde derleme imkanm oldu. DOS hafzasnda kalc olarak alan bu saati istediiniz an kapatacak tu ise ShiftF10. TSR Terminate and Stay Resident mant kark gibi, ama belki siz baz deiiklikler yapabilirsiniz. Hafif C kokular ykseliyor. Windows XPde ise artk TSR yok. Resim 6 TSR saat include include include ifdef cplusplus define CPPARGS. else define CPPARGS endif void interrupt (oldint8) (CPPARGS) void interrupt (oldint9) (CPPARGS) int ch define SHF10 0x5D00 long far tick (long far ) 0x0000046c char s10long totalsec int sec, min, hour void writes(int row, int col, char str) int getlastbuffer(void) return 0 void f1(int a, char str) void interrupt newint8(CPPARGS) void interrupt newint9(CPPARGS) void main(void) program bitti, ama etki TSR biimde Aadaki rnek de yap struct structure (strakr diye okunur) oluturmak ile ilgili. Structure kullanm Object Oriented Programming nesneye dayal programlama mantna benziyor. Resim 7 Saat. cnin sonucu include stdio. h include include struct mytime void display(struct mytime t) void update(struct mytime t) void delay(void) void main(void)void update(struct mytime t) seconds if(t-seconds60) seconds0t-minutes if(t-minutes60) minutes0t-hours if(t-hours24)t-hours0 if(kbhit()) exit(0) delay() void display(struct mytime t) hours) printf(2d:,t-minutes) printf(2da, t-seconds) void delay(void) 8)) outport (spkport. inportb (spkport) 3) 0xB6 1011 0110b LSB MSB xxxx xx11 maskesi 109 void spkNosound() main() ParentFont False ParentShowHint False PopupMenu PopupMenu1 ShowHint True SortType stData TabOrder 1 ViewStyle vsReport OnColumnClick ListView1ColumnClick OnCompare ListView1Compare end object Panel1: TPanel Left 0 Top 0 Width 623 Height 57 Align alTop TabOrder 2 object Label1: TLabel Left 432 Top 5 Width 85 Height 13 Caption Arama durumu end object Button2: TButton Left 360 Top 2 Width 70 Height 25 Caption Kapat TabOrder 0 OnClick Button2Click end object Button3: TButton Left 316 Top 2 Width 41 Height 25 Caption Dur Enabled False TabOrder 1 OnClick Button3Click end object Button1: TButton Left 275 Top 2 Width 41 Height 25 Caption Bul TabOrder 2 OnClick Button1Click end object Edit2: TEdit Left 144 Top 9 Width 121 Height 15 BorderStyle bsNone TabOrder 3 Text. doc OnKeyDown Edit2KeyDown end object Edit1: TEdit Left 16 Top 9 Width 121 Height 15 Hint ift tklayp baka bir yer seebilirsiniz, src semek iin i se metin kutusuna d: gibi yazp ift tklaynz. BorderStyle bsNone ParentShowHint False ShowHint True TabOrder 4 Text c:belgelerim OnDblClick Edit1DblClick end end object PopupMenu1: TPopupMenu Left 240 Top 104 object BykSimge1: TMenuItem Caption Byk Simge GroupIndex 1 RadioItem True OnClick BykSimge1Click end object KkSimge1: TMenuItem Caption Kk Simge GroupIndex 1 RadioItem True OnClick KkSimge1Click end object Liste1: TMenuItem Caption Liste GroupIndex 1 RadioItem True OnClick Liste1Click end object Ayrntlar1: TMenuItem Caption Ayrntlar Checked True Default True GroupIndex 1 RadioItem True OnClick Ayrntlar1Click end object Grid1: TMenuItem Break mbBarBreak Caption Grid GroupIndex 1 OnClick Grid1Click end end 157 object PopupMenu2: TPopupMenu Left 328 Top 104 object Kaydet1: TMenuItem Caption Kaydet OnClick Kaydet1Click end end Kod ksm: unit Unit1 interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, TLHelp32, ComCtrls, ExtCtrls, Buttons, ShlObj, ShellAPI, CommCtrl, Clipbrd, Menus, ToolWin, ImgList, filectrl SelectDirectory diyalogu iin filectrl gerekli type TForm1 class(TForm) Ayrntlar1: TMenuItem Button1: TButton Button2: TButton Button3: TButton BykSimge1: TMenuItem Edit1: TEdit Edit2: TEdit Grid1: TMenuItem Kaydet1: TMenuItem KkSimge1: TMenuItem Label1: TLabel Liste1: TMenuItem ListView1: TListView Memo1: TMemo Panel1: TPanel PopupMenu1: TPopupMenu PopupMenu2: TPopupMenu SaveDialog1: TSaveDialog Splitter1: TSplitter procedure Button1Click(Sender: TObject) procedure FindFile(StartDir, FileMask: string) procedure Button2Click(Sender: TObject) procedure Button3Click(Sender: TObject) procedure BykSimge1Click(Sender: TObject) procedure KkSimge1Click(Sender: TObject) procedure Liste1Click(Sender: TObject) procedure Ayrntlar1Click(Sender: TObject) procedure Grid1Click(Sender: TObject) procedure Kaydet1Click(Sender: TObject) procedure ListView1ColumnClick(Sender: TObject Column: TListColumn) procedure ListView1Compare(Sender: TObject Item1, Item2: TListItem Data: Integer var Compare: Integer) procedure FormCreate(Sender: TObject) procedure Edit1DblClick(Sender: TObject) procedure Edit2KeyDown(Sender: TObject var Key: Word Shift: TShiftState) procedure FormKeyDown(Sender: TObject var Key: Word Shift: TShiftState) procedure InitLVImageList(ListView: TListView) private public end var Form1: TForm1 dosyasayisi:integer boyut: longword yeter:boolean ColumnToSort: Integeryon:byte implementation function GetShellImage(szFileName: string): Integer var FileInfo: TSHFileInfo begin SHGetFileInfo(PChar(szFileName), 0, FileInfo, SizeOf(FileInfo), SHGFISYSICONINDEX or SHGFIUSEFILEATTRIBUTES) Result : FileInfo. iIcon end object SaveDialog1: TSaveDialog DefaultExt txt Filter Metin Dosyas. txt Title Liste Kaydet Left 152 Top 104 end end procedure TForm1.InitLVImageList(ListView: TListView) var FileInfo: TSHFileInfo ImageListHandle: THandle begin ImageListHandle : SHGetFileInfo(C:, 0, FileInfo, SizeOf(FileInfo), SHGFISYSICONINDEX or SHGFISMALLICON) SendMessage(ListView. Handle, LVMSETIMAGELIST, LVSILSMALL, ImageListHandle) ImageListHandle : SHGetFileInfo(C:, 0, FileInfo, SizeOf(FileInfo), SHGFISYSICONINDEX or SHGFILARGEICON) SendMessage(ListView. Handle, LVMSETIMAGELIST, LVSILNORMAL, ImageListHandle) end procedure TForm1.FindFile(StartDir, FileMask: string) var SR: TSearchRec DirList: TStringList IsFound: Boolean i: integer ListItem: TListItemtarih:variant begin if StartDirlength(StartDir) then StartDir : StartDir158 IsFound :FindFirst(StartDirFileMask, faAnyFilefaDirectory, SR) 0 while IsFound and not(yeter)do begin application. processMessages Memo1.Lines. Add(StartDir SR. Name) with ListView1 do begin ListItem: items. Add ListItem. Caption:sr. Name ListItem. ImageIndex : GetShellImage(sr. Name) ListItem. SubItems. Add(format(10d KB,(sr. size) div 1024)) tarih:FileDateToDateTime(sr. Time) ListItem. SubItems. Add(DateTimeToStr(tarih)) ListItem. SubItems. Add(StartDir) end Inc(dosyasayisi) boyut:boyutsr. Size IsFound : FindNext(SR) 0 end FindClose(SR) DirList : TStringList. Create IsFound : FindFirst(StartDir., faAnyFile, SR) 0 while IsFound and not(yeter)do begin if ((SR. Attr and faDirectory) 0) and (SR. Name1 .) then DirList. Add(StartDir SR. Name) IsFound : FindNext(SR) 0 end FindClose(SR) for i : 0 to DirList. Count-1 do FindFile(DirListi, FileMask) DirList. Free end procedure TForm1.Button1Click(Sender: TObject) var kb:real begin memo1.Clear ListView1.Items. Clear yeter:false button1.Enabled:false button3.Enabled:true dosyasayisi:0 boyut:0 FindFile(edit1.Text, edit2.Text) kb:boyut1024 label1.Caption:Arama tamamland. 13Toplam dosya says: IntToStr(dosyasayisi) adet 13Toplam boyut: IntToStr(round(kb)) KB button1.Enabled:true button3.Enabled:false end procedure TForm1.Button2Click(Sender: TObject) begin close end procedure TForm1.Button3Click(Sender: TObject) begin yeter:true button1.Enabled:true button3.Enabled:false end procedure TForm1.BykSimge1Click(Sender: TObject) begin BykSimge1.Checked:true ListView1.ViewStyle:vsIcon end procedure TForm1.KkSimge1Click(Sender: TObject) begin kkSimge1.Checked:true ListView1.ViewStyle:vsSmallIcon end procedure TForm1.Liste1Click(Sender: TObject) begin Liste1.Checked:true ListView1.ViewStyle:vsList end procedure TForm1.Ayrntlar1Click(Sender: TObject) begin Ayrntlar1.Checked:true ListView1.ViewStyle:vsReport end procedure TForm1.Grid1Click(Sender: TObject) begin Grid1.Checked:not(Grid1.Checked) ListView1.GridLines:Grid1.Checked end procedure TForm1.Kaydet1Click(Sender: TObject) begin if SaveDialog1.Execute then Memo1.Lines. SaveToFile(SaveDialog1.FileName) end procedure TForm1.ListView1ColumnClick(Sender: TObject Column: TListColumn) begin ColumnToSort : Column. Index (Sender as TCustomListView).AlphaSort yon:-1yon end procedure TForm1.ListView1Compare(Sender: TObject Item1, Item2: TListItem Data: Integer var Compare: Integer) var ix: Integer begin if ColumnToSort 0 then Compare : yonCompareText(Item1.Caption, Item2.Caption) else begin ix : ColumnToSort - 1 Compare : yonCompareText(Item1.SubItemsix, Item2.SubItemsix) end end procedure TForm1.FormCreate(Sender: TObject) begin yon:1 InitLVImageList(ListView1) 159 end procedure TForm1.Edit1DblClick(Sender: TObject) var result:string begin if SelectDirectory(Klasr Se, Edit1.Text, Result) then Edit1.Text : Result end procedure TForm1.Edit2KeyDown(Sender: TObject var Key: Word Shift: TShiftState) begin if keyVKRETURN then Button1Click(self) bul end procedure TForm1.FormKeyDown(Sender: TObject var Key: Word Shift: TShiftState) begin if keyVKESCAPE then Button3Click(self) dur end end. 160 18. think2 (kendiliinden dizilen nesneler) (OrneklerDelphithink2Project2.dpr) Resim 26 Otomatik olarak dizilen nesneler Bu rnekteki ama birbirlerine olan uzakl lerek, en yakn topa yaklamaya alan nesnelerdir. Bu denemeler sonucunda dairemsi olarak sralanmalar gerekiyordu. Fakat her zaman renk dizilimleri koyudan aa doru bize gre pek olmuyor. nk aralarndaki takipci izgilere bakarsanz bazen birbiri zerilerine geip akyorlar. Tam olarak hedefim aralklar eit oluncaya dek birbirlerine doru ilerlemeleri ve be topun daire gibi olmalar idi. Java Development Kit 1.2.2nin demo dizininde GraphLayout adl bir rnekte bizim rnein tam alann grebilirsiniz. En ksa yol problemi ile ilk kez VB dilinde askerdeyken uratm WinLines, adl oyunumda karlatm. Basit 9x9 boyutlarndaki grid zgara dizilerinde bile bir topun hedefe en ksa hangi yoldan gidebilecei beni baya zorlamt. Aslnda hala bu problemi tam olarak bilemiyorum. Bilgisayar oyunlarnn ounda bu soruna benzer, cisimlerin belli bir yere en insans, akll gibi karar vererek gitmeleri bulunur. Artificial Intelligence yapay zeka en gl makineleri bile zorlayan byk programclk gc gerektiren bir konudur. Yine de bu konuda biraz kafa yormak ve sonuta bir eyler elde etmek ok houma gidiyor. Hatralarsanz TicTocToe rneinde de bilgisayara sra gelince hamlesini dnmeyi retmek gerekmiti. Nesnelerimiz: object Form1: TForm1 Left 271 Top 104 Width 528 Height 396 Caption Kendiliinden dizilen nesneler - B harfi Balat, D Durdur iin k ullanlabilir. Color clWhite Font. Charset TURKISHCHARSET Font. Color clMaroon Font. Height -11 Font. Name Tahoma Font. Style fsBold OldCreateOrder False Position poScreenCenter OnCreate FormCreate PixelsPerInch 96 TextHeight 13 object Shape1: TShape Left 96 Top 168 Width 33 Height 33 Brush. Color 10485760 Shape stCircle end 161 object Shape2: TShape Left 160 Top 168 Width 33 Height 33 Brush. Color 13001472 Shape stCircle end object Shape4: TShape Left 288 Top 168 Width 33 Height 33 Brush. Color 16767411 Shape stCircle end object Shape5: TShape Left 352 Top 168 Width 33 Height 33 Brush. Color 16775658 Shape stCircle end object SpeedButton1: TSpeedButton Left 15 Top 8 Width 89 Height 22 Hint Hz Caption Balat Flat True ParentShowHint False ShowHint True OnClick SpeedButton1Click end object SpeedButton2: TSpeedButton Left 104 Top 8 Width 89 Height 22 Caption Durdur Flat True OnClick SpeedButton2Click end object Shape3: TShape Left 224 Top 168 Width 33 Height 33 Brush. Color 16756059 Shape stCircle end object SpeedButton3: TSpeedButton Left 195 Top 8 Width 89 Kodlarmz: unit Unit1 interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Buttons, ExtCtrls, ComCtrls type TForm1 class(TForm) Shape1: TShape Shape2: TShape Shape3: TShape Shape4: TShape Height 22 Caption Kapat Flat True OnClick SpeedButton3Click end object TrackBar1: TTrackBar Left 8 Top 32 Width 41 Height 150 Hint Hz (1-25 birim), aas daha byk rakamdr. Max 25 Min 1 Orientation trVertical ParentShowHint False Frequency 1 Position 15 SelEnd 0 SelStart 0 ShowHint True TabOrder 0 TickMarks tmBoth TickStyle tsAuto OnChange TrackBar1Change end object TrackBar2: TTrackBar Left 8 Top 184 Width 41 Height 150 Hint Toplarn aralklar (1-150 piksel), aas daha byk rakamdr. .. Max 150 Min 1 Orientation trVertical ParentShowHint False Frequency 1 Position 100 SelEnd 0 SelStart 0 ShowHint True TabOrder 1 TickMarks tmBoth TickStyle tsAuto OnChange TrackBar2Change end object Timer1: TTimer Enabled False Interval 250 OnTimer Timer1Timer Left 72 Top 72 end end 162 Shape5: TShape SpeedButton1: TSpeedButton SpeedButton2: TSpeedButton SpeedButton3: TSpeedButton Timer1: TTimer TrackBar1: TTrackBar TrackBar2: TTrackBar procedure SpeedButton1Click(Sender: TObject) procedure FormCreate(Sender: TObject) procedure SpeedButton2Click(Sender: TObject) procedure TrackBar1Change(Sender: TObject) procedure Timer1Timer(Sender: TObject) procedure TrackBar2Change(Sender: TObject) procedure SpeedButton3Click(Sender: TObject) private public end var Form1: TForm1 devam: boolean hiz, aralik. integer baslangic, fark: TDateTime implementation procedure TForm1.SpeedButton1Click(Sender: TObject) var mesafe:integer begin mesafe:66 shape1.Top:random(height-mesafe) shape2.Top:random(height-mesafe) shape3.Top:random(height-mesafe) shape4.Top:random(height-mesafe) shape5.Top:random(height-mesafe) shape1.left:random(width-mesafe) shape2.left:random(width-mesafe) shape3.left:random(width-mesafe) shape4.left:random(width-mesafe) shape5.left:random(width-mesafe) devam:true SpeedButton2.Enabled:true SpeedButton1.Enabled:false baslangic:now() timer1.Enabled:true kendiliklerinden dizilme komutu gibi end procedure TForm1.FormCreate(Sender: TObject) begin randomize timer1.Enabled:false hiz:TrackBar1.Position aralik:TrackBar2.Position SpeedButton2.Enabled:false end procedure TForm1.SpeedButton3Click(Sender: TObject) begin close end procedure TForm1.SpeedButton2Click(Sender: TObject) begin timer1.Enabled:false SpeedButton1.Enabled:true SpeedButton2.Enabled:false end procedure TForm1.TrackBar1Change(Sender: TObject) begin hiz:TrackBar1.Position end procedure TForm1.TrackBar2Change(Sender: TObject) begin aralik:TrackBar2.Position end procedure TForm1.Timer1Timer(Sender: TObject) var a1,b1,a2,b2,c1,c2:integer deger11,deger12,deger21,deger22:integer hareketbitti:integer begin form1.refresh shape5.Top:round (height2) son top uzay referansdr shape5.left:round (width2) :width DIV 2 de kullanlabilirdi hareketbitti:0 with form1.Canvas do begin a1:shape2.left-shape1.left 1 2 b1:shape2.top-shape1.top c1:round (sqrt(a1a1b1b1)) dik gen forml, c1 hipotens a2:shape5.left-shape1.left 1 5 b2:shape5.top-shape1.top c2:round (sqrt(a2a2b2b2)) deger11: round(a1hiz) deger12: round(b1hiz) deger21: round(a2hiz) deger22: round(b2hiz) if c1c2 then begin if c1aralik then begin shape1.left:shape1.leftdeger11 shape1.top:shape1.topdeger12 end end else begin if c2aralik then begin shape1.left:shape1.leftdeger21 shape1.top:shape1.topdeger22 end end if (c1aralik then begin shape2.left:shape2.leftdeger11 shape2.top:shape2.topdeger12 end end else begin if c2aralik then begin shape2.left:shape2.leftdeger21 shape2.top:shape2.topdeger22 163 end end if (c1aralik then begin shape3.left:shape3.leftdeger11 shape3.top:shape3.topdeger12 end end else begin if c2aralik then begin shape3.left:shape3.leftdeger21 shape3.top:shape3.topdeger22 end end if (c1aralik then begin shape4.left:shape4.leftdeger11 shape4.top:shape4.topdeger12 end end else begin if c2aralik then begin shape4.left:shape4.leftdeger21 shape4.top:shape4.topdeger22 end end if (c1 0 Then noktalia True Command16.SetFocus End Sub Private Sub Command2KeyPress(Index As Integer, KeyAscii As Integer) - Command16.SetFocus End Sub Private Sub Command21Click() CE a0 b0 sonuc 0 Label9.Caption 0 islemLabel4.Caption islem hangisayi False Label1.Caption 0 Label2.Caption 0 Label3.Caption 0 Label4.Caption islem noktalia False 223 noktalib False artieksia False artieksib False Command16.SetFocus End Sub Private Sub Command21KeyPress(KeyAscii As Integer) CE Command16.SetFocus End Sub Private Sub Command23Click() x End End Sub Private Sub Command3Click() BS If hangisayi False Then If Len(Label9.Caption) 0 Then If Mid(Label1.Caption, Len(Label1.Caption), 1) . Then noktalia False Label9.Caption (Left(Label9.Caption, Len(Label9.Caption) - 1)) Label1.Caption Label9.Caption End If Else If Len(Label9.Caption) 0 Then If Mid(Label2.Caption, Len(Label2.Caption), 1) . Then noktalib False Label9.Caption (Left(Label9.Caption, Len(Label9.Caption) - 1)) Label2.Caption Label9.Caption End If End If Command16.SetFocus End Sub Private Sub Command4Click() MR If hangisayi False Then Label1.Caption Label8.Caption Label9.Caption Label8.Caption Else Label2.Caption Label8.Caption Label9.Caption Label8.Caption End If Command16.SetFocus End Sub Private Sub Command17Click() M Label8.Caption Label9.Caption Command16.SetFocus End Sub Private Sub Command18Click() MC Label8.Caption 0 Command16.SetFocus End Sub Private Sub FormKeyPress(KeyAscii As Integer) Command16.SetFocus End Sub Private Sub FormLoad() a0 b0 islemsonuc 0 Label9.Caption 0 Label1.Caption 0 Label2.Caption 0 Label8.Caption 0 Label3.Caption 0 224 Label4.Caption islem hangisayi False noktalia False noktalib False artieksia False artieksib False End Sub Basit bir hesap makinesi iin ne ok kod var deil mi Sadece fare ile dmelerin tklanmas ile yapsak daha basit ve ksa olurdu. Fakat fare ile yaplann klavye ile de yaplmas demek iimizi arlatryor. Biraz denerseniz hala hatalar bulabilirsiniz. Formun sandaki etiket labellarla da birinci ve ikinci girilen rakam ve hafzaya alnan rakam gsteriliyor. VBde bir nesneyi kopyaladnz zaman size Zaten bu isme sahip nesne var. Dizi oluturmak ister misiniz diye sorar. Biz de 0 ile 9 arasndaki ve . dmelerini seri oluturduk (Command1). , -, ve dmeleri de seri olacak (Command2). Bu sayede her dmeye kod yazmak yerine tek kod ile ykmz hafiflettik. Hangi dmeye tklandn Command1(Index).Caption gibi bir ifade ile anlyoruz. Command16.SetFocus ile de tm hesaplamalar tuuna ynlendiriyoruz. Genel anlamda rnein, Command21KeyPress(KeyAscii As Integer) tu basm, Command18Click() fare tklamas olaylar anlamna geliyor. Aslnda daha dzgn olmas iin form zerine braktnz nesnelere sayilarCommand, islemCommand, gostergeLabel gibi anlaml isimler verebilirsiniz. 225 3. Listbox (Print ve Input komutlar ile dosyalama) (OrneklerVBListboxProject1.vbp) Resim 3 Listbox rnei Dosyalama ilemlerine bir rnek..txt veritaban oluturmak, kayt silmek, kayt says, kayt gncelleme gibi ilemler yaplabiliyor. ok ayrntl deil, zaten ama basit dosyalama ve liste kutularnn zelliklerini kefetmek. Kayt silme var ama siz de dosya silme eklemek istersiniz herhalde. Eer List1 nesnesinin MultiSelect oklu seimini, extended gelimi yaparsanz kullanc birden fazla deeri Ctrlfare sol tklamas ile seerek Kayt Sil ile bunlar silebilir. Kod olarak son seilenden yukar doru silerseniz seililerin indeks yani sralar deimemi olur. Yani yukardan aaya silmeye alrsak satr numaralar devaml deitii iin istenen deerler silinemez. VERSION 5.00 Begin VB. Form Form1 Appearance 0 Flat BackColor H80000005 Caption Form1 ClientHeight 3900 ClientLeft 1395 ClientTop 1380 ClientWidth 5775 BeginProperty Font Name MS Sans Serif Size 8.25 Charset 162 Weight 700 Underline 0 False Italic 0 False Strikethrough 0 False EndProperty ForeColor H80000008 LinkTopic Form1 PaletteMode 1 UseZOrder ScaleHeight 3900 ScaleWidth 5775 StartUpPosition 2 CenterScreen Begin VBmandButton Command6 Caption Dosya Kapat Height 375 Left 600 TabIndex 9 Top 3240 Width 1575 End Begin VBmandButton Command5 Caption Kapat Height 255 Left 4440 TabIndex 8 Top 120 Width 1095 End Begin VB. TextBox Text2 Height 285 Left 3360 TabIndex 6 Text DosyaAdi Top 2760 Width 1575 End Begin VBmandButton Command4 Appearance 0 Flat Caption Farkl Kaydet Height 375 Left 4200 TabIndex 5 ToolTipText Yeni isimle kayt Top 3240 Width 1365 End 226 Begin VBmandButton Command3 Caption Kaydet Height 375 Left 3120 TabIndex 4 ToolTipText Sadece kayt Top 3240 Width 1000 End Begin VB. ListBox List2 Height 1815 Left 3360 Sorted -1 True TabIndex 3 ToolTipText Dosya listesi (ift Tklayn) Top 480 Width 2055 End Begin VBmandButton Command1 Caption Kayt Sil Height 375 Left 600 TabIndex 2 Top 2760 Width 1575 End Begin VB. TextBox Text1 Height 285 Left 360 TabIndex 1 Top 120 Width 2175 End Begin VB. ListBox List1 Height 1815 Left 360 MultiSelect 2 Extended Sorted -1 True TabIndex 0 Kod ksm: Dim ac As String Private Sub Command1Click() ---program buradan balyor If List1.SelCount 0 Then If List1.SelCount 1 Then List1.RemoveItem List1.ListIndex Text1.TextElse ite geri geri silme ksm For i List1.ListCount - 1 To 0 Step -1 If List1.Selected(i) True Then List1.RemoveItem i End If Next i Text1.TextEnd If End If Label2.Caption List1.ListCount End Sub Private Sub Command3Click() dsy ac List2.txt Open dsy For Output As 1 For i 0 To List1.ListCount - 1 List1.Selected(i) True Print 1, List1.Text SAKLA List1.Selected(i) False Next i Close 1 Label2.Caption List1.ListCount End Sub Private Sub Command4Click() Farkl kaydet Dim bulundu As Boolean bulundu False dosyaadi Text2.Text For i 0 To List2.ListCount - 1 List2.ListIndex i If List2.Text dosyaadi Then MsgBox (Dosya zaten var. ) bulundu True Exit For End If Next i If bulundu False Then List2.AddItem dosyaadi ToolTipText Dosya ierii Top 480 Width 2175 End Begin VB. Label Label3 BackStyle 0 Transparent Caption Kayt Says: Height 255 Left 240 TabIndex 11 Top 2400 Width 1095 End Begin VB. Label Label2 Alignment 2 Center Caption Label2 Height 255 Left 1440 TabIndex 10 Top 2400 Width 975 End Begin VB. Label Label1 BackStyle 0 Transparent Caption Saklanacak Dosya Ad Height 255 Left 3360 TabIndex 7 Top 2400 Width 2175 WordWrap -1 True End End Attribute VBName Form1 Attribute VBGlobalNameSpace False Attribute VBCreatable False Attribute VBPredeclaredId True Attribute VBExposed False 227 dsy ac dosyalar. txt Open dsy For Output As 1 For i 0 To List2.ListCount - 1 List2.ListIndex i Print 1, List2.Text Next i Close 1 dsy ac dosyaadi. txt Open dsy For Output As 1 For i 0 To List1.ListCount - 1 List1.ListIndex i Print 1, List1.Text Next i Close 1 End If Label2.Caption List1.ListCount End Sub Private Sub Command5Click() End End Sub Private Sub Command6Click() Text1.TextList1.Clear Label2.Caption List1.ListCount End Sub Private Sub FormLoad() ac App. Path dsy ac dosyalar. txt Open dsy For Input As 1 Do While EOF(1) 0 Input 1, satir List2.AddItem satir Loop Close 1 Label2.Caption List1.ListCount End Sub Private Sub List1Click() Text1.Text List1.Text End Sub Private Sub List2DblClick() List1.Clear Label2.Caption List1.ListCount dsy ac List2.txt Open dsy For Input As 1 Do While EOF(1) 0 Input 1, satir List1.AddItem satir Loop Close 1 Text2.Text List2 Label2.Caption List1.ListCount If List1.ListCount 0 Then List1.Selected(0) True Text1.Text List1 End Sub Private Sub Text1KeyPress(keyascii As Integer) If keyascii 13 Then List1.AddItem Text1.Text Label2.Caption List1.ListCount End Sub 228 4. Fractal (pset grafik komutu) (OrneklerVBFraktalProject1.vbp) Resim 4 Karmak saylarn grafii VB dilinde de Pset (x, y) komutu ile form zerine nokta basabiliriz. Bu rnekte kullanlan forml, karmak saylar olarak bildiimiz matematik konusuna dayanyor. i ve j deerlerini kullanarak deiik fraktal grntler elde edebilirsiniz. Formun DrawMode zellii kullanlarak noktalarn stili belirlenebiliyor. Blgesel Ayarlarda ondalk simgesi . ise metin kutularn noktal olarak deitirmeniz gerekebilir. u anda , virgl eklinde. almyor diye kzmayn VERSION 5.00 Begin VB. Form Form1 BackColor H00800000 Caption So Fracting ClientHeight 5670 ClientLeft 60 ClientTop 285 ClientWidth 8355 DrawMode 8 Xor Pen DrawStyle 1 Dash FillColor H00FFFF00 FillStyle 0 Solid BeginProperty Font Name Tahoma Size 9 Charset 162 Weight 400 Underline 0 False Italic 0 False Strikethrough 0 False EndProperty ForeColor H00FFFF00 LinkTopic Form1 ScaleHeight 5670 ScaleWidth 8355 StartUpPosition 1 CenterOwner Height 288 Left 6480 TabIndex 18 Text 2 Top 840 Width 852 End Begin VB. VScrollBar VScroll3 Height 375 Left 7320 Max 15 Min 1 TabIndex 17 TabStop 0 False Top 840 Value 2 Width 255 End Begin VB. VScrollBar VScroll2 Height 375 Left 4800 Max 500 Min 1 SmallChange 8 TabIndex 12 TabStop 0 False Top 840 Value 10 Width 255 End Begin VB. VScrollBar VScroll1 Height 375 LargeChange 10 Left 2280 229 Max 500 Min 1 SmallChange 8 TabIndex 11 TabStop 0 False Top 840 Value 20 Width 255 End Begin VB. TextBox Text6 BackColor H80000009 Height 288 Left 3960 TabIndex 8 Text 10 Top 840 Width 852 End Begin VB. TextBox Text5 BackColor H80000009 Height 288 Left 1440 TabIndex 7 Text 20 Top 840 Width 852 End Begin VB. TextBox Text4 BackColor H80000009 Height 288 Left 3120 TabIndex 6 Text -0,11 Top 120 Width 855 End Begin VB. TextBox Text3 BackColor H80000009 Height 288 Left 3120 TabIndex 5 Text 0,6557 Top 480 Width 855 End Begin VBmandButton Command3 BackColor H80000009 Caption 2 Height 372 Left 4320 TabIndex 4 Top 240 Width 852 End Begin VBmandButton Command2 BackColor H80000009 Caption Kapat Height 375 Left 5640 TabIndex 3 Top 240 Width 1335 End Begin VBmandButton Command1 BackColor H80000009 Caption 1 Height 372 Left 1440 TabIndex 2 Top 240 Width 852 End Begin VB. TextBox Text2 ForeColor H00000000 Height 288 Left 360 TabIndex 1 Text 0,11301 Top 480 Width 855 End Begin VB. TextBox Text1 ForeColor H00000000 Height 288 Left 360 TabIndex 0 Text -0,74543 Top 120 Width 855 End Begin VB. Label Label7 BackStyle 0 Transparent Caption Nokta Boyu ForeColor H0000FFFF Height 375 Left 5280 TabIndex 19 Top 840 Width 1335 End Begin VB. Label Label6 BackStyle 0 Transparent Caption j ForeColor H0000FFFF Height 255 Left 2760 TabIndex 16 Top 480 Width 135 End Begin VB. Label Label5 BackStyle 0 Transparent Caption j ForeColor H0000FFFF Height 255 Left 120 TabIndex 15 Top 480 Width 135 End Begin VB. Label Label4 BackStyle 0 Transparent Caption i ForeColor H0000FFFF Height 255 Left 2760 TabIndex 14 Top 120 Width 135 End Begin VB. Label Label3 BackStyle 0 Transparent 230 Caption i ForeColor H0000FFFF Height 255 Left 120 TabIndex 13 Top 120 Width 135 End Begin VB. Label Label2 BackStyle 0 Transparent Caption Hesap Hizi ForeColor H0000FFFF Height 375 Left 2760 TabIndex 10 Top 840 Width 1095 Kod ksm: Option Explicit Dim m, n As Integer Dim i, x0, y0, x, y, z, x1, y1 As Double Private Sub Command1Click() c1 Text1 c2 Text2 car Text5 dig Text6 Form1.DrawWidth Text7 Form1.Refresh For m 0 To 200 x0 -2 m 25 For n 0 To 100 y0 2 - n 25 x x0 y y0 For i 1 To dig x1 x x - y y c1 y1 0.5 x y c2 x x1 y y1 zxxyy If z 2 Then GoTo 10 Next i PSet (Width 2 700 - m car, Height 2 1400 - n car) 10: Next n Next m Beep End Sub Private Sub Command2Click() End End Sub Private Sub Command3Click() Form1.Refresh Form1.DrawWidth Text7 c1 Text4 c2 Text3 car Text5 dig Text6 For m 0 To 200 x0 -2 m 25 For n 0 To 100 y0 2 - n 25 x x0 y y0 For i 1 To dig x1 x x - y y c1 y1 0.5 x y c2 x x1 y y1 zxxyy If z 2 Then GoTo 10 Next i PSet (Width 2 700 - m car, Height 2 1400 - n car) 10: Next n Next m Beep End Sub Private Sub Text5Change() VScroll1.Value Text5 End Sub Private Sub Text6Change() VScroll2.Value Text6 End Sub Private Sub Text7Change() VScroll3.Value Text7 End Sub Private Sub VScroll1Change() Text5.Text VScroll1.Value End Sub Private Sub VScroll2Change() Text6.Text VScroll2.Value End Sub Private Sub VScroll3Change() Text7.Text VScroll3.Value End Sub End Begin VB. Label Label1 BackStyle 0 Transparent Caption znrlk ForeColor H0000FFFF Height 255 Left 240 TabIndex 9 Top 840 Width 1095 End End Attribute VBName Form1 Attribute VBGlobalNameSpace False Attribute VBCreatable False Attribute VBPredeclaredId True Attribute VBExposed False 231 Blm 7 Dier Diller ve almalarm Delphi dili kullanarak yaptm ActiveX rnei, Excel makrolar, Windows Script Host, Okul Ders Program, Yunus, KPro, MyBoard ve JavaScript rnekleri oluturacaz. Elinizdeki basit imkanlar ile (not defteri ve Internet Explorer gibi) bile programlama yapabileceinizi greceksiniz. 1. Delphi ActiveX (web sayfasnda ActiveX) (OrneklerDigerActiveXwebsProj1.dpr) ActiveXi neden Delphi blmne koymadn derseniz bu dosyann websProj1.htm dosyasn altrdnzda, WindowsDownloaded Program Files klasrnde webs Control adnda bir dosya oluturmas. Bu oluan websproj1.ocx artk hemen hemen tm dillere gmlebilir hale geliyor. Asymetrics ToolBook Instructor adl pek kullanmay bilmediim programlama diline, Visual Basice ve benzeri grsel dillere rahatlkla ActiveX Control olarak dahil edilebiliyor. Yani sadece web sitesi iinde almyor, genel bir program haline geliyor. Netscapede ActiveXin almadn da unutmamak gerekir. ActiveX denetimleri VB, Delphi ve VC denetimlerinden farkl deildir. Bir ActiveX denetimini onu kullanan uygulamann iinde grebilir, onunla kapsayc uygulama penceresinde dorudan iletiim kurabilirsiniz. Tipik Windows denetimleri mesaj tabanl bir arabirim kullanr, VBX denetimleri zellik ve olaylar kullanr, OLE Automation nesneleri zellik ve yntemleri kullanr, ActiveX denetimleri de zellik, yntem ve olaylar kullanr. Bu eleman ayn zamanda Delphi bileenlerinde de bulunur. ActiveX denetimleri ile dorudan etkileim kurulabilirken, OLE denetimlere ift tklanarak (inside out activation iten da etkinletirme) aktif edilerek kullanlr. Delphide ViewType Library komutu ile oluturduumuz ActiveX denetiminin zellikleri grebiliriz. Aslnda alan bu pencerede websProj1.tlb dosyasn gryoruz..tlb Type Library tip ktphanesi anlamna gelir. Bizim yaptmz Delphideki projede unlar var: Resim 1 websProj formu procedure Twebs. Button1Click(Sender: TObject) begin label1.Caption:edit1.text end procedure Twebs. Timer1Timer(Sender: TObject) begin StaticText1.Caption:timetostr(time) DateToStr(date) end Run dmesi Timer1in ilevi 232 procedure Twebs. Button2Click(Sender: TObject) begin About1.ShowwebsAbout end procedure Twebs. Button3Click(Sender: TObject) begin close end About dmesi Close dmesi Delphi5in Enterprise srmnde (baka bir srmde bu admlar farkl yntemlerle yapabilirsiniz) ActiveX adm adm yle oluturuluyor: 1. FileNew. den ActiveX sekmesinden ActiveForm denilir. 2. kan pencere yle doldurulur: (Include About Box ile hakknda kutusunu ekleyebilirsiniz) Resim 2 ActiveForm Sihirbaz 3. ProjectWeb Deployment deneyebilirsiniz) Options doldurulur: (Use CAB file compression ile sktrmay Resim 3 Web yaymlama sihirbaz 4. Formun zerine birka metin kutusu ve dme atabilirsiniz. 5. RunRegister ActiveX Server komutu ile ActiveXDenemeProj1.ocx dosyamz kaytl hale gelir. 6. ProjectWeb Deploy komutu ile c:BelgelerimActivernek klasrne iki dosya oluturulur. ActiveXDenemeProj1.htm ve ActiveXDenemeProj1.ocx. 233 7. ActiveXDenemeProj1.htmye kk bir mdahale etmemiz gerek. Dosyamz Internet Explorerda an, bo bir yere sa tklayp Kayna Grntle yapn. Aadaki ksmdaki dizin ismini silerek klasr deise bile ActiveXDenemeProj1.htmsinin almasn salayabilirsiniz. Eer internette kullanmak isterseniz yani. codebaseActiveXDenemeProj1.ocxversion1,0,0,0 Visual Basici ap unu deneyelim: Resim 4 Visual Basicde nesne ekleme ToolBoxa sa tklayp Components. komutunu verince listede websProj1 Librarysinin veya sizin deneme iin yaptnz ActiveXDenemeProj1 Librarysinin de bulunduunu grrsnz. Nesneleri ekleyin ve formun zerine birini atalm. Sonu: Resim 5 Srpriz, Delphi VB iinde, ToolBoxtaki nesnemize dikkat. Tabii ki tam tersini de yapabilirsiniz. VBde hazrlanm bir. ocx Delphi iine gmlebilir. sterseniz Word veya Excelde de VBA (Visual Basic for Applications)i aarak makronuza bu denetimi yani nesneyi ekleyebilirsiniz. 234 2. Excel yaziyla. xls (rakam yazya evirme) (OrneklerDigerExcelyaziyla. xls) Resim 6 Yazyla makromuz Bu Excel makrosu ile bir hcre iinde yaziyla(12345) gibi komut vererek, onikibinyzkrkbe gibi yaz halini elde edebiliriz. Ayn mantkla roma rakamlar, ngilizce saylar yazma yaplabilir. Makrolu bu dosyalar aarken kan uyarya Enable Macros diyerek gein. ToolsMacroVisual Basic Editor ile VBA (Visual Basic for Applications) alr. Buradaki modl iindeki kodumuz:Yaziyla Macro Macro recorded 24.10.1997 by TarkDim b(9) Dim y(9) Dim m(4) Dim v(15) Dim c(3) Function yaziyla(sayi) b(0)b(1) bir b(2) iki b(3)b(4) drt b(5) be b(6) alt b(7) yedi b(8) sekiz b(9) dokuz y(0)y(1) on y(2) yirmi y(3) otuz y(4) krk y(5) elli y(6) atm y(7) yetmi y(8) seksen y(9) doksan m(0) trilyon m(1) milyar m(2) milyon m(3) bin m(4)a Str(sayi) If Left(a, 1) Then poz 1 Else poz 0 a Right(a, Len(a) - 1) For x 1 To Len(a) 235 If (Asc(Mid(a, x, 1)) Asc(9)) Or (Asc(Mid(a, x, 1)) 15 Then GoTo hata a String(15 - Len(a), 0) a For x 1 To 15 v(x) Val(Mid(a, x, 1)) Next x sFor x 0 To 4 c(1) v((x 3) 1) c(2) v((x 3) 2) c(3) v((x 3) 3) If c(1) 0 Then eIf c(1) 1 Then e yz If c(1) 1 Then e b(c(1)) yz e e y(c(2)) b(c(3)) If e Then e e m(x) If (x 3) And (e birbin) Then e bin s s e Next x If sThen s sfr If poz 0 Then s eksi s yaziyla s GoTo tamam hata: yaziylahata tamam: End Function Kendi makronuzu yazmak isterseniz, bo bir Excel kitabnda ToolsMacroVisual Basic Editor ile VBAy aarak, nce InsertModule komutu verin. stteki kodlar buraya yazabilirsiniz. Sonra Excele geri dnerek yani VByi kapatarak, bir hcrede deneme yapabilirsiniz. Dikkat ederseniz Function yaziyla(sayi) eklinde olan makromuz metin bir deer dndryor. yaziyla(2001) yada bilgisayarn kafasn kartrabilecek byk rakamlar girin. Hatalar grmeye aln. Virgll rakam yasak, negatif say da deneyebilirsiniz. 236 3. Excel dosyalistesi. xls (dosya arama) (OrneklerDigerExcel dosyalistesi. xls) Resim 7 Dosya listesini veren makromuz Aadaki rnekte de bir prosedr olarak belli bir klasr ve iindeki alt klasrlerindeki belli dosyalar (yani recursive kendini aran, rikrsiv diye okunur) listeliyor: Dim ilkhucre, sonhucre, dosyasayisi As Integer Sub listele() Dim dtipi, klasor klasor InputBox(Klasr Ad, Neresi, c:) If klasorThen End dtipi InputBox(Listelenecek dosya tr, Tr,.doc) ActiveCell. Offset(0, 0) klasoriindeki tmdtipilisteleniyor. ActiveCell. Offset(1, 0) Klasor Ad ActiveCell. Offset(1, 1) Dosya Ad Call listeal(klasor, dtipi, True) ActiveCell. Offset(dosyasayisi 2, 0) Liste sonu. dosyasayisiadet dosya var. End End Sub Sub listeal(klasor, dtipi, alt) Dim klasorler(), i, dosya, yol, attr, ks Static r On Error Resume Next If Right(klasor, 1) Then klasor klasorIf dtipiThen End dosya Dir(klasor dtipi, vbNormal) Do While dosya yol klasor dosya ActiveCell. Offset(r 2, 0) klasor ActiveCell. Offset(r 2, 1) dosya dosyasayisi dosyasayisi 1 rr1 dosya Dir() Loop 237 If alt False Then Exit Sub dosya Dir(klasor ., vbDirectory) Do While dosya attr 0 attr GetAttr(klasor dosya) If dosya . And dosya .. And (attr And vbDirectory) 0 Then ks ks 1 ReDim Preserve klasorler(1 To ks) klasorler(ks) dosya End If dosya Dir() Loop For i 1 To ks Call listeal(klasor klasorler(i) , dtipi, alt) Next i End Sub Farenin bulunduu hcreden itibaren, bir klasrdeki belli uzantdaki dosya adlarn listeleyip, liste sonuna ka dosya olduunu yazan bir makro yaptk. Bu makro kodlarn alp Delphi rneklerindeki Meraba1.0 ekran koruyucumuzda ve Gezgen rneklerinde kullanabiliriz. Delphideki Dosyalistesi rneini de bu makroya bakarak hazrladm. Birka konu ilerde de, biraz abarttk ama, WSH ile listele. vbs adnda bir rneimiz daha var. 238 4. Excel userform. xls (kullanc tanml formlar) (OrneklerDigerExceluserform. xls) Kendi formunuzu yapmak isterseniz Excel buna da izin veriyor. Yeni bir Excel kitabnda ToolsMacroVisual Basic Editor ile VBAy aarak, nce InsertUserForm komutu verin. Aynen Visual Basicdeki gibi bir form olduunu greceksiniz. Office97de VB 5.0, Office 2000de VB 6.0, OfficeXPde VB 6.3 kullanlarak makro yaplabiliyor. Userform rneimiz ok basit. Ama forma hcre deerleri almak, formdan sayfamza deer yollamak. RefEdit1 CommandButton1 TextBox1 ComboBox1 ListBox1 Resim 8 Kullanc tanml form ToolBoxa sa tklayp Additional Controls diyerek RefEdit. Ctrl nesnesini ekleyin. Bununla hcre aral seme nesnesini formumuza ekleyebileceiz. Private Sub ComboBox1Click() Sayfa1.Cells(2, 4) ComboBox1.Text End Sub Private Sub CommandButton1Click() TextBox1.Text Sayfa1.Cells(2, 1) TextBox2.Text Sayfa1.Cells(2, 2) ComboBox1.Clear ComboBox1.AddItem (Sayfa1.Cells(2, 1)) ComboBox1.AddItem (Sayfa1.Cells(2, 2)) ComboBox1.ListIndex 0 ListBox1.Clear ListBox1.AddItem (Sayfa1.Cells(2, 1)) ListBox1.AddItem (Sayfa1.Cells(2, 2)) If RefEdit1.Text Then Worksheets(1).Range(RefEdit1.Text).Value TextBox3.Text End Sub Private Sub CommandButton2Click() Unload UserForm1 End Sub Private Sub ListBox1DblClick(ByVal Cancel As MSForms. ReturnBoolean) Sayfa1.Cells(2, 3) ListBox1.Text End Sub Bu arada Excel sayfamz zerine bir dme koyup bununla formumuzu ayoruz. Bunun iin Sayfa1, Sayfa2 diye sayfa isimlerinin bulunduu sekmelere sa tklayp View Code diyerek komutlarmz yazabiliriz. Bundan nce sayfa zerine bir dme atalm. Ara ubuklarna sa tklayp Forms ve Visual Basic ara ubuklarnn kmasn salayn. Button nesnesini atn, bylece CommandButton1i oluturdunuz. 239 (Exit) Design Mode ile tasarmda kalabilir veya kabilirsiniz. Resim 9 Dme ekleme Oluturduumuz dmeye Design Mode aktif iken ift tklayp unu yazn: Private Sub CommandButton1Click() UserForm1.Show End Sub Eer byle makro yapmak zor geliyor ise bir ksa yol daha var: Excel kendiliinden zaten makro kaydediyor. ToolsMacrosRecord New Macro. ile sk yaptnz fare ve klavye hareketlerini tek bir komut haline getirip, ara ubuuna bunu dme olarak ekleyebilirsiniz. Tekrar ToolsMacrosMacros. Edit diyerek VB dzenleyicisi ile mdahalelerde bulanabilirsiniz. Office yelerinin hepsi makro tabanldr, men ve ara ubuundaki komutlar aslnda Excel veya Wordn yazlm motoruna makro sinyallerini yollayan arabirimdir. yleyse VBA aslnda bir eklenti deil Office paket programnn ayakta durmasn salayan elemandr. Sk sk Excel kullanyorsanz kendi hedefinize, zevkinize gre makrolar oluturup ilerinizi hzlandrabilirsiniz. Tabii Excel, Word, PowerPoint ve Accessin makro komutlar birbirinden farkldr. Yani VBA Office yeleri iin ayr ayr davranr. Word makro kodlarn Excelde kullanmak genellikle mmkn olmaz. tarihgster. xls ve tarihformu. xls de bu rnee benzeyen UserFormdan alma sayfasna tarih deeri aktaran makrodur. A1 yazan yere A1:C4, hatta A1:C4, F3, G6 gibi koordinatlar belirtebilirsiniz. Calendar takvim tklannca belirlenen aralktaki hcrelere tarih aktarlyor. Resim 10 Kullanc tanml form tarihgoster. xls 240 5. Excel ile tarih dkm (modl kullanm) (OrneklerDigerExceltarihdokumu. xls) Resim 11 Excelde tarih denetimi Okulda retmenlerin ders saatlerinin tutulduu izelgede, belli bayram gnleri ve tatil gnlerini X ile dolduran bir programa ihtiya duyulmutu. Bu program ayn zamanda takvim yapmak iin de kullanlabilir. Kolay eriim iin gunlistele() makrosunu ara ubuuna da ekleyebiliriz. Alt F11 ksayolu ile Visual Basic Editor ap aadaki kodlar yaznz, daha sonra da ara ubuklarna sa tklayp Customize. komutu ile Commands sekmesindeki MacrosCustom Button ksmndan srkle brak ile dme oluturabiliriz. Yeni dmeye sa tklayp Assign Macro. ile gunlistele() makrosunu atayabiliriz. stediiniz kadar eleman ve tatil gn listelenebilir. Ka adet olaca ile ilgili hcrelere deer verilerek yaplabiliyor. Ay iin rakam girmek yerine ComboBox nesnesi de kullanlabiliyor. 241 Dim tarih As String Dim tarih1 As String Dim tarih2 As String Dim son, i, j, k As Integer Sub gunlistele() resetleme ve hazrlk For i 1 To 31 Sheet1.Cells(5, i 2).Interior. Color RGB(0, 230, 255) i rengi sfrlanyor Next i For i 1 To 31 For j 6 To 11 Sheet1.Cells(j, i 2)iki ift trnak ile silme ilemi, burada belirli bir forml de olabilirdi Sheet1.Cells(j, i 2).Interior. Color RGB(0, 230, 200) Next j, i tarih1 1 Sheet1.Cells(2, 3) Sheet1.Cells(3, 3) tarih2 1 (Sheet1.Cells(2, 3) 1) Sheet1.Cells(3, 3) son DateDiff(d, tarih2, tarih1) If son copy con kopyala. bat echo off cls rem Bakalm nasl olacak echo Kopyalar 2001 (c) if 1 goto hata if 2 goto hata echo lem 1 dosyas, 2: srcsne kopyalanacaktr. echo Emin misiniz (CtrC ile k) pause if not exist 2:1 goto guvenli echo 2:1 dosyas zaten var, zerine yazlmamas iin CtrlC yapn pause :guvenli copy 1 2:1 echo 1 kopyaland goto son :hata echo Kullanm kopyala :son CtrlZ 1 file(s) copied c:kopyala deneme. doc d Kopyalar 2001 (c) lem deneme. doc dosyas, d: srcsne kopyalanacaktr. Emin misiniz (CtrC ile k) Press any key to continue. d:deneme. doc dosyas zaten var, zerine yazlmamas iin CtrlC yapn Press any key to continue. 1 file(s) copied deneme. doc kopyaland c: Eer bu tip bir. bat dosyay kullanl bulup, herhangi bir yerde de bu komutu vermek isterseniz kopyala. bat dosyasn WindowsCommand dizinine kopyalayn Bunun sebebi sistemde tanmlanm path yollardan birinin de WindowsCommand olmas. Artk istediiniz src veya dizinde kopyala . a gibi bir komut 246 verebilirsiniz. Hatta Balataltr. kopyala yedek. a gibi de komut verebilirsiniz. Eliniz src adndan sonra : yazmaya alm ise birka satr dzelterek bu destei de verebilirsiniz. Pascal dilinde de buna benzer bir program yapabiliriz: program copyfile uses crt var sourcefile, destfile:file recReads: word buffer: array 1..1000 of byte begin clrscr if paramcount 2 then begin Writeln (Kopyala 2001 (C)) Write (Kullanim. kopyala kaynakdosyaadi hedefdosyaadi) halt end assign (sourcefile, paramstr(1)) reset (sourcefile,1) if ioresult 0 then begin write (paramstr(1), bulunamadi. ) halt end assign (destfile, paramstr(2)) rewrite (destfile, 1) writeln (Her 1000 Byte anlamindadir. ) blockread (sourcefile, buffer, sizeof(buffer), recReads) while recReads 0 do begin write () blockwrite (destfile, buffer, recReads) blockread (sourcefile, buffer, sizeof(buffer), recReads) end close (sourcefile) close (destfile) writelnwriteln(Kopyalama tamamlandi.) end. Kopyala 2001 (C) Kullanm. kopyala kaynakdosyaadi hedefdosyaadi C: kopyala c:himem. sys d:yedek. sys Her 1000 Byte anlamindadir. Kopyalama tamamlandi. C: Kaynak ve hedef dosya ad parametre olarak komut isteminde yazlyor. rnekteki gibi isim deitirmek iin kullanlan ren komutuna benzer de kullanabiliriz. OrneklerPascalGrafplasma. pas rneinde de ayn dosyalama komutlar, dardan resim dosyas amak amac ile kullanlm. Pek MS-DOSdan bahsetmek istemezdim ama birka ipucu verebilirim herhalde: c:dir . Sadece klasr adlarn listeler. (uzantsz dosyalar) c:dir ad. Sadece klasr adlarn listeler. c:dir a-d. Sadece dosya adlarn listeler. C:subst z: c:belgelerim: stediiniz klasr src gibi yapabilirsiniz c:copy con prn. Ne yazarsanz printer yazcya karlr. c:doskey dap dir onp. dap isminde makro tanmlyoruz. c:dap . Dosya ve dizinler ad srasnda pause aralk verilerek gsterilir. doskey listesini grmek iin F7 tuuna basnz. Makrolarnz grmek iin doskey macros deyin. inde bulunduunuz dizin. Sadece simgesel gsterim. Bir st dizin, sadece kk dizinde grntlenmez. 247 Aslnda hep yapmak istediim ama bir trl hala yapamadm birden fazla Windows kurulu olan makinede aralarnda gei yapabilmek, yani boot menu oluturmak. XP boot mensn diske otomatik olarak kurulurken bulatryor. Eer Win98 al disketi oluturmusanz, bu disketteki config. sysyi de inceleyebilirsiniz. Hatta bu diskette RAMDISK oluturabilmek iin gerekli komutar da bulabilirsiniz. RAMDISK sayesinde RAMinizin bir ksmn src olarak atayabilirsiniz. Eer en azndan 512 MB RAM sahibiyseniz, swap dosyanz RAM zerine ynlendirebilmek PCnizi olduka hzlandrabilir. config. sys iindekiler: MENU MENUITEM Windows, Windows 98 MENUITEM WindowsOld, Windows 98 Yedek MENUcolor 15,0 MENUdefault Windows, 10 Windows DEVICEC:WINDOWSHIMEM. SYS DEVICEC:WINDOWSEMM386.EXE deviceC:WINDOWSCOMMANDdisplay. sys con(ega,,1) Country090,857,C:WINDOWSCOMMANDcountry. sys Windowsold DEVICEC:yedekWINHIMEM. SYS DEVICEC:yedekWINEMM386.EXE deviceC:yedekWINCOMMANDdisplay. sys con(ega,,1) Country090,857,C:yedekwiNCOMMANDcountry. sys autoexec. bat iindekiler: (Millenium iin ise c:WindowsCommandcmdinit. bat iine yazlabilir) echo off prompt pg goto config :Windows SET windirC:WINDOWS SET winbootdirC:WINDOWS SET TEMPC:TEMP goto end :Windowsold SET windirC:yedekWIN SET winbootdirC:yedeWIN SET TEMPC:TEMP goto end :end msdos. sys iindeki bir iki satr ile manuel el ile u satrlar gncelleyerek yapabiliyorum gibi. Ama alta men kmas diye bir ey yok tabii. DOSdan al yapp, Windows ad deitirilerek dier yedek Windowsun yeri belirtilebilir. Uzun ve sakncal bir yntem, Program Files iindeki baz programlar almayabilir. Paths WinDirC:Windows WinBootDirC:Windows HostWinBootDrvC burasna c:yedekWin diyebilirsiniz. burasna c:yedekWin diyebilirsiniz. Eer sk kullandmz Control Panel Denetim Masas elerine ksayol yapmak veya kendi programmzdan onlar amak istersek u ekilde kullanabiliriz: control appwiz. cpl control appwiz. cpl. 2 control appwiz. cpl. 3 control sysdm. cpl control desk. cpl,,3 control main. cpl, yazclar program ekle kaldr alr Windows kur mens balang disketi oluturma mens sistem bilgisi Ekran ayarlar alr Yazclar klasr alr (yazclar yerine printers olabilir) 248.cpl dosyalar WindowsSystem dizininde bulabilirsiniz. zerlerine sa tklayp Denetim Masas ile a da diyebilirsiniz veya Balataltr. diyerek stteki rnekleri deneyebilirsiniz. Aadaki gibi bir deneme. bat dosyas oluturabiliriz. Buradaki w ile ilem bitmeden dierine geilmemesi salanyor: start w defrag all start w scandisk autofix MS-DOS un temel eksikleri ok kullancl multi user ve ok ili multi tasking olmamas. Sadece PC personal computer mant zerine kurulu olan DOS, buna ramen dnya zerinde en ok kullanlan iletim sistemlerinden biri olmutur. lk kez 1968de retilen Unix ise bize internet ve hzl bir a ortam hediye etmitir. Zaten ou www (http), ftp (file transfer protocol) ve SMTP (electronic mail) sunucusu Unixdir. IBM OS2 ve NTden pek bahsetmek istemiyorum nedense. Microsoft Windows sayesinde, dnsenize yzlerce megahertz ilemcimiz, yzlerce megabyte RAM ve gigabytelarca sabit diskimizi yaz yazmak, oyun oynamak, internete balanmak iin kullanyoruz, hem de bu performans maksimum kullanamadan. Zaten eminim merakl kullanclarn bilgisayarnda muhakkak sadece Windows deil, Linux, BeOS gibi ikinci bir iletim sistemi de vardr Marsa (kt anlamda deil) gitmi gibi hissetmek istiyorsanz, Microsoft iletim sistemleri dndakileri de muhakkak deneyin. Unixde ise performans dmeden bilgisayarn kaynaklar birden fazla kullanc iin paylatrlabiliyor. Ayn bilgisayarda birok terminal ekran (virtual machine sanal makine) birbirinden bamsz olarak fonksiyon tular ile alabilir. Ticari bir amala retilmeyen, donanmdan bamsz bu iletim sistemi zerinde almak zere birok program yazlmtr. Unix Apple, Atari, Amiga gibi 68000 tabanl, Sun Sparc, Alpha, MIPS, PowerPC ve tabii ki intel ilemcili bilgisayarlara kurulabilir. MS-DOS ise sadece intel (Cyrix ve AMD kmsenmemeli) zerine kurulabilir. Ancak NT ve Windows 2000de birden fazla ilemci kullanlabiliyorken, Linux iletim sisteminin doal olarak oklu ilemci destei vardr. Uzun dosya isimleri de zaten Linuxda varken, Win95den itibaren MS-DOS 8.3 formatn alarak kullanma almtr. Dosya ve klasr eriim haklar FAT iin imkansz iken, ancak NT ile NTFS new technology file system ile bu imkan elde edilmitir. Linux FAT zerine de kurulabiliyor, kendi disk sistemi extended filesystem yani reiserfs, ext, ext2 ve ext3dr. MS-DOS uygulamalar kontrolsz olarak donanma komut yollayabilirken, Linuxda yazlm ile donanm arasnda kernel interface ekirdek arabirimi bulunur. NTde kullanc modu ve kernel modu ile daha ok kararl sistem elde edilmitir. Swap yani geici bellek alan iin Linux ayr bir src oluturuyor. Oysa Windows boyu deiebilen win386.swp veya pagefile. sys dosyasn kullanyor. Tabii ille de bu ekilde kullanmak zorunda deilsiniz. NT iletim sisteminde birden fazla disk daha performansl veya kapasiteli kullanlmas amac ile, bo alanlarn birletirilip src oluturulduu volume set hacim kmesi, her diskten ayn byklkte blm alnp tek src oluturulduu stripe set erit kmesi, birbiri ile e sabit disklerin mirror set ayna kmesi oluturulmas gibi RAID Redundant Array of Independent Inexpensive Disks (Fazladan bamsz ucuz disk dizisi) imkanlar vardr. MOD Magneto Optik Disk baz Machintosh sistemleri zerinde standart olarak gelir. Bu disklere de CD gibi optik, yani lazer ile veri yazma ve okuma, manyetik bir yzey zerinde gerekletirilir, fakat CDden farkl olarak tekrar yazlabilirler. Yani sabit disk ve compact disk teknolojilerinin birletirilmesi ile oluan kartlabilir bir yedekleme ortamdr. Flash RAMler ise genellikle fotoraf makineleri gibi portatif aletlerin veri kayd iin kullanlr. Birok firma birbiri ile uyumlu olmayan byklk ve kapasitede bu RAMlerden retilmilerdir. Eriim sreleri nanosaniye seviyesindedir. Unix yeni kan teknolojilere uyum salayabiliyor. SCSI (skazi diye okunur), AGP ekran kart veri yolu, USB seri port ve UDMA diskler gibi destekleri bulunuyor. Bu arada SCSI ile yazc, disk, tarayc gibi sekiz donanm paras paralel olarak alabilir. Tek disketlik Unixlerin yannda bir ok CD ve DVDden oluan Unix eidi vardr. Grafik arabirime ilk Macintosh, sonra Windows ve X Window ile de Unix tanmtr. telnet (Telecommunications Network Telekomnikasyon A) ile baka bilgisayara balanarak bu bilgisayar da kendi bilgisayarnz gibi kullanabilirsiniz. ekirdeinizi derleyerek daha hzl alan Unix elde edebilirsiniz. nternet sayesinde Unix donanm srclerinizi bularak onlar gncelleyebilirsiniz. Modem, ses kart, ekran kart, a kart, yazc gibi donanmlarnza destek verip vermediini internetten aratrabilirsiniz. Birden fazla ethernet a kart da destekliyor. Unixde program nasl kurulur, uninstall silinir, defrag (var m ki), scandisk nasl yaplr, donanm ayarlar, kesmeler, donanm ekle nasl yaplr, Trke karakter problemi nasl zlr, OpenGL (oupn ci el diye okunur) var m, program nasl yazlr, ne iime yarar bu Unix gibi sorular bana sormayn. CDdeki DigerTutorialLinux-HOWTOs. tar. gz ile bu gibi sorularnza cevap bulabilirsiniz. Sevdiim halde ben de pek deneyimli deilim. Kusura bakmayn Bu arada WinME gibi DOS komut isteminde alamayan bir iletim sisteminiz ve C srcsnden farkl bir yerde olan Windowsunuz varsa kurulumda zorlanabilirsiniz. Yine de peini brakmayn. Piman olmazsnz Alta LILO : diye kalmsanz telalanmayn. Al disketi ile bir fdisk mbr (mbr Master Boot Record) yeterli. Fazla ayrntya girmeyeceim, bunun yeri bu kitap deil. 249 9. JavaScript ile dosyalama (rasgele yaz kaydrlmas) (OrneklerDigerJavaana. htm) Hedefimiz bir. txt dosyadan web sayfas iinde rasgele kayan yazlar oluturmak. Ayrca bilgisayarnzdaki disk ve dosya bilgileri de alnabiliyor. Sayfa ilk alrken sorulan ActiveX gvenlik sorusuna Evet diyerek gememiz gerekiyor. Disk ile ilgili iki ilem yapld iin st ste iki kere bu soru soruluyor. Biraz can skyor gibi olsa da nemli bir soruturmadr. nternette dolarken byle bir soruya Evet derseniz diskinize zarar veren komutlara da izin vermi olursunuz. ActiveX komut ve nesneleri gvenlik ynnden ok zayftrlar. Ayrca Internet Explorer web taraycs iin gvenlik ayarlarndan ActiveX ve JavaScript izinlerini bu rnekler iin simdilik amak gerekiyor. Deneyim iin yaptmz basit dosyalama iin bu yntemi tavsiye etmem, onun yerine cookie erez kullanm daha rahat ve kolay. Resim 14 lk al sorusu, ana. htm sayfas ve yan bilgiler ana. htm iinde alt. htm dosya iframe (in line frame) i ereve (Netscape bu komutu desteklemiyor) iinde gsteriliyor. Bu sebeple iki. htm dosya oluturuyoruz. JavaScript C (i deyimi gibi), Pascal (var deiken tanmlama ksm gibi) ile Basic (Array deyimi ile dizi tanmlamak gibi) dillerinin karm gibi gzkyor. Rahata deiken tanmlamak, istediiniz yere kod yazmak, grsel diller kadar gl olan sayfa zerindeki nesnelere 250 ulaabilmek, bilgisayar kaynaklarn neredeyse tam kullanabilmek gibi birok ho zellik vardr. Eer bilgisayarnzda Microsoft Visual Studionun bir esi kurulu ise web sayfas iinde yaptnz hatalar giderebilir, adm adm izleyebilir, komutlar hakknda bilgi alabilir, hem tasarm hem de n izleme yapabilirsiniz. Internet Explorer iinden GrnmHata AyklaycsA komutu ile Microsoft Development Environment 6.0 programna ulaabilirsiniz. Bu program Office 2000 CDsindeki Add or Remove FeaturesOffice ToolsHTML Source Editing ile elde edebilirsiniz. ana. htm ve alt. htmye ait kodlar: JScript Sadece i ksm belli saniyede tazelenecektir. Disk Bilgisi 2 GB st bilgiler tam gsterilemiyor. Hazr olmayan veya gerekte var olmayan src ve dizinlere bir nlem alnmad. 252 alt. htmnin kodlar. c:yazi. txt veri dosyas yok ise oluturuluyor. Yeni Belge 253 Cookie ise WindowsCookies klasrnde saklanan metin tabanl boyutu kk, kullancnn gezdii sitelerin geici bilgilerinin sakland dosyalardr. Web sitelerini dolarken sadece insanlar ana bilgisayarlardan bilgi ekmezler, sunucu da istemciden bilgi talep edebilir. Her balantda bu bilgilerin sabit kalabilmesi bu kk metin dosyalar sayesinde olur. Netscape firmasnn etkileim iin kard bu sistem ile sitelerin davran kullancnn zelliklerine gre deiebiliyor. Baka siteler yetkileri olmadan dier cookieleri okuyamazlar. Internet Explorer 6.0 ve zeri web tarayclar bir siteye girildiinde kendiliklerinden cookie kontrol yapabiliyorlar. Bunu durum ubuundan anlayabilirsiniz. Bylece zararl cookie tutulmas nleniyor. Adaware adl bir programla da reklam kaynakl bilgi szdran dosyalarn silinmesini salayabilirsiniz. Spybot SearchDestroy program da Trke, bedava ve internetten gncellenebiliyor..asp dosyalarmz iinde bu bilgileri yazma ve okuma komutlarn kullanabiliriz. OrneklerDigerJava cookie. html ile JavaScript kullanarak cookie, yanda kayan men, fare takipcisi gibi deiik numaralar elde ediyoruz. JavaScript modler fakat VBScript kullanan. asp daha basit. Kopyala yaptr ile script ksmlarn kendi web sayfalarnza ekleyebilirsiniz. OrneklerDigerJavahesapmakinesi. htm ile de yine Javann gc belli oluyor. Bir cookienin en fazla 4 KB olabileceini dnerek u ekilde deerler kaydebilir: Ayn deiken adlarn kullanarak, tekrar okumak iin de yle yapabiliriz: Eer yapsaydk tm deikenler ekrana gelirdi: CDeneme3BDeneme2ADeneme1 ekrana sadece tek bilgi gelir: Deneme 1 254 10. JavaScript ve Flash (rasgele yaz kaydrlmas) (OrneklerDigerFlashana. htm) stteki kayan yaz rneinin Macromedia Flash ile benzerini oluturabiliriz. Sonuta flash. fla, flash. swf, ana. htm, alt. htm ve yazi2.txt adl dosyalar elde edeceiz. alt. htm gibi bir sayfaya asl kodlar yazyoruz. Fakat dorudan olarak ana sayfaya yapmaymzn bir nedeni de, her tazelemede sorulan gvenlik sorgulamasn, ilk alta sorulan tek soruya indirmektir. Bu arada stteki rnekteki yazi. txt iindeki artk kullanamayacamz HTML kodlarn kaldrp, yazi2.txt gibi ikinci bir yaz dosyas yapmak zorunda kalyoruz. nk Flash metin iindeki HTML kodlarn yorumlamayp aynen yazyor. Zaten Flashn efektleri HTMLden ok daha yetenekli. nce Flash program ile yukar doru kayan bir yaz hazrlyoruz. Bir Text nesnesini sahneye ekliyoruz. Character karakter zelliklerini Arial Tur, 21 punto, kaln ve sar renk yapp, Text Options ksmnda da Dynamic Text (dinamik yaz), Multiline (ok satrl) ve Wordwrap (kelime kaydr) zelliklerini deitiriyoruz. Resimdeki gibi dzenlemeleri yapabilirsiniz. Variable deiken adna tekst demeyi unutmayn. JavaScript ile bu deikene deer yollayacaz. Resim 15 Flash tasarm an ve sonu ekran 255 Yaz ksm hazrlannca ilk frame ereve (zaman izgisinde 1 numaral ereve) zerine sa tklayp Create Motion Tween komutu veriyoruz. Son ereve iin layer1 zerinde 30ncu kare tklanp F6 tuu ile keyframe anahtar ereve ekliyoruz. Yaznn yukar doru gitmesi iin bu son erevede yazy klavyeden Shift tuuna (yanlara kaymamas iin) basarken yukar tayn. Yine 30ncu ereve sa tklanp Action hareket kod ksmna gotoAndPlay (1) diyoruz. Aslnda zaten kendiliinden otomatik olarak loop tekrar ayn hareketleri yapyor. Bunu yapmasanz da tekrar baa dner demek istiyorum. Resim 16 Motion Tween ve Action Script yazmak Resim 15de grebileceiniz 8.0 fps yazsnn olduu yere ift tklayp 8 fps frames per second (saniyedeki kare says), Width 200 px pixel, Height 370 px yaparak hz ve boyut ayarlarmz yapabiliriz. Ayn mendeki Background Color ile mavi gibi bir renk seebilirsiniz, fakat arka plan rengini alt. htm dosyasnda deitiriyoruz. CtrlEnter tuar ile hem flash. swf dosyamz elde ediyor, hem de nizleme yapabiliyoruz. Sadece Enter ile de tasarm ve almay ayn anda grebiliriz. FilePublish Settings. ile. htm ve. swf seili olursa, FilePublish ShiftF12 dediimizde alt. htm iinde kullanacamz tag etiket kodlarnn hazr olarak gelmesini salayabiliriz. ana. htm ve alt. htm kodlar u ekilde not defteri ile hazrlanabilir: JavaScript ve Flash Sadece i ksm belli saniyede tazelenecektir. 256 alt. htm: JavaScript ve Flash 257 window. document. flash. SetVariable(tekst, arraymyazi) komutu sayesinde Flash iindeki herhangi bir nesneye deer atabiliyoruz. flash kelimesi bizim oluturduumuz flash. swf dosyasnn addr ve alt. htmnin st satrlarndaki ksmndaki yerde id identification (kimlik) ve embed ksmnda da name ad ile bunu belirtmeliyiz. Flash iine komut yollamann yannda getURL() ile darya yani Internet Explorer penceresine de komutlar yollayabiliriz. Bu web sayfas iindeki bir JavaScript fonksiyonu da olabilir. Nesne veya dmenin Action komutlarna u rnekleri yazabilirsiniz: getURL (JavaScript:dosyaAc()) Bir dmenin kod ksmna unlar yazlarak web sayfas kapatlabilir: on (release) Baka bir dmenin kod ksmna unlar yazlarak ayr bir pencere alabilir: on (release) Flash iindeki baka bir nesnenin zelliklerine u ekilde ulalabilir: setProperty (nesneadi, x, 250) nesneadi nin x koordinat deitirilir setProperty (nesneadi, x, getProperty(nesneadi , x)-artim) Verilen hedefte(bir movie clip olabilir) rnein pop menler gibi kontroller yapmak iin: tellTarget (hedefadi) 258 11. JavaScript ile arama (.html iinde arama) (OrneklerDigerJavaarama. htm) Sayfa iinde belli kelimeyi aramak ve ka adet olduunu bulmak iin bu kodlar kullanabiliriz. Netscape iin farkl komut kullanm gerekebilir. Netscapee zel kod ile uramama nedenim dnyada byk bir ounluun bu browser - taraycy kullanmamas. u anda ou kii Internet Explorer 5 ve zerini doal olarak kullanyorlar. sterseniz program gelitirerek bulunan satrlar baka bir sayfada tablo halinde listeleyebilirsiniz. Arama The help is in the Help subdirectory, in HTMLHelp format (check the download section if you are using Win95 and need HTMLHelp support). It is regularly updated, but GLScene is currently growing faster than the help file. var n 0 function bul() else alert (str bulunamad. ) 259 12. ASP ile misafir defteri (.asp ve. mdb veritaban) (DigerASPmyaspmyasp1.zip ve myasp2.zip) Temel olarak. asp dosyalar olan Active Server Pages etkin sunucu sayfalar ile, internet veya intranet zerinde veritaban ve gvenlik gerektiren sayfalar oluturabilirsiniz. PHP ve Perl Practical Extraction and Report Language gibi C diline benzeyen dier CGI Common Gateway Interface programlama dilleri ile de daha profesynel sayfalar yapmak mmkndr. Ayrca Macromedia Flash gibi animasyonlu web sayfalar rahatlkla ASP ile ilikilendirilebilir. Genellikle tm siteyi. asp olarak hazrlamak yerine kullanc logon girii, misafir defteri, forum ve benzeri anket gibi analiz edilebilen verilerin olduu internet sayfalarnda kullanabiliriz. brinkster gibi bedava ASP destei veren siteler ile de yaptnz sayfalar deneyebilirsiniz, ya da cretli olarak edindiiniz host - sunucu zerinde ilevleri test edebilirsiniz. Aslnda ou sunucu NT20002003 ve Unix tabanldr. Bu iletim sistemleri doal olarak CGI gibi hizmetleri ierirler. Brinkster yelii sonrasnda db klasrne attnz. mbd iin yazma hakk olmadna dair bir hata mesaj alabilirsiniz. Live Support ile bu isteinizi belirtirseniz, veritabannza kayt girme ve silme gibi ilemleri de yapabilirsiniz. CGI dosyalar istemci yani kullanclarn web sayfasn sunucudan istemesi ile almaya balar. Kullanc penceresinde. htm dosyay grd halde aslnda bu sayfa sunucu zerinde alan. asp dosyasdr. Form bilgileri ve seeneklere gre. asp dosyann son ilenmi. htm hali farkl olabilir. CGI sayesinde istemci, sunucuya komut yollar ve onu programlar. Fakat onlarca kii ayn anda sunucudan hizmet bekleyince sunucu gittike yavalamaya balayabilir. JavaScript istemci tarafnda alrken, ASP sunucu tarafnda alr. Bylece web browser tarayc program ne olursa olsun. htm kodunu kullanc rahatlkla grecektir. Bu arada. asp dosyalardaki kodlarn aslnda VBScript olduuna da dikkatinizi ekerim. Bunun anlam JavaScript ile de. asp dosya oluturulabileceidir. VBScript Netscape taraycs tarafndan tannmad halde. asp kodlarmz sunucu tarafnda alp. htm halini yollayacaktr. Kullanc sizin. asp ksmndaki kodlar asla gremeyecek ve sadece zet bilgi gibi nne gelen. htm ile yetinecektir. Orijinal. asp kodu rnein 3KB iken, sonu. htm dosyas 1KBdan MB seviyesine kadar byk dosya olabilir. nk sonu en azndan basit bir hata mesaj olabilir veya byk bir veritabannn ekrana tablolanmas da olabilir. Kendi bilgisayarmzda. asp sayfalar oluturmamz iin gerekenler sadece not defteri, Microsoft Access ve Microsoft Personal Web Server (PWS Kiisel Web Sunucusu) programlardr. PWS program Win98 CDsinde ToolsAdd-onspws dizininde bulabilirsiniz. Kurulumdaki root kk dizin sorulduunda C:BelgelerimMy Webs gibi bir klasr adn belirledikten sonra, saat simgesinin yanndaki basit menlere sahip olan PWS programna ulaabilirsiniz. NT ve zeri iin ise Internet Information Services IIS adl program kurmanz gerekli. Internet Explorer adres ubuundan internete balanmadan, localhost denildiinde, artk sizin bilgisayarnzdaki default. asp, index. htm gibi sayfalarmz altrp. asp uzantl dosyalarn canl hale geldiini grebilirsiniz. sterseniz Denetim MasasA ksmndan bilgisayar adn deitirerek server gibi de adlandrabilirsiniz. Perl iin. pl uzantl dosyalarn aktif hale gelmesi ActivePerl adl program sayesinde olur. MS Access ile My Websdb isimli bir dizin iine guestbook. mdb adl basit bir veritaban oluturacaz. tblContacts adl bir Table tablo ekleyerek alan adlarn u ekilde yapyoruz: ContactID FirstName LastName Phone Email Comments DateEntered Type AutoNumber Text Text Text Text Note DateTime Number Size Size Size Size 30 30 100 50 Default Value NOW() Bu projede 3 farkl alan birbirine benzer ekilde birletirilmi. Misafir defteri, program ekleme, site ekleme modlleri. Arabirimleri ayn fakat gruplar(Type) farkldr. Yani ayn veritabanna kaydolurken, kaydn trne gre filtre amac ile numara veriyoruz. Mesela misafir defteri 1, program ekleme 2 ve site ekleme 3. index. html misafir deferi iin, index1.html program ekleme iin ve son index2.html de site ekleme iin gereken ana sayfadr. Tek ana sayfa da yaplabilirdi. Kullanclar ye yaplarak, kendi misafir defteri de yapma imkan olabilirdi. Bylece misafir defteri hizmeti de verebilirdik. 260 Resim Asp projemizin alr haldeki ekran grntleri Ana men yani veri giri ve listeleme iin, My Websindex. html iine sayfa oluturuyoruz: Tariks Web Site - Guestbook Tariks Web Sites Guestbook Return to Guestbook Return to Homepage 261 Your Name. Your City. Web Site(without quotquot). Emailment. Bilgileri index. htmlden alp kontrol ederek kaydeden dosyamz ise GuestBook. asp dir: Tariks Web Site - Guestbook Tariks Web Sites Guestbook Sign in Guestbook Return to Guestbook Return to Homepage Bilgileri ekrana listeleyen sayfa ise ViewGuestBook. asp. Tariks Web Site - Guestbook 263 Tariks Web Sites Guestbook Sign in Guestbook Return to Homepage Delete a record

No comments:

Post a Comment