Yrd. Doç. Dr. Caner ÖZCAN

Benzer belgeler
BLM-112 PROGRAMLAMA DİLLERİ II. Ders-8 Dosya İşlemleri-1. Yrd. Doç. Dr. Ümit ATİLA

Yrd. Doç. Dr. Caner ÖZCAN

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

ALGORİTMA VE PROGRAMLAMA II

Yrd. Doç. Dr. Caner ÖZCAN

Eln 1002 Bilgisayar Programlama II

Yrd. Doç. Dr. Caner ÖZCAN

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-11 Karakter Diziler. Yrd. Doç. Dr. Ümit ATİLA

Yrd. Doç. Dr. Caner ÖZCAN

Hafta 7 C Programlama Diline Giriş ve C Derleyicisi

Hafta 12 Karakter Tutan Diziler

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

DOSYA İŞLEMLERİ Programlama dilleri hafta -

Temel Bilgisayar Programlama

Yrd. Doç. Dr. Caner ÖZCAN

C Dosyalama. Öğr. Gör. M. Ozan AKI. Rev 1.0

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN

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

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-12 Fonksiyonlar. Yrd. Doç. Dr. Ümit ATİLA

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-8 Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri

BLM 112- Programlama Dilleri II. Hafta 4 İşaretçiler (Pointers)

Metin Dosyaları. Metin Dosyaları Dosya Açma ve Kapama Dosya Okuma ve Yazma Rastgele Erişim Standart Girdi/Çıktı Hata Kontrolü

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ü

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

Hafta 13 Fonksiyonlar

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

Dosyalar 1.1 Dosya Nedir?

Eln 1001 Bilgisayar Programlama I

BLM111 Programlama Dilleri I. Hafta 10 Diziler. Yrd. Doç. Dr. Caner ÖZCAN

Genel Programlama II

Chapter 11 Dosya İşleme

PROGRAMLAMA. Dosyalama İşlemleri. Yrd. Doç. Dr. Bülent Çobanoğlu. Sakarya Üniversitesi Mekatronik Mühendisliği. Yrd.Doç.Dr.

BLM 112- Programlama Dilleri II. Hafta 5 İşaretçiler (Pointers)

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

Hafta 4 Döngü Yapıları

Hafta 5 Algoritma Örnekleri ve Analizi

DOSYALAR. Temel terimler Hafta. Dr. Fahri Vatansever

şeklinde tanımlanmıştır. O halde, dosyaları daha önceki bilgilerimizi kullanarak FILE *Dosya1, *Dosya2;

Hafta 9 C Dilinde Kontrol ve Döngü Yapıları

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-10 Diziler. Yrd. Doç. Dr. Ümit ATİLA

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-3 İşaretçiler (Pointer) (Kısım-2)

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

ALGORİTMA VE PROGRAMLAMA II

ELN1001 BİLGİSAYAR PROGRAMLAMA I

Hafta 11 Çok Boyutlu Diziler

12. Saat : Dosyalar I (Files)

ALGORİTMA VE PROGRAMLAMA II

Hafta 8 C Dilinde Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri

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

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

10. DOSYA GİRİŞ ÇIKIŞ FONKSİYONLARI

Temel Giriş/Çıkış Fonksiyonları

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA II

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-1 Kapsama Kuralları & Rasgele Sayı Üretimi & Rekürsif (Özyinelemeli) Fonksiyonlar

Strings(Karakter Dizisi)

Verileri Sıralı ve Random Erişimli Dosyalamak

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-7 Sıralama Algoritmaları

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-7 C Programlama Diline Giriş

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

Yrd. Doç. Dr. Caner ÖZCAN

Fen ve Mühendislik Uygulamalarında MATLAB

Bilgisayar Programlama MATLAB

