ÜNİTE PROGRAMLAMA TEMELLERİ TEMEL KAVRAMLAR

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

Download "ÜNİTE PROGRAMLAMA TEMELLERİ TEMEL KAVRAMLAR"

Transkript

1 TEMEL KAVRAMLAR LU Û z Giriş Bilgisayar Bileşenler Donanım Yazılım Bilgisayarın Temel Fonksiyonları Bilgisayarların Sınıflandırılması PROGRAMLAMA TEMELLERİ Yrd. Doç. Dr. Y. Ziya AYIK Bu üniteyi çalıştıktan sonra; Bilgisayarın yapısını kavrayabilecek, Donanım ve yazılımın özelliklerini sayabilecek, Bilgisayarın temel fonksiyonları ve bilgisayarların sınıflandırabileceksiniz. ÜNİTE 1 Atatürk Üniversitesi Açıköğretim Fakültesi

2 GİRİŞ Bilginin günden güne çığ gibi büyümesi, bilginin anlaşılabilirliğini ve analizini güçleştirmiş ve bilginin daha etkin işlenmesi ve istenildiği sürece saklanması gereğini ortaya çıkarmıştır. Yığın hâldeki bilgilerle baş edebilmek için önceleri çok ilkel yöntem lerle yapılan kayıt işlemleri yeterli olmayınca, bilgisayar kullanım ihtiyacı oluşmuştur. Bilgisayarların kullanılmaya başlanmasından itibaren yakın geçmişte yaşayanların bile hayal edemeyeceği oranda, akla gelebilecek bütün işlem ler artık bilgisayarlar tarafından gerçekleştirilm ektedir. Bilgisayarlar yapısal olarak, bilgilerin girilmesi, girilen bilgilerin işlenmesi ve işlem sonuçlarının alınması şeklinde üç işlevi yerine getirecek şekilde Donanım ve yazılım olarak adlandırılan iki ana bileşenden oluşm aktadırlar. Bir bilgisayarın ana bileşenleri yazılım ve donanımdır. Şekil 1.1. Bilgisayarın Genel Görünümü BİLGİSAYAR Genel anlamda bir bilgisayar aşağıdaki şekilde tanım lanabilir; "Yığın haldeki veri ve bilgileri alarak mantıksal ve matematiksel işlemlerden geçiren, söz konusu veri ve bilgileri istenildiği sürece saklayabilen ve istenildiğinde sonuçları kullanıcı veya programcılara aktarabilen donanım ve yazılım şeklinde iki ana bölümden oluşan elektronik bir makine." Elbette bilgisayarın tanımı çok farklı şekillerde yapılabilir. Ancak önemli olan elektronik bir yapısının olduğunu, veri ve bilgiler üzerinde işlemler gerçekleştirebilme özelliğinin olduğunu ve veri bilgileri saklama gibi önemli bir donanım özelliğine sahip olduğunu bilmek ve vurgulam aktır. Bileşenler Bilgisayarlar iki ana bileşenden oluşur; 1. Donanım (Hardware) 2. Yazılım (Software) Atatürk Üniversitesi Açıköğretim Fakültesi 2

3 Donanım ana ve çevre birimler olmak üzere iki alt bölüme ayrılır. Donanım Şekil 1.2. Bilgisayarın Bileşenleri Yazılım DONANIM Donanım Bilgisayarın elektronik yapısından oluşan, gözle görülüp elle tutulabilen bütün fiziksel parçalarına denir. Donanım ana ve çevre birimler olmak üzere iki alt bölüme ayrılabilir. Bilgisayar kasası, mainboard (anakart), harddisk, ekran kartı, ekran, klavye, mouse vb. donanım birimlerine örnek olarak verilebilir. Bir bilgisayarın donanım yapısı aşağıdaki şekilde şematize edilebilir. Atatürk Üniversitesi Açıköğretim Fakültesi 3

4 Giriş birimleri Şekil 1.3. Bilgisayarın Donanım Yapısı Bilgisayarda veri girişi yapmak için kullanılan birimleri Giriş birimleri denir. Klavye, fare, mikrofon, kamera, CD, DVD, tarayıcı ve barkod okuyucu gibi birimler ilk akla gelen giriş birimlerindendir. Merkezi işlem birimi Merkezi işlem birimi (Central Processing Unit-CPU) bir bilgisayar sistem inin beyni olarak düşünülür. Merkezi işlem biriminin iki tem el bileşeni vardır. Aritm etik ve mantık birimi Kontrol birimi Ana bellekte saklı bilgiler kontrol birimi tarafından okunur ve merkezi işlemci saklayıcılarına (register) aktarılır. Ana bellekten okunan komutların anlamlarının çözülmesi de yine kontrol birimince yerine getirilir. CPU'lar mikroişlemci denilen yarı iletken yongalar kullanırlar. Bu mikroişlemciler belleği, aritm etik-m antık ve kontrol devrelerini tek bir yonga üzerinde birleştirir. CD, DVD'ler hem giriş hem de çıkış biri olarak kullanılırlar. Çıkış birimleri Bilgisayar ortamında işlenen veri ve bilgilerin programcı veya kullanıcılara aktarılmasını sağlayan birimlere çıkış birimleri denir. Ekran, yazıcı, çizici, hoparlör, disketler, diskler, CD ve DVD en başta sayabileceğimiz çıkış birimlerindendir. Bellek birimleri Veri veya bilgilerin kalıcı ya da geçici bir süre için saklandığı birimlerdir. Hard diskler, flash bellekler, Cd ve DVD bellek birimlerinden birkaçıdır. YAZILIM Yazılım Bilgisayarda işlemler gerçekleştirmek ve bilgisayarın çalışmasını sağlamak amacıyla, belirli kurallara göre oluşturulmuş her türlü kodlamaya yazılım denir. Yazılım veri ve bilgileri kullanarak geliştirilmiş programlardan oluşur. Yazılım soyut bir kavramdır, fiziksel bir yapısı yoktur. Yazılım, çözülmek istenilen herhangi bir problemin çözüm yollarının kod yazılarak sağlanmasıdır. Yazılım, bilgisayarın çalışmasını sağlayan sistem yazılımları ve bilgisayarda işlem yapılmasını sağlayan uygulama yazılımları şeklinde gruplandırılabilir. Sistem yazılımları bilgisayarı yöneten işletim sistemlerinden oluşan yazılımlar iken uygulama yazılımları kullanıcıların bilgisayarda istedikleri işlemleri Atatürk Üniversitesi Açıköğretim Fakültesi 4

5 gerçekleştirmeleri amacıyla programlama dilleri kullanılarak gerçekleştirilen yazılım lardır. Şekil 1.4. Yazılım örneği Uygulama Yazılımları Kelime işlem, Hesap Tablosu ve Dosya yöneticisi ve veri tabanı yönetim yazılımları Genel Amaçlı Uygulama Yazılım larındandır. Uygulama yazılımları kullanıcıların belli başlı bazı işlemleri icra etmelerine imkân veren yazılımlardır. Uygulama yazılımlarının geliştirilmesi için programlama dilleri ve diğer bazı uygulama geliştirme araçları kullanılır. Uygulama yazılımları belli bir işletim sistemi altında çalıştırılm ak üzere hazırlanır. Örneğin, Macintosh işletim sistemi altında çalışmak üzere hazırlanan bir kelime işlem programı DOS veya WINDOWS işletim sistemini kullanan kişisel bilgisayarlarda çalışmayacaktır. Bununla birlikte, çoğu durumlarda ticari uygulamalar diğer birçok işletim sistemi altında da çalışabilecek şekillerde hazırlanmaktadır. Genel Amaçlı Uygulama Yazılımları Günümüzde bilgisayar sistemleri için çok sayıda genel amaçlı uygulama yazılımı mevcuttur ve bunların sayısı her geçen gün hızla artm aktadır. Bu yazılımlardan kişi ve kurumlarca en yaygın olarak kullanılanları kelime işlem programları, elektronik hesap tablosu programları ve dosya/veri tabanı yönetim sistem leridir. Kelime işlem programları: Kelime işlem programları bilgisayar sisteminin, çok güçlü özellikleri olan bir daktilo makinesi olarak kullanılmasına imkân veren programlardır. Bu programlar diğer genel amaçlı uygulama yazılımlarına oranla çok daha yaygın bir şekilde kullanılmaktadır. Bazı kelime işlemciler, masaüstü yayıncılık, elektronik takvim ve elektronik posta gibi özelliklere sahip olan entegre ofis sistem lerinin tem elidir. Hesap Tablosu Programları: Hesap tablosu programları bilgisayar sistemini son derece kabiliyetli bir elektronik hesap makinesine dönüştüren programlardır. Bu programların çoğu, verileri alıp çeşitli türlerde grafiklere dönüştürme kabiliyetine de sahiptir. Atatürk Üniversitesi Açıköğretim Fakültesi 5

6 Dosya yöneticisi ve veri tabanı yönetim sistemleri: Dosya yöneticileri ve veri tabanı yönetim sistemleri büyük miktarlardaki verileri depolayıp bu verilere hızlı bir erişim sağlanmasına ve bu verilerden raporlar hazırlanmasına imkân veren programlardır. Özel Amaçlı Uygulama Yazılımları Özel amaçlı uygulama yazılımları belirli bazı işleri icra etmek için geliştirilen dolayısıyla sınırlı amaçları olan yazılımlardır. Aşağıda belli bazı özel amaçlı yazılım türleri kısaca izah edilmiştir. Analiz ve karar verme: Bu tür yazılımlardan biri karar destek sistem leridir. Bir karar destek sistem i belli işlemleri yapmaktan çok problemlerin çözümünde yöneticilere yardımcı olmak amacıyla geliştirilmiş olan bir sistemdir. Birçok karar destek sistemi matematiksel modellerden faydalanmak üzere istatistik ve yönetim bilimi yazılımlarını birleştirir. Karar vermede kullanılan bir diğer yazılım çeşidi ise uzman sistem yazılımlarıdır. Uzman sistem ler, insan uzmanların bir sonuç çıkarmak üzere kullandıkları metodolojiyi taklit ederek insan uzmanlardan alınabilecek tavsiyeleri karar vericilere sağlamak amacıyla kullanılan yazılım lardır. Özel amaçlı uygulama yazılımları belirli bir amacı gerçekleştirmek için hazırlanan yazılım lardır. Planlama, programlama, koordinasyon ve organizasyon: Finansal planlama, bütçe, masraf ve satış raporları hazırlama, toplantı gündemlerinin hazırlanması ve randevuların ayarlanması gibi işler yine uygulama yazılımları yardımıyla yapılır. Bu tür yazılımlara m asaüstü düzenleyici yazılımlar denir. Ayrıca yöneticilerin Gant şemaları, PERT, CPM ve diğer proje yönetim araçlarını kullanmasını kolaylaştıran yazılım lar da vardır. Bu yazılımlara ise proje yönetim i yazılımları denir. Raporlama: Bu uygulamalar verilerin sıralanması, sınıflandırılması, özetlenmesi ve güzel görünümlü bir duruma getirilmesi amacıyla kullanılan yazılım lardır. Sunum: Sunum uygulamaları belli bir konuda yapılan araştırmanın veya hazırlanan raporların sonuçlarını bilgisayar yardımıyla diğer kişilere anlatmak için kullanılırlar. Sunum genellikle bilgisayara bağlı bulunan bir projeksiyon cihazı yardımıyla yapılır. Bu uygulamalar her türlü grafik, ses ve video görüntülerinin kullanılmasına imkân verir. İletişim: İletişim programları bilgisayar ağları arasında iletişim kurulmasına imkân veren programlardır. Günümüzde yaygın bir şekilde kullanılan internet hizmetlerinden yararlanm ak için geliştirilmiş olan her türlü program iletişim programları içerisinde düşünülebilir. Eğitim: Artık bilgisayarlar eğitimde her geçen gün gittikçe artan bir oranda kullanılmaktadır. Bugün piyasada mevcut olan hemen hemen tüm uygulamalar öğreticileriyle birlikte gelmektedir. Ansiklopediler, belli bir yer veya konuda hazırlanmış olan tanıtıcı programlar ve yabancı dil veya herhangi bir dersle ilgili olarak yardımcı olmak üzere hazırlanmış programlar eğitim amaçlı programlardır. Sistem Yazılımları Atatürk Üniversitesi Açıköğretim Fakültesi 6

7 Sistem yazılımları, uygulama yazılımları ile bilgisayar donanımı arasında aracılık eden yani bilgisayar sisteminin pürüzsüz bir şekilde çalışmasını sağlayan yazılımlardır. Sistem yazılımlarını işletim sistemi (Operating System)yazılımları ve programlama dilleri şeklinde gruplandırdıktan sonra programlama dilleri hakkında detaylı bilgi verilecektir. Programlama Dilleri Genel amaçlı olsun özel amaçlı olsun tüm uygulama yazılımları programlama dilleriyle yazılır. Bir programlama dili, insanların bilgisayara çeşitli işlemler yaptırmasına imkân veren her türlü sembol, karakter ve kurallar grubudur. Programlama dilleri insanlarla bilgisayarlar arasında tercüm anlık görevi yapar. Programlama dilleri, bilgisayara neyi ne zaman yapacağını belirten deyim ve komutlar içerir. Programlama dilleri zaman içerisinde gelişerek günümüzde çok kabiliyetli bir duruma gelmiştir. Bu kesimde programlama dillerinin gelişme süreci kısaca incelenecektir. Programlama dillerinin tarihi gelişimi aşağıdaki tabloda verilm iştir. Kuşak Programlama Dili Periyod 1 Makine dili 1940'lı ve 1950'li yıllar arası 2 Assembly dili 1950'li yıllardan itibaren 3 Yüksek seviyeli diller 1960'lı yıllardan itibaren 4 Çok yüksek seviyeli diller 1970'li yıllardan itibaren Programlama dilleri, programcıların bilgisayara yaptırmak istedikleri işlemleri gerçekleştirmek için kullandıkları araçlardır, 5 Yapay zekaya yönelik diller, 1980'li yıllardan itibaren Düşük seviyeli diller: Bilgisayarların ilk dönemlerindeki programlama dilleri, kullanımı çok zor olan makine dili ve assembly dilleriydi. Makine dili, geliştirilen ilk programlama dilidir ve ilk kuşağı temsil eder. Makine dilinde yazılan tüm komutlar 0 ve 1'lerden oluşur. Bütün talim atlar en detaylı bir şekilde tanım lanır ve iki tabanlı sayı sistemi kullanılarak kodlama yapılır. Assembly dilleri: Assembly dilleri ikinci kuşak dillerdir ve geliştirilmesine 1950'li yılların başlarında Grace Hopper tarafından öncülük edilmiştir. Bu dillerde makine dili talim atları daha kolay bir şekilde anlaşılabilecek ve hatırlanabilecek olan sembollerle ifade edilir. Düşük seviyeli diller grubundan sayılmasına rağmen, makine diline göre bir adım daha ileride olan assembly dilleri günümüzde bile programcılar tarafından yaygın bir şekilde kullanılmaktadır. Çünkü bu dillerle yazılan programlar genellikle çok hızlı çalışır ve daha az depolama yüzeyi gerektirirler. Bununla birlikte bu dillerle programlama yapmak çok yorucu, sıkıcı ve zaman alıcı olduğundan cazibesini kaybetmektedir. Yüksek seviyeli diller: Üçüncü kuşak da denilen yüksek seviyeli programlama dilleri öğrenilmesi daha kolay, program yazılması daha az zaman alan, daha iyi sonuçlar temin eden programlama dilleridir. Yüksek seviyeli dillerden birinde Atatürk Üniversitesi Açıköğretim Fakültesi 7

8 yazılan bir kaynak program makine diline çevrilmek zorundadır. Dönüştürme işlemini gerçekleştiren programa derleyici (compiler) denir. BASIC, COBOL, FORTRAN, Pascal, PL/I ve Ada dilleri bu kategorideki programlama dillerine sadece bir kaç örnek oluşturur. Çok yüksek seviyeli diller: Dördüncü kuşak diller olarak da isimlendirilen çok yüksek seviyeli diller programlama işini çok daha kolaylaştırmıştır. Bu dillerin ardındaki temel felsefe kullanıcıların bilgisayara bir şeyin nasıl yapılacağını değil ne yapılacağını ifade edebilmelerine imkân verm esidir. Örneğin, sayıların sıraya dizdirilmesi işlemini yapabilmek için bir yüksek seviyeli dil ile karmaşık bir mantık kullanarak satırlık bir program yazmak gerekir. Bunun aksine bir dördüncü kuşak dil ile bir kullanıcının yapacağı iş sıraya dizilecek alanı belirlemek, sıralama işleminin büyükten küçüğe mi yoksa küçükten büyüğe mi yapılacağını belirlemek ve ekrandaki bir ikona tıklayarak ya da bir menüden "sırala" komutunu seçerek sıralama işlemini gerçekleştirm ektir. İlk geliştirilen dördüncü kuşak diller ile daha sonraları geliştirilen diller arasında bile takip edilen prosedürler ve kullanılan metotlar bakımından büyük farklılıklar vardır. Yeni geliştirilen diller çok daha karmaşık işleri çok daha kolay bir şekilde yapmaya imkân verm ektedir. Yapay zekâ dilleri: Bu diller insan davranışını taklit etmeye yönelik yapay zekâ içeren programların yazımında kullanılan mantıksal dillerdir. Atatürk Üniversitesi Açıköğretim Fakültesi 8

9 Çok Kullanılan Bazı Diller ve Özellikleri Dil Türü Açıklama Bilgisayarlar bilgileri istenildiği sürece saklayabilirler. Unutmazlar! ALGOL YS FORTRAN'a benzer ama daha kapsamlı ve esnek bir dil APL YS Fen bilimleri uygulamalarında yaygın kullanımı olan bir dil BASIC YS Çok kullanılan ve öğrenilmesi kolay olan bir dil C++ ÇYS Nesneye yönelik popüler bir dil COBOL YS Daha çok işletme uygulamalarında kullanımı olan bir dil FORTH DS/YS Assembly dilleri ve yüksek seviyeli diller arasında bir dil FORTRAN YS Fen bilimleri uygulamalarında kullanılan en eski yüksek seviyeli dil LISP YS Yapay zeka uygulamalarında çok kullanılan dillerden biri Modula-2 YS Sistem yazılımları geliştirmekte kullanılan ve özel kabiliyetleri olan bir dil PL/1 YS Hem işletme uygulamalarını hem de fen bilimleri uygulamalarını destekleyen yüksek kabiliyetli bir dil Prolog YS Yapay zeka uygulamalarında çok kullanılan dillerden biri RPG ÇYS Rapor oluşturma dili Smalltalk ÇYS İlk nesneye yönelik dil ve kullanımı hala yaygın SQL ÇYS İlişkisel veri tabanlarıyla birlikte en çok kullanılan yapısal sorgulama dili * DS=Düşük Seviyeli, YS=Yüksek Seviyeli, ÇYS=Çok Yüksek Seviyeli BİLGİSAYARIN TEMEL FONKSİYONLARI Bir bilgisayarla yapılan işlem ler üç temel faaliyetten ibarettir. Atatürk Üniversitesi Açıköğretim Fakültesi 9

10 Giriş/çıkış işlemleri Veriler ve bilgiler üzerinde yapılan işlemler Veri ya da bilgilerin saklanması ve nakli işlemleri Giriş/çıkış işlemleri Bir bilgisayar, yukarıda Bilgisayarın bileşenleri bölümünde bahsedilen çeşitli giriş ve çıkış cihazları vasıtasıyla toplanan verileri alma ve işlenen verileri de sunma kabiliyetine sahiptir. Klavye, term inal ve yazıcı gibi yaygın giriş/çıkış cihazları insan/m akine iletişimini mümkün kılar. Veriler ve bilgiler üzerinde yapılan işlemler Veriler ve bilgiler üzerinde yapılabilecek işlemleri açıklamadan önce veri ve bilgi kavramlarının tanım larını verelim. Veri: Tek başlarına anlam taşımayan sayılar, rakamlar, sözcükler, metinler, resimler, olaylar vb. biçiminde temsil edilen ham gerçekliklerdir. İşlenmemiş bilgi olarak kabul edilir. Bilgi: Bilgi, olguları ve olayları tanım a, anlama ve özellikle açıklamaya yönelik, eğitim, gözlem, araştırma veya deneyim yoluyla elde edilen ve bütün bunların insanın zihinsel değerlendirmesi neticesinde ortaya çıkan olgular veya fikirlerdir. Verilere bilgisayar tarafından matematiksel veya mantıksal işlem ler uygulanması sonucu elde edilen değerlerdir. Merkezi işlem biriminde veriler ve bilgiler üzerinde gerçekleştirilen işlem ler aşağıdaki şekilde gruplandırılabilir. Sınıflandırma Bilgi, verinin işlenmiş halidir. J Benzer birimlerin gruplara veya sınıflara bölünmesi sınıflandırma olarak isimlendirilir. Sınıflandırma genellikle veriler için önceden tespit edilmiş kısaltma veya kodlar vasıtasıyla yapılır. Kod türleri nümerik (111, 112, 113 gibi), alfabetik (A,B,C gibi) ya da alfanümerik (A1, B1, C1 gibi rakam ve harflerin karışımı şeklinde) olabilir. Aritmetik ve mantıksal işlemler Aritm etik işlemler verilerin toplama, çıkarma, çarpma ve bölme gibi işlemlere tabi tutulmasıdır. Bilgisayar ayrıca mantıksal karşılaştırm alar yapma kabiliyetine de sahiptir. Örneğin, A ve B şeklinde ifade edilen iki veri birimi karşılaştırıldığında sadece üç muhtemel sonuç söz konusudur. (1) A, B' den Atatürk Üniversitesi Açıköğretim Fakültesi 10

11 küçüktür (A<B); (2) A, B' ye eşittir (A=B); (3) A, B' den büyüktür (A>B). Bu karşılaştırma kabiliyeti bilgisayarı önemli bir özelliğidir. Çünkü çoğu karmaşık problem ler karşılaştırm alar yapmak suretiyle çözülebilir. Sıralama Veriler mantıksal bir sıra içerisinde düzenlenmişse bunlarla çalışmak ve analiz etmek daha kolay olur. Mesela nümerik veriler küçükten büyüğe veya büyükten küçüğe, alfanümerik veriler ise A'dan Z'ye veya Z'den A'ya şeklinde düzenlenebilir. Bilgisayarın mantıksal karşılaştırmalar yapmak suretiyle gerçekleştirdiği bu düzenlemeye sıralama denir. Özetleme Veri yığınlarının daha kısa ve kullanılabilir şekle indirgenmesine özetleme adı verilir. Bilgisayarın çeşitli grafik programları yardımıyla verilerden pasta veya sütun grafikler çıkarması özetlemeye bir örnek oluşturur. Saklama ve nakletme işlemleri Saklama, veri ve bilgilerin daha sonraki kullanım için bellek birimlerinde saklanmasıdır. İstenildiğinde bu veri ve bilgilere çabucak ulaşılabilir ve kullanılabilir. Ayrıca, bilgisayarlar veri ve bilgileri bir yerden başka bir yere transfer etme kabiliyetine sahiptir. İletişim, herhangi bir elektronik iletişim aracı ile yapılabilir. Genel amaçlı dijital bilgisayarlar, günümüzde en yaygın kullanılan bilgisayarlar grubudur. BİLGİSAYARLARIN SINIFLANDIRILMASI Dijital Amaçlarına Göre Bilgisayarlar Hibrit Analog Merkezi Bilgisayarlar Hacimlerine Göre Bilgisayarlar Müstakil Mikrobilgisayarlar Ağ Sistemleri Bilgisayarları amaçlarına ve kapasitelerine göre alt gruplara ayırmak mümkündür. Atatürk Üniversitesi Açıköğretim Fakültesi 11

12 Amaçlarına Göre Bilgisayarlar Amaçlarına göre bilgisayarlar Dijital, Analog ve Hibrit bilgisayarlar olarak üç başlık altında incelenebilir Dijital (sayısal) bilgisayarlar Dijital bilgisayarlar iki tabanlı sayı sistemine göre yani, 0 ve 1 dijitleriyle işlem yapan ve sonuçları rakamlar, harfler ve diğer sembollerle gösteren bilgisayarlardır. Dijital bilgisayarlar da, özel amaçlı ve genel amaçlı olmak üzere iki gruba ayrılabilir. Özel amaçlı dijital bilgisayarlar; Özel amaçlı dijital bilgisayarlar yalnızca spesifik bir fonksiyonu icra etmek için tasarlanırlar. Bir özel amaçlı dijital bilgisayarda talim atlar makinede kalıcı bir şekilde kaydedilir. Otomobillerdeki yakıt, ateşleme ve fren sistemini kontrol etmek üzere kullanılan işlem ciler bu tür bilgisayarlara bir örnek teşkil eder. Genel amaçlı dijital bilgisayarlar Genel amaçlı dijital bilgisayarlar, farklı programları saklayabilen ve böylece sayısız uygulamada kullanılabilen bilgisayarlardır. Böyle bir bilgisayar, bir kaç saniyede büyük bir ücret bordrosunu hesaplayabilir, güzel görünümlü grafikler çizebilir veya çok karmaşık matematik hesaplamalar yapabilir. Bundan sonraki bölümlerde kullanacağımız bilgisayar terim iyle genel amaçlı dijital bilgisayarlar kastedilecektir. Analog (örneksel) bilgisayarlar Analog bilgisayarlar fiziksel değerleri ölçen bilgisayarlardır. Örneğin, bir benzin istasyonundaki benzin pompası benzin akışını miktar ve fiyat cinsinden değerlere dönüştüren bir analog işlemci ihtiva eder. Ya da bir postanede gönderilecek paketleri tartarak bu paketlerin ağırlıklarını ve gönderme ücretini hesaplayan cihazlar bir başka analog bilgisayar örneğidir. Hibrid(melez) bilgisayarlar Merkezi bilgisayar sistem leri, bir ana bilgisayar ve ona bağlı genellikle akılsız çok sayıda terminalden oluşur. Hibrid bilgisayarlar analog ve dijital bilgisayarların özelliklerinin bir araya getirildiği bilgisayarlardır. Örneğin, bir hastanenin yoğun bakım ünitesinde analog cihazlarla bir hastanın kalp atışı, ateşi veya tansiyonu gibi hayati fonksiyonları ölçülerek, bu değerler daha sonra rakamlara dönüştürülür ve dijital bir cihazda görüntülenir. Hacim lerine göre bilgisayarlar Hacimlerine göre bilgisayarlar üç kategoriye ayrılabilir: Büyük-sistemler (merkezi bilgisayarlar), müstakil mikrobilgisayarlar ve ağ (network) sistem leri. Merkezi bilgisayar sistemleri Atatürk Üniversitesi Açıköğretim Fakültesi 12

13 Bu sistemlerde yapılması gereken işlemler tek bir merkezi bilgisayarda yapılır. M erkezi bilgisayar çoğu kez bir ana bilgisayar (m ainfram e) veya bir mini bilgisayardır. 1950'li yıllar ve 1960'ların başlarında bu sistem ler, veri girişi ve kaydı için delikli kartları ve manyetik bantları kullanarak yığın işletim modunda faaliyet gösterirlerdi. Daha sonra çok sayıda kullanıcının aynı anda term inaller vasıtasıyla faaliyetlerini icra etmelerini mümkün kılan on-line işlem mümkün hâle geldi. Bu, bütün girdilerin term inaller aracılığıyla işlenmek üzere direkt olarak merkezi bilgisayara iletilmesi ve girdiler işlendikten sonra elde edilen çıktıların merkezi bilgisayardan kullanıcıya dönmesi anlamına gelir. Merkezi sistemlerde kullanılan term inallerin çoğu akılsız (dumb) term inallerdir. Bu term inaller sadece görüntü amacıyla kullanılır ve herhangi bir işlem icra edemezler. Zamanla, büyük merkezi sistem ler ve destek donanımı daha etkin ve kabiliyetli bir hâle geldi. Akılsız term inallerin yerini akıllı (intelligent) term inaller almaya başladı. Akılsız term inallerin aksine, akıllı term inaller kendi başlarına bazı işlemleri gerçekleştirebilecekleri işlemcilere sahiptir. Merkezi sistemlerin bir kusuru tek bir bilgisayar üzerinden kullanıcılara hizmet verilm esidir. Merkezdeki bilgisayarda veya bilgisayarı term inallere bağlayan hatlarda meydana gelebilecek bir hasar ya da uyumsuzluk durumunda işlemler icra edilemez veya çok sayıda kullanıcı aynı anda sistem e bağlandığında sistem çok yavaş çalışabilir. Mikrobilgisayar sistemleri Mikrobilgisayar sistem leri, ilk olarak 1970'lı yıllarda üretilmiş, fakat kullanımı 1980'li yıllarda yaygınlaşmıştır. Mikrobilgisayarların ardındaki felsefe, bir kimsenin işini istediği anda icra etmesine yardım etmek üzere bir bilgisayarın hazır bulundurulmasıdır. Örneğin, bir yazının yazılması, grafikler hazırlanması, hesaplamalar yapılması ve kişisel takvim ler tutulması gibi birçok iş, yapıları itibarıyla bireyseldir. Bugün, yüksek kaliteli yazılımlar sebebiyle, mikrobilgisayarlarla yapılan işler inanılmaz ölçüde artm ıştır. Bir kısım işletmeler muhasebe, envanter ve müşteri veri tabanı gibi işler için sadece mikrobilgisayarları kullanmaktadır. Mikrobilgisayarlar, kendi başlarına kullanılabilecekleri gibi, birbirlerine bağlanarak bir ağ teşekkül ettirilebilir veya daha büyük bilgisayar sistem lerine bağlanabilirler. Ağ sistemleri LAN (Local Area Network) yerel ağ, WAN (Wide Area Network) geniş ağdır. Bir bilgisayar ağı, iki veya daha fazla bilgisayarın bir iletişim aracı üzerinden, tüm iletişim, yazılım ve donanım bileşenleri ile birlikte bağlanarak meydana getirilen sistem olarak tanımlanabilir. Bilgisayar ağı en az bir sunucu bilgisayar ve işlemci, buna bağlı term inaller, modem, iletişim protokolü ve benzeri iletişim araçlarını bünyesinde bulundurur. Böyle bir çevrede kullanıcılar birçok yazılım ve donanımı paylaşabilirler. Bir yerel alan ağı (Local Area Network-LAN) tüm bileşenlerinin birkaç kilometrelik alana yayıldığı, genellikle saniyede bir milyon bit veya daha fazla bilgi nakletme hızını gerçekleştirebilen bir iletişim ağıdır. Tanımdan da anlaşılacağı gibi yerel alan ağları küçük bir coğrafik alanla sınırlıdır. Sınırlı bir mesafe içerisindeki yüksek hız, yerel alan ağlarının bir bina veya bir bina kompleksi içerisinde kurulmasını mümkün kılar. Genellikle, yerel alan ağları 10 Mbps veya daha hızlıdır. Günümüzde yaygın olarak kullanılan hız 10/100/1000 Mbps düzeyindedir. Atatürk Üniversitesi Açıköğretim Fakültesi 13

14 Geniş alan ağları (Wide Area Networks-WAN) coğrafik olarak daha geniş bir alana hizmet eden ve telefon hatlarını, mikro dalgaları, uyduları veya bu iletişim kanallarının bir kombinasyonunu kullanan büyük ağlardır. Bir WAN'i LAN'den ayıran temel fark mesafedir. WAN, çok büyük bir coğrafi alanı içine alabileceği gibi küçük bir alanı kapsayacak şekilde de kurulabilir. Diğer ayırıcı özellikler hız, kullanılan donanım ve mimaridir. İkisi arasındaki farkta anahtar nokta, WAN'in aynı teknolojileri kullanarak uzak mesafeleri içine alacak şekilde kolaylıkla genişleyebilmesi, LAN'in ise buna imkân verm em esidir. Bir metropol alanını kapsayan W AN'ler bazen ayrı bir kategoriye konulur ve metropol alan ağları (M etropolitan Area Networks- MAN) diye isimlendirilir. Atatürk Üniversitesi Açıköğretim Fakültesi 14

15 (D M O Günümüzde bilgisayarlar insanoğlunun vazgeçemeyeceği araçlar olmuşlardır. Her geçen gün kendini yenileyen bir teknolojiye sahip olan bilgisayarlar donanım ve yazılım olarak iki ana bileşenden oluşmaktadırlar. Bilgisayarın gözle görülüp elle tutulabilen fiziksel yapısına donanım, donanımı harekete geçiren, bilgisayarın çalışmasını sağlayan ve özel veya genel amaçlı uygulamaların geliştirilmesini sağlayan bileşenine de yazılım denilmektedir. Her türlü yazılım geliştirilmesi için programlama dilleri kullanılmaktadır. Programlama dilleri de günümüze kadar önemli gelişmeler göstermiş olup her biri kendine has kodlama yöntemlerine sahiptir. Bilgisayarlar işlev bakımından üç temel fonksiyona sahiptirler. Bunlar giriş/çıkış işlemleri, veri ve bilgiler üzerinde yapılan işlemler ve veri ve bilgilerin saklanması ve nakil işlemleri olarak gruplandırılabilirler. Bilgisayarları kendi içlerinde amaçlarına göre sınıflandırdığımızda dijital, analog ve hibrit bilgisayarlar olarak ayırabiliriz. Hacimlerine göre yapılan sınıflandırmada ise bilgisayarları mikrobilgisayarlar, merkezi bilgisayarlar ve ağ sisemleri şeklinde sınıflandırmak mümkündür. Atatürk Üniversitesi Açıköğretim Fakültesi 15

16 DEĞERLENDİRME SORULARI 1. Aşağıdakilerden hangisi bir donanım birimi değildir? Değerlendirme sorularını sistemde ilgili ünite başlığı altında yer alan "bölüm sonu testi" bölümünde etkileşimli olarak cevaplayabilirsiniz. a) Aritm etik mantık birimi b) Monitör c) W indows d) Mouse e) Modem 2. Veri ve bilgi kavramları için aşağıdaki ifadelerden hangisi doğrudur? a) Veriler tek başlarına bir anlam taşırlar. b) Veri ve bilgi aynı anlamda kullanılabilir. c) Bilgi veriden önce elde edilir. d) Bilgi verinin işlenmiş hâlidir. e) Veri bilgiden elde edilir. 3. Aşağıdaki seçeneklerden hangisinde bir donanımın bileşenleri sırasıyla ve tam olarak verilmiştir? a) Giriş-Merkezi İşlem-Bellek-Çıkış b) Merkezi İşlem-Bellek-Giriş-Çıkış c) Giriş- Bellek- Çıkış d) G iriş Çıkış-Merkezi İşlem-Bellek e) Bellek-Merkezi İşlem-Giriş-Çıkış 4. Bilgisayarın çalışmasını sağlayan yazılım türü aşağıdaki seçeneklerden hangisinde verilmiştir? a) Özel amaçlı uygulama yazılımları b) Genel amaçlı uygulama yazılımları c) Programlama dilleri d) Dosya yöneticisi ve veri tabanı yönetimi yazılımları e) Sistem yazılımları 5. Aşağıdakilerden hangisi özel amaçlı uygulama yazılımlarından değildir? a) Analiz ve karar verm e b) Hesap Tablosu Programları c) Planlama, programlama, koordinasyon ve organizasyon d) Sunum e) Raporlama Atatürk Üniversitesi Açıköğretim Fakültesi 16

17 6. Öğrenilmesi daha kolay olan ve üçüncü kuşak olarak da isimlendirilen programlama dilleri hangisidir? a) M akine dili b) Assembly dili c) Yüksek seviyeli diller d) Çok yüksek seviyeli diller e) Yapay zeka dilleri 7. Aşağıdakilerden hangisi yapay zeka dillerindendir? a) Pascal b) C++ c) Sql d) Lisp e) Cobol 8. Aşağıdaki seçeneklerden hangisinde sadece fiziksel değerleri ölçen bilgisayar türü doğru olarak belirtilmektedir? a) Dijital b) Analog c) Hibrit d) M ikrobilgisayar e) M erkezi bilgisayar 9. Aşağıdaki seçeneklerden hangisinde, tüm iletişim, yazılım ve donanım bileşenleri ile birlikte bağlanarak meydana getirilen sistem doğru olarak gösterilmektedir. a) M ikrobilgisayar sistem leri b) M erkezi bilgisayar sistem leri c) Ağ sistem leri d) Dijital sistem ler e) Analog sistem ler 10. Coğrafik olarak daha geniş bir alana hizmet eden ve telefon hatlarını, mikro dalgaları ve uyduları kullanan bilgisayar ağı aşağıdaki seçeneklerden hangisinde doğru olarak gösterilmektedir. a) LAN b) LEN c) VAN d) WAN e) WEN Cevap Anahtarı 1.C, 2.D, 3.A, 4.E, 5.B, 6.C, 7.D, 8.B, 9.C, 10.D Atatürk Üniversitesi Açıköğretim Fakültesi 17

18 YARARLANILAN VE BAŞVURULABİLECEK DİĞER KAYNAKLAR Ayık Y. Ziya. (2009). Algoritma ve Programlama Metodolojisi, MuratHan, Trabzon Kaçtıoğlu S., Özen Ü ve Yavuz U. (2006). Bilgisayara Giriş ve Güncel Yazılımlar-I, Aktif Yayınevi, Erzurum Atatürk Üniversitesi Açıköğretim Fakültesi 18

19 LİÇİNDEKİLER SAYI SİSTEMLERİ, OPERATÖRLER VE İŞLEMLER Giriş Bilgisayar Kodlama Sistemleri Ölçü Birimleri Sayı Sistemleri Operatörler İşlemler İşlemlerin Öncelik Sıraları AİA-A& F PROGRAMLAMA TEMELLERİ Yrd. Doç. Dr. Y. Ziya AYIK Bu üniteyi çalıştıktan sonra; Bilgisayarların kodlama sitemleri hakkında bilgi sahibi olabilecek, Bilgisayarın ölçü birimlerini ve sayı sistemlerini kavrayabilecek, Bilgisayarda işlemlerin gerçekleştirilmesinde kullanılan operatörleri ve işlem öncelik sıralamasını öğrenebileceksiniz. ÜNİTE 2

20 Sayı Sistem leri, Operatörler ve İşlemler GİRİŞ İnsanoğlunun bilgiyi belirtmede kullandığı sembollerin bilgisayarda da ifade edilmesi gerekir. Bilgisayarın 0 ve 1'e karşılık gelen iki fiziksel durumu algılayabildiği göz önüne alınırsa tüm sembollerin 0 ve 1 kombinasyonlarından oluşan karşılıklarına ihtiyaç vardır. Örneğin alfabedeki 29 harfi temsil edecek olan bir koda ihtiyaç duyulduğunu farz edelim. Bunun için dört bit kullanılırsa 16 (24) değişik karakter temsil edilebilir. Fakat bu, alfabedeki tüm karakterleri temsil etmek için yeterli değildir. Beş bit kullanıldığında ise 32 (25) değişik karakter temsil edilebilir ki, bu sayı alfabedeki karakterler için yeterli olsa da rakamlar ve diğer özel karakterler için yeterli değildir. Birçok ülkenin alfabelerinin değişik türlerde karakterler de ihtiva ettiği göz önünde bulundurulduğunda altı, yedi, sekiz ve hatta on altı bitlik kodlama sistem lerine ihtiyaç duyulmaktadır. Günlük hayatta on tabanlı sayı sistemi kullanılırken, bilgisayarlarda iki tabanlı sayı sistemi kullanılmaktadır. s > Bilgisayar kullanımının en önemli nedenlerinden biri olan bilgisayara işlem yaptırmanın gerçekleştirilmesi için işlemlerde kullanılabilecek operatörlerin belirlenmesi ve bu operatörlerin kullanım önceliklerinin bilinmesi gerekmektedir. BİLGİSAYAR KODLAMA SİSTEMLERİ Bilgisayarlar, tüm sayısal ve sayısal olmayan karakterleri ikili sayı sistemine göre kodlanmış bir şekilde kullanırlar. ASCII ve EBCDIC yaygın olarak kullanılan bilgisayar kodlama sistem leridir. Diğer kodlama sistemi UNICODE artık bütün dünyada yaygın olarak kullanılmaktadır. ASCII Kodlama Sistemi ASCII (American Standart Code for Information Interchange) en yaygın olarak kullanılan kodlama şemasıdır. ASCII kodlama şemasının 7 ve 8 bitlik iki versiyonu bulunmaktadır. Bugün yaygın olarak kullanılan kodlama şeması ASCII-8 dir. Sekiz bit ASCII'de toplam 256 (28) değişik karakter temsil edilebilir. ASCII kodlama tablosu kitabın sonunda ek olarak verilm iştir. EBCDIC Kodlama Sistemi EBCDIC (Extended Binary Coded Decimal Interchange Code) IBM'in kendi ürettiği ana bilgisayarlarında kullanılmak üzere geliştirmiş olduğu bir kodlama sistem idir. EBCDIC, ASCII ile aynı kodlama sistemini kullanmaz. Örneğin EBCDIC'de "a" harfi ile gösterilirken ASCII'de ile gösterilir. Farklı kodlama sistemleri kullanan bilgisayarlar arasında yapılan iletişim problemli olabilir. ASCII sistemini kullanan bir bilgisayarda bir doküman oluşturarak bunu IBM ana bilgisayarına gönderdiğimizi farz edelim. Bizim oluşturduğumuz doküman ASCII form atında kaydedilmiş fakat ana bilgisayar ise Atatürk Üniversitesi Açıköğretim Fakültesi 2

21 Sayı Sistem leri, Operatörler ve İşlemler EBCDIC formatına göre çalışmaktadır. Örneğin "k" harfi ASCII formatında ile gösterilirken, bunun EBCDIC'deki karşılığı virgül (,) sembolüne karşılık gelmektedir. Bu durumda iki bilgisayar arasında uyumsuzluk olacaktır. Bu problemi ortadan kaldırmak için gönderici veya alıcı bilgisayardaki bir yazılım vasıtasıyla veriler ASCII'den EBCDIC'e veya EBCDIC'den ASClI'ye dönüştürülür. UNICODE kodlama sistemi Bilgisayarda işlem gören en küçük hafıza birimine Bit denir. - J Bilgisayarlar ve yazılımlar günden güne geliştikçe kullanılan mevcut kod şemaları ihtiyaçlara cevap verem eyecek duruma gelmektedir. Örneğin İbranice, Arapça ve Slav kökenli diller mevcut kodlama şemalarıyla temsil edilememektedir. Buna ilaveten, bu kod şemaları Japonca ve Çince gibi dillerde bulunan binlerce harf ve sembolü desteklem em ektedir. Unicode, (216) değişik karakteri temsil eden on altı bitlik bir kodlama şemasıdır. Teorik olarak, Unicode bugün kullanılan tüm dillerdeki tüm karakterleri hatta artık kullanımda olmayan dillerdeki karakterleri bile temsil edebilir. Böyle bir kod, bir dokümanın Türkçe, Japonca, İngilizce veya Arapça metinleri ihtiva etmesi gerekli olduğu uluslararası iletişimlerde faydalı olabilir. Ayrıca yazılım üreticisi firm alar, ürettikleri yazılımlar için her ülkenin dilinde menüler, yardım lar veya hata mesajları hazırlayabilirler. Ölçü Birimleri Bilgisayarda veriler üzerinde işlem yapılırken ikili sayı sistemini kullanıldığı için verilerin büyüklükleri de ikinin katları şeklinde hesaplanm aktadır. Bilgisayarda kullanılan en küçük veri birimi bit denilen ve 0 veya 1 değeri alabilen işarettir. Bitler tek başlarına bir veriyi saklayamadıkları için anlamlı en küçük veri saklama birimi olarak sekiz bitten oluşan byte kullanılır. Verilerin büyüklükleri de 1 byte'ın katları olarak ifade edilir. Ancak katlar alınırken diğer ölçü birimlerinden farklı olarak 1000 yerine 210=1024 kullanılmaktadır. Ölçü Birimleri Adı Kısa adı Byte Karşılığı Byte Karşılığı Bit Bit 1 Byte B 20 1Byte Kilobyte KB 1024 Byte MB 1024*1024 Byte Megabyte Gigabyte GB 1024*1024*1024 Byte Terabyte TB 1024*1024*1024*1024 Byte Atatürk Üniversitesi Açıköğretim Fakültesi 3

22 Sayı Sistem leri, Operatörler ve İşlemler Sayı Sistemleri Bilgisayarda işlemleri gerçekleştirmede esas alabileceğimiz dört çeşit sayı sistemi bulunmaktadır. Bu sayı sistem leri aşağıda belirtildiği gibidir. Binary sayı sisteminde sadece 0 ve 1 sembolleri kullanılmaktadır. s > İki tabanlı sayı sistemi (Binary) Sekiz tabanlı sayı sistemi (Oktal) On tabanlı sayı sitemi (Decimal) On altı tabanlı sayı sistemi (Hexadecimal) Bir Bilgisayar sisteminde işlemler elektrik devreleri üzerinde gerçekleştiği için elektrik akımının varlığı veya yokluğuna göre iki sembolün oluşumu sağlanır. İkili sayı sistemindeki 0 değeri elektrik olmadığını 1 değeri ise bir elektrik olduğunu gösterir. Bu nedenle 0 veya 1 sembollerinden oluşan iki tabanlı sayı sistemi bilgisayarda kullanılan sayı sistem idir. Elde edilen verilerin anlaşılabilirliğinin sağlanması için iki tabanlı sayı sisteminden diğer sayı sistem lerine dönüşüm yapılır. Veriler dönüştürücüler aracılığıyla iki tabanlı sayı sisteminden, sekizli, onlu veya on altılı sayı sistem lerine dönüştürülürler. Sayı sistemlerini ifade eden sembollerin adedi, sayı sisteminin adını oluşturur. İkili sayı sisteminde 0 ve 1 sembollerinden oluşan iki sembol, onlu sayı sisteminde 0'dan 9'a kadar on sembol, sekizli sayı sisteminde 0 dan 7'ye kadar sekiz sembol, on altılı sayı sisteminde de 0 dan 9'a kadar on sembol ve A(10), B(11),C(12), D(13), E (14)ve F(15) sembolleri olmak üzere on altı sembol kullanılm aktadır. İki Tabanlı Sayı Sistemi İki tabanlı (Binary Digit)sayı sistemi, 0 ve 1 sembollerinin oluşturduğu iki sembollü sayı sistemidir. Söz konusu sembollere Binary Digit ifadesinin ilk harfi ile son iki harfinden oluşturduğu bit denir. Bit bilgisayarda işlem gören en küçük hafıza birimidir. İki tabanlı bir sayının gösterimi aşağıdaki şekilde olur. İki tabanlı tam sayı örneği: ( )2 İki tabanlı kesirli sayı örneği: ( )2 Bu sistemde bütün sayıların taban değerleri 2'dir. Üs değerleri ise sayının tam kısmının sağ tarafındaki ilk basamaktan itibaren 0'dan başlayarak birer birer Atatürk Üniversitesi Açıköğretim Fakültesi 4

23 Sayı Sistem leri, Operatörler ve İşlemler artarak oluşur. Kesirli kısmın üs değerleri ise soldaki ilk basamaktan itibaren -1'den başlayarak azalarak devam eder. İki tabanlı bir sayının üs değerlerinin gösterildiği açılım aşağıdaki şekildedir. ( )2 Sekiz Tabanlı Sayı Sistemi Sekiz tabanlı bir sayının gösterimi aşağıdaki şekilde olur. Sekiz tabanlı tam sayı örneği: (573)8 Sekiz tabanlı kesirli sayı örneği: (573.65)8 Sekiz tabanlı sayı sistemi 0,1,2,3,4,5,6 ve 7 sembollerinden oluşmaktadır. ) Bu sistemde bütün sayıların taban değerleri 8'dir. Üs değerleri ise sayının tam kısmının sağ tarafındaki ilk basamaktan itibaren 0'dan başlayarak birer birer artarak oluşur. Kesirli kısmın üs değerleri ise soldaki ilk basamaktan itibaren -1'den başlayarak azalarak devam eder. Sekiz tabanlı bir sayının üs değerlerinin gösterildiği açılım aşağıdaki şekildedir. ( )8 On Tabanlı Sayı Sistemi On tabanlı bir sayının gösterimi aşağıdaki şekilde olur. Bu sistemde bütün sayıların taban değerleri 10'dur. Üs değerleri ise sayının tam kısmının sağ tarafındaki ilk basamaktan itibaren 0'dan başlayarak birer birer artarak oluşur. Kesirli kısmın üs değerleri ise soldaki ilk basamaktan itibaren -1'den başlayarak azalarak devam eder. Atatürk Üniversitesi Açıköğretim Fakültesi 5

24 Sayı Sistem leri, Operatörler ve İşlemler On tabanlı bir sayının üs değerlerinin gösterildiği açılım aşağıdaki şekildedir. ( )10 On Altı Tabanlı Sayı Sistemi On altı tabanlı (Hexadecimal)sayı sistemi 0'dan9'a kadar sembollerden ve A,B,C,D,E,F sembollerinden oluşan sayı sistem idir. Bu sistemde A=10, B=11, C=12, D=13, E=14 ve F=15 değerlerine karşılık gelmektedir. On altı tabanlı bir sayının gösterimi aşağıdaki şekilde olur. On altı tabanlı sayı sistemi 0,1,2,3,4,5,6,7,8 ve 9 rakamlarından ve A,B,C,D,E ve F harflerinden oluşmaktadır. Bu sistemde bütün sayıların taban değerleri 16'dır. Üs değerleri ise sayının tam kısmının sağ tarafındaki ilk basamaktan itibaren 0'dan başlayarak birer birer artarak oluşur. Kesirli kısmın üs değerleri ise soldaki ilk basamaktan itibaren -1'den başlayarak azalarak devam eder. On altı tabanlı bir sayının üs değerlerinin gösterildiği açılım aşağıdaki şekildedir. (93+A2+51+C0.B-1+2-2)16 Sayı Sistemleri Arasında Dönüşümler Verilerin analizi ve anlaşılabilirliği amacıyla sayı sistem leri arasında dönüşüm yapılması gerekebilir. İki tabanlı sayıların on tabanlı sayılara dönüşümü İki tabanlı bir tam sayının on tabanlı bir sayıya dönüşümünün yapılabilmesi için her bir sayının basamak değeri ile basamağın üs değerinin 2 sayısına göre üstü alınarak çarpımı hesaplanır. Bu işlem, her basamaktaki sayı için teker teker yapılarak elde edilen sayılar toplanır. Aşağıda iki tabanlı bir tam sayı on tabanlı bir sayıya dönüştürülm ektedir. Atatürk Üniversitesi Açıköğretim Fakültesi 6

25 Sayı Sistem leri, Operatörler ve İşlemler İki tabanlı kesirli bir sayının on tabanlı sayıya dönüştürülmesinde de aynı mantık yürütülecektir. Ancak kesir kısmında bulunan basamakların üs değerlerinin negatif olduğuna dikkat edilmelidir. On tabanlı sayıların iki tabanlı sayılara dönüşümü On tabanı bir sayının iki tabanlı bir sayıya dönüşümünde, on tabanlı sayı sürekli olarak ikiye bölünür. Bölüm sonucunda elde edilen kalan değerlerinin sağdan sola doğru sıralanm ası ile iki tabanlı sayı elde edilir. Aşağıda on tabanlı bir tam sayının iki tabanlı bir sayıya dönüştürülmesi gösterilmektedir. 8 3 [ l S2 4i 2 0 Kalanlar sondan başlanarak yazılırsa. (83)10=( )2 On tabanı bir sayının iki tabanlı bir sayıya dönüşümünde, on tabanlı sayı sürekli olarak ikiye bölünür. On tabanı kesirli bir sayının iki tabanlı bir sayıya dönüşümünde ise, on tabanlı kesirli sayı sürekli olarak ikiyle çarpılır. Çarpım sonucunda elde edilen değerlerin tam kısımları alınarak (1 veya 0) iki tabanlı sayının kesirli kısmı oluşturulur. Atatürk Üniversitesi Açıköğretim Fakültesi 7

26 Sayı Sistem leri, Operatörler ve İşlemler İki tabanlı sayıların sekiz tabanlı sayılara dönüşümü İki tabanlı bir sayıyı sekiz tabanlı bir sayıya dönüştürmek için pratik bir yol, iki tabanlı sayıyı sağdan başlayarak üçerli gruplara ayırmaktır. Üçerli gruplara ayrılıp sol tarafta kalan eksik bitler tamamlandıktan sonra her üçlü grubun karşılığı olan sayı bulunup yazılmalıdır. Bütün grupların değerleri bulunup soldan sağa doğru sıralandıklarında sekiz tabanlı sayı elde edilmiş olacaktır. Bunun için 1'den 8'e kadar olan sayıların iki tabanlı karşılıkları hazır olarak kullanılabilir. İki tabanlı sayı Sekiz tabanlı sayı Aşağıda iki tabanlı bir tam sayının sekiz tabanlı bir sayıya dönüştürülmesi gösterilmektedir. ( )2 iki tabanlı sayıyı sekiz tabanlı sayıya dönüştürmek için sağdan üçerli gruplara ayıralım ve eksik bitleri tam am layalım ( )2=(127)8 Sekiz tabanlı sayıların iki tabanlı sayılara dönüşümü Sekiz tabanlı bir sayıyı iki tabanlı bir sayıya dönüştürmek için pratik bir yol, sekiz tabanlı sayının her basamağının iki tabanlı karşılıklarını bulup, soldan sağa doğru sırayla yazmaktır. Elde edilen sayı sekiz tabanlı sayının iki tabanlı karşılığı olacaktır. Aşağıda sekiz tabanlı bir tam sayının iki tabanlı bir sayıya dönüştürülmesi gösterilmektedir. İki tabanlı sayıyı on altı tabanlı sayıya dönüştürmek için iki tabanlı sayı sağdan dörderli gruplara ayrılır ve eksik bitleri tam am lanır. (127)8 sekiz tabanlı sayıyı iki tabanlı sayıya dönüştürmek için her basamağın iki tabanlı karşılıkları bulunup sıralanır ve sol başta bulunan 0 bitleri silinir (127)8=( )2 Atatürk Üniversitesi Açıköğretim Fakültesi 8

27 Sayı Sistem leri, Operatörler ve İşlemler İki tabanlı sayıların on altı tabanlı sayılara dönüşümü İki tabanlı bir sayıyı on altı tabanlı bir sayıya dönüştürmek için pratik bir yol, iki tabanlı sayıyı sağdan başlayarak dörderli gruplara ayırm aktır. Dörderli gruplara ayrılıp sol tarafta kalan eksik bitler tamamlandıktan sonra her dörtlü grubun karşılığı olan sayı bulunup yazılmalıdır. Bütün grupların değerleri bulunup soldan sağa doğru sıralandıklarında on altı tabanlı sayı elde edilmiş olacaktır. Bunun için 1'den 16'ya kadar olan sayıların iki tabanlı karşılıkları hazır olarak kullanılabilir. İki tabanlı sayı on altı tabanlı sayı A 1011 B 1100 C 1101 D 1110 E 1111 F Aşağıda iki tabanlı bir tam sayının on altı tabanlı bir sayıya dönüştürülmesi gösterilmektedir. ( )2 iki tabanlı sayıyı on altı tabanlı sayıya dönüştürmek için sağdan dörderli gruplara ayıralım ve eksik bitleri tam am layalım E ( )2=(15E)16 On altı tabanlı sayıların iki tabanlı sayılara dönüşümü On altı tabanlı bir sayıyı iki tabanlı bir sayıya dönüştürmek için pratik bir yol, on altı tabanlı sayının her basamağının iki tabanlı karşılıklarını bulup, soldan sağa doğru sırayla yazmaktır. Elde edilen sayı on altı tabanlı sayının iki tabanlı karşılığı olacaktır. Atatürk Üniversitesi Açıköğretim Fakültesi 9

28 Sayı Sistem leri, Operatörler ve İşlemler Aşağıda on altı tabanlı bir tam sayının iki tabanlı bir sayıya dönüştürülmesi gösterilmektedir. (15E)16 on altı tabanlı sayıyı iki tabanlı sayıya dönüştürmek için her basamağın iki tabanlı karşılıkları bulunup sıralanır ve sol başta bulunan 0 bitleri silinir. 1 5 _E (15E)16=( )2 O peratörler Sayısal operatörler sayısal veriler üzerinde, karakter operatörler ise karakter veriler üzerinde uygulanabilir. Programlamanın en temel özelliği olan verilerin işlenmesi, işlem operatörleri kullanılarak gerçekleştirilir. Veri ve bilgilerin işlenmesi için genelde her programlama dilinde aynı özelliklere sahip olan operatörler ve semboller geliştirilmiştir. Operatörler, sayısal operatörler, karakter operatörler, karşılaştırma operatörleri ve mantıksal operatörler olmak üzere dört grupta incelenebilir. Sayısal Operatörler Sayısal veriler üzerinde işlem ler yapmak amacıyla kullanılan operatörlerdir. En tem el sayısal operatörler şunlardır; Sayısal O peratörler Operatör adı Operatör simgesi Atama = Toplama + Çıkarma - Çarpma * Bölme / Üs alma A _T X Karakter Operatörler Karakter veriler üzerinde işlemler yapmak amacıyla kullanılan operatörlerdir. En tem el karakter operatörler şunlardır; Atatürk Üniversitesi Açıköğretim Fakültesi 10

29 Sayı Sistem leri, Operatörler ve İşlemler Karakter Operatörler Operatör adı Operatör simgesi Birleştirme + 1 g i ri t S & Karşılaştırma Operatörler Sayısal ve karakter veriler üzerinde karşılaştırmalar yapmak amacıyla kullanılan operatörlerdir. En tem el karşılaştırm a operatörleri şunlardır; Karşılaştırma Operatörleri Operatör adı Eşit = Eşit değil <> Küçük < Büyük > Küçük eşit <= Operatör simgesi Mantıksal Operatörler Sayısal ve karakter veriler üzerinde mantıksal karşılaştırm alar yapmak amacıyla kullanılan operatörlerdir. En tem el mantıksal operatörler şunlardır; Verilerin bilgiye dönüşümü işlem yapılarak sağlanır. Operatör adı Operatör simgesi Mantıksal Operatörler Anlamı NOT Değil Mantıksal ifadenin anlamını ters çevirir. Mantıksal ifade Doğru ise Yanlış, Yanlış ise Doğru yapar. AND Ve İki mantıksal ifade arasında kullanılır. Mantıksal ifadelerden her ikisi de doğru ise işlem doğru, aksi halde işlem yanlıştır. OR Veya İki mantıksal ifade arasında kullanılır. İşlem ler Atatürk Üniversitesi Açıköğretim Fakültesi 11

30 Sayı Sistem leri, Operatörler ve İşlemler Programlama mantığının tem elini veri ve bilgilerin işlenmesi oluşturur. Veri ve bilgilerin işlenmesi yukarıda bahsedilen ve dört ana gruba ayrılan işlem operatörleri kullanılarak gerçekleştirilir. İşlemler, veri ve bilgilerin oluşturduğu ifade denilen gruplara uygulanır. Bir ifade içerisinde sadece bir gruba ait işlem operatörleri kullanılabileceği gibi, bütün gruplara ait işlem operatörleri de aynı anda kullanılabilir. Sayısal İşlemler Veriler ve bilgiler üzerinde sayısal operatörler kullanılarak gerçekleştirilen işlem lerdir. Sayısal İşlemler Operatör Kullanımı Sonuç = X= X= X= * X=12*5 60 / X=82/ A X=3A2 9 \ X=10\3 3 Karakter İşlemler Mod, bir sayının diğer sayıya bölümünden geriye kalan değerdir. J Karakter işlemler veriler ve bilgiler üzerinde karakter operatörler kullanılarak gerçekleştirilen işlemlerdir. Karakter İşlemler Operatör Kullanımı Sonuç & "Bilgi" Bilgisayar Karşılaştırma İşlemleri Sayısal ve karakter veriler üzerinde karşılaştırma operatörleri kullanılarak gerçekleştirilen işlemlerdir. Atatürk Üniversitesi Açıköğretim Fakültesi 12

31 Sayı Sistem leri, Operatörler ve İşlemler Karşılaştırma İşlemleri Operatör Kullanımı Sonuç = X=25 X 25'e eşit <> X=5;Y=20;X<>Y X, Y' ye eşit değil < X=5; Y=20;X<Y X, Y' den küçük > X=5; Y=20;Y>X Y, X' den büyük <= X=5;Y=5;X<=Y X, Y'den küçük veya eşit >= X=5;Y=4;X>=Y X, Y'den büyük veya eşit Mantıksal İşlemler Sayısal ve karakter veriler üzerinde mantıksal operatörleri kullanılarak gerçekleştirilen işlem lerdir. Mantıksal İşlemler Operatör Kullanımı Sonuç NOT NOT X=25 X 25'e eşit değil AND OR X=5;Y=20 X+Y=25 AND Y- X=10 X=5;Y=20 X+Y=25 AND Y- X=10 X+Y=25 (işlem doğru) Y-X=10 (işlem yanlış) X+Y=25 AND Y-X=10 (işlem yanlış) X+Y=25 (işlem doğru) Y-X=10 (işlem yanlış) X+Y=25 AND Y-X=10 (işlem İşlem lerin Öncelik Sıraları Veri ve bilgiler üzerinde uygulanmak istenilen işlemler öncelik sıraları dikkate alınarak gerçekleştirilirler. İşlemler grup içerisinde veya genel anlamda öncelik sıralarına sahiptirler. Aşağıda hem grup önceliği hem de grup içerisindeki öncelikler dikkate alınarak işlemlerin sıralaması verilm ektedir. Parantez: Herhangi bir işlem grubunda parantez kullanılıyorsa, öncelikle parantez içerisindeki işlemler diğer işlemlerin sıralaması dikkate alınmaksızın gerçekleştirilir. Parantez kullanımı durumunda ilk önce parantez içi yine öncelik sırası dikkate alınarak işlenir. Atatürk Üniversitesi Açıköğretim Fakültesi 13

32 Sayı Sistem leri, Operatörler ve İşlemler 2. Fonksiyonlar: Parantezin bulunmadığı ve herhangi bir fonksiyonun kullanıldığı işlem gruplarında ilk önce o fonksiyon işleme tabi tutulur. 3. Sayısal işlemler: Parantez veya fonksiyon dışında ilk öncelik sırası sayısal işlemlere aittir. Sayısal işlemlerin kendi içerisindeki sıralama ise aşağıdaki gibidir. a. Üst Alma b. Çarpma ve Bölme c. Tamsayı Bölme d. Mod e. Toplama ve Çıkarma Çarpma ve bölme ile toplama ve çıkarma aynı öncelik sıralarına sahiptirler. Bunlardan herhangi ikisinin bir arada kullanılması durumlarında ifade içerisinde işlem soldan sağa doğru gerçekleştirilir. 4. Karakter İşlemler Sayısal işlemlerden sonra karakter işlem ler gerçekleştirilm elidir. a. Birleştirm e b. String Toplama 5. Karşılaştırma işlemleri Sayısal ve varsa karakter işlemlerden sonra karşılaştırma işlemleri gerçekleştirilir. Karşılaştırma işlemlerinin kendi aralarında öncelik sıralaması yoktur. Eşit, Eşit Değil, Küçük, Büyük, Küçük Eşit, Büyük Eşit 6. M antık Operatörleri Mantık operatörleri bir ifade içerisinde işlem sırası bakımından son sırada bulunurlar. Yukarıda bahsedilen işlemlerin hepsi tamamlandıktan sonra uygulanabilirler. Kendi içlerindeki sıra önemlidir ve aşağıda sıralandığı gibi NOT, AND ve OR şeklindedir. a. Not b. And c. Or Mantıksal operatörlerde öncelik sıralaması NOT, AND ve OR şeklindedir. - v İşlem öncelik sıraları dikkate alınarak geliştirilen örnek İşlemler. Örnek 1 Atatürk Üniversitesi Açıköğretim Fakültesi 14

33 Sayı Sistem leri, Operatörler ve İşlemler X=5 : Y=4 ise Y=XA2+5*(Y-2) işleminin sonucu nedir? 1. Adım: Y=XA2+5*(2) 2. Adım: Y=25+5*(2) 3. Adım: Y= Adım: Y=35 Örnek 2 Y=4 ise X= 2V Y denkleminin sonucu nedir? 1. Adım: İfade program mantığında açılmalıdır X=2*((YA2+9) A(1/2)) 2. Adım: X=2*((16+9)A(1/2)) 3. Adım: X=2*(25A(1/2)) 4. Adım: X=2*(5) 5. Adım: X=10 Önek 3 A=5 : B=2 : C=4 : D=3 ise AA2+B=27 AND NOT(C\2=1) işleminin sonucu nedir? + operatörü karakter verilere uygulandığında birleştirme anlamını taşır. J Örnek 4 1. Adım: AA2+B=27 AND NOT(1=1) 2. Adım 25+B=27 AND NOT(1=1) 3. Adım: 25+2=27 AND NOT(1=1) 4. Adım: 27=27 AND NOT(1=1) 5. Adım: Doğru AND NOT(1=1) 6. Adım: Doğru AND Yanlış 7. Adım: Yanlış Atatürk Üniversitesi Açıköğretim Fakültesi 15

34 Sayı Sistem leri, Operatörler ve İşlemler X=2 : Y=4 : K=3 : L=5 A="bil" : B="bal" ise, (XA2=Y Or K*2=L) Or Not (Y Mod X=0 And KA2>=9) And A$+B$ ="Bilgi" işleminin sonucu nedir? 1. Adım: (Doğru Or Yanlış) Or Not (Doğru And Doğru) And A$+B$ ="Bilgi" 2. Adım: (Doğru) Or Not (Doğru) And A$+B$ ="Bilgi" 3. Adım: (Doğru) Or Not (Doğru) And "bilbal"="bilgi" 4. Adım: (Doğru) Or Not (Doğru) And Yanlış 5. Adım: Doğru Or Yanlış And Yanlış 6. Adım: Doğru Or Yanlış 7. Adım: Doğru Atatürk Üniversitesi Açıköğretim Fakültesi 16

35 Sayı Sistem leri, Operatörler ve İşlemler O (D M Bilgisayarlar, 0 ve 1 sembollerinden oluşan iki tabanlı sayı sistemini kullanırlar. Bu semboller kullanılarak geliştirilen ve en çok kullanılan kodlama sistem leri ise ASCII, EBCDIC ve UNICODE adı verilen sistem lerdir. Bilgisayarda kullanılan en küçük veri birimi bit denilen ve 0 veya 1 değeri alabilen sembollerdir. Bitler tek başlarına bir veriyi saklayamadıkları için anlamlı en küçük veri saklama birimi olarak sekiz bitten oluşan byte kullanılır. Verilerin büyüklükleri de 1 byte'ın katları olarak ifade edilir. İşlemlerin gerçekleştirilmesinde dört çeşit sayı sistemi kullanılabilmektedir. Bunlar ikili, sekizli, onlu ve on altılı sayı sitem leridir. Veriler ve bilgiler üzerinde gerçekleştirilecek işlemler ise operatörler kullanılarak yapılmaktadır. Bu operatörler sayısal, karakter, karşılaştırma ve mantıksal operatörler olarak adlandırılırlar. Bu operatörler kullanılarak gerçekleştirilen işlemlerin mutlaka uyulması gereken bir öncelik sıralaması söz konusudur. Atatürk Üniversitesi Açıköğretim Fakültesi 17

36 Sayı Sistem leri, Operatörler ve İşlemler DEĞERLENDİRME SORULARI Değerlendirme sorularını sistemde ilgili ünite başlığı altında yer alan "bölüm sonu testi" bölümünde etkileşimli olarak cevaplayabilirsiniz. \ J 1. Aşağıdakilerden hangisi 120 Gigbyte'ın Kilobyte karşılığıdır? a) 120/1024 b) 1024*1024/120 c) 512*512*120 d) 120*1024*1024 e) 1024/512* ( )2 = (...?...)10 dönüşümünün sonucu aşağıdaki seçeneklerden hangisinde doğru olarak verilmiştir? a) b) c) d) e) (A21)16 = (...?...)10 dönüşümünün doğru sonucu hangi seçenekte verilmiştir? a) 2624 b) 4129 c) 2628 d) 2592 e) Megabyte'ın Byte karşılığı hangi seçenekte doğru verilmiştir? a) 3*1024*1024 b) 1024*1024*1024 c) 3*1024*1024*1024 d) 3*1024 e) 1024* Aşağıdaki operatörler gruplarından hangi ikili sayısal işlem operatörü değildir? a) Mod, = b) \, <= c) >=, Not d) Or, \ e) A, & Atatürk Üniversitesi Açıköğretim Fakültesi 18

37 Sayı Sistem leri, Operatörler ve İşlemler 6. İşlem öncelik sıralaması aşağıdakilerden hangisinde doğru verilmiştir? 1. Mod 2. And 3. Tamsayı Bölme 4. Birleştirm e a) 4,3,2,1 b) 3,2,4,1 c) 3,1,4,2 d) 2,4,1,3 e) 3,1,2,4 Seçeneklerde verilen ifadelerden hangisi yanlıştır? a) En tem el karakter birleştirm e işlemleri "+" ve "&" sembolleri ile gösterilir. b) Not operatörü iki veri arasında yanlış olanı tespit eder. c) Karşılaştırm a işlemleri sayısal ve karakter veriler üzerinde uygulanabilen işlemlerdir. d) İşlem öncelik sıralamasında Üs alma, Birleştirm e işleminden öncedir e) Karakter veriler üzerinde sayısal işlem ler yapılamaz. 8. Aşağıdaki ikili işlem sonucu hangi seçenekte doğru gösterilmektedir? X=45 Mod 4 : Y=63\4 a) X=4 Y=15,75 b) X=11 Y=15 c) X=1 Y=15 d) X=5 Y=16 e) X=1 Y=15,75 9. Aşağıda verilen değişkenlere atanan değerleri dikkate alarak doğru denklem sonucunun hangi seçenekte gösterildiğini bulunuz? A=3.2 : B=2 : C=10 : D=4 ise X=A + B A 3 * C \ D - 8 X=? a) 3.2 b) 15 c) 15.2 d) 11.2 e) 51.2 Atatürk Üniversitesi Açıköğretim Fakültesi 19

38 Sayı Sistem leri, Operatörler ve İşlemler 10. Aşağıda verilen değişkenlere atanan değerleri dikkate alarak denklemle ilgili olarak seçeneklerde verilen ifadelerden doğru olanını bulunuz. Y=8 : X=2 : K=3 Y Mod X=0 And KA2>=9 a) Y Mod X 0'a eşit değildir. b) KA2>=9 ifadesi doğrudur. c) İşlem sonucu yanlıştır. d) Y Mad X 1'e eşittir. e) And operatörünün sol tarafı yanlış sağ tarafı doğrudur. Cevap Anahtarı 1.D, 2.A, 3.E, 4.A, 5.C, 6.C, 7.B, 8.C, 9.D, 10.B Atatürk Üniversitesi Açıköğretim Fakültesi 20

39 Sayı Sistem leri, Operatörler ve İşlemler YARARLANILAN VE BAŞVURULABİLECEK DİĞER KAYNAKLAR Ayık Y.Ziya. (2009). Algoritma ve Programlama Metodolojisi, MuratHan, Trabzon Eker M. (2005). Algoritmayı Anlamak, Nirvana Yayınevi, Ankara Çelikkol Soner. (2005). Programlamaya Giriş ve Algoritmalar, Dilara Yayınevi, Trabzon Atatürk Üniversitesi Açıköğretim Fakültesi 21

40 ALGORİTMA LU Û z Giriş Algoritma Mantığı Algoritma Özellikleri Problem Tanımı Problem Çözümü Örnek Algoritmalar PROGRAMLAMA TEMELLERİ Yrd. Doç. Dr. Y. Ziya AYIK Bu üniteyi çalıştıktan sonra; Algoritmanın anlamını ve özelliklerini kavrayabilecek, Bir problemin çözüm aşamalarını geliştirebilecek, Algoritmada kullanılabilecek opertörleri tanıyabilecek, Herhangi bir problemi çözmek için kendiniz algoritma oluşturabileceksiniz. ÜNİTE 3

41 Algoritma GİRİŞ Bilgisayarların önemli bir kullanım amacı, veri ve bilgilerin kullanılarak var olan belirli bir problemin çözülmeye çalışılmasıdır. Bunun için, bilgisayarlar söz konusu veri ve bilgiler üzerinde matematiksel ve mantıksal işlemleri gerçekleştirirler. Daha sonra da elde edilen sonuçlar programcı veya kullanıcılara sunulur. W» Algoritma sözlü ifadelerin mantıksal bir sıralam asıdır. Ancak bütün bunların olabilmesi için öncelikle, ne yapılmak istendiği, problemin ne olduğu, hangi veri veya bilgilerin kullanılacağı, hangi işlemleri yapılacağı, ne zaman yapılacağı, nasıl yapılacağı, ne kadar yapılacağı gibi soruların cevaplanması gerekmektedir. Bu nedenle bilgisayarda herhangi bir işlem gerçekleştirmeden ya da program yazmaya başlamadan önce yukarıda bahsedilen sorular belirli bir mantık ve plan çerçevesinde cevaplandırılmalıdır. Bu cevapların sözlü ifadelerle alınmasını sağlayan bütün işlemler bu ünitenin konusunu oluşturan algoritma olarak kabul edilm ektedir. Algoritma Mantığı Bir problemin çözümü için sıralı olarak gerçekleştirilmesi gereken mantıksal adımlar algoritma olarak adlandırılabilir. Algoritma, programlamaya geçmeden önce, yapılması düşünülen işlemlerin belirli bir mantık sıralaması çerçevesinde sözle ifade edilmesidir. Algoritma sözlü ifadelerden oluştuğu için bu aşamada herhangi bir programlama dilini bilmeye veya kullanmaya ihtiyaç duyulmaz. Algoritma, programlamaya başlamadan önce gerçekleştirilmelidir. Algoritma oluşturmanın dikkat edilmesi gereken bazı özellikleri vardır ancak bir algoritma programlama kodu gibi bir form ata sahip değildir. Algoritma Özellikleri Algoritma yapılacak işlerin adım adım listelenmesi şeklinde düşünülebilir. Bu işlem ler em ir ifadeleri biçimindeki komutlarla ifade edilir. Örneğin: A1. Başla A2. Kapıya yaklaş A3. Kapı kolunu tut A4. Kolu aşağı çevir A5. Kapıyı ittir A6. Dur Atatürk Üniversitesi Açıköğretim Fakültesi 2

42 Algoritma Program algoritmalarında yaygın olarak bilgi al, gir, yazdır, topla gibi komutlar kullanılır. Bunlar bilgisayara verilen emirlerdir. Aşağıdaki örnek ve açıklamaları bu şekilde yorumlayınız. Bir problemin çözüm yollarının oluşturulması olarak kabul ettiğimiz Algoritma oluşturma, her ne kadar herhangi bir programlama diline bağlı olmayan esnek bir söz dizimi olsa da, algoritma oluştururken dikkat edilmesi gereken bazı özellikler söz konusudur. Bir algoritma oluşturulduğunda aşağıdaki özelliklere sahip olmalıdır. Algoritma başla ve dur ifadeleri arasında, sözlü ifadelerle satır numarası verilerek düzenlenm elidir. A1. Başla A2. Hava sıcaklığını gir A3. Bölge adını gir A18. Dur Algoritmada önerilen çözüm yöntemi mantıksal bir sıralamaya sahip olmalıdır. A1. Başla A2. Sayı değerlerini gir A3. Sayıları Topla A4. Toplamı yazdır A5. Dur Yukarıdaki algoritmada A2 ile A3 satırlarının yerlerini değiştirdiğinizi düşünün. Bu şekilde bir mantık kurabilir misiniz? Önerilen çözümler, sade ve kesin olmalı Algoritma sonsuz olamaz! A1. Başla A2. x ve y değişkenlerini tanımla A3. x=5 ise y'nin karesini yazdır A4. x<>5 ise y'nin karekökünü yazdır A5. Dur Yukarıdaki algoritmada x=5 şartı kesin bir ifadedir ve işlemler o şarta bağlı olarak yürütülm ektedir. Kafalarda şüphe oluşturabilecek bir ifadenin algoritmalarda kullanılmaması gerekmektedir. Atatürk Üniversitesi Açıköğretim Fakültesi 3

43 Algoritma Gerçekleştirilecek işlem ler sonlu sayıda ve sürede olmalıdır Yukarıdaki algoritmada x değişkenine "Algoritma" ifadesi atanmıştır. Ve x değişkeninin 10 defa yazdırılması istenmiştir. Bu algoritma mantığına göre x değişkeninin taşıdığı değer olan "Algoritma" ifadesi 10 defa yazdırıldıktan sonra işlem sona erecektir. İşlemlerin bitiş noktalarının belirli olmadığı algoritmalar doğru kabul edilemezler. Aynı şekilde bir algoritma herhangi bir işlemin belirli bir süre sonra sonlandırılmasını da dikkate almalıdır. Görüldüğü gibi algoritmada işlem için 10 saniyelik bir sınırlama getirilm iştir. Algoritmada her satır açık ve eksiksiz olmalıdır. İfadeler düşüncede ikileme yol açmam alıdır. M atem atiksel ve mantıksal işlemler belirli bir düzen içerisinde sıralanmalıdır. İşlem sırasında yapılması düşünülen özel bir değişiklik algoritmada belirtilerek yapılmalıdır. İşlemler amaçlanan çözüme uygun, yeterli ve en kısa şekli ile gerçekleştirilebilecek özellikte olmalıdır. Eğer dünyayı kurtarmak için bana 1 saat verilseydi bunun 55 dakikasını problemi tanım lam ak 5 dakikasını da çözümü bulmak için kullanırdım. Albert Einstein X J Algoritmalar, karşılaşılabilecek tüm ihtimalleri göz önüne alacak şekilde detaylı planlanmalıdır. Problem Tanımı İnsan zihnini karıştıran, belirsizleştiren her şey problem olarak tanımlanabilir. Problem, hakkında araştırma yapılacak, üzerinde düşünülecek ve çözülmesi gereken sorundur. Problem tanım laması yapılırken şu hususlara dikkat edilmelidir. Atatürk Üniversitesi Açıköğretim Fakültesi 4

44 Algoritma Problemin kaynağı belirlenm elidir. Problemi doğuran faktörlerin neler olduğu tespit edilm elidir. Problemi etkileyen faktörlerin neler olduğu tespit edilmelidir. Problemin ne olduğu anlaşılmaya çalışılm alıdır. Teorik olarak kütüphanelerden veya diğer kaynaklardan, deneysel olarak da laboratuvarlardan veya çevreden bilgi toplanm alıdır. Problemin ne olduğu tam olarak anlaşıldıktan sonra problemin çözümü için sınırlar belirlenm elidir. Problem Çözümü Herhangi bir problemin çözümü amacıyla bilgisayar programları hazırlanırken, mantıksal bir akış geliştirilmeli ve sorunun çözüm planı oluşturulm alıdır. Bilgisayarda bir problemin çözüm planı aşağıdaki sıralam aya göre yapılmalıdır. İhtiyaçların belirlenmesi İhtiyacın ne olduğu tespit edilmelidir. Ne yapılmak isteniyor? Eksik olan veya yanlış olan nedir? Neyi düzeltmek veya neyi yeniden düzenlemek istiyoruz? Çalışmayan veya düzgün gitmeyen sistem nedir ve onun yerine nasıl bir sistem oluşturulm alıdır? Problemin analizi Problemin ne olduğu tam olarak anlaşılmalıdır. Çözümden neler beklenildiği, çözüm sonrası elde edilecek çıktıların neler olacağı kesin olarak belirlenmelidir. Problemin tasarım ı Problemin çözüm adımları belirlenmelidir. Bu aşamanın en önemli noktasını algoritma ve akış şeması oluşturur. Amacın gerçekleşmesine yardımcı olacak iyi tasarlanm ış bir algoritma ve akış şeması problemin çözümüne önemli katkı sağlayacaktır. Tasarım sırasında algoritma ve akış şemasının yanı sıra programlamanın gerçekleştirileceği programlama dilinin tespiti de yapılmalıdır. Algoritma ve Akış Şeması Tasarım aşamasında oluşturulur. Programlamanın gerçekleştirilmesi Bilgisayarda uygulama yazılımı geliştirmek için önceki hafta belirtildiği gibi programlama dilleri kullanılır. Programlama dillerinin farklı özelliklere sahip olmaları nedeniyle, geliştirilecek uygulamanın ihtiyaçlarını karşılayabilecek uygun bir yazılımın seçilmesi gerekmektedir. Bu aşamada algoritması ve akış şeması hazırlanmış olan çözüm planının belirlenen programlama dili kullanılarak bilgisayar yazılımına dönüştürülmesi yapılm alıdır. Atatürk Üniversitesi Açıköğretim Fakültesi 5

45 Algoritma Test Geliştirilen yazılım farklı girdiler kullanılarak ve farklı uygulamalar yapılarak test edilmelidir. Elde edilen çıktıların arzu edilen çıktılar olup olmadığı, girdilerin ve çıktıların uyumluluğu gözden geçirilmelidir. Sonuçların istenilen seviyede olması durumunda test aşaması tam am lanacaktır. Aksi halde oluşan hatalar veya istenilm eyen sonuçlar tekrar gözden geçirilerek düzeltilmelidir. Bakım Geliştirilen yazılımda bir müddet sonra gerekli değişikliklerin yapılması, yazılımın çalışması sırasında oluşan donanım ve yazılım hatalarının engellenmesi ve varsa oluşan hataların giderilmesi gibi çalışmalar bakım aşamasında gerçekleştirilir. Ayrıca programın güncel koşullara göre yeniden düzenlenmesi ve gerekiyorsa yeni eklemelerin yapılması da bakım aşamasını ilgilendirir. Gerektiğinde teknolojide meydana gelen gelişmeler sonucunda yazılımın yeni teknolojiye adaptasyonu da bu aşamada yapılan işlemlerdendir. Algoritma oluştururken sayısal, karakter, karşılaştırma ve mantıksal operatörler kullanılabilir. Şekil 1. Atatürk Üniversitesi Açıköğretim Fakültesi 6

46 Algoritma Algoritmalarda kullanılan operatörler Sayısal Operatörler Operatör adı Operatör simgesi Atama = Toplama + Çıkarma - Çarpma * Bölme / Üs alma A Tam sayı bölme \ Bölümden kalan Mod Karakter Operatörler Operatör adı Operatör simgesi Birleştirme + String toplama & Karşılaştırma Operatörleri Operatör adı Operatör simgesi Eşit = Eşit değil <> Küçük < Büyük > Küçük eşit <= Büyük eşit >= Mantıksal Operatörler Operatör adı Operatör simgesi NOT Değil AND Ve OR Veya Değişken Kullanımı Algoritmalarda x, y veya sa y ıl, sayı2 gibi isimler görebilirsiniz. İçerisinde değişen değerler bulundurabilen ve kullanıldığı yerde bu değerleri temsil eden yapılar değişken olarak adlandırılır. Örneğin klavyeden girilen sayının karesini hesaplayan bir programın algoritması oluşturulurken öncelikle sayıyı temsil eden ifadeye ihtiyaç vardır. Değişkeni bir zarfa benzetebiliriz. Bir arkadaşınıza; Bir zarf al ve etiketine x ismi ver Atatürk Üniversitesi Açıköğretim Fakültesi 7

47 Algoritma Sana söylenen sayıyı bir kâğıda yaz ve x zarfına koy x zarfındaki sayının karesini al Hesaplanan sayıyı bir kâğıda yaz ve y zarfına koy dediğinizi düşünün. Arkadaşınıza 5 sayısını söylediğinizde x zarfında ve y zarfından hangi sayılar bulunur? Bu işlemi arkadaşınız değil de bilgisayar yapacak olursa "zarf" ifadesi yerine "değişken" ifadesini kullanarak aşağıdaki gibi bir algoritma oluşturur. A1. Başla A2. x ve y değişkeni tanımla ^ Değişken (zarf) tanım lar A3. x için sayı değerini gir ^ Sayıyı al x'e aktar A4. x = y2 ^ Karesini al y'ye aktar A5. Dur 2" "y=x ifadesi, "x'in içindeki değerin karesini y'nin içine aktar" anlamına gelmektedir. Buna göre aşağıdaki ifadelerin anlamlarına göz atınız. x=5 ^ x'e 5 aktar x=y+5 ^ y'deki değerle 5'i topla x'e aktar x=x+5 ^ x'te bulunan değerin 3 fazlasını hesapla ve x'in içerisine yaz x=x+3 ifadesi karışık gelebilir ancak şu şekilde çözüm lenebilir. ^ i =x+3 A ktarılacak bölüm Hesaplanacak bölüm Atatürk Üniversitesi Açıköğretim Fakültesi 8

48 Algoritma Örnek Algoritmalar Algoritma başla ifadesiyle başlar, dur ifadesiyle sona erer.»klavyeden girilen iki sayının toplamını bulup yazdıran algoritma. A1. Başla A2. S1, S2 ve Toplam değişkenlerini tanımla A3. S1 ve S2 değişkenleri için sayı değerlerini gir A4. Toplam=S1+S2 A5. Toplam değişkeninin değerini yazdır A6. Dur A1. Başla A2. X ve Y değişkenlerini tanımla A3. X ve Y değişkenleri için sayı değerlerini gir A4. Eğer X>Y ise X değişkeninin değerini yazdır A5. Eğer X<Y ise Y değişkeninin değerini yazdır A6. Eğer X=Y ise A3'e git A7. Dur Aşağıda çeşitli örnekler yer almaktadır. Bu örnekleri inceleyerek her satırın ne anlama geldiğini yazmaya ve sonuçtaki değişkenlerin değerlerini bulmaya çalışınız. a)»klavyeden girilen birinci sayı ile ikinci sayı arasında kalan sayıları yazdıran algoritma. Sayac=Sayac+1 ifadesiyle Sayac değişkeni yeni değerini alır. s > Atatürk Üniversitesi Açıköğretim Fakültesi 9

49 Algoritma A l. Başla A2. X ve Y değişkenlerini tanımla A3. Birinci sayı; X değerlerini gir A4. İkinci sayı; Y değerlerini gir A5.X=X+1 A6. X değişkeninin değerini yazdır A7. Eğer X<Y ise A5'e git A8. Dur -1 değeri girilinceye kadar klavyeden girilen sayıların ortalam asını bulup yazdıran algoritma. A l. Başla A2. Sayaç, Sayı, Toplam ve Ortalama değişkenlerini tanımla A3. Toplam=0, Sayac=0 A4. Sayı değerini gir A5. Eğer Sayı=-1 ise A9'a git A6. Toplam=Toplam + Sayı A7. Sayac=Sayac + 1 A8. A4'e git A9. Ortalama=Toplam/Sayac A10. Ortalama değişkeninin değerini yazdır A11. Dur O O) c Klavyeden 1 ile 100 arasında tam sayılar girerek bilgisayar tarafından tutulan bir tam sayıyı tahmin eden ve ve doğru tahm inin kaçıncı denemede yapıldığını hesaplayan algoritma. Atatürk Üniversitesi Açıköğretim Fakültesi 10

50 Algoritma A1. Başla A2. Tutulan, Girilen ve Sayac değişkenlerini tanımla A3.Sayac=0 A4. Tutulan değişkenine bilgisayar tarafından rastgele bir sayı aktar A5. Girilen değişkenine bir sayı gir A6.Sayac=Sayac+1 A7. Eğer Tutulan=Girilen ise A9'a git A8. Eğer Tutulan < Girilen ise "Daha küçük bir sayı girin" Yaz A9. A5'e git A10. Eğer Tutulan > Girilen ise "Daha büyük bir sayı girin" Yaz A11. A5'e git A12. "Tutulan sayıyı " & Sayac & ".denemede buldunuz" Yaz A13. Dur Açıklama Dizi kavramı ilerleyen bölümlerde ayrıntılı bir şekilde anlatılacaktır. Ancak aşağıdaki örneklerin anlaşılması açısından, aşağıdaki "dizi" kavramıyla ilgili açıklamaların dikkatle okunması gerekmektedir. Dizi, bir değişkenin içerisinde birden fazla değeri saklamak için kullanılan yapıyı ifade etmektedir. Örneğin "A" isimli bir dizide, birden fazla eleman (alt değişken) bulunabilir. Bunlar genellikle "indis" adı verilen ve dizi isminin yanında "()" işaretlerinin arasına gelecek şekilde yazılan rakamlar ile tem sil edilir. A isimli bir dizinin 10 adet elemanı olduğunu düşünelim. Birinci elemanı temsil etmek için "A(1)" ifadesi kullanılır. Bu yöntemle A isimli dizi altında 10 adet değişken saklama imkânı bulunur. Aşağıda verilen örneklerdeki dizilerde "()" işaretleri içerisinde dizinin hangi ya da kaçıncı elemanına karşılık geldiği, parantez işaretleri içerisindeki ifadelerle belirtilmiştir. "A(sayı)" ifadesi, A dizisinin "sayı" değişkenini ifade etmektedir. Burada "sayı" değişkeni içerisinde değer; eğer "1" ise bu, A(1) yani A dizisinin 1. elemanı, yine "sayı" değişkeni içerisindeki değer "2" ise A(2) yani A dizisinin 2. Elemanı anlamına gelmektedir. Benzer şekilde "sayı" değişkeni içerisindeki değer değiştikçe A dizisine ait indis yani, A'nın elamanı anlamlarına gelebilecektir. M A O oı c Tamsayılardan oluşan 20 elemanlı bir sayı dizisindeki pozitif ve negatif sayıların ortalam alarını bulan algoritma. Atatürk Üniversitesi Açıköğretim Fakültesi 11

51 Algoritma A(Sayı) bir dizi değişkendir. Sayı değişkeninin alacağı değer dizinin üst sınırını gösterir. A1. Başla A2. A(Sayı) dizi değişkenini tanımla A3. Poz ve Neg değişkenlerini tanımla A4. Toppoz, Topneg, Ortpoz ve Ortneg değişkenlerini tanımla A5. Sayı=1, Poz=0, Neg=0, Toppoz=0, Topneg=0, Ortpoz=0, Ortneg=0 A6. A(Sayı) değerini gir A7. Eğer A(Sayı)=0 ise A10'a git A8. Eğer A(Sayı)<0 ise Topneg=Topneg+A(Sayı), Neg=Neg+1,A10'a git A9. Toppoz=Toppoz+A(Sayı), Poz=Poz+1 A10. Eğer sayı=20 ise A12'ye git A11. Sayı=Sayı+1, A6'ya git A12. Eğer Poz=0 ise A14'e git A13. Ortpoz=Toppoz/Poz A14. Eğer Neg=0 ise A16'ya git A15.Ortneg=Topneg/Neg A16. Ortpoz ve Ortneg değişkenlerinin değerlerini yazdır A17. Dur Erzurum'dan İstanbul'a gitmek isteyen bir kişinin, uçak bilet ücreti 100 TL'nin altında olması durumunda uçak ile aksi takdirde otobüs ile gitmesini düzenleyen algoritma. m Ucakbil=100 ise uçağa mı otobüse mi binilecek? A1. Başla A2. Ucakbil değişkenini tanımla A3. Ucakbil değişken değeri nedir? A4. Eğer Ucakbil<100 ise A8'e git A5. Eğer Ucakbil>=100 ise A5. İstanbul için otobüs biletini al A6. İstanbul'a gitmek için otobüse bin A7. A10'a git A8. İstanbul için uçak biletini al A9. İstanbul'a gitmek için uçağa bin A10. Dur Atatürk Üniversitesi Açıköğretim Fakültesi 12

52 Algoritma A l. Başla A2. A(Sayı) dizi değişkenini tanımla A3. N, Aktar ve kontrol değişkenlerini tanımla A4. Sayı=1 A5. N değerini gir A6. A(Sayı) değerini gir A7. Eğer Sayı=N ise A10'a git A8. Sayı=Sayı+1 A9. A6'ya git A10. Kontrol=1, Sayı=1 A l l. Eğer A(Sayı)<A(Sayı+1) ise A13'e git A12. Aktar=A(Sayı), A(Sayı)=A(Sayı+l), A(Sayı+l)=Aktar, Kontrol=0 A l3. Eğer Sayı=N-l ise A l5 'e git A l4. Sayı=Sayı+l ve A ll'e git A l5. Eğer Kontrol=0 ise AlO'a git A l6. Sayı=l A l7. A(Sayı) değişken değerini yaz A l8. Eğer Sayı=N ise A20'ye git A l9. Sayı=Sayı+l ve A l7 'y e git A20. Dur A(Sayı) değişkeni 2'ye tamsayı bölünüp elde edilen değer tekrar 2 ile çarpılmaktadır. Bu sayede sayının tek veya çift olduğu belirlenm ektedir. N elemandan oluşan bir tamsayı dizisinde tek ve çift olan elm anların sayısını bulan algoritma. Atatürk Üniversitesi Açıköğretim Fakültesi 13

53 Algoritma A1. Başla A2. A(Sayı) dizi değişkenini tanımla A3. Kontrol, N, Tek ve Cift değişkenlerini tanımla A4. Sayı=1, Tek=0, Cift=0 A5. A(Sayı) değerini gir A6. Kontrol=(A(Sayı)\2)*2 A7. Eğer Kontrol=A(Sayı) ise A9'a git A8. Tek=Tek+1 ve A10'a git A9. Cift=Cift+1 A10. Eğer Sayı=N ise A13'e git A11. Sayı=Sayı+1 A12. A5'e git A13. Tek ve Cift değişken değerlerini yazdır A14. Dur N elemanlı bir sayı dizisine girilen rastgele sayıların ortalamasını, girilen en büyük ve en küçük sayıyı ve en büyük sayı ile en küçük sayının farkını bulan algoritmayı olıuşturunuz. Hazırladığınız ödevi sistemde ilgili ünite başlığı altında yer alan "ödev" bölümüne yükleyebilirsiniz. Atatürk Üniversitesi Açıköğretim Fakültesi 14

54 Algoritma O (D M Bilgisayarda bir problemi çözebilmek için önce problemin ne olduğu anlaşılmalıdır. Problem iyice belirlendikten sonra problemin çözüm planı oluşturulmalıdır. Bir problemin çözüm yolları, sistem ihtiyaçlarının belirlenmesi, analiz, tasarım, programın kodlanması, test ve bakım aşamalarını içermelidir. Algoritma problemin çözüm planı içerisinde tasarım aşamasında yer almalıdır. Algoritma problemin çözüm yollarının mantıksal bir sıralam içerisinde herhangi bir programlama diline bağlı kalmaksızın sözle ifade edilmesidir. Algoritmanın oluşturulurken, ünite içerisinde Algoritma Özellikleri başlığı altında anlatılan özelliklere dikkat edilmelidir. Atatürk Üniversitesi Açıköğretim Fakültesi 15

55 Algoritma g _ DEĞERLENDİRME SORULARI Değerlendirme sorularını sistemde ilgili ünite başlığı altında yer alan "bölüm sonu testi" bölümünde etkileşimli olarak cevaplayabilirsiniz. \ J 1. Algoritma oluştururken son ifade ne olmalıdır? a) Bitti b) Dur c) Yazdır d) İşlem e) Karar 2. Algoritma ile ilgili aşağıdaki ifadelerden hangisi yanlıştır? a) Mantısal sıralama gerekli b) Sonsuz olmalı c) Net olmalı d) Sınırları belli olmalı e) Programlamadan önce hazırlanmalı 1. Problemin analizi 2. Test 3. İhtiyaçların belirlenmesi 3. Bir problemin çözüm aşamaları dikkate alındığında verilen üç aşamanın sıralaması nasıl olmalıdır? a) 1,2,3 b) 2,1,3 c) 3,2,1 d) 3,1,2 e) 1,3,2 4. Algoritma ile ilgili seçeneklerde verilen ifadelerden hangisi doğrudur? a) Algoritma akış şemasından sonra yazılmalı b) Algoritma yazılırken kullanılacak programlama dili belirlenmiş olmalı c) Çözüm önerileri sürekli olmalı d) M antık akışı değişiklikleri genel amaca uygun olmalı e) Algoritma yazılırken program hata testi yapılmalı Atatürk Üniversitesi Açıköğretim Fakültesi 16

56 Algoritma A1. Başla A2. Oku N A3. Giriş: A4. Oku A A5. T=T+A A6.S=S+1 A7. S< >N ise A3'e git A8. T'yi yaz A9. Dur 5. Verilen algoritma ile ilgili ifadelerden doğru olanı aşağıdakilerden hangisinde belirtilmiştir? a) Bu algoritma hatalı yazılmıştır. b) Bu algoritma 1'den N'e kadar sayıları toplar. c) Bu algoritma N adet sayıyı toplar. d) Bu algoritma A adet sayıyı toplar. e) Bu algoritma S, A'ya eşit oluncaya kadar N'leri toplar. A1. Başla A2.S=0 :F=0 A2. Oku A A3. Giriş: A4.S=S+1 A5.F=F*S A6. Eğer S=A ise F'yi yaz değilse A3'e git A7. Dur 6. Algoritmada A değişkenine 3 atandığını düşündüğünüzde verilen ifadelerden doğru olanı aşağıdakilerden hangisinde belirtilmiştir? a) F 18 olur b) F 3 olur c) F hiçbir değer alamaz d) F 0 olur e) Algoritmada yazım hatası vardır 7. "Problemin ne olduğu tam olarak anlaşılmalıdır. Çözümden neler beklenildiği, çözüm sonrası elde edilecek çıktıların neler olacağı kesin olarak belirlenmelidir" ifadesi bir problemin çözüm aşamalarından hangisini açıklamaktadır? a) Analiz b) Tasarım c) Programın gerçekleştirilmesi d) Test e) Bakım Atatürk Üniversitesi Açıköğretim Fakültesi 17

57 Algoritma A1. Başla A2. X ve Y değişkenlerini tanımla A3. Birinci sayı; X değerlerini gir A4. İkinci sayı; Y değerlerini gir A5.? A6. X değişkeninin değerini yazdır A7. Eğer X<Y ise A5'e git A8. Dur 8. "Klavyeden girilen birinci sayı ile ikinci sayı arasında kalan sayıları yazdıran" aşağıdaki algoritmada boş bırakılan A5. satıra aşağıdakilerden hangisi gelmelidir? a) X=X+X b) X=X+1 c) X+1=X d) X=X+Y e) X=X-1 A1. Başla A2. X ve Y değişkenlerini tanımla A3. X ve Y değişkenleri için sayı değerlerini gir A4. Eğer X>Y ise X değişkeninin değerini yazdır A5. Eğer X<Y ise Y değişkeninin değerini yazdır A6. Eğer X=Y ise A2'ye git A7. Dur 9. "Klavyeden girilen iki sayıdan büyük olanı bulup yazdıran" aşağıdaki algoritmada hatalı satır aşağıdakilerden hangisinde gösterilmektedir? a) A2 b) A3 c) A4 d) A5 e) A6 Atatürk Üniversitesi Açıköğretim Fakültesi 18

58 Algoritma A l. Başla A2. Sayaç, Sayı, Toplam ve Ortalama değişkenlerini tanımla A3. Toplam=0, Sayac=0 A4.? A5. Eğer Sayı=-l ise A9'a git A6. Toplam=Toplam + Sayı A7. Sayac=Sayac + 1 A8. A4'e git A9. Ortalama=Toplam/Sayac A l0. Ortalama değişkeninin değerini yazdır A11. Dur 10. "-1 değeri girilinceye kadar klavyeden girilen sayıların ortalamasını bulup yazdıran" aşağıdaki algoritmada boş bırakılan A4. satıra aşağıdakilerden hangisinde gelmelidir? a) Sayı=Sayı+l b) Sayı değerini gir c) Sayı=l d) Sayı=-1 e) Sayac=Sayı+Sayac Cevap Anahtarı 1.B, 2.B, 3.D, 4.D, 5.C, 6.D, 7.A, 8.B, 9.C, 10.B Atatürk Üniversitesi Açıköğretim Fakültesi 19

59 Algoritma YARARLANILAN VE BAŞVURULABİLECEK DİĞER KAYNAKLAR Ayık Y.Ziya. (2009). Algoritma ve Programlama Metodolojisi, MuratHan, Trabzon Çelikkol Soner. (2005). Programlamaya Giriş ve Algoritmalar, Dilara Yayınevi, Trabzon Gökçen Hadi. (2007). Yönetim Bilgi Sistemleri, Palme Yayıncılık, Ankara Eker M. (2005). Algoritmayı Anlamak, Nirvana Yayınevi, Ankara Atatürk Üniversitesi Açıköğretim Fakültesi 20

60 AKIŞ ŞEMASI LU Û z Giriş Akış Şeması Akış Şeması Şekilleri Akış Şeması Yapıları(Türleri) Örnek Akış Şemaları PROGRAMLAMA TEMELLERİ Yrd. Doç. Dr. Y. Ziya AYIK Bu üniteyi çalıştıktan sonra; Akış şem ası mantığını anlayabilecek, Akış şem ası şekillerini tanıyabilecek, Akış şem alarının türlerini öğrenebilecek, Bir problem in çözüm ü için akış şem ası gelişirebileceksiniz. ÜNİTE 4

61 Akış Şeması GİRİŞ Bir önceki ünitede algoritma, bilgisayarda herhangi bir işlem gerçekleştirmeden ya da program yazmaya başlamadan önce gerçekleştirilmesi düşünülen işlemlerin belirli bir mantık ve plan çerçevesinde sözlü ifadelerle yazılması olarak tanımlanmıştı. Akış şeması ise algoritmanın özel anlam taşıyan şekiller kullanılarak yine belirli bir plan ve mantık akışı içerisinde çizilmesidir. Akış şemasında kullanılan şekillerin her biri özel anlama sahiptirler ve bu şekiller algoritmada sözle belirtilen herhangi bir ifadenin karşılığı olarak kullanılırlar. AKIŞ ŞEMASI Algoritmanın görsel olarak simge ya da sembollerle ifade edilmiş şekline akış şeması denir. Akış şemaları algoritmadan farklı olarak mantıksal bir sıralama içerisinde sözle ifade edilen adımların simge veya şekilleri kullanılarak gösterilmesidir. Söz konusu simge veya şekiller kendi başlarına anlam taşıdıkları için adımlar algoritmada olduğu gibi detaylı olarak sözle ifade edilmezler. Sadece sembol veya şekiller içerisinde gerekli atamalar veya yeteri kadar açıklamalar yapılır. Algoritmadaki adımlar arasında sözle ifade edilen geçişler akış şemalarında oklar kullanılarak veya bağlantı sembolleriyle yapılmaktadır. Akış şemalarında kullanılan semboller ve şekiller uluslararası düzeyde aynı anlama sahip olduklarından, akış şemaları içerisinde açıklamalarda detaya girilmesine gerek olmamaktadır. Akış şeması algoritmanın, özel anlam taşıyan şekiller kullanılarak belirli bir plan ve mantık akışı içerisinde çizilmesidir. Kapsamlı ve bir ekip tarafından geliştirilen yazılımlarda akış şemaları büyük öneme sahiptir. Projede her birey kendi çalışma sınırını ve kendi çalışmalarının ekip içerisindeki yerini ve diğer çalışmalarla olan bağlantılarını akış şemaları sayesinde görebilir. Akış şemaları, iş akışının anlaşılması, kontrol edilmesi, problemin çözüm yollarının görülmesi, iş akışındaki geri dönüşlerin ve tekrarların belirlenmesi ve kod yazımı için ilk hazırlıkların yapılması için oluşturulur. Akış şemaları oluşturulurken ilk önce projeyi kuş bakışı inceleyen baştan sona genel hatların görüntülendiği bir akış şeması oluşturulur daha sonra da detayların da görüntülendiği ve bağlantı simgeleriyle ilişkilendirilmiş her adımda yapılacak işlerin planlandığı asıl akış şemaları geliştirilir. AKIŞ ŞEMASI ŞEKİLLERİ Akış şeması şekilleri uluslararası geçerliliği olan ve her bir şeklin kendine özel anlamının bulunduğu şekillerdir. Bu nedenle algoritması yazılmış olan bir proje okunarak ve bu özel anlam taşıyan şekiller kullanılmak suretiyle akış şemaları oluşturulabilir. Akış şeması şekilleri içerisine değişken isimleri, değişkene değer atamaları, işlemler ve şartlar yazılabilir. Ancak yazılan ifadeler kısa ve net olmalıdır. Algoritma oluşturulurken kullanılan sözlü ifadeler aynı genişlikte ve serbestlikte kullanılmamalıdır. Atatürk Üniversitesi Açıköğretim Fakültesi 2

62 Akış Şeması Uluslararası ölçekte kabul görmüş akış şeması şekilleri şunlardır: 1. Başla veya dur Akış şemasının başında ve sonunda bulunur. Başka bir anlam taşımaz. Görsel açıdan akış şemasını tamamlar. Algoritma A1. Başla A2... AN. Dur 2. Veri veya bilgi girişi 4 A, "Notlar" J Bu akış şeması şekli ile A değişkenine bir değer ve Notlar ifadesinin girildiği anlaşılmaktadır. 3. İşlem Algoritma A1. Başla A2. A değişkenini tanımla A3. A değişkeni için değer gir A4. Notlar ifadesini gir A5. Dur X=(AA2+BA2)A(1/2) Nl/ Algoritma A1. Başla A2. (AA2+BA2)'nin karekökünü X değişkenine ata A3. Dur 4. Döngü 1 nl 1 1 K = 1, N, 2 ^ Atatürk Üniversitesi Açıköğretim Fakültesi 3

63 Akış Şeması Algoritma A1. Başla A2. 1'den N'e kadar 2'şer artarak döngü oluştur A3. Dur 5. Karar Algoritma A değişkeninin aldığı değer 100'den büyük ise akış sol tarafa, aksi hâlde ise sağ tarafa olacaktır. - A1. Başla A2. Eğer işlem doğruysa EVET yönüne git A3. Eğer işlem yanlışsa HAYIR yönüne git A4. Dur A değişkeninin aldığı değer 100'den küçük ya da 100' e eşit ise akış sol tarafa, aksi hâlde ise sağ tarafa olacaktır. A değişkeninin aldığı değer 100'e eşitse akış sağ tarafa, 100 ise akış sol tarafa olacaktır / HAYIR Dikkat Bu örneklerde akışın sol tarafa olması "EVET", akışın sağ tarafa olması "HAYIR" yönündedir. 6. Çıkış t a Algoritma A1. Başla A2. Sonuç ifadesini yazdır A3. X ve Y değişkenlerinin değerlerini yazdır A3. Dur Atatürk Üniversitesi Açıköğretim Fakültesi 4

64 Akış Şeması 7. Bağlantı İşlem akış yön tuşları -> < - AKIŞ ŞEMASI YAPILARI Bu şekil ile gösterilen işlem, T değişkeninin değeri ile A değişkeninin değerinin toplanarak T değişkeninin yeni değerinin hesaplanmasını sağlamaktadır. Bir bilgisayar programının geliştirilmesinde kullanılan programlama dili ne olursa olsun bu programların akış şemalarında genel olarak yalnız üç basit mantıksal yapı kullanılır. Bu mantıksal yapılardan en basiti sıralı yapıdır. Sıralı yapı, hazırlanacak programdaki her işlemin mantık sırasına göre nerede yer alması gerektiğini vurgular. Bu yapı sona erinceye kadar ikinci bir işlem başlayamaz. BJ O) c&_ O Klavyeden girilen üç sayının toplamını yapan programın akış şeması ve örnek kod yazılımı: - > Atatürk Üniversitesi Açıköğretim Fakültesi 5

65 Akış Şeması A1. Başla A2. Klavyeden bir sayı giriniz (A) A3. Klavyeden bir sayı giriniz (B) A4. Klavyeden bir sayı giriniz (C) A5. T = 0 A6. T = T + A A7. T = T + B A8. T = T + C A9. Yaz T Mantıksal yapılardan ikincisi Karar Verme yapısıdır. Programlama sırasında If...Then... Else (Eğer... <şart>...ise...)yapısı ile tanıyacağımız bu mantıksal yapılar, birden fazla sıralı yapı seçeneğini kapsayan modüllerde, hangi şartlarda hangi sıralı yapının seçileceğini belirler. İşlem 1 İşlem 2 Çıkış <- O) c Klavyeden girilen N1 değeri 50'den küçükse KALDI, 50'den büyük veya 50'ye eşitse GEÇTİ yazdıran programın akış şeması ve örnek kod yazılımı: N1 değişkeninin değeri 50 olursa işlem sonucu ne olur? ^ Atatürk Üniversitesi Açıköğretim Fakültesi 6

66 Akış Şeması A1. Başla A2. Klavyeden öğrenci notunu gir (N1) A3. Eğer N1 >= 50 ise A5'e git A4. Yaz "KALDI" A6'ya git A5. Yaz "GEÇTİ" A6. Dur Üçüncü mantıksal yapı çeşidini tekrarlı yapılar oluşturmaktadır. Yani döngü oluşturmak için kullanılan yapıdır. Döngüler aynı işlemin birçok kez yapılmasını sağlar. Söz konusu üç değişik yapı, değişik kombinezonlarda kullanılarak istenilen işlevleri yerine getirecek programlar hazırlanabilir. Programların bu üç basit yapı ile sınırlandırılması program modüllerinin daha kolay tasarlanmasını sağlar. Giriş Çıkış Giriş Sağ taraftaki Akış şemasında KOŞUL doğru olduğu sürece İşlemler gerçekleştirilmeye devam edecektir. KOŞUL yanlış olduğunda Çıkış gerçekleşecektir. J Şekil 1.4. Tekrarlı Yapı Yanlış Çıkış Atatürk Üniversitesi Açıköğretim Fakültesi 7

67 Akış Şeması Olumsuz koşulda yapılacak işlem yoktur; olumlu olması durumunda ise N adet işlem yapılacaktır. V Koşulun durumuna bağlı olarak 2 farklı işlem vardır. \ Sağ taraftaki Akış Şemasında KOŞUL1 sağlanırsa KOŞUL2'ye, KOŞUL2'sağlanırsa KOŞUL3'e geçilebilir. Atatürk Üniversitesi Açıköğretim Fakültesi 8

68 Akış Şeması Bu yapıyı art arda birden çok kez kullanıp aşağıdaki gibi bir karşılaştırma dizisi oluşturulabilir. İşlem N Koşul daha çevrim içerisine girmeden sınanır. Koşul olumsuz olduğunda çevrime hiç girilmez ve döngü içerisinde yapılması gerekenler atlanır. Döngüye Giriş Çevrim içerisinde koşulu etkileyen kod olmalıdır. Döngüden Çıkış Bu döngü deyiminde, çevrim en az bir defa olmak üzere gerçekleşir. Çünkü koşul sınaması döngü sonunda yapılmaktadır. Eğer koşul sonucu olumsuz ise bir sonraki çevrime geçilmeden döngüden çıkılır. Çevrimin devam edebilmesi için her döngü sonunda yapılan koşul testinin olumlu sonuçlanması gerekir. Atatürk Üniversitesi Açıköğretim Fakültesi 9

69 Akış Şeması Döngüye Giriş Döngüye Giriş Başlangıç * 1 Artım İşlem N İşlem N Koşul döngü başında verilirse işleme geçilmeden Koşul kontrol edilir. Koşul tutmuyorsa döngüye hiç geçilemez. V Döngüden Çıkış İşlern 1 v Döngüden Çıkış İşlem 1 Diğer deyimlerden farklı olarak, döngü sayacı doğrudan koşul parametreleri düzeyinde verilir. Döngü girmeden önce sayaç değişkenine başlangıç değeri atanmakta ve daha sonra koşula bakılmaktadır. Döngü içerisinde belirtilen işlemler yapıldıktan sonra sayaç değişkeni arttırılmaktadır. Atatürk Üniversitesi Açıköğretim Fakültesi 10

70 Akış Şeması O) c Klavyeden girilen sayıya göre birden kendisine kadar olan sayıların çarpımını yapan programın akış şeması ve örnek kod yazılımı: Bu şekil ile Ç değişkenine başlangıç değeri olarak 1 atanmıştır. A1. Başla A2. Klavyeden bir sayı giriniz (N) A3. Ç = 1 A4. S = 1 A5. Eğer S > N ise A9'a git A6. Ç = Ç * S A7. S = S + 1 A8. Git A5'e A9. Yaz Ç A10. Dur Atatürk Üniversitesi Açıköğretim Fakültesi 11

71 Akış Şeması İç içe döngü kurulurken en önemli unsur, içteki döngü sonlanmadan bir dıştaki döngüye geçilmemesidir. Diğer bir deyişle döngüler birbirlerini kesmemelidir. En içteki döngü bir dıştaki döngünün her adımında N kez tekrarlanır. Beşe tam bölünebilen iki basamaklı sayıları ekrana yazdıran programın akış şeması ve örnek kod yazılımı: İç içe döngülerde dış döngü bir kez döndüğünde iç döngü baştan sona kadar bütün döngüsünü tamamlar ıır-nı-..t..»...ı.,ı>. ıılıtoto^ A1. Başla A2. i = 1 A3. Eğer i > 9 ise A12'ye git A4. j = 0 A5. Eğer j > 9 ise A10'a git A6. Sayı = 10 * i + j A7. Yaz Sayı A8. j = j + 5 A9. Git A5'e A10. i = i + 1 A11. Git A3'e A12. Dur Atatürk Üniversitesi Açıköğretim Fakültesi 12

72 Akış Şeması O) c»fibonacci serisi sayıları aşağıdaki gibidir: Buna göre klavyeden girilen N sayısına göre Fibonacci serisinin ilk N terimini bulup ekrana yazdıran programın akış şeması ve örnek kod yazılımı: Seriye dikkat edersek, her terim kendinden önce gelen iki terimin toplamına eşittir. s J T1 ==1, T2 = 2 \ '.1. W I = 1, N-2, 1 T3 = T1 + T2 - * > T3 v T1 = T2 T2 = T3 Atatürk Üniversitesi Açıköğretim Fakültesi 13

73 Akış Şeması A1. Başla A2. Klavyeden terim sayısını giriniz (N) A3. T1 = 1 A4. T2 = 1 A5. Yaz T1 A6. Yaz T2 A7. i = 1 A8. Eğer i > N-2 ise A15'e git A9. T3 = T2 + T1 A10. Yaz T3 A11. T1 = T2 A12. T2 = T3 A13. i = i + 1 A14. Git A8'e A15. Dur Örnekte görüldüğü gibi ilk iki terim sabit olduğundan onlar başa yazıldı ve çıktıları verildi. Bundan sonraki eleman sayısı toplam eleman sayısından iki eksik olacağı için döngümüz N-2'ye kadar döndürüldü. Döngü içinde terim 3 hesaplanıp ekrana yazdırılmıştır. Akabinde terimler sırayla yer değiştirilerek bi sonraki terimi hesaplamaya geçilmiştir. Atatürk Üniversitesi Açıköğretim Fakültesi 14

74 Akış Şeması O (D M Bilgisayarda bir problemi çözebilmek için önce problemin belirlenmesi ve algoritmasının geliştirilmesinin ardından algoritmayı şekillerle ifade eden Akış şemasının düzenlenmesi gerekmektedir. Akış şemasının geliştirlebilmesi için her biri özel anlam taşıyan özel şekiller kullanılmaktadır. Her bir şekil algoritmada ifade edilen bir işlemin karşılığı olarak kullanılmaktadır. Akış şemaları oluşturulurken üç farklı mantıksal yapı kullanılır. Bunlardan birincisi sıralı yapılardır. Mantıksal yapılardan ikincisi karar verme yapısıdır. Üçüncü mantıksal yapı grubu tekrarlı yapılardır ve döngülerden oluşmaktadır. Atatürk Üniversitesi Açıköğretim Fakültesi 15

75 Akış Şeması M DEĞERLENDİRME SORULARI Değerlendirme sorularını sistemde ilgili ünite başlığı altında yer alan "bölüm sonu testi" bölümünde etkileşimli olarak cevaplayabilirsiniz. \ ^ 1. Akış şemasının başında bulunan ve akış şemasını görsel açıdan tamamlayan komut aşağıdakilerden hangisidir? a) İşlem b) Karar c) Başla d) Dur e) Döngü 2. Aşağıdakilerden hangisi akış şemalarında veri veya bilgi girişini sağlar? a) b) c) e) I. Karar yapısı II. Tekrarlı yapı III. Sıralı yapı 3. Yukardakilerden hangisi akış şemalarında kullanılan mantıksal yapılardandır? a) Yalnız I b) I, II c) I, III d) II, III e) I, II, III 4. Visual Basic programlama dilinde aşağıdakilerden hangisi döngü deyiminin ana bileşenlerinden değildir? a) For b) Next c) To d) Step e) İf Atatürk Üniversitesi Açıköğretim Fakültesi 16

76 Akış Şeması 5. Visual Basic programında aşağıdakilerden hangisi karar vermek için kullanılan kod yapısıdır? a) For b) İf c) Val d) Msgbox e) Private Sub 6. Yandaki döngü deyimine göre aşağıdaki seçeneklerden hangisi kesinlikle doğrudur? a) Çevrim en az bir defa gerçekleşir. b) Çevrime hiç girmez. c) Çevrim kesinlikle N adet işlem yapar. d) İlk olarak koşula bakılır. e) İşlem sayısı çoksa gerçekleşmez. 7. Akış şemalarında kullanılan yukardaki şekil hangi işlemi yapar? a) Sayı değişkenine veri girişini sağlar. b) Sayı değişkeni üzerinde işlem yapılmasına yardımcı olur. c) Ekrana sayı yazdırır. d) Döngünün bir sayı ile başlaması gerektiğini ifade eder. e) Sayı değişkeninin değerini ekrana yazdırır. 8. Akış şemaları için aşağıdakilerden hangisi doğru değildir? a) Karar yapıları art arda kullanılabilir. b) Her bir şeklin kendine has anlamı vardır. c) Yazılan ifadeler kısa ve net olmalıdır. d) Gelişi güzel sıralanabilir. e) Algoritmanın görsel olarak simge ya da sembollerle ifade edilmiş şekline denir. Atatürk Üniversitesi Açıköğretim Fakültesi 17

77 Akış Şeması 9. V T1 = T2 T2 = T3 Yukarda verilen akış şemasında kırmızı ile gösterilen işlem bloğunun görevi nedir? a) T1, T2, T3 aynı değer olmuştur. b) T1'e T2'nin değeri, T2'ye de T3'ün değeri atanmıştır. c) T1, T2, T3 ekrana yazdırılmıştır. d) Döngünün ilk elemanları belirlenmiştir. e) Döngünün son elemanları belirlenmiştir. 10. Aşağıdakilerden hangisi uluslararası ölçekte kabul görmüş akış şeması şekillerinden değildir? Cevap Anahtarı 1.C, 2.B, 3.E, 4.E, 5.B, 6.A, 7.E, 8.D, 9.B, 10.B Atatürk Üniversitesi Açıköğretim Fakültesi 18

78 Akış Şeması YARARLANILAN VE BAŞVURULABİLECEK DİĞER KAYNAKLAR Ayık Y.Ziya. (2009). Algoritma ve Programlama Metodolojisi, MuratHan, Trabzon Çelikkol Soner. (2005). Programlamaya Giriş ve Algoritmalar, Dilara Yayınevi, Trabzon Gökçen Hadi. (2007). Yönetim Bilgi Sistemleri, Palme Yayıncılık, Ankara Eker M. (2005). Algoritmayı Anlamak, Nirvana Yayınevi, Ankara Atatürk Üniversitesi Açıköğretim Fakültesi 19

79 GİRİŞ ÇIKIŞ İŞLEMLERİ VE BİLGİ TÜRLERİ İÇİNDEKİLER Giriş Giriş Çıkış İşlemleri Bilgi Türleri Değişkenler Sabitler Veri Tipleri PROGRAMLAMA TEMELLERİ Yrd. Doç. Dr. Y. Ziya AYIK Bu üniteyi çalıştıktan sonra; Veri ve bilgilerin bilgisayara giriş Û ve çıkış işlem lerinin nasıl y yapıldığını görebilecek, J- Değişken ve sabit kavramlarını q kavrayabilecek, LU»Veri türlerini ve veri türleri X arasındaki farklılıkları öğrenebileceksiniz. ÜNİTE 5

80 Giriş Çıkış İşlem leri ve Bilgi Türleri GİRİŞ Bilgi ve veriler bilgisayarın veri girişi için kullanılan donanım birimleriyle bilgisayara aktarılabilir. Elbette veri girişinin yapılabilmesi için söz konusu donanım birimlerinin yanı sıra, uygun bir yazılımın da mevcut olması gerekmektedir. Bunun için farklı yazılımlar kullanılmaktadır. Amaç verilerin işlenmesi ve istenilen bir sonucun elde edilmesi olunca, bu ihtiyacın karşılanabilmesi için programlama dillerinin kullanılması gerekmektedir. Programlama dillerinde veri girişi ve veri çıkışı için uygun deyimler geliştirilmiştir. Bazı kullanım farklılıkları olmasına rağmen veri ve bilgilerin girilmesi ve sonuçların kullanıcı veya programcılara aktarılması için görsel özelliğe sahip programlama dillerinde benzer deyimler kullanılmaktadır. Bu bölümde veri giriş ve çıkış deyimleri için görsel özelliğe sahip Visual Basic.NET programlama dili esas alınarak genel anlatımlar yapılmaktadır. Verilen örnekler de yine Visual Basic.NET programlama diline dayanılarak verilmektedir. m GİRİŞ- ÇIKIŞ İŞLEMLERİ Bilgisayarlarda işlem yapılabilmesi için öncelikle veri girişi yapılmalıdır. Veri girişi ile programlamada tanımlanmış olan basit veya indisli değişkenlere değerler aktarılmaktadır. Yine değişkenlere aktarılan değerlerin işleme tabi tutulması sonucu yine değişkenlerde oluşan değerler çıktı olarak kullanıcı veya programcılara iletilmektedir. Bu bölümde programlamada kullanılabilecek değişkenler ve türleri ile sabitler de geniş olarak anlatılmaktadır. InputBox ile Bilgi Girişi Kullanıcının gereken değeri girmesi için Visual Basic.NET'de INPUTBOX bilgi giriş kutusu nesnesi geliştirilmiştir. Bu deyimin kullanılmasıyla standart olarak OK ve Cancel düğmeleri bulunan bir pencere açılır ve değer girişi bu pencereden yapılır. Kullanım şekli: INPUTBOX (Mesaj, Pencere başlığı, Varsayılan değer, x, y) Mesaj : Girilmesi istenilen değer için açıklama veya soru Pencere başlığı : Açılacak pencerenin başlığı Varsayılan değer: Giriş kutusunda başlangıçta bulunulması istenilen değer x, y: Pencerenin sol üst köşesinin koordinatlarını belirtir. Bu parametrelerden sadece Mesaj parametresinin kullanılması zorunludur. Diğer parametrelerin kullanılması isteğe bağlıdır. Bir seferde bunlardan sadece biri veya bir kaçı aynı anda kullanılabilir. Atatürk Üniversitesi Açıköğretim Fakültesi 2

81 Giriş Çıkış İşlem leri ve Bilgi Türleri Ö rnek Uygulama ve İlk Program Deneyimi Bu derste herhangi bir program derleyicisi kullanarak bir program geliştirilmesi hedeflenmemektedir. Ancak bazı konuların daha iyi anlaşılması için örnek olarak verilen kodların deneme amaçlı çalıştırılabilmesi, konunun somutlaştırılması açısından önemlidir. Bu amaçla ünite içerisinde geçen örnek kod bloklarının çalıştırılması için, Microsoft Office 2010 uygulamalarından olan Microsoft Excel 2010 programında "Görünüm" menüsü altındaki "makro" seçeneği ile bir takım uygulamalar yapabilirsiniz. Aşağıda örnek bir kod program parçasının Microsoft Excel içinde nasıl çalıştırılabileceği adım adım anlatılmaktadır. Benzer şekilde diğer kod bloklarını da Excel'de çalıştırmayı deneyebilirsiniz. Bunun için öncelikle M. Excel programında yeni bir çalışma sayfası açılır. "Görünüm" sekmesi altındaki "Makrolar" menüsünden "Makro Kaydet" seçilir. Makroiar S Makroları Görüntüle n Makro Kaydet... [P1 Göreli Başvuruları Kullan Karşımıza çıkan diyalog kutusu yardımıyla yeni bir makro tanımlayabiliriz. Bu işlemi yaparken Türkçe özel karakter ve boşluk kullanılmaması gerektiğini unutmayınız. Makromuzun adı "ilkprogram" olsun. "Tamam" dedikten sonra M. Excel yeni makro kaydına başlayarak sizi Excel çalışma sayfasına geri gönderecektir. Burada amaç, Excel'in otomatik olarak oluşturduğu makro kod bloğunu kullanmaktır. Bunun için şimdilik bir hücreye "Merhaba" yazıp enter tuşuna basmanız yeterli olacaktır. Makromuzun kayıt işleminin tamamlanması için, yine "Görünüm" sekmesi altındaki "Makrolar" menüsünden "Kaydı Durdur" seçilir. Atatürk Üniversitesi Açıköğretim Fakültesi 3

82 Giriş Çıkış İşlem leri ve Bilgi Türleri Artık hazırlamış olduğumuz "ilkprogram" isimli makroyu açabiliriz. Bunun için Görünüm/Makrolar/Makroları Görüntüle parametresini kullanabilirsiniz. Gelen diyalog kutusundan makromuzu (ilkprogram) seçip "Düzenle" butonu ile (Resim A) M. Excel altında çalışan Visual Basic derleyici ara yüzünde makronuzun kod bloğunu (Resim B) görebilirsiniz. ^ Yeni Microsoft Excel Çalışma Sayfası.xlsx - Modulel (Code) ı o ı r a i B â a (General) ilkprogram J İ ilkprogram Makro ActiveCell.FormulaRICl = "Merhaba Range("I12").Select Er.d S ub O * < Resim B Burada Sub () ve EndSub kod blokları arasını silerek aşağıdaki örnek kod bloğunu yazabilirsiniz. <U a Ogrencisayisi=INPUTBOX("Öğrenci Sayısını Giriniz.", "Öğrenci Menüsü", 10) ^ Yeni Microsoft Excel Çalışma Sayfası.xlsx - Modulel (Code) r ^ n r a i i ü ğ ü i (General) ilkprogram Hazırlamış olduğunuz "ilkprogram" makronuzu çalıştırmak için "F5" tuşuna basabilirsiniz. Çalışan Makro görüntüsü aşağıdaki gibi olacaktır. Ekran Görüntüsü Atatürk Üniversitesi Açıköğretim Fakültesi 4

83 Giriş Çıkış İşlem leri ve Bilgi Türleri Bu örnekte "ogrencisayisi" adlı değişkene veri girişi yapılmaktadır. Veri girişi sırasında açılacak pencerede "Öğrenci Sayısını Giriniz." mesajı ve "Öğrenci Menüsü" pencere başlığı görüntülenecektir. Veri girişi için belirlenen varsayılan değer ise 10'dur. Veri girişi sırasında istenirse varsayılan değer korunarak veya değiştirilerek giriş yapılabilir. (N Dosya=INPUTBOX("Silinecek dosya ismi", "Sil", "Gecici.DOC") Bu örnekte ise Dosya adlı değişkene veri girişi yapılmaktadır. Veri girişi sırasında açılacak pencerede "Silinecek dosya ismi" mesajı ve "Sil" pencere başlığı görüntülenecektir. "Gecici.DOC" ifadesi ise veri girişi için belirlenen varsayılan değerdir. Yukarıdaki örnekte olduğu gibi istenirse veri girişi için belirlenen varsayılan değer girilir veya yeni bir dosya adı belirlenerek giriş yapılır. MsgBox ile Bilgi Çıkışı InputBox ile bilgi girişi, MsgBox ile bilgi çıkışı yapılır. Veri ve bilgiler bilgisayarda işlem gördükten sonra kullanıcı veya programcılara geri verilirler. Bu amaçla MsgBox nesnesi geliştirilmiştir. Mesaj kutusu program akışı sırasında kullanıcı veya programcıya bilgi vermek, işlem gören veri ve bilgilerin sonuçlarını iletmek ve sonuçların onaylatmak amacıyla kullanılmaktadır. MsgBox nesnesi programın herhangi bir yerinde kullanılabilir, Kullanım Şekli: MSGBOX(Mesaj, Tip, Pencere başlığı, Helpfile, Context) Mesaj : Yazılması istenilen açıklama, soru veya cevap Tip : Pencerede yer alacak seçenekler, ikonlar, varsayılan değerler ve öncelikler Not: Tip parametresinde kullanılacak seçenek değerleri 0,1,2,3,4,5; icon değerleri 16,32,48,64; varsayılan değerler 0,256,512 ve öncelik değerleri 4096 ve 0 olabilir. Atatürk Üniversitesi Açıköğretim Fakültesi 5

84 Giriş Çıkış İşlem leri ve Bilgi Türleri Bu değerler ve anlamları şu şekildedir Seçenek İcon 0 vbokonly 16 vbcritical 1 vbokcancel 32 vbquestion 2 vbabortretryignore 48 vbexclamation 3 vbyesnocancel 64 vbinformation 4 vbyesno 5 VbRetryCancel Varsayılan Öncelik 0 vbdefaultbutton System Modal 256 vbdefaultbutton2 0 Normal 512 vbdefaultbutton3 Pencere başlığı: Açılacak pencerenin başlığı Helpfile, Context: Bir yardım dosyası ismi ve bir konu numarası belirlenerek, kullanıcının yardım istemesi durumunda ilgili help dosyasının açılması ve ilgili konunun görüntülenmesi sağlanır. Programlamada veriler ve bilgilerin sabitler ve değişkenler şeklinde kullanılırlar. Bu parametrelerden sadece Mesaj parametresinin kullanılması zorunludur. Diğer parametrelerin kullanılması isteğe bağlıdır. Bir seferde bunlardan sadece biri veya birkaçı aynı anda kullanılabilir. MsgBox Deyiminin kullanılmasıyla seçilen düğme numarası tamsayı şeklinde geri döndürülür. Seçilen düğmeye göre oluşan değerler ve anlamları şu şekildedir. Sembolik Sayısal Anlamı vbok 1 Tamam düğmesi vbcancel 2 İptal düğmesi vbabort 3 İşlemi durdur düğmesi vbretry 4 Tekrar dene düğmesi vbignore 5 Göz ardı et düğmesi vbyes 6 Evet düğmesi vbno 7 Hayır düğmesi Örnekler: Bu örnekte ekrana "İyi günler..." mesajı verdirilmektedir. (N d) ci_ O Cevap=MsgBox("Programdan çıkmak istiyor musunuz", vbyesno+vbquestion, "Çıkış") Atatürk Üniversitesi Açıköğretim Fakültesi 6

85 Giriş Çıkış İşlem leri ve Bilgi Türleri Bu örnekte MsgBox penceresinde görüntülenen Evet veya Hayır seçeneklerinden birine verilecek onay Cevap değişkenine değer olarak aktarılmaktadır. Bu sayede programdan çıkış yapılmakta veya çıkış iptal edilmektedir. BİLGİ TÜRLERİ Bilgisayarlar veri (data) ve bilgi (information) üzerinde işlemler yaparlar. Veri (data) tek başına anlam ifade etmeyen işlenmemiş bilgidir. Bilgi (information) ise tek başlarına bir anlamları olan verilerin işlenmiş şekilleridir. Ayrıca bilgi kelimesi, Türkçede birbirinden farklı iki kavrama karşılık gelmektedir. Birincisi, şeyler ya da kavramlar hakkında genel olarak sahip olunan görüş, ikincisi ise şeylerin ya da kavramların çeşitli niteliklerini tanımlayan işlenmiş veridir. Programlamada veri ve bilgiler programlamanın girdilerini oluştururlar. Programlamada kullanılan veri ve bilgiler farklı tiplerde sabitler veya değişkenler şeklinde kullanılırlar. Programlamada bu veri ve bilgiler üzerinde ikinci bölümde anlatılan sayısal, karakter, karşılaştırma ve mantıksal özellikte işlemler uygulanmaktadır. Programlamada veriler ve bilgilerin sabitler ve değişkenler şeklinde kullanıldığı daha önce belirtilmişti. Doğrudan doğruya kendini ifade eden bilgilere sabitsabitleri taşıyan hafıza birimlerine ise değişken denir. Değişkenler Değişkenler tanımlanırken isimlendirme kurallarına dikkat edilmelidir. Sabitleri değer olarak taşıyan ve programlama süresince değeri değişebilen, geliştirilen programların anlaşıla bilirliğini ve etkinliğini artıran belirli kurallarına uygun olarak isimlendirilen hafıza bölümleridir. Değişkenler basit değişken ve dizi değişken olmak üzere iki farklı şekillerde tanımlanabilir ve kullanılabilirler. Basit değişkenler aynı anda sadece bir sabiti değer olarak taşıyabilirler. Bunun aksine dizi değişkenler verilen indis değerine bağlı olarak aynı anda birden çok sabiti barındırabilirler. Dizi değişkenlerden dokuzuncu ve onuncu bölümlerde detaylı olarak bahsedilecektir. Değişken isimlendirme kuralları Değişkenlere ilk önce bir isim verilmelidir. Değişkenler isimlendirilirken belirli kurallara dikkat edilmeli ve programlama dillerine göre değişebilen özel deyimler kullanılmamalıdır. Değişken isimlendirme kuralları kısaca maddeler halinde aşağıdaki gibi belirtilebilir. Değişken ismi harf ile başlamalıdır. İsimlendirmede boşluk kullanılmamalıdır. Kullanılan programlama dilinde özel anlam taşıyan komut veya tanımlama değimleri kullanılmamalıdır. Değişken ismi 255 karakterden fazla olmamalıdır. İsimlendirmede özel karakter kullanılmamalıdır. Aşağıda doğru ve hatalı değişken isimlendirme örnekleri verilmektedir. Atatürk Üniversitesi Açıköğretim Fakültesi 7

86 Giriş Çıkış İşlem leri ve Bilgi Türleri r Doğru değişken ismi ABC DERS5 Girilen Takımlar Hatalı değişken ismi A B C 5DERS INPUTBOX Takımlar} Değişken tanımlarken DIM deyimi kullanılmalıdır. - ^ Değişken tanımlamanın amacı programlamada kullanılmak üzere girilen verilerin bellekte saklanmasıdır. Bu derste değişkenlerin açıklanması Visual Studio.NET ortamı ve bünyesinde bulundurduğu programlama dilleri esas alınarak yapılmaktadır. Visual Studio.NET ortamı için geliştirilen bütün diller aynı veri tiplerine sahiptirler. Aralarındaki tek fark değişkenlerin tanımlanma biçimidir. Değişken tanımlama Programlamada değişkenlerin kullanılmadan önce tanımlanmaları esastır. Tanımlamada dikkat edilmesi gereken en önemli durum, kullanılacak veri tipine en uygun değişken tipinin belirlenmesidir. Visual Studio.NET ortamında kullanılan programlama dillerinin hepsinde aynı veri tipleri kullanılmasına rağmen değişkenlerin tanımlanma biçimlerinde farklılıklar vardır. Örneğin Visual Basic.NET'de bit tamsayı değişkenin tanımlanması "Dim sayi as Integer" şeklinde yapılırken Visual C#.NET'de "int sayi;" şeklinde yazılmaktadır. Visual Basic.NET programlama dilinde değişkenler Dim özel deyimi kullanılarak tanımlanır. Dim deyimi kullanılarak bir değişken tanımının genel yapısı ve uygun örnekler şu şekilde gösterilebilir. Dim değişkenismi As tipi f V Dim X As Integer Dim Say1,Say2 As Integer Dim A,B As Integer, sonuç As double Örneklerde görüldüğü gibi Dim deyimi kullanılarak tek bir değişken tanımlanabileceği gibi değişken isimleri virgüllerle ayrılarak birden çok değişken tanımlanması da mümkündür. Hatta bir Dim deyimi ile farklı tiplerde değişken tanımlamak da mümkündür. J Değişkenlere ilk değer atamak Bir değişken tanımlanırken, tanımlanan değişkene ilk değer de atanabilir. İlk değer atama işlemi aşağıda gösterildiği gibi yapılmaktadır. f ^ Dim X As Integer=25 Dim A As Integer=500, sonuç As String="Atatürk Üniversitesi" l, ; Atatürk Üniversitesi Açıköğretim Fakültesi 8

87 Giriş Çıkış İşlem leri ve Bilgi Türleri Sabitler Sabit bilgiler sayısal ve karakter olarak gruplandırılabilir. Sayısal sabitler Sabitler kendi değerlerini taşırlar. * Üzerlerinde matematiksel ve mantıksal işlemler yapılabilen ve kendi değerlerini taşıyan sabit verilere sayısal sabitler denir. Sayısal sabitler, tamsayı sabit ve kesirli sabitler olarak ikiye ayrılırlar. Tamsayı sabitler 0'dan 9'a kadar olan tamsayılardır. Bunlardan kısa tamsayı sabitler hafızada iki byte yer işgal eden =32767 ile arasında değer alabilen sabitlerdir. Uzun tamsayı sabitler ise hafızada dört byte yer işgal eden = ile arasında değer alabilen sabitlerdir. Kısa ve uzun tamsayıların yer aldıkları hafıza büyüklükleri Tablo 1'de örneklerle gösterilmektedir. Tam Sayılar Tam Sayılar Kısa Tamsayı Uzun Tamsayı Tamsayı Hafıza Yerleşimi Tamsayı Hafıza Yerleşimi Sayısal sabitlerin diğer bir bölümü olan kesirli sabitler ise tek duyarlıklı kesirli sabitler ve çift duyarlıklı kesirli sabitler olarak ikiye ayrılır. Tek duyarlıklı kesirli sabitler hafızada dört byte'lık yer işgal ederler ve en fazla yedi anlamlı basamak bulundurabilirler. Çift duyarlıklı kesirli sabitler ise sekiz bayt yer işgal ederler ve en fazla on beş anlamlı basamak bulundururlar. Tablo 2'de örnek kesirli sayılar verilmektedir. Kesirli Sayılar Kesirli Sayılar Tek Duyarlıklı Kesirli Sayı Çift Duyarlıklı Kesirli Sayı 46,9 46,9-5,7652-5, , , Karakter sabitler Sabit bilgilerin diğer bir grubu da karakter sabitlerdir. Karakter bilgiler üzerlerinde sayısal ve mantıksal işlemler yapılamaz. American Standard Code for Information Interchange (ASCII) kod tablosunda bulunan tüm karakterler karakter Atatürk Üniversitesi Açıköğretim Fakültesi 9

88 Giriş Çıkış İşlem leri ve Bilgi Türleri Veri ve bilgiler taşıdıkları özellikler dikkate alınarak farklı tiplerde tanımlanırlar. sabit kabul edilir. Kısaca A'dan Z'ye kadar bütün alfabe karakterleri, 0'dan 9'a kadar üzerinde matematiksel işlem yapılması düşünülmeyen sayılar ve özel anlam taşıyan karakterler karakter sabitleri oluştururlar. Sabit Tanımlama Değişkenler programlamada veri girişi sırasında değerleri sürekli değiştirilebilen hafıza birimleridir. Yani çalışma anında değişkenin değeri istenildiği gibi değiştirilebilir. Ancak programcılar bazen tanımladıkları değişkenin içeriğinin değiştirilmesini istemezler. Bu gibi durumlarda değişken tanımlama yerine sabit tanımlanmalıdır. Sabitleri tanımlamak için Const deyimi kullanılmalıdır. Sabit tanımlanırken ilk değerin sabite aktarılması gerekmektedir. Çünkü derleme sırasında sabitin alacağı değerin belli olması gerekmektedir. Tanımlanan sabitin içeriği daha sonra değiştirilemez. Const deyimi kullanılarak bir sabitin tanımının genel yapısı ve uygun örnekler şu şekilde gösterilebilir. VERİ TİPLERİ Bütün programlama dillerinde, değişkenler belirli kurallara uygun olarak tanımlanırlar ve kullanılırlar. Bu değişkenlerin ve taşıdıkları değer olan verilerin tiplerinin belirlenmesi gerekmektedir. Veri tipinin doğru belirlenmesi geliştirilen programın hatasız, hızlı ve daha etkin çalışmasına katkıda bulunur. Veri tipinin belirlenmemesi veya uygun olmayan bir tipin tanımlanması programın hızının yavaşlamasına ve verilerin bellekte daha fazla yer kaplamasına neden olmaktadır. Bazen bütün veriler için kullanılabilen ve aktarılan verinin yapısına bakarak uygun özellikler alan örneğin Object tipi değişkenler, diğer tiplere gerek olmadan değişkenlerin normal işlevlerini yerine getirebilmekte ancak bu durum özellikle hızlı ve özlü kodlar hazırlanmak istendiğinde uygun olmamaktadır. Bu nedenle, verinin yapısının hassas bir şekilde dikkate alınarak uygun değişken tiplerinin oluşturulması, geliştirilecek programın etkinliği açısından çok önemlidir. Atatürk Üniversitesi Açıköğretim Fakültesi 10

89 Giriş Çıkış İşlem leri ve Bilgi Türleri Char Değişkenler Tek karakterlik bilgilerin bellekte saklanması gerektiğinde kullanılabilen değişken tipidir. Char değişkenlerinde ASCII karakter kümesindeki karakterlerden sadece birisi tutulabilir. Char değişkenleri bellekte 2 byte yer işgal ederler. f v Char tipte bir değişken aşağıdaki şekilde tanımlanabilir. Dim seçenek As Char Seçenek="A" gibi j Seçenek değişkenine yalnızca bir karakter atanabilir. Sayısal olmayan işlemler için tanımlanan karakter özellikli veriler String tipinde tanımlanabilir. Seçenek değişkenine birden fazla karakter atansa bile yalnızca ilk karakter dikkate alınır. Seçenek="Kitap" gibi bir atamada Seçenek değişkenin taşıyacağı veri sadece "K" olacaktır. String Değişkenler Sayısal olmayan işlemler için tanımlanan karakter özellikli veri tipidir. Birden fazla karakterin bir değişkene aktarılması düşünüldüğünde String değişken kullanılmalıdır. String değişkenlere 0'dan karaktere kadar, istenilen uzunlukta karakter bilgi aktarılabilir. Her bir karakter için 1 byte yer işgal eder. String tipte bir değişken aşağıdaki şekilde tanımlanabilir. Dim Adres As String String değişkenler tanımlanırken "$" karakteri değişken adının sonuna eklenebilir. Bu durumda derleyici adının son karakteri "$" olan değişkenin String tipinde olduğunu anlar. s V Dim şehir$ Şehir$="Erzurum" String değişkenler gerçekte Char tipi değişkenlerin taşıdıkları değerleri de >1 J içeren dizi değişkenler olarak kabul edilebilirler. Bu nedenle String bilginin istenilen karakteri Char değişkenine aktarılabilir. / Dim Şehir As String="İstanbul" Dim Harf As Char Harf=Şehir(5) > J Bu durumda Harf değişkenine Şehir değişkeninin 5 indis değerli elemanı olan "n" atanmış olur. Boolean Değişkenler Tamsayı veri ve bilgiler Integer olarak tanımlanabilir. i Boolean tipi değişkenler daha çok True veya False değerlerini alabilen iki durumlu değişkenlerdir. İşlem sonucunda doğru veya yanlış gibi değer elde edilmesi beklenilen veriler için bu değişken tipi kullanılmalıdır. Bellekte 2 byte yer işgal ederler. Atatürk Üniversitesi Açıköğretim Fakültesi 11

90 Giriş Çıkış İşlem leri ve Bilgi Türleri Boolean tipte bir değişken aşağıdaki şekilde tanımlanabilir. Dim Karar As Boolean Boolean tipi değişkenlerde True yerine 1, False yerine 0 değeri aktarılır. Boolean tipi verilerin kullanılmasıyla ilgili bir örnek aşağıda gösterilmektedir. r Dim Karar As Boolean Dim Sonuc As Integer Karar = True Sonuc = Convert.ToInt16(Karar) MsgBox(Sonuc) \ V / Örnekte boolean tipindeki Karar değişkenine True değeri atandığı için Integer tipindeki Sonuc değişkeninde 1 değeri döndürülmüştür. Integer Değişkenler Integer değişkenler içerisinde ondalık nokta içermeyen, yani kesir kısmı bulunmayan veriler için tanımlanır. Integer değişkenlere ile arasında sayısal değer aktarılabilir. Bellekte 4 byte yer işgal ederler. Integer tipte bir değişken tanımı ve değişkene ilk değerin atanması aşağıda gösterilmektedir. Dim sayı1 As Integer Sayı1= Short Değişkenler Short değişkenler de Integer değişkenler gibi içerisinde ondalık nokta içermeyen, yani kesir kısmı bulunmayan veriler için tanımlanır. Ancak short değişkelere ile arasında sayısal değer aktarılabilir. Bellekte 2 byte yer işgal ederler. Short tipte bir değişken tanımı ve değişkene ilk değerin atanması aşağıda gösterilmektedir. Byte Değişkenler Byte değişkenler de kesir kısmı bulunmayan tam sayı veriler için tanımlanır. Byte değişkeler 0 ile 255 arasında sayısal değerler aktarılabilir. Bellekte 1 byte yer işgal ederler. Byte tipte bir değişken tanımı ve değişkene ilk değerin atanması aşağıda gösterilmektedir. Dim Sayı3 As Byte Sayı3=255 Tanımlanmamış veriler Object tipi kabul edilirler. Long Değişkenler Long değişkenler içerisinde ondalık nokta içermeyen, en uzun sayısal verilerin aktarıldığı değişkenlerdir. Long değişkelere ile arasında sayısal değer aktarılabilir. Atatürk Üniversitesi Açıköğretim Fakültesi 12

91 Giriş Çıkış İşlem leri ve Bilgi Türleri Bellekte 8 byte yer işgal ederler. Long tipte bir değişken tanımı ve değişkene ilk değerin atanması aşağıda gösterilmektedir. Dim Sayı4 As Long Sayı4= Single Değişkenler Single değişkenler içerisinde ondalık nokta içeren, yani kesir kısmı bulunan veriler için tanımlanır. Single değişkenler en fazla yedi basamaktan oluşur. Bellekte 4 byte yer işgal ederler. Single tipte bir değişken tanımı ve değişkene ilk değerin atanması aşağıda gösterilmektedir. Dim Numaratör1 As Single Numaratör1= Double Değişkenler Double değişkenler içerisinde ondalık nokta içeren, yani kesir kısmı bulunan veriler için olup Single değişkenlere göre daha fazla hassasiyeti olan değişkenlerdir. Onbeş basamağa kadar olan sayıları taşıyabilirler. Bellekte 8 byte yer işgal ederler. Double tipte bir değişken tanımı ve değişkene ilk değerin atanması aşağıda gösterilmektedir. f Dim Numaratör2 As Double Numaratör2= > A Decimal Değişkenler Büyük değerleri veya hassasiyeti fazla olan verileri taşımak için kullanılan değişkenlerdir. 29 basamaklı bir sayıyı bütün dijitleri koruyarak tutabilirler. Bellekte 16 byte yer işgal ederler. Decimal tipte bir değişken tanımı ve değişkene ilk değerin atanması aşağıda gösterilmektedir. V Dim stok1 As Decimal Numaratör2= > J o DateTime değişkeni tarih ve zaman bilgilerini taşır. Object Değişkenler Bütün veriler için kullanılabilen veri tipidir. Object tipi tanımlamalarda veriler herhangi bir tip gibi işleme girebilir. Tipi belirtilmeyen değişkenler Object tipi kabul edilirler. Bellekte sayısal veriler için 16 byte, karakter veriler için karakter başına 1 byte yer işgal ederler. Atatürk Üniversitesi Açıköğretim Fakültesi 13

92 Giriş Çıkış İşlem leri ve Bilgi Türleri Object tipte bir değişken tanımı ve değişkene ilk değerin atanması aşağıda gösterilmektedir. r \ Dim XYZ As Object XYZ= XYZ="Meslek Yüksekokulu" J Örneklerde de görüldüğü gibi XYZ isimli Object tipi bir değişkene hem sayısal bir veri hem de karakter bir veri aktarılabilmektedir. DateTime Değişkenler Tarih ve zaman bilgilerini bir değişkene aktarabilmek için DateTime tipinde bir değişken tanımlanmalıdır. DateTime tipindeki değişkenlere ile arasında değişen tarih ve 0:00:00 ile 23:59:59 arasında değişen zaman atamaları yapılabilir. Bellekte 8 byte yer işgal ederler. DateTime tipte bir değişken tanımı ve değişkene ilk değerin atanması aşağıda gösterilmektedir. Dim Tarih1, Zaman1 As DateTime Tarih1=(" ") Zaman1=("08:30:45") A J Atatürk Üniversitesi Açıköğretim Fakültesi 14

93 Giriş Çıkış İşlem leri ve Bilgi Türleri O O) M Bilgisayarlar veri ve bilgiler üzerinde işlem yaparlar. Bu nedenle öncelikle bu veri ve bilgilerin bilgisayara girilmesi gerekmektedir. Veri ve bilgilerin bilgisayara girişlerinin yapılabilmesi hem donanım biriminin giriş ünitelerinin kullanılmasını hem de gerekli yazılımın var olmasını gerektirmektedir. Dersimizde esas aldığımız Visual Basic.NET programlama dili ndeki kullanıma göre veri girişleri INPUTBOX, veri çıkışları ise MSGBOX deyimleri kullanılarak gerçekleştirilmektedir. Ayrıca işlemlerde kullanılan veri ve bilgilerin özellikleri dikkate alınarak veri ve bilgilerinin tiplerinin doğru belirlenmesi de programlamanın etkinliği açısından büyük öneme sahiptir. Veri ve bilgiler sabit veya değişken olarak ayrıldıktan sonra sayısal ve karakter olma özelliklerine göre de farklı tiplerde bulunabilirler. Atatürk Üniversitesi Açıköğretim Fakültesi 15

94 Giriş Çıkış İşlem leri ve Bilgi Türleri M DEĞERLENDİRME SORULARI Değerlendirme sorularını sistemde ilgili ünite başlığı altında yer alan "bölüm sonu testi" bölümünde etkileşimli olarak cevaplayabilirsiniz. \ - 1. Aşağıdaki veri giriş işlemlerinden doğru yazılmış olanı hangi seçenekte verilmektedir? a) İNPUT "Lütfen adınızı girin", ad, soyad b) Input "üç sayı giriniz, a,b,c" c) MSGBOX "Sayı giriniz..";say d) ınput "mesaj giriniz..",msg e) INPUT "Sayı giriniz.."; X 2. Aşağıdaki seçeneklerden hangisinde veri giriş işlemi doğru yazılmıştır? f) Sicaklik=INPUTBOX ("Hava sıcaklığını giriniz") g) Sicaklik= MSGBOX(Sıcaklık,20) h) Uzunuluk=25 Metre i) PRINT "Uzunluk Giriniz.,..";20 j) INPUT "Girişler INPUTBOX ile yap ılacaktır.."; INPUTBOX 3. Değişkenlere yapılan değer atanması işleminde hatalı atama hangi seçenekte gösterilmektedir? a) X=45 b) Dim Şehir As String="İstanbul" c) InputBox 45 d) X$="45" e) XY=45 4. Ad(Sayac)=InputBox ( "Öğrencinin adını giriniz.. ") kodlamasıyla ilgili seçeneklerde belirtilen ifadelerden hangisi doğrudur? a) Sayac değişkenine "öğrenci adı" atanmaktadır b) Ad değişkeni yazdırılmaktadır c) Sayac değişkeni Ad değişkeni kadar elemana sahiptir d) Ad değişkeni Sayac değeri kadar elemana sahiptir e) Sayac değişkeni yazdırılmaktadır 5. Aşağıdaki seçeneklerde verilen değişken isimlendirmelerinden hangisi hatalıdır? a) XYZW b) 1Dosya c) abc d) hedef e) HEDEF Atatürk Üniversitesi Açıköğretim Fakültesi 16

95 Giriş Çıkış İşlem leri ve Bilgi Türleri 6. Aşağıdaki seçeneklerde verilen değişken isimlendirmelerinden hangisi doğrudur? a) VE b) PRINT c) ANA DOSYA d) AND e) END 7. Aşağıdaki ifadelerden hangisi doğrudur? a) Sabitler tek başlarına anlam taşımazlar. b) Değişkenler programlamada farklı değerler alamaz. c) Karakter değişkenler üzerinde matematiksel işlem yapılabilir. d) Sabitler sadece sayısal bilgilerdir. e) Veriler işlenmemiş bilgileridir. 8. Boolean veri tipiyle ilgili doğru ifade aşağıdaki seçeneklerden hangisinde verilmektedir? a) Hafızada 8 Byte yer işgal eder. b) True veya False değerlerini alabilen iki durumlu değişkendir. c) Sayısal olmayan işlemler için kullanılır. d) ile arasında değer alabilir. e) 1 byte'lık işaretsiz tamsayı tipidir. 9. Decimal veri tipiyle ilgili doğru ifade aşağıdaki seçeneklerden hangisinde verilmektedir? a) 0 ile 255 arasında değer alabilir. b) 1 byte'lık işaretsiz tamsayı tipidir. c) 29 basamaklı bir sayıyı bütün dijitleri koruyarak tutabilir. d) Hafızada 2 Byte yer işgal eder. e) ile tarihleri arasında değer taşır. Cevap Anahtarı 1.E, 2.A, 3.C, 4.D, 5.B, 6.A, 7.E, 8,B, 9.C Atatürk Üniversitesi Açıköğretim Fakültesi 17

96 Giriş Çıkış İşlem leri ve Bilgi Türleri YARARLANILAN VE BAŞVURULABİLECEK DİĞER KAYNAKLAR Ayık Y.Ziya. (2009). Algoritma ve Programlama Metodolojisi, MuratHan, Trabzon Kaçtıoğlu Sibkat. (2005). Baisc Programlama Dili, EKEV yayınevi, Erzurum Yanık Memik. (2009). Visual Studio 2008 ile Microsoft Visual Basic 9.0, Seçkin Yayıncılık, Ankara Atatürk Üniversitesi Açıköğretim Fakültesi 18

97 KARAR YAPILARI AfA-A&f iç in d e k il e r Giriş Kontrol Deyimleri IF Deyimi Basit IF Çok şartlı IF Ilf ve Choose Fonksiyonları İç İçe IF Deyimi Select Case Yapısı PROGRAMLAMA TEMELLERİ Yrd. Doç. Dr. Y. Ziya AYIK Bu üniteyi çalıştıktan sonra; Kontrol deyim lerini öğrenebilecek, IF deyim grubunun farklı kullanımlarını görebilecek, IIF ve Choose fonksiyonlarını kavrayabilecek, Select Case deyim grubundaki farklı uygulam aları kullanabileceksiniz.

98 Karar Yapıları GİRİŞ Herhangi bir olayın gerçekleşmesinin bir veya birkaç şarta bağı olduğu durumlar vardır. Ayrıca bir şartın gerçekleşmesi durumunda meydana gelecek bir veya birden çok olay söz konusu olabilir. Bu gibi durumlarda program kodlarıyla çözümün sağlanması kontrol deyimleri adını verdiğimiz komutlar kullanılarak gerçekleştirilir. KONTROL DEYİMLERİ / \ Günlük hayatta birçok durumda karar vermek zorunda kalırız. "Eğer hava güneşliyse pikniğe gidelim" veya "yüzme bilmiyorsan denizde çok açılmamalısın" gibi şarta bağlı kararlar verirken şartın gerçekleşmesi durumdaki eylemimiz şartın gerçekleşmemesi durumundaki eylemimizden farklı olacaktır. Günlük hayatımızda zaman zaman önemli kararlar alırız! J Programlamada, günlük hayattaki bu tür kararlarımızın veya daha teknik konulardaki kararların değerlendirilmesi için kullandığımız kontrol deyimleri programlama dillerine göre bazı kullanım farklılıkları taşısalar da genelde aşağıda detaylı olarak açıklayacağımız deyimlerdir. Deyimler, veri ve bilgiler üzerinde matematiksel ve mantıksal işlemlerin uygulanmasını sağlamanın yanı sıra, programlamanın mantığının oluşmasında ve akış sırasının belirlenmesinde de önemli rol oynarlar. Geliştirilen her programın mantığı normalde yukarıdan aşağıya doğrudur. Yani programın birinci satırından başlanarak, her satır sırayla işlendikten sonra son satıra ulaşılır ve program son satıra gelindiğinde durur. Ancak problemin çözümü için geliştirilen algoritmalar genelde bu sıralı akış mantığının değiştirilmesini gerektirebilir. Programın herhangi bir satırından çok daha aşağılardaki bir satıra veya daha yukarıdaki bir satıra geçiş yapılarak program akışının oradan devam etmesi istenebilir. Veya herhangi bir işlem grubunun tekrar tekrar çalıştırılması gerekebilir. Bütün bu durumların gerçekleştirilmesinde birçok programlama dilinde artık standart hale gelmiş kontrol deyimleri kullanılmaktadır. Bu kontrol deyimlerinden en temel olanları, gelişim süreci de dikkate alınarak aşağıda anlatılmaktadır. IF Deyimi Program akışının şarta bağlı olarak değiştirilmesini veya bir işlem grubunun şarta bağlı olarak çalıştırılmasını sağlayan, hemen hemen bütün programlama dillerinde bulunan çok kullanışlı bir deyim grubudur. IF yapısı şarta bağlı olarak bazı durumların gerçekleşmesini, bazı durumların da gerçekleşmemesini sağlar. IF deyimi programda verilen koşula bağlı olarak akışının mevcut kod bloğuna geçmesini veya söz konusu bloğun işletilmeyip atlatılmasını sağlar. IF yapısı, şartın ve şarta bağlı gerçekleşecek olayların tek veya çok olmasına göre farklı yapılarda kullanılır. Atatürk Üniversitesi Açıköğretim Fakültesi 2

99 Karar Yapıları Basit IF Tek şartın olduğu durumlarda IF yapısı tek satırda kullanılabilir. IF deyimi ile birlikte THEN deyimi de kullanılmalıdır. IF deyiminde parametre olarak verilen "şart" mantıksal doğru (True) ise belirtilen işlem gerçekleşecektir. Deyim Kullanımı : IF : IF şart THEN çalıştırılacak işlemgrubu! Örnek: Dim x As Integer x = InputBox("Hava sıcaklığını giriniz") If x < 0 Then Label1.Text = "Bu gün hava çok soğuk" IF istersen THEN başarabilirsin ELSE başaramazsın END IF Örnekte görüldüğü gibi girilen değer 0'dan küçük ise Label nesnesinde "Bu gün hava çok soğuk" mesajı görüntülenecektir. Ancak girilen değerin 0 veya pozitif bir değer olması durumunda programın nasıl davranacağı belirtilmemiştir. Tek şartın olduğu durumlarda IF yapısının çok satırda kullanımı şu şekilde olur. Çok satırlı kullanımda blok sonunda END IF kullanılmalıdır. Deyim Kullanımı : IF : IF şart THEN çalıştırılacak işlemgrubu1 END IF IF deyiminde parametre olarak veri len "şart" mantıksal doğru (True) ise IF ile END IF arasında yer alan satırlar işletilir. "Şart" mantıksal yanlış (False) ise IF ile END IF arasında yer alan satırlar atlatılıp programın akışı END IF deyiminden sonra gelen ilk satıra geçer. Örnek: Dim x As Integer x = InputBox("Hava sıcaklığını giriniz ") If x < 0 Then Label1.Text = "Bu gün hava çok soğuk" End If Örnekte görüldüğü gibi girilen değer 0'dan küçük ise Label nesnesinde "Bu gün hava çok soğuk" mesajı görüntülenecektir. Ancak girilen değerin 0 veya pozitif bir değer olması durumunda programın nasıl davranacağı belirtilmemiştir. Tek şartın olduğu ancak şartın gerçekleşmemesi durumunda ne yapılacağının belirtildiği IF yapısı ise şu şekilde kullanılır. Bu kullanım şeklinde Else deyim IF deyimi ile birlikte kullanılmalıdır. Deyim Kullanımı : IF : IF şart THEN çalıştırılacak işlemgrubul ELSE çalıştırılacak işlemgrubu2 Atatürk Üniversitesi Açıköğretim Fakültesi 3

100 Karar Yapıları Örnek: Dim x As Integer x = InputBox("Hava sıcaklığını giriniz ") If x < 0 Then Label2.Text = "Bu gün hava çok soğuk" Else _ Label2.Text = "Bu gün hava çok soğuk değil" Girilen değerin 0'dan küçük olması durumunda Label nesnesinde "Bu gün hava çok soğuk" mesajı, 0 veya pozitif olması durumunda ise "Bu gün hava çok soğuk değil" mesajı görüntülenecektir. Ancak bu kullanımda dikkat edilmesi Tek şartın olduğu IF deyimlerinde birden çok işlemin aynı anda gerçekleştirilmesi mümkündür. gereken durum bütün bu IF komutunun tek satıra yazılmasıdır. IF komutunun bir satıra sığmaması durumunda, birden çok satıra yazılması istenildiği durumlarda (_) kullanılarak bu durum sağlanmalıdır. Tek şartın olduğu ancak şartın gerçekleşmemesi durumlarda ne yapılacağının belirtildiği birden çok satıra yazılabilen IF yapısı ise şu şekilde kullanılır. IF yapısının bu kullanımında Else deyimi ve END IF deyimi IF deyimi ile birlikte kullanılmalıdır. Deyim Kullanımı : IF : IF şart THEN çalıştırılacak işlemgrubu1 ELSE çalıştırılacak işlemgrubu2 END IF Örnek: Dim x As Integer x = InputBox("Hava sıcaklığını giriniz ") If x < 0 Then Label3.Text = "Bu gün hava çok soğuk" Else Label3.Text = "Bu gün hava çok soğuk değil" End If Bu örnekte de girilen değerin 0'dan küçük olması durumunda Label nesnesinde "Bu gün hava çok soğuk" mesajı, 0 veya pozitif olması durumunda ise "Bu gün hava çok soğuk değil" mesajı görüntülenecektir. Ancak bu kullanımda birden çok satır kullanımı söz konusu olmaktadır. Tek şartın olduğu şartın gerçekleşmesi durumunda birden çok işlemin gerçekleştirildiği, şartın gerçekleşmemesi durumlarda ise ne yapılacağının belirtildiği birden çok satıra yazılabilen IF yapısı ise şu şekilde kullanılır. IF yapısının bu kullanımında Else deyimi ve END IF deyimi IF deyimi ile birlikte kullanılmalıdır. Çok şartın olduğu IF deyimlerinde çok şartın gerçekleştirilmesi ELSEIF deyimleriyle sağlanır. Atatürk Üniversitesi Açıköğretim Fakültesi 4 J

101 Karar Yapıları Deyim Kullanımı : IF : IF şart THEN çalıştırılacak işlemgrubu1 çalıştırılacak işlemgrubu2 çalıştırılacak işlemgrubu3 ELSE END IF çalıştırılacak işlemgrubu4 Örnek: Dim x As Integer x = InputBox("Hava sıcaklığını giriniz ") If x < 0 Then Label3.Text = "Bu gün hava çok soğuk" Label4.Text = "Dışarı çıkmayalım" Label5.Text = "Ders çalışalım" Else Label3.Text = "Bu gün hava çok soğuk değil" End If Çok şartlı IF JÜT Çok şartlı IF deyiminde ELSEIF deyimleri tamamlandıktan sonra gerekirse ELSE deyimi kullanılır. S ^ Bu yapıda, birinci karşılaştırmada şart doğru (true) ise IF ile birinci ELSEIF arasındaki işlemgrubul çalıştırılır ve program akışı IF bloğunun sonunu belirleyen END IF deyiminin bulunduğu satırdan sonraki satıra geçer. Birinci karşılaştırma yanlış (false), ikinci karşılaştırma doğru(true) ise işlemgrubu2 çalıştırılır ve program akışı yine END IF deyiminin bulunduğu satırdan sonraki satıra geçer. Aynı mantık ELSEIF deyimlerinin bulunduğu bütün bloklar için yürütülür. ELSEIF bloklarından hiç biri doğru(true) sonuç üretmezse akış ELSE deyiminin bulunduğu bloğa geçer ve işlemgrubu4 çalıştırılır, daha sonra da END IF deyiminden sonraki satırdan devam edilir. Atatürk Üniversitesi Açıköğretim Fakültesi 5

102 Karar Yapıları Örnek: Dim x As Integer x = InputBox("Lütfen aldığınız notu giriniz") If x >= 0 And x <= 20 Then Label1.Text = "Çok kötü" ElseIf (x > 20 And x < 50) Then Label1.Text = "Kaldınız" ElseIf (x >= 50 And x < 80) Then Label1.Text = "Geçtiniz" ElseIf (x >= 80 And x <= 100) Then Label1.Text = "Pekiyi ile geçtiniz" Else Bu if-elseif-else-end if yapısında x değişkeninin aldığı değere göre Label nesnesine değer aktarılmaktadır. X değişkeninin aldığı değer 0 ile 20 arasında ise label nesnesine "Çok kötü", 21 ile 49 arasında ise "Kaldınız", 50 ile 79 arasında ise "Geçtiniz" ve 80 ile 100 arasında ise "Pekiyi ile geçtiniz" değerleri aktarılmaktadır. X değişkeninin yukarıda belirtilenler dışında yani 0'dan küçük veya 100'den büyük herhangi bir değer alması durumunda ise Label nesnesine "Yanış girdiniz" ifadesi aktarılacaktır. Hatalı Kullanımlar END IF deyiminin kullanılmaması Şartın kullanılmaması Atatürk Üniversitesi Açıköğretim Fakültesi 6

103 Karar Yapıları ELSEIF den önce ELSE deyiminin kullanılması IIF fonksiyonunda sadece iki durum söz konusu olabilir. J IF şart THEN ELSE ELSEIF ELSEIF END IF çalıştırılacak işlemgrubu1 çalıştırılacak işlemgrubu2 çalıştırılacak işlemgrubu3 çalıştırılacak işlemgrubu4 IIf() Fonksiyonu IIf fonksiyonu üç parametreden oluşan, birinci parametrede şartın ya da mantıksal bir ifadenin bulunduğu, ikinci ve üçüncü parametrelerde ise oluşacak durumların belirtildiği bir yapıya sahiptir. Şart ya da mantıksal ifade doğru(true) ise IIf() fonksiyonu ikinci parametrede belirtilen değeri işleyecek, yanlış (False) ise üçüncü parametrede belirtilen değeri geri döndürecektir. Yalnızca iki durum söz konusu olabilmektedir. Diğer durumlarda IIf fonksiyonunun kullanılması mümkün değildir. Deyim Kullanımı : IIF : IIF( Şart/İfade, Birinci durum, İkinci durum) Örnek: Dim x As Integer Dim sonuc As String x = InputBox("Hava sıcaklığını giriniz") sonuc = IIf(x < 0, "Hava çok soğuk", "Hava çok soğuk değil") MsgBox(sonuc) Bu IIF fonksiyonunun kullanımında x değeri 0'ın altında olursa sonuç değişkenine "Hava çok soğuk" bilgisi, x değişkenine 0 veya pozitif bir sayı atanırsa "Hava çok soğuk değil" bilgisi atanacaktır. Yukarıda belirtildiği gibi IIF fonksiyonu ile yapılan karşılaştırmalarda yalnızca iki durum söz konusu olabilmektedir. İkiden fazla ihtimalin bulunduğu durumlarda Choose fonksiyonu kullanılmalıdır. Choose() Fonksiyonu Bu fonksiyon ile birinci parametrede bir tamsayı değişken kullanılmakta ve bu değişkenin alabileceği değer dikkate alınarak fonksiyonda belirtilen farklı durumlardan herhangi bir tanesi işletilmektedir. Değer 1'den başlayarak tamsayı değerleri alabilmekte, bunu dışındaki değerleri dikkate almamaktadır. Değişkenin aldığı değer 1 ise l.değer, 2 ise 2. değer vb. döndürülmektedir. Atatürk Üniversitesi Açıköğretim Fakültesi 7

104 Karar Yapıları Deyim Kullanımı : Choose : Choose(Değişken, Birinci durum, İkinci durum, Üçüncü durum,...) Örnek: Dim ay As Integer Dim sonuc As String ay = InputBox("Yılın ay sırasını girin") sonuc = Choose(ay, "Ocak", "Şubat", "Mart", "Nisan", "Mayıs", _ "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık") MsgBox("Yılın " & ay & ". ayı " & sonuc) Bu Choose fonksiyonu ile ay değişkenine 1 ile 12 arasında tamsayı değerler girilmelidir. Aksi halde Choose fonksiyonu çalışmayacaktır. Ay değişkeni aldığı değere göre fonksiyonda kullanılan farklı durumlardan girilen ay değerinin sırasını dikkate alarak ilgili değeri döndürecektir. Örneğin ay değişkenine 4 girildiğinde sonuç değişkenine "Nisan" değeri aktarılmış olacaktır. İç İçe IF Deyimi Kararların hiyerarşik bir yapı oluşturduğu durumlarda tek bir IF- ElseIF-End IF yapısı yeterli olamayabilir. Bu gibi durumlarda birden çok IF- ElseIF-End IF yapısı kullanılmalıdır. IF-ElseIF-End IF yapısının sayısının üst sınırı yoktur. İstenildiği kadar kullanılabilir. Ancak bu yapının iç içe çok fazla sayıda kullanılmasının kod yazımını ve kodun anlaşılabilirliğini zorlaştıracağı unutulmamalıdır. IF-ElseIF-End IF yapısı birden çok İç içe IF deyiminde ilk açılan IF deyimi en son kapatılır. J kullanıldığında iç içe IF yapısı adını alır. Dolayısıyla bir IF-ElseIF-End IF ile birlikte ikinci bir IF-ElseIF-End IF yapısı kullanılacaksa ikinci yapı birini yapının içine yerleştirilmelidir. Yani ikinci yapı birinci IF değiminden sonra başlatılmalı ve End IF değiminden önce sonlandırılmalıdır. Aynı kural ikinci IF-ElseIF-End IF yapısından sonra oluşturulabilecek üçüncü ve dördüncü yapılar için de geçerlidir. Atatürk Üniversitesi Açıköğretim Fakültesi 8

105 Karar Yapıları Deyim Kullanımı : IF : IF şart THEN çalıştırılacak işlemgrubu1 IF şart THEN çalıştırılacak işlemgrubu1.1 ELSE çalıştırılacak işlemgrubu1.2 END IF ELSE çalıştırılacak işlemgrubu2 END IF veya Kullanımı : IF şart THEN çalıştırılacak işlemgrubu1 ELSE çalıştırılacak işlemgrubu2 IF şart THEN çalıştırılacak işlemgrubu2.1 ELSE çalıştırılacak işlemgrubu2.2 END IF END IF Örnek: Dim cinsiyet As String Dim askdrm As String cinsiyet = InputBox("Lütfen cinsiyet giriniz...erkek için (E veya e), kız için(k veya k) giriniz") If cinsiyet = "E" Or cinsiyet = "e" Then askdrm = InputBox("Askerlik durumunu giriniz... Askerliğini _ yapanlar için (Y veya y) giriniz") İç içe IF deyim grubunun kullanımında kontrol birinci IF deyiminden başlayarak sona doğru sırayla gerçekleştirilir. } If askdrm = "Y" Or askdrm = "y" Then MsgBox("Askerliğini yapmış") Else MsgBox("Askerliğini yapmamış") End If ElseIf cinsiyet = "K" Or cinsiyet = "k" Then MsgBox("Askerlikle yükümlü değil") Else MsgBox("Yanlış giriş yaptınız") End If Atatürk Üniversitesi Açıköğretim Fakültesi 9

106 Karar Yapıları Yukarıda verilen içi içe IF örneğinde önce cinsiyet sorgulanmaktadır. Cinsiyet için girilen değerin "E" veya "e" olması durumunda ikinci bir sorgulamaya ihtiyaç duyulmakta ve bu sorgulamayla da askerlik durumu öğrenilmektedir. Askerlik durumu için girilen değerin "Y" veya "y" olması durumunda "Askerliğini yapmış", aksi durumda "Askerliğini yapmamış" değeri aktarılmaktadır. Cinsiyetin "K" veya "k" olması durumunda ikinci sorgulamaya gerek duyulmamakta ve "Askerlikle yükümlü değil" değeri aktarıldıktan sonra program akışı End IF değiminden sonraki satıra geçmektedir. Cinsiyet değişkenine girilen değer yukarıda belirtilenler haricine bir değer olduğunda "Yanlış giriş yaptınız" değeri aktarılmakta ve akış yine End IF değiminden sonraki satıra geçmektedir. Select Case Yapısı Program akışının şarta bağlı olarak değiştirilmesini veya bir işlem grubunun şarta bağlı olarak çalıştırılmasını sağlayan diğer bir yapı Select Case yapısıdır. IF yapısına benzer ancak bir değişkenin aldığı birçok değere göre farklı komutların çalıştırılmasının gerektiği durumlarda daha avantajlıdır. Uzun ve karmaşık If-ElseIf-End If döngülerinde zaman zaman anlaşılabilirlik azalabilir. Hata kontrolü zorlaşabilir. Bunun yerine Select-Case yapısının kullanılması daha avantajlı olabilmektedir. Select Case deyim grubu, Select Case deyimi ile başlar, End Select deyimi ile sona erer. s J Select-Case yapısı kendisine gönderilen değeri yorumlayarak alt kod yapıları olan Case komutlarını kullanarak alternatif sonuçların elde edilebildiği bir kontrol değim grubudur. Select Case-End Select deyim grubu işlev bakımından If-ElseIf-End If deyim grubuna benzemektedir. Özellikle çok sayıda If-ElseIf-End If yapısının kullanıldığı durumlarda bunun yerine Select Case yapısı tercih edilmelidir. Programlamada zaman zaman hem If-ElseIf-End If yapısının hem de Select Case yapısının birlikte kullanılmasının gerekli olduğu durumlar olabilir. Bu gibi durumlarda bir Select Case yapısı içerisinde diğer bir Select Case yapısı veya bir If-ElseIf-End If yapısı kullanılabilir. Select Case yapısı, Select Case deyimi ile başlar, End Select deyimi ile sona erer. Select Case deyiminden sonra yapılacak karşılaştırmalarda kullanılacak bir kontrol değişkeni kullanılmaktadır. Daha sonra Case deyimi ile birlikte şartlar veya ifadeler belirtilmektedir. Select Case deyiminden sonra verilen kontrol deyimi Case deyimleri ile birlikte verilen şartlardan hangisi ile uyumlu olursa o Case yapısı içerisinde bulunan işlem grubu çalıştırılacaktır. Daha sonra değişken ile uyum göstermeyen Case yapıları atlanarak program akışı End Select deyiminden sonraki satıra geçecektir. Case yapılarında verilen şartlardan hiçbiri değişken ile uyumlu olmaz ise Case Else deyimine geçilir. Case Else deyimindeki işlem grubu çalıştırıldıktan sonra program akışı yine End Select deyiminin bulunduğu satırdan sonraki satıra geçer. Atatürk Üniversitesi Açıköğretim Fakültesi 10

107 Karar Yapıları Deyim Kullanımı : SELECT CASE : Select Case değişken Case şart1 çalıştırılacak işlemgrubu1 Case şart2 çalıştırılacak işlemgrubu2 Case şart3 çalıştırılacak işlemgrubu3 Case Else çalıştırılacak işlemgrubu4 End Select Case Deyim inde Şartların Farklı Kullanımları Her case'de tek şart kullanımı Bu kullanımda Her Case deyimi için bir şart oluşturulur. Select Case deyiminde kullanılan değişken hangi Case şartına uygun olursa o Case deyimindeki işlem grubu çalıştırılır. Deyim Kullanımı : SELECT CASE : Select Case değişken Case şart1 çalıştırılacak işlemgrubu1 Case şart2 çalıştırılacak işlemgrubu2 Case şart3 çalıştırılacak işlemgrubu3 End Select Örnek: Dim sayi As Integer sayi = InputBox("1 ile 3 arası bir sayı giriniz.") Select Case sayi Case 1 MsgBox("Girdiğiniz sayı 1") Case 2 MsgBox("Girdiğiniz sayı 2") Case 3 MsgBox("Girdiğiniz sayı 3") End Select Aynı anda, Case'lerden sadece bir tanesi çalıştırılabilir. J Sayi değişkenine 1 atanırsa Casel'deki "Girdiğiniz sayı 1, 2 atanırsa Case2'deki "Girdiğiniz sayı 2", 3 atanırsa Case3'deki "Girdiğiniz sayı 3" mesajı görüntülenecektir. Atatürk Üniversitesi Açıköğretim Fakültesi 11

108 Karar Yapıları Her Case'de Birden Çok Şart Kullanımı Bu kullanımda Her Case deyimi için birden çok şart oluşturulur. Select Case deyiminde kullanılan değişken, bir Case'de belirtilen şartlardan herhangi biri ile uyumlu olursa o Case deyimindeki işlem grubu çalıştırılır. Deyim Kullanımı : SELECT CASE : Select Case değişken Case şa rtl, şart2, şart3 çalıştırılacak işlemgrubul Case şart4, şart5 çalıştırılacak işlemgrubu2 End Select Örnek: Dim iller As String iller = InputBox("Şehrinizin adını girin.") Select Case iller Case "Erzurum", "Erzincan", "Ağrı" MsgBox("Şehriniz Doğu Anadolu Bölgesindedir.") Case "Sivas", "Ankara" MsgBox("Şehriniz İç Anadolu Bölgesindedir.") End Select Örnekteki "iller" değişkenine "Erzurum", "Erzincan", "Ağrı" verilerinden herhangi biri atandığında Casel ile uyumlu olarak "Şehriniz Doğu Anadolu Bölgesindedir." mesajı görüntülenecektir. Casel de aynı anda üç şart birden karşılanabilmektedir. İlleri değişkenine "Sivas", "Ankara" verilerinden herhangi biri atandığında Case2 ile uyumlu olarak "Şehriniz İç Anadolu Bölgesindedir." mesajı görüntülenecektir. Case2 de aynı anda iki şart birden karşılanabilmektedir. Case'de Belirli Aralıklar İçin Şart Kullanımı Bu kullanımda Case deyimi için şart başlangıç değeri ve şart bitiş değeri belirlenir. Select Case deyiminde kullanılan değişken, Case'lerde belirtilen aralıklardan hangisiyle uyumlu olursa o Case deyimindeki işlem grubu çalıştırılır. Case'lerde belirtilen şartlarda başlangıç ve bitiş değerleri belirtilebilir. - J Atatürk Üniversitesi Açıköğretim Fakültesi 12

109 Karar Yapıları Örnek: Bu örnekte notlar değişkenine atanan değer 0 ile 49 aralığında olursa, birinci sırada verilen Case deyimi çalıştırılacak ve "Geçer not alamadınız" mesajı görüntülenecektir. Notlar değişkenine atanan değer 50 ile 100 aralığında olursa, ikinci sırada verilen Case deyimi çalıştırılacak ve "Geçer not aldınız" mesajı elde edilecektir. Case'de IS kullanımı Bu Case yapısında, "is" operatörü ve karşılaştırma operatörleri birlikte kullanılarak, değişkenin hangi şartlar aralığında olduğu ve hangi Case deyimine uygun olduğu belirlenmektedir. "is" operatörü (>,<,>=,<=,= ) gibi operatörlerden uygun olanı ile değişkenin hangi değere sahip olduğunun belirlenmesini sağlar. Bu sayede ilgili Case deyimindeki işlem grubunun çalıştırılması sağlanmış olur. Case'lerde is operatörü karşılaştırma operatörleriyle birlikte kullanılır. - J Deyim Kullanımı : SELECT CASE : Select Case değişken Case is<=şart1,is=şart2 çalıştırılacak işlemgrubu1 Case is=şart3,is>=şart4 çalıştırılacak işlemgrubu2 Case şart3>şart5 çalıştırılacak işlemgrubu3 End Select Atatürk Üniversitesi Açıköğretim Fakültesi 13

110 Karar Yapıları Örnek: Dim notlar As Double notlar = InputBox("Aldığınız notu girin.") Select Case notlar Case Is < 0, Is > 100 MsgBox("Yanlış girdiniz") Case Is <= 20 MsgBox("Kötü") Case Is < 50 MsgBox("Kaldınız") Case Is >= 50 MsgBox("Geçtiniz") End Select Bu örnekte notlar değişkenine atanan değer 0'dan küçük, 100'den büyük ise "Yanlış girdiniz", 0 ile20 aralığında ise "Kötü", 21 ile 49 aralığında ise "Kaldınız" mesajı görüntülenecektir. Değişken 50 ile 100 aralığında bir değer alırsa geriye "Geçtiniz" değeri döndürülecektir. Atatürk Üniversitesi Açıköğretim Fakültesi 14

111 Karar Yapıları O (D M Karar, programlamanın en önemli özelliklerindendir. Bir programın geliştirilmesi sırasında oluşabilecek farklı durumlara göre farklı kararların verilmesi kaçınılmazdır. Bu kararların oluşturulabilmesi için kontrol deyimleri denilen ve birçok programlama dilinde benzerlik gösteren deyimler kullanılmaktadır. Visual Basic.NET programlama dili esas alınarak kullanılan deyimlerin başında IF-ENDIF deyim grubu ve Select Case- End Select deyim grubu gelmektedir. IF deyim grubu şartın tek veya çok olmasına göre farklı şekillerde kullanılabilmetedir. Selcet Case deyim grubu da Case deyimlerindeki esnek kullanımlar sayesinde yaygın olarak kullanılan önemli bir karar yapısıdır. Atatürk Üniversitesi Açıköğretim Fakültesi 15

112 Karar Yapıları DEĞERLENDİRME SORULARI Değerlendirme sorularını sistemde ilgili ünite başlığı altında yer alan "bölüm sonu testi" bölümünde etkileşimli olarak cevaplayabilirsiniz. 1. Aşağıdaki program kodu çalıştırıldığında görüntülenen mesaj seçeneklerden hangisinde doğru verilmiştir? Dim X,Y,K,L As Integer X = 3 : Y = 5 If X +Y = 15 Then Else K =X +Y L = X -Y MsgBox(K & " " & L) MsgBox(X + 3 & " " & Y) End If a) 6 5 b) 5 6 c) 15 5 d) 5 15 e) Kontrol deyimleriyle ilgili aşağıdaki ifadelerden hangisi yanlıştır? a) Kontrol deyimleri program akışında etkili olur. b) IF deyimi kontrol deyimidir. c) SELECT CASE deyimi kontrol deyimidir. d) Kontrol deyimleri program akışını baş tarafa yönlendirir. e) Kontrol deyimleri programın işlem sırasını değiştirilebilir. 3. Aşağıdaki program kodu çalıştırıldığında görüntülenen mesaj seçeneklerden hangisinde doğru verilmiştir? Dim K As Integer Dim sonuc As String K = InputBox("Ayın gün sayısını giriniz") sonuc = IIf(K >= 30, "Şubat", "Şubat haricinde bir ay") MsgBox(sonuc) a) Ocak b) Şubat c) Şubat ayından sonra gelen aylar d) Nisan e) Şubat haricinde bir ay Atatürk Üniversitesi Açıköğretim Fakültesi 16

113 Karar Yapıları 4. Aşağıdaki program kodu çalıştırıldığında girilen değer 3 ise görüntülenmesi gereken mesaj seçeneklerden hangisinde doğru verilmiştir? Dim gun As Integer Dim sonuc As String gun = InputBox("Haftanın gün sırasını girin") sonuc = Choose(gun, "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi", "Pazar") MsgBox("Haftanın " & gun & ". günü " & sonuc) a) Salı b) Çarşamba c) Perşembe d) Cuma e) Cumartesi 5. Aşağıda verilen içi içe IF deyim grubunun kullanımında "?" bulunan satıra hangi seçenekteki deyim yerleştirilmelidir? IF şart THEN çalıştırılacak işlem grubul IF şart THEN çalıştırılacak işlem grubul.l ELSE çalıştırılacak işlem grubul.2? ELSE çalıştırılacak işlemgrubu2 END IF a) ELSE b) IF c) END d) END IF e) THEN Atatürk Üniversitesi Açıköğretim Fakültesi 17

114 Karar Yapıları 6. Aşağıdaki program kodu çalıştırıldığında görüntülenen mesaj seçeneklerden hangisinde doğru verilmiştir? Dim X, Y, Z As Double X = 5 : Y = 10 Select Case X + Y Case Is < 30 Z = Y - 5 Case 5 To 20 Z = Y / X Case Else Z = X A 2 End Select MsgBox(Z) a) b) c) 5 2 d) e) Aşağıdaki program kodu ile ilgili doğru ifade seçeneklerde hangisinde verilmektedir? Dim Notlar As Double Notlar = InputBox("Aldığınız notu girin.") Select Case Notlar Case 0 To 49 MsgBox("Geçer not alamadınız") Case 50 To 100 End Select MsgBox("Geçer not aldınız.") a) Girilen not 0'dan küçük ise "Geçerli not alamadınız" mesajı görüntülenir. b) Girilen not 0'dan büyük, 100'den küçük ise "Geçerli not alamadınız" mesajı görüntülenir. c) Girilen not 0'dan büyük 50'den küçük ise "Geçerli not alamadınız" mesajı görüntülenir. d) Girilen not 100'den büyük ise "Geçerli not aldınız" mesajı görüntülenir. e) Girilen not 50'den büyük 100'den küçük ise "Geçerli not alamadınız" mesajı görüntülenir. Atatürk Üniversitesi Açıköğretim Fakültesi 18

115 Karar Yapıları 8. Aşağıda verilen kodlamada "?" yerine seçeneklerde belirtilen ifadelerden hangisi gelmelidir? Dim X as Integer X = InputBox("Hava sıcaklığını giriniz") If? Then Label3.Text = "Bu gün hava çok soğuk" Label4.Text = "Dışarı çıkmayalım" Label5.Text = "Ders çalışalım" Else Label3.Text = "Bu gün hava çok soğuk değil" End If a) X<"0" b) ELSE c) X<0 d) Y<0 e) X=X+1 9. Aşağıda verilen Case is şart ifadesi ile ilgili seçeneklerde belirtilen ifadelerden hangisi doğrudur? Case is<=şart1,is=şart2 a) Gerçekleşen durum şartl'den küçük ama şart2'ye eşit değilse işlem gerçekleşmez. b) Gerçekleşen durum şa rtl'de n küçük ise işlem gerçekleşir. c) Gerçekleşen durum şart2'ye eşit ama şartl'den küçük değilse işlem gerçekleşmez. d) Gerçekleşen durum şartl'den ve şart2'den büyük olsa da işlem gerçekleşir. e) Gerçekleşen durum sadece şart2'ye eşit ise işlem gerçekleşmez. 10. Aşağıda verilen IF deyimiyle ilgili seçeneklerde belirtilen ifadelerden hangisi doğrudur? Dim X As Integer X = InputBox("Not girin") If X >= 50 And X <= 100 Then MsgBox("Geçer not aldınız.") a) X değişkeni sayısal olmamalıdır. b) Girilen değer 49 ise "Geçer not alamadınız" mesajı görüntülenir. c) Girilen değer l20 ise "Geçer not aldınız" mesajı görüntülenir. d) Girilen değer 90 ise "Geçer not aldınız" mesajı görüntülenir. e) Girilen değer 101 ise "Yanlış not girdiniz" mesajı görüntülenir. Atatürk Üniversitesi Açıköğretim Fakültesi 19

116 Karar Yapıları Cevap Anahtarı 1.A, 2.D, 3.E, 4.B, 5.D, 6.B, 7.C, 8.C, 9.B, 10.D YARARLANILAN VE BAŞVURULABİLECEK DİĞER KAYNAKLAR Ayık Y.Ziya. (2009). Algoritma ve Programlama Metodolojisi, MuratHan, Trabzon. Halverson Michael.(2002). Adım Adım Visual Basic.NET, Arkadaş Yayınları, Ankara. Atatürk Üniversitesi Açıköğretim Fakültesi 20

117 DÖNGÜLER İÇİNDEKİLER İşlem Sayısı Belli Olan Döngüler For-Next Döngüsü For-Each Döngüsü İşlem Sayısı Belli Olmayan Döngüler Şart Kontrolü Başta Olan Döngüler Do While-Loop Döngüsü Do Until-Loop Döngüsü Şart Kontrolü Sonda Olan Döngüler Do-Loop While Döngüsü Do-Loop Until Döngüsü h PROGRAMLAMA TEMELLERİ Yrd. Doç. Dr. Abdulkadir ÖZDEMİR Bu üniteyi çalıştıktan sonra; Döngülerin kullanım amacı kavrayabilecek, Döngülerin farkları öğrenebilecek, Programlamada döngü kullanım yerleri hakkında bilgi edinebileceksiniz. ÜNİTE 7

118 Döngüler GİRİŞ Aynı işlem defalarca tekrar edilecekse döngüleri kullanmak program satırlarını kısaltır. S ' Bilgisayarın ismi her ne kadar "bilgiyi saymaktan" gelse de aslında bilgisayar, programlar ile gerçek anlamını bulmaktadır. Program, bu bölüme kadar anlatılanlar işlemlerin sıralı olarak ve programcının tasarladığı şekilde yürütülmesini sağlayan komutlardır. Ancak programlama da bazı işlemleri döngüleri kullanmadan yapmaya kalkmış olsak, aynı işlem satırlarını birçok kez tekrarlamak gerekecektir. Oysaki ard arda yapılması gereken işlemleri programlarda yapmanın en kısa yolu döngülerdir. Döngülerin bir başlangıcı ve bir sonu olmak zorundadır. Her döngü bu iki konum arasındaki işlemleri şartlara bağlı olarak tekrar eder. Döngülerde yapılan işlemler şart sağlanmadıkça devam eder. Döngülere başlangıç hariç hiçbir noktadan girilemez ve çıkış noktasına gelinmeden de çıkılamaz. Döngüler tekrar edilmesi gereken işlemlerin belli verileri değiştirerek her defasında yeni verilerle tekrar çalıştırılmasını sağlar. Döngüler programlama dillerine göre farklılık gösterse de genel olarak iki farklı grupta toplanabilir. Çok kullanılan döngü türlerinden birisi döngüye başlarken döngü sayısı belli olanlar iken diğer tür ise döngü sayısı belli olmayan yani döngü içindeki işlemler ile döngü sayısı belirlenebilen döngülerdir. A Döngü bloğuna dışardan girilemez ve blok sonuna gelinmeden çıkılamaz. Döngü sayısı belli olmayan döngülerde de programlama diline bağlı olarak iki farklı özellikte döngü yapısından bahsedebiliriz. Bu döngüleri şart kontrolü başta olan ve şart kontrolü sonda olanalar olarak iki gruba ayırabiliriz. Yukarıda bahsettiğimiz gibi bu döngülerde işlem tekrarını sağlayan şartlar bulunmakta. Bu şartın sağlanıp sağlanmadığının kontrolünü döngüye girilirken yapılması şart kontrolü başta olan döngü olarak isimlendirilirken, şart kontrolünün döngünün sonunda yapılmasına ise şart kontrolü sonda olarak isimlendirilir. İŞLEM SAYISI BELLİ OLAN DÖNGÜLER İşlem sayısı belli olan döngüler birçok programlama dilinde sadece For-Next iken bazı dillerde For-Each döngüsü de kullanılabilmektedir. For-Next Döngüsü Bu döngü nerdeyse tüm programlama dillerinde var olan ve sık kullanılan döngü türüdür. Bu döngülerde bir değişkene bir sayı atanır ve bu sayıdan başlayarak her dönüşte değişken değeri artırılır veya eksiltilerek işlemler yapılır. Belirlenen değişken değeri döngü içinde kullanılabileceği gibi sadece işlem sayısını saydırmak amacı ile de kullanılabilir. For-Next Deyimi Bu deyimde bir başlangıç değeri, değerin artış miktarı ve ulaşılacak bitiş değeri gibi parametreler kullanılmaktadır. Bu parametreler For deyiminde tanımlanır. Next ise döngü bloğunun sonudur ve adım sayısı tamamlanmış ise N extten sonraki komut çalıştırılır. Atatürk Üniversitesi Açıköğretim Fakültesi 2

119 Döngüler For-Next döngülerinde artım değeri verilmezse başlangıç değeri birer birer artırılır. Bu deyime ait algoritma şeması aşağıdaki gibidir. Burada İşlem Bloğu olarak verilen şeklin içerisinde programlamadaki komutların nerdeyse tümü kullanılabilir. Döngüye bir başlangıç değeri ile girilir. İlk işlemler bu değer ile yapılır. İşlemler bittikten sonra For komutuna dönülür ve artım yapılarak işlemlere devam edilir. Her artımda koşul kontrol edilir ve eğer koşul sağlanmıyorsa döngüden çıkılır, yani Next komutundan sonraki komutlardan program akışı devam eder. Şekil-1. For-Next Döngüsü Akış Diyagramı For-Next döngüsüne ait komut kullanımı ise aşağıdaki gibidir. Burada siyah yazı ile yazılı olanlar deyim ifadeleridir ve kullanılacaksa yazıldıkları yerde kullanılmaları sayaç [ As veritipi ] [ işlemler] : başlangıç artım ] [ işlemler ] Next [ sayaç ] For-Next döngülerinde iç içe döngülerin her birine farklı bir değişken tanımlanmalıdır gerekmektedir. Köşeli parantez içleri ise ihtiyaca göre kullanılacak komut veya işlemleri ifade etmektedir. İtalik yazılan ifadeler ise programcının verebileceği değişken veya programlama isimlerini ifade eder. Continue For ifadesi kullanıldığında işlemlere devam edilmez ve döngü başına dönülür. Exit For ifadesi kullanıldığında ise işlemlere Next ile devam edilir. Bu açıklamalara göre deyim şu şekilde çalışır; döngüye başlandığında sayaç içerisine başlangıç değeri atanır, işlemler yapılır, Next ifadesine gelindiğinde sayaç değeri adım değerinde artırılır/eksiltilir (adim değeri verilmemişse birer birer artırılır) ve For satırına işlem yönlendirilir. Burada koşul kontrolü yapılır sayaç değeri başlangıç ve bitiş arasında ise işlemlere devam edilir, koşul sağlamıyorsa Next'ten sonraki program işlemlerine geçilir. Bu deyime ait birkaç örnek aşağıda verilmiştir. (Örnekleri Visual Basic.Net derleyicileri veya adresindeki derleyici ile çalıştırabilirsiniz) Atatürk Üniversitesi Açıköğretim Fakültesi 3

120 Döngüler Örnek-1: 1 den 100 kadar sayıları ekrana yazdırma. Dim sayi Integer For sayi = 1 To 100 Console.WriteLine (değer) Next sayi I Burada 1 den 100'e kadar sayılar ekrana yazdırılmaktadır. Deyimler ise şöyle işlemektedir; sayi değeri 1 yapılmakta Console.WriteLine deyimi icra edilmekte Next deyimi ile sayaç 1 artırılmakta ve tekrar For deyimine dönülmektedir. Sayaç değeri bitiş değeri olan 100 den büyük olana yani 101'e kadar gelmekte bu değerden sonra ise program akışı Next'ten sonraki adımdan devam etmektedir. Örnek-2: 100 den 20 kadar 7 çıkararak sayıları ekrana yazdırma Dim sondeger As Integer = 20 For deger As Integer = 100 To sondeger Step -5 Console.WriteLine (değer) Next deger I Burada işlemler 100 den başlar, 95, 90,..., 25 ve 20 ye kadar yapılır ve sonra döngü bitirilir. QRe;ult Smono demo.exe 1 X 1 = 1 1 X 2 = 2 1 X 3 = 3 1 X 4 = 4 1 X 5 = 5 1X6 = 6 1X7=7 1 X E = E 1X9=5 1 X İÜ = 10 2 X1 = 2 2 X2 = - 2 X 5 = 6 2 X 4 = E 2 X 5 = 10 2 X 6 = 12 2X 7 = 14 2 X = 16 2 X 9 = 1E 2 X 10 = 2 0 Ornek-3: İç içe iki döngü ile 1 den 10'a kadar sayıların çarpım tablosunu yazdırma. İç içe döngü örneği olarak verilen bu örneğin çalışması kısaca şöyledir; carpl For carp1 As Integer = 1 To 10 For carp2 As Integer = 1 To 10 Console.WriteLine (carp1 & " X " & carp 2 & " = " & carp1*carp2) Next carp2 Console.WriteLine () Next carp1 değişkeni 1 değerini aldıktan sonra iç döngüden carp2 1 değerini alır ve ekrana 1 X 1 = 1 yazılır. Sonra carp2 değişkeni 2 değerini alır yani içteki döngü bir kez daha çalışır, bunun çıktısı da yazılır ve bu işlemler carp2'nin değeri 10 olana kadar devam eder. Bundan sonra ise iç döngü sonlandırılır ve döngüden sonraki ekrana boş satır yazdırma komutu çalıştırılır ve dıştaki döngünün değeri bir artırılarak yani carp1=2 yapılarak iç döngüye girilir ve carp2 tekrara 1 den başlayarak 10'a kadar işlenir. Bu programa ait ekran çıktısının bir kısmı yandaki gibidir. 5X1 = 5 5X2=6 5X5=9 5 X ^ = 12 5 X 5 = 15 Şekil-2 Örnek-3 Ekran Çıktısı Atatürk Üniversitesi Açıköğretim Fakültesi 4

121 Döngüler Örnek-4: İki boyutlu 5 X 10 elemanlı bir matrisin tüm elemanlarını -1 değeri ile dolduran program. Dim matris(5, 10) For i = 1 To 5 For j = 1 To 10 matris(i, j) = -1 Next j Next i I İç içe döngüye ait ikinci örnekte ise 5 X 10 boyutlarında bir matrisin tüm elemanları -1 değeri ile doldurulmaktadır. For Each Döngüsü Bu döngüde döngünün yapılacağı tekrar sayısını, döngüde verilen eleman değerleri belirler. Bu döngü sayısal işlemler uygulanmayan alfanümerik değerler için kullanılır. f \ For Each Deyimi Bu deyimde döngü, döngü değişkeni elemanı adedince tekrar edilir. Diğer özellikleri For-Next döngüsü ile aynı olmasına karşın döngü değişkeni elemanının içeriğiyle işlem yapması yönüyle sayısal olmayan dizi elemanları ile de işlem yapmaya imkan verir. Döngü değişkeni elemanlarına önceden değer atanmış olabileceği gibi program akışı içerisinde de değerler atanabilir veya veri tabanından veriler atanabilir. Böylece döngünün adım sayısı program içerisinden de belirlenebilir. Bu deyimin akış şeması For-Next döngüsü ile aynıdır. Deyimin genel yapış da benzer olmakla birlikte aşağıdaki gibidir. >h değişken_elemanıt f l emeritipi ] m verigrubu [ işlemler] [ işlemler ] [ Exit For ] [ işlemler ] st [değişken_elemanı ] Bu deyimde öncekinden farklı olarak değişken_elemanı kullanılmaktadır. Verilerin saklandığı verigrubu bu verilerin saklandığı değişkenin genel adıdır. Örnek-5: Bir dükkanda bulunan evcil hayvanların listesini yazdıran program. Dim evcil() As String = {"Kedi", "Fare", "Tavşan", "Balık"} For Each pet As String In evcil Console.WriteLine(pet) Next Atatürk Üniversitesi Açıköğretim Fakültesi 5

122 Döngüler İŞLEM SAYISI BELLİ OLMAYAN DÖNGÜLER Do-Loop döngülerinde tekrar sayısı koşula bağlı olduğundan tahmin edilmesi zordur. Döngülerde koşulun yanlış belirlenmesi ile Kısır Döngü (Loop) oluş ve program sürekli çalışır. s» Nerdeyse tüm programlama dillerinde kullanılan deyimlerden birisi Do-Loop döngüleridir. Bazı programlama dillerinde Do bloğu olarak adlandırılan bu yapıların özelliği de For-Next döngüsü gibi şarta bağlı olarak bu blokta yer alan tüm komutların işlenmesidir. Do bloğunun devam etmesi için koşul ifadesinin sağlanıyor olması gerekir. For-Next döngüsünde verilen koşula göre döngü sayısı belirlenebilirken, Do döngülerinde koşulun belirlenmesi zordur. Örneğin bir program ile klavyeden veri girişi yaptırılacaksa ne tür bir veri girişi istendiği döngü tipini belirler. Eğer girilecek veriler 12 ayın verisini almak veya 100 tane sayı girmek gibi bir çerçeveye sahipse burada For-Next döngüsü kullanmak oldukça mantıklıdır. Ancak girilecek verilerin sayısı belli değilse bunu For-Next ile yapmak çok zordur, oysaki Do döngüleri ile bu işi yapmak çok kolaydır. Do döngüsünde koşul olarak boş veri girişine kadar verileri al diye bir kural belirlenirse istenildiği kadar veri girilebilir. Boş veri girildiğinde de döngüden çıkılır. Bu döngülerin en iyi yönü bu olmasına rağmen aynı zamanda programların kısır döngü (Loop) dediğimiz takılmalara da neden olabilirler. Örneğin bir Do döngüsünde bir işlem yaparken koşulu bir sayının sıfırdan küçük olarak belirlemişken sayının gittikçe büyümesini sağlayan bir formül belirlemişsek program kısır döngüye girer ve ancak program hata verirse kesilir. Aksi takdirde sürekli çalışır. Bu döngülerde koşulun verilmesi ise programlama dillerine göre bazı farklılıklar göstermektedir. Tüm programlama dillerine göre koşulların anlatılması kafa karışıklığına neden olabileceğinden burada Visual Basic.Net'e göre olanları anlatılmıştır. Do döngülerinde koşulun sınanması While ve Until deyimleri ile sağlanır. Bu iki deyimin iki farklı kullanımı vardır. İlk olarak anlatılacak olan şartın başta kullanılması durumu ve daha sonra anlatılacak olan şartın sonda olması durumu olarak özetleyebiliriz. While ve Until deyimlerinin farkı ise İngilizce anlamlarına göredir. While kelimesinin Türkçe karşılığını "iken" olarak çevrilir, yani bir şart sağlanıyorken döngü yapılacak demektir. Until ise "değin, kadar" olarak çevrilebilir. Bu anlamlarına uygun olarak While deyimi döngüyü koşul sağlanıyorken işleme sokar, Until deyimi ise koşul sağlanana değin yani koşul sağlanmadığı sürece döngü işleme alınır. Şart Kontrolü Başta Olan Döngüler / \ Do While/Until Deyimi Bu deyimde döngü, şart sağlandığı/sağlanmadığı sürece döngü tekrar edilir. Dolayısıyla döngü sayısı şartın sağlanması/sağlanmamasına bağlıdır. Do While-Loop döngüsü Daha öncede bahsedildiği gibi bu döngüde koşul sağlandığı yani koşul TRUE olduğu sürece döngü işlemi devam etmektedir. Koşulun sağlanmaması yani FALSE değeri üretilmesi ile döngüye girilmez ve işlem yapılmaz. Atatürk Üniversitesi Açıköğretim Fakültesi 6

123 Döngüler Do Until-Loop döngüsü Daha öncede bahsedildiği gibi bu döngüde koşul sağlanmadığı yani koşul FALSE olduğu sürece döngü işlemi devam etmektedir. Koşulun sağlanması yani TRUE değeri üretilmesi ile döngüye girilmez ve işlem yapılmaz. Bu deyim lerin akış şeması şöyledir: Do-While döngüsünde koşul sağlanmıyorsa döngü hiç çalıştırılmadan Loop deyiminde sonrasına geçer. Şekil 3. Do-Loop Akış Şeması Bu deyimin öncekinden farklı olan yanı koşulun sayısal değil de herhangi bir koşul olarak verilmesidir. Bu deyimin genel kullanımı ise aşağıdaki gibidir. Burada da For-Next döngüsünde olan koşul ve işlemler bulunmaktadır. While veya Until deyimlerinden birisi kullanım amacına göre seçilmelidir. Execurmg tbe program... Smono demo.exe 1 Karesi 1 2 Karesi 4 3 Karesi 9 4 Karesi 16 5 Karesi 25 S Karesi 36 7 Karesi 49 3 Karesi 64 9 Karesi Sİ 10 Karesi 100 Program Sonu Şekil 4. Ö rnek 6 ya ait ekran çıktısı Örnek-6: 1 den başlayarak kaç sayının karesi 100 den büyüktür şeklinde bir soruyu çözmek istersek şöyle bir algoritma kurabiliriz. Dim sayi, kare As Integer = 1 Do While kare <= 100 Console.WriteLine(sayi & " Karesi " & kare) sayi += 1 kare = sayi*sayi Loop Console.W riteline("program Sonu") Bu programa ait çıktı yan tarafta görülmektedir. Atatürk Üniversitesi Açıköğretim Fakültesi 7

124 Döngüler *E Eğer Console.W riteline deyim i Loop tan önce taşınırsa 55, ekran çıktısı nasıl olur?» B u durum da l l 'i n karesi de hesaplanıyor, nedenini,2 araştırınız. Örnek 7: Aynı örneği Until ile çözmeye çalışırsak program ne tür bir çıktı verir? Eğer Programı aşağıdaki gibi düzenleyecek olursak program döngüye girmeden Executiüg the program. Scıono demo.exe F r o ç r a r. 5 or.j. Şekil 6. Örnek 7 Until çıktısı Dim sayi, kare As Integer = 1 Do Until kare <= 100 Console.WriteLine(sayi & " Karesi " & kare) sayi += 1 kare = sayi*sayi Loop Console.W riteline("program Sonu") koşul sağlandığından herhangi bir işlem yapmadan Program Sonu satırına gelinmektedir. Bu programın çalışması için ise "<=" işareti yerine ">" işareti yazmamız yetecektir. Bu durumda kare değeri 100 den büyük olmadığından döngü Dim sayi, kare As Integer = 1 Do Until kare > 100 Console.WriteLine(sayi & " Karesi " & kare) sayi += 1 kare = sayi*sayi Loop Console.WriteLine("Program Sonu") Şekil 5. Örnek 7 Doğru Çıktısı işlenecektir. ŞART KONTROLÜ SONDA OLAN DÖNGÜLER Loop-While/Until döngüsünde koşul sağlanmıyorsa da döngü bir kez çalıştırılır Do-Loop While/Until Deyimi Bu deyimde döngü, şart sağlandığı/sağlanmadığı sürece döngü tekrar edilir. Ancak burada şart kontrolü sonda yapıldığından döngü en azından 1 kez koşturulur. Do-Loop While Döngüsü Daha öncede bahsedildiği gibi bu döngüde koşul sağlandığı yani koşul TRUE olduğu sürece döngü işlemi devam etmektedir. Koşulun sağlanmaması yani FALSE değeri üretilmesi ile döngüye girilmez ve işlem yapılmaz. Do-Loop Until Döngüsü Daha öncede bahsedildiği gibi bu döngüde koşul sağlanmadığı yani koşul FALSE olduğu sürece döngü işlemi devam etmektedir. Koşulun sağlanması yani TRUE değeri üretilmesi ile döngüye girilmez ve işlem yapılmaz. Atatürk Üniversitesi Açıköğretim Fakültesi 8

125 Döngüler Bu deyimlerin akış şeması şöyledir Şekil 7. Do-Loop Akış Şeması Bu deyimin şartı döngünün çıkışı olan Loop deyiminde kontrol edilmektedir. [ işlemler ] [ Continue Do ] [ işlemler] [ Exit Do ] [ işlemler ] Loop { While Until } Dolayısıyla Loop'a gelene kadar döngüdeki komutlar bir kez çalıştırılmış olacaktır. Yine burada da While veya Until deyimlerinden birisi kullanım amacına göre seçilmelidir. Örnek-8: 1 den başlayarak kaç sayının karesi 100 den büyüktür şeklinde bir soruyu çözmek istersek şöyle bir algoritma kurabiliriz. Dim sayi, kare As Integer = 1 Do Console.WriteLine(sayi & " Karesi " & kare) sayi += 1 kare = sayi*sayi Loop While kare <= 100 Console.W riteline("program Sonu") Bu program çalıştırıldığında Örnek-6 dan farklı olarak 11'in karesini de hesapladığını görebiliriz. 10'un karesini hesapladığında kare'nin değeri 100 olacağından ve bu şartında TRUE değerini döndürdüğü için tekrar Do satırına dönülür ve 11'in kareside hesaplanarak yazdırılır. Ancak bu kez kare'nin değeri 121 olacağından While FALSE değeri döndürecek ve işlemler Loop'tan sonraki satır olan yazdırma komutu ile devam edecektir. Atatürk Üniversitesi Açıköğretim Fakültesi 9

126 Döngüler i - Döngüleri daha önce anlatılan IF deyimi ile nasıl I gerçekleştirilebil in İTj, bu konuyu araştırın. LU 1 Her bir konuya ait en az bir programıda siz tasarlayınız. O (D M Döngüler tekrarlı işlem gerektiren her program parçasının can kurtaran bileşenidir. Döngülerin veri girişinden verilerin dosyalardan okutulmasına yönelik birçok kullanım alanı bulunmaktadır. Farklı döngü çeşitleri ile çok kısa ve hafızada kapladığı boyut olarak çok az yer tutan dolayısıyla hafızaya yüklenmesi ve çalıştırılması kolay program tasarımlarına imkân sağlar. Sayısal değerler kuulanılacaksa ve sayılar sabit değerlerle artcak veya ekilecekse Fo-Next döngülerini kullanmak gerekir. Sayısal işlemler sonucu oluşacak değerleri veya öngörülemeyen sayıda döngüsel işlemi yapacak program parçalarını kullanmak gerekiyorsa Do While/Until - Loop döngülerini kullanmak gerekir. Bazı programlarda döngü içerisindekiişlemlerin en az birkez çalıştırılması gerekebilir, bu gibi durumlarda ise Do- Loop While/Until döngülerini kullanmak gerekir. Bu döngüye örnek olarak şifrenin alınması ve kontrol edilmesi en iyi örneklerden biri olabilir. Döngü içerisinde alınan şifrenin program içerisindeki sabit değerle veya bir değişkenl içerisindeki veriile karşılaştırılacaksa bu döngü tipini kullanmak en doğru tercih olacaktır. Atatürk Üniversitesi Açıköğretim Fakültesi 10

127 Döngüler For-Next döngüsünde başlangıç, bitiş ve adım değerleri yerine değişken kullansak ve döngüye girmeden bunlara değer atasak program çalışır mı deneyiniz. Do-Loop döngülerinde While veya Until koşulu kullanılmazsa progrm akışını nasıl etkiler araştırınız. Atatürk Üniversitesi Açıköğretim Fakültesi 11

128 Döngüler Değerlendirme sorularını sistemde ilgili ünite başlığı altında yer alan "bölüm sonu testi" bölümünde etkileşimli olarak cevaplayabilirsiniz. DEĞERLENDİRME SORULARI 1. Aşağıdakilerden hangisi işlem sayısı belli olan döngüdür? a) Do-Loop b) Do-Loop Until c) For-Next d) Do-Loop W hile e) Do W hile-loop 2. Aşağıdakilerden hangisi işlem sayısı belli olmayan döngüdür? a) Do-Loop b) Do-Loop Until c) Do-Loop W hile d) Do W hile-loop e) For-Each 3. Aşağıdakilerden hangisi Şart Kontrolü Başta olan döngüdür? a) Do-Loop b) Do-Loop Until c) Do-Loop W hile d) Do W hile-loop e) For-Each 4. Aşağıdakilerden hangisi Şart Kontrolü Sonda olan döngüdür? a) Do-Loop b) Do-Loop Until c) Do W hile-loop d) Do W hile-loop e) For-Next 5. Aşağıdaki döngülerden hangisinde şart sağlanmıyorken döngü işlenir, şart sağlandığında döngü 1 defa bile işlenmez? a) Do-Loop Until b) Do-Loop c) Do W hile-loop d) Do W hile-loop e) Do-Loop W hile 6. "For sayi As Integer = 100 To 50 Step 5" döngüsü hata verir. Döngünün hatasını gidermek için aşağıdaki işlemler yapılmak istenirse, aşağıdaki işlemlerden hangisi sorunu giderm ez? a) 100 sayısını 10 yapmak b) 50 sayısını 5 yapmak c) 50 sayısını 500 yapmak d) 5 sayısını "-5 " yapmak e) 100 sayısını " -100" yapmak Atatürk Üniversitesi Açıköğretim Fakültesi 12

129 Döngüler 7. "For sayi As Integer = -10 To -5" döngüsü çalıştığında kaç kez döngü işlemleri gerçekleşir? a) 1 kez b) 5 kez c) 4 kez d) 6 kez e) Hiç Çalışmaz 8. "For değeri For değer2 Next deger3 Next degeri" Burada verilen iç içe döngülerin çalışması için aşağıdakilerden hangisi yapılmalıdır? a) "N ext deger3" yerine "N ext değer2" yazılmalıdır. b) "N ext deger3" satırı silinmelidir. c) "Next degeri" yerine "Next değer2" yazılmalıdır. d) "For değeri" yerine "For değer3" yazılmalıdır. e) "For değer2" satırı silinmelidir. 9. "Dim sayi, kare As Integer = 10 Do While kare <= 9 / Bir programda döngüye yukarıdaki komutlarla giriliyorsa, döngü kaç kez çalışır? a) 9 kez b) 5 kez c) Hiç Çalışmaz d) 4 kez e) 1 kez Do-Loop Until" döngüsü en az kaç kere çalışabilir? a) Hiç Çalışmaz b) 5 kez c) 4 kez d) 6 kez e) 1 kez Cevap Anahtarı 1.C, 2.E, 3.D, 4.B, 5.A, 6.B, 7.D, 8.A, 9.C, 10.E Atatürk Üniversitesi Açıköğretim Fakültesi 13

130 Döngüler YARARLANILAN VE BAŞVURULABİLECEK DİĞER KAYNAKLAR Çölkesen, R. (2011). Programlama Sanatı Algoritmalar, 2. Baskı, İstanbul: Papatya Yayıncılık. Türkeli, Y. (2011). Visual Basic.Net Eğitmenim, 1. Baskı, Ankara: Nirvana Yayınları. Vatansever, F. (2007). Algoritma Geliştirme ve Programlamaya Giriş, 6. Baskı, Ankara: Seçkin Yayınevi. Visual Studio.Net, Yıldırım, E. Y. (2007). Görsel Programlama Visual Basic, 2. Baskı, Ankara: Nobel Yayın Dağıtım. Atatürk Üniversitesi Açıköğretim Fakültesi 14

131 DONGU KONTROLLERİ İÇİNDEKİLER Döngü akışını kontrol eden deyim ler Continue For/Do Komutu Exit For/Do Komutu İç-içe döngüler Döngü Çakışmama Kuralı Döngüden Kuraldışı Çıkış veya Giriş PROGRAMLAMA TEMELLERİ Yrd. Doç. Dr. Abdulkadir ÖZDEMİR Bu üniteyi çalıştıktan sonra; Döngülerin iç içe kullanımı öğrenebilecek, Döngülerin çakışmaları kavrayabilecek, Çoklu döngü kavramı hakkında bilgi edinebileceksiniz. UNİTE 8

132 Döngü Kontrolleri GİRİŞ Kontrol komutları döngü bloğunun her hangi bir anda kesilerek sonlandırılmasını sağlar - -> Önceki ünitede döngülerin özellikleri ve kullanım şekilleri anlatılmıştı. Döngülerin bu kullanımlarının yanı sıra bazı kontrol deyimlerinin de bilinmesi gerekmektedir. Bu ünitede bu döngü kontrolleri ile şekilsel olarak döngü bloklarının yapısı ve kavramı anlatılacaktır. Döngülerde işlem adımları sıra ile yapılsa da bazı durumlarda döngünün tüm adımlarını çalıştırmadan döngüden çıkılması yani döngünün son satırına gelinmesi gerekebilir. Ayrıca her defasında döngüler bir blok olarak değil çoğu zaman da iç içe çok sayıda döngü bloğundan oluşan programlar yazmakta gerekebilir. Bu ünitede çoklu blok yapısındaki iç içe döngülerde kontrol kuralları da anlatılacaktır. DONGU AKIŞINI KONTROL EDEN DEYİMLER Döngülerdeki farklılık, döngü akışını komutlarına göre de değişiklik göstermektedir. Örneğin Visual Basic'te For-Next ve For-Each döngülerinde kontrol amacı ile Continue For ve Exit For komutları kullanılırken, Do döngülerinde bu deyimler Continue Do ve Exit Do şeklinde kullanılabilmektedir. Bunun yanında diğer programlama dillerinde ise Continue ve Break gibi komutlarda kullanılabilmektedir. Bu komutları daha iyi anlamak için şekilsel bir anlatım kullanılacaktır. Bu anlatımda her bir döngü bloğu için aşağıdaki şekil kullanılacaktır yani bu bloktan kaç tane varsa o kadar döngüden bahsediliyordur. < Döngü Başlangıcı (Do veya For) - Döngü içindeki İşlemler 0 O: 3 og C: 1 croc o c -Döngü Sonu (Loop veya Next) Şekil 1. Döngünün Şekil Olarak Gösterimi Continue For/Do Komutu Continue komutu Do ve For döngülerinde kullanılabilmektedir. Her iki döngüde de bu komut döngünün bu aşamadan sonra döngü sonlandırma komutuna gidilmesini ve döngünün baştan ancak yeni değerlerle işlenmesini sağlamaktadır. / \ Continue Deyimi Bu deyim döngünün içinde kullanılır ancak bu deyim doğrudan yazılırsa bu deyimden sonraki deyimler çalıştırılamaz bu nedenle bu deyim koşula bağlanmalıdır. Eğer koşul sağlanıyorsa bu komut çalışmalıdır ki bundan sonraki deyim ler çalıştırılabilsin. Koşul ifadesi olarak If deyimi kullanılmalıdır. Continue deyimiminin kullanılması ile döngünün işlenmesini aşağıdaki şekil ile gösterebiliriz. Burada If deyiminde şartın bu işlemde sağlandığı kabul edilmekte ve işlem buna göre gösterilmektedir. Atatürk Üniversitesi Açıköğretim Fakültesi 2

133 Döngü Kontrolleri Continue deyimi hangi döngüyü bitirecekse onun deyim ile bitirilir. s Bunun gerekli olduğu duruma örnek olarak ise klavyeden girilen iki sayının bölme işlemi sonucunu veren bir algoritmada payda sayısının sıfır olması durumunda programın hata vererek kesileceğini bildiğimizden, bu işlemi yapmayıp yeniden sayı isteme işlemi için Continue Do deyimini kullanabiliriz. Şekil 2. Continue Do İşlemi Continue deyimi döngü başlangıç komutu ile kullanılmaktadır. Bazı programlama dillerinde de Do deyimi While olarak ta kullanılmaktadır. Bu durumda da Continue While formuna dönüşmektedir. Continue deyimi döngüyü sonlandırmaz sadece işlemin sürdüğü süreci sonlandırır daha doğrusu döngü sonuna program akışını atlatır. Ancak bu komutu uygularken aşağıdaki kuralları dikkate almak gerekiyor. Öncelikle iç içe döngüler kullanılmışsa Continue deyimi kullanıldığı yerdeki döngünün sonuna gider. Hangi döngüde işlem atlatılmak isteniyorsa bu deyimin içinde kullanılmalıdır. Eğer içte bir döngü varsa ve Continue bu içteki döngüden önceye konulursa içteki döngü bu işlemde çalıştırılmaz ve atlanmış olunur. Yukardaki şekilde İşlem kl'in yeni bir döngüyü başlattığı düşünülürse koşul2'nin doğru olduğu işlem sürecinde içteki İşlemkl döngüsü çalıştırılmaz. Exit For/Do Komutu Exit komutu da Continue komutu gibi döngü içlerinde kullanılan bir komuttur. Bunun farkı ise döngünün işlemini tamamen kesmesi ve döngü sonrasındaki komutu işleme almasıdır. Bu komut Visual Basic'te kullanılıyorken diğer bazı programlama dillerinde ise Breake komutu kullanılabilmektedir. Ancak VB.Net'te Breake komutu döngüyü kesmek yerine programı tümden kesmektedir. Exit Deyimi Bu deyim döngünün içinde kullanılır ancak bu deyim doğrudan yazılırsa bu deyimden sonraki deyimler çalıştırılamaz bu nedenle bu deyim koşula bağlanmalıdır. Eğer koşul sağlanıyorsa bu komut çalışmalıdır ki bundan sonraki deyim ler çalıştırılabilsin. Koşul ifadesi olarak If deyimi kullanılmalıdır. Atatürk Üniversitesi Açıköğretim Fakültesi 3

134 Döngü Kontrolleri Continue deyimiminin kullanılması ile döngünün işlenmesini aşağıdaki şekil ile gösterebiliriz. Burada If deyiminde şartın bu işlemde sağlandığı kabul edilmekte ve işlem buna göre gösterilmektedir. Şekil 3. Exit Deyimi Örnek-1: Aşağıdaki örnekte 6 satırlı ve 10 sütunlu a(6,10) dizisine değerler hesaplanarak yerleştirilmektedir. Burada dikkat edilecek nokta Continue For komutunun b(i) değerinin sutun değerine eşit olduğunda devreye girdiğidir. Bu komutu kullanmamış olsaydık işlemci a() matrisindeki bu elemana sonsuz değerinin yazmak zorunda kalacaktı bu ise programın kesilmesine yol açmış Dim satir, sutun As Integer Dim sonsatir As Integer = 6 Dim sonsutun As Integer = 10 Dim a(,) As Double = New Double(sonsatir, sonsutun) {} Dim b(7) As Double satir = -1 Do While satir < sonsatir satir += 1 sutun = -1 Do While sutun < sonsutun sutun += 1 a(satir, sutun) = 0 For i As Integer = 0 To b.getupperbound(0) If b(i) = sutun Then Continue For Else a(satir, sutun) += (satir + b(i)) / (sutun - b(i)) End If Next i End While End While Atatürk Üniversitesi Açıköğretim Fakültesi 4

135 Döngü Kontrolleri olacaktı. Oysaki bu program ile bu değer 0 (sıfır) olarak kalacaktır. Örnek-2: Aşağıdaki örnekte iç içe iki döngü kullanılmış. İlki şart kontrolü sonda olan, ikincisi ise şart kontrolü başta olan döngüler kullanılmıştır. If şartı ile Sayac değeri kontrol ediliyor ve Sayac değeri 10'a eşit olunca Check değeri FALSE yapılarak dış döngünün de sonlanması sağlanıyor. İç döngüyü de Exit Do ile sonlandırıyor ve dolayısıyla immediately.endsub satırına program akışı yönlendirilm iş olur. Dim Check As Boolean = True Dim Sayac As Integer = 0 Do ' Dış Döngü. Do While Sayac < 20 ' İç Döngü. Sayac += 1 ' İç Sayaç. If Sayac = 10 Then ' If Şartı TRUE, Check = False ' Şartı FALSE yap. Exit Do ' İç Döngüden Çık. End If Loop Loop Until Check = False ' Dış Döngüden Çık immediately.end Sub i İÇ İÇE DÖNGÜLER Buraya kadar anlatılan döngüler de diğer komutlar gibi program içerisinde istenildiği kadar ve istenildiği yerde kullanılabilir. Ancak döngülerin diğer komutlardan bazı farklı kuraları vardır. Blok yapısında olduğunda If ve Select Case komutu gibidir. Diğer birçok komut bazen bir satırda işlemini bitirirken blok komutlar bloğun tümünü işlemektedir. Bu nedenle de bu komutları blok olarak düşünmek gerekir. Fakat If ve Select Case komutları bloğu bir kez çalıştırırken döngüler adı gibi işlemleri tekrar tekrar işlerler bu nedenle de diğer blok komutlardan farklı bazı kurallara sahiptir. Bu bölümde bu kuralları blok şemalar olarak anlatmaya çalışacağız. Yan tarafta bazı iç içe döngü (Nested Loop) örnek çizimi verilmiştir. Burada görüldüğü gibi 4 döngü iç içe ve toplamda 6 döngü yer almaktadır. Burada yer alan döngüler For veya Do döngüleri olabilir. Sadece bir tür döngü olabileceği gibi karışık ta kullanılabilir. Şekil 4. İç İçe Döngü Blokları Döngü Çakışmama Kuralı Döngüler her ne kadar istenildiği gibi kullanılabiliniyorsa da döngülerin başlangıç ve bitişleri itibari ile birbirleri ile çakışmamaları gerekmektedir. Bir döngünün Atatürk Üniversitesi Açıköğretim Fakültesi 5

136 Döngü Kontrolleri başlangıcı başka bir döngü içerisinde ise bitişi de bu döngü içerisinde olmalıdır. Aksi takdirde döngülerin bitişleri karışacağından program hata verebileceği gibi bazı durumlarda da programın icrası yanlış yapılır. Bu nedenle her bir döngünün bloğu aynı döngüde veya aynı ortamda sonlanmalıdır. Aşağıda hatalı tasarlanmış döngü blok yapıları ve örnekleri verilm iştir. Bu örnekler incelendiğinde konu daha iyi anlaşılacaktır. Şekil 5. Çakışan Döngüler Şekilden görüldüğü gibi 1 ve 2 numaralı döngüler çakışmaktadır. 2 numaralı döngü 1 numaralı döngü içerisinde başlamış ancak 1 numaralı döngünün dışında sonlanmıştır. Bu da programın derlenmesi esnasında hataya neden olacaktır. Örnek-3: Do ve For döngülerinin çalışmasını gösteren örnek. For... İşlem leri Do While... İşlemler2 Next İşlemler3 Loop İşlemler4 Örnekten görüldüğü gibi For ve Do döngüleri çakışmaktadır. Bu örneğin doğru tasarlanmış hâli ise şöyle olabilirdi. For... İşlem leri Next Do While... İşlemler2 İşlemler3 Loop İşlemler4 Döngüden Kuraldışı Çıkış veya Giriş Programlama dillerinde döngülerden kuralsız çıkışların temel kaynağı GoTo deyimleri ile döngü dışına çıkılma isteğidir. Bu komut şartlı kullanılsa da işlem adımları döngü dışına çıkmaya zorlayabileceğinden programın derlenmesinde hatalara yol açacaktır. Atatürk Üniversitesi Açıköğretim Fakültesi 6

137 Döngü Kontrolleri GoTo deyimi ile döngü dışına çıkılamaz veya döngü içine girilemez - J Bu durumu gösteren aşağıdaki şekiller konunun daha iyi anlaşılmasını Şekil 6. Döngülerde GoTo Kullanımı sağlayacaktır. Yukarıdaki şekilde görüldüğü gibi üç farklı noktada döngüde yönlendirme (dallanma) komutu kullanılmıştır. Bu çizimde 1 numara ile gösterilen dallanma komutu ile döngü dışından döngü içine girilmektedir. Bu hatalı bir durumdur. Döngü bloğuna dıştan girildiğinden döngü koşullarını sınama imkânı ortadan kalkacağından bu duruma izin verilmez. 2 numara ile verilen dallanma komutunun başlangıcı ve bitişi döngü içerisinde olduğundan buna derleyici hata vermez ve mantıksal bir hata yoksa program çalışır. 3 numara ile verilen dallanmada ise döngü içerisinde döngü dışına program akışı dallandığından döngünün bitirme komutuna gelinmeden işlemin bitirilmesi gerektiğinden program hata verecektir. Bu nedenle böyle bir dallanmaya izin verilm ez. Örnek-4: Aşağıda bir programda sadece döngü, dallanma ve etiketlerin olduğu diğer komutlarınsa İşlemler şeklinde gösterilen örnek program taslağı verilmiştir. İşlemler1 GoTo Atla1 '1. Yönlendirme İşlemler2 Do Until Koşull İşlemler3 A tla l: İşlemler4 GoTo Atla2 '2. Yönlendirme İşlemler5 Atla3: İşlemler6 GoTo A tla l '3. Yönlendirme İşlemler7 Loop Atla2: İşlemler8 GoTo Atla2 '4. Yönlendirme İşlemler9 Atatürk Üniversitesi Açıköğretim Fakültesi 7

138 Döngü Kontrolleri Bu örnekte görüldüğü gibi dört yönlendirme (dallanma) komutu kullanılmıştır. Bunlardan 1. Yönlendirme ile açıklaması yapılan komutun hedefi döngü içerisine doğrudan gittiğinden, döngü kuralları çalıştırılmadığından hata verir. 2. yönlendirmede ise komutun kendisi döngü içerisinde hedefi ise döngü dışında olduğundan hata verecektir. 3. Yönlendirmede ise komutun başlangıcı ve bitişi döngü içerisinde olduğundan herhangi bir hata vermeyecektir. 4. Yönlendirmede de GoTo komutu döngü dışında ancak hedefi (etiketi) döngü içerisinde olduğundan hata verecektir. Bu örneğin hata vermeyecek şekilde düzeltmek isterssek program mantığına göre farklılık göstermekle birlikte şu şekilde düzenlenebilir. AtlaO: İşlemler1 GoTo Atla2 '1. Yönlendirme İşlemler2 Do Until Koşul1 İşlemler3 Atla1: İşlemler4 GoTo Atla3 '2. Yönlendirme İşlemler5 Atla3: İşlemler6 GoTo Atla1 '3. Yönlendirme İşlemler7 Loop Atla2: İşlemler8 GoTo AtlaO '4. Yönlendirme İşlemler9 İç içe For döngüleri kullanılmışsa hangi döngü sonlandırma komutunun hangisine ait olduğunu nasıl gösterebiliriz? Kısır döngüye girmiş olan bir program ne zaman sonlanır? Atatürk Üniversitesi Açıköğretim Fakültesi 8

139 Döngü Kontrolleri A Bir döngüde, döngü içerisindeki komutların kaç kez çalıştırıldığı nasıl sayılabilir? Üç boyutlu bir diziyi, iç içe döngüler ile sıfırla dolduran programı tasarlarken iki boyutlu farklı bir diziyi de bir ile nasıl doldurabilirisniz araştırın? O a Döngülerin iç içe kullanımı sürekli kullanılmasa da çok boyutlu dizilerin doldurulmasından bazı üç boyutlu simülasyonlarda ve oyunlarda kullanıldığından iler programlama yapıldığında kullanılmaktadır. Döngüler blok yapısında düşünülmeli ve bu bloklara giriş ile bloklardan çıkışın ilgili döngü komutları ile yapılması programların hatasız derlenmesi için önemlidir. Döngü sayısı belli olmayan döngülerde koşullar uygun değerlerde ve hesaplanarak tasarlanmazsa döngüler sürekli olarak işlem yapmaya çalışacak ve kısır döngüye girecektir. Bu nedenle döngülerin işlem sayıları yaklaşık olarak hesaplanmalıdır. Bir Do döngüsü içerisinde bir adet For-Next döngüsü görevi görecek GoTo-Etiket döngüsü tasarlayın. Bir Do-Loop döngüsünü kısır döngüye sokacak koşul ve işlemleri tasarlayınız. Atatürk Üniversitesi Açıköğretim Fakültesi 9

140 Döngü Kontrolleri Değerlendirme sorularını sistemde ilgili ünite başlığı altında yer alan "bölüm sonu testi" bölümünde etkileşimli olarak cevaplayabilirsiniz. DEĞERLENDİRME SORULARI Aşağıdaki soruları verilen örnek programa göre cevaplayınız. (Satır başındaki sayılar program satırlarını göstermektedir) 1- İşlem leri 2- F o rs a y a c l= Koşull 3- Etiket1: İşlemler2 4- For sayac2 = Ko: 5- Do While Koşul3 6- İşlemler3 7- Etiket2: a = 5 8- GoTo Etiket2 9- İşlemler5 10- Etiket3: İşlemler6 12- GoTo Etiket4 13- İşlemler7 14- Loop 15- Etiket4: İşlemler8 16- Next sayac1 17- Next sayac2 18- GoTo Etiket1 19- Etiket5: İşlemler9 1. Yukarıda verilen programda kaç adet içi içe döngü vardır? a) 5. satırdaki b) 3. satırdaki c) 4. satırdaki d) 1. satırdaki e) 2. satırdaki 2. Yukarıdaki programda en içteki döngü hangi satırdan başlayıp, hangi satırda bitiyor? a) 4. ve 17. satırlardaki b) 5 ve 17. satırlardaki c) 5 ve 14. satırlardaki d) 2 ve 16. satırlardaki e) 5 ve 16. satırlardaki 3. Yukarıdaki programda hangi döngü sonlandırma satırı 2. satırdaki döngüyü sonlandırmaktadır? a) 5. satırdaki b) 8. satırdaki c) 14. satırdaki d) 17. satırdaki e) 16. satırdaki Atatürk Üniversitesi Açıköğretim Fakültesi 10

141 Döngü Kontrolleri 4. Yukarıdaki programda hangi satırlar döngü çakışması oluşturmaktadır? a) 16. ve 17. satırlar b) 5. ve 16. satırlar c) 14. ve 16. satırlar d) 14. ve 17. satırlar e) 4. ve 5. satırlar 5. Yukarıdaki programda hangi satırları yer değiştirirsek döngü çakışması ortadan kalkar? a) 2. ve 5. satırlar b) 5. ve 8. satırlar c) 14. ve 16. satırlar d) 16. ve 17. satırlar e) 17. ve 18. satırlar 6. Yukarıdaki programda hangi satırlar döngü dışına kuralsız çıkıştır? a) 3. satır b) 8. satır c) 12. satır d) 18. satır e) 19. satır 7. Yukarıdaki programda hangi satırlarda kısır döngü vardır? a) 2. ve 5. satırlar arası b) 5. ve 14. satırlar arası c) 10. ve 12. satırlar arası d) 12. ve 15. satırlar arası e) 7. ve 8. satırlar arası 8. Yukardaki programda 16. satır ile 19. satır yer değiştirilirse aşağıdakilerden hangisi gerçekleşir? a) Döngü dışına çıkışlardan bir ortadan kalkar b) Kısır döngü ortadan kalkar c) Döngüler çakışır d) Döngü dışına kuralsız çıkış oluşur e) Programda bir değişiklik olmaz 9. Yukarıdaki programda tüm çakışmalar ve kuralsız çıkışlar ortadan kaldırılacak olsa ve her bir döngüde 4 defa işleyecek olsa İşlemler8 kaç defa çalıştırılır? a) 4 kez b) 16 kez c) Hiç Çalışmaz d) 8 kez e) 64 kez Atatürk Üniversitesi Açıköğretim Fakültesi 11

142 Döngü Kontrolleri 10. Yukarıdaki programda İşlem leri komutları "GoTo Etiket5" komutu ile biterse aşağıdaki yorumlardan hangisi doğrudur? a) Döngü çakışması oluşur. b) Kısır döngü oluşur. c) Döngüler hiç işlenmez. d) Döngüler 1 kez işlenir. e) Program doğru çalışır. Cevap Anahtarı 1.B, 2.C, 3.E, 4.A, 5.D, 6.C, 7.D, 8.A, 9.B, 10.C Atatürk Üniversitesi Açıköğretim Fakültesi 12

143 Döngü Kontrolleri YARARLANILAN VE BAŞVURULABİLECEK DİĞER KAYNAKLAR Çölkesen, R. (2011). Programlama Sanatı Algoritmalar, 2. Baskı, İstanbul: Papatya Yayıncılık. Türkeli, Y. (2011). Visual Basic.Net Eğitmenim, 1. Baskı, Ankara: Nirvana Yayınları. Vatansever, F. (2007). Algoritma Geliştirme ve Programlamaya Giriş, 6. Baskı, Ankara: Seçkin Yayınevi. Visual Studio.Net, Yıldırım, E. Y. (2007). Görsel Programlama Visual Basic, 2. Baskı, Ankara: Nobel Yayın Dağıtım. Atatürk Üniversitesi Açıköğretim Fakültesi 13

144 BİR BOYUTLU DİZİLER HEDEFLER İÇİNDEKİLER Bir Boyutlu Diziler Dizilerin Kullanımı Dizi Elemanlarıyla İşlemler Dizileri Birleştirme ve Ayırma Bu üniteyi çalıştıktan sonra; Dizi kavramını tanıyabilecek Algoritmalarda: Dizileri tanımlayabilecek, Dizi elemanlarıyla işlemler yapabilecek, Dizileri birleştirebilecek, Dizileri ayırabileceksiniz.

145 Bir Boyutlu Diziler GİRİŞ Bu ünitede, akış diyagramlarının yardımıyla birçok veriyi tek bir alanda nasıl saklayabileceğimiz, işleyebileceğimiz ve çağırabileceğimiz konusundaki bilgiler anlatılacaktır. Teknolojinin gün geçtikçe gelişmesi, çoğalan bilgiyi saklama ve bu saklanan bilgiyi de istenilen anda kullanabilecek alanların oluşturulmasına sebep olmuştur. Bir veri yığınındaki bilgiler saklanırken bu verilerin aynı türden olması büyük önem taşımaktadır. Aksi takdirde saklanılan veriler içinde karmaşıklık ortaya çıkacak ve istenilen sonuca ulaşmak mümkün olmayacaktır. Bilgiyi saklamada kullanılan en önemli alanlardan biri de dizilerdir. (Dizi kelimesi İngilizce kaynaklarda "ARRAY" olarak geçer) Bu ünitede bir boyutlu dizilerden bahsedilecek ve bir sonraki ünitede iki boyutlu diziler üzerinde durulacaktır. m Bu ünitede yapılan örnekler Visual Studio 2010 programındaki Visual Basic programlama diliyle çözülmüştür. 100 Değişken yerine 100 elemanlı bir dizi değişkeni. BİR BOYUTLU DİZİLER Tek sıradan, yani yalnızca satır veya sütundan oluşan ardışıl veri yığınlarıdır. İçinde aynı tip birden fazla veriyi depolayabilen değişkenlerdir. Bu da diğer değişkenlerden ayırt eden bir özelliktir. "VEKTÖR" olarak da adlandırılırlar. elma muz Meyve isimlerinin listelendiği tek sütundan oluşan bir dizi örneği. 10 Kg 35 Kg 23 Kg Aynı tür ölçü birimlerinin listelendiği tek satırdan oluşan bir dizi örneği. Atatürk Üniversitesi Açıköğretim Fakültesi 2

146 Bir Boyutlu Diziler DİZİLERİN KULLANIMI Dizilerde indis adı verdiğimiz her elemanın bir numarası vardır. Değişiklik yapmak istediğimiz dizi elemanın indisi kesinlikle belirtilmelidir. Değişkenleri nasıl isimlendiriyorsak aynı kurallar diziler içinde geçerlidir. J O) c Eleman sayısı girilen bir dizinin elamanlarını atayan programın akış diyagramı ve örnek kod yazılımı: Private Sub As System.EventArgs) Dim N As New Integer N = Textboxl.text Atatürk Üniversitesi Açıköğretim Fakültesi 3

147 Bir Boyutlu Diziler DİZİ ELEMANLARIYLA İŞLEMLER Elemanlarını atadığımız bir dizinin üstünde bir takım işlemler yapmamız gerekebilir. Bunlara; sayısal değerlerinin toplamı, en büyük ifadenin bulunması, elemanlar içinde bir sıralama yapılması gibi örnekler verilebilir. Bu başlıkta, çeşitli örneklerle yapılabilecek işlemler üzerinde duracağız. K \ ' O) c i O 10 elemanlı bir dizinin elemanlarını toplayıp sonucunu ekrana yazdıran programın akış diyagramı ve örnek kod yazılımı: Toplama işleminde etkisiz eleman sıfırdır. Aksi belirtilmedikçe toplam değişkenine başlangıç değeri olarak etkisiz elemanı atanır. S* Dim t As New Integer Dim a(10) As Integer Atatürk Üniversitesi Açıköğretim Fakültesi 4

148 Bir Boyutlu Diziler O) c N elemanlı bir dizideki tek sayıların çarpımını yapıp sonucunu ekrana yazdıran programın akış diyagramı ve örnek kod yazılımı: Çarpma işleminde etkisiz eleman birdir. Aksi belirtilmedikçe çarpım değişkeninin başlangıç değeri olarak etkisiz eleman atanır. o n od 2 = 0 c = c * a(i) ListBox1.Items.Add(c) Örnekte görüldüğü gibi dizi elemanları döngü içinde tek tek kontrol edilip çift olan dizi elemanları çarpma işlemine dahil edilmeden tek olan dizi elemanlarının çarpımı yapılacaktır. Atatürk Üniversitesi Açıköğretim Fakültesi 5

149 Bir Boyutlu Diziler O) c i O 100 elemanlı bir dizideki elemanlardan en büyüğünü bulup ekrana yazdıran programın akış diyagramı ve örnek kod yazılımı: < w 1 = 1, 100, 1 - i Enb = A (l) İ X 1 = 2, 100, 1 Atatürk Üniversitesi Açıköğretim Fakültesi 6

150 Bir Boyutlu Diziler O) c i O N elemanlı bir dizide 50'den küçük sayıların olup olmadığını ve varsa 50'den küçük olanları ekrana yazdıran programın akış diyagramı ve örnek kod yazılımı: ^ 8 5 ) 3 7 ) e Atatürk Üniversitesi Açıköğretim Fakültesi 7

151 Bir Boyutlu Diziler O) c N elemanlı bir dizideki elemanları küçükten büyüğe doğru sıralayan programın akış diyagramı ve örnek kod yazılımı: Atatürk Üniversitesi Açıköğretim Fakültesi 8

152 Bir Boyutlu Diziler önceki elemana kadar dönmektedir. Son elemanı kıyaslaması hataya yol açar çünkü karşılaştıracağı bir eleman kalmıyor. Burada her bir eleman içteki döngü sayesinde kendinden sonra gelen bütün elemanlarla karşılaştırılır ve işlem şeması içinde yer değiştirme olayı gerçekleştirilir. Dikkat edilmesi gereken bir diğer hususta yer değiştirme olayıdır. "TU T" diye bir değişken tanımladık ve bu değişken sayesinde yerlerini değiştireceğimiz elemanlardan birinin diğerinin üzerine yazılarak yerini değiştireceğimiz elmanın kaybolmasını önlemiş olduk. Yani yedekleme işlemi gerçekleştirdik. DİZİLERİ BİRLEŞTİRME VE AYIRMA Bir dizi içindeki elemanlardan belirli şartları sağlayanlar üzerinde bir takım işlemler yapılması istenebilir. Bu işlemleri tek tek uygulamak yerine şartı sağlayan elemanları bir diziye aktarmak ve oluşacak dizinin tüm elemanlarına o işlemi uygulamak daha mantıklı olacaktır. Bu işleme dizileri ayırma adını verebiliriz. Bununla birlikte bazen de farklı diziler üzerinde aynı işlemleri yapmamız gerekebilir. Bu durumda da o dizileri yeni bir dizi üzerinde birleştirip olaylarımızı gerçekleştirmek işimizi kolaylaştıracaktır. Bu işleme de dizileri birleştirme adını verebiliriz. C() A() B() Atatürk Üniversitesi Açıköğretim Fakültesi 9

153 Bir Boyutlu Diziler O) c N elemanlı bir A dizisindeki pozitif elemanların iki katını B dizisine negatif elemanların karesini de C dizisine yerleştiren programın akış diyagramı ve örnek kod yazılımı: X = 0, Y = 0 A Yeni oluşturulacak dizilerin indislerinin var olan dizinin indisleri ile çağrılmaması ve arada boş elemanların kalmaması için X ve Y diye iki adet değişken tanımlanmıştır. Y = Y + 1 C(Y) = A(I) A2 X = X + 1 B(X) = 2*A(I) XN Atatürk Üniversitesi Açıköğretim Fakültesi 10

154 Bir Boyutlu Diziler Dim b(x) As Integer Dim c(y) As Integer ListBox3.Items.Add(c(y)) O) c N elemanlı A ve B dizilerini çarparak C dizisini oluşturan ve yazdıran programın akış diyagramı ve örnek kod yazılımı: C(I) = A(I) * B(I) Atatürk Üniversitesi Açıköğretim Fakültesi 11

155 Bir Boyutlu Diziler 1 To n a(i) = InputBox(" " ) ListBox1.Items.Add(a(i) or ı = 1 lo n b(i) = InputBox(" " ) ListBox2.Items.Add(b(i)) c(i) = a(i) * b(i) ListBox3.Items.Add(c(i)) O) c N elemanlı A dizisinin elamanlarının iki katını, ters sırada B dizisine yerleştiren programın akış diyagramı ve örnek kod yazılımı: Bu örnekte dikkat edilmesi gereken nokta yeni oluşturulacak dizinin indis değeri artarken bununla ters orantılı olacak şekilde var olan dizinin indis değerinin azaltılarak verilerin aktarılmasıdır. Atatürk Üniversitesi Açıköğretim Fakültesi 12

156 Bir Boyutlu Diziler For i = 1 To N 1 B(i) = A(N i) * 2 ListBox2.Items.Add(B(i)) O) c Öğrenci numaraları l'd e n başlayarak sırayla ilerleyen N kişilik bir sınıfın herhangi bir desten aldığı notlar kullanılarak A dizisi oluşturulup sınıf ortalaması hesaplanıyor. Bu hesaplamayı yapan ve ortalamanın altında kalan öğrencileri yeni numaralarıyla B dizisine, ortalamanın üstünde olan öğrencileri de yeni numaralarıyla C dizisine yerleştiren programın akış diyaqramı ve örnek kod yazılımı: T = T + A(I) Ort = T / N T X = 0, Y = 0 X = X + 1 B(X) = A(l) I,"-Kaldı, yeni numaran=",x h r Y = Y + 1 C(Y) = A(I) m I,"-Geçti, yeni numaran=",y Atatürk Üniversitesi Açıköğretim Fakültesi 13

157 Bir Boyutlu Diziler Sözel değişken tanımlama Atatürk Üniversitesi Açıköğretim Fakültesi 14

158 a Bir Boyutlu Diziler O) c i O N elemanlı A ve B dizilerini bir C dizisinde birleştirip her elemanın faktöriyelini hesaplayan programın akış diyagramı ve örnek kod yazılımı: A(I), B(I) C(I) = A(I) C(N+I) = B(I) Bu örnekte dikkat edilmesi gereken nokta C dizisine; A dizisinin elemanları ilk sırada, B dizisinin elemanları da son sırada yerleştirilerek birleştirme işlemi gerçekleştirilmiştir. = 1 To N c(i) = A(i) c(n + i) = B(i) For i = 1 To 2 * N 1 IFor j = 1 To c (i) M 4- F = F * j F = F ListBox3.Items.Add(F) Next Atatürk Üniversitesi Açıköğretim Fakültesi 15

159 Bir Boyutlu Diziler O) c Kullanıcının 1-49 arası girdiği 6 tahminden, kaçının bilgisayarın rastgele ürettiği 6 sayı ile eşleştiğini bulan programın akış diyagramı ve örnek kod yazılımı: Random(49)+1 şeklinde bilgisayarın sayı üretmesi için bir kod tanımlanmıştır. S," adet doğru tahminde bulundun" i = 1 To 6 A(i) = InputBox( ) ListBox1.Items.Add(A(i)) B(i) = Int(Rnd() * 49) + 1 ListBox2.Items.Add(B(i)) s = 0 1 To 6 For j = 1 To 6 If A(i) = B(j) s = s + 1 Atatürk Üniversitesi Açıköğretim Fakültesi 16

160 Bir Boyutlu Diziler End If Next Next Zonvert.T " adet doğru tahminde bulundunuz Bu örnekte kullanıcının girdiği sayılar K dizisine, bilgisayarın ürettiği sayılar B dizisine birinci döngü içinde aktarılmıştır. Sonrasında kullanılan içiçe döngüler de bu üretilen ve girilen sayılar birbirleriyle tek tek karşılaştırılarak aynı olanlar bulunmaya çalışılmıştır. Bulundukça kullanılan sayaç bir artırılarak doğru tahmin sayısı elde edilmiştir. Atatürk Üniversitesi Açıköğretim Fakültesi 17

161 Bir Boyutlu Diziler O QJ M Algoritmalar sayesinde günlük hayatta çözdüğümüz sorunlar daha kolay sonuca ulaşabilmekte ve uygun adımlar izlenerek zamandan tasarruf edilmektedir. Bununla birlikte akış diyagramlarında bizi çözüme götürecek olan verilerimizi işlemenin önemi büyük ölçüde görülmektedir. Bu verileri işlerken sakladığımız veri alanları ve kullandığımız değişkenler sonsuz derecede önemlidir. Özellikle aynı tip veriler üzerinde çalışırken her veri için ayrı bir değişken tanımlamak yaptığımız işlem adımlarını çoğaltacak ve karmaşık bir hale dönüştürecektir. Aynı tür veriler için birden fazla değişken tanımlamak yerine tek bir dizi değişkeni içinde bütün verilerimizi dizi numaralarını kullanarak saklamak ve işlemek çok büyük bir avantajdır. Diziler sayesinde verilerimizi istediğimiz gibi kolayca sıralayabilir, belirli koşullara göre işleyebilir veya bir başka alan içine yerleştirebiliz. Atatürk Üniversitesi Açıköğretim Fakültesi 18

162 Bir Boyutlu Diziler DEĞERLENDİRME SORULARI 1. Dizi elemanlarının numaralarına ne ad verilir? a. Sayı b. Basamak c. İndis d. Kademe e. Değer Bu işlem adımlarını aşağıdakilerden hangisi doğru şekilde anlatmıştır? a. A adında bir değişken tanımlanmıştır. b. A(I) dizisine 10 değeri aktarılmıştır. c. A dizisinin elemanları ekrana yazdırılmıştır. d. Klavyeden 10 elemanlı bir A dizisinin elemanları girilmiştir. e. 1'den 10'a kadar sayılar A dizisine yerleştirilm iştir. Bu işlem adımlarını aşağıdakilerden hangisi doğru şekilde anlatmıştır? a. A dizisinin elemanlarını üçle çarpmıştır. b. A dizisinin elemanlarını üçe bölmüştür. c. A dizisinin 3'e tam bölünebilen elemanlarını çarpmıştır. d. A dizisinin elemanlarına 3 ve 0 değerini atamıştır. e. A dizisinin 3'e tam bölünemeyen elemanlarını çarpmıştır. 4. Dizilerde aşağıdakilerden hangisi yapılamaz? a. Aynı tür veri saklama b. Dizi elemanları üzerinde işlem yapma c. Aynı tü r dizi elemanına sahip farklı dizileri birleştirme d. Farklı türdeki verileri saklama e. Bir diziyi ayırma Atatürk Üniversitesi Açıköğretim Fakültesi 19

163 Bir Boyutlu Diziler > A dizisinin elemanları sırasıyla 15, 7 ve 26'dır. Buna göre yukardaki döngü tamamlandıktan sonra Sonuc değişkeni ne olur? a. b. c. d. e I. İstenilen zamanda işlem yapılabilir. II. III. Bir şarta göre işlem yapılabilir. En fazla bir eleman değiştirilebilir. 6. Dizi elemanlarıyla ilgili olarak yukarıdaki ifadelerden hangisi ya da hangileri doğrudur? a. Yalnız I b. Yalnız III c. II ve III d. I ve III e. I ve II 7. Bir dizideki elemanları ters sırada başka bir diziye aktarmak için neye dikkat edilmelidir? a. Dizi indisleri arasında ters orantılı bir etkileşim olmalıdır. b. Dizi indisleri eşit sırayla artmalıdır. c. Dizi indisleri eşit sırayla azalmalıdır. d. Bir dizinin indisi artarken diğer dizininki sabit kalmalıdır. e. Dizi indisleri arasında bir bağlantı kurulmamalıdır. 8. Elemanları girilen bir dizinin en büyük elemanını bulmak için yapmamız gereken işlem nedir? a. İlk eleman, her zaman en büyük elemandır. b. Son eleman her zaman en büyük elemandır. c. Bütün elemanlar birbirine eşit çıkar. d. İlk elemanı en büyük eleman olarak belirler diğerleriyle karşılaştırırız. e. En büyük elemanı bulamayız. Atatürk Üniversitesi Açıköğretim Fakültesi 20

164 Bir Boyutlu Diziler 9. Yukarıdaki akış diyagramında yapılan işlem nedir? a. A ve B dizilerinin elemanları toplanarak C dizisine aktarılmıştır. b. A ve B dizilerinin elemanları çarpılarak C dizisine aktarılmıştır. c. C dizisinin bütün elamanları birbirleriyle çarpılmıştır. d. Klavyeden C dizisinin elemanları girilmiştir. e. A ve B dizisi C dizisinin elemanlarından oluşmuştur. 10. Ltt h O Yukarıdaki akış diyagramında yapılan işlem nedir? a. A ve B dizilerinin elemanları eşleştirilmiştir. b. A ve B dizilerinin elemanları sayılmıştır. c. A ve B dizilerinin elemanları toplanmıştır. d. A ve B dizileri birleştirilmiştir. e. A ve B dizilerinin eşit olan elemanlarının sayısı hesaplanmıştır. Cevap A nahtarı: 1.C, 2.D, 3.E, 4.D, 5.C, 6.E, 7.A, 8.D, 9.B, 10.E Atatürk Üniversitesi Açıköğretim Fakültesi 21

165 Bir Boyutlu Diziler YARARLANILAN VE BAŞVURULABİLECEK DİĞER KAYNAKLAR Vatansever, F., Algoritma Geliştirme ve Programlamaya Giriş, 2. Baskı, Seçkin Yayıncılık, Ankara, Çamoğlu, K., Algoritma & Uygulamalı Algoritma Kılavuzu, 2. Baskı, Kodlab Yayınları, Çobanoğlu, B., Algoritma Geliştirme ve Veri Yapıları, 4. Baskı, Pusula Yayıncılık, Ekim Atatürk Üniversitesi Açıköğretim Fakültesi 22

166 HEDEFLER İÇİNDEKİLER İki Boyutlu Diziler Matrislerin Kullanımı Matris Elemanlarıyla İşlemler Bu üniteyi çalıştıktan sonra; Matris kavramını tanıyabilecek Algoritmalarda matris tanımalayabilecek, Matris elemanlarıyla işlemler yapabilecek, Matrislerden veri alabileceksiniz. PROGRAMLAMA TEMELLERİ Okt. Daha ORHAN ÜNİTE 10

167 İki Boyutlu Diziler GİRİŞ Bu ünitede, bir önceki ünitede anlatılan bir boyutlu dizi uygulamaları genişletilerek iki boyutlu dizi uygulamaları anlatılacaktır. Verileri saklarken bazen bu verileri saklamak için gerekli olan alanı tek boyutla sınırlandırmak doğru olmayacaktır. Örneğin bir firmanın araç fiyatlarını listelerken binek araçları tek bir satır veya sütun içinde tutabiliriz ama binek araçları ve ticari araçları listelemek için bu boyutların birini en az iki defa kullanmamız gerekecektir. Bu durumda da saklayacağımız veri alanı iki boyutlu olacaktır. İki boyutlu diziler aritmetik işlemlerde ve mühendislik uygulamalarında sıklıkla kullanılan işlemler arasında yer alırlar. Bunların üzerinde programlama mantığı ile ne gibi işlemler yapabileceğimizi öğreneceğiz. Bu ünitede yapılan örnekler Visual Studio 2010 programındaki Visual Basic programlama diliyle çözülmüştür. İKİ BOYUTLU DİZİLER Birden fazla sütun ve birden fazla satırdan oluşan veri yığınlarıdır. Birden fazla vektörün bütünleşik olarak kullanımı olan iki boyutlu diziler "M ATRİS" olarak da adlandırılırlar. Binek Araçlar TL TL TL Ticari Araçlar Araç fiyatlarının listelendiği iki sütun ve üç satırdan oluşan bir matris örneği. Soğan Kabak Biber Kiraz Kivi Muz Sebze ve meyve isimlerinin listelendiği iki satır ve üç sütundan oluşan bir matris örneği. Atatürk Üniversitesi Açıköğretim Fakültesi 2

168 İki Boyutlu Diziler MATRİSLERİN KULLANIMI Matrislerde de tıpkı dizilerde olduğu gibi indis adı verdiğimiz her elemanın numarası vardır. Kullanmak istediğimiz matris elemanın indisi kesinlikle belirtilmelidir. Matris yapısının bilgisayar programlama ortamına aktarılmasını aşağıdaki örnekte inceleyelim: Değişkenleri nasıl isimlendiriyorsak aynı kurallar Matris değişkenleri için de geçerlidir. O) c Satır ve sütun sayısı girilen N*M'lik bir matrisin elamanlarını atayan programın akış diyagramı ve örnek kod yazılımı: Handles Dim ~ n A s New lnteger -- ^ Matris elemanlarının veri tipi 1 > Matrisin sütun sayısı \ Matrisin satır sayısı Matrisin sütun ve satır sayılarını aldığı alan Matrisin tanımlandığı alan Sözel değişken tanımlıyoruz Sözel değişkenin ilk değeri Atatürk Üniversitesi Açıköğretim Fakültesi 3

169 İki Boyutlu Diziler Matrislerin eleman sayısı sütun ve satır sayısı çarpılarak hesaplanır MATRİS ELEMANLARIYLA İŞLEMLER Çoklu verilerin girilmesini sağlayan matrisler üzerinde yapabileceğimiz; Matrislerin elemanlarını toplama, İki matrisin elemanlarını çarpma, Matrisin ana köşegenindeki elemanları bulma vb. işlemleri bu başlık altında inceleyeceğiz. Kullanımda gerçekleşebilecek birçok ihtimal üzerine örnek çözülecektir. Çözümlerde yapılacak küçük değişiklikler aracılığıyla sayısız probleme sonuç bulmanız mümkündür. O) c i O N*N tipindeki (boyutundaki) A matrisinin elemanlarını ekrana yazdıran programın akış diyagramı ve örnek kod yazılımı: Atatürk Üniversitesi Açıköğretim Fakültesi 4

170 İki Boyutlu Diziler Dim N As New Integer C»Klavyeden girilen N*N boyutundaki A ve B matrislerinin elemanlarını toplayan programın örnek kod yazılımı: O Bu matrislerin 2*2 boyutunda olduğunu düşünürsek gerçekleşecek işlem adımlarını aşağıdaki gibi şematize edebiliriz. + Atatürk Üniversitesi Açıköğretim Fakültesi 5

171 İki Boyutlu Diziler Klavyeden girilen N*N boyutundaki A matrisinin ana köşegen üzerindeki elemanlarının çarpımını yapıp sonucunu ekrana yazdıran programın akış diyagramı ve örnek kod yazılımı: Bir matrisin ana köşegeni istinat alınarak üzerinde işlem yapılıyorsa dikkat edilmesi gereken nokta köşegen üzerindeki matris elemanlarının indisindeki numaraların birbirine eşit olacağıdır. Yani satır ve sütun numaraları eşit oranda artış gösterecektir. Atatürk Üniversitesi Açıköğretim Fakültesi 6

172 İki Boyutlu Diziler Ç == 1 \t.n C = C * A (i,i) N e x t L M sgb ox( C ) fü Eı/vı m S_.ro Örneğimizdeki sorumuz ana köşegen üzerindeki elemanların karelerinin toplamı şeklinde olsaydı ne gibi bir değişiklik yapmamız gerekirdi? Düşüncelerinizi sistemde ilgili ünite başlığı altında yer alan "tartışma forum u" bölümünde paylaşabilirsiniz. Atatürk Üniversitesi Açıköğretim Fakültesi 7

173 İki Boyutlu Diziler p e t i O) c Klavyeden girilen N*N boyutundaki A matrisinin yedek köşegen üzerindeki elemanların karelerinin toplamını yapıp sonucunu ekrana yazdıran programın örnek kod yazılımı: T = 0 F o r i = 1 To N T = T + A ( i, N i) * A ( i, N i) N e x t MsgBox( T ) Bir matrisin yedek köşegeni üzerindeki indislere dikkatlice bakacak olursak satır indisi birer birer artarken sütun indisi aynı oranda sondan birer birer azalmaktadır. Buna dayanarak tek döngü hâlinde programımızı ^ ^ ya za b iliriz. Klavyeden girilen N*M boyutundaki A matrisinin ikinci sütun elemanlarının toplamı ile üçüncü satır elemanlarının toplamını çarpıp sonucunu ekrana yazdıran programın örnek kod yazılımı: Atatürk Üniversitesi Açıköğretim Fakültesi 8

174 İki Boyutlu Diziler Yandaki N*M'lik örnek matrisde 2. sütun ve 3. satır elemanları taralı olarak belirtilmiştir. T1 = 0 r T2 = 0 For i T1 = Next For i = T2 = T2 + A(3,i) 3. satırdaki elemanların toplamı Nex C = T1 * T2 MsgBox( C ) JS C P " Ö rneğim izdeki sorum uz 2. satır ve sütundaki elem anların hepsi bir (1) olacak şekilde yazdırınız olsaydı ne gibi bir değişiklik yapm am ız gerekirdi? D üşüncelerinizi sistem de ilgili ünite başlığı altında ye r alan "tartışm a fo ru m u " bölüm ünde paylaşabilirsiniz. Atatürk Üniversitesi Açıköğretim Fakültesi 9

175 İki Boyutlu Diziler Klavyeden girilen N*M boyutundaki A matrisinin her satırını kendi içinde büyükten küçüğe doğru sıralayıp sonucunu ekrana yazdıran programın örnek kod yazılımı: Bu örnekteki sıralama mantığı bir önceki ünitede bir boyutlu diziler konusunda anlatılmıştır. Sıralamada en içteki döngü karar ifadesi kullanılarak yer değiştirme işleminin yapıldığı alandır. Ortadaki döngü her bir satırı kendi içinde değerlendirmek amacıyla kullanılmıştır. En dıştaki döngü ise her satırın sırayla ilerlemesi için; yani bir satırı sıraladıktan sonra diğer satırı sıralamaya geçmek için mutlak ifadedir. O) c Klavyeden girilen N*M boyutundaki A matrisi ile M*L boyutundaki B matrisinin çarpımını hesaplayıp sonucunu ekrana yazdıran programın örnek kod yazılımı: Atatürk Üniversitesi Açıköğretim Fakültesi 10

176 İki Boyutlu Diziler Bu matrislerin 4*2 ve 2*3 boyutunda olduğunu düşünürsek gerçekleşecek işlem adımlarını aşağıdaki gibi şematize edebiliriz (5*4+1*6) 26 (5*11+1*9) 64 (5*5+1*-1) (6*4+10*6) 84 (6*11+10*9) 156 (6*5+10*-1) 20 * (0*4+4*6) 24 (0*11+4*9) 36 (0*5+4*-1) (8*4+8*6) 80 (8*11+8*9) 160 (8*5+8*-1) 32 Yani çarpım sonucu oluşacak C matrisinin elemanları aşağıdaki gibi hesaplanır: C11 = A ı * B 1 + A 12 * B21 C12 = A ı * B 2 + A 12 * B22 C13 = A 1 * B 3+ A 12 * B23 C12 = A2 * B * 1 B21 < + C12 = A2 * B 2 + A22 * B22 C12 = A2 * B 13+ A22 * B23 C12 = A 3 * B * 11 B21 m A3 + C12 = A 3 * B 2 + A32 * B22 C12 = A 3 * B 13+ A32 * B23 C12 = A4 * B 11 + A42 * B21 C12 = A4 * B 2 + A42 * B22 C12 = A4 * B 13+ A42 * B23 Matrislerin çarpımında dikkat edilecek en önemli nokta: çarpılacak olan iki matristen birincisinin sütun sayısı ile ikincisinin satır sayısı birbirine eşit olmak zorundadır. Aksi takdirde çarpma işlemi gerçekleştirilemez. Atatürk Üniversitesi Açıköğretim Fakültesi 11

177 İki Boyutlu Diziler Çarpım sonucunda oluşacak matrisin boyutunu, çarpma işlemine giren birinci matrisin satır sayısı ve ikinci matrisin sütun sayısı belirler. C(i, j) = C(i, j) + A (i, k) * B(k, j) g e c = g e c + + C o n v e r t. T o S t r in g ( C ( i, j ) ) N e x t L is tb o x 3.Ite m s.a d d (g e c ) g e c = N e x t O) c Klavyeden girilen N*N boyutundaki A matrisinin ana köşegeninin alt kısmında kalan her bir elemanın faktörüyelini hesaplayan ve yeni oluşan matrisi ekrana yazdırdan programın örnek kod yazılımı: Atatürk Üniversitesi Açıköğretim Fakültesi 12

178 İki Boyutlu Diziler F o r i = 1 To F o r j = 1 To N I f i > j Then F o r k = 1 To N e x t A ( i,j) = F C o n v e r t. T o S t r in g ( A ( i, j ) ) N e x t L is tb o x 2.Ite m s.a d d (g e c ) N e x t Bu örnekte ana köşegenin altında kalan elemanları, satır ve sütun numaralarını belirten indisler arasında bir mukayese yaparak bulabiliriz. Dikkat edecek olursak alttaki elemanların satır sayısını gösteren indis sütun sayısını gösteren indisten daima büyüktür. O) c i O Klavyeden girilen N*N boyutundaki A matrisinin, sırayla her iki satırını toplayarak tek bir satır oluşturan ve N*N boyutundan (N/2)*N boyutuna indirgeyen programın örnek kod yazılımı: _. *1 «\ Atatürk Üniversitesi Açıköğretim Fakültesi 13

179 İki Boyutlu Diziler Private Sub ByVal Handles Dim N As New Integer As New Integer As Integer mod 2 = 1 Then 'Satır sayısının yarıya indirgenebilmesi için satır sayısını çift değer girmelisiniz. Yeni bir değer girin ve butona tekrar tıklayınız") Else Dim B(N/2, N) As Integer Dim gec As String gec = For i = 1 To For Atatürk Üniversitesi Açıköğretim Fakültesi 14

180 İki Boyutlu Diziler E V " O) c Klavyeden girilen N*M boyutundaki A matrisinin, her bir sütunundaki elemanların toplamından (toplam sonucunun işaret (+/-) olarak tersi alınsın) M elemanlı bir dizi oluşturan programın örnek kod yazılımı: O) c Bir bölgedeki N adet ilin son on yıllık yağış ortalaması, bilgisayara girilmektedir. Buna göre; her yılın bölgedeki yağış ortalamasını hesaplayıp B dizisine büyükten küçüğe doğru yerleştiren ve her bir ilin en az ve en fazla yağış aldığı yılın miktarını veren programın örnek kod yazılımı:

181 İki Boyutlu Diziler Atatürk Üniversitesi Açıköğretim Fakültesi 16

182 İki Boyutlu Diziler O QJ M Dikdörtgen biçiminde değişkenlerden oluşan satır ve sütun bloklarının bütünleşik olarak bir arada bulunduğu yapılara matris denmektedir. Bir önceki ünitede anlattığımız vektörlerin bir araya gelerek oluşturduğu tablolardır. Verilerimizi içinde tutan matris elemanları " a^ " şeklinde gösterilmektedir. Bu gösterimde: " a " matrisin adını, " i " matris elemanının satır numarasını, " j " ise matris elemanının sütun numarasını ifade etmektedir. Matrisimiz içindeki elemanlar üzerinde işlem yapmak istiyorsak satır ve sütun numarasını muhakkak belirtmeliyiz. Bu sayede iki boyutlu diziler üzerinde yapacağımız çoklu işlemleri bir sıraya koyarak algoritmalar halinde yazılabiliriz ve hazırladığımız bu algoritmaları her hangi bir programlama dili kullanarak işlevsel hâle getirilebiliriz. Atatürk Üniversitesi Açıköğretim Fakültesi 17

183 İki Boyutlu Diziler DEĞERLENDİRME SORULARI 1. Bir matrisin kaç elemanlı olduğunu nasıl hesaplarız? a. Satır sayısını ikiye böleriz. b. Sütun sayını ikiye böleriz. c. Satır ve sütun sayılarını toplarız. d. Satır ve sütun sayılarını çarparız. e. Her hangi bir matris elemanının karesini alırız. 2. For i = 1 To N For j = 1 To 10 A(i, j) = InputBox("TAHA") Next Next Bu işlem adımlarını aşağıdakilerden hangisi doğru şekilde anlatmıştır? a. A adında bir değişken tanımlanmıştır. b. A Matrisine TA H A adı verilmiştir. c. N satırdan 10 sütundan oluşan A matrisinin elemanları girilmiştir. d. Ekrana N*10 adet TA H A yazdırılmıştır. e. Matris elemanlarının hepsine tek bir değer atanmıştır. 3. Convert.ToString(A(i, j)) Bu kod ne işe yaramaktadır? a. Sayısal olarak girilmiş bir matris elemanını sözel değere dönüştürmektedir. b. Sözel olarak girilmiş bir matris elemanını sayısal değere dönüştürmektedir. c. Matris elemanı tanımlanmaktadır. d. Matris elemanının satır ve sütun sayısını belirlemektedir. e. Matris elemanlarının yerlerini değiştirmektedir. 4. T = T + A(I,I) a. Aynı tür veri saklama b. Dizi elemanları üzerinde işlem yapma c. Aynı tü r dizi elemanına sahip farklı dizileri birleştirme d. Farklı türdeki verileri saklama e. Bir diziyi ayırma Atatürk Üniversitesi Açıköğretim Fakültesi 18

184 İki Boyutlu Diziler Yukardaki A matrisinde sarı ile taralı alan nereyi göstermektedir? a. Tek bir satırı b. Üçüncü satır ikinci sütun elemanlarını c. Üçüncü sütun ikinci satır elemanlarını d. Sondan bir önceki satır ve sütun elemanlarını e. Baştan bir sonraki satır ve sütundaki elemanları 6. İki matrisin çarpımı yapılırken aşağıdakilerden hangisi doğru olmak zorundadır? a. Matrislerin satır sayıları eşit olmalıdır. b. Matrislerin sütun sayıları eşit olmalıdır. c. İlk matrisin sütun sayısı ile ikinci matrisin satır sayısı eşit olmalıdır. d. Matrislerin eleman sayıları eşit olmak zorundadır. e. Satır ve sütunları arasında bir bağıntı olması zorunlu değildir. 7. 5*5 boyutundaki bir matrisin ana köşegeninin üstünde kalan elemanların satır ve sütun numaraları arasında nasıl bir ilişki vardır? a. Satır numarası sütun numarasından daima büyüktür. b. Satır numarası sütun numarasından daima küçüktür. c. Satır ve sütun numarası birbirine eşittir. d. Satır ve sütun numaralarının toplamı daima beştir. e. Satır ve sütun numaralarının toplamı daima beşten büyüktür. 8. S te p 3 kodu neyi ifade etmektedir? a. Döngü adım miktarını b. Karşılaştırma işlemini c. İki boyutlu dizileri d. Bir boyutlu dizileri e. Matris elemanının satır sayısını Atatürk Üniversitesi Açıköğretim Fakültesi 19

185 İki Boyutlu Diziler 9. F o r i = 1 To 10 T = 0 F o r j = 1 To N T = T + A (j,i) N e x t O r t = T / 10 N e x t Yukarıdaki işlem adımlarında gerçekleştirilen olay nedir? a. Her bir sütundaki elemanların ortalaması hesaplanmaktadır. b. Her bir satırdaki elemanların faktöriyeli hesaplanmaktadır. c. Her bir sütundaki elemanların faktöriyeli hesaplanmaktadır. d. Her bir satırdaki elemanların ortalaması hesaplanmaktadır. e. A Matrisindeki elemanları toplamı yapılmaktadır. 10.Değer = A(1,1) For i = 1 To N For j = 1 To N I f A ( i,j) > D e ğer Then D e ğer = A (i,j) End I f N e x t N e x t Yukarıdaki işlem adımlarında gerçekleştirilen olay nedir? a. A Matrisinin elemanları çarpılmaktadır. b. A Matrisinin sonuncu elemanı bulunmaktadır. c. A Matrisinin ilk elemanı çıkarılmaktadır. d. A Matrisinin bütün elemanları eşitlenmektedir. e. A Matrisinin en büyük elemanı bulunmaktadır. Cevap A nahtarı: 1.D, 2.C, 3.A, 4.B, 5.E, 6.C, 7.B, 8.A, 9.D, 10.E Atatürk Üniversitesi Açıköğretim Fakültesi 20

186 İki Boyutlu Diziler YARARLANILAN VE BAŞVURULABİLECEK DİĞER KAYNAKLAR Vatansever, F., Algoritma Geliştirme ve Programlamaya Giriş, 2. Baskı, Seçkin Yayıncılık, Ankara, Çamoğlu, K., Algoritma & Uygulamalı Algoritma Kılavuzu, 2. Baskı, Kodlab Yayınları, Çobanoğlu, B., Algoritma Geliştirme ve Veri Yapıları, 4. Baskı, Pusula Yayıncılık, Ekim Atatürk Üniversitesi Açıköğretim Fakültesi 21

BİLGİSAYAR KULLANMA KURSU

BİLGİSAYAR KULLANMA KURSU 1 2 KURS MODÜLLERİ 1. BİLGİSAYAR KULLANIMI 3 1. Bilişim (Bilgi ve İletişim) Kavramı Bilişim, bilgi ve iletişim kelimelerinin bir arada kullanılmasıyla meydana gelmiştir. Bilişim, bilginin teknolojik araçlar

Detaylı

PROGRAMLAMA TEMELLERİ-ÜNİTE 2 SAYI SİSTEMLERİ, OPERATÖRLER VE İŞLEMLER

PROGRAMLAMA TEMELLERİ-ÜNİTE 2 SAYI SİSTEMLERİ, OPERATÖRLER VE İŞLEMLER PROGRAMLAMA TEMELLERİ-ÜNİTE 2 SAYI SİSTEMLERİ, OPERATÖRLER VE İŞLEMLER GİRİŞ İnsanoğlunun bilgiyi belirtmede kullandığı sembollerin bilgisayarda da ifade edilmesi gerekir. Bilgisayarın 0 ve 1 e karşılık

Detaylı

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi Bil101 Bilgisayar Yazılımı I Bilgisayar Yüksek Mühendisi Kullanıcıdan aldığı veri ya da bilgilerle kullanıcının isteği doğrultusunda işlem ve karşılaştırmalar yapabilen, veri ya da bilgileri sabit disk,

Detaylı

Bilgisayar Temel kavramlar - Donanım -Yazılım Ufuk ÇAKIOĞLU

Bilgisayar Temel kavramlar - Donanım -Yazılım Ufuk ÇAKIOĞLU Bilgisayar Temel kavramlar - Donanım -Yazılım Ufuk ÇAKIOĞLU Bilgisayar Nedir? Bilgisayar; Kullanıcıdan aldığı bilgilerle mantıksal ve aritmetiksel işlemler yapabilen, Yaptığı işlemleri saklayabilen, Sakladığı

Detaylı

Doğu Akdeniz Üniversitesi Bilgisayar ve Teknoloji Yüksek Okulu Bilgi teknolojileri ve Programcılığı Bölümü DERS 1 - BİLGİSAYAR VE ÇEVRE ÜNİTELERİ

Doğu Akdeniz Üniversitesi Bilgisayar ve Teknoloji Yüksek Okulu Bilgi teknolojileri ve Programcılığı Bölümü DERS 1 - BİLGİSAYAR VE ÇEVRE ÜNİTELERİ Doğu Akdeniz Üniversitesi Bilgisayar ve Teknoloji Yüksek Okulu Bilgi teknolojileri ve Programcılığı Bölümü DERS 1 - BİLGİSAYAR VE ÇEVRE ÜNİTELERİ Bilgisayar, kendine önceden yüklenmiş program gereğince

Detaylı

1 DERS İZLENCESİ 2 BİLGİSAYARA GİRİŞ Bilgisayar nedir? Bilgisayarın tarihçesi Bilgisayarın kullanıldığı alanlar Bilgisayarın kullanılmasında dikkat

1 DERS İZLENCESİ 2 BİLGİSAYARA GİRİŞ Bilgisayar nedir? Bilgisayarın tarihçesi Bilgisayarın kullanıldığı alanlar Bilgisayarın kullanılmasında dikkat 1 DERS İZLENCESİ 2 BİLGİSAYARA GİRİŞ Bilgisayar nedir? Bilgisayarın tarihçesi Bilgisayarın kullanıldığı alanlar Bilgisayarın kullanılmasında dikkat edilmesi gereken alanlar Bilgisayarların sınıflandırılması

Detaylı

Öğr.Gör. Mehmet Can HANAYLI

Öğr.Gör. Mehmet Can HANAYLI 1 DERS İZLENCESİ 2 SİSTEM MİMARİLERİNE GİRİŞ Bilgisayar nedir? Bilgisayarın tarihçesi Bilgisayarın kullanıldığı alanlar Bilgisayarın kullanılmasında dikkat edilmesi gereken alanlar Bilgisayarların sınıflandırılması

Detaylı

ENF 100 Temel Bilgi Teknolojileri Kullanımı Ders Notları 2. Hafta. Öğr. Gör. Dr. Barış Doğru

ENF 100 Temel Bilgi Teknolojileri Kullanımı Ders Notları 2. Hafta. Öğr. Gör. Dr. Barış Doğru ENF 100 Temel Bilgi Teknolojileri Kullanımı Ders Notları 2. Hafta Öğr. Gör. Dr. Barış Doğru 1 Konular 1. Bilgisayar Nedir? 2. Bilgisayarın Tarihçesi 3. Günümüz Bilgi Teknolojisi 4. Bilgisayarların Sınıflandırılması

Detaylı

BİLGİSAYAR ORGANİZASYONU

BİLGİSAYAR ORGANİZASYONU BİLGİSAYAR ORGANİZASYONU Donanım Bilgisayarın fiziksel bölümü Monitor, klavye, fare Entegreler, kartlar Kablolar Yazılım: Bilgisayarın mantıksal bölümü Programlar: Bilgisayarın gerçekleştireceği komutlar

Detaylı

Düşünelim? Günlük hayatta bilgisayar hangi alanlarda kullanılmaktadır? Bilgisayarın farklı tip ve özellikte olmasının sebepleri neler olabilir?

Düşünelim? Günlük hayatta bilgisayar hangi alanlarda kullanılmaktadır? Bilgisayarın farklı tip ve özellikte olmasının sebepleri neler olabilir? Başlangıç Düşünelim? Günlük hayatta bilgisayar hangi alanlarda kullanılmaktadır? Bilgisayarın farklı tip ve özellikte olmasının sebepleri neler olabilir? Bilgisayar Bilgisayar, kendisine verilen bilgiler

Detaylı

Optik Sürücüler CD/CD-ROM DVD HD-DVD/BLU-RAY DİSK Disket Monitör LCD LED Projeksiyon Klavye Mouse Mikrofon Tarayıcı

Optik Sürücüler CD/CD-ROM DVD HD-DVD/BLU-RAY DİSK Disket Monitör LCD LED Projeksiyon Klavye Mouse Mikrofon Tarayıcı 1 Donanım Bileşenleri ve Çalışma Prensipleri Anakart (Mainboard) İşlemci (Cpu) Ekran Kartı Bellekler Ram Rom Ses Kartı Ağ Kartı TV Kartı Sabit Diskler HDD HHD SSD Optik Sürücüler CD/CD-ROM DVD HD-DVD/BLU-RAY

Detaylı

TEMEL BİLGİ TEKNOLOJİSİ KULLANIMI. Enformatik Bölümü

TEMEL BİLGİ TEKNOLOJİSİ KULLANIMI. Enformatik Bölümü TEMEL BİLGİ TEKNOLOJİSİ KULLANIMI Enformatik Bölümü - Bilgisayarın tanımı ve tarihçesi Bilgisayar, belirli komutlara göre veri işleyen ve depolayan bir makinedir. İlk bilgisayar 1950 yılında yapılmıştır.

Detaylı

Temel Bilgisayar Bilgisi

Temel Bilgisayar Bilgisi Temel Bilgisayar Bilgisi BİL131 - Bilişim Teknolojileri ve Programlama Hakan Ezgi Kızılöz Bilgisayarların Temel Özellikleri Bilgisayarlar verileri alıp saklayabilen, mantıksal ya da aritmetik olarak işleyen

Detaylı

Bilgisayar Donanımı Dersi BİLGİSAYARIN MİMARI YAPISI VE ÇALIŞMA MANTIĞI

Bilgisayar Donanımı Dersi BİLGİSAYARIN MİMARI YAPISI VE ÇALIŞMA MANTIĞI Bilgisayar Donanımı Dersi BİLGİSAYARIN MİMARI YAPISI VE ÇALIŞMA MANTIĞI Bilgisayarın Mimarı Yapısı ve Çalışma Mantığı Bilgisayarı yapısal olarak; bilgilerin girilmesi, girilen bilgilerin belirtilen durumlara

Detaylı

Bilgisayarların Gelişimi

Bilgisayarların Gelişimi Bilgisayarların Gelişimi Joseph Jacquard (1810) Bilgisayar tabanlı halı dokuma makinesi Delikli Kart (Punch Card) Algoritma ve Programlama 6 Bilgisayar Sistemi 1. Donanım fiziksel aygıtlardır. 2. Yazılım

Detaylı

Yazılım Çeşitleri. Uygulama Yazılımları. İşletim Sistemleri. Donanım

Yazılım Çeşitleri. Uygulama Yazılımları. İşletim Sistemleri. Donanım Yazılım Yazılım Bilgisayarlar üretildikleri anda içlerinde herhangi bir bilgi barındırmadıkları için bir işlevleri yoktur. Bilgisayarlara belirli yazılımlar yüklenerek işlem yapabilecek hale getirilirler.

Detaylı

A.Ü. GAMA MYO. Elektrik ve Enerji Bölümü ALGORİTMA VE PROGRAMLAMA 1.HAFTA

A.Ü. GAMA MYO. Elektrik ve Enerji Bölümü ALGORİTMA VE PROGRAMLAMA 1.HAFTA A.Ü. GAMA MYO. Elektrik ve Enerji Bölümü ALGORİTMA VE PROGRAMLAMA 1.HAFTA 1 İçindekiler Bilgisayarların Çalışma Prensibi Sayı Sistemleri Programlama Dilleri 2 BİLGİSAYARLARIN ÇALIŞMA PRENSİBİ Bilgisayar

Detaylı

BİLGİ TEKNOLOJİLERİ SMO103

BİLGİ TEKNOLOJİLERİ SMO103 BİLGİ TEKNOLOJİLERİ SMO103 2. HAFTA BİLGİSAYAR SİSTEMİ, BİLGİSAYARI OLUŞTURAN BİRİMLER VE ÇALIŞMA PRENSİPLERİ ANAKART, İŞLEMCİ VE BELLEKLER SABİT DİSKLER, EKRAN KARTLARI MONİTÖRLER VE DİĞER DONANIM BİRİMLERİ

Detaylı

Donanım Nedir? Bir bilgisayar sisteminde bulunan fiziksel aygıtların tümü

Donanım Nedir? Bir bilgisayar sisteminde bulunan fiziksel aygıtların tümü BİLGİSAYAR DONANIMI Donanım Nedir? Bir bilgisayar sisteminde bulunan fiziksel aygıtların tümü Donanım Nedir? Giriş aygıtları İşlemci Depolama aygıtları Çıkış aygıtları Çevresel aygıtlar Giriş Aygıtları

Detaylı

3.3. İki Tabanlı Sayı Sisteminde Dört İşlem

3.3. İki Tabanlı Sayı Sisteminde Dört İşlem 3.3. İki Tabanlı Sayı Sisteminde Dört İşlem A + B = 2 0 2 1 (Elde) A * B = Sonuç A B = 2 0 2 1 (Borç) A / B = Sonuç 0 + 0 = 0 0 0 * 0 = 0 0 0 = 0 0 0 / 0 = 0 0 + 1 = 1 0 0 * 1 = 0 0 1 = 1 1 0 / 1 = 0 1

Detaylı

Temel Kavramlar-2. Aşağıda depolama aygıtlarının kapasitelerini inceleyebilirsiniz.

Temel Kavramlar-2. Aşağıda depolama aygıtlarının kapasitelerini inceleyebilirsiniz. Temel Kavramlar-2 Byte = 8 Bit in bir araya gelmesiyle oluşan bellektir. Bilgisayarın tanıdığı harf rakam ve özel karakterlerden her biri 1 byte lık yer kaplar. Yani her bir harfin 1 veya 0 dan oluşan

Detaylı

Ünite-2 Bilgisayar Organizasyonu. www.cengizcetin.net

Ünite-2 Bilgisayar Organizasyonu. www.cengizcetin.net Ünite-2 Bilgisayar Organizasyonu Bilgisayar Nedir? Belirli bir sonuç üretmek amacıyla; mantıksal kıyaslamalardan sonuç çıkarabilen, büyük miktarlarda bilgiyi depolayabilen ve gerektiğinde bu bilgileri

Detaylı

BİLİŞİM TEKNOLOJİLERİ VE YAZILIM

BİLİŞİM TEKNOLOJİLERİ VE YAZILIM Bilgisayar : Kullanıcıdan aldığı bilgiyi işleyip, tekrar kullanıcaya sunan teknolojik alete denir.üç çeşit bilgisayar vardır.bunlar ; Masaüstü,Dizüstü,Tablet. Bilgisayarın Özellikleri : 1. Hızlıdır. 2.Hatasızdır.

Detaylı

T.C. KOCAELİ ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ BİLİŞİM SİSTEMLERİ MÜHENDİSLİĞİ

T.C. KOCAELİ ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ BİLİŞİM SİSTEMLERİ MÜHENDİSLİĞİ T.C. KOCAELİ ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ BİLİŞİM SİSTEMLERİ MÜHENDİSLİĞİ Yrd. Doç. Dr. Mustafa Hikmet Bilgehan UÇAR 1 MANTIK DEVRELERİ Yrd. Doç. Dr. Mustafa Hikmet Bilgehan UÇAR Digital Electronics

Detaylı

2. Sayı Sistemleri. En küçük bellek birimi sadece 0 ve 1 değerlerini alabilen ikili sayı sisteminde bir basamağa denk gelen Bit tir.

2. Sayı Sistemleri. En küçük bellek birimi sadece 0 ve 1 değerlerini alabilen ikili sayı sisteminde bir basamağa denk gelen Bit tir. 2. Sayı Sistemleri Bilgisayar elektronik bir cihaz olduğu için elektrik akımının geçirilmesi (1) yada geçirilmemesi (0) durumlarını işleyebilir. Bu nedenle ikili sayı sistemini temel alarak veri işler

Detaylı

Günümüz bilgi toplumunda bilgisayar, her alanda kendine yer edinmiş ve insana, bir çok işlemde yardımcı olarak büyük kolaylık sağlamaktadır.

Günümüz bilgi toplumunda bilgisayar, her alanda kendine yer edinmiş ve insana, bir çok işlemde yardımcı olarak büyük kolaylık sağlamaktadır. I. GİRİŞ Günümüz bilgi toplumunda bilgisayar, her alanda kendine yer edinmiş ve insana, bir çok işlemde yardımcı olarak büyük kolaylık sağlamaktadır. İnsanların elle yaptığı ve yapmakta olduğu bir çok

Detaylı

DONANIM. 1-Sitem birimi (kasa ) ve iç donanım bileşenleri 2-Çevre birimleri ve tanımlamaları 3-Giriş ve çıkış donanım birimleri

DONANIM. 1-Sitem birimi (kasa ) ve iç donanım bileşenleri 2-Çevre birimleri ve tanımlamaları 3-Giriş ve çıkış donanım birimleri DONANIM 1-Sitem birimi (kasa ) ve iç donanım bileşenleri 2-Çevre birimleri ve tanımlamaları 3-Giriş ve çıkış donanım birimleri DONANIM SİSTEM BİRİMİ ÇEVREBİRİMLERİ Ana Kart (Mainboard) Monitör İşlemci

Detaylı

DONANIM VE YAZILIM. Bilişim Teknolojileri ve Yazılım Dersi

DONANIM VE YAZILIM. Bilişim Teknolojileri ve Yazılım Dersi DONANIM VE YAZILIM Bilişim Teknolojileri ve Yazılım Dersi Bilgisayar Kendisine verdiğimiz bilgileri istediğimizde saklayabilen, istediğimizde geri verebilen cihaza denir. Donanım, Yazılım Bilgisayar Donanım

Detaylı

1. HAFTA KBT104 BİLGİSAYAR DONANIMI. KBUZEM Karabük Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi

1. HAFTA KBT104 BİLGİSAYAR DONANIMI. KBUZEM Karabük Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi 1. HAFTA KBT104 BİLGİSAYAR DONANIMI Karabük Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi 2 Konu Başlıkları 1. Bilgisayara Giriş Bilgisayar Nedir? Bilgisayar ile Neler Yapabiliriz? Yeni Bilgisayar

Detaylı

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay. PROGRAMLAMAYA GİRİŞ Öğr. Gör. Ayhan KOÇ Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay., 2007 Algoritma ve Programlamaya Giriş, Ebubekir YAŞAR, Murathan Yay., 2011

Detaylı

Bilişim Teknolojileri

Bilişim Teknolojileri Bilişim Teknolojileri Arş.Görev.Semih ÇALIŞKAN 1.Hafta İÇİNDEKİLER Bilgisayar nedir? Donanım nedir? Yazılım nedir? Giriş nedir? İşlem nedir? Bellek nedir? Çıkış nedir? BİLGİSAYAR NEDİR? Bilgisayar, kullanıcıdan

Detaylı

Giriş Çıkış Birimleri:

Giriş Çıkış Birimleri: DONANIM VE YAZILIM Giriş Çıkış Birimleri: Bilgisayara dış ortamdan bilgi girilmesini sağlayan ve girilen bu bilgilerin bilgisayar tarafından işlendikten sonra, tekrar dış ortama çıkarılması için kullanılan

Detaylı

TEMEL BĐLGĐ TEKNOLOJĐLERĐ KULLANIMI BÜLENT TURAN

TEMEL BĐLGĐ TEKNOLOJĐLERĐ KULLANIMI BÜLENT TURAN 1 Bilgi Teknolojileri nedir? 2 TEMEL BĐLGĐ TEKNOLOJĐLERĐ KULLANIMI BÜLENT TURAN Bilgi ve iletişim teknolojileri bilginin meydana getirilmesi, yönetilmesi, saklanması, yayılması için kullanılan çeşitli

Detaylı

Merkezi İşlem. Birimi

Merkezi İşlem. Birimi VERİ: Kullanıcı veya bilgisayar tarafından sağlanırlar. Sayılar, harfler, sözcükler, ses sinyalleri ve komutlardır.. Veriler bilgisayarın giriş birimleri tarafından toplanırlar. Giriş İşlem Çıkış Önbellek

Detaylı

BİLGİ TEKNOLOJİSİNİN TEMEL KAVRAMLARI. 1-Bilgisayar, donanım ve yazılım kavramları 2-Bilgisayar çeşitleri 3-Bilgisayarlar arsındaki farklılıklar

BİLGİ TEKNOLOJİSİNİN TEMEL KAVRAMLARI. 1-Bilgisayar, donanım ve yazılım kavramları 2-Bilgisayar çeşitleri 3-Bilgisayarlar arsındaki farklılıklar BİLGİ TEKNOLOJİSİNİN TEMEL KAVRAMLARI 1-Bilgisayar, donanım ve yazılım kavramları 2-Bilgisayar çeşitleri 3-Bilgisayarlar arsındaki farklılıklar Yılmaz DEMİR BİLİŞİM TEKNOLOJİLERİ ÖĞRETMENİ Ünitelerimiz

Detaylı

Bilgi ve iletişim teknolojileri

Bilgi ve iletişim teknolojileri Bilgi ve iletişim teknolojileri 1 Bilgisayar, Hesap makinesi gibi araçlara neden ihtiyaç duyulmuştur? Zaman tasarrufu Bilginin depolanması ihtiyacı Hatasız işlem yapma isteği İletişim ihtiyacı 30\2 Bilişim

Detaylı

Algoritma ve Akış Diyagramları

Algoritma ve Akış Diyagramları Algoritma ve Akış Diyagramları Bir problemin çözümüne ulaşabilmek için izlenecek ardışık mantık ve işlem dizisine ALGORİTMA, algoritmanın çizimsel gösterimine ise AKIŞ DİYAGRAMI adı verilir 1 Akış diyagramları

Detaylı

İŞLEM KAYIT. Bilgisayar temel olarak DONANIM ve YAZILIM olmak üzere 2 yapıda ele alınmaktadır.

İŞLEM KAYIT. Bilgisayar temel olarak DONANIM ve YAZILIM olmak üzere 2 yapıda ele alınmaktadır. Bilgisayarın Tanımı Bilgisayar; aldığı verileri (bilgileri), önceden yüklenmiş belirli programlara göre, mantıksal ve aritmetiksel işlemleri kullanarak işleyen, bilginin sonucunu çıkartan ve bu verileri

Detaylı

TEMEL BİLGİ TEKNOLOJİLERİ KULLANIMI. Bilgisayar I ve Bilgi İletişim Teknolojileri Dersi Öğr.Gör. Günay TEMUR

TEMEL BİLGİ TEKNOLOJİLERİ KULLANIMI. Bilgisayar I ve Bilgi İletişim Teknolojileri Dersi Öğr.Gör. Günay TEMUR TEMEL BİLGİ TEKNOLOJİLERİ KULLANIMI Bilgisayar I ve Bilgi İletişim Teknolojileri Dersi Öğr.Gör. Günay TEMUR BİLGİSAYARIN TANIMI VE TARİHÇESİ Bilgisayar, kullanıcıdan aldığı verilerle mantıksal ve aritmetiksel

Detaylı

PORTLAR Bilgisayar: VERİ:

PORTLAR Bilgisayar: VERİ: PORTLAR 1.FARE 2. YAZICI ÇİZİCİ TARAYICI 3.AĞ-İNTERNET 4.SES GİRİŞİ 5.SES ÇIKIŞI(KULAKLIK) 6.MİKROFON 7.USB-FLASH 8.USB-FLASH 9.MONİTÖR 10.PROJEKSİYON 11.KLAVYE BİLGİSAYAR NEDİR? Bilgisayar: Kullanıcıdan

Detaylı

İşletim Sistemi. BTEP205 - İşletim Sistemleri

İşletim Sistemi. BTEP205 - İşletim Sistemleri İşletim Sistemi 2 İşletim sistemi (Operating System-OS), bilgisayar kullanıcısı ile bilgisayarı oluşturan donanım arasındaki iletişimi sağlayan ve uygulama programlarını çalıştırmaktan sorumlu olan sistem

Detaylı

BİLGİSAYARLA İLGİLİ TEMEL KAVRAMLAR BİLGİSAYARLARIN İÇ DONANIMI, ANA BİRİMLERİ VE ÇEVRE BİRİMLERİ

BİLGİSAYARLA İLGİLİ TEMEL KAVRAMLAR BİLGİSAYARLARIN İÇ DONANIMI, ANA BİRİMLERİ VE ÇEVRE BİRİMLERİ BİLGİSAYARLA İLGİLİ TEMEL KAVRAMLAR BİLGİSAYARLARIN İÇ DONANIMI, ANA BİRİMLERİ VE ÇEVRE BİRİMLERİ BİLGİSAYAR NEDİR? Verileri işleyen,veriler üzerinde aritmetiksel ve mantıksal işlemler yapabilen,elde ettiği

Detaylı

2. Sayı Sistemleri. En küçük bellek birimi sadece 0 ve 1 değerlerini alabilen ikili sayı sisteminde bir basamağa denk gelen Bit tir.

2. Sayı Sistemleri. En küçük bellek birimi sadece 0 ve 1 değerlerini alabilen ikili sayı sisteminde bir basamağa denk gelen Bit tir. 2. Sayı Sistemleri Bilgisayar elektronik bir cihaz olduğu için elektrik akımının geçirilmesi (1) yada geçirilmemesi (0) durumlarını işleyebilir. Bu nedenle ikili sayı sistemini temel alarak veri işler

Detaylı

T E M E L K AV R A M L A R. Öğr.Gör. Günay TEMÜR / Teknoloji F. / Bilgisayar Müh.

T E M E L K AV R A M L A R. Öğr.Gör. Günay TEMÜR / Teknoloji F. / Bilgisayar Müh. B İ L G İ S AY A R M Ü H E N D İ S L İ Ğ İ N E G İ R İ Ş T E M E L K AV R A M L A R BAŞLAYALIM BİLGİSAYAR (COMPUTER) NEDİR? Bilgisayar, kullanıcıdan aldığı verilerle aritmetiksel ve mantıksal işlemler

Detaylı

SAYI VE KODLAMA SİSTEMLERİ. Teknoloji Fakültesi/Bilgisayar Mühendisliği

SAYI VE KODLAMA SİSTEMLERİ. Teknoloji Fakültesi/Bilgisayar Mühendisliği SAYI VE KODLAMA SİSTEMLERİ Teknoloji Fakültesi/Bilgisayar Mühendisliği Neler Var? Sayısal Kodlar BCD Kodu (Binary Coded Decimal Code) - 8421 Kodu Gray Kodu Artı 3 (Excess 3) Kodu 5 de 2 Kodu Eşitlik (Parity)

Detaylı

Yrd.Doç.Dr. Celal Murat KANDEMİR. Kodlama (Coding) : Bir nesneler kümesinin bir dizgi (bit dizisi) kümesi ile temsil edilmesidir.

Yrd.Doç.Dr. Celal Murat KANDEMİR. Kodlama (Coding) : Bir nesneler kümesinin bir dizgi (bit dizisi) kümesi ile temsil edilmesidir. Bilgisayar Mimarisi İkilik Kodlama ve Mantık Devreleri Yrd.Doç.Dr. Celal Murat KANDEMİR ESOGÜ Eğitim Fakültesi - BÖTE twitter.com/cmkandemir Kodlama Kodlama (Coding) : Bir nesneler kümesinin bir dizgi

Detaylı

Bilişim Teknolojileri Temelleri 2011. Dijital Dünyada Yaşamak

Bilişim Teknolojileri Temelleri 2011. Dijital Dünyada Yaşamak Bilişim Teknolojileri Temelleri 2011 Dijital Dünyada Yaşamak Bilgisayar nedir? Bilgisayar, kullanıcı tarafından girilen bilgileri(veri) işleyen, depolayan istendiğinde girilen bilgileri ve sonuçlarını

Detaylı

GAZİ ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BM-404 BİLGİ GÜVENLİĞİ LABORATUVARI UYGULAMA FÖYÜ

GAZİ ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BM-404 BİLGİ GÜVENLİĞİ LABORATUVARI UYGULAMA FÖYÜ HAFTA: 4 AMAÇLAR: Bilgisayar Donanım Parçaları BİLGİSAYAR KASASI İçine yerleştirilecek olan bilgisayar bileşenlerini dışarıdan gelebilecek fiziksel darbelere karşı korur, elektriksel olarak yalıtır, sahip

Detaylı

SAYISAL ELEKTRONİK DERS NOTLARI:

SAYISAL ELEKTRONİK DERS NOTLARI: SAYISAL ELEKTRONİK DERS NOTLARI: SAYISAL (DİJİTAL) ELEKTRONİK Günümüz Elektroniği Analog ve Sayısal olmak üzere iki temel türde incelenebilir. Analog büyüklükler sonsuz sayıda değeri içermesine rağmen

Detaylı

2. SAYI SİSTEMLERİ. M.İLKUÇAR - [email protected]

2. SAYI SİSTEMLERİ. M.İLKUÇAR - imuammer@yahoo.com Sayı Sistemleri İşlemci elektrik sinyalleri ile çalışır, bu elektrik sinyallerini 1/0 şeklinde yorumlayarak işlemcide olup bitenler anlaşılabilir hale getirilir. Böylece gerçek hayattaki bilgileri 1/0

Detaylı

BLM1011 Bilgisayar Bilimlerine Giriş I

BLM1011 Bilgisayar Bilimlerine Giriş I BLM1011 Bilgisayar Bilimlerine Giriş I by Z. Cihan TAYŞİ İçerik Sayı sistemleri Binary, Octal, Decimal, Hexadecimal Operatörler Aritmetik operatörler Mantıksal (Logic) operatörler Bitwise operatörler Yıldız

Detaylı

KONU 1 BİLGİSAYAR VE ÇEVRE ÜNİTELERİ

KONU 1 BİLGİSAYAR VE ÇEVRE ÜNİTELERİ Doğu Akdeniz Üniversitesi Bilgisayar ve Teknoloji Yüksek Okulu Elektrik ve Elektronik Teknolojisi KONU 1 BİLGİSAYAR VE ÇEVRE ÜNİTELERİ Bilgisayar, kendine önceden yüklenmiş program gereğince çeşitli bilgileri

Detaylı

BİLGİ TEKNOLOJİLERİ VE UYGULAMALARI

BİLGİ TEKNOLOJİLERİ VE UYGULAMALARI İÇERİK 2 BİLGİ TEKNOLOJİLERİ VE UYGULAMALARI ÖĞR. GÖR. HASAN ALİ AKYÜREK Ders izlencesi Bilgisayara giriş Bilgisayar nedir? Bilgisayarın tarihçesi Bilgisayarların sınıflandırılması Bilgisayar nasıl çalışır?

Detaylı

BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ 6. SINIF DERS NOTLARI

BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ 6. SINIF DERS NOTLARI BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ 6. SINIF DERS NOTLARI Hazırlayan: Fevzi Başal Bilgi Nedir? Gözlem, deney, araştırma ya da deneyim yoluyla elde edilen kazanımlardır. Bilgi tüm bu etkinliklerin sonucunda

Detaylı

1. PS/2 klavye fare 2. Optik S/PDIF çıkışı 3. HDMI Giriş 4. USB 3.0 Port 5. USB 2.0 Port 6. 6 kanal ses giriş/çıkış 7. VGA giriş 8.

1. PS/2 klavye fare 2. Optik S/PDIF çıkışı 3. HDMI Giriş 4. USB 3.0 Port 5. USB 2.0 Port 6. 6 kanal ses giriş/çıkış 7. VGA giriş 8. İşlemci: İşlemci,kullanıcıdan bilgi almak, komutları işlemek ve sonuçları kullanıcıya sunmak gibi pek çok karmaşık işlemi yerine getirir. Ayrıca donanımların çalışmasını kontrol eder. İşlemci tüm sistemin

Detaylı

İşletim Sistemlerine Giriş

İşletim Sistemlerine Giriş İşletim Sistemlerine Giriş İşletim Sistemleri ve Donanım İşletim Sistemlerine Giriş/ Ders01 1 İşletim Sistemi? Yazılım olmadan bir bilgisayar METAL yığınıdır. Yazılım bilgiyi saklayabilir, işleyebilir

Detaylı

PROGRAMLAMA TEMELLERİ

PROGRAMLAMA TEMELLERİ PROGRAMLAMA TEMELLERİ 2.HAFTA Yazılım Yazılım, elektronik aygıtların belirli bir işi yapmasını sağlayan programların tümüne verilen isimdir. Bir başka deyişle var olan bir problemi çözmek amacıyla bilgisayar

Detaylı

Sayı sistemleri-hesaplamalar. Sakarya Üniversitesi

Sayı sistemleri-hesaplamalar. Sakarya Üniversitesi Sayı sistemleri-hesaplamalar Sakarya Üniversitesi Sayı Sistemleri - Hesaplamalar Tüm sayı sistemlerinde sayılarda işaret kullanılabilir. Yani pozitif ve negatif sayılarla hesaplama yapılabilir. Bu gerçek

Detaylı

Bilişim Teknolojilerine Giriş

Bilişim Teknolojilerine Giriş Bilişim Teknolojilerine Giriş Bilginin toplanması, işlenmesi, saklanması ve iletilmesini sağlayan teknolojilerin bütününe bilişim teknolojileri denir. Bilişim Teknolojisi Girilen verileri saklayan, işleyen,

Detaylı

Fatih University- Faculty of Engineering- Electric and Electronic Dept.

Fatih University- Faculty of Engineering- Electric and Electronic Dept. SAYISAL DEVRE TASARIMI EEM122 Ref. Morris MANO & Michael D. CILETTI SAYISAL TASARIM 4. Baskı Fatih University- Faculty of Engineering- Electric and Electronic Dept. SAYISAL DEVRE NEDİR? Mühendisler, elektronik

Detaylı

ÇALIŞMA SORULARI CEVAPLAR. 1)Aşağıdakilerden hangisinde bilgisayarın kaç ana bölüme ayrıldığı ve adları doğru bir şekilde verilmiştir?

ÇALIŞMA SORULARI CEVAPLAR. 1)Aşağıdakilerden hangisinde bilgisayarın kaç ana bölüme ayrıldığı ve adları doğru bir şekilde verilmiştir? ÇALIŞMA SORULARI CEVAPLAR 1)Aşağıdakilerden hangisinde bilgisayarın kaç ana bölüme ayrıldığı ve adları doğru bir şekilde verilmiştir? A )3 bölüme ayrılır. Yazılım, donanım ve windows. B)2 bölüme ayrılır.

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java Kodlarına Yorum Satırı Eklemek Java Paket Kavramı Java Kütüphane Kavramı Konsoldan Veri Çıkışı ve JOPtionPane Kütüphanesi JOptionPane Kütüphanesi Kullanarak

Detaylı

Sayı sistemleri iki ana gruba ayrılır. 1. Sabit Noktalı Sayı Sistemleri. 2. Kayan Noktalı Sayı Sistemleri 2. SAYI SĐSTEMLERĐ VE KODLAR

Sayı sistemleri iki ana gruba ayrılır. 1. Sabit Noktalı Sayı Sistemleri. 2. Kayan Noktalı Sayı Sistemleri 2. SAYI SĐSTEMLERĐ VE KODLAR .1. Sabit Noktalı Sayı Sistemleri. SAYI SĐSTEMLERĐ VE KODLAR Sayı sistemleri iki ana gruba ayrılır. 1. Sabit Noktalı Sayı Sistemleri. Kayan Noktalı Sayı Sistemleri.1.1. Sayı Sistemi Günlük yaşantımızda

Detaylı

Temel Bilgi Teknolojileri -1

Temel Bilgi Teknolojileri -1 Temel Bilgi Teknolojileri -1 Dr. Öğr. Üyesi Aslı Eyecioğlu Özmutlu [email protected] 1 Konu Başlıkları Donanım Bileşenleri Harici Donanım Dahili Donanım 2 Donanım Bileşenleri Bilgisayarın fiziksel

Detaylı

BİLGİSAYAR MİMARİSİ. İkili Kodlama ve Mantık Devreleri. Özer Çelik Matematik-Bilgisayar Bölümü

BİLGİSAYAR MİMARİSİ. İkili Kodlama ve Mantık Devreleri. Özer Çelik Matematik-Bilgisayar Bölümü BİLGİSAYAR MİMARİSİ İkili Kodlama ve Mantık Devreleri Özer Çelik Matematik-Bilgisayar Bölümü Kodlama Kodlama, iki küme elemanları arasında karşılıklığı kesin olarak belirtilen kurallar bütünüdür diye tanımlanabilir.

Detaylı

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say İÇİNDEKİLER 1. Bilgisayarın Yapısı Ve Programlama Dilleri Giriş 1 Bilgisayar ve Programlamanın Kısa Bir Tarihçesi 2 Donanım ve Yazılım Kavramları 3 Bilgisayarın Donanımsal yapısı 4 Giriş Birimi (Input

Detaylı

Dersin Konusu ve Amaçları: Ders P lanı: Bölüm 1: Bilgi Teknolojilerinde Temel Kavramlar

Dersin Konusu ve Amaçları: Ders P lanı: Bölüm 1: Bilgi Teknolojilerinde Temel Kavramlar Bilgi Teknolojileri ve Uygulamalarına Giriş Dersin Konusu ve Amaçları: Bu dersin amacı daha önce bilgisayar ve bilgi teknolojileri alanında herhangi bir bilgi ve/veya deneyime sahip olmayan öğrenciye bilgi

Detaylı

Hazırlayan: Cihan Aygül BT Rehber ÖĞRETMENİ

Hazırlayan: Cihan Aygül BT Rehber ÖĞRETMENİ Hazırlayan: Cihan Aygül BT Rehber ÖĞRETMENİ 1 Düşünelim? * Bilişim teknolojisi günlük hayatta hangi alanlarda kullanılabilir? * Günlük hayatta gözlemlediğiniz bilgisayar çeşitlerini söyleyiniz. 2 Bilgisayar

Detaylı

DONANIM VE YAZILIM. Ahmet SOYARSLAN biltek.info

DONANIM VE YAZILIM. Ahmet SOYARSLAN biltek.info DONANIM VE YAZILIM Ahmet SOYARSLAN biltek.info Donanım Nedir? Bilgisayarın gözle görülebilen ve elle tutulabilen kısımlarına donanım denir. Örneğin, ekran, klavye, sabit disk, fare, yazıcı gibi.. Bilgisayar

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ı

Sayıtlama Dizgeleri. (a n a n-1 a n1 a n0. b 1 b 2 b m )r. simgesi şu sayıyı temsil eder.

Sayıtlama Dizgeleri. (a n a n-1 a n1 a n0. b 1 b 2 b m )r. simgesi şu sayıyı temsil eder. 1 Sayıtlama Dizgeleri Hint-Arap Sayıtlama Dizgesi Sayıları göstermek (temsil etmek) için tarih boyunca türlü simgeler kullanılmıştır. Sümerlerin, Mısırlıların, Romalıların ve diğer uygarlıkların kullandıkları

Detaylı

Ünite-3 Bilgisayar Yazılımı. www.cengizcetin.net

Ünite-3 Bilgisayar Yazılımı. www.cengizcetin.net Ünite-3 Bilgisayar Yazılımı Yazılım Kavramı Bilgisayarın belirli bir işi gerçekleştirebilmesi için kullanıcı tarafından her adımda ne yapacağı tarif edilmiş olmalıdır. Yani kullanıcı bilgisayara uygun

Detaylı

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ Ders 10 LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ LINUX de Programlama LINUX işletim sistemi zengin bir programlama ortamı sağlar. Kullanıcılara sistemi geliştirme olanağı sağlar.

Detaylı

SAYISAL ELEKTRONİK. Ege Ü. Ege MYO Mekatronik Programı

SAYISAL ELEKTRONİK. Ege Ü. Ege MYO Mekatronik Programı SAYISAL ELEKTRONİK Ege Ü. Ege MYO Mekatronik Programı BÖLÜM 2 Sayı Sistemleri İkilik, Onaltılık ve İKO Sayılar İkilik Sayı Sistemi 3 Çoğu dijital sistemler 8, 16, 32, ve 64 bit gibi, 2 nin çift kuvvetleri

Detaylı

Temel Bilgisayar Kullanımı ve Internet. Ünite 2: Bilgisayar Organizasyonu. Giriş

Temel Bilgisayar Kullanımı ve Internet. Ünite 2: Bilgisayar Organizasyonu. Giriş Temel Bilgisayar Kullanımı ve Internet Ünite 2: Bilgisayar rganizasyonu 2/22 Giriş Bu ünitede sidi (CD), rem (RAM), sürücü, seri bağlantı gibi bilgisayarın fiziksel parçalarına ilişkin kavramların ne anlama

Detaylı

BLM221 MANTIK DEVRELERİ

BLM221 MANTIK DEVRELERİ 1. HAFTA BLM221 MANTIK DEVRELERİ Prof. Dr. Mehmet Akbaba [email protected] KBUZEM Karabük Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi Temel Kavramlar Sayı Sistemlerinin İncelenmesi

Detaylı

WINDOWS 7. Tekno-K@mp Eğitim ID 98 2/4 (Normal Seviye Kullanıcı) Tekno-K@mp Konu ID 34223. Windows 7 Hakkında Genel Bilgi Ek Bilgi -

WINDOWS 7. Tekno-K@mp Eğitim ID 98 2/4 (Normal Seviye Kullanıcı) Tekno-K@mp Konu ID 34223. Windows 7 Hakkında Genel Bilgi Ek Bilgi - WINDOWS 7 Tekno-K@mp Eğitim ID 98 Seviye 2/4 (Normal Seviye Kullanıcı) Tekno-K@mp Konu ID 34223 Ana Kategori İşletim Sistemleri Alt Kategori Giriş Konu Windows 7 Hakkında Genel Bilgi Ek Bilgi - GENEL BİLGİSAYAR

Detaylı

MAK 1005 Bilgisayar Programlamaya Giriş. BİLGİSAYARA GİRİŞ ve ALGORİTMA KAVRAMI

MAK 1005 Bilgisayar Programlamaya Giriş. BİLGİSAYARA GİRİŞ ve ALGORİTMA KAVRAMI MAK 1005 Bilgisayar Programlamaya Giriş Uludağ Üniversitesi, Mühendislik Fakültesi Makine Mühendisliği Bölümü BİLGİSAYARA GİRİŞ ve ALGORİTMA KAVRAMI Prof. Dr. Necmettin Kaya 1 KONULAR 1. Bilgisayara giriş,

Detaylı

FORMÜLLER VE FONKSİYONLAR

FORMÜLLER VE FONKSİYONLAR C FORMÜLLER VE FONKSİYONLAR Konuya Hazırlık 1. Excel de formül kullanmanın faydalarını açıklayınız. Formüller, bir sayfadaki verileri kullanarak işlem yapan denklemlerdir. Bir formülde, aynı sayfadaki

Detaylı

Algoritma ve Akış Diyagramları

Algoritma ve Akış Diyagramları Algoritma ve Akış Diyagramları Bir problemin çözümüne ulaşabilmek için izlenecek ardışık mantık ve işlem dizisine ALGORİTMA, algoritmanın çizimsel gösterimine ise AKIŞ DİYAGRAMI adı verilir. 1 Akış diyagramları

Detaylı

Sayı sistemleri iki ana gruba ayrılır. 1. Sabit Noktalı Sayı Sistemleri. 2. Kayan Noktalı Sayı Sistemleri

Sayı sistemleri iki ana gruba ayrılır. 1. Sabit Noktalı Sayı Sistemleri. 2. Kayan Noktalı Sayı Sistemleri 2. SAYI SİSTEMLERİ VE KODLAR Sayı sistemleri iki ana gruba ayrılır. 1. Sabit Noktalı Sayı Sistemleri 2. Kayan Noktalı Sayı Sistemleri 2.1. Sabit Noktalı Sayı Sistemleri 2.1.1. Ondalık Sayı Sistemi Günlük

Detaylı

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

TEMEL BİLGİSAYAR. Ders Notları. Yard. Doç. Dr. Seyit Okan KARA TEMEL BİLGİSAYAR Ders Notları Yard. Doç. Dr. Seyit Okan KARA Temel Kavramlar Sayı ve Kodlama Sistemleri Bilgisayarın Kullanım Alanları ve Bilgisayarda Ölçü Birimleri Anakart, İşlemci (CPU), ROM ve RAM,

Detaylı

Dr. Fatih AY Tel: 0 388 225 22 55 [email protected] 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 [email protected] www.fatihay.net Bilgisayar Programlamaya C ile Programlamaya Yazılım: Bilgisayarın işlemler yapması ve karar vermesi

Detaylı

İşletim Sistemleri (Operating Systems)

İşletim Sistemleri (Operating Systems) İşletim Sistemleri (Operating Systems) 1 İşletim Sistemleri (Operating Systems) Genel bilgiler Ders kitabı: Tanenbaum & Bo, Modern Operating Systems:4th ed., Prentice-Hall, Inc. 2013 Operating System Concepts,

Detaylı

Bilgisayar Entegre Ofis Programları-I. Öğr.Gör. Türkan ÖZBAY

Bilgisayar Entegre Ofis Programları-I. Öğr.Gör. Türkan ÖZBAY Bilgisayar Entegre Ofis Programları-I Öğr.Gör. Türkan ÖZBAY Bilgisayarın çalışma prensibini açıklayınız??? Bilgisayar çalışma sisteminde nelere ihtiyaç duyar??? İşlenebilir türden bir veya birden çok verinin

Detaylı

Giriş MİKROİŞLEMCİ SİSTEMLERİ. Elektronik Öncesi Kuşak. Bilgisayar Tarihi. Elektronik Kuşak. Elektronik Kuşak. Bilgisayar teknolojisindeki gelişme

Giriş MİKROİŞLEMCİ SİSTEMLERİ. Elektronik Öncesi Kuşak. Bilgisayar Tarihi. Elektronik Kuşak. Elektronik Kuşak. Bilgisayar teknolojisindeki gelişme Giriş MİKROİŞLEMCİ SİSTEMLERİ Bilgisayar teknolojisindeki gelişme Elektronik öncesi kuşak Elektronik kuşak Mikroişlemci kuşağı Yrd. Doç. Dr. Şule Gündüz Öğüdücü 1 Bilgisayar Tarihi Elektronik Öncesi Kuşak

Detaylı

Bilgisayar en yavaş parçası kadar hızlıdır!

Bilgisayar en yavaş parçası kadar hızlıdır! Donanım Bilgisayar en yavaş parçası kadar hızlıdır! Merkezi İşlem Birimi Kavramı (CPU) Bilgisayar içerisinde meydana gelen her türlü aritmetiksel, mantıksal ve karşılaştırma işlemlerinden sorumlu olan

Detaylı

MUHASEBEDE BİLGİ YÖNETİMİ (MUH208U)

MUHASEBEDE BİLGİ YÖNETİMİ (MUH208U) DİKKATİNİZE: BURADA SADECE ÖZETİN İLK ÜNİTESİ SİZE ÖRNEK OLARAK GÖSTERİLMİŞTİR. ÖZETİN TAMAMININ KAÇ SAYFA OLDUĞUNU ÜNİTELERİ İÇİNDEKİLER BÖLÜMÜNDEN GÖREBİLİRSİNİZ. MUHASEBEDE BİLGİ YÖNETİMİ (MUH208U)

Detaylı

VERİ YAPILARI VE PROGRAMLAMA (BTP104)

VERİ YAPILARI VE PROGRAMLAMA (BTP104) VERİ YAPILARI VE PROGRAMLAMA (BTP104) Yazar: Doç.Dr. İ. Hakkı CEDİMOĞLU S1 SAKARYA ÜNİVERSİTESİ Adapazarı Meslek Yüksekokulu Bu ders içeriğinin basım, yayım ve satış hakları Sakarya Üniversitesi ne aittir.

Detaylı

BİLİŞİM TEKNOLOJİLERİ 6. SINIF DERS NOTLARI 2

BİLİŞİM TEKNOLOJİLERİ 6. SINIF DERS NOTLARI 2 PROGRAMLAMA Bir problemin çözümü için belirli kurallar ve adımlar çerçevesinde bilgisayar ortamında hazırlanan komutlar dizisine programlama denir. Programlama Dili: Bir programın yazılabilmesi için kendine

Detaylı

PROGRAMLAMAYA GİRİŞ VE ALGORİTMA «YTÜROK» EĞİTMEN:REHA ÖZGÜR ŞİMŞEK

PROGRAMLAMAYA GİRİŞ VE ALGORİTMA «YTÜROK» EĞİTMEN:REHA ÖZGÜR ŞİMŞEK PROGRAMLAMAYA GİRİŞ VE ALGORİTMA «YTÜROK» EĞİTMEN:REHA ÖZGÜR ŞİMŞEK Giriş-Tanımlamalar Program Nedir? Tanımlanmış bir problemi bilgisayar ortamında çözen ürüne program denir. Programlama Nedir? Tanımlanmış

Detaylı

Donanım Nedir? Bir bilgisayar sisteminde bulunan fiziksel aygıtların tümü

Donanım Nedir? Bir bilgisayar sisteminde bulunan fiziksel aygıtların tümü BİLGİSAYAR DONANIMI Donanım Nedir? Bir bilgisayar sisteminde bulunan fiziksel aygıtların tümü Donanım Nedir? Giriş aygıtları İşlemci Depolama aygıtları Çıkış aygıtları Çevresel aygıtlar Giriş Aygıtları

Detaylı

Donanım Nedir? Bir bilgisayar sisteminde bulunan fiziksel aygıtların tümü

Donanım Nedir? Bir bilgisayar sisteminde bulunan fiziksel aygıtların tümü BİLGİSAYAR DONANIMI Donanım Nedir? Bir bilgisayar sisteminde bulunan fiziksel aygıtların tümü Donanım Nedir? Giriş aygıtları İşlemci Depolama aygıtları Çıkış aygıtları Çevresel aygıtlar Giriş Aygıtları

Detaylı

Bilgi ve Bilgi Sistemleri. Bilgisayar Mühendisliğine Giriş 1

Bilgi ve Bilgi Sistemleri. Bilgisayar Mühendisliğine Giriş 1 Bilgi ve Bilgi Sistemleri Bilgisayar Mühendisliğine Giriş Sembol, Veri, Bilgi, Anlamlı Bilgi Anlamlı Bilgi (Knowledge) Bilgi, (Information) Veri(Data) Sembol (Symbol) Örnek: Semboller: 0,,2,.8,9,A,.,Y,Z,%,+,=,!

Detaylı

CPU çok güçlü bir hesap makinesi gibi çalışır. CPU lar çok zeki olmayabilirler ancak çok hızlıdırlar. Sadece 0 ve 1 değerleri üzerinden işlem

CPU çok güçlü bir hesap makinesi gibi çalışır. CPU lar çok zeki olmayabilirler ancak çok hızlıdırlar. Sadece 0 ve 1 değerleri üzerinden işlem Donanım CPU çok güçlü bir hesap makinesi gibi çalışır. CPU lar çok zeki olmayabilirler ancak çok hızlıdırlar. Sadece 0 ve 1 değerleri üzerinden işlem yaparlar. Güncel hızları GHz seviyeleri ile ifade

Detaylı

2. SAYI SİSTEMLERİ VE KODLAR

2. SAYI SİSTEMLERİ VE KODLAR 2. SAYI SİSTEMLERİ VE KODLAR 2.1. Sabit Noktalı Sayı Sistemleri 2.1.1. Ondalık Sayı Sistemi Günlük yaşantımızda kullandığımız sayı sistemi ondalık (decimal) sayı sistemidir. Ayrıca 10 tabanlı sistem olarak

Detaylı

n. basamak... 4. basamak 3. basamak 2. basamak 1. basamak Üstel değer 10 n-1... 10 3 10 2 10 1 10 0 Ağırlık 10 n-1...

n. basamak... 4. basamak 3. basamak 2. basamak 1. basamak Üstel değer 10 n-1... 10 3 10 2 10 1 10 0 Ağırlık 10 n-1... KAYNAK : http://osmanemrekandemir.wordpress.com/ SAYI SISTEMLERI Decimal(Onlu) Sayı sistemi günlük hayatta kullandığım ız 0,1,2,3,4,5,6,7,8,9 rakamlarından oluşur. Decimal(Onlu) Sayı sisteminde her sayı

Detaylı

Bilgi Teknolojisinin Temel Kavramları

Bilgi Teknolojisinin Temel Kavramları Bilgi Teknolojisinin Temel Kavramları 1. Günlük yaşantıda bilgisayar hangi alanlarda kullanılmaktadır? 2. Bilgisayarın farklı tip ve özellikte olmasının sebepleri neler olabilir? Donanım Yazılım Bilişim

Detaylı

Bilgisayar Kavramına Giriş, Bilgisayar Kullanımı ile İlgili Temel Kavramlar

Bilgisayar Kavramına Giriş, Bilgisayar Kullanımı ile İlgili Temel Kavramlar Bilgisayar Kavramına Giriş, Bilgisayar Kullanımı ile İlgili Temel Kavramlar Teknolojinin gelişmesi ile birlikte bilgiye gereksinim daha da artmaktadır. Bilginin toplanıp derlenerek anlamlı bir duruma getirilmesi

Detaylı

OCTAL (SEKİZLİ) SAYI SİSTEMİ:

OCTAL (SEKİZLİ) SAYI SİSTEMİ: 5.HAFTA OCTAL (SEKİZLİ) SAYI SİSTEMİ: Sayısal Sistemler ikilik sayı sistemini kullansalar da bir tasarımcı için Binary (İkilik) sayılarla işlem yapmak zahmetli bir işlem olması nedeniyle ve hafızada daha

Detaylı