ELN1002 BİLGİSAYAR PROGRAMLAMA 2

Benzer belgeler
Eln 1002 Bilgisayar Programlama II

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

Temel Bilgisayar Programlama

Yrd. Doç. Dr. Caner ÖZCAN

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

DOSYA İŞLEMLERİ Programlama dilleri hafta -

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

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

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

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

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

Dosyalar 1.1 Dosya Nedir?

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

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

Eln 1001 Bilgisayar Programlama I

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ü

Genel Programlama II

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

ELN1001 BİLGİSAYAR PROGRAMLAMA I

12. Saat : Dosyalar I (Files)

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

DOSYALAR. Temel terimler Hafta. Dr. Fahri Vatansever

ALGORİTMA VE PROGRAMLAMA II

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

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

Temel Giriş/Çıkış Fonksiyonları

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

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

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA I

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

Girdi Çıktı İşlemleri

Özyineleme (Recursion)

Strings(Karakter Dizisi)

BİL1001 Bilgisayar Bilimlerine Giriş 1

ALFASAYISAL BİLGİLER KARAKTER DİZİLERİ (STRING)

Chapter 11 Dosya İşleme

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

C Konsol Giriş Çıkış Fonksiyonları

Programlama Dilleri 1. Ders 4: Diziler

Diziler (Arrays) Çok Boyutlu Diziler

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

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

PROGRAMLAMAYA GİRİŞ DERS 2

C Programlama Dilininin Basit Yapıları

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

Bilgisayar Programlama MATLAB

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

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

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

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

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

C Programlama printf() Fonksiyonu

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.

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

ALGORİTMA VE PROGRAMLAMA I

Hafta 12 Karakter Tutan Diziler

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

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

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

Yrd. Doç. Dr. Caner ÖZCAN

Verileri Sıralı ve Random Erişimli Dosyalamak

Fen ve Mühendislik Uygulamalarında MATLAB

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

C PROGRAMLAMA D İ L İ

Bilgilerin Uzun Vadeli Saklanması

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

Dr. Fatih AY Tel: fatihay@fatihay.net

C nin Stantart Dosya Fonksiyonlarının Uyguladığı Tamponlama Mekanizması

BÖLÜM 5: TEMEL GİRİŞ/ÇIKIŞ FONKSİYONLARI

Dr. Fatih AY Tel: fatihay@fatihay.net

BİL-142 Bilgisayar Programlama II

Yrd. Doç. Dr. Caner ÖZCAN

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

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

String ve Karakter Dizileri. Yrd. Doç. Dr. Fehim KÖYLÜ Erciyes Üniversitesi Bilgisayar Mühendisliği Bölümü

Giriş. ENF102 Jeoloji

B02.6 Karar Verme, Eşitlik ve Bağıntı Operatörleri

Bölüm 1 PROGRAMLAMAYA GİRİŞ. Bölüm 2 ALGORİTMA

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

Pointer Kavramı. Veri Yapıları

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

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

Genel Programlama II

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

ALGORİTMA VE PROGRAMLAMA II

2 ISINMA TURLARI - DERLEYİCİ VE DERLEME KAVRAMLARIYLA BİRLİKTE GCC DERLEYİCİSİNE BİR BAKIŞ

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

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

int printf (const char *format [, argument,...]);

pfrintf fonksiyonu: Çıkışın formatlı olması ve bunun bir dosyaya yazdırılması durumlarında kullanılır. fprintf fonksiyonunun genel yazım biçimi,

Ders 4: Temel Giriş/Çıkış Fonksiyonları

KONU 7: DOSYA İŞLEME ( File Processing )

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

Dosyalama olarak: HTML, PDF, DOC ve XLS dosya türlerini kullanabilirsiniz. Kütüphane Modülü açıldığında Vet.Asistanı Kütüphanesi ekrana gelmektedir.

DİZİLER 5/4/2010. ENF-102 Jeoloji Giriş. Tek Boyutlu Diziler. Tek Boyutlu Diziler. Örnek. Örnek

Transkript:

