VERİ YAPILARI VE PROGRAMLAMA

Benzer belgeler
Visual Basic 6.0. Anadolu Üniversitesi Endüstri Mühendisliği Bölümü. Dosyalama İşlemleri. Ders Notları

Sıralı bir dosyayı açmak için FileOpen komutundan faydalanılır. Bu komutun genel kullanılış biçimi aşağıdaki gibidir:

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

Karakter Değişkenlere İlişkin Komutlar

SAB104 Bilgisayar Programlama

BİL-142 Bilgisayar Programlama II

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

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

GÜMÜŞHANE ÜNĐVERSĐTESĐ MÜHENDĐSLĐK VE DOĞA BĐLĐMLERĐ FAKÜLTESĐ ELEKTRĐK-ELEKTRONĐK MÜHENDĐSLĐĞĐ EEM 114 ALGORĐTMA TASARIMI VE PROGRAMLAMA DĐLLERĐ

Fen ve Mühendislik Uygulamalarında MATLAB

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

HSancak Nesne Tabanlı Programlama I Ders Notları

Pascalda oluşturulacak dosyalar değişkenler gibi programın başında tanımlanır.

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

DİZİLER. Bu ünitede yapılan örnekler Visual Studio 2010 programındaki Visual Basic programlama diliyle çözülmüştür.

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. Algoritma ve Akış Şemaları

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

Genel Programlama II

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

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

Algoritma ve Programlamaya Giriş

Algoritma ve Akış Diyagramları

BMB1002 Bilgisayar Programlamaya Giriş. Dosyalar. Prof. Dr. Necmettin Kaya

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

ÜNİT E ÜNİTE GİRİŞ. Algoritma Mantığı. Algoritma Özellikleri PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

Sınav Dağılım & IMKB Endeks

VISUAL BASIC DOSYA İŞLEMLERİ

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

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

Döngüsel Akış Diagramı Algoritmaları

İÇ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

ALGORİTMA ÖRNEKLERİ ve YAZILIYA HAZIRLIK SORULARI

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

C/C++ Disk G/Ç İşlemleri. Yrd. Doç. Dr. Fehim KÖYLÜ Erciyes Üniversitesi Bilgisayar Mühendisliği Bölümü

ALGORİTMA (ALGORITHM) M.İLKUÇAR -

Önsöz. İçindekiler Algoritma Algoritma Nasıl Hazırlanır? Yazılımda Algoritma Mantığı Nedir? 1.2. Algoritma Örnekleri ve Sorular

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER,

BLG 1306 Temel Bilgisayar Programlama

ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

<fn> FORMAT (a1,a2,a3,...) : format deyiminin satır numarasıdır READ, WRITE deyimleri ile verilir. : alan bildirim deyimleridir.

Algoritmalar ve Programlama. Algoritma

ALGORİTMA VE PROGRAMLAMA II

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

Length: metin uzunluğunu yada diğer bir deyişle dizi elaman sayısını döndürür.

PROGRAMLAMA ALGORĠTMA

İnternet Programcılığı Öğr. Gör. Serkan AKSU PHP de Dizi-Değişkenler, Nesneler. Dizi Oluşturma. Tek Boyutlu Diziler

Pythonda değişkenlerin türlerini tanımlamaya gerek yoktur

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

PROGRAMLAMA DİLLERİ I

mod ile açılacak olan dosyanın ne amaçla açılacağı belirlenir. Bunlar:

MATLAB de. Programlama. Kontrol Yapıları. Döngü Yapıları. Doç. Dr. İrfan KAYMAZ Matlab Ders Notları

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

Eln 1002 Bilgisayar Programlama II

BÖLÜM 2: ALGORİTMALAR

ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ. Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

KAYITLAR BÖLÜM Giriş

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

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

ELEKTRONİK TABLOLAMA Aritmetiksel işlemler ve mantısal karşılaştırmaların yapıldığı programlar elektronik tablolama programlarıdır.

NB Macro Kullanımı Hakkında Genel Bilgiler

Fortran da kullanılan giriş çıkış komutları PRINT, WRITE ve READ dir.

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA II

