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

Benzer belgeler
Temel Bilgisayar Programlama

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

DOSYA İŞLEMLERİ Programlama dilleri hafta -

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

ALGORİTMA VE PROGRAMLAMA II

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

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

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

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

Eln 1002 Bilgisayar Programlama II

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

Genel Programlama II

Yrd. Doç. Dr. Caner ÖZCAN

ALGORİTMA VE PROGRAMLAMA II

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

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

Eln 1001 Bilgisayar Programlama I

Yrd. Doç. Dr. Caner ÖZCAN

C PROGRAMLAMA D İ L İ

12. Saat : Dosyalar I (Files)

Dosyalar 1.1 Dosya Nedir?

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

Adı Soyadı Öğrenci No. Toplam (100p) 2 (10p) +10p. 5 (25p) +10p. 3 (20p) 4 (25p) 1 (20p)

Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları

void main() { int a[] = {1, 2, 3, 4, 5, 6}; int *p=&a[2]; int **pp=&p; printf("%d", **pp+2); }

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

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

MAK 1005 Bilgisayar Programlamaya Giriş. Fonksiyonlar. Prof. Dr. Necmettin Kaya

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

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

AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ

DOSYALAR. Temel terimler Hafta. Dr. Fahri Vatansever

PROGRAMLAMAYA GİRİŞ DERS 2

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

Karşılaştırma Komutları (Switch ve? Operatörü)

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

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

Temel Giriş/Çıkış Fonksiyonları

Fen ve Mühendislik Uygulamalarında MATLAB

#include<stdio.h> #include<conio.h> #define doktorsayisi 3. typedef struct dr{ int ay1, ay2, ay3, ay4; } doktor; float hesapla(doktor dktr){

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

Adım Adım C. Dr. Hidayet Takcı

Bilgisayar Programlama MATLAB

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

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

BİL1001 Bilgisayar Bilimlerine Giriş 1

C PROGRAMLAMA D İ L İ

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

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

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

ALGORİTMA VE PROGRAMLAMA II

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

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

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

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

Diziler (Arrays) Çok Boyutlu Diziler

ESM-361 Mikroişlemciler. 3. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN

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

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

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

Hafta 12 Karakter Tutan Diziler

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

Arasınav Sınavı Soruları Güz 2017 Süre: 90 Dakika

ALGORİTMA VE PROGRAMLAMA I

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

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

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

SAKARYA ÜNİVERSİTESİ BİLGİSAYAR VE BİLİŞİM BİLİMLERİ FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ GÜZ DÖNEMİ PROGRAMLAMAYA GİRİŞ DERSİ

2) /* Kullanıcıdan alınan iki sayının obebini alt fonksiyon yardımı ile hesaplayan C programı*/

Struct VE GÖSTERİCİLER FONKSİYONLARDA STRUCT KULLANIMI Programlama dilleri hafta -

Algoritma ve Programlama II Recursive Fonksiyonlar Dosyalama

STRİNG DİZİLER(KATARLAR)

Döngü ve Koşul Deyimleri

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

Karakter katarları ile ilgili fonksiyonlar içerir Yerel kayan noktalı sayılar tanımlanır

Başkent Üniversitesi MühendislikFakültesi BaharYarıyılı YerSıra No BİL 101 Bilgisayar Yazılımı-I Dersi Dönem Sonu MAZERET Sınavı

C Programlama printf() Fonksiyonu

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

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

Deney 7: Fonksiyon Tanımlama ve Parametre Aktarım Yöntemleri

Girdi Çıktı İşlemleri

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

BM102 BİLGİSAYAR PROGRAMLAMA II LABORATUVAR UYGULAMALARI. 3Hafta

MAK 1005 Bilgisayar Programlamaya Giriş C DİLİNE GİRİŞ. Prof. Dr. Necmettin Kaya

Fen ve Mühendislik Uygulamaları ile MATLAB

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

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

Fonksiyonlar (Altprogram)

BÖLÜM 7: DÖNGÜ KONTROL YAPILARI

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 PROGRAMLAMA D İ L İ

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

Adı Soyadı : Öğrenci No :

Giris {\} /\ Suhap SAHIN Onur GÖK

Programlama Dilleri Laboratuvarı

Klavyeden girilen metnin karakter uzunluğu bulan C programı. Klavyeden girilen metin içerisindeki küçük ve büyük harf sayısını bulan C programı

Internet Programming II

Şekil 4-3 do while döngüsünün çalışması.

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

Telefon Rehberi Uygulaması

Transkript:

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

Dosyalar, verilen saklanması ve daha sonra okunması için bilgi içeren ve kalıcı olarak saklanabilen ortamlardır. Dosya işlemleri, bilgisayar programlamada verilerin tekrar kullanılması açısından çok önemlidir. Yazılan bilgisayar programlarında elde edilen sonuçlar, eğer dosya ortamında saklanmaz ise kaybolur. Tekrar kullanılmak istenen bu bilgiler kayıtlı olmadığından tekrar kullanılma veya kontrol edilme şansı yoktur. C dilinde ilgili dosya komutlar ile; verilerin dosyada kalıcı olarak saklanması ve daha sonra saklanan dosya içindeki verilere erişim mümkündür. Bir okuldaki öğrenci listesi, bir işletmenin müşteri kayıtları, muhasebe kayıtları, bir sınıftaki öğrencilerin notları, deney sonucu elde edilen veriler vb. yüksek sayıda her türlü veriler dosyalar içinde saklanıp işlenebilirler.

Dosya Açma ve Kapama Bir dosyadan veri okumak veya dosyaya veri yazmak için dosyanın açılması gerekir. Dosya açmak için fopen(), kapatmak için fclose() fonksiyonu kullanılır. Bu fonksiyonlar stdio.h başlık dosyasında tanımlanmıştır. Genel olarak, dosya açma kapama adımları şu şekildedir: FILE *dosya; dosya = fopen( dosya_adı, dosya_açma_modu );... dosya işlemleri... fclose(dosya); Burada FILE, stdio.h içerisinde bildirilmiş bir yapıdır. Dosya açma modu ile açılacak olan dosyanın ne amaçla açılacağı belirlenir.

Dosya açma modları: r w Sadece okumak için açılır. Dosyanın açılabilmesi için önceden oluşturulmuş olması gerekir. Bu modda açılmş olan bir dosyaya yazma yapılamaz. Sadece yazmak için açılır. Dosya diskte kayıtlı olsun veya olmasın dosya yeniden oluşturulur. Bu modda açılmış olan bir dosyadan okuma yapılamaz. a r+ w+ Veri ekleme için açılır. Mevcut bir dosyanın sonuna veri eklemek için açılır. Bu modda açılmış olan bir dosyadan okuma yapılamaz. Okuma ve yazma. Bu modda açılmış olan bir dosyanın daha önce varolması gerekir. Okuma ve yazma. Bu modda açılmış olan bir dosya var olsun veya olmasın dosya yeniden oluşturulur. a+ Okuma ve yazma. Kayıtlı bir dosyanın sonuna veri eklemek için açılır.

C dilinde iki farklı dosyalama şekli mevcuttur: 1. Sıralı (Text) dosyalar 2. Rastgele Erişimli (Binary) dosyalar SIRALI (METİN) DOSYALARI Metin dosyaları olarak adlandırılan bu dosyalarda kayıtlar arka arkaya yazılır. Dosyaya yazılan ilk kayıt dosyanın başına, son girilen kayıt ise dosyanın en sonunda bulunur. Bir kayıta erişmek için o kayıta kadar bütün kayıtların okunması gerekir.

Dosya Komutları: Komut fopen() fclose() putc() getc() feof() fprintf() fscanf() fputs() fgets() fwrite() fread() Görevi Dosya oluşturur, açar. Dosyayı kapatır. Dosyaya bir karakter yazar. Dosyadan bir karakter okur. Dosya sonuna gelindiğini sorgular. Dosyaya formatlı veri yazar. Dosyadan formatlı veri okur. Dosyaya katar yazar. Dosyadan karakter topluluğu (string) okur. Dosyaya dizi yazar. Dosyadan dizi okur.

Örnek 1: N öğrenci için sıralı erişimli bir dosyaya Öğrenci numarası, Adı ve Notunu kayıt eden C programını yazınız. #include <stdio.h> #include <conio.h> char ad[12]; int no,n,not,i=0; main() { FILE *dosya; printf("n="); scanf("%d",&n); dosya=fopen("ogrenci.txt", "w"); puts("ogrenci bilgileri giriniz:"); while( i<n ) { printf("%d. ogrencinin numarasi: ",i+1); scanf("%d",&no); printf("%d. ogrencinin adi : ",i+1); scanf("%s",&ad); printf("%d. ogrencinin notu : ",i+1); scanf("%d",&not); printf("\n"); fprintf(dosya,"%5d %10s %3d\n",no,ad,Not); i=i+1; fclose(dosya); puts("bilgiler kaydedildi.\a"); Ekran Çıktısı: ogrenci.txt içeriği:

Örnek 2: Örnek 1 de oluşturulan dosyadaki verilerden; en yüksek notu, en düşük notu ve ortalama notu hesaplayan C programını yazınız. #include <stdio.h> #include <conio.h> #include <stdlib.h> char ad[12]; int Not, No, eb, ek, n, top; float ort; main() { FILE *dosya; if( (dosya=fopen("ogrenci.txt","r")) == NULL ) {puts("dosya acilmadi!\n");exit(1); ek=1000; eb=-1000; top=0; n=0; while(!feof(dosya)) { /* Eğer okunan dosyanın sonunda boş bir satır var ise fscanf bu satırı da okumaya çalışıyor, ancak veri bulamadığı için hata değeri olarak -1'i geri gönderiyor ve son okuduğu veri satırını tekrar okuyor. Örneğin dosyada 4 satır veri var ise son satırı tekrar okuduğu için 5 satır okumuş gibi işlem yapıyor ve sonuçlar hatalı çıkıyor. Bu durum aşağıdaki if yapısı ile giderildi.*/ if (!(fscanf(dosya,"%d %s %d",&no,ad,&not)==-1)) { if(not>eb) eb=not; if(not<ek) ek=not; n++; top=top+not; fclose(dosya); ort = (float) top/n; printf("en yuksek not = %2d\n",eb); printf("en dusuk not = %2d\n",ek); printf("ortalama = %4.1f\n",ort); Ekran Çıktısı:

Örnek 3: kelvin.sck dosyasında bulunan 100 adet kelvin cinsinden sıcaklık bilgilerini derece karşılıklarını derece.sck dosyasına yazan C programını yazınız. Bu iki sıcaklık arasındaki çevrim kuralı: K = 273 + C şeklindedir. #include <stdio.h> #include <conio.h> #include <stdlib.h> float K,D; main() { FILE *oku, *yaz; int i=0, n=100; if( (oku=fopen("kelvin.sck", "r")) == NULL ) { printf("kaynak dosya acilamadi.\n"); exit(1); if( (yaz=fopen("derece.sck", "w")) == NULL ) { printf("hedef dosya acilamadi.\n"); exit(2); for(i=0; i<n; i++) { fscanf(oku,"%f",&k); D = K - 273.0; fprintf(yaz,"%8.2f\n",d); fclose(oku); fclose(yaz); puts("cevirme islemi dosyaya yazildi!\a"); kelvin.sck derece.sck

LABORATUVAR UYGULAMASI UYGULAMA SORULARI (Sıralı erişimli dosyalar) 1. Klavyeden girilen iki sayının toplamını bir dosyaya yazan C programını yazınız. 2. notlar.txt adındaki bir dosyaya alt alta istenildiği kadar sayı girişini yapıp (herhangi bir text editörü kullanılabilir) dosyayı kaydediniz. Bu notları dosyadan okuyarak ortalama değerini ekrana yazan C programını yazınız. 3. sayilar.dat adında bir dosyaya alt alta istenildiği kadar sayı girişi yapılıp dosya kayıt edilecek (herhangi bir text editörü kullanılabilir), Yazılacak C programı ile bu dosyadan sayılar okunarak; çift sayılar cift.dat adlı dosyaya yazdırılacak, tek sayılar tek.dat adlı dosyaya yazdırılacak.