Ebat: px
Şu sayfadan göstermeyi başlat:

Download "http://alikoker.name.tr"

Transkript

1 Lispi bu kadar güçlü kılanın ne olduğunu hiç merak ettiniz mi? Şimdi bunu kendiniz keşfedebilirsiniz- Üstelik bunu yapmak için bilgisayarınıza hiçbir şey yüklemenize gerek yok! A COMIC BOOK By Conrad Barski, M.D. LISPERATI.COM Bu belge İstanbul Bilgi Üniversitesi Bilgisayar Bilimleri Bölümü öğrencisi Seda Çelebican tarafından Türk diline çevrilmiştir. Belgenin Türk kültürüne uyarlanmasında ve genel editörlük işlemlerinde İstanbul Bilgi Üniversitesi emba Yazılım Geliştirme ekibinden Emre Sevinç emek harcamıdştır. Bu süreçte çok titiz eleştirileri, geri beslemeleri ile bize yardımcı olan Bilkent Bilgisayar Mühendisliği bölümü öğrencilerinden Hayrettin Gürkök'e ve Lisp konusunda yardımcı

2 olan Bülent Murtezaoğlu'na teşekkürü bir borç biliriz. Belgedeki hatalardan çevirmen ve editör sorumludur. Orjinal belgenin yazarı Dr. Conrad Barski hiçbir maddi hatadan ötürü sorumlu tutulamaz. Belgeyle ilgili tartışma için fazlamesai.net adresini kullanabilirsiniz. Lisp ile programlama yapmayı öğrenmiş herhangi biri size onun diğer tüm programlama dillerinden farklı olduğunu söyleyecektir. O, pek çok bakımdan şaşırtıcı derecede farklıdır- Bu çizgi roman size Lispin eşsiz tasarımının onu nasıl güçlü kıldığını gösterecek. Bu kılavuzda ufak tefek Lisp kodları vardır ve bu font ve renktedir... sadece bu kod parçacıklarını Lisp derleyicisinin komut satırına kopyalayın ve bu kılavuzun sonuna eriştiğinizde kendinize ait bir macera oyununuz olacak! Kullanabileceğiniz pek çok muhteşem Lisp derleyicisi vardır, ancak bu kılavuzla birlikte en kolay kullanabileceğiniz Franzın Allegro Common Lispidir.Bu çok güçlü ticari Lisp, Franz,Inc. tarafından nezaketle bir telnet ortamından erişilebilir hale getirildi, yani bilgisayarınıza hiçbir yazılım yüklemeden onu BURADAN kullanabilirsiniz. Sadece bağlantıya tıklayın ve tarayıcınız size ihtiyacınız olan her şeyi sunan bir telnet penceresi açacaktır!

3 (Kullanmayı sevdiğim bir diğer Lisp ise açık kaynak CLISPtir, eğer Lisp ile çok zaman geçirmeyi düşünüyorsanız bunu indirmeyi tercih edebilirsiniz.) Eğer Allegro Common Lisp kullanıyorsanız lütfen Lisp komut satırından şu satırı çalıştırın: (setf tpl:*print-length* nil)...sadece yazıyı tarayıcınızdan kopyalayın, sonra telnet penceresinde sağ tıklayıp Yapıştırı (Paste) seçin. Bu satırın üzerinde fazla durmayın- sadece Allegronun metin tabanlı macera oyunumuzun bastığı mesajları silmesini engelliyor.

4 Sözdizim ve Anlamlandırma Her bilgisayar dilinin sözdizim ve anlamlandırma'dan olusan bir kodu vardır. Programlama dilinin sözdizim'i, programın takip etmesi gereken en temel iskeleti oluşturur böylece derleyici programınızın içinde neyin ne, neyin fonksiyon neyin değişken, olduğunu anlar. Bir programın anlamlandırması biraz daha gelişigüzel olan kısmıdır, mesela mevcut değişik komutlar ve programın herhangi bir anında bakabileceğiniz değişkenler. Lisp'i özel kılan ilk şey başlıca programlama dilleri arasında en basit sözdizimine sahip olmasıdır. Kısaca, Lisp sözdizim'i der ki; Lisp derleyicisine girilen her metin listeler halinde düzenlenmeli, bunlar da listelerin listesi olarak ya da gereğince düzenlenir. Parantezler her listenin başını ve sonunu belirler: Ayrıca Lisp derleyicisi kodunuzu okurken iki kip kullanır: Kod Kipi ve Veri Kipi, listelerinize istediğiniz her şeyi koyabilirsiniz. Ancak derleyici kodunuzu okurken önce Kod Kipinden başlar- Kod Kipinde, listeleriniz "form" adı verilen özel listelerden olmalıdır:

5 Form, ilk sembolü derleyicinin anlayabileceği özel bir kelime olan liste olarak düşünülebilir; söz konusu ilk sembol genellikle bir fonksiyonun adı olur. Bu durumda derleyici diğer elemanları fonksiyona parametre olarak gönderir. Genellikle, siz veri kipine geçmesini söylemediğiniz sürece, bu parametrelerin de Kod Kipi'nde olduğunu varsayar. Oyun Dünyamız için Verileri Tanımlamak Formlar hakkında daha fazla bilgi edinmek için oyun dünyamızın verilerini oluşturacak formları yaratalım. Oynumuzda oyuncunun alıp kullanabileceği objeler olacak, öncelikle bu objeleri tanımlayalım: (setf *nesneler* '(viski-sisesi kova kurbaga zincir)) Şimdi bu satırı parçalara bölelim ve ne dediğine bakalım: Bir Lisp derleyicisi hep Kod Kipinde okumaya başlar ve bir form bekler, yani ilk sembol, setf, bir komut olmalıdır. Bu durumda komut, değişkene bir değer atamaktadır: Değişken *nesne*dir (Lispçiler global değişkenleri iki yıldız arasına yazmayı severler) ve onu eşitlediğimiz değer de dört nesneli listemiz.şimdi, listemiz veri tipinde olduğu için (derleyicinin viski-sisesi isimli bir fonksiyonu çağırmaya çalışmasını istemiyoruz yani) derleyiciyi listeyi okurken Veri Kipine döndürmemiz gerekiyor. Listenin önündeki kesme işareti derleyiciye dönmesini söyleyen komuttur:

6 Komutun neden setf olarak isimlendirildiğini merak ediyor olabilirsiniz. Açıkçası ben de pek emin değilim ama fark edeceksiniz ki Lispte pek çok komutun garip isimleri var, ne de olsa Lisp çok eski bir dil. Bu aslında yararlı bir durum, genel komutların Lisp sürümleri Lispe özel tüm zarif güçlerine sahiptir yani bu garip isimler Lispteki komutlarla diğer dillerdeki komutların karışmasını engeller. Mesela setf komutu bu klavuzda değinebileceğimizin ötesinde becerilere sahiptir. Şimdi dünyamızdaki bazı nesneleri tanımladık, bir adım daha ileri gidip dünyanın gerçek halini tanımlayalım. Dünyamızın neye benzediğine ilişkin resim: Bu basit oyunda sadece üç değişik mekan olacak: oturma odası ve çatı katı ile bahçesi olan bir ev. Bu küçük dünyayı anlatacak *harita* isimli yeni bir değişken tanımlayalım:

7 (setf *harita* '((oturma-odasi (büyücünün evindeki bir oturma odasindasiniz. kanepede horul horul uyuyan bir büyücü var.) (bati kapi bahce) (ustkat merdiven cati-kati)) (bahce (güzel bir bahcedesiniz. onünüzde bir kuyu var.) (dogu kapi oturma-odasi)) (cati-kati (terk edilmis evin cati katindasiniz. kösede dev bir kaynak makinasi var.) (altkat merdiven oturma-odasi)))) Bu harita bizim üç mekanımızla da ilgili önemli olan her şeyi içermektedir: mekana ait özel bir isim (yani ev, bahce ve cati-kati), oradan görülenlerle ilgili kısa bilgi (büyük listenin içinde kendine ait bir listede saklanmakta), ve o yerin içeri ve dışarı yollarıyla ilgili nereye ve nasıl yöntemleri. Bu tek değişkenin ne kadar bilgi zengini olduğuna ve sadece bilmemiz gerekenleri anlattığına dikkat edin Lispçiler küçük, kısa ve öz olan, fazlalık yapan her şeyi dışarda bırakan ve sadece bakarak anlaşılabilen kod parçacıkları yaratmayı severler. Artık bir haritamız ve çeşitli nesnelerimiz olduğuna göre bu nesnelerin haritada nerelerde olduğunu söyleyen bir değişken yaratmamız mantıklıdır: (setf *nesne-yerleri* '((viski-sisesi oturma-odasi) (kova oturma-odasi) (zincir bahce) (kurbaga bahce))) Burda her nesneyi bir yer ile ilişkilendirdik. Bu cins listeler Lispte tahmin edeeğiniz üzere ilişkilendirme listeleri olarak adlandırılır. Bir ilişkilendirme listesi kısaca bir listeler listesidir, bu iç listelerin her birinin ilk elemanı bir anahtar semboldür ve diğer bir takım verilerle ilişkilendirilmiştir. Aynı zamanda *harita* değişkenimiz de bir ilişkilendirme listesidir burdaki üç anahtar ise oturma-odasi, bahce ve catikati. Dünyamızı ve içindeki nesneleri tanımladığımıza göre geriye kalan tek şey oyuncunun nerede olduğunu tanımlamaktır: (setf *yer* 'oturma-odasi) Şimdi oyun komutları yapmaya başlayalım!

8 Oyun Dünyamızda Etrafa Bakınmak Sahip olmak isteyeceğimiz ilk komut bize bulunduğumuz yeri söyleyecek olan komuttur. Peki bir fonksiyonun dünyadaki bir yeri tanımlamak için neye ihtiyacı olabilir? Tanımlamasını istediğimiz yerin neresi olduğunu bilmek ister ve bir haritaya bakabilmek ve o haritada bu yeri bulabilmek ister. İşte tam olarak bunu yapan fonksiyonumuz: (defun yer-tarif-et (yer harita) (second (assoc yer harita))) Tahmin edebileceğiniz gibi defun kelimesi bir fonksiyon tanımladığımız anlamına geliyor. Fonksiyonun adı yer-tarifet ve iki parametre alır: bir yer ve bir harita. Bu değişkenlerin iki yıldız arasında olmamasından onların yerel olduklarını anlıyoruz yani global *yer* ve *harita* değişkenlerinden farklıdırlar. Lisp'teki fonksiyonların diğer programlama dillerindekilerden çok matematiksel fonksiyonlara benzediğine dikkatinizi çekmek isterim: Tıpkı matematikteki gibi bu fonksiyon da kullancıya okuması için bir şeyler basmaz ya da bir mesaj kutusu açmaz: Tek yaptığı tanımı içeren fonksiyonun sonucuna göre bir değer döndürmektir. Bulunduğumuz yerin oturma-odasi olduğunu düşünelim (ki gerçekten de öyle..)

9 Burası için bir tanım bulmak için öncelikle haritadan oturmaodasi'nı gösteren noktayı bulması gerekiyor. İşte bunu assoc komutu yapıyor ve bize oturma-odasi'nı tarif eden veriyi dönüyor. Sonra second komutu listedeki ikinci nesneyi yani oturma-odasi'nın tanımını siler (Eğer yarattığımız *harita* değişkenine bakarsanız, oturma-odasi'ni tanımlayan yazı parçacığı, oturma-odasi ile ilgili bütün veriyi toplayan listenin ikinci nesnesi olduğunu görürsünüz.) Şimdi Lisp prompt'umuzu kullanarak fonksiyonumuzu deneyelim- Kılavuzumuz boyunca olduğu gibi gene bu font ve renkte olan yazıları Lisp komut satırına yapıştırın: (yer-tarif-et 'oturma-odasi *harita*) ==> ( BÜYÜCÜNÜN EVINDEKI BIR OTURMA ODASINDASINIZ. KANEPEDE HORUL HORUL UYUYAN BIR BÜYÜCÜ VAR. Mükemmel! Tam istediğimiz gibi.. oturma-odasi'nin önüne koyduğumuz kesmeye dikkatinizi çekmek isterim, ne de olsa bu sembol yeri adlandıran veri (yani bunu Veri Kipi'nde okumak istiyoruz), ancak *harita* sembolünün önüne bir kesme koymadik, çünkü bu durumda isteğimiz derleyicinin

