ALGORİTMA VE PROGRAMLAMAYA GİRİŞ



Benzer belgeler
SAB104 Bilgisayar Programlama

Karakter Değişkenlere İlişkin Komutlar

Dr. Musa KILIÇ Öğretim Görevlisi

Algoritma ve Programlamaya Giriş

BMT 101 Algoritma ve Programlama I 3. Hafta. Yük. Müh. Köksal GÜNDOĞDU 1

Problem. N sayıda öğrencinin boy ortalaması. N: Öğrenci sayısı S: Başlangıç değeri TOP: Toplam BOY: Boy ORT: Ortalama. Algoritma

PROGRAMLAMA DİLLERİ I

BİLGİSAYAR PROGRAMLAMA DERSİ

BİLGİSAYAR PROGRAMLAMA DERSİ

Algoritma ve Akış Diyagramları

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

İÇERİK PROGRAMLAMAYA GİRİŞ ALGORİTMA AKIŞ DİYAGRAMLARI PROGRAMLAMA DİLLERİ JAVA DİLİNİN YAPISI JAVA DA KULLANILAN VERİ TİPLERİ JAVA DA PROGRAM YAZMA

TEMEL BİLGİSAYAR BİLİMLERİ

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

Temel Bilgisayar Programlama ve BASIC Diline Giriş

Excel Formüller ve Fonksiyonlar. Yusuf MANSUROĞLU Mühendislik Hizmetleri Müdür Yardımcısı

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1

TBP101 (4. Hafta) Alıştırma Soruları ve Cevapları

BÖLÜM 2: ALGORİTMALAR

Program akıģı sırasında belirtilen satır numaralı yere gitmek için kullanılır. Genel formu: [<satır numarası>] GOTO <satır numarası 1> GOTO n

İÇERİK PROGRAMLAMAYA GİRİŞ ALGORİTMA AKIŞ DİYAGRAMLARI PROGRAMLAMA DİLLERİ JAVA DİLİNİN YAPISI JAVA DA KULLANILAN VERİ TİPLERİ JAVA DA PROGRAM YAZMA

EM205 26/9/2014. Programlamaya giriş Algoritmalar. Amaçlar

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ

Algoritma ve Akış Diyagramları

Algoritmalar ve Programlama. Algoritma

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ (Algoritma Geliştirmek, Satır Kod)

ÖDEV (Vize Dönemi) CEVAPLAR. 1. Ekrana Merhaba Dünya! yazdıran algoritmanın akış diyagramını çiziniz ve sözde kod olarak yazınız.


Bilgisayar Programlama

BİL-142 Bilgisayar Programlama II

Basit Algoritma Akış Diagramı Örnekleri

BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları

BÖLÜM 6: KARŞILAŞTIRMALI KONTROL YAPILARI

Dersin Sorumlusu: Yrd. Doç. Dr. Birol SOYSAL. Sunumları Hazırlayan: Doç. Dr. Bülent ÇAKMAK

Bilgisayar II Dersi. Bölüm-2

ALGORİTMA ÖRNEKLERİ ve YAZILIYA HAZIRLIK SORULARI

BMT 101 Algoritma ve Programlama I 7. Hafta. Yük. Müh. Köksal Gündoğdu 1

Akış Kontrol Mekanizmaları

BİLGİSAYAR PROGRAMLAMA MATLAB

ALGORİTMA TASARIMI VE SCRATCH UYGULAMASI

Algoritmanın Hazırlanması

ALGORİTMA VE PROGRAMLAMA I

Örnek bir Algoritma. Örneğimiz bir insanın evden çıkıp işe giderken izleyeceği yolu ve işyerine girişinde ilk yapacaklarını tanımlamaktadır.

Algoritma ve Programlama: Karar Yapıları ve Döngüler

MTK467 Nesneye Yönelik Programlama. Hafta 4 - Döngüler Zümra Kavafoğlu

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

4- ALGORİTMA (ALGORITHM)

MS Excel. Excel Microsoft Office in bir parçasını oluşturur. Office 2007, Office 2010, Office 2013, Office 2016

Programlama Temelleri. Ders notları. Öğr.Gör. Hüseyin Bilal MACİT 2017

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

Excel Nedir? Microsoft Excell. Excel de Çalışma sayfası-tablo

Internet Programming II

Temel Excel Kullanım Bilgisi

C PROGRAMLAMA YRD.DOÇ.DR. BUKET DOĞAN PROGRAM - ALGORİTMA AKIŞ ŞEMASI

GİRİŞ/ÇIKIŞ VE TANIMLAMA DEYİMLERİ

PROGRAMLAMA ALGORĠTMA

ALGORİTMALAR. Turbo C Bilgisayarda Problem Çözme Adımları. Bilgisayarda Problem Çözme Adımları.

PROGRAMLAMA TEMELLERİ DERSİ ÖZETİ

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

Her Select Case bloğu, mutlaka End Select ile bitmek zorundadır.

BLG 1306 Temel Bilgisayar Programlama

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

Eastern Mediterranean University Faculty of Arts & Sciences -- Department Of Mathematics BİLG213 BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

Döngüler - Loops 4/9/2010. ENF-102 Jeoloji Giriş. Sayaç kontrollü bir döngüdeki temel öğeler. Sayaç (counter) Kontrollü Döngüler.

Algoritma ve Programlamaya Giriş. Mustafa Kemal Üniversitesi Kırıkhan Meslek Yüksekokulu Bilgisayar Teknolojileri Bölümü

Microsoft Office Excel 2007