MATLAB de Programlama & Dosya Yönetimi. EE-346 Hafta 6 Dr. Ayşe DEMİRHAN

Uygulama 1) Sabit olarak belirlenen sayıda tekrar eden (5 kez) Visual Basic kaynak kodlarını yazınız.

Diziler İndisli Değişkenler

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

Aynı tipten çok sayıda değişken topluluğudur. X Y Score1 Score2 (0) (1) (2)...

PROGRAMLAMAYA GİRİŞ DERS 2

Bir fabrika nasıl çalışır? Örneğin; HAMMADDENİN İŞLENEREK ÜRÜNE DÖNÜŞMESİ (İŞLEM) ÜRÜNÜN ÇIKIŞI (ÇIKIŞ) HAMMADDE GİRİŞİ (GİRİŞ)

MODÜLER ARİTMETİK Test -4

BİLGİSAYAR PROGRAMLAMA MATLAB

Access e Nasıl Ulaşılır. Araç çubuklarını yeniden düzenlemek için Görünüm komutunun Araç çubukları seçeneği kullanılır.

BİL1001 Bilgisayar Bilimlerine Giriş 1

BİL-142 Bilgisayar Programlama II

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

TEMEL STRING İŞLEMLERİ

Temel Dosya İşlemleri. Kütük Organizasyonu 1

C++ Dilinde Bazı Temel Algoritmalar

Matlab da Dizi ve Matrisler. Mustafa Coşar

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

Algoritma ve Akış Diyagram Örnekleri

Programlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1

Algoritma ve Akış Diyagramları

Akış Kontrol Mekanizmaları

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

PROGRAMLAMA TEMELLERİ DERSİ ÖZETİ

AGSoft Rotatif Kredi Hesaplama Programı

Sıralı Erişimli Dosyalar. Kütük Organizasyonu 1

Aşağıda listelenen temel linux komutları bilgisayarınızın komut satırında çalıtırılacaktır.

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

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

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

disp VEYA fprintf KOMUTLARIYLA EKRANA MESAJ YAZDIRMA


Visual Basic Uygulamaları-4. Dİ Zİ LER (ARRAYS) ve Nesne Kü meleri

Transkript:

BÖLÜM 3 BASIC`DE DOSYALAMA İŞLEMLERİ Basıc'de çalışırken herhangi bir işlem dosyalama stili ile yapılacaksa (Veriler dosyalara kaydedilip, gerektiğinde kullanılacaksa) bu durumda iki ayrı çalışma metodu kullanılabilir. Bu metotlardan hangisinin tercih edileceği ise yapılacak işin durumuna ve dosyalama sistemlerinden hangisinin bu işe uygunluğu ile ilgilidir. Disket ünitesi ile çalışan bilgisayarlarda iki dosya çeşidi kullanılabilir. Bunlar: 1- Sequentel (Sıralı) Dosyalar. 2- Random (Rastgele erişimli) dosyalar. Bu iki dosya tipinin birbirlerine göre avantaj ve dezavantajlarını inceleyelim: Sıralı dosyada bilgiler dosyaya giriş sırasına göre kaydedilirler ve istenilen bilgiye ulaşmak için dosya baştan aranılan bilgiye keder okunmalıdır. Random dosyalarda kayıt yine ayni mantıkla yapılır ancak istenilen bilgiye kayıt numarası ile direkt olarak ulaşılabilir. Buna karşın random dosyalar sıralı dosyalara göre disket üzerinde daha fazla yer tutarlar. Kasetli ünitelerde ise yalnızca sıralı dosya açılabilir ve bu sistemler dosyalama sistemi için oldukça yavaş çalışırlar. Bunlarda hızı artırmak için önce bütün dosyayı ram`a aktarmak sonra da iş bitince bütün dosyayı yeniden kaydetmek uygun olur. Dosyalama işlemleri hakkında aşağıdaki hususların bilinmesi gerekir: - Açılan her dosya işlem bittikten sonra kapatılmalıdır. - Yazma için açılan sıralı dosyaya sadece kayıt yapılabilir. Kayıt amacıyla açılmış sıralı dosyadan veri okunmak istenilirse hata oluşur. - Açılmış bir dosya tekrar açılmaya çalışılırsa hata oluşur. - Daha önceden açılmamış bir dosyadan veri okunmak, yada böyle bir dosyaya veri girilmek istenirse hata oluşur. - Oluşturulmamış bir dosyaya ulaşılmaya çalışılırsa hata oluşur. - Diskette daha önce kullanılmış bir isimle dosya açılmaya çalışılırsa hata oluşur. Şimdi bu bilgiler ışığında dosyalama ile ilgili komutları örneklerle inceleyelim: OPEN: OPEN "mod",[#]dosya no,"dosya adı"[,random dosya uzunluğu] Bu komut ile diskette bir dosya oluşturulabilir veya daha önceden oluşturulmuş bir dosyaya ulaşılabilir. (Kasetli ünitelerde kanal numarası belirtilmelidir.) Mod ifadesi aşağıdakilerden birisi olabilir: O : Sequentel dosyaya çıkış (yazma) modu I : Sequentel dosyadan giriş (okuma) modu. R : Random dosya giriş/çıkış modu. A : Dosya sonu. 48

Dosya numarası sayısal ifadesi bilgisayarın izin verdiği büyüklüğe ulaşan tamsayıdır.(genellikle 1,2,3 kullanılır) Dosya adı yazısal bir ifade olup genellikle 6 veya 8 karakter uzunluğunda olabilir. Random dosya uzunluğu ifadesi 1 ile (8`li bilgisayarlarda) 32767 arasında olabilir ve random dosyada bir kayıt numarası altında kaydedilecek olan verilerin bite cinsinden değerini beliler. OPEN "O",#1,"TELEFON" :1 numaralı telefon isimli sıralı dosyaya veri kaydetmek için açar. OPEN "R",#3,"ALİ",60 :Kayıt uzunluğu 60 olan 3 numaralı, ALİ isimli dosyayı açar. CLOSE: CLOSE [[#Dosya no][,dosya no][,...]] Bu komut ile açık durumda olan dosyalar kapatılır. Eğer önünde belirli bir dosya numarası verilmezse o anda açık olan bütün dosyaları kapatır. CLOSE CLOSE #2 : Açık durumda olan bütün dosyaları kapatır. : 2 numaralı dosyayı kapatır. INPUT#: INPUT <#Dosya numarası>,<değişken listesi> Belirtilen dosya numarası ile açılmış olan sıralı dosyadan veri okumak için kullanılır.önündeki değişken listesi dosyadaki kayıtların durumu ile(yazısal veya sayısal) uyum sağlamalıdır.aksi Taktirde tip uyuşmazlığı hatası oluşur. INPUT #2,A$,TEL : Açık durumdaki 2 numaralı sıralı dosyadan bir yazısal değişkeni alıp A$`e ve hemen ardından gelen sayısal değişkeni de TEL`e eşitler. PRINT#: PRINT <#Dosya Numarası>,<Değişken listesi> Önündeki kayıt numarası ile belirtilen ve daha önceden açılmış olan dosyaya kayıt yapmak için kullanılır. Değişken listesi sayısal ve yazısal değişkenlerden oluşabilir. 49

PRINT #2,A$,BRUT :2 numaralı dosyaya önce A$ ve hemen ardından BRUT değişkeninin değerlerini kaydeder. Şu ana kadar olan bilgilerimizle bir sıralı dosya programı yapabiliriz. Öyleyse bir telefon rehberi örneğini inceleyelim: 5 REM SIRALI DOSYA İLE YAPILMIŞ TELEFON REHBERİ ÖENEĞİ 10 DIM A$(1000),TEL(1000) 20 CLS 30 REM << MENU HAZIRLAMA >> 40 LOCATE 10,35 50 PRINT "1- O K U M A " 60 LOCATE 13,35:PRINT "2- K A Y I T" 70 LOCATE 16,35:PRINT"3- A R A M A" 80 LOCATE 20,35 : INPUT"SECIMINIZ";S 90 ON S GOTO 120,240,430 100 PRINT"3'DEN KUCUK BIR SAYI SECINIZ" 110 GOTO 80 120 CLS 130 INPUT"KAC KAYIT GORMEK ISTIYORSUNUZ";N 140 OPEN "I",1,"DOSYA.SEQ" 150 FOR I=1 TO N 160 INPUT#1,A$(I),TEL(I) 170 IF A$(I)="ZZZZZ" THEN 200 180 PRINT I;TAB(4)A$(I);TAB(35)TEL(I) 190 NEXT I 200 CLOSE 1 210 PRINT"BASA DONMEK ICIN BIR TUSA BASINIZ" 220 Z$=INKEY$:IF Z$="" THEN 410 230 GOTO 20 240 REM << K A Y I T >> 250 CLS 260 INPUT "KAC KAYIT YAPACAKSINIZ";N 270 FOR I=1 TO N 280 PRINT"ADI SOYADI ";:INPUT A$(I) 290 PRINT"TELEFON NO ";:INPUT TEL(I) 300 NEXT I 310 OPEN "O",1,"DOSYA.SEQ" 320 FOR I=1 TO N 330 PRINT#1,A$(I) 340 PRINT#1,TEL(I) 350 NEXT I 360 A$(N+1)="ZZZZZ":TEL(N+1)=11111 370 PRINT#1,A$(N+1) 380 PRINT#1,TEL(N+1) 50

390 CLOSE#1 400 PRINT"BASA DONMEK ICIN BIR TUSA BASINIZ" 410 Z$=INKEY$:IF Z$="" THEN 410 420 GOTO 20 430 REM << A R A M A >> 440 PRINT"TELEFON NUMARASI OGRENECEKSENIZ...1":PRINT 450 PRINT"ISIM OGRENECEKSENIZ...2":PRINT 460 PRINT"TUSUNA BASINIZ" 470 A$=INKEY$:IF A$="" THEN 470 480 IF A$="1" THEN INPUT"ADI SOYADI";B$:GOTO 500 490 IF A$<>"2" THEN 440 ELSE INPUT "TELEFON NO=";B 500 OPEN"I",1,"DOSYA.SEQ" 510 FOR I= 1 TO 1000 520 INPUT#1,A$(I),TEL(I) 530 IF A$(I)="ZZZZZ" THEN 580 540 IF A$="1" AND B$=A$(I) THEN 570 550 IF A$="2" AND TEL(I)=B THEN 570 560 NEXT I 570 PRINT A$(I),TEL(I) 580 CLOSE#1 590 IF A$(I)<>"ZZZZZ" THEN 400 600 PRINT"ARADIGINIZ MEVCUT DEGIL" 610 GOTO 400 Şu ana kadar olan komutlarla ancak sıralı dosya yapılabilir demiştik. Öyleyse şimdi de random dosya yapabilmek için gerekli komutları görelim: LSET: LSET <dizi değişkeni>=<dizi ifadesi> Dizi ifadesini, boyutu önceden belirtilmiş olan dizi değişkeni ifadesinin içerisine soldan itibaren yerleştirir. Eğer dizi ifadesinin uzunluğu, dizi değişkeninin uzunluğundan fazla ise dizi ifadesinin yerleştirme neticesinde artacak olan kısmı atılır. Eğer tersi ise; yani dizi ifadesi, dizi değişkeni için açılan boyuttan uzun ise artan kısım boşluklarla tamamlanır. LSET A$=B$ :A$ değişkeninin boyutu önceden belirtilmiş olmak şartıyla B$ değişkeninin değerini A$ değişkeninin içerisine yerleştirir. A$ için 30 yer ayrılmış olsun. B$="MESLEK LİSESİ" olsun. Bu durumda yukarıdaki örnek komut neticesinde yerleşim şöyle olur. 51

A$="MESLEK LİSESİ..." Burada (.) işaretleri boşlukları temsil etmektedir. RSET: RSET <dizi değişkeni>=<dizi ifadesi> Dizi ifadesini, boyutu önceden belirtilmiş olan dizi değişkeni ifadesinin içerisine sağdan itibaren yerleştirir. Eğer dizi ifadesinin uzunluğu, dizi değişkeninin uzunluğundan fazla ise dizi ifadesinin yerleştirme neticesinde artacak olan kısmı atılır. Eğer tersi ise; yani dizi ifadesi, dizi değişkeni için açılan boyuttan uzun ise artan kısım boşluklarla tamamlanır. RSET A$=B$ :A$ değişkeninin boyutu önceden belirtilmiş olmak şartıyla B$ değişkeninin değerini A$ değişkeninin içerisine sağdan itibaren yerleştirir. A$ için 30 yer ayrılmış olsun. B$="MESLEK LİSESİ" olsun. Bu durumda yukarıdaki örnek komut neticesinde yerleşim şöyle olur. A$="...MESLEK LİSESİ" Burada (.) işaretleri boşlukları temsil etmektedir. FIELD: Kullanılış Formu : FIELD <#dosya numarası>,<alan listesi> Bu komut; random dosyalarda, açılmış olan dosyadaki 1 kayıt ifadesinin içeriğini bölümlendirir ve bu bölümlere daha önceden dizi değişkenine atanmış olan verileri yerleştirir. Alan listesi alan boyutları ve dizi değişkenleri olarak iki parça halinde düşünülebilir. Alan boyutları 0-255 arası tamsayılardır ve herbir değişken için ayrılan alanın uzunluğunu belirtirler. Fıeld önündeki alan boyutlarının toplamı, open önüöda belirtilen kayıt uzunluğuna eşit, veya (anahtarlı dosya ise en az iki) kısa olmalıdır. Dizi değişkeni ifadeleri ise yazısal değişkenlerden oluşur. Yazısal değişken kullanılmasının nedeni random dosyaya sayısal değişken kaydedilemeyişidir. FIELD #1,10 AS X$,15 AS Y$, 5 AS Z$ Bu örnek satırdaki ifadeye göre 2 numaralı dosyanın her bir kaydının ilk 10 karakteri X$,sonraki 15 karakteri Y$, ve sonraki 5 karakteri de Z$ değişkenine ayrılmıştır. Dizi değişkeni ifadelerinin yazısal olduğuna dikkat ediniz. 52

GET: GET <#dosya numarası>,[<kayıt numarası>] Get komutu daha önceden açılmış random dosyadan verilerin alınarak tampon hafızaya aktarılmasını sağlar. Diğer bir deyişle açılmış olan random dosyadan belirtilen numaralı kaydın okunmasını sağlar.kayıt numarası okunmak istenen kaydın numarasını belirten sayısal değişkendir. Eğer kayıt numarası kullanılmazsa 1 numaralı kayıt okunur. GET #2,I% : I%=6 ise bu satır sayesinde 2 numaralı açılmış olan random dosyadan 6. kayıt okunur. PUT: PUT <#dosya numarası>,[<kayıt numarası>] Put komutu daha önceden açılmış random dosyaya kayıt edilmek istenen verilerin tampon hafızaya aktarılmasını sağlar. Diğer bir deyişle açılmış olan random dosyaya belirtilen numaralı kaydın yazılmasını sağlar.kayıt numarası yazılmak istenen kaydın numarasını belirten sayısal değişkendir. Eğer kayıt numarası kullanılmazsa en son kayıt veya okumada kullanılan get önündeki kayıt numarası esas alınır. PUT #3,A% : A%=4 ise bu satır sayesinde 3 numaralı açılmış olan random dosyaya 3 numaralı kayıt bloğu kaydedilir. MKI$, MKS$, MKD$ Kullanılış Formları : <Yazısal Değişken>= MKI$<(2 bayt uzunluklu sayısal dizi)> <Yazısal Değişken>= MKS$<(4 bayt uzunluklu sayısal dizi)> <Yazısal Değişken>= MKD$<(8 bayt uzunluklu sayısal dizi)> Random dosyaya kayıt edilmek istenen okunan 2,4 ve 8 byte uzunluklu sayısal dizileri yazısal dizilere dönüştürürler.. 40 BRUT=2*(A+2*D) 50 FIELD #2, 10 AS A$, 4 AS B$ 60 BRUT$=MKS$(BRUT) 70 LSET B$=BRUT$ 80 LSET A$=X$ 90 PUT#1,I%. 53

CVI, CVS, CVD Kullanılış Formları : <Sayısal Değişken>= CVI <(2 bayt uzunluklu yazısal dizi)> <Sayısal Değişken>= CVS <(4 bayt uzunluklu yazısal dizi)> <Sayısal Değişken>= CVD <(8 bayt uzunluklu yazısal dizi)> Random dosyadan okunan 2,4 ve 8 byte uzunluklu yazısal dizileri sayısal değişkene dönüştürürler.. 50 FIELD #2, 10 AS A$, 4 AS B$ 60 GET #2 70 BRUT=CVS(B$). Şimdi bu komutlarla yapılmış bir telefon rehberi örneğini inceleyelim: Aşağıda istenenleri yapabilecek yetenekte olan bir basıc programını random dosya sistemiyle yapınız? İstenenler : - Program istenirse belirli bir miktar veriyi ekrana listelemeli - Bütün kayıtları ekrana listeleyebilmeli - İsme göre veya telefon numarasına göre arama yapmaya imkan vermeli 1 REM *** RANDOM DOSYA İLE TELEFON REHBERİ *** 10 DIM A$(1000),TEL(1000) 20 CLS 30 REM << MENU HAZIRLAMA >> 40 LOCATE 10,35 50 PRINT "1- O K U M A " 60 LOCATE 13,35:PRINT "2- K A Y I T" 70 LOCATE 16,35:PRINT"3- A R A M A" 80 LOCATE 20,35 : INPUT"SECIMINIZ";S 90 ON S GOTO 120,240,430 100 PRINT"3'DEN KUCUK BIR SAYI SECINIZ" 110 GOTO 80 120 CLS 130 INPUT"KAC KAYIT GORMEK ISTIYORSUNUZ";N 135 LL$="ZZZZZ" 140 OPEN "R",#1,"DOSYA",40 142 J$=SPACE$(30) 144 LSET J$=LL$ 145 FIELD #1, 30 AS A$, 10 AS TEL$ 150 FOR I%=11 TO (N+10) 160 GET #1, I% 54

170 IF A$=J$ THEN 200 180 PRINT I%;TAB(8)A$;TAB(40)TEL$ 190 NEXT I% 200 CLOSE #1 210 GOTO 410 240 REM << K A Y I T >> 250 CLS 260 INPUT "KAC KAYIT YAPACAKSINIZ";N 265 OPEN "R",1,"DOSYA",40 267 FIELD #1, 30 AS A$, 10 AS TEL$ 270 FOR I%=11 TO (N+10) 280 PRINT"ADI SOYADI ";:INPUT P$ 290 PRINT"TELEFON NO ";:INPUT L$ 292 LSET A$=P$ 294 LSET TEL$=L$ 330 PUT #1, I% 350 NEXT I% 360 S$="ZZZZZ":SS$="11111" 362 LSET A$=S$ 364 LSET TEL$=SS$ 370 PUT #1, I% 390 CLOSE #1 400 PRINT"BASA DONMEK ICIN BIR TUSA BASINIZ" 410 Z$=INKEY$:IF Z$="" THEN 410 420 GOTO 20 430 REM << A R A M A >> 440 PRINT"TELEFON NUMARASI OGRENECEKSENIZ...1":PRINT 450 PRINT"ISIM OGRENECEKSENIZ...2":PRINT 460 PRINT"TUSUNA BASINIZ" 470 T$=INKEY$:IF T$="" THEN 470 480 IF T$="1" THEN INPUT"ADI SOYADI";D$:GOTO 495 490 IF T$<>"2" THEN 440 ELSE INPUT "TELEFON NO=";B$ 495 R$=SPACE$(30):LSET R$=D$ 496 Y$=SPACE$(10):LSET Y$=B$ 497 O$="ZZZZZ" :OT$=SPACE$(30):LSET OT$=O$ 500 OPEN"R",1,"DOSYA",40 509 FIELD #1, 30 AS A$, 10 AS TEL$ 510 FOR I%=11 TO 1000 520 GET #1, I% 530 IF OT$=A$ THEN 580 540 IF T$="1" AND R$=A$ THEN 570 550 IF T$="2" AND Y$=TEL$ THEN 570 560 NEXT I% 570 PRINT A$,TEL$ 55

580 CLOSE #1 590 IF A$<>OT$ THEN 400 600 PRINT"ARADIGINIZ MEVCUT DEGIL" 610 GOTO 400 EK. ÖRNEKLER ALGORİTMA ÖRNEKLERİ 1. İki sayının toplamını bulan algoritmayı tasarlayınız? 2. GİR a 3. GİR a 4. Toplam=a+b 5. YAZ Toplam 6. DUR 2. İki sayının ortalaması bulan algoritmayı tasarlayınız? 2. GİR a 3. GİR b 4. Toplam=a+b 5. Ortalama=Toplam/2 6. YAZ Ortalama 7. DUR 3. Girilen iki sayıyı karşılaştıran algoritmayı tasarlayınız? 2. GİR a 3. GİR b 4. EĞER a>b İSE YAZ a,b den büyük :GİT7 5. EĞER a<b İSE YAZ b büyük :GİT7 6. YAZ eşit 7. DUR 56

4. Girilen farklı üç pozitif sayının en büyüğünü bulan algoritmayı tasarlayınız? 2. GİR a,b,c 3. enb=a 4. EĞER b>enb İSE enb=b 5. EĞER c>enb İSE enb=c 6. YAZ enb 7. DUR 5. Girilen bir sınır değerine kadar olan sayıların toplamının algoritmasını tasarlayınız? 2. t=0:s=0 3. GİR sınır 4. s=s+1 5. t=t+s 6. EĞER s<sınır İSE GİT 3 7. YAZ t 8. DUR 6. Girilen bir sınır değerine göre sınır değeri tek ise ortalama, çift ise çarpımını bulan algoritmayı tasarlayınız? 2. GİR sınır 3. x=sınır 4. Çift=0:tek=-1:s=0:top=0:carp=1 5. x=x-2 6. x=-1 İSE GİT 8 7. x=0 İSE GİT 13 8. GİT 4 9. tek=tek+2 10. s=s+1 11. top=top+tek 12. EĞER tek<sınır İSE GİT 8 13. YAZ toplam:dur 14. çift=çift+2 15. carp=carp*çift 16. EĞER çift<sınır İSE GİT 13 17. YAZ carp 18. DUR 57

7. Bir mağazada uygulanan indirim oranları 20 milyona kadar yapılan alışverişlerde %5,20 milyon üzeri ve 50 milyona kadar olan alışverişlerde %10, 50 milyondan sonrası için %15 indirim uygulanmaktadır. Müşterinin yaptığı alışveriş değerine göre ödeyeceği net rakamı bulan algoritmayı tasarlayınız? 2. GİR Toplam fiyatı: ;f 3. EĞER f<20.000.000 İSE a=(f*5)/100 f=f-a YAZ f DUR 4. EĞER f>20.000.000 ve f<=50.000.000 İSE a=f*0,10 f=f-a YAZ f DUR 5. EĞER f>50.000.000 İSE a=f*0,15 f=f-a YAZ f DUR 8. Girilen alt sınır ile üst sınır arasında üç ile bölünebilen sayıların ortalamasını bulan algoritmayı tasarlayınız? 2. n=0:t=0 3. GİR alt,ust 4. x=ust 5. x=x-3 6. EĞER x=0 İSE GİT10 7. EĞER x=1 İSE alt=alt+2: GİT10 8. EĞER x=2 İSE alt=alt+1: GİT10 9. GİT5 10. DÖNGÜ i=alt,ust,3 11. t=t+i 12. n=n+1 13. DÖNGÜ SONU i 14. Ort=t/n 15. YAZ Ort 16. DUR 58