ELN1002 BİLGİSAYAR PROGRAMLAMA 2

Benzer belgeler
ELN1002 BİLGİSAYAR PROGRAMLAMA 2

ALGORİTMA VE PROGRAMLAMA II

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

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

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

Genel Programlama II

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

Eln 1002 Bilgisayar Programlama II

Temel Bilgisayar Programlama

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

Yrd. Doç. Dr. Caner ÖZCAN

DOSYA İŞLEMLERİ Programlama dilleri hafta -

Dosyalar 1.1 Dosya Nedir?

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

DOSYALAR. Temel terimler Hafta. Dr. Fahri Vatansever

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

ALGORİTMA VE PROGRAMLAMA II

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

Verileri Sıralı ve Random Erişimli Dosyalamak

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

Yrd. Doç. Dr. Caner ÖZCAN

BÖLÜM 12: DOSYA İŞLEMLERİ

12. Saat : Dosyalar I (Files)

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

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

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

Özyineleme (Recursion)

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

Chapter 11 Dosya İşleme

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

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

Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU

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ü

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

Temel Giriş/Çıkış Fonksiyonları

Yrd. Doç. Dr. Caner ÖZCAN

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#10

Bilgilerin Uzun Vadeli Saklanması

Fen ve Mühendislik Uygulamalarında MATLAB

ALGORİTMA VE PROGRAMLAMA II

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

ALGORİTMA VE PROGRAMLAMA I

ELN1001 BİLGİSAYAR PROGRAMLAMA I

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

Yrd. Doç. Dr. Caner ÖZCAN

VISUAL BASIC DE İŞLETİM SİSTEMİ DENETİM KOMUTLARI VE FONKSİYONLARI

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

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

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

Dosyalarda Farklı Yaklaşımlar. Kütük Organizasyonu 1

ALGORİTMA VE PROGRAMLAMA II

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

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Ş (

Fiziksel Veritabanı Modelleme

Big Endian & Little Endian K.Atilla Toker İzmir Üniversitesi Meslek Yüksek Okulu Bilgisayar Programcılığı Ver:01

BİL1001 Bilgisayar Bilimlerine Giriş 1

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

BLG 312 Bilgisayar İşletim Sistemleri 2006 BLG 312. Bilgilerin Uzun Vadeli Saklanması. Dosya Sistemi Görevleri. Dosya Sistemi Özellikleri

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

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

Dr. Fatih AY Tel: fatihay@fatihay.net

Programlama Dilleri 1. Ders 4: Diziler

BÖLÜM 11: YAPISAL VERİ TİPLERİ

Diziler (Arrays) Çok Boyutlu Diziler

BLGM 344 DENEY 3 * AĞ PROGRAMLAMAYA GİRİŞ

BİL 810 İnşaat Mühendisliğinde Bilgisayar Uygulamaları

C Programlama Dilininin Basit Yapıları

LİNUX. Dosyalar ve dizinler

Bilgisayar Programlama MATLAB

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0

BLGM 343 DENEY 8 * TCP İLE VERİ İLETİŞİMİ

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

GENEL GĐRĐŞ-ÇIKIŞ FONKSĐYONLARI. ENF102 Jeoloji 1. #include <stdio.h> printf Fonksiyonu ÖRNEK. printf

Eln 1001 Bilgisayar Programlama I

Algoritma ve Programlamaya Giriş

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

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

3. Aşağıdakilerden hangisi B5 hücresinin değerini getirir (Kopyalar)? a-) =B5 b-) B5 c-) =B(5) d-) =5B

Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf

Göstericiler (Pointers)

Pascal Programlama Dili

ALGORİTMA VE PROGRAMLAMA II

elemanlarının gezilmesine yönelik bir örnek sunulmuştur, inceleyiniz.

Değişken atama Kullanıcıdan veri girişi istendiğinde kullanılır. 1. Bir değişkene değer atama (örn: a=4 gibi) 2. Klavyeden veri girme

DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II

ELN1001 BİLGİSAYAR PROGRAMLAMA I

Dosyaların Özellikleri (Attribute) Dosya İşlemleri. İki Seviyeli Katalog Sistemleri. Tek Seviyeli Katalog Sistemleri. Hiyerarşik Katalog Sistemleri

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

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

CUMHURİYET MESLEKİ VE TEKNİK ANADOLU LİSESİ BİLİŞİM TEKNOLOJİLERİNİN TEMELLERİ DERSİ DERS NOTLARI BELLEKLER

8. İŞARETCİLER (POINTERS)

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

PROGRAMLAMAYA GİRİŞ DERS 2

ALGORİTMA VE PROGRAMLAMA I

Yrd. Doç. Dr. Caner ÖZCAN

C++ Giriş Ders 5 MSGSU Fizik Bölümü Ferhat ÖZOK

Yrd. Doç. Dr. Caner ÖZCAN

12. Kat Oluşturma. Bu konuda mevcut bir katın bilgilerini kullanarak nasıl yeni katlar oluşturulabileceği incelenecektir.