BİLGİSAYAR UYGULAMALARI Şırnak Üniversitesi Mühendislik Fakültesi Güz Dönemi Arş.Gör. Eren DEMİR ve Arş.Gör. Veysel KIŞ (

Yrd. Doç. Dr. Caner ÖZCAN

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-2 Değişken Kavramı ve Temel Operatörler

Girdi Çıktı İşlemleri

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

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-4 Döngü Yapıları. Yrd. Doç. Dr. Ümit ATİLA

İSMET AKTAR ANADOLU TEKNİK LİSESİ BİLİŞİM TEKNOLOJİLERİ ALANI WEB PROGRAMCILIĞI DALI

Özyineleme (Recursion)

ALGORİTMA VE PROGRAMLAMA I

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi

Sınav tarihi : Süre : 60 dak.

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

Hafta 1 Programlamaya Giriş

NB Ekran Seri Port Üzerinden Veri Okuma/Yazma. Genel Bilgi Protokol Oluşturma Veri Okuma Veri Yazma

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA I

Yrd. Doç. Dr. Caner ÖZCAN

C PROGRAMLAMA D İ L İ

Dr. Fatih AY Tel: fatihay@fatihay.net

Algoritma ve Akış Diyagramları

C Konsol Giriş Çıkış Fonksiyonları

Yrd. Doç. Dr. Caner ÖZCAN

Veri Yapıları Laboratuvarı

Week 5 Examples and Analysis of Algorithms

Bilgisayar Sistemlerine Genel Bakış

BLM 112- Programlama Dilleri II. Hafta 2 C Programlarının Bellek Düzeni ve Rekürsif (Özyinelemeli) Fonksiyonlar

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA II

enum bolumler{elektronik, insaat, bilgisayar, makine, gida};

BİLGİSAYAR PROGRAMLAMA Araş. Gör. Ahmet ARDAHANLI. Kafkas Üniversitesi Mühendislik Fakültesi

BİH 605 Bilgi Teknolojisi Bahar Dönemi 2015

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta

işlemler bittikten sonra dosyaların kapatılması uygun olacaktır. Bunun için, fclose(fin);

Dizgiler. C dilinde karakter m şeklinde tek tırnak içerisinde yazılan ifadelerdir. Bu karakterlerin her biri aslında bir tamsayı ile ifade edilir.

Transkript:

Yrd. Doç. Dr. Caner ÖZCAN

GİRİŞ Değişken ve dizilerde tutulan değerler programın çalışması esnasında değerlerini korurlarken programın çalışması sona erdiğinde veri kaybolur. Dosyalar verinin kalıcı olarak saklanması için kullanılır. Bilgisayarlar dosyaları disk, flash bellek gibi depolama aygıtlarında tutarlar. 2

Veri Hiyerarşisi Bilgisayarlar tarafından işlenen tüm veriler 1 ler ve 0 ların kombinasyonundan oluşur. Bit: Bilgisayar sistemlerindeki en küçük veri birimidir. En küçük birim olan bit değeri 1 veya 0 olabilir. Byte: Harfler, rakamlar, özel semboller karakterledir. Bilgisayarlar yalnızca 1 ler ve 0 lar ile işlem yapabildiği için bilgisayarlardaki karakter setinde yer alan her bir karakter 1 ler ve 0 ların diziliminden oluşur (bayt). 1 bayt = 8 bit Alan: Karakterlerin bir araya gelmesiyle oluşturduğu anlamlı bütün. Örn: kişi adı Kayıt: Birbiri ile ilişkili alanların bir araya gelmesiyle oluşur. Struct veya class ile oluşturulur. Örn: Bir okuldaki bir öğrenciye ait numara, ad, soyad, adres gibi alanların bir araya gelmesiyle bir kayıt oluşturulur. Dosya: Birbiri ile ilişkili kayıtların bir araya gelmesiyle oluşur. Örn: Öğrencilere ait dosya Database: Birbiri ile ilişkili dosyaların bir araya getirilmesi ile oluşturulur. 3

Veri Hiyerarşisi 4

Veri Hiyerarşisi Kayıt Anahtarı: Bir dosya içerisindeki belli kayıtların elde edilebilmesi için en azından kayıtlara ait bir alanın anahtar olarak kullanılması gerekir. Örn: Bir okul dosyasında öğrenci numarası kayıt anahtarı olarak belirlenebilir. Sıralı Dosya: Kayıtları dosya içerisinde tutmanın en popüler yöntemi. Records typically sorted by record key 5

Dosyalar ve Stream C de bir dosya bayt dizisi olarak ele alınır. Dosya sonunda end-of-file işaretçisi bulunur - veya dosya belirli bir bayt değerinde son bulur. Dosya açıldığında bir stream oluşturulur. Stream, dosya ile program arasında bir iletişim kanalı oluşturur. Bir dosyayı açmak dosyanın veri yapısını işaret eden bir pointer döndürür. Örnek dosya işaretçileri: stdin - standard input (klavyeden veri okumayı sağlar) stdout - standard output (ekrana veri yazdırmayı sağlar) stderr - standard error (ekran) 6

Dosyalar ve Stream Dosya yapısı (bir dosya açıldığında dosyanın yapısını işaret eden bir pointer döndürülür) Dosya tanımlayıcı İşletim sisteminin açık dosya tablosunda bir indis Dosya Kontrol Bloğu (FCB) Her dizi elemanında bulunur. Sistem bunu kullanarak dosyayı yönetir. Giriş, çıkış ve hata işlemleri stdin, stdout ve stderr işaretçileri ile değiştirilir. 7

Dosyalar ve Stream Oku/yaz fonksiyonları standart giriş kütüphanesinde fgetc Dosyadan bir karakter okur Parametre olarak bir dosya işaretçisi alır fgetc( stdin) getchar ile aynı işi yapar fputc Dosyaya bir karakter yazar. Parametre olarak bir dosya işaretçisi ve yazılacak olan karakteri alır fputc( 'a', stdout ), putchar( 'a' ) ile aynı işi yapar. fgets Dosyadan bir satır okur fputs Dosyaya bir satır yazar fscanf / fprintf scanf ve printf fonksiyonlarının dosya işlemlerindeki karşılıklarıdır 8

Sıralı Erişilen Dosya Oluşturma C herhangi bir veri yapısını kullanmayı zorunlu kılmaz. Programcı kendi veri yapısını kendisi belirler. Dosya oluşturma FILE *myptr; myptr isminde bir dosya işaretçisi tanımlar. myptr = fopen("myfile.dat", openmode); Fopen fonksiyonu belirtilen dosyayı gösteren bir dosya işaretçisi döndürür. İki parametre alır açılacak dosya ve dosyanın açılış modu. Eğer dosya açma başarısız olursa NULL döner. fprintf Dosyaya yazmak için kullanılır. Printf ten farkı ilk parametre yazılacak dosyayı işaret eden bir pointer dır. 9

Sıralı Erişilen Dosya Oluşturma feof( Dosya işaretçisi ) Eğer end-of-file göstergeci belirtilen dosya için ayarlanmış ise true döndürür. fclose( Dosya işaretçisi) Belirtilen dosyayı kapatır. Program sonlandırıldığında otomatik olarak gerçekleştirilir. Detaylar Programlar bir veya daha fazla dosya üzerinde işlem gerçekleştirebilir. Her dosyanın farklı bir ismi olmalı her birinin kendine özel işaretçisi olmalıdır. 10

Sıralı Erişilen Dosya Oluşturma Dosya açma modları 11

Sıralı Erişilen Dosyaya Yazma 12

Sıralı Erişilen Dosyaya Yazma 13

Sıralı Erişimli Dosyadan Okuma Sıralı erişimli dosyayı okuma Bir dosya işaretçisi oluştur, dosyayı okumak için bu işaretçiyi dosyaya bağla myptr = fopen( "myfile.dat", "r" ); fscanf kullanarak dosyadan oku Scanf gibi ancak ilk parametre dosyayı gösteren bir işaretçidir fscanf( myptr, "%d%s%f", &myint, mystring, &myfloat ); Baştan sona kadar dosya okunur Dosya konumu işaretçisi Okunacak veya yazılacak sonraki bayt sayısını belirtir. İşaretçi değildir, ancak bir tamsayıdır ( bayt konumunu belirten bri sayı) Bayt ofseti de denir rewind( myptr ) Dosya konumu işaretçisini dosyanın başına alır (bayt 0) 14

Sıralı Erişilen Dosyadan Okuma 15

Uygulama 16

Uygulama 17

Uygulama 18

Uygulama 19

Sıralı Erişimli Dosyada Risk Sıralı erişimli dosya Bir veriyi değiştirirken diğer verileri değiştirme riski taşır Alanlar boyut olarak farklı olabilirler 1, 34, -890 tümü tamsayıdır ancak disk üzerinde farklı boyuttadırlar 300 White 0.00 400 Jones 32.87 (dosyadaki eski veri) Eğer biz White ismini Worthington olarak değiştirmek istersek Jones kaydına ait veriler üzerine yeni veriler yazılır. Veri üzerine yazılır 20

21

22

Kaynaklar Doç. Dr. Fahri Vatansever, Algoritma Geliştirme ve Programlamaya Giriş, Seçkin Yayıncılık, 12. Baskı, 2015. J. G. Brookshear, Computer Science: An Overview 10th Ed., Addison Wisley, 2009. Kaan Aslan, A dan Z ye C Klavuzu 8. Basım, Pusula Yayıncılık, 2002. Paul J. Deitel, C How to Program, Harvey Deitel. google.com for all images. 23