10 *harita* değişkeninin sakladığı verilere ulaşması (yani derleyicinin Kod Kipi'nde olmasını ve *harita* kelimesine sadece ham veri olarak bakmamasını istiyoruz.) Pratik Programlama Stili Belki yer-tarif-et fonksiyonumuzun pek çok değişik yönden bayağı kaba olduğunu fark ettiniz. Öncelikle nden yer ve harita değişkenlerini parametre olarak alıyoruz da, direkt olarak global değişkenleri okumuyoruz? Bunun sebebi Lispçilerin genellikle Pratik Programlama Stili'nde yazmayı sevmeleridir (daha açık olmak gerekirse bu- "prosedürel programlama" ya da- "yapısal programlama" ile tamamen alakasızdır..). Bu stilde amaç şu kuralları daima izleyen fonksiyonlar yazmaktır: 1. Sadece fonsiyona verilen ya da fonksiyon tarafından yaratılmış değişkenleri okur. (Yani hiç bir global değişken okunmaz.) 2. Asla atanmış bir değişkenin değeri değiştirilmez. (Yani değişkenleri arttırmak yada benzer saçmalıklar yok.) 3. Asla dış dünya ile etkileşime girmez, sonuç değerini döndürmek hariç. (Yani dosyalara yazma, kullanıcıya mesaj yazma yok.) Belki de bu katı kısıtlamalarla gerçekten işe yarayan bir şeyler yapan bir kod yazıp yazamayacağınızı merak ediyorsunuzdur... Kim bu kuralları izleme zahmetine katlanır ki? Çok önemli bir sebep: Bu stilde kod yazmak programınıza ilişkisel şeffaflık verir: Bu demek oluyor ki, verilen bir kod parçası aynı parametrelerle çağırıldığında, her zaman aynı değeri döner ve her ne zaman çağrılırsa çağrılsın hep aynı şeyi yapar- Bu programlama hatalarını azaltır ve ayrıca pek çok durumda programcının üretkenliğini arttırdığına inanılır. Elbette her zaman için fonksiyonel stilde olmayan fonksiyonlar ya da kullanıcı veya dış dünya ile iletişim kuramayacağınız durumlar olacaktır. Bu klavuzda bundan sonra karşılaşacağınız çoğu fonksiyon bu kuralları izlemeyecek. yer-tarif-et fonksiyonumuzla ilgili bir diğer poblem ise bize

11 o yerden başka yerlere doğru olan yolları söylememesi. Bu yolları bize tarif eden bir fonksiyon yazalım: (defun yol-tarif-et (yol) `(,(first yol) ile,(second yol) arasinda bir yol var.)) Pekala, bu fonksiyon bayağı garip görünüyor: Hatta bir fonksiyondan çok bir veri parçasını andırıyor. Önce deneyelim, yaptığını nasıl yaptığını sonra anlarız: (yol-tarif-et '(bati kapi bahce)) ==> (BATI ILE KAPI ARASINDA BIR YOL VAR.) Artık her şey açık: Bu fonksiyon yolu tarif eden bir liste alır (tıpkı *harita* değişkenimizin içinde olan gibi) ve ondan güzel bir cümle çıkarır. Şimdi fonksiyona tekrar bakarsak fonksiyonun yarattığı veriye çok benzediğini göreceksiniz: Kısaca yoldan ilk ve ikinci cisimleri kesip belirlenen cümleye çevirir. Bunu nasıl yapar? Ters-kesme kullanarak! Daha önce de derleyicimizi Kod Kipi'nden Veri Kipi'ne döndürmek için kesme kullandığımızı unutmayın- Terskesme kullanarak sadece dönmekle kalmaz ayrıca Kod Kipi'ne virgül ile geri de dönebiliriz: Bu- œters-kesme" tekniği Lisp'in muhteşem bir özelliği- bize yarattığı veri gibi gözüken kod yazmamıza izin veriyor. Bu çoğunlukla fonksiyonel stilde yazılan kodla olan bir şey: fonksiyonlarımızı ürettikleri veriye benzer şekilde yarattığımızda kodumuzu daha kolay anlaşılır yaparız ve aynı zamanda uzun ömürlü olmasını sağlar. Veri değişmediği sürece, fonksiyonlar veriyi sıkı bir şekilde takip ettiğinden, onların refaktörize edilmesi ya da değiştirilmesi muhtemelen gerekmeyecektir. Böyle bir fonkiyonu VB ya da C'de nasıl yazardınız bir düşünün: Büyük olasılıkla yolu parçalara bölerdiniz sonra da yazı parçacıklarını tekrar birbirine eklerdiniz- Yaratılan veriye hiç benzemeyen ve düşük ihtimalle uzun ömürlü olacak, daha rastgele bir süreç. Artık bir yol tanımlayabiliriz, ancak oynumuzdaki bir yer birden çok yola sahip olabilir. Haydi yollari-tarif-et isimli bir fonksiyon yaratalım: (defun yollari-tarif-et (yer harita) (apply #'append (mapcar #'yol-tarif-et (cddr (assoc yer harita))))) Bu fonksiyon, fonksiyonel programlama tekniğini kullanmakta: Yüksek Düzey Fonksiyonlar'ı kullanmak- Yani

12 apply ve mapcar fonksiyonları diğer fonksiyonları parametre olarak alıyor böylece onları kendileri çağırıyorlar- Bir fonksiyonu aktarmak için, fonksiyonun adından önce #' koymanız gerekir. cddr komutu listenin ilk iki elemanını kesip atar (böylece geriye sadece yol verisi kalır). mapcar kısaca başka bir fonksiyonu listedeki her nesneye uygular, temel olarak yaptığı bütün yolları yol-tarif-et fonksiyonu ile güzel açıklamalara dönüştürür. "apply #'append" ise sadece parantezleri temizler ve çok önemli değildir. Haydi bu yeni fonksiyonu deneyelim: (yollari-tarif-et 'oturma-odasi *harita*) ==> (BATI ILE KAPI ARASINDA BIR YOL VAR. USTKAT ILE MERDIVEN ARASINDA BIR YOL VAR.) Çok güzel! Hala tanımlamamız gereken bir şey var: bulunduğumuz yerin zemininde herhangi bir nesnenin olup olmadığı, varsa ne oldukları. Önce verilen yerde herhangi bir nesne var mı bunu söyleyen bir yardımcı fonksiyon yazalım: (defun is-at (nesne yer nesne-yeri) (eq (second (assoc nesne nesne-yeri)) yer))...eq fonksiyonu bize nesne-yeri listesindeki sembolün şu anki yer olup olmadığını söyler. Haydi bunu deneyelim: (is-at 'viski-sisesi 'oturma-odasi *nesne-yerleri*)

13 ==> T t sembolü (ya da nil hariç bütün değerler) viski-sisesi'nin oturma-odasi'nda var olduğu anlamına gelir. Şimdi bu fonksiyonu yeri tanımlamak için kullanalım: (defun zemin-tarif-et (yer nesneler nesne-yeri) (apply #'append (mapcar (lambda (x) `(zeminde bir,x görüyorsunuz.)) (remove-if-not (lambda (x) (is-at x yer nesne-yeri)) nesneler)))) Bu fonksiyonda yeni bir kaç şey var: Öncelikle, isimsiz fonksiyonlara sahip (lambda bunun için sadece süslü bir isim). Bu ilk lambda formu, yardımcı bir fonksiyon tanımlamakla aynı (defun fasafiso (x) `(zeminde bir,x görüyorsunuz.)) ve sonra #'fasafiso'yu mapcar fonksiyonuna gönderir. remove-if-not fonksiyonu listeyi mapcar'a güzel cümleler kurmak üzere göndermeden önce içinden o an ki yerde olmayan bütün nesneleri çıkarır. Şimdi bu yeni fonksiyonu deneyelim: (zemin-tarif-et 'oturma-odasi *nesneler* *nesne-yerleri*) ==> (ZEMINDE BIR VISKI-SISESI GÖRÜYORSUNUZ. ZEMINDE BIR KOVA GÖRÜYORSUNUZ. ) Şimdi bütün bu tanımlayıcı fonksiyonları tek ve kolay bir BAK fonksiyonu ile bağlayabiliriz, bu fonksiyon global değişkenleri kullanarak (yani Fonksiyonel Stil'de olmadan) tanımlayıcı fonksiyonları besler ve her şeyi tanımlar: (defun bak () (append (yer-tarif-et *yer* *harita*) (yollari-tarif-et *yer* *harita*) (zemin-tarif-et *yer* *nesneler* *nesne-yerleri*)))

14 Haydi deneyelim: (bak) ==> ( BÜYÜCÜNÜN EVINDEKI BIR OTURMA ODASINDASINIZ. KANEPEDE HORUL HORUL UYUYAN BIR BÜYÜCÜ VAR. BATI ILE KAPI ARASINDA BIR YOL VAR. USTKAT ILE MERDIVEN ARASINDA BIR YOL VAR. ZEMINDE BIR VISKI-SISESI GÖRÜYORSUNUZ. ZEMINDE BIR KOVA GÖRÜYORSUNUZ. ) Çok şık! Oyun Dünyamızda Yürümek Artık dünyamızı görebildiğimize göre artık içinde yürüyebilmemizi sağlayacak kodu yazabiliriz. bir-yöndeyürü fonksiyonu (fonksiyonel stil'de değil) bir yön seçer ve o yönde yürümemizi sağlar: (defun bir-yönde-yürü (yön) (let ((sonraki (assoc yön (cddr (assoc *yer* *harita*))))) (cond (sonraki (setf *yer* (third sonraki)) (bak)) (t '(bu yönde gidemezsiniz.))))) let özel komutu bize sonraki yerel değişkenini yaratmamıza izin verir ve buna oyuncunun yürümek istediği yöne ait yol tanımını atarız- cddr ise sadece ilk elemanı listeden kesip alır. Eğer kullanıcı sahte bir yön yazarsa sonraki artık nil olur. cond komutu ise Lisp'te bir dizi if-then komutu gibidir: cond içindeki her satırın kontrol etmesi gereken bir değer ve yapması gereken bir görev vardır. Bu durumda, eğer sonraki yer nil değil ise oyuncunun yerini yol tanımındaki üçüncü elemana setf'leyecektir, ki bu da yeni yönü anlatan sembolü tutar, ve sonra kullanıcıya yeni yerin nasıl göründüğünü söyler. Eğer sonraki yer nilise o satırı gerçeklestiremeyip bir sonraki satıra gecer ve kullanıcıyı da uyarır. Haydi bunu deneyelim: (bir-yönde-yürü 'bati) ==> ( GÜZEL BIR BAHCEDESINIZ. ÖNÜNÜZDE BIR KUYU VAR. DOGU ILE KAPI ARASINDA BIR YOL VAR. ZEMINDE BIR KURBAGA GÖRÜYORSUNUZ. ZEMINDE BIR ZINCIR GÖRÜYORSUNUZ. ) Tanımlama fonksiyonlarımızı, oyuncumuza yazması kolay, bir bak komutu ile basitlestirmiştik. Benzer bir şekilde biryönde-yürü komutumuza da oyuncumuzun yazması gereken sinir bozucu işaretlemelerden arındıracak bir ayarlama yaparsak hoş olur. Ancak öğrendik ki, derleyici bir formu

15 Kod Kipi'nde okumaya başlarsa bütün parametrelerini de, bir kesme işareti aksini söylemedikçe Kod Kipi'nde okur. Derleyiciye bati'nin sadece bir parça veri olduğunu kesme işareti kullanmadan bir şekilde söyleyemez miyiz? TILSIM YARATMAK Şimdi Lisp'in inanılmaz güçlü bir özelliğini öğreneceğiz: TILSIM yaratmak! SPEL (ki biz tilsim olarak isimlendirdik), "Semantic Program Enhancement Logic" yani "Anlamlandırılmış Program Geliştirme Mantığı"nın kısaltmasıdır ve kendi bilgisayar dünyamızın kodunda yeni bir davranış stili yaratmamıza olanak sağlayarak Lisp dilini temel seviyede değiştirip ihtiyaçarımız doğrultusunda davranışlarını ayarlayabilmemizi sağlar- Lisp'in büyü gibi olan kısmı budur. TILSIM'ları kullanıma açmak için öncelikle Lisp derleyicimizde TILSIM'ları aktif hale getirmemiz gerekir (Bu satır için endişe etmeyin- ileri seviye Lispçiler buraya tıklamalı.) (defmacro deftilsim (&rest geriye-kalanlar) Artık kullanıma açıldıklarına göre ilk tilsim'ımızı yaratalım, adı da yürü olsun: (deftilsim yürü (yön) `(bir-yönde-yürü ',yön)) Bu kodun yaptığı şey, derleyiciye yürü kelimesinin gerçekte yürü kelimesi olmadığını ve aslında onun bir-yönde-yürü demek olduğunu ve yön'ün önünde aslında -biz görmesek debir kesme işareti olduğunu söylemek. Esasen kodumuz derlenmeden önce onu başka bir şeye çevirecek olan bazı özel kodları programımız ve derleyici arasında bir yerlere sokuşturabiliriz.

16 Bu fonksiyonun daha önce yazdığımız yol-tarif-et koduna ne kadar çok benzediğine dikkat edin: Lisp'te birbirine neredeyse eş derecede benzeyen sadece kod ve veri değildir, kod ve derleyiciye özel komutlar (TILSIMlar) da benzeşir- Gayet tutarlı ve net bir tasarım! Haydi yeni tilsim'ımızı deneyelim: (yürü dogu) ==> ( BÜYÜCÜNÜN EVINDEKI BIR OTURMA ODASINDASINIZ. KANEPEDE HORUL HORUL UYUYAN BIR BÜYÜCÜ VAR. BATI ILE KAPI ARASINDA BIR YOL VAR. USTKAT ILE MERDIVEN ARASINDA BIR YOL VAR. ZEMINDE BIR VISKI-SISESI GÖRÜYORSUNUZ. ZEMINDE BIR KOVA GÖRÜYORSUNUZ. ) Çok daha iyi! Şimdi dünyamızda nesneleri kaldırmamızı saplayacak komutu yaratacağız: (defun nesneyi-al (nesne) (cond ((is-at nesne *yer* *nesne-yerleri*) (push (list nesne 'body) *nesneyerleri*) `(simdi bir,nesne tasiyorsunuz)) (t '(onu alamazsiniz.)))) Bu fonksiyon nesnenin gerçekten de o an ki yerimizin zemininde olup olmadığına bakar- eğer öyleyse yeni yeri (kullanıcının bedenini) listeye iter (itmek burda listeye yeni bir eleman eklemek manasındadır, bunu öyle yapar ki assoc komutu bunu görür ve bir önceki yeri gizler.) ve bize başarıp başaramadığını söyleyen bir cümle döndürür. Şimdi bu komutu daha kolay kullanmamızı sağlayacak bir başka TILSIM yaratalım:

17 (deftilsim al (nesne) `(nesneyi-al ',nesne)) Şimdi yeni TILSIMımızı deneyelim: (al viski-sisesi) ==> (SIMDI BIR VISKI-SISESI TASIYORSUNUZ) Şimdi bir kaç işe yarar komut daha ekleyelim- İlk önce taşıdığımız nesneleri listeleyen bir komut: (defun envanter () (remove-if-not (lambda (x) (is-at x 'body *nesneyerleri*)) *nesneler*)) Şimdiyse belli bir nesneye sahip olup olmadığımızı söyleyecek bir komut: (defun sahip (nesne) (member nesne (envanter))) Oynumuzda Özel Oyun Eylemleri Yaratma Artık yapmamız gereken tek bir şey kaldı ve sonra oynumuz tamamlanmış olacak: Oynumuza, oyuncunun yapmadan oyunu kazanamayacağı bazı özel oyun eylemlerini eklemek. İlk komut oyuncunun çatı katındaki zinciri kovaya kaynak yapmasını sağlayacak: (setf *zincir-kaynak-yapildi* nil) (defun kaynak-yap (ozne nesne) (cond ((and (eq *yer* 'cati-kati) (eq ozne 'zincir) (eq nesne 'kova) (not *zincir-kaynak-yapildi*)) (setf *zincir-kaynak-yapildi* 't) '(zincir güvenli sekilde kovaya kaynak yapildi.)) (t '(kaynak eylemini gerceklestiremem.)))) Şimdi ilk olarak, bu eylemi yapıp yapmadığımızı söylememize yarayan yeni bir global değişken yarattık. Sonra da kaynak yapmak için bütün şartların uygun olduğundan emin olmamızı ve kaynak yapmamızı sağlayan bir kaynak-yap fonksiyonu oluşturduk.

18 Haydi yeni komutumuzu deneyelim: (kaynak-yap 'zincir 'kova) ==> (KAYNAK EYLEMINI GERCEKLESTIREMEM.) Eyvaah.. bizim kovamız ya da zincirimiz yok, değil mi?...ve ortalıkta bir kaynak makinası da yok... eh peki.. Şimdi zincir ve kovayı kuyu'ya daldıracak bir komut yaratalım: (setf *kova-dolu* nil) (defun daldir (ozne nesne) (cond ((and (eq *yer* 'bahce) (eq ozne 'kova) (eq nesne 'kuyu) (sahip 'kova) *zincir-kaynak-yapildi*) (setf *kova-dolu* 't) '(kova simdi su dolu)) (t '(bu sekilde daldiramazsiniz.)))) Eğer dikkat ettiyseniz bu komut kaynak-yap komutuna fazlasıyla benzemektedir... Her iki komut da yer, özne ve nesneyi kontrol etmeye ihtiyaç duyuyor- Ancak onların benzerliklerini tek bir fonksiyona toplamamıza izin

19 vermeyecek kadar farklılıkları var.. Bu çok kötü......ancak bu Lisp olduğu için biz sadece fonksiyon yazmanın ötesine geçebilir ve tilsim yaratabiliriz! Haydi şu TILSIMı yaratalım: (deftilsim oyun-eylemi (komut ozn nsn mekan &rest geriye-kalanlar) `(deftilsim,komut (ozne nesne) `(cond ((and (eq *yer* ',',mekan) (eq ',ozne ',',ozn) (eq ',nesne ',',nsn) (sahip (t '(kusura bakma,',komut eylemini gerceklestiremem.))))) bu TILSIMın ne kadar gülünç bir şekilde karmaşık olduğunu fark ettiniz mi? - Daha çok garip kesme işaretleri, ters-kesme işaretleri, virgüller ve bir listeye sokabileceğiniz başka acaip sembollere sahip. Dahası bu bir başka TILSIM yaratabilen bir TILSIM! Daha ileri düzey Lisp programcıları bile bu kadar dev bir şey yaratabilmek için üzerinde düşünmeye ihtiyaç duyarlar (ve aslına bakarsanız onlar bu TILSIMı zerafetten yoksun bulup, bazı adımlar atarak onu daha iyi huylu yapmaya çalışacaklardır, ki biz bununla burda ilgilenmeyeceğiz..) Bu TILSIMın amacı sizlere bu TILSIMların ne kadar bilmiş ve becerikli olabileceklerini göstermekti. Hem çirkin olması, onu bir kere yazıp yüzlerce komut yaratmak için kullandıktan sonra çok da önemli değil. Şimdi yeni TILSIMımızı çirkin kaynak-yap komutunu değiştirmek için kullanalım:

20 (oyun-eylemi kaynak-yap zincir kova cati-kati (cond ((and (sahip 'kova) (setf *zincir-kaynak-yapildi* 't)) '(zincir güvenli sekilde kovaya kaynak yapildi.)) (t '(elinizde bir kova yok.)))) Bakın artık bu komutu anlamak ne kadar da kolaylaştı- oyuneylemi TILSIMı fazlalıklardan bizi kurtararak tam olarak söylemek istediğimizi yazmamıza izin veriyor- Sanki sadece oyun komutları için kendi bilgisayar dilimizi yarattık. TILSIMlar ile kendi sözde-dilinizi yaratmanıza Alana Özel Dil Programlama (DSLP - Domain Specific Language Programming) ismi verilir, bu en güçlü ve zarif programlama tekniklerinden biridir. (kaynak-yap zincir kova) ==> (ELINIZDE BIR ZINCIR YOK.) hala daha kaynak yapmak için uygun durumda değiliz ancak komutumuz işini yapıyor! Şimdi daldir komutunu da yeniden yazalım: (oyun-eylemi daldir kova kuyu bahce (cond (*zincir-kaynak-yapildi* (setf *kova-dolu* 't) '(kova simdi su dolu)) (t '(su seviyesi yetisemeyeceginiz kadar asagida.)))) kaynak-yap komutunun nesneye sahip olup olmadığımızı kontrol ettiğini ancak daldi komutunun o adımı atladığına dikkat edin -yeni oyun-eylemi TILSIMı kodu yazmayı ve anlamayı kolaylaştırıyor.

21 Ve son kodumuz, suyu büyücünün üzerine sallamak için: (oyun-eylemi salla kova büyücü oturma-odasi (cond ((not *kova-dolu*) '(kovada bir sey yok.)) ((sahip 'kurbaga) '(büyücü uyanir ve kurbagisini caldiginizi görür. o kadar cok hayal kirikligina ugrar ki sizi büyülü dünyadan men eder. kaybettiniz! oyun bitti.)) (t '(büyücü uyanir ve size hosgeldin der nazikce. size büyülü düsükkarbonatli kurabiye verir. kazandiniz. oyun bitti.))))

22 Tam anlamıyla bitmiş metin tabanlı bir macera oyunu yazdınız! Oyunun tam bir dökümü için BURAYA tıklayın. Lisp komut satırınıza tek bir adımda kopyalayıp yapıştırabileceğiniz kaynak kodu için BURAYA tıklayın. Bu klavuzu mümkün olduğu kadar basit tutmak için Lisp'in nasıl çalıştığıyla ilgili pek çok ayrıntı gizlenmiş ya da şöylece üzerinden geçilmiştir, o yüzden şimdi onlara bir bakalım...

Sunum İçeriği. Programlamaya Giriş 22.03.2011

Sunum İçeriği. Programlamaya Giriş 22.03.2011 Programlamaya Giriş Nesne Tabanlı Programlamaya Giriş ve FONKSİYONLAR Sunum İçeriği Nesne Tabanlı Programlama Kavramı Fonksiyon tanımlama ve kullanma Formal Parametre nedir? Gerçel Parametre nedir? Fonksiyon

Detaylı

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş Yard. Doç. Dr. Alper Kürşat Uysal Bilgisayar Mühendisliği Bölümü akuysal@anadolu.edu.tr Ders Web Sayfası: http://ceng.anadolu.edu.tr/ders.aspx?dersid=101

Detaylı

FONKSİYONLAR. Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır.

FONKSİYONLAR. Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır. C PROGRAMLAMA FONKSİYONLAR Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır. Daha büyük programlar yazmanın en kolay yolu onları küçük parçalar halinde yazıp sonra

Detaylı

HESAP MAKİNASI YAPIMI

HESAP MAKİNASI YAPIMI HESAP MAKİNASI YAPIMI 1..Aşağıdakine benzer görünüm ve butonları hazırlayın. 2. 24. Butonun içerisine aşağıdaki kodları yazın. 3. Yeni bir layer ekleyip Frame1 F9 na aşağıdaki kodları ekleyelim. 4. Butonlardan

Detaylı

Merhaba değerli Dostlar;

Merhaba değerli Dostlar; Merhaba değerli Dostlar; Eğitim Merkezi nin forumunun nasıl kullanıldığını bu belgede öğrenebileceksiniz. Eğer bugüne kadar hiçbir forum kullanmadıysanız merak etmeyin; forumu kullanmak çok kolay. İlerleyen

Detaylı

VERİ TABANI NEDİR A. TABLO OLUŞTURMA

VERİ TABANI NEDİR A. TABLO OLUŞTURMA VERİ TABANI NEDİR Belli bir amaca dayalı ortak alanlara (ad soyad, ürün adı, fiyatı gibi) sahip kişilerin ve nesnelerin bilgilerinin tutulduğu, istendiğinde bu bilgiler için arama, düzeltme, silme, kayıt

Detaylı

ASP.NET ile Bir Web Sitesi Oluşturma

ASP.NET ile Bir Web Sitesi Oluşturma 29,30 Eylül 2011 ASP.NET ile Bir Web Sitesi Oluşturma ASP.NET sitesi oluşturmak için File menüsündeki, New açılır listesindeki, Web Site komutuna tıklıyoruz Açılan pencereden C# içindeki ASP.NET Web Site

Detaylı

Teknik Doküman. Autodesk Revit Building te yeni ölçü tipleri yaratmak

Teknik Doküman. Autodesk Revit Building te yeni ölçü tipleri yaratmak Teknik Doküman Teknik Doküman Numarası: 10771 Yayım Tarihi: 24.03.2006 Ürün: Autodesk Revit 6-9 Konu: Revit te yeni ölçülendirme tipleri yaratmak Tür: Öğretici Revizyon No: 0 Revizyon Tarihi: Autodesk

Detaylı

GOOGLE DRİVE KULLANARAK FORM OLUŞTURMA

GOOGLE DRİVE KULLANARAK FORM OLUŞTURMA GOOGLE DRİVE KULLANARAK FORM OLUŞTURMA Google Docs yani Google Dokümanlar hizmeti bir süre önce Google Drive adlı bulut depolama hizmetinin içerisine alındı ve çok daha gelişerek yoluna devam etti. Google

Detaylı

How to ASP Language. Elbistan Meslek Yüksek Okulu 2011 2012 Bahar Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU. 29 Eki. 1 Kas. 2013

How to ASP Language. Elbistan Meslek Yüksek Okulu 2011 2012 Bahar Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU. 29 Eki. 1 Kas. 2013 How to ASP Language Elbistan Meslek Yüksek Okulu 2011 2012 Bahar Yarıyılı 29 Eki. 1 Kas. 2013 Öğr. Gör. Murat KEÇECĠOĞLU Fonksiyonlar, kendilerini göreve çağıran VBScript komutlarına ve işlemlerine bir

Detaylı

Denetim Masası/Programlar/Windows özelliklerini Aç/Kapat

Denetim Masası/Programlar/Windows özelliklerini Aç/Kapat Merhaba arkadaşlar, Bu yazımızda yerel ağda veya Ip adresimizle bir web sitesinin paylaşıma açılması, aynı ağdan veya uzaktan bir bilgisayarın web sitemize nasıl erişebileceği konuları üzerinde duracağız.

Detaylı

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ Dersin Adı Kodu Sınıf / Y.Y. Ders Saati (T+U+L) Kredi AKTS PROGRAMLAMA BG-213 2/1 2+0+2 2+1 5 Dersin Dili : TÜRKÇE Dersin Seviyesi : LİSANS

Detaylı

Bilgisayarda Programlama. Temel Kavramlar

Bilgisayarda Programlama. Temel Kavramlar Bilgisayarda Programlama Temel Kavramlar KAVRAMLAR Programlama, yaşadığımız gerçek dünyadaki problemlere ilişkin çözümlerin bilgisayarın anlayabileceği bir biçime dönüştürülmesi / ifade edilmesidir. Bunu

Detaylı

PHP 1. Hafta 2.Sunum

PHP 1. Hafta 2.Sunum PHP 1. Hafta 2.Sunum Hello World Bu derste görülecekler WAMP ve PHP Hosting kavramı ve bizi neden ilgilendirmediği Domain ve localhost kavramları www klasörü İlk PHP kodunun

Detaylı

DAO İLE SQL KOMUTLARI. Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım.

DAO İLE SQL KOMUTLARI. Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım. DAO İLE SQL KOMUTLARI Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım. SQL-1 SELECT En basit SQL cümleciği oluşturmak için SELECT sözcüğü

Detaylı

www.wikispaces.com Kullanım Kılavuzu

www.wikispaces.com Kullanım Kılavuzu www.wikispaces.com Kullanım Kılavuzu İnternet tarayıcınıza(internet Explorer vb.) www.wikispaces.com adresini yazıp enter tuşuna bastığınızda yukarıdaki ekranla karşılaşacaksınız. Önceden oluşturmuş olduğunuz

Detaylı

MVC. Zeki çocuklar için Serisi. Altan TANRIVERDİ http://javam.org. Ocak'08. CopyLeft

MVC. Zeki çocuklar için Serisi. Altan TANRIVERDİ http://javam.org. Ocak'08. CopyLeft MVC Zeki çocuklar için Serisi Altan TANRIVERDİ http://javam.org Ocak'08. CopyLeft Başlarken MVC (Model View Controller) herhangi bir PHP yazılımcısının olmazsa olmazları arasında bulunması gereken kodlama

Detaylı

BÖLÜM 3 OPERAT A ÖRLER - 19 -

BÖLÜM 3 OPERAT A ÖRLER - 19 - BÖLÜM 3 OPERATÖRLER - 19 - 3.1 Operatörler Hakkında Yukarıdaki örnekleri birlikte yaptıysak = işaretini bol bol kullandık ve böylece PHP'nin birçok operatöründen biriyle tanıştık. Buna PHP dilinde "atama

Detaylı

Şimdi başka bir problem üzerinde çalışalım.

Şimdi başka bir problem üzerinde çalışalım. 86 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B03) Şimdi başka bir problem üzerinde çalışalım. Algoritmamızı yine sahte kod ve yukarıdan aşağıya adımsal iyileştirmeyle oluşturacağız

Detaylı

Adım Adım Windows 2000 Server Kurulumu 11 Cuma, 08 Eylül 2006 14:32 - Son Güncelleme Cumartesi, 12 Eylül 2009 03:45

Adım Adım Windows 2000 Server Kurulumu 11 Cuma, 08 Eylül 2006 14:32 - Son Güncelleme Cumartesi, 12 Eylül 2009 03:45 Nasıl bayaa yol kat ettik değil mi? Aslında bu noktada sistemimiz ciddi ciddi çalışmaya başladı. Bir süre sonra bir de baktık ki, kullanıcılar masaüstüne bazı "uygunsuz" duvar kağıtları koymaya başlamışlar.

Detaylı

ELN1001 BİLGİSAYAR PROGRAMLAMA I

ELN1001 BİLGİSAYAR PROGRAMLAMA I ELN1001 BİLGİSAYAR PROGRAMLAMA I DEPOLAMA SINIFLARI DEĞİŞKEN MENZİLLERİ YİNELEMELİ FONKSİYONLAR Depolama Sınıfları Tanıtıcılar için şu ana kadar görülmüş olan özellikler: Ad Tip Boyut Değer Bunlara ilave

Detaylı

GRUP İLKESİ İLE EXPLORER AÇILIŞ SAYFASINA ENGEL KOYMAK Mehmet Akif Ersoy Üniversitesi Gölhisar Meslek Yüksekokulu. Ders Adı: Sunucu İşletim Sistemi

GRUP İLKESİ İLE EXPLORER AÇILIŞ SAYFASINA ENGEL KOYMAK Mehmet Akif Ersoy Üniversitesi Gölhisar Meslek Yüksekokulu. Ders Adı: Sunucu İşletim Sistemi GRUP İLKESİ İLE EXPLORER AÇILIŞ SAYFASINA ENGEL KOYMAK Mehmet Akif Ersoy Üniversitesi Gölhisar Meslek Yüksekokulu Ders Adı: Sunucu İşletim Sistemi Osman AŞIK 22.12.2012 www.osmanasik.com AÇIKLAMA: Grup

Detaylı

HACETTEPE ÜNİVERSİTESİ BİLGİSAYAR ve ÖĞRETİM TEKNOLOJİLERİ EĞİTİMİ BTÖ201- Programlama Dilleri 1 Hazırlayanın; Adı Soyadı Çağdaş KARADEMİR Numarası 20742248 Ders Sorumlusu Hakan Tüzün İçindekiler Problem

Detaylı

3. BELGE DENETİMİ. Bu bölümde belge denetimi için gerekli olan yazım, dil bilgisi ve dil ayarlarını öğreneceğiz.

3. BELGE DENETİMİ. Bu bölümde belge denetimi için gerekli olan yazım, dil bilgisi ve dil ayarlarını öğreneceğiz. 3. BELGE DENETİMİ Bu bölümde belge denetimi için gerekli olan yazım, dil bilgisi ve dil ayarlarını öğreneceğiz. 3.1. Dil Ayarları Open office dünyanın her yerinde kullanılan bir ofis türüdür. İşletim sistemin

Detaylı

Spring Giriş Eğitimi

Spring Giriş Eğitimi Spring Giriş Eğitimi Bu eğitimde Spring ın hangi problemlere karşı etkili olduğundan bahsedeceğim. Ayrıca çekirdek Spring teknolojisinin nasıl işlediği; Dependency Injection - DI ve Inversion of Contol

Detaylı

Temel Bilgisayar Programlama

Temel Bilgisayar Programlama BÖLÜM 11: : Birçok programda, bazı verilerin disk üzerinde saklanmasına gerek duyulur. Bütün programlama dillerinde, sabit disk sürücüsü (Hard Disk Drive, HDD) üzerindeki verileri okumak veya diske veri

Detaylı

B03.10 Algoritmalari Uygulamak : Durum 3 (Yuvalı Kontrol Yapıları) Şimdi başka bir problem üzerinde çalışalım.

B03.10 Algoritmalari Uygulamak : Durum 3 (Yuvalı Kontrol Yapıları) Şimdi başka bir problem üzerinde çalışalım. 85 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B03) Şimdi başka bir problem üzerinde çalışalım. Algoritmamızı yine sahte kod ve yukarıdan aşağıya adımsal iyileştirmeyle oluşturacağız

Detaylı

ASSAM YÖNERGESİNE EK-T ASSAM WEB SİTESİ YÖNERGESİNE LAHİKA-2 WEB SİTESİ MAKALE EKLEME KILAVUZU 8.4.2014. www.assam.org.tr ASSAM

ASSAM YÖNERGESİNE EK-T ASSAM WEB SİTESİ YÖNERGESİNE LAHİKA-2 WEB SİTESİ MAKALE EKLEME KILAVUZU 8.4.2014. www.assam.org.tr ASSAM YÖNERGESİNE EK-T ASSAM WEB SİTESİ YÖNERGESİNE LAHİKA-2 WEB SİTESİ MAKALE EKLEME KILAVUZU 8.4.2014 ASSAM İçindekiler Önsöz... 3 ASSAM Web Sitesinde Makale Yayınlamak... 4 ASSAM Web Sitesine Nasıl Girerim?...

Detaylı

Göstericiler (Pointers)

Göstericiler (Pointers) C PROGRAMLAMA Göstericiler (Pointers) C programlama dilinin en güçlü özelliklerinden biridir. Göstericiler, işaretçiler yada pointer adı da verilmektedir. Gösterici (pointer); içerisinde bellek adresi

Detaylı

SIMAN KULLANIM KILAVUZU

SIMAN KULLANIM KILAVUZU SIMAN KULLANIM KILAVUZU Önder Öndemir SIMAN Simülasyon programı Model Çatı ve Deneysel Çatı olmak üzere iki kısımdan oluşur. Model çatı genel itibariyle modullerin ve işlem bloklarının yazıldığı kısımdır.

Detaylı

Bigisayar Programlama

Bigisayar Programlama Bigisayar Programlama (GÜZ 2015) DERS-02: C de Programlamaya Giriş Yrd. Doç Dr. Yakup EMÜL Cumhuriyet Üniv., Teknoloji Fakültesi Yazılım Mühendisliği Bölümü yakupemul@cumhuriyet.edu.tr Ofis Saatleri :

Detaylı

JAVASCRIPT JAVASCRIPT DİLİ

JAVASCRIPT JAVASCRIPT DİLİ JAVASCRIPT JAVASCRIPT DİLİ Netscape Navigator 2.0 ile birlikte geliştirilen JavaScript dili istemci taraflı (client-side) script dilidir. Web sayfalarında dinamik içerik sağlamak ya da kullanıcıyla iletişim

Detaylı

Hacettepe Robot Topluluğu

Hacettepe Robot Topluluğu Hacettepe Robot Topluluğu PIC Assembly Dersleri 1. Ders: PIC Programlamaya Giriş HUNRobotX - PIC Assembly Dersleri 1. Ders: PIC Programlamaya Giriş Yazan: Kutluhan Akman, Düzenleyen: Canol Gökel - 4 Haziran

Detaylı

Proje 1. Arayüz Tasarımı

Proje 1. Arayüz Tasarımı Proje 1. Arayüz Tasarımı 1. Yeni bir android projesi oluşturalım. Proje ismi: ArayuzTasarimi ve aktivity adı: ArayuzTasarimi olarak yazalım. 2. Projejiyi oluşturduktan sonra bize hazır olarak gelen dosyalar:

Detaylı

Hızlı Başlangıç Kılavuzu

Hızlı Başlangıç Kılavuzu Hızlı Başlangıç Kılavuzu Microsoft Access 2013 önceki sürümlerden farklı görünmektedir, dolayısıyla öğrenme eğrisini en aza indirmenize yardımcı olmak üzere bu kılavuzu hazırladık. Ekran boyutunu değiştirme

Detaylı

Python Programlama Dili

Python Programlama Dili Python Programlama Dili 2. Python da Koşul ifadeleri Python da koşullu durumların nasıl oluşturulacağını bu bölümde öğreneceğiz. Bu iş için kullanacağımız üç tane deyim var: if, else ve elif 2.1. if If

Detaylı

İskambil Kağıtları. Bir İskambil kağıdı

İskambil Kağıtları. Bir İskambil kağıdı Nesne Grupları ve Miras (Inheritance) Kavramı E.Fatih YETKİN İskambil Kağıtları Hatırlatma, bir iskambil destesinde 4 tipten olmak üzere 52 adet kağıt vardır: Maça Kupa Karo Sinek Deste Nesnesi: Bir İskambil

Detaylı

5. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ. hakanyilmaz@karabuk.edu.tr

5. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ. hakanyilmaz@karabuk.edu.tr 5. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II Öğr.Gör. Hakan YILMAZ hakanyilmaz@karabuk.edu.tr Karabük Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi 2 İçindekiler STRING FONKSİYONU... 3 SPLIT FONKSİYONU...

Detaylı

Kurumsal Güvenlik ve Web Filtreleme

Kurumsal Güvenlik ve Web Filtreleme S a y f a 1 antikor Kurumsal Güvenlik ve Web Filtreleme SshClient, Putty v.s. S a y f a 2 S a y f a 3 Yönetici olarak AntiKor a girmek için SshClient veya Putty programı kullanılır. IP olarak kurum içinden

Detaylı

KİŞİSEL "GÜÇ KİTABINIZ" Güçlenin!

KİŞİSEL GÜÇ KİTABINIZ Güçlenin! KİŞİSEL "GÜÇ KİTABINIZ" Güçlenin! Hangi alanlarda başarılıyım? Ne yapacağım? Okul hayatınız bittiğinde, önünüze gerçekleştirebileceğiniz çok sayıda fırsat çıkar. Kendi iş yerlerini açan insanların ne tür

Detaylı

Blogcu Kullanma Kılavuzu

Blogcu Kullanma Kılavuzu Blogcu Kullanma Kılavuzu İnternet tarayıcınıza www.blogcu.com adresini yazın ve görüntüleyin. 1 İki adımda basit olarak Web günlüğü oluşturabilirsiniz. Lütfen aşağıdaki adımları takip edin. Adım 1 : Sayfa

Detaylı

Oturum aç butonuna tıklayın.

Oturum aç butonuna tıklayın. Adım 1 Oturum açın. Oturum aç butonuna tıklayın. Adım 1 Oturum açın. Kullanıcı adınızı ve şifrenizi yazın. İpucu: Eğer şifrenizi hatırlayamazsanız, Şifrenizi mi unuttunuz? istemini kullanın. Adım 2 Profilinizi

Detaylı

5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi

5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi 5.HAFTA Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi Sınıf Kavramı: Sınıf (class) soyut bir veri tipidir. Nesne (object) onun somutlaşan bir cismidir. Java da sınıf (class) kavramını

Detaylı

SM 100 Terazi Ayarları. Digi SM 100. SM 100 Terazi Ayarları

SM 100 Terazi Ayarları. Digi SM 100. SM 100 Terazi Ayarları Digi SM 100 SM 100 Terazi Ayarları Digi SM 100 Terazi Ayarları Teraziyi ayarlamaya başlamak için öncelikle X S Z ENTER Raporlar Program Ayarlar FONKSIYON Bölümlerine geçiş yapabilmemiz gerekmektedir. Bunun

Detaylı

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler C# Programlama Dili İlk programımız Tür dönüşümü Yorum ekleme Operatörler 1 İlk Programımız Bu program konsol ekranına Merhaba dünya! yazıp kapanır. Programı geçen derste anlatıldığı gibi derleyin, sonra

Detaylı

Kurumsal Güvenlik ve Web Filtreleme

Kurumsal Güvenlik ve Web Filtreleme S a y f a 1 antikor Kurumsal Güvenlik ve Web Filtreleme SshClient, Putty v.s. S a y f a 2 S a y f a 3 S a y f a 4 S a y f a 5 S a y f a 6 S a y f a 7 şeklini alır. Bu durumda kullanıcı yasaklı konumdadır.

Detaylı

25. İngilizce Geniş Zaman Konu Anlatımı (Simple Present) (www.konuanlatımı.com)

25. İngilizce Geniş Zaman Konu Anlatımı (Simple Present) (www.konuanlatımı.com) 25. İngilizce Geniş Zaman Konu Anlatımı (Simple Present) (www.konuanlatımı.com) Merhaba. Bugünkü konumuz simple present tense; yani namı değer geniş zaman. İngilizcedeki zamanların içinde en çok kuralları

Detaylı

Autofs. Hüseyin Kaya hkaya@be.itu.edu.tr

Autofs. Hüseyin Kaya hkaya@be.itu.edu.tr Autofs Hüseyin Kaya hkaya@be.itu.edu.tr 30 Eylül 2001 İçindekiler 1 Kurulum 2 1.1................................... 2 2 Konfigürasyon Dosyaları 3 3 Uygulama 4 3.1 Kullanıcı Dizinlerinin Düzenlenmesi...............

Detaylı

Problem Yaklaşım Temelleri, Algoritma ve Akış Şeması

Problem Yaklaşım Temelleri, Algoritma ve Akış Şeması 1 Problem Yaklaşım Temelleri, Algoritma ve Akış Şeması Problem Bireylerin yaşadığı çevreye uyum sağlaması durumunda ortaya çıkan olumsuzluklar ve çatışmalar problem olarak değerlendirilir. Bu durumdaki

Detaylı

BİLGİSAYAR PROGRAMLAMA

BİLGİSAYAR PROGRAMLAMA BİLGİSAYAR PROGRAMLAMA Yrd. Doç. Dr. Beytullah EREN beren@sakarya.edu.tr 0264 295 5642 1 MİCROSOFT EXCEL Elektronik tablolama veya hesaplama programı olarak da adlandırılan Excel, girilen veriler üzerinde

Detaylı

24 Kasım 2011 / Perşembe

24 Kasım 2011 / Perşembe 24 Kasım 2011 / Perşembe Evde yüklemek için ServisPack1 yükleniyor.daha sonra Ajax Kontrol Toolkit i yüklüyoruz. 2008 için 3,5 olanı yüklenecek. Geçen hafta nasıl yükleneceği anlatıldı. TextBox1 ve ToolkitScriptManager

Detaylı

İÇERİK YÖNETİM SİSTEMİ (CMS) Bir web sitesi yayınlamak için yapılması gerekenler:

İÇERİK YÖNETİM SİSTEMİ (CMS) Bir web sitesi yayınlamak için yapılması gerekenler: İÇERİK YÖNETİM SİSTEMİ (CMS) Bir web sitesi yayınlamak için yapılması gerekenler: Yer satın alınır. İsim tescil ettirilir. Ftp ile wordpress klasörü upload edilir. Kendi bilgisayarımızda web sitesi yayınlamak

Detaylı

Değerli Datasoft Kullanıcısı;

Değerli Datasoft Kullanıcısı; Değerli Datasoft Kullanıcısı; Datasoft Yazılım, Genel Muhasebe, İşletme Defteri ve BBS (Bürü Bilgi Sistemi) Serbest Meslek Defteri Programları Beyannameler bölümümden çalışan; beyanname paketlerini gönderme,

Detaylı

int faktoriyel(int sayi) { int sonuc = 1; for(int i=sayi;i>0;i--) sonuc*=i; return sonuc; } int main() { int sayi = faktoriyel(5); }

int faktoriyel(int sayi) { int sonuc = 1; for(int i=sayi;i>0;i--) sonuc*=i; return sonuc; } int main() { int sayi = faktoriyel(5); } FONKSİYONLAR Fonksiyon, programcı tarafından seçilen bir kod bloğuna isim vermek için kullanılan araçtır. Fonksiyon ismi program içerisinde çağrıldığında fonksiyonun temsil ettiği kod çalıştırılır. Örneğin

Detaylı

C Programlama Dilininin Basit Yapıları

C Programlama Dilininin Basit Yapıları Bölüm 2 C Programlama Dilininin Basit Yapıları İçindekiler 2.1 Sabitler ve Değişkenler......................... 13 2.2 Açıklamalar (Expresions)........................ 14 2.3 İfadeler (Statements) ve İfade

Detaylı

Bu dersimizde pic pinlerinin nasıl input yani giriş olarak ayarlandığını ve bu işlemin nerelerde kullanıldığını öğreneceğiz.

Bu dersimizde pic pinlerinin nasıl input yani giriş olarak ayarlandığını ve bu işlemin nerelerde kullanıldığını öğreneceğiz. Ders-2: ---------- Bu dersimizde pic pinlerinin nasıl input yani giriş olarak ayarlandığını ve bu işlemin nerelerde kullanıldığını öğreneceğiz. Hazırlanan programlarda pic in zaman zaman dış ortamdan bilgi

Detaylı

Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015

Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015 Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015 KONU BAŞLIKLARI 1. Yazılım Mimarisi nedir? 2. Yazılımda Karmaşıklık 3. Üç Katmanlı Mimari nedir? 4. Üç Katmanlı Mimari

Detaylı

Hafta 2 EkLab 1. C ye Giriş. Ozan ŞENYAYLA Çağrı YENİCE

Hafta 2 EkLab 1. C ye Giriş. Ozan ŞENYAYLA Çağrı YENİCE Hafta 2 EkLab 1 C ye Giriş Ozan ŞENYAYLA Çağrı YENİCE http://ozansenyayla.com/programlama.php KAYNAK: Görkem Paçacı / İlker Korkmaz / Kaya Oğuz - İEU BT Hafta 2 GİRİŞ EkLab 1 Programlama, genel olarak,

Detaylı

İNTERNET PROGRAMCILIĞI - II

İNTERNET PROGRAMCILIĞI - II BÖLÜM 3 PHP İÇERİSİNDE DEĞİŞKENLERİN KULLANIMI Önce "değişken" ne demek onu tanımlamakla başlayalım. Değişken en basit tanımı ile bir verinin saklanmasında kullanılan hafıza alanıdır. PHP içerisinde bir

Detaylı

Bölüm 15. Fonksiyonel programlama dilleri (Functional Programming Languages)

Bölüm 15. Fonksiyonel programlama dilleri (Functional Programming Languages) Bölüm 15 Fonksiyonel programlama dilleri (Functional Programming Languages) Fonksiyonel programlama dilleri Buyurgan dillerin tasarımı doğrudan von Neumann mimarisine (von Neumann architecture) dayanır.

Detaylı

OYUN GELİŞTİRME AŞAMALARI-I

OYUN GELİŞTİRME AŞAMALARI-I Adı Soyadı : TAYFUN KARACA OYUN GELİŞTİRME AŞAMALARI-I Oyununuzun senaryosunu kısaca tanıtınız/ amacınıda belirtiniz: Oyunda bulunan karakterimizin adı mörfi, oyunda bir robosikletin içinde olduğu için

Detaylı

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Bilgisayar Programlama Ders 1 Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Bilgisayar Programlamaya C ile Programlamaya Yazılım: Bilgisayarın işlemler yapması ve karar vermesi

Detaylı

PORT HABERLEŞME SERİ PORT FARUK BOZAN

PORT HABERLEŞME SERİ PORT FARUK BOZAN PORT HABERLEŞME SERİ PORT FARUK BOZAN farukbozan@javatiryakileri.com bozanfaruk@gmail.com Merhaba değerli Java dostları. Bu yazımızda port haberleşme konusuna değineceğiz. Yalnız şu noktaya dikkatinizi

Detaylı

Teknik Doküman. Revit te 2B profil (family) nesne yaratmak

Teknik Doküman. Revit te 2B profil (family) nesne yaratmak Teknik Doküman Teknik Doküman Numarası: 10829 Yayım Tarihi: 31.07.2007 Ürün: Autodesk Revit 8-2008 Tür: Öğretici Konu: Revitte 2B profil (family) nesne yaratmak Revizyon No: 0 Revizyon Tarihi: Revit te

Detaylı

Google Dokümanları Kullanmak

Google Dokümanları Kullanmak Google Dokümanları Kullanmak 1. Kullanıcı Girişi ve Genel Ayarlar Google ana sayfasındaki Dokümanlar bağlantısından veya docs.google.com web bağlantı adresinden kullanıcı girişi yapabilir ve Dokümanlar

Detaylı

Google Chrome Kullanıyorsanız; Microsoft Internet Explorer Kullanıyorsanız;

Google Chrome Kullanıyorsanız; Microsoft Internet Explorer Kullanıyorsanız; Öncelikle şöyle kısaca değinelim Proxy (Vekil sunucu) Nedir? Zaman zaman yetkili sunucu veya proxy olarak da anılan Vekil sunucu, internete erişim sırasında kullanılan bir ara sunucudur. Bu durumda, örneğin

Detaylı

OPC Data Access (DA) Temelleri

OPC Data Access (DA) Temelleri OPC Data Access (DA) Temelleri Hazırlayan Kepware Technologies Türkçe Meal Salih GÖK Anket Data Access nedir? Data Access in getirileri OPC DA e giriş (Data Access) OPC DA Özelliklerine bakış Hızlı bir

Detaylı

Internet Programming II. Elbistan Meslek Yüksek Okulu 2014 2015 Bahar Yarıyılı

Internet Programming II. Elbistan Meslek Yüksek Okulu 2014 2015 Bahar Yarıyılı Internet Programming II Elbistan Meslek Yüksek Okulu 2014 2015 Bahar Yarıyılı Öğr. Gör. Murat KEÇECĠOĞLU 11-14 May. 2014 Form Form İşlemleri Tarayıcıdan bilgi alarak işlem gerçekleştirme FORM elemanları

Detaylı

Dinamik Kodlama. [X] Fusion@6. [X] Yeni Fonksiyon

Dinamik Kodlama. [X] Fusion@6. [X] Yeni Fonksiyon Dinamik Kodlama Ürün Grubu Kategori Versiyon Önkoşulu [X] Fusion@6 [X] Yeni Fonksiyon @6 Uygulama @6 Serisi ürünlerde, kullanıcı arabirimlerinin her yerine eklenen dinamik kodlama özelliği ile, programın

Detaylı

OKUL HABER EKLEME MODÜLÜ TANITIM DOSYASI. Okul haberlerinizi ilçemiz web sitesinde yayınlayabilmek için aşağıdaki adımları uygulamanız gerekmektedir.

OKUL HABER EKLEME MODÜLÜ TANITIM DOSYASI. Okul haberlerinizi ilçemiz web sitesinde yayınlayabilmek için aşağıdaki adımları uygulamanız gerekmektedir. OKUL HABER EKLEME MODÜLÜ TANITIM DOSYASI Okul haberlerinizi ilçemiz web sitesinde yayınlayabilmek için aşağıdaki adımları uygulamanız gerekmektedir. http://maltepe.meb.gov.tr/mebpanel adresine giriniz.

Detaylı

HUAWEI Cihazlara Erişim Yöntemleri

HUAWEI Cihazlara Erişim Yöntemleri HUAWEI Cihazlara Erişim Yöntemleri 24/06/2013 GİRİŞ Bir Huawei cihaza nasıl erişiriz sorusuna cevap vermek için, öncelikle belirlenmesi gereken, cihaz üzerinde ne yapılmak istendiğidir. Cihaza bir dosya

Detaylı

TEMEL BİLGİSAYAR. Ders Notları. Yrd. Doç. Dr. Seyit Okan KARA

TEMEL BİLGİSAYAR. Ders Notları. Yrd. Doç. Dr. Seyit Okan KARA TEMEL BİLGİSAYAR Ders Notları Yrd. Doç. Dr. Seyit Okan KARA Pencerenin ortasında bulunan beyaz sayfa, slayt tasarımında kullanacağımız sayfamızdır. Sol panelde bu slayt sayfasının küçültülmüş halde bir

Detaylı

KONTROL VE OTOMASYON KULÜBÜ

KONTROL VE OTOMASYON KULÜBÜ KONTROL VE OTOMASYON KULÜBÜ C DİLİ İLE MİKROKONTROLÖR PROGRAMLAMA EĞİTİMİ Serhat Büyükçolak Ahmet Sakallı 2009-2010 Güz Dönemi Eğitimleri Mikrokontrolör Gömülü sistemlerin bir alt dalı olan mikrokontrolör

Detaylı

MEB E-Posta Hizmetleri ve Outlook Programı

MEB E-Posta Hizmetleri ve Outlook Programı MEB E-Posta Hizmetleri ve Outlook Programı İçindekiler Bakanlık E-Posta Hizmetleri ve Sistem Ara yüzü E-posta Hizmetlerinin Outlook Programına Bağlanması Outlook 2010 Kullanımına ilişkin temel bilgiler

Detaylı

BİLGİSAYAR PROGRAMLAMA

BİLGİSAYAR PROGRAMLAMA BİLGİSAYAR PROGRAMLAMA Yrd. Doç. Dr. Beytullah EREN beren@sakarya.edu.tr 0264 295 5642 BAĞ_DEĞ_SAY ve BAĞ_DEĞ_DOLU_SAY İŞLEVİ BAĞ_DEĞ_SAY İşlevi: :Belirlenen aralıkta sayı içeren hücrelerin kaç tane olduğunu

Detaylı

ÇANKAYA ÜNİVERSİTESİ WEBMAIL KULLANIM KLAVUZU

ÇANKAYA ÜNİVERSİTESİ WEBMAIL KULLANIM KLAVUZU ÇANKAYA ÜNİVERSİTESİ WEBMAIL KULLANIM KLAVUZU Üniversitemiz Webmail servisi yenilenmiş olup Roundcube webmail üzerinden servis vermeye başlamıştır. Daha önce kullanılan SquirrelMail servisi https://oldwebmail.cankaya.edu.tr/

Detaylı

1. Bilgisayarınızda kullandığınız Web tarayıcı programını (Internet Explorer, Mozilla Firefox vb.) çalıştırınız.

1. Bilgisayarınızda kullandığınız Web tarayıcı programını (Internet Explorer, Mozilla Firefox vb.) çalıştırınız. VLAN Yapılandırma Değerli Müşterimiz, VLAN özelliği ile yerel ağınızı segmentlere ayırarak bölebilir ve aynı ağ geçidini kullanarak internete çıkabilen bu segmentlerin birbirlerine erişimlerini engelleyebilirsiniz.

Detaylı

Turquaz Windows kurulum dökümanı. ftp://ftp.mirror.ac.uk/sites/ftp.postgresql.org/binary/v7.3.1/windows/pgsql731wina1.exe

Turquaz Windows kurulum dökümanı. ftp://ftp.mirror.ac.uk/sites/ftp.postgresql.org/binary/v7.3.1/windows/pgsql731wina1.exe 1. Giriş Turquaz programını windows üzerinde çalıştırmak için öncelikle bilgisayarınızda postgresql ve Java nın kurulu olması gerekli. Aşağıdaki bilgi ve dökümanlar windows 2000 işletim sistemi üzerinde

Detaylı

Oluşturmak istediğimiz OU ye bir isim veriyoruz. Name kısmına ISTANBUL yazıyoruz,

Oluşturmak istediğimiz OU ye bir isim veriyoruz. Name kısmına ISTANBUL yazıyoruz, ORGANİZATİONAL UNİT (OU) OrganizationUnit(OU): Türkçe Yapısal Birim olarak adlandırılan ve merkezi yönetimimizi kolaylaştıran bir objedir. Organizational Unit domain içerisindeki kullanıcı, group ve bilgisayarları

Detaylı

Laboratuvar Çalışması 3.6.4 Konak Bilgisayarları Bağlama ve Yapılandırma

Laboratuvar Çalışması 3.6.4 Konak Bilgisayarları Bağlama ve Yapılandırma Laboratuvar Çalışması 3.6.4 Konak Bilgisayarları Bağlama ve Yapılandırma Hedefler Bir düz kablo kullanarak PC yi bir yönlendiriciye bağlama. PC yi uygun bir IP adresiyle yapılandırma. PC yi bir NetBIOS

Detaylı

Öğr. Gör. Serkan AKSU http://www.serkanaksu.net. http://www.serkanaksu.net/ 1

Öğr. Gör. Serkan AKSU http://www.serkanaksu.net. http://www.serkanaksu.net/ 1 Öğr. Gör. Serkan AKSU http://www.serkanaksu.net http://www.serkanaksu.net/ 1 JavaScript JavaScript Nedir? Nestcape firması tarafından C dilinden esinlenerek yazılmış, Netscape Navigator 2.0 ile birlikte

Detaylı

Kodlama Paneli. Nazmiye Demirel Ortaokulu SCRATCH 2014-2015. Scratch bir grafik programlama dilidir.

Kodlama Paneli. Nazmiye Demirel Ortaokulu SCRATCH 2014-2015. Scratch bir grafik programlama dilidir. Scratch bir grafik programlama dilidir. Scracth ile resim, ses, müzik gibi çeşitli medya araçlarını bir araya getirebilir, kendi animasyonlarımızı, bilgisayar oyunlarımızı tasarlayabilir ya da interaktif

Detaylı

ALGORİTMA DERSLERİ. Algoritma Nedir? Belirli bir problemi çözmek ve belli bir sonuca ulaşmak için çizilen yola algoritma denir.

ALGORİTMA DERSLERİ. Algoritma Nedir? Belirli bir problemi çözmek ve belli bir sonuca ulaşmak için çizilen yola algoritma denir. ALGORİTMA DERSLERİ Algoritma Nedir? Belirli bir problemi çözmek ve belli bir sonuca ulaşmak için çizilen yola algoritma denir. Bir Algoritma: 1. Başı olmalı 2. Basit olmalı 3. Problemin çözümünü mümkün

Detaylı

Harita Güncelleme MODEL. - Model ; DAİİCHİ üniteye sahip olan TÜM modeller PROSEDÜR. 1. Öncelikle bilgisayarınızdan

Harita Güncelleme MODEL. - Model ; DAİİCHİ üniteye sahip olan TÜM modeller PROSEDÜR. 1. Öncelikle bilgisayarınızdan Harita Güncelleme Bu broşür DAİİCHİ marka Navigasyon ünitesine sahip olan Hyundai modellerimizin, Navigasyon programındaki haritanın güncelleme işleminin nasıl yapılacağı konusunda bilgilendirme amacıyla

Detaylı

MS Publisher Kullanım Hatırlatmaları

MS Publisher Kullanım Hatırlatmaları MS Publisher Kullanım Hatırlatmaları Publisher bültenler, broşürler, Web siteleri, kartvizitler, kartpostallar, tebrik kartları, ortam etiketleri ve daha fazlasıyla ilgili tasarımlar içerir. Yayına başlamak

Detaylı

Hazırlayan: Tuğba Can Resimleyen: Pınar Büyükgüral Grafik Tasarım: Ayşegül Doğan Bircan

Hazırlayan: Tuğba Can Resimleyen: Pınar Büyükgüral Grafik Tasarım: Ayşegül Doğan Bircan Hazırlayan: Tuğba Can Resimleyen: Pınar Büyükgüral Grafik Tasarım: Ayşegül Doğan Bircan Mart 2009 Kendi Yaşam Öykünüzü Yazın Diyelim ki edebiyatla uğraşmak, yazı yazmak, bir yazar olmak istiyorsunuz. Bu

Detaylı

ATATÜRK ÜNİVERSİTESİ BİLGISAYAR MÜHENDİSLİĞİ BÖLÜMÜ BM 104- NESNEYE YÖNELİK PROGRAMLAMA DERSİ 2013-2014 BAHAR DÖNEMİ ÖDEV-3

ATATÜRK ÜNİVERSİTESİ BİLGISAYAR MÜHENDİSLİĞİ BÖLÜMÜ BM 104- NESNEYE YÖNELİK PROGRAMLAMA DERSİ 2013-2014 BAHAR DÖNEMİ ÖDEV-3 ATATÜRK ÜNİVERSİTESİ BİLGISAYAR MÜHENDİSLİĞİ BÖLÜMÜ BM 104- NESNEYE YÖNELİK PROGRAMLAMA DERSİ 2013-2014 BAHAR DÖNEMİ ÖDEV-3 (Son Teslim Tarihi: 06.06.2014 17:30 a kadar ) Teslim: Arş. Gör. Ferhat Bozkurt

Detaylı

Hoş geldiniz. Twinspace Kılavuzu. Bu kılavuz, TwinSpace de yeni olan Öğretmen Yöneticiler tarafından kullanılmak üzere tasarlanmıştır.

Hoş geldiniz. Twinspace Kılavuzu. Bu kılavuz, TwinSpace de yeni olan Öğretmen Yöneticiler tarafından kullanılmak üzere tasarlanmıştır. Hoş geldiniz Twinspace Kılavuzu Bu kılavuz, TwinSpace de yeni olan Öğretmen Yöneticiler tarafından kullanılmak üzere tasarlanmıştır. Sizlere: - TwinSpace inize erişme - Profilinizi düzenleme - Proje aktiviteleri

Detaylı

Klavyeden Basit Giriş/Çıkış İşlemleri

Klavyeden Basit Giriş/Çıkış İşlemleri Klavyeden Basit Giriş/Çıkış İşlemleri Klavyeden veri girilmesi, girilen verilere çeşitli işlemler uygulandıktan sonra ekrana yazdırılması ya da herhangi bir yazıcıdan çıktı alınması gibi işlemlerdir. Javada

Detaylı

Özyineleme (Recursion)

Özyineleme (Recursion) C PROGRAMLAMA Özyineleme (Recursion) Bir fonksiyonun kendisini çağırarak çözüme gitmesine özyineleme (recursion), böyle çalışan fonksiyonlara da özyinelemeli (recursive) fonksiyonlar denilir. Özyineleme,

Detaylı

MyEnglishLab: Speakout Öğrenci Kayıt Kılavuzu

MyEnglishLab: Speakout Öğrenci Kayıt Kılavuzu MyEnglishLab: Speakout Öğrenci Kayıt Kılavuzu 2013 Merhabalar, Bu dokümanda MyEnglishLab: Speakout öğrenci kayıt işlemini inceleyeceğiz. Kayıt işlemi her bir erişim kodu için bir kez yapılmaktadır. Kayıt

Detaylı

Fen ve Mühendislik Uygulamalarında MATLAB

Fen ve Mühendislik Uygulamalarında MATLAB Fen ve Mühendislik Uygulamalarında MATLAB Dosya Yönetimi Fonksiyon Yapısı Doç. Dr. İrfan KAYMAZ MATLAB Ders Notları DOSYA YÖNETİMİ Şu ana kadar bir programda hesaplanan veya elde edilen veriler RAM de

Detaylı

Bölüm 15. Fonksiyonel Programlama Dilleri ISBN 0-321-49362-1

Bölüm 15. Fonksiyonel Programlama Dilleri ISBN 0-321-49362-1 Bölüm 15 Fonksiyonel Programlama Dilleri ISBN 0-321-49362-1 15. Bölüm konuları Giriş Matematiksel fonksiyonlar Fonksiyonel programlama dillerinin temelleri İlk fonksiyonel programlama dili LISP Scheme

Detaylı

Ek 6. ÇALIŞANLARI DEĞERLENDİRMEK İÇİN KULLANILACAK KRİTERLER. 16. Temsil Yeteneği

Ek 6. ÇALIŞANLARI DEĞERLENDİRMEK İÇİN KULLANILACAK KRİTERLER. 16. Temsil Yeteneği Ek 6. ÇALIŞANLARI DEĞERLENDİRMEK İÇİN KULLANILACAK KRİTERLER 16. Temsil Yeteneği Kurumu temsil yeteneğinden yoksun, tutarsız ve güven oluşturmayan bir izlenim vermektedir. 1 Giyim, konuşma ve tavırlarında

Detaylı

Web sayfalarında en önemli bir konu halini alan bilgi girişi ve bunların kontrollerini yapan kontrollerdir (Şekil 3.1). Şekil 3.1

Web sayfalarında en önemli bir konu halini alan bilgi girişi ve bunların kontrollerini yapan kontrollerdir (Şekil 3.1). Şekil 3.1 VALIDATION KONTROLLER 26 Web sayfalarında en önemli bir konu halini alan bilgi girişi ve bunların kontrollerini yapan kontrollerdir (Şekil 3.1). Şekil 3.1 Kullanıcıların hatasız ve eksiksiz olarak formların

Detaylı

Şimdi Okullu Olduk İlkokul 1. Sınıf

Şimdi Okullu Olduk İlkokul 1. Sınıf Yrd. Doç. Dr. Özgül Polat Şimdi Okullu Olduk İlkokul 1. Sınıf 8 Adım ve Soyadım Ritim tutalım. Parmak şıklatmayı biliyor musun? Aşağıdaki yönergeyi takip edelim. Sırayla parmak şıklatıp ayağımızı yere

Detaylı

Kütüphane Web Sitesi Nedir? Bina x Web sitesi

Kütüphane Web Sitesi Nedir? Bina x Web sitesi Kütüphane Web Sitelerinde İçerik Zenginleştirme Adnan Menderes Üniversitesi Aydın 26 Ekim 2001 Dr. Hatice Kübra Bahşişoğlu kubra@hacettepe.edu.tr 04.06.2008 ÜNAK 1 Kütüphane Web Sitesi Nedir? Bina x Web

Detaylı

END3061 SİSTEM ANALİZİ VE MÜHENDİSLİĞİ

END3061 SİSTEM ANALİZİ VE MÜHENDİSLİĞİ END3061 SİSTEM STEM ANALİZİ VE MÜHENDİSLİĞİ BİLİŞİM M SİSTEMLERS STEMLERİ GİRİŞİŞ Bir sistem analizcisinin ana misyonu, kullanıcıların fiziksel gereksinimlerini açımlamak ve bunları yazılıma dönüştürmektir.

Detaylı

BU CİHAZ BİLGİSAYAR BAĞLANTILI SİSTEM OLMAYIP, BAĞLI OLDUĞU BİLGİSAYAR İLE DEVAMLI İLETİŞİM YAPMAMAKTADIR. Mali Onaylı Yazarkasa

BU CİHAZ BİLGİSAYAR BAĞLANTILI SİSTEM OLMAYIP, BAĞLI OLDUĞU BİLGİSAYAR İLE DEVAMLI İLETİŞİM YAPMAMAKTADIR. Mali Onaylı Yazarkasa Hugin ALPHA Alpha ER-425TX ER-350N BU CİHAZ BİLGİSAYAR BAĞLANTILI SİSTEM OLMAYIP, BAĞLI OLDUĞU BİLGİSAYAR İLE DEVAMLI İLETİŞİM YAPMAMAKTADIR. Mali Onaylı Yazarkasa 1 İÇİNDEKİLER İÇİNDEKİLER... 2 Bilgisayar

Detaylı