Öğr. Gör. Serkan AKSU 1

Transkript:

ELN1002 BİLGİSAYAR PROGRAMLAMA 2 DOSYALAMA Sunu Planı Rasgele Erişim (Random Access) Dosyaları Rasgele Erişim Dosyalarına Veri Yazma Rasgele Erişim Dosyalarından Veri Okuma 1

Sıralı Erişim Dosyası Bir dosya içine kayıtları veya yapıları yerleştirmenin en yaygın yolu, dosyayı Sıralı Erişim Dosyası olarak yapılandırmaktır. Bu yapıda kayıtlar, kayıt anahtarı alanı göz önünde bulundurularak yerleştirilir. Öğrenci bilgileri dosyasında, bilgiler öğrenci numaralarının küçükten büyüğe doğru sıralanacağı şekilde yerleştirilir. En başta en küçük öğrenci numarası, en sonda ise en büyük öğrenci numarası vardır. C normalde, dosyalar için özel bir yapı sağlamaz. Dolayısıyla, dosya yapısı diye bir kavram C dilinin bir parçası değildir. Dosyalama yapısının oluşturulması, tamamen programcıya aittir. Sıralı Erişim Dosya Açma Dosya açma işlemi üç aşamada gerçekleşir. Dosya işaretçisi tanımlanır. fopen() fonksiyonunu kullanarak dosyanın açılması/yaratılması Dosyanın açılıp açılmadığının kontrolü Dosya işlemleri tamamlandıktan sonra dosya fclose ile kapatılır. 2

Rastgele Erişim Dosyaları Sıralı erişim dosyalarında dosya içindeki kayıtlar, dosyanın içine fprintf fonksiyonu ile yerleştirilirler ve aynı uzunlukta olmak zorunda değillerdir. Fakat, rastgele erişim dosyaları için: her bir kayıt normalde aynı uzunluktadır ve diğer kayıtların üzerinden teker teker geçmeyi gerektirmeksizin doğrudan istenen kayda ulaşabileceği şekilde doğrudan(dolayısıyla son derece hızlı) erişilebilirdir. Bu, rastgele erişim dosyalarını, belirli veriye hızlı erişimi gerektiren pek çok uygulama açısından, çok uygun bir araç haline getirir. Rastgele Erişim Dosyaları Rastgele erişim dosyasındaki her bir kayıt eşit uzunlukta olduğu için, bir kaydın dosya başından itibaren nerede bulunabileceği kayıt anahtarının fonksiyonu cinsinden hesaplanabilir. 0 100 200 300 400 500 byte offsetleri 100 byte 100 byte 100 byte 100 byte 100 byte 100 byte 3

Rastgele Erişim Dosyaları Sabit uzunluklu kayıtların varlığı, var olan bir dosyaya, diğer kayıtlara herhangi bir zarar vermeden kayıt yerleştirilebilmesine izin verir. Dosya içindeki herhangi bir kaydın da, aynı şekilde güncellenebilmesine veya değiştirilebilmesine imkan verir. Rastgele Erişim Dosyaları Standart Kütüphane Fonksiyonları fwrite fread fseek rewind ftell fwrite(&ram_adr,sizeof(int),1,fptr); fwrite, bellekte belirli bir adreste bulunan belirli sayıda byte ı dosyanın içine transfer eder. Verinin dosya içinde yazılacağı yeri dosya pozisyon işaretçisi göstermektedir. fread(&ogrenci_data,sizeof(struct ogrenci_data), 1, odptr); Dosya içinde dosya pozisyon işaretçisi ile gösterilen yerdeki belirli sayıda byte ı, bellekte gösterilen adrese transfer eder. int fseek(file *stream, long int offset, int whence); Dosya işaretçisini dosya içerisinde istenilen noktaya getirir. Dosya işaretçisini dosyanın başına taşır. Dosyaya işaretçisinin o an için bulunduğu konumla ilgili bilgiyi döndürür. 4

fwrite fwrite(&ram_adr,sizeof(int),1,fptr); Dosyaya yazılacak verinin bellekteki adresi Dosyaya yazılacak verinin her bir elemanının byte uzunluğu Dosyaya yazılacak eleman sayısı Dosya pozisyon işaretçisi fread fread(&ogrenci_data,sizeof(struct ogrenci_data), 1, fptr); Dosyadan okunacak verinin bellekte yerleştirileceği adres Dosyadan okunacak eleman sayısı Dosyaya yazılacak verinin her bir elemanının byte uzunluğu Dosya pozisyon işaretçisi 5

fseek int fseek(file *stream, long int offset, int whence); Dosya pozisyon işaretçisi Konumlandırma işleminin yapılacağı ofset değeri. Dosya erişim işlemi buradan başlar. Ofset nereden başlar: Dosya başı (SEEK_SET) Dosya sonu (SEEK_END) Geçerli pozisyon (SEEK_CUR) #define SEEK_SET 0 #define SEEK_CUR 1 #define SEEK_END 2 6