Ders Tanıtım Sunumu. Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. Öğr. Gör. Murat KEÇECİOĞLU 1

Internet Programming II

HÜPP PYTHON I.HAFTA ALGORİTMA MANTIĞI, AKIŞ DİYAGRAMLARI VE PYTHON'A GİRİŞ

KBÜ. TBP101 Programlama Temelleri. Öğr. Gör. Dr. Abdullah ELEN KARABÜK ÜNİVERSİTESİ.

Algoritma ve Programlamaya Giriş. Mustafa Kemal Üniversitesi Kırıkhan Meslek Yüksekokulu Bilgisayar Teknolojileri Bölümü

C Programlama Dilininin Basit Yapıları

AKIŞ ŞEMASI AKIŞ ŞEMASI AKIŞ ŞEMASI ŞEKİLLERİ GİRİŞ

Microsoft Excel Formül Yazma Kuralları: 1. Formül yazmak için Formül Araç Çubuğu kullanılır, ya da hücre içerisine çift tıklanarak formül yazılır.

M i c r o s o f t E X C E L ÇALIŞMA SORULARI

ÖRNEK 1: Verilen iki sayının toplamının bulunmasının algoritması aşağıdaki gibi yazılır:

5. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

Genel Kullanılış 1: [değişken ismi] = [değişken ismi] [işlem] [sayı veya string ifade veya değişken]

BİLGİSAYAR PROGRAMLAMA DERSİ

Python Programlama Dili

VERİ TABANI YÖNETİM SİSTEMLERİ I

IF / ELSE IF / ELSE. Bu deyimler, koşullu işlem yapan deyimlerdir ve daima if deyimi ile başlar, else if veya else ile devam eder.

SQL PROGRAMLAMA. Bir batch, bir arada bulunan bir dizi SQL deyimidir. Batch ayıracı GO deyimidir.

FBEB-512 C++ ile Nesne Tabanlı Programlama Güz 2009 (1. Hafta) (Yrd. Doç. Dr. Deniz Dal)

BİLGİSAYAR PROGRAMLAMA MATLAB

SİNOP ÜNİVERSİTESİ MESLEK YÜKSEKOKULU MEKATRONİK PROGRAMI

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

Internet Programming I. Hafta III. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

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

HSancak Nesne Tabanlı Programlama I Ders Notları

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

BMT 101 Algoritma ve Programlama I 3. Hafta (Örnekler) Yük. Müh. Köksal GÜNDOĞDU 1

3. KOŞUL YAPILARI 3.1. IF YAPISI 2

HSancak Nesne Tabanlı Programlama I Ders Notları

Bilgisayar Programlama MATLAB

MODÜL 4 HESAP TABLOSU UYGULAMALARI 2

Değişkenler, içerisinde tek bir değer tutabilen yapılardır. Örneğin haftanın günlerini değişkenlerde tutmak istersek, her bir gün adı için bir

TEMEL BİLGİSAYAR BİLİMLERİ. Programcılık, problem çözme ve algoritma oluşturma

BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN

Transkript:

BÖLÜM 3 PROGRAMLAMAYA GİRİŞ Bu bölümde öğrencinin kolay anlaması açısından şöyle bir metot kullanılacaktır. Önce bir basic deyiminin açıklaması ve makinede kullanılış şekli verilecek, ardından ise o terimi içeren örnek ya da örnekler verilecektir. Daha sonra her yeni verilen deyim için eski deyimleri de içine alan yeni örnekler verilecektir. Anlaşılmada kolaylık olması için verilen programın ekran çıktısı da verilecektir. Verilen örnekleri denemeniz için öncelikle Qbasic editörünü kullanmanız gerekecektir. Bu editör kullanımı çok basit bir text editördür. Bunun için işletim sisteminizdeki Qbasic.exe programınızı çalıştırmanız yeterlidir. (Ders notunda örnekler anlatılırken QB45 programı kullanılacaktır.) AÇIKLAMA: Programlama mantığının kolay anlaşılması açısından örnekler BASIC dilinin ilk versiyonlarından olan GWBASIC mantığına göre anlatılacaktır. Ancak ders notunda yer alan örnekleri QBASIC de çalıştırırken aynen yazıldığında zaten çalışacaktır. Ancak program içerisinde GOTO vb deyimlerin önünde adres olarak satır numarası kullanılmamışsa, o programı satır numarası kullanmadan yazdığınızda yine çalışacaktır. Ek örneklerde satır numarası kullanılmamıştır. BASIC DEYİMLERİ PRINT: Kullanılış formu: PRINT [<Değişken>][(;/,)<Değişken>],... Ekran üzerinde yazı veya rakam vb. yazdırmak için kullanılır. Kullanılış formundaki parantez çeşitlerinin anlamları şöyledir: [ ] parantez mutlaka yazılması gerekmeyen ifadeler içindir. ( ) parantez ise kendileri kullanılması gereken parantezlerdir. < > ise genelde bir parantez içerisindeki birkaç ifadeyi birbirinden ayırmak için kullanılır. Şimdi print yönergesinin bu değişik durumlarını örneklerle inceleyelim: a) Print deyimi önündeki " " isareti içindeki ifadeyi aynen yazar. PRINT "Bilgisayar dersi çok kolay" Bu ifade program editörüne yazılıp RUN/START işlemi yapıldığında ekrandaki görüntü şöyledir: 20

Bilgisayar dersi çok kolay Press any key to continue Bu kullanış şekli için diğer örnek ise; önünde verilen aritmetiksel işlemleri yapar. PRINT 2*1500/(2+SQR(16)) Bu ifade program editörüne yazılıp RUN/START işlemi yapıldığında ekrandaki görüntü şöyledir: 500 Press any key to continue b) PRINT yalnız başına yazıldığında ekranda bir satır boşluk bırakır veya eğer cursor herhangi bir satırın ortasında ise o satırı geçip alt satırda satırbaşı yaparak bekler. c) Birden fazla değişken arka arkaya yazdırılırken değişken araları (,) veya (;) ile bölünebilir. Eger (;) konularak bölünürse: i ) Yazısal dizi değişkenleri aralarında boşluk olmaksızın birbiri ardına yazılır. ii ) Sayısal değişkenlerin arkasına bir boşluk eklenerek yazılır. iii) Pozitif sayıların önüne bir boşluk eklenir. 21

A=25 B=60 C=A-B AD$="ELEKTRİK" BD$="ELEKTRONİK" :C$=AD$+BD$ PRINT A;C;B PRINT AD$;BD$ PRINT AD$,BD$ PRINT C$ 25-35 60 ELEKTRİKELEKTRONİK ELEKTRİK ELEKTRONİK ELEKTRİKELEKTRONİK ELEKTRİKELEKTRONİK Pres any key to continue Eğer arayı bölmek için (,) kullanılırsa; (,)'den sonra gelen değişken bir sonraki print bölgesinin başından itibaren yazılmaya başlanır.print bölgesi nedir denilir ise; bilgisayar ekranı (her bilgisayara göre değişmekle birlikte genelde 8 yada 10 karakterlik) sütunlar seklinde yazma bölgelerine ayrılmıştır. İşte bu bölgelere Print Bölgesi (veya Tab Bölgesi) denir. Bu bölgeler ekrana bakıldığında görülmez. Bu örnekte anlaşılır olması için ekranın üzerinde tab bölgeleri işaretlenmiştir. 22

10 A$="DOKUZ EYLÜL" 20 B$="ÜNİVERSİTESİ" 30 PRINT A$,B$ 1.bölge 2.bölge 3.bölge 4.bölge 5.bölge 6.bölge 7.bölge 8. ----------------------------------------------------------- DOKUZ EYLÜL ÜNİVERSİTESİ Pres any key to continue e) Verileri bulunduğumuz satırın belli bir kolonundan itibaren yazdırmak istersek bu durumda print yönergesi TAB yönergesi ile birlikte kullanılır. f) Yazısal dizilerin arasındaki (+) toplama işlemi iki yazısal diziyi arka arkaya ekler. TAB: TAB(sayı yada sayısal değişken): Bu yönerge print ile birlikte kullanılır ve değişken değerinin cursorun o andaki bulunduğu satırın kaçıncı sütunundan itibaren yazılacağını belirler.bu sayının x olduğunu farz edelim; (x-1) adet sütun geçtikten sonra x'inci sütundan itibaren yazmaya başlar. Burada dikkat edilmesi gereken husus bu rakam 255'den büyük olamaz. Aslında bilgisayar 255,e kadar size hata vermez; ancak normalde ekran boyunun 40 veya 80 karakterlik olduğunu düşünürsek zaten bu rakamlardan büyük bir sayı verdiğimizde ekrandaki görünüş bizim istediğimiz satırda değil daha alt satırda olacaktır. Aşağıdaki örnekte tab bölgelerinin 10'ar karakter olduğu farz edilmiş ve anlaşılır olması için bu bölgeler rakam ile ayrılmıştır. 23

10 A$="Mersin" : B$="Kültür" : C$="ve Sanat" 20 D$="Şenliğine Hoşgeldiniz." 30 PRINT A$,B$;TAB(40)C$;D$ 12345678901234567890123456789012345678901234567890123456789 ------------------------------------------------------------ Mersin Kültür ve Sanat Şenliğine Hoşgeldiniz. Ok SONUÇLARI YAZICIYA YAZDIRMAK Bilgisayarda programlar icra edilirken her defasında ekranla çalışmak yeterli değildir. Çoğu zaman sonuçların kağıda yazılması istenir. Bu işlem aynen print komutu gibi çalışır. LPRINT: Kullanılış formu ve önündeki ifadelerin durumu PRINT ile aynıdır. Tek farkı ise PRINT ekrana yazmayı sağlarken LPRINT yazıcıya yazdırmayı sağlar. LPRINT önünde yazısal ve sayısal değişkenler, grafik karakterler, ASCII formunda verilen işaretler olabilir. Bu komutu kullanırken dikkat edilecek tek husus yazıcının her satıra kaç karakter yazdığıdır. INPUT : INPUT ["uyari"]<degisken1>[<,><degisken2><,><degisken3>...] Bu yönerge bilgisayara programla çalışan kişinin (kullanıcının) bilgisayara klavyeden (veya bir dosyadan) bilgi girmesini sağlar. Eğer uyarı yazılmış ise önce o uyarı mesajını ekrana basar ve yanına (?) basar. Bundan sonra kullanıcının istenilen veriyi girmesini bekler. Eğer birden fazla veri girilmesi gerekiyorsa aralarını (,) ile bölmek gerekir. Eğer Input yönergesinin beklediğinden farklı sayıda değişken girilirse doğrusunu girmeniz için hata mesajı yazar ve doğrusunun girilmesini bekler. Eğer uyarı mesajı yazılmamışsa doğrudan soru işareti (?) basar ve değişkenin girilmesini bekler. Bir diğer dikkat edilmesi gereken husus; eğer bilgisayar sayısal bir değişken bekliyor ise sayısal;değilse yazısal bir değişken girilmelidir. Aksi taktirde tip uyuşmazlığı hatası (type mistmach error) verir ve doğru değişkenin girilmesini bekler. 24

10 INPUT "ADINIZ";AD$ 20 INPUT TEL 30 PRINT "ismi=";ad$ 40 PRINT "telefon numarası=";tel --------------- RUN --------------- ADINIZ?MUHTEREM MUHTEMEL?101011 ismi=muhterem MUHTEMEL telefon numarası=101011 Ok Daha önceden akış diyagramı verilen 1 numaralı satış fişi örneğinin programını yapınız. Ek bilgiler: Bilgisayar orlon satan bir iş yerinin satış fişini yazsın. 10 INPUT"Kaç liralık alışveriş yaptınız";fiyat 20 kdv=fiyat*100/10 30 tplam=fiyat+kdv 40 PRINT"Dostlar Manifatura" 50 PRINT"Pozcu Vd. 1108 Mersin":PRINT 60 PRINT"ORLON=";TAB(15)fiyat 70 PRINT"KDV=";TAB(16)kdv 80 PRINT"TOPLAM=";TAB(15)tplam 90 PRINT:PRINT"TEŞEKKÜR EDERİZ" RUN Kaç liralık alışveriş yaptınız?1000 Dostlar Manifatura Pozcu Vd. 1108 Mersin Orlon 1000 KDV= 100 TOPLAM= 1100 TEŞEKKÜR EDERİZ Ok. 25

Klavyeden girilen 10 sayının ortalamasını bulan ve yazan bir programın akış diyagramını çiziniz, programını yapınız? BAŞLA Gir S1,S2,...,S10 TPLAM=S1+S2+...+S10 ORT=TPLAM/10 10 INPUT"5 SAYI";s1,s2,s3,s4,s5 20 INPUT"5 SAYI";s6,s7,s8,s9,s10 30 T=s1+s2+s3+s4+s5+s6+s7+s8+s9+s10 40 Ort=T/10 50 PRINT"TOPLAM=",T 60 PRINT"ORTALAMA=",Ort RUN 5 SAYI?10,20,30,40,50 5 SAYI?60,70,80,90,100 TOPLAM= 550 ORTALAMA= 55 Ok TPLAM ORT DUR Akış diyagramı 4 nolu örnekte verilen elektrik devresini çözen ve istenilenleri ekranda birimleri ile birlikte yazan bir program yapınız? ÇÖZÜM: 10 INPUT r1,r2,r3,r4,r5,e 20 Reş1=r3*r5/(r3+r5) 30 Reş2=Reş1+r2+r4 40 Reş=Reş2*r1/(Reş2+r1) 50 I=E/Reş 60 P=I*E 70 PRINT "Gerilim=";TAB(15)E;"Volt" 80 PRINT "Akım=";TAB(15)I;"Amper" 90 PRINT "Güç=";TAB(15)P;"Watt" 100 PRINT "Toplam Direnç=";TAB(15)Reş;"OHM" 26

Eğer burada direnç değerleri biliniyor ise 10 numaralı satırdaki input terimi yerine r1=10000:r2=1500... gibi doğrudan direnç değerleri verilebilir. GO TO : GO TO <Satır numarası> Bu yönergenin işlevi programın işleyişi esnasında goto satırına geldiği anda bulunduğu yerden GO TO yönergesinin önünde yazılı numaralı satıra giderek programın çalışmaya oradan devam etmesini sağlamaktır. Programın içerisinde kullanılabileceği gibi bilgisayara direkt olarak yazılarak kullanılabilir. Böylece daha önce yazılmış bir programı çalışmaya en başından değil de istediğimiz bir yerinden başlatmaya yarar. Program içinde kullanıldığında döngü yapmada büyük numaralı bir satırdan küçük numaralı satıra tekrar tekrar gönderilerek kullanılabilir. Günümüz modern programcılığında bu deyim neredeyse kalkmıştır. Bu deyimin yerini fonksiyon yazılımları ve döngü komutları almıştır. Ancak bilgisayar programcılığı haricindeki bölümlerde, programlama sanatının ilk öğretilmesi aşamasında yinede goto deyimini kullanarak mantığı daha basit hale getirip öğrenciye vermek yararlı olabilir. Bu sebepledir ki ders notu yazılırken qbasic editörü kullanılmasına rağmen satır numarası kullanılarak yazıma devam edilmiştir. Bu ders notundaki programların tamamında komutlarda parametre olarak kullanılmayan satır numaraları yazılmadığında da programlar çalışır. GOTO 100 veya 20 GOTO 500 gibi Daha önce yazmış olduğumuz satış fişi programında eğer programın en sonuna; 100 GO TO 10 şeklinde bir satır eklersek program durmayacak ve her fişin yazılışından sonra tekrar başa dönerek yeni fişi yazmak için bekleyecektir. IF - THEN - ELSE: IF <Mantıksal ifade> THEN <Satır no veya yönerge>[else <Satır numarası veya yönerge>] 27

Kelime anlamı olarak yaptığı işi şöyle açıklamak mümkündür: EĞER <..> ifadesi doğru ise O ZAMAN <..> işlemini yap [DEĞİLSE <..> işlemini yap.] Yaptığı işlemi tam anlayabilmek için öncelikle IF-THEN kısmını inceleyelim.bu deyim bilgisayarın zekasını yani karşılaştırma yeteneğini sağlar.if deyiminin ardından gelen deyim; değişkenleri, yazısal dizileri, sayıları ve mantıksal operatörleri içerebilir. Eğer burada verilen ifade doğru ise THEN deyiminden sonra gelen ifade yerine getirilir. Eğer IF deyiminden sonra gelen ifade doğru değilse ve ELSE terimi kullanılmamışsa bu yönergenin olduğu satır işleme girmeden atlanır ve bir sonraki satırdaki işlem icra edilir. THEN deyiminin ardından herhangi bir basic terimi gelebileceği gibi bir satır numarası da gelebilir. Satır numarası geldiğinde bunun anlamı; eğer IF deyiminden sonra gelen ifade doğru ise THEN deyiminden sonra verilen satır numarasına git ve işleme oradan devam et demektir. Eğer THEN deyiminden sonra birkaç tane işlem yapılacaksa THEN deyiminin ardından alt satıra geçilerek istenilen işlemler yapılır ve bu durunda işlemlerin bitiminden sonra ENDIF deyimi kullanılır. Bu deyimlerden sadece IF-THEN kısmı kullanılabileceği gibi bunların ardından ELSE kısmı da eklenebilir. ELSE ifadesini, yine THEN ifadesinde olduğu gibi bir satır numarası yada bir veya birkaç basic ifadesi takip edebilir. Hepsi beraber kullanıldığında ise bilgisayara verdikleri emir şu şekilde olacaktır: Eğer IF deyiminden sonra gelen ifade doğru ise THEN deyiminden sonra gelen ifadeyi, yada emri yerine getir; eğer IF deyiminden sonra gelen ifade doğru değil ise ELSE deyiminden sonra gelen ifadeyi yerine getir. 10 IF a=5 THEN PRINT "doğru" ELSE 50 Bu örneğin anlamı Eğer a=5 ise ekrana doğru yaz, eğer a=5 değilse o zaman 50 numaralı satıra git ve oradaki işlemi yerine getir. IF F>50 THEN A=(B+C9)*40/100 B=F*60/100 C=A+B ENDIF Bu örnekte de F sayısı 50 den büyük ise A, B, C hesaplamaları yapılır ve işlem ENDIF deyiminin ardından devam eder. Eğer F sayısı 50 den büyük değil ise A, B, C hesaplamaları yapılmadan işlem ENDIF deyiminin ardından devam eder 28

Akış diyagramını verdiğimiz iki numaralı satış fişi örneğinin programını yazalım. 10 INPUT Cinsi$,fiyat 20 IF Cinsi$="Hırdavat" THEN KDV=fiyat*13/113 : GOTO 50 30 IF Cinsi$="Gıda" THEN KDV=fiyat*3/103 : GO TO 50 40 KDV=fiyat*10/110 50 PRINT "İLKBAHAR MARKET" 60 PRINT "POZCU Vd.1212. Mersin" 70 PRINT 80 PRINT Cinsi$; TAB(16) fiyat 90 PRINT "KDV=";TAB(17) KDV 100 PRINT "TOPLAM=" TAB(16) fiyat 110 PRINT 120 PRINT "TEŞEKKÜR EDERİZ" 130 GOTO 10 Program çalıştırıldığında:?kitap,1100 İLKBAHAR MARKET POZCU Vd.1212. Mersin Kitap 1100 KDV= 110 TOPLAM= 1100 TEŞEKKÜR EDERİZ? 29

Akış diyagramı konusunda verilen 3 numaralı örneğin programını yapalım. 10 INPUT "Alınan malın cinsi,fiyatı";cinsi$,fiyat 20 IF Cinsi$="Hırdavat" THEN KDV=fiyat*13/113 :GOTO 50 30 IF Cinsi$="Gıda" THEN KDV=fiyat*3/103 : GOTO 50 40 KDV=fiyat*10/110 50 tplam=tplam+fiyat 60 vergi=vergi+kdv 70 INPUT "Baska mal aldınız mı(e/h)";seç$ 80 IF Seç$="H" THEN 100 90 IF Seç$="E" THEN 10 ELSE 70 100 PRINT"TÜCCAR TİCARET" 110 PRINT"MALTEPE Vd.1243 ANKARA" 120 PRINT"TEŞEKKÜR EDERİZ" 130 PRINT 140 PRINT"Fiyatı="; TAB(15) tplam 150 PRINT"KDV=" ;TAB(16) vergi 160 PRINT"TOPLAM=";TAB(15) tplam 170 tplam=0:vergi=0:go TO 10 Aynı örneğin 100. satıra kadarki kısmı şöyle de yazılabilir. 10 INPUT"Alinan malın cinsi,fiyatı";cinsi$,fiyat 20 IF Cinsi$<> "Hırdavat" THEN 40 ELSE KDV=fiyat*13/113 30 GOTO 60 40 IF Cinsi$<>"Gıda" THEN 50 ELSE KDV=fiyat*3/103:GOTO 60 50 KDV=fiyat*10/110 60 tplam=tplam+fiyat: vergi=vergi+kdv 70 INPUT "Baska mal aldınız mı (E/H)";Seç$ 80 IF Seç$="E" THEN 10 90 IF Seç$<>"H" THEN 70 30