ELN1002 BİLGİSAYAR PROGRAMLAMA 2 DOSYALAMA Sunu Planı Veri Hiyerarşisi Dosyalar ve Akımlar(streams) Sıralı Erişim (Sequential Access) dosyalarının oluşturulması Sıralı Erişim Dosyalarından Veri Okuma Rasgele Erişim (Random Access) Dosyaları Rasgele Erişim Dosyalarına Veri Yazma Rasgele Erişim Dosyalarından Veri Okuma 1

Veri Hiyerarşisi Bilgisayarlar tarafından kullanılan tüm veri elemanları, nihai olarak birler ve sıfırların kombinasyonlarıdır. Bunun sebebi, biri 1 diğeri de 0 olan iki kararlı mantıksal seviyeye erişimin oldukça basit ve ekonomik olmasıdır. Bilgisayarda kullanılan en küçük veri elemanı bu 0 ve 1 değerlerini kullanır. Bu veri elemanına bit (binary digit) adı verilmektedir. Bilgisayar elektronik devre yapısı, bitin geçerli değerini belirleme, bit değerini bir yapma ve bit değerini ters çevirme gibi çeşitli fonksiyonları gerçekleştirecek şekildedir. Veri Hiyerarşisi 030710022 SİNAN KAYAK 22 030710024 İLYAS KARADENİZ 24 030710028 GÖRKEM BODUR 28 030710030 GÖKHAN AKSOY 30 Kayıt Anahtarı Record Key 030710028 GÖRKEM BODUR 28 Struct Record - Kayıtlar Dosyalar Veritabanı Veritabanı Yönetim Sistemleri 030710028 GÖRKEM BODUR String Karakter Dizileri - Alanlar 00110011 01001101 Byte Karakter ASCII Değerleri 0 1 Bitler 2

Dosyalar ve Akımlar C, her dosyayı byte ların sıralı bir akımı şeklinde görür. Her dosya bir dosya sonu işaretçisiyle tamamlanır. 0 1 2 3 4 5 6 7 8 9 n-1 Dosya açıldığı zaman, bir akım o dosyayla ilişkilendirilir. Akımlar, dosyalarla programlar arasında bir haberleşme kanalı meydana getirirler. Örneğin, stdin akımı programın tuştakımından veri okuyabilmesini sağlar, stdout akımı ise programın ekrana bilgi yazabilmesine olanak verir. Program çalışmaya başladığı anda, üç dosya ve o dosyalarla ilgili akımlar otomatik olarak açılır stdin, stdout, stderr akımları. EOF Dosyalar ve Akımlar C programlama dilinde yazılan bir program çalışmaya başladığında 3 adet kütüphane dosyası otomatik olarak açılır. Bunlar; Standart girişler için stdin Standart çıkışlar için stdout Standart hata için stderr dosyalarıdır. Normalde bu dosyalar klavyeden girilen bilgiler için hazırlanmıştır, onlar üzerinde işlem yaparlar. Fakat ilave satırlarla, bu dosyaların klavye dışında başka kanallardan girilecek veri için de düzenlenmesi mümkündür. Başka kanallar dosya işaretçileridir ve yüksek seviyede giriş/çıkış sistemine tuş takımı ve ekrandan giriş/çıkış işlemlerinin yapılabilmesi mümkündür. stdin, stdout ve stderr FILE * tipi değişken kullanan herhangi bir fonksiyonda dosya işaretçileri olarak kullanılabilir. Bunlar program başında otomatik olarak yaratıldıkları gibi, program bittiğinde de otomatik olarak kapatılırlar. 3

Dosyalar ve Akımlar Bir dosya açmak, FILE yapısına(structure) bir işaretçi döndürmektir, bu işlem stdio.h kütüphanesinde tanımlıdır. FILE yapısı, dosyayı işleyebilmek için gerekli bilgiyi tutmaktadır. Bu yapı bir file descriptor dosya tanıtıcısı içerir. Bu tanıtıcı open file table (dosya tablosu aç) adlı işletim sistemi dizisinde bir index değeri sorgular. Her dizi elemanı, işletim sisteminin dosya yönetiminde kullandığı dosya kontrol bloğunu (File Control Block) içerir. stdin, stdout ve stderr akımları, stdin, stdout ve stderr dosya işaretçileri kullanılarak yönetilebilirler. Dosyalar ve Akımlar Standart Kütüphane Fonksiyonları fgetc fputc getchar putchar Bir dosyadan tek karakter okur. Karakterin okunacağı dosya için bir dosya işaretçisini argüman olarak alır. fgetc(stdin) fonksiyonu stdin den bir karakteri okur, bu getchar() fonksiyonunun eşdeğeridir. Bir dosyaya tek karakter yazar. Karakterin yazılacağı dosya için bir dosya işaretçisini argüman olarak alır. fputc( a,stdin) fonksiyonu stdout a bir karakter yazar, bu putchar( a ) fonksiyonunun eşdeğeridir. fgets gets Dosyadan satır okur. fputs puts Dosyaya satır yazar. fprintf printf Dosyaya yazar. fscanf scanf Dosyadan okur. 4

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

Sıralı Erişim Dosya Açma fopen fonksiyonu: FILE *fopen (const char *fname, const char *mode) Örnek: FILE *dsptr dsptr= fopen ( ilk_dosyam.dat, w ) Açılan dosya programın çalıştığı klasör içinde ise: dsptr= fopen ( ilk_dosyam.dat, w ) Açılan dosya farklı bir klasör içine açılıyorsa veya farklı bir klasör içindeyse dosya isminden önce bulunduğu klasörün yolu girilmelidir. dsptr= fopen ( C:\\source\\ilk_dosyam.dat, w ) Dosya açılış modu Dosya adı ve yeri fopen fonksiyonu açılış modları mod Görev Dosya mevcutsa Dosya mevcut değilse r w a r+ w+ Dosyaya sadece okuma için açar Dosyaya yazmak için açar. Dosyanın sonuna ekleme için açar. Dosyayı okuma ve yazma için açar Dosyayı yazma ve okuma için açar. Dosya açılır ve okunabilir. Dosyaya veri yazılamaz. Dosyadan okuma yapılamaz. Dosya mevcut ise sıfırlanır. Dosyadan okuma yapılamaz. Dosya yazılır (sona ilave). Dosya pozisyon göstericisi dosyanın başındadır. Dosya mevcut ise sıfırlanır. İşlem başarısız olur. Dosya mevcut değilse yaratılır. Dosya mevcut değilse yaratılır. İşlem başarısız olur. Dosya mevcut değilse yaratılır. a+ Dosyayı sonuna ekleme ve dosyadan okuma için açar. Dosya okunur ve yazılır (sonuna ilave) Dosya mevcut değilse yaratılır. 6

Sıralı Erişim Dosyaları Veri Yazma Formatlı veri yazma: fprintf() fonksiyonu kullanılır. fprintf() kuralları, printf() fonksiyonu ile aynıdır. Farklı olarak fprintf() fonksiyonuna yazma yapılacak dosya işaretçisi parametre olarak geçirilir. Soru: Bir sınıf içerisinde öğrencilerin no, adı, gano ları bir dosya içerisinde saklanacaktır. Giriş işlemi için bir program yazınız. fprintf(stdout, %d %s %lf\n,numara, isim, GANO); fopen fonksiyonu ogrenci.txt dosyasıyla C programı arasında doğrudan bir haberleşme kanalı açar. FILE tipindeki sfile işaretçisi, fopen ile açılmış dosyaya atanır. fopen fonksiyonu iki argüman alır. Bir dosya adı ve dosya açılış modu. w modunda açma, dosyanın yazılmak üzere açıldığını göstermektedir. Eğer öyle bir dosya yoksa, fonksiyon o isimde bir dosya oluşturur. Eğer öyle bir dosya varsa, fopen fonksiyonu dosyanın içeriğini uyarmadan siler. NULL??? 7

Sıralı Erişim Dosyaları Veri Okuma Sıralı dosyadan formatlı veri okuma: fscanf() fonksiyonu kullanılır. fscanf() kuralları, scanf() fonksiyonu ile aynıdır. Farklı olarak fscanf() fonksiyonuna okuma yapılacak dosya işaretçisi parametre olarak geçirilir. fscanf() de dosyada boşluk ile karşılaşıncaya kadar okuma yapar (sadece kelime okuyabiliriz). Soru: Bir sınıf içerisinde öğrencilerin no, adı, gano ları için hazırlanan dosya içerisindeki verileri okuyacak ve ekrana yazacak bir program yazınız. 8

9

10