7

8

Binary Dosya Açma, Okuma ve Yazma Bir binary dosyanın açılması karakter dosyalarının açılması gibi yapılır, sadece mod farklıdır. Örn : fp = fopen( data.txt, rb ); Bir binary dosyaya rastgele yazma fwrite() fonksiyonu ile yapılır. Bir binary dosyadan rastgele okuma fread() fonksiyonu ile yapılır. 9

Text ve binary dosyalar işletim sistemlerinde bir dosya text ve binary modda açılabilir. Dosyayı binary modda açabilmek için açış modunun sonuna b eklemek gerekir. Örneğin : f = fopen( data, r ) text modda f = fopen( data, rb ) binary modda DOS da bir dosya içerisinde bir karakter aşağı satırın başında görünüyorsa bunu sağlamak için o karakterden önce CR (carriage return) ve LF (line feed) karakterlerinin bulunması gerekir. CR karakteri C de \r ile belirtilir. 13 numaralı ASCII karakteridir. LF karakteri C de \n ile belirtilir. 10 numaralı ASCII karakteridir. Aşağıdaki görüntünün işlem karşılığı a\r\nb şeklindedir. printf fonksiyonunda da a\n yazılmasına rağmen yapılan işlem a\r\nb dir. a b Text ve binary dosyalar Bir dosya text modunda açıldığında dosyaya \n karakteri yazılmak istendiğinde dosya fonksiyonları otomatik olarak \r ve \n karakterlerini dosyaya yazarlar. Benzer bir biçimde dosya text modda açılmışsa dosya göstericisi \r\n çiftini gösteriyorsa dosyadan yalnızca \n karakteri okunur. DOS işletim sisteminde text ve binary dosyalar arasındaki diğer bir fark da, CTRL Z (26 numaralı ASCII karakterinin) dosyayı sonlandırdığının varsayılmasıdır. Oysa dosya binary modda açıldığında böyle bir varsayım yapılmaz. Örneğin: DOS altında bir exe dosyanın binary mod yerine text modda açıldığını düşünelim. Bu dosyada 10 numaralı ve 13 numaralı ASCII karakterleri yanyana bulunduğunda dosyadan okunan değer 1 byte olarak bize yansıyacaktır (\n). Aynı şekilde dosyadan 26 numaralı ASCII karakteri okunduğunda dosyadan artık başka bir okuma yapılamayacaktır. (Dosyanın sonuna gelindiği varsayılacaktır.) 10

11

12

Dosya kopyalama, Silme ve İsim değiştirme Dosyayı başka bir yere kopyalamak için C fonksiyonu mevcut değildir. Dosya kopyala, kopyalanacak dosyanın içeriğinin başka bir dosyaya yazılmasıyla olur. Dosya silme remove() fonksiyonu ile olur. int remove(const char *filename) Dosyanın ismini değiştirmek için rename() fonksiyonu kullanılır. int rename(const char *from, const char *to); 13

Ödev Bir not giriş ve hesaplama programı yazılacaktır. Başlangıç olarak notlar.dat dosyasında sadece isimler yer alacaktır. Kaç öğrenci olduğu belirli değildir. Cengiz Can Ali Murat Ödevler ve vizeler gerçekleştikçe ödev ve vize notları dosyaya kaydedilecektir. Ödev için od, vize için vz, final için fn karakterleri kullanılacaktır: Cengiz Can od 68 od 72 od 55 vz 34 Ali Murat od 54 od 48 od 89 vz 66 Ödev Girişler SON kelimesiyle sonlandırılacaktır Cengiz Can od 68 od 72 od 55 vz 34 od 88 od 64 od 78 fn 64 SON Ali Murat od 54 od 48 od 89 vz 66 od 78 od 82 od 90 fn 72 SON 1. Kullanıcıya her aşamada not girişi mi yapmak istediği, notları listelemek mi istediği yoksa programdan çıkmak mı istediği sorulacaktır. 2. Not girişi yapılırken, girilecek notun ödev mi vize mi final mi olduğu kullanıcıya sorulacaktır. 3. Kaç ödev girileceği, kaç vize olacağı belli değildir. Final girilene kadar herhangi bir sayıda ödev veya vize girilebilir. Final girildikten sonra, her satır sonlandırılacaktır. 4. Girişler tamamlandıktan sonra ödev ortalamasının %15 i, vize ortalamasının %35 i ve finalin %50 si toplanarak dönem içi not oluşturulacak ve bu ortalamalar.dat rastgele erişimli dosyasına yazılacaktır. 14

Ödev Ödev Tarihi: Ödev iki hafta sürelidir, 20.04.2009 24.04.2009 tarihi arası laboratuar çalışmalarında, ödevle ilgili ön çalışmalar yapılacak, 27.04.2009 01.05.2009 tarihi arasındaki laboratuar çalışmalarında tamamlanmış olacaktır. 15