Bir öğrencinin geçme kalma notunu hesaplayan bir program yapınız. Not hesaplama sistemi şöyledir:finale girmek için vize ortalaması 40'dan büyük olmalı.vize ortalamasının %40'ı ile final notunun %60'ının toplamı 60 dan büyük olursa ve final notu 50'den büyük olursa ders başarılmış olmaktadır. Değilse aynı sistem bütünleme sınavı için uygulanacaktır. 10 INPUT "vize 1,vize2";v1,v2 20 vo=(v1+v2)/2 30 IF vo<40 THEN PRINT"VİZESİZ" :GOTO 10 40 INPUT "final notu";f 50 IF f<50 THEN PRINT"BÜTÜNLEME":GOTO 80 60 v40=vo*.4 : f60=f*.60 :gn=v40+f60 70 IF gn>60 THEN 110 80 INPUT "Bütünleme notu";b 90 IF b<50 THEN 120 100 b60=b*.60 :gn=v40+b60 110 IF gn>60 THEN PRINT"BAŞARILI":PRINT "NOTU=";gn:GOTO10 120 PRINT"BAŞARISIZ" :GO TO 10 ÖRNEK A) 1'den 500'e kadar olan sayıların toplamını ve ortalamasını bulan bir program yazınız? 10 n=0 20 n=n+1 30 tplam=tplam+n 40 IF n< 500 THEN 20 50 rt=tplam/500 60 PRINT "1'den 500'e kadar olan sayıların" 70 PRINT "TOPLAMI=";TAB(15)tplam 80 PRINT "ORTALAMASI=";TAB(15)rt ÖRNEK B) Yukarıdaki örnekten faydalanarak alt ve üst sınırı kullanıcı tarafından belirlenen ve birer birer artan sayıların toplamını ve ortalamasını bulan bir program yazınız? 31

10 INPUT "Alt ve üst sınırı giriniz";a,ü 20 n=a-1 30 n=n+1 : s=s+1 : t=t+n 40 IF n<ü THEN 30 50 rt=t/n 60 PRINT a;"'dan ";ü;"'ye kadar olan sayıların;" 70 PRINT "Toplamı= ";t 80 PRINT "Ortalaması=";rt ÖRNEK C) Kaç tane olduğu bilinmeyen pozitif sayıların toplamı ve ortalamasını bulan programı yazınız? Not=En son sayıdan sonra negatif bir sayı giriniz. 10 s=0 20 s=s+1 30 INPUT sayı 40 IF sayi<0 THEN 60 50 tplam=tplam+sayı :GOTO 20 60 s=s-1 70 rt=tplam/s 80 PRINT"Verilen sayılar";s;"adettir ve ortalamaları";rt"; 90 PRINT"dir." ÖRNEK D) Yukardaki örneklerden faydalanarak bir öğrencinin derslerinin aritmetik ortalamasını bulan bir program yazınız? 10 s=1 20 INPUT "notunuz";puan:tplam=tplam+puan 30 INPUT "Başka dersiniz var mı(e/h)";bd$ 40 IF BD$="E" THEN s=s+1: GOTO 20 50 IF BD$ <> "H" THEN 30 60 rt=tplam/s 70 PRINT s;"adet dersinizin ortalaması=";rt;"dır." 32

FOR - NEXT DÖNGÜSÜ : FOR<değişken>=<başlangıç> TO <bitiş> [STEP <artma sayısı>] - - NEXT <değişken> Bu yönerge değişkenleri sayaç olarak kullanmamızı sağlayan bir basic yönergesidir. Bu yönerge verilen başlangıç değerinden bitiş değerine kadar belirtilen adım aralıkları ile sayar. Burada değişkenin bir sonraki adıma artmasını (veya eksilmesini) belirten ifade NEXT ifadesidir. Bunun nerede kullanılabileceğini anlayabilmek için örnek A ve B'ye bakmak yeterli olacaktır. Bu örneklerdeki n artışlarını FOR-NEXT döngüsü ile yapmak daha kolay olacaktır. STEP<artma sayısı> ifadesi kullanılmadığı zaman artma sayısı +1 olarak işlem görecektir. Burada başlangıç ve bitiş değerleri ve artma sayıları olarak ondalıklı sayı veya tamsayı kullanılabilir. Bu ifadeyi kullanırken bazı hususlara dikkat etmek gerekir. Bunlardan birincisi eğer başlangıç değeri bitiş değerinden küçük ise artma sayısı pozitif, bunun tersi durumda ise artma sayısı negatif olmalıdır. Aksi taktirde sonsuz döngü oluşacaktır. Bir diğer konu; eğer iç içe birden fazla döngü açıldı ise döngülerin kapanış ifadeleri olan next'ler de en içerdekinden dıştakilere doğru döngüler kapatılmalıdır. Bir döngünün kapatılması için o döngü başlatılırken kullanılan FOR deyiminin önündeki değişken ile NEXT deyiminin önündeki değişken aynı olmalıdır. Bir diğer husus döngünün başlangıç ve bitiş sayıları aynı olsa bile her döngü en az bir defa işleme girer. Yani FOR i=1 TO 1 döngüsü 1 kez işleme girecektir. Bir programda bir adet FOR-NEXT döngüsü var ise NEXT'in önüne değişken yazmaya gerek yoktur. Ancak birden fazla ve iç içe açılmış döngülerde NEXT'in önüne mutlaka hangi döngüye ait olduğunu bildiren değişken yazılmalıdır. A örneğinde verilen; 1'den 500'e kadar olan sayıların toplam ve ortalamasını bulan programı FOR-NEXT döngüsü ile yapalım: 33

10 FOR i=1 TO 500 20 tplam=tplam+i 30 NEXT i 40 rt=tplam/500 50 PRINT "1'den 500'e kadar olan sayıların" 60 PRINT "Ortalaması =";rt 70 PRINT "Toplamı =";tplam RUN 1'den 500'e kadar olan sayıların Ortalaması =250.5 Toplamı =125250 50'den 1'e kadar olan sayıların toplamını bulunuz? Bu örneği iki şekilde yapmak mümkündür. Biz bu iki yolu da göstererek öğrencinin döngü kavramını anlamasına yardımcı olmaya çalışacağız. 10 REM DÖNGÜ İKİNCİ METODU 20 n=50 FOR n=50 TO 1 STEP -1 30 t=t+n 40 n=n-1 NEXT n 50 IF PRINT"50'den n=0 THEN 501'e ELSE kadar 30 olan sayıların toplamı=";t 60 END PRINT "50'den 1'e kadar sayıların toplamı=";t 70 END REM : Kullanılış Formu : REM <Açıklama ifadesi> Program açısından hiçbir önemi yoktur. Bu yönerge kullanıcıdan ziyade programcıyı ilgilendirmektedir. REM deyimi önüne programcı hatırlamak istediği açıklama notlarını yazar. Program çalıştığında bu notlar ekranda yazılmaz. Sadece eğer programda bir hata çıkarsa programcı yazdığı hatırlatma notlarına bakarak hatayı daha kolay bulacaktır. 0'dan 1000'e kadar olan çift sayıların toplamını bulan bir program yazınız? 34

10 FOR i= 0 TO 1000 STEP 2 20 tplam=tplam+i 30 x=x+1 40 next i 50 rt=tplam/x 60 PRINT "0'dan 1000'e kadar olan çift sayıların" 70 PRINT "Toplamı =";tplam 80 PRINT "Ortalaması =";rt 90 END END: END Bu deyim genellikle programların sonunda yer alır ve işlevi programın çalışmasını durdurmaktır. Her seferinde sonda yer alır diye bir şart yoktur. Bazı programlarda programın her hangi bir yerinde durdurulması istenilebilir. İşte bu durumlarda END deyimi kullanılır. Eğer programın en sonunda bu deyim kullanılmazsa program yine duracaktır ancak bu defasında ekrana en son hangi satırı işlediğini gösteren bir not yazarak duracaktır. END ile arada bir yerde durdurulmuş bir program CONT komutu ile çalışmaya kaldığı yerden devam ettirilebilir. STOP: STOP Yaptığı işlem bakımından END komutu ile aynıdır. Programın geçici olarak durdurulmasında kullanılır. END ile arasındaki fark ise STOP komutu ile program durdurulduğunda en son işlem gören satır numarası ekrana yazılır. CONT komutu ile program kaldığı yerden çalışmaya devam ettirilebilir veya GO TO <satır numarası> komutu ile program bizim istediğimiz yerden çalışmaya devam ettirilebilir. 35

Alt sınırı ve üst sınırı dışarıdan verilen tamsayılar dizisinin çift sayılarını toplayan ve ortalamasını bulan bir program yazınız? 10 INPUT "ALT SINIRI ve ÜST SINIRI GİRİNİZ";a,ü 20 FOR i=a TO ü 30 c=int (i/2) : b=i/2 40 IF b=c THEN t=t+i :x=x+1 50 NEXT i 60 rt = t/x 70 PRINT a;"'den";ü;"'ye kadar olan çift sayıların" 80 PRINT "Toplamı =";t 90 PRINT "Ortalaması =";rt Verilen iki sayıdan büyüğünü ve küçüğünü ayırt eden ve yazan bir program yazınız? 10 INPUT "iki sayı giriniz";s1,s2 20 IF s1>s2 THEN b=s1: k=s2 30 IF s1<s2 THEN k=s1: b=s2 40 PRINT "Verilen sayıların büyüğü =";b 50 PRINT "Verilen sayıların küçügü =";k 60 STOP Taban yarıçapı ve yüksekliği verilen koninin hacmini bulan programı yazınız? V=pi * r^2 * h / 3 10 INPUT "Koninin taban yarıçapı ";r 20 INPUT "Koninin yüksekliği ";h 30 pi=22/7 40 hacim=pi*r^2*h/3 50 PRINT "Taban yarıçapı";r;"cm 60 PRINT "ve yüksekliği";h;"cm. olan koninin" 70 PRINT "hacmi";hacim;"cm3'tür." 36

Kenar ölçüleri verilen üçgenin çevresini ve alanını hesaplayan bir program yazınız? 10 INPUT "Üçgenin kenar ölçüleri=";a,b,c 20 Çevre=a+b+c : u=(a+b+c)/2 30 Alan= SQR(u*(u-a)*(u-b)*(u-c)) 40 PRINT "ALAN=";Alan,"ÇEVRE=";Çevre LOCATE: LOCATE (y,x) Bu deyim yazılacak olan yazının ekran üzerinde nereye yazılacağını belirtir. Burada y sayısı 25'den büyük olamaz ve verinin hangi satıra yazılacağını belirtir. x sayısı ise verinin yazılacağı sütunu belirler. Bu rakam ekranın yazma kabiliyetine göre 40 yada 80'den büyük olamaz. SPC: SPC(x) Bu deyim PRINT ile yazı yazılırken yazılan veriler arasında boşluk bırakmaya yarar. 12345678901234567890123456789012345678901234567890123456789 ----------------------------------------------------------- 10 a$="türkiye" : b$="cumhuriyeti" 20 LOCATE (8,30):PRINT a$;spc(5);b$ RUN TÜRKİYE CUMHURİYETİ 37

CHR$: CHR$(sayısal değişken) Print ile birlikte kullanılır. Yazdırmalarda bazen öyle sorunlar çıkar ki bunları yazmakta zorlanırız. Mesela " " işareti yazdırmak istediğimizde PRINT deyiminin önünde şimdiye kadar öğrendiğimiz metotlarla mümkün değildir. İşte bu gibi durumlarda CHR$ deyimi kullanılarak istediğimiz (eğer bilgisayarımızda o işaret mevcut ise) işaret veya şekli yazdırmamız mümkün olacaktır. Kullanılış formundaki sayısal ifade yerinde 255'den küçük bir sayı kullanılmalıdır. Kullanılan sayı yazmak istediğimiz işaretin makine içerisindeki kodu olmalıdır. Hangi rakamın sizin bilgisayarınızda hangi işareti simgelediğini bilgisayarların kullanma kılavuzunda bulmak mümkündür. ASC: ASC(ifade) Bilgisayarlar ekrana yazabildikleri her işaret, harf ya da rakama karşılık içlerinde bir sayı ile onu simgelerler. İşte bu karşılık sistemine ASC II kod sistemi denir. CHR$ ile yazdırmak istediğiniz bir işaretin karşılığı olan sayıyı bu deyimle öğrenmeniz mümkündür. Eğer ifade yerinde tek bir harf yada rakam değil de bir dizi verilirse ASC deyimi verilen dizinin ilk karakterinin kod karşılığını verecektir. 32 ile 255 arasındaki ASC II kod tablosunu yazan bir program yazınız? 10 FOR i=32 TO 255 20 PRINT i;chr$(i), 30 NEXT i NOT: 0,dan 255'e kadar olan ASC II kod tablosu ders notlarına eklenmiştir. A harfinin ASC II kodunu veren bir satırlık bir basic ifadesi yazınız? PRINT ASC(A) 38

Bir iş yerinde elemanların vergi iadeleri bilgisayarla kontrol ettirilmektedir. Bu işlemi önce fatura toplamının kontrolü ve sonra vergi iadesi hesabının kontrolü şeklinde yapmaktadır.bu işlemi yapabilecek bir program hazırlayınız. Vergi iade oranları:0-30000 için %20, 30001-60000 için %15, 60001-100000 için %10, 100000- maaş miktarı için %5 'dir. 10 INPUT"Maaş miktarı=";maaş 20 PRINT"Faturaların üzerinde yazan TOPLAM değerini girin" 30 PRINT "En son faturadan sonra bir 0 rakamı giriniz" 40 FOR i=1 TO 10000 50 INPUT "Fatura toplam değeri=";fm 60 fatt=fatt+fm 70 IF fm=0 THEN i=i-1:goto 90 80 NEXT i 90 PRINT "Fatura adedi =";i 100 PRINT "Fatura toplamı =";fatt 110 IF fatt>maaş THEN fatt=maaş 120 IF fatt<30000 THEN vi=fatt*.20:goto 160 130 IF fatt<60000 THEN vi=4500+(fatt-30000)*.15:goto 160 140 IF fatt<100000 THEN vi=10500+(fatt-60000)*.1: GOTO 160 150 vi=14500+(fatt-100000)*0.05 160 PRINT"Maaş miktarı =";maaş 170 PRINT "Vergi iadesi tutarı =";vi GET (INKEY$) : GET (Yazısal dizi değişkeni) <Yazısal dizi değişkeni>=inkey$ Bu yönerge bazı bilgisayarlarda GET bazı bilgisayarlarda ise INKEY$ olarak kullanılmaktadır. Yaptığı iş INPUT gibidir; ancak bu komutla klavyeden yalnızca bir tek harf ya da değişken okunur ve bu deyimle bilgi girildiğinde RETURN tuşuna basmaya gerek yoktur. Özellikle evet yada hayır şeklinde cevaplanması istenen yerlerde kullanılır. Aşağıda evet (E) yada hayır (H) cevabını kabul eden programlar verilmiştir. Bu programlar E yada H harfleri haricinde cevap kabul etmemektedir. Böylece kullanıcının yanlışlıkla başka bir tuşa basması önlenmiş olur. Bu programlarda 10 numaralı satır bilgisayarın bir tuşa basılıncaya kadar beklemesini sağlar. "" işaretleri arasında hiçbir işaret olmamalıdır. 39

Bilgisayara 1 ile 6 arasında iki sayı tutturulmakta ve bir zar gibi çalışması istenmektedir. Her zar atışından önce eğer zar atılacaksa E, atılmayacaksa H tuşuna basılması istenmektedir.bu işi yapan programı GET ve INKEY$ için ayrı ayrı yapınız? 5 REM ÖRNEGİN GET İLE ÇÖZÜMÜ 10 PRINT "Zar atacakmısınız (E/H)" 20 GET a$ : IF a$="" THEN 20 30 IF a$="e" THEN 60 40 IF a$="h" THEN END 50 PRINT"E veya H tuşlarından birini seçiniz":go TO 20 60 a=int(rnd(0)*6+1) : b=int(6*rnd(0)+1) 70 PRINT a,b 80 GOTO 10 5 REM ÖRNEGIN INKEY$ İLE ÇÖZÜMÜ 10 PRINT "Zar atacaksanız E, atmayacaksanız H tuşuna basın 20 a$=inkey$ :IF a$="" THEN 20 30 IF a$="e" THEN 60 40 IF a$="h" THEN STOP 50 PRINT "E ya da H tuşuna basınız" :GO TO 20 60 FOR i=1 TO 2 70 a(i)=int(rnd(0)*6+1) 80 PRINT a(i), 90 NEXT i 100 PRINT : GO TO 10 40