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

Benzer belgeler
BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ Published by Juan Soulié

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak: Published by Juan Soulié

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

BMT 101 Algoritma ve Programlama I 5. Hafta. Yük. Müh. Köksal Gündoğdu 1

BMT 106 Algoritma ve Programlama II Bahar Dönemi

3. VERİ GİRİŞ-ÇIKIŞI (4ncü hafta)

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

Bölüm 2 - C ile Programlamaya Giriş

1 PROGRAMLAMAYA GİRİŞ

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

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

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

PROGRAMLAMAYA GİRİŞ DERS 2

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

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

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ü

3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler

BİLG Dr. Mustafa T. Babagil 1

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

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

BMT 101 Algoritma ve Programlama I 6. Hafta. Yük. Müh. Köksal Gündoğdu 1

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

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

C++ Operatörler (Operators)

KONU 7: DOSYA İŞLEME ( File Processing )

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

C++ Statements. { ve } arasında ifade edilen bir dizi statement bir compound statement (birleşik ifade) oluşturur.

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

5. BÖLÜM (10ncu ve 11nci hafta)

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

Dr. Fatih AY Tel: fatihay@fatihay.net

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

Bölüm 14 İleri C Konuları

C++ Dersi: Nesne Tabanlı Programlama

BBS 514 YAPISAL PROGRAMLAMA (STRUCTURED PROGRAMMING)

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN

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

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

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

Programlamaya Giriş Karar Yapıları, Tekrarlı İfadeler(Döngüler)

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

for döngüsü for (başlangıç değeri; şart; artım) ifade; for (başlangıç değeri; şart; artım) { ifadeler; }

Görsel Programlama 1

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

BİLG Dr. Mustafa T. Babagil 1

C++ Dersi: Nesne Tabanlı Programlama

Değişkenler tanımlanırken onlara ne tür veriler atanabileceği de belirtilir. Temel veri türleri oldukça azdır:

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

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

Temel Bilgisayar Programlama

NESNEYE YÖNELİK PROGRAMLAMA C++ a Giriş

KARAR YAPILARI. Acaba hangi yöne gitmeliyim? Oturduğun yerden kalkıp, kapıya varana kadar kaç kez karar verdiniz biliyor musunuz?

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İ

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

DOSYA İŞLEMLERİ Programlama dilleri hafta -

En kucuk calisabilir birime satetement denir Statements semicolon (;) ile sonlanir Yalniz basina ; null statement i ifade eder

Eln 1002 Bilgisayar Programlama II

Programlama Dili Prensipleri. Lab Notları 1

Diziler (Arrays) Çok Boyutlu Diziler

ALGORİTMA VE PROGRAMLAMA I

Dizi nin Önemi. Telefon rehberindeki numaralar, haftanın günleri gibi v.b.

C PROGRAMLAMA D İ L İ

ALGORİTMA VE PROGRAMLAMA II

Pascal Programlama Dili

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

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

C Programlama Dilininin Basit Yapıları

BÜLENT ECEVİT ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ MADEN MÜHENDİSLİĞİ BÖLÜMÜ C++ PROGRAMLAMA DİLİ DERS NOTLARI

Ders 2: Veri Tipleri, Değişkenler ve Sabitler

ELN1001 BİLGİSAYAR PROGRAMLAMA I

YZM 2105 Nesneye Yönelik Programlama

Veri Tanımları ve Mantıksal İşlemler

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

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

8- PROGRAM YAPISAL KOMUTLARI ve. M.ilkucar MAKU MYO 1

Algoritma ve Programlama II Recursive Fonksiyonlar Dosyalama

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

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

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

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

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

/*int sayi1, sayi2,toplam=0;

ALGORİTMA VE PROGRAMLAMA II

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

Karabük Üniversitesi, Mühendislik Fakültesi... WEB TEKNOLOJİLERİ

C++ ile Nesneye Dayalı Programlama

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ

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

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach()

M.ilkucar MAKU MYO 1

Fonksiyonlar (Altprogram)

Pointers (İşaretçiler)

PROGRAMLAMA TEMELLER. C Program Yap s

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

Eastern Mediterranean University Faculty of Arts & Sciences -- Department Of Mathematics BİLG213 BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

Transkript:

case 2 : C = 0.5088-0.0011*(B-135); break; case 3 : C = 0.4978-0.0010*(B-145); break; case 4 : C = 0.4878-0.0009*(B-155); break; default : printf("yanlış seçenek\n");} cout << setprecision (4); // 4 hane sayı yazılacağı belirtilir cout << " Kazanan sporcu= " << setw (4) << B << endl; cout << setprecision (5); //5 haneli sayı yazılacağı belirtilir cout << " ve C değeri = " << setw (5) << C << endl; system("pause"); return 0;} 3.5 Dosyalar (6. Hafta) Bilgisayar tarafından değerlendirlen bilgiler daha sonra kullanılacaksa kayıt edilmeleri daha uygun olacaktır. Kayıt edilen verilerin kullanımı için dosyalar kullanılır. Dosyalar FILE komutu ile pointer tanımlayıcısı kullanılarak ifade edilirler. Yazacağınız programa dosyaları kullanmadan önce FILE *fin, *fout; işaretcisi (pointer) ile tanıtılmalıdır (burada * işaretleri işaretciyi, fin ve fout dosya isimlerini tanımlar). Örnek olarak dosya sadece okuma amaçlı açılacak ise dosya için fin=fopen("dosya1.dat","r"); kullanılabilir. Bu ifade ile dosya1.dat isimli veri dosyası sadece içindeki veriler okunması (r=reading) için açılmaktadır. Sadece yazma amaçlı dosya açılmak istenirse fout=fopen("dosya1.dat","w"); (w-write) ifadesi kullanılabilir. Dosyalarla ilgili işlemler bittikten sonra dosyaların kapatılması uygun olacaktır. Bunun için, fclose(fin); fclose(out); deyimleri kullanılır. Klavyeden veri girişi için kullanılan scanf komutu yerine dosyadan veri okumada fscanf, ekrana veri yazma işleminde kullanılan printf komutu yerine ise fprintf kullanılır. Dosyayı, (ANSI C) programa tanıtmak için fopen(dosyadi, mod); kullanılır. Buradaki mod dosyanın açılış biçimini belirtir ("r"-read-sadece okuma, "w"-write-sadece yazma, "a"-add-ekleme). Aşağıdaki programda okuma amaçlı açılan dosyadan veri okuması yapılmaktadır. C++ da dosyadan okuma ve yazma işlemleri için kullanılabilecek içerik dosyalarının kullanılması gerekmektedir. Bunlar: ifstream.h dosyadan okuma, dosyaya giriş işlemleri için kullanılır ofstream.h dosyaya yazma, dosyadan çıkış işlemleri için kullanılır fstream.h dosyadan okuma, dosyaya yazma işlemleri için kullanılır Örnek 3-19 Aşağıdaki C++ programında, fstream dosya1("c:\\veri.txt", ios::out); komutu ile açılan metin dosyasına veriler yazdırılmakta (dosya1 << "Test Write to file";) ve işlem bitince dosya kapatılmakta (dosya1.close();) ve program sonlanmaktadır. 38

Program 3-15 Dosyaya veri yazan bir C++ programı. #include <fstream.h> int main() { fstream dosya1("c:\\veri.txt", ios::out); dosya1 << "Fizik Mühendisliği Bölümü"; dosya1.close(); return 0; } Örnek 3-20 Bir bankadan çekilen A miktarındaki kredinin aylık geri ödeme tutarı P nin ne kadar olacağını hesaplayan algoritma ve program aşağıda verilmektedir. Geri ödeme planında aylık faizin (r) ve ödeme süresinin (n) bilinmesi gerekmektedir. Sonuçlar bir dosyaya yazdırılmaktadır. Faiz hesabı formülü : P=A r/(1 (1+r) n ). Algoritma 3-12 Kredi faiz hesabı. 2. Çekilecek kredi miktarını giriniz, A 3. Aylık faiz değerleri, r1, r2, r3, r4, r5 (1, 2, 3, 5 ve 10 yıl) 4. Geri ödeme P1, P2, P3, P4, P5 (1, 2, 3, 5 ve 10 yıl), 5. n1=1*12, 6. P1=A*r1/(1 (1+r1) n1 ), 7. A, r1, n1, P1 ve P1*n1 değişkenlerindeki değerleri dosyaya yaz, 8. n2=2*12, 9. P2=A*r2/(1 (1+r2) n2 ), 10. A, r2, n2 ve P2 değişkenlerindeki değerleri dosyaya yaz, 11. n3=3*12, 12. P3= A*r3/(1 (1+r3) n3 ), 13. A, r3, n3, P3 ve P3*n3 değişkenlerindeki değerleri dosyaya yaz, 14. n5=n5+5, 15. P5=A*r5/(1 (1+r5) n5 ), 16. A, r5, n5, P5 ve P5*n5 değişkenlerindeki değerleri dosyaya yaz, 17. n10=n10+10, 18. P10=A*r10/(1 (1+r10) n10 ), 19. A, r10, n10, P10 ve P10*n10 değişkenlerindeki değerleri dosyaya yaz, 20. Son Program 3-16 Dosyaya kredi faizlerini veri olarak yazan bir C++ programı. #include <iostream> #include <fstream> #include <iomanip> #include <math.h> using namespace std; 39

int main() { float A=50000; float r1=0.0126, r2=0.0129, r3=0.0131, r5=0.0134, r10=0.0138; float P1, P2, P3, P5, P10; int n1=1*12, n2=2*12, n3=3*12, n5=5*12, n10=10*12; P1=A*r1/(1-pow((1+r1), -n1)); P2=A*r2/(1-pow((1+r2), -n2)); P3=A*r3/(1-pow((1+r3), -n3)); P5=A*r5/(1-pow((1+r5), -n5)); P10=A*r10/(1-pow((1+r10), -n10)); ofstream dosya1; // dosya1 yazma amaçlı tanımlanır dosya1.open ("veriler.txt", ios::out); dosya1 << "Çekilen Faiz Toplam Aylık Toplam \n"; dosya1 << " Para Oranı Ay Geri ödeme Ödeme \n"; dosya1 << "----------------------------------------------------\n"; dosya1 << A << " %" << setprecision(2) << r1*100 << " "; dosya1 << setprecision(0) << n1 << " "; dosya1 << setprecision(2) << P1 << " " << P1*n1 << "\n"; dosya1 << A << " %" << setprecision(2) << r2*100 << " "; dosya1 << setprecision(0) << n2 << " "; dosya1 << setprecision(2) << P2 << " " << P2*n2 << "\n"; dosya1 << A << " %" << setprecision(2) << r3*100 << " "; dosya1 << setprecision(0) << n3 << " "; dosya1 << setprecision(2) << P3 << " " << P3*n3 << "\n"; dosya1 << A << " %" << setprecision(2) << r5*100 << " "; dosya1 << setprecision(0) << n5 << " "; dosya1 << setprecision(2) << P5 << " " << P5*(n5+5) << "\n"; 40

dosya1 << A << " %" << setprecision(2) << r10*100 << " "; dosya1 << setprecision(0) << n10 << " "; dosya1 << setprecision(2) << P10 << " " << P10*(n10+10) << "\n"; dosya1.close(); return 0;} Programın çalıştırılması sonucunda oluşturulan dosya içeriği aşağıdaki gibidir: Çekilen Faiz Toplam Aylık Toplam Para Oranı Ay Geri ödeme Ödeme ---------------------------------------------------- 50000 %1.26 12 4515.75 54188.97 50000 %1.29 24 2435.75 58458.02 50000 %1.31 36 1750.95 63034.11 50000 %1.34 60 1218.03 73081.75 50000 %1.38 120 855.10 102611.74 3.6 Karakter Katarları (strings) Karakterler bellekte 1 byte yer işgal edecek şekilde saklanırlar. C++ da karakterler arka arkaya eklenerek (karakter katarı) kullanılırlar veya işlenirler. Bu katarlar char (karakter veri) tipindeki değişkenlerin diziler şeklinde tanımlanması ile oluşturulur. Dizinin her bir elemanına 1 karakter yerleştirilir. C-stilindeki karakter katarları veya string kütüphaneleri kullanılarak bellekte saklama ve diğer karakter işlemleri yapılabilir. Diziler kısmında bu konu daha ayrıntılı incelenektir. Örnek olarak ekrana cout veya fprint komutları ile yazdırılacak olan "Rakam giriniz" şeklindeki bir mesaj karakter katarıdır. Dizilerle kullanılan her stringin son karakteri veya dizinin son elemanı null karakter olmalıdır (\0). Aşağıdaki Çizelge 3-5 de C++ da rezerve edilmiş (programcı tarafından kullanılamayan) fonksiyon isimleri verilmektedir. Kalın karakterlerle yazılmış deyimler standart C deki fonksiyonlardır. Çizelge 3-5 C++ programlama dilinde rezerve edilmiş fonksiyon isimleri (Keywords). asm auto bool break case catch char class const const_cast continue default delete do double dynamic_cast else enum explicit export extern false float for friend goto if inline int long mutable namespace new operator private protected public register reinterpret_cast return short signed sizeof static static_cast struct switch template this throw true try typedef typeid typename union unsigned using virtual void volatile wchar_t while 41

3.7 SORULAR 1. Bir sınıftaki erkek ve kız öğrencilerinin boy ortalamalarını hesaplayan ve sonucu ekrana yazan bir C/C++ programını aşağıdaki algoritmayı kullanarak yazınız. Kız ve erkek öğrencilerin boy değerleri klavyeden bilgisayar belleğine aktarılmalıdır. Algoritma 3-13 Erkek ve kız öğrencilerin boy ortalamaları. 2. float b, te=0, tk=0, eo, ko; 3. int ie=0, ik=0, i; 4. char c; 5. "Öğrencinin boyunu cm cinsinden giriniz:", b; 6. "Öğrencinin cinsiyetini giriniz:", c; 7. i=0; 8. Eğer (c=='e' c=='e') ise i=1; 9. Eğer (c=='k' c=='k') ise i=2; 10. switch(i){ case 1 : {te=te+b; ie=ie+1; break;} case 2 : {tk=kk+b; ik=ik+1; break;} default : printf("işlem sonu\n"); Git 12; break;} }// swich case sonu 11. Git 5 12. eo=te/(float)ie; ko=tk/(float)ik; 13. Yaz " Erkeklerin boy ortalaması =", eo; 14. Yaz " Kızların boy ortalaması =", ko; 15. Son 2. 1 inch = 2.54 cm ve 1 cm =10 2 m ise klavyeden girilen 8.5 inch 3 lük hacim değerini m 3 değerine çeviren bir C++ programını aşağıdaki algoritmayı kullanarak yazınız. Algoritma 3-14 inch 3 lük hacim değerinin m 3 değerine dönüştürülmesi. 2. float a1, a2, a3, a4; 3. "Kübün inch biriminde hacim değerini giriniz:", a1; 4. a2=pow(a1, 1/3); 5. a3=2.54*a2*0.01; 6. a4=pow(a3, 3); 7. Yaz a1, " inch küp = ", a4, " metre küp"; 8. Son 3. Klavyeden gün olarak girilen (kesirli bir) değeri (tam sayılar olarak) saat, dakika ve saniyeye çeviren C++ programını aşağıdaki algoritmayı kullanarak yazınız. 42

Algoritma 3-15 Günün saat dakika ve saniyeye dönüştürülmesi. 2. int saniye=3600, dakika=60, saat, s1, s2, d1, d2, kalan; 3. float G; 4. "Gün değişkenine değerini giriniz", G; 5. Eğer G<=0 ise Git 4 6. s1=g*24*saniye; 7. saat=s1/saniye; 8. kalan=s1-saat*saniye ; 9. s2=kalan; 10. d1=kalan/dakika; 11. kalan=s2-d1*dakika; 12. d2=kalan; 13. Yaz G, " gün =", saat, ", saat ", d1, " dakika ", d2, " saniye"; 14. Son. 4. Aşağıdaki çizelgedeki gibi bir dosyadan okunan verileri kullanarak değişik maddelerden yapılmış silindirlerin yoğunluğunu hesaplayan programı aşağıdaki algoritmayı kullanarak yazınız. Madde Kütle (kg) Yarıçap (cm) Uzunluk (cm) Alüminyum 51.5 2.53 3.75 Bakır 56.3 1.23 5.06 Pirinç 94.4 1.54 5.69 Teneke 69.1 1.75 3.74 Demir 216.1 1.89 9.77 Algoritma 3-16 Dosyadan okunan bilgilerlerden maddelerin yoğunluğunun hesaplanması. 2. int main() 3. char DosyaAdi[20]; // dosya adını saklama değişkeni 4. char satir[80]; // dosyadaki her satırı okuma (80 sütun) 5. ifstream dosya1; // dosya1 tanımlanır 6. Yaz "Dosya adını giriniz:"; 7. cin.getline (DosyaAdi, sizeof (DosyaAdi)); 8. dosya1.open (DosyaAdi, ios::in); // dosya okuma amaçlı açılır 9. Eğer (dosya1.eof()) ise Git 13 10. dosya1.getline(satir, sizeof (satir)); 11. cout << satir << endl; 12. Git 9 13. dosya1.close (); // dosya1 kapatılır 14. return 0; // işletim sistemine hata yok bilgisi yollanır 15. Son 43

5. Dörtgen bir prizmaya ait kenar uzunlukları klavyeden girildikten (yani a, b ve c değişkenlerine aktarıldıktan) sonra bu dörtgen prizmanın köşegen uzunluğunu ( ) denklemine göre hesaplayan C/C++ programını aşağıdaki algoritmayı kullanarak yazınız. Algoritma 3-17 Dörtgen prizmanın köşegen uzunluğu. 2. float a, b, c, R; 3. "Dörtgen prizmanın kenar değerlerini giriniz", a, b, c; 4. R=pow(a*a+b*b+c*c, 0.5); 5. Yaz " Dortgen prizmanın köşegen uzunluğu = ", R; 6. Son. 44