Kullanıcı dosyasında okunan veriyi bazen parçalamak durumunda kalırsınız.Mesela dosyada öğrencilere ait yazılı notlarını okumanız isteniyorr.
Mehmet Sağlam 80 70 54
Nergis Şekerci 65 80 44
Aydın Bulut Kahraman 26 68 71
Can Sağlam 56 58 74
Damla Ezgi Demir 89 96 100
Şeklindeki ogrenci yapısı içindeki isim soyisim ve not dizilerina atamanız isteniyor.Bunun için normalde fscanf gibi fonksiyonları kullanabilirsiniz.Fakat yukarıdaki veriyi bu şekilde okumaya kalktığınızda Aydın Bulut Kahraman adlı öğrencinde Aydın-isim, Bulut-soyisim değişkenine atanır.Dolayısıyla Kahraman kelimesinin not değişkenine atanması gerekir.(not değişkeni char not[] şeklinde bir karakter dizisi olsun.)
Bu durumda yapıyı kelime kelime, yerine satır satır okuma işlemini kullanabiliriz.
char veri[100]; şeklinde bir char dizisi tanımlayalım.
getline(veri, 100) ile bu veriyi okuyalım.
Şimdi elimizdeki verinin 3 ya da iki isimli oluşuna göre atama yapmamız gerekiyor.Bunun için önce strtok dizgi parçalama fonksiyonu ile okuduğumuz satırı parçalayalım.
char *pch;
pch=strtok(veri," .,-\t\n");
Şimdi parça sayısına göre isim, soyisim dizilerine okuduğmuz verileri kopyalayalım.
int i=0;
while(pch!=NULL){
if(i==0)
strcpy(isim,pch); /* İlk okunan değer isim değişkenine atanır.
if(i==1){
strcpy(soyisim,pch); /*İkinci okunan değer soyisim değişkenine atanır.
strcpy(yedek, pch); /*İkinci okunan değer 3 isimli olma ihtimaline karşın yedek bir
. } /*değişkene atanır
if(i==2){
strcat(isim, " ");
strcat(isim, yedek); /* i değişkeni 2 olursa 3. isim var demektir.Bu durumda isim
strcpy(soyisim, pch); /*değişkenine ilk okunan ismin yerine boşluk karakteri ve
} /* ikinci isim atanır. 3. okunan değer ise soyisim değişkenine
pch=strtok(NULL," .,- \t\n"); /* atanır.
i++;
}
Yukarıdaki yapı dosyadan okuma sırasında oluşabilecek bu tür durumlarda kullanılabilir.
8 Ağustos 2011 Pazartesi
C ile Dosya İşlemleri
Bu yazının amacı C dilinde dosya işlemlerinin nasıl yapıldığını anlatmaktır. C dilindeki dosya işlemlerinden önce bu dilde yazılan programın çalışacağı işletim sisteminin dosya yapısının iyi bilinmesi gerekmektedir. Bu yazının konusu dışında olan işletim sistemlerinin kullandığı dosya sistemlerini lütfen okuyunuz.
C dilinde dosya işlemleri için file.h dosyasının içerilmesi (include) gerekir.
#include <file.h>
Yukarıda gösterildiği şekilde içerilir.
Dosya Açma
Dosya açmak için fopen fonksiyonu kullanılır. Basitçe dosyanın adını ve açma şeklini alan bu fonksiyon geri değer olarak integer döndürür ve açmanın başarılı olup olmadığı anlaşılabilir.
if(fopen(“deneme.txt”,”r”)){
printf(“dosya açıldı”);
}else{
printf(“dosya açılamadı”);
}
yukarıdaki örnek kodda fopen fonksiyonuna parametre olarak “deneme.txt” dosyası verilmiştir. Bunun anlamı programımız ile aynı dizinde bulunan deneme.txt dosyasının açılmasıdır. Şayet farklı bir dizinden okunması isteniyorsa tam yol verilebilir. Örneğin:
c:\deneme\deneme.txt –> C sürücüsundeki deneme dizinin altındaki deneme.txt (WINDOWS)
/usr/bin/deneme.txt –> root dizin / altındaki usr altındaki bin altındaki deneme.txt dosyası (LINUX)
..\dosyalar\deneme.txt –> programımızın bulunduğu dizinin bir altında bulunan dosyalar dizinin altındaki deneme.txt dosyası (WINDOWS)
şeklinde kullanılabilir. Hemen ardından fopen fonksiyonuna verilen ikinci parametre ise dosyanın açılma şeklini belirtir. Bu şekiller:
Yukarıdaki bu şekillerden birisi tercih edilerek ilgili sembol fopen’a ikinci parametre olarak verilir. Yukarıdaki örnek kodda da görüldüğü üzere fopen fonksiyonu bir if içerisindedir. Bunun anlamı fopen fonksiyonundan başarılı sonuç dönerse dosyanın açıldığı anlaşılacaktır. Aksi halde dosyanın açılması başarısızlıkla sonuçlanmıştır ve programımızda bu durum için basit bir hata mesajı ekrana basılır.
Dosyadan okuma ve yazma
Dosya açıldıktan sonra dosyaya okuma ve yazma işlemleri yapılabilir. Okuma ve yazma işlemlerinin yapılabilmesi için yukarıda anlatılan dosya açma işlemine ilave olarakaçılan dosyayı gösteren bir göstericiye (pointer) ihtiyaç duyulmaktadır. Bu gösterici fopen fonksiyonu tarafından döndürülmektedir. Kod örneği aşağıdadır:
FILE *fp;
fp = fopen(“dosya.txt”,”r”);
yukarıdaki örnek kodun ilk satırında fp isminde bir dosya göstericisi tanımlanmıştır. İkinci satırında ise bu göstericinin içerisine fopen fonksiyonundan dönen değer atanmıştır. Buna göre dosyaya erişilmesi istendiğinde fp göstericisi üzerinden işlem yapılması yeterlidir.
Dosyalardan okuma ve yazma yapan çok sayıda fonksiyon olmasına karşılık anlaşılması en kolay fonksiyonlar C dili ilk öğrenilirken öğrenilen scanf ve printf fonksiyonlarının birer türevi olan fscanf ve fprintf fonksiyonlarıdır. Birer örnek aşağıda verilmiştir:
int i;
fscanf(fp,”%d”,&i);
fprintf(fp,”%d”,i);
yukarıdaki örneklerde bir i değişkeni integer tipinde tanımlanmıştır. Bu değişkene ikinci satırda fscanf fonksiyonu ile bir değer dosyadan okunmuştur. Bu fonksiyon ilk bakışta da anlaşılacağı üzere scanf fonksiyonundan farklı olarak ilave bir dosya göstericisi parametresi kullanmaktadır. Bu parametre fonksiyonun ilk parametresidir. Yukarıdaki örnekte bulunan “fp” dosya göstericisi de böyle bir dosya gösterici örneğidir.
fprintf fonksiyonu da ilave bir dosya göstericisi almak dışında standart printf fonksiyonundan farklı değildir.
Hatırlanması gereken önemli bir nokta, fscanf fonksiyonunun kullanılması için dosyanın okuma, fprintf fonksiyonunun kullanılabilmesi için ise dosyanın yazma şeklinde açılması gerekmektedir.
Örnek
Örnek olarak basit bir öğrenci kayıt sistemini C dilinde kodlamaya çalışalım. Amacımız “kayit.txt” isimli bir dosyaya, kullanıcıdan öğrenci bilgisi okuyup kaydetmek ve daha sonra kullanıcının istediği bir anda bu dosyayı aratarak kayıtlara ulaşmasını sağlamak olsun.
Öncelikle kullanıcı ile iletişimi sağlayan ufak bir menü tasarımı yapalım:

Yukarıdaki kodda, sonsuz bir döngü (14. satır) içerisinde dönen printf satırları ile yazılmış olan bir menü görülmektedir. Kullanıcının menüden yaptığı seçim bir değişkene okunmakta ve değerine göre if koşulları ile kontrol edilerek ilgili işlem icra edilmektedir. Örneğin yukarıdaki kodda, 20. satırda bulunan if koşuluna girilmesi için kullanıcının menüden 1′i seçmiş olması, diğer bir deyişle, klavyeden 1 yazarak enter’a basması gerekmektedir.
Kodumuzda öğrenci kayıtlarını tutacağımız için bir oluşum (composition) kullanmamız ve bu oluşumu C dilinde yapılar (structs) kullanarak tanımlamamız mümkündür:

Yukarıda, örnek bir öğrenci yapısı (struct) gösterilmektedir. Kodun 5-9. satırları arasında bu yapıyı oluşturan değişken tipleri tanımlanmıştır. Ayrıca yapının ismi “ogrenci” olarak tanımlanmıştır.
Kodumuzdaki main fonksiyonu içerisinde, 12. satırda, ogrenci yapısından bir tip oluşturulmakta ve bu yeni tipe xyz ismi verilmektedir. Bu tip, C dilinde tanımlı olan diğer tipler gibi (örneğin int, char, float) bir tip olmakta ve bu tipten yeni değişkenler tanımlamamıza imkan tanımaktadır.
Kodumuzdaki seçimlere göre çalışacak olan kayıt ekleme ve silme işlemlerini aşağıdaki şekilde kodlayabiliriz. Öncelikle kayıt ekleyen kısma bakalım:

Yukarıdaki kodda, 21. satırda xyz tipinde bir değişken tanımlanıp, ardından 22-29. satırlar arasında bu değişkenin içerisine klavyeden değer okunmuştur. Okunan değerler yapı (struct) içerisinde ilgili değişkenlere yerleştirilmiş ve hafızada tutulmaktadır.
Kodun 30. satırında bir dosya göstericisi tanımlanıp, göstericinin “kayit.txt” dosyasını göstermesi sağlanmıştır. Buradaki dosyanın açılış şekli, “a” parametresinden de anlaşılacağı üzere ekleme (append) halindedir.
Kodun 31. satırında fprintf fonksiyonu marifetiyle fp göstericisinin gösterdiği yani “kayit.txt” dosyasına okunan yapısındaki isim, soyisim ve no değişkenlerinin değeri bastırılmakta ve nihayetinde 32. satırda dosya kapatılarak kayıt işlemi tamamlanmaktadır.
Kayıtlar arasında arama işlemi yapan kod kısmı ise aşağıda verilmiştir:

Yukarıdaki kodun, 36. satırında, aranan ismi tutmak amacıyla bir dizgi (string) tanımlanmış ve bu değişkenin içerisine kullanıcıdan aranması istenen değer 37. satırda scanf ile okunmuştur.
38. satırda, dosya okuma şeklinde (read) açılmış ve fp isimli dosya göstericisine atanmıştır.
42. satırda feof fonksiyonu ile dosyanın sonuna kadar dönen bir döngü tanımlanmıştır. Buradaki döngü fp göstericisinin dosya sonunu göstermesi durumunda 1 döndürmektedir. Dolayısıyla dosya sonuna kadar 1 dönmesini ve dosya sonuna ulaşılınca 0 dönmesini sağlamak maksadıyla ! işaretiyle dönen değerin tersi alınmaktadır. While döngüsü kısaca dosya sonuna kadar dönen bir döngü halini almıştır.
Döngünün içindeki 43. satırda, dosyadan fscanf fonksiyonu ile okunan isimli yapının içerisine değerler okunmaktadır.
44. satırda okunan değerlerden isim bilgisi, aranan dizgi (string) ile karşılaştırılmakta ve eşitlerse 45. satırdaki printf fonksiyonu çalışmakta ve ekrana aranan öğrenci bilgisini yazmaktadır. Eşit olmaması durumunda bir sonraki öğrenciye devam edilmektedir.
Kodun tamamı aşağıdaki şekildedir:


C dilinde dosya işlemleri için file.h dosyasının içerilmesi (include) gerekir.
#include <file.h>
Yukarıda gösterildiği şekilde içerilir.
Dosya Açma
Dosya açmak için fopen fonksiyonu kullanılır. Basitçe dosyanın adını ve açma şeklini alan bu fonksiyon geri değer olarak integer döndürür ve açmanın başarılı olup olmadığı anlaşılabilir.
if(fopen(“deneme.txt”,”r”)){
printf(“dosya açıldı”);
}else{
printf(“dosya açılamadı”);
}
yukarıdaki örnek kodda fopen fonksiyonuna parametre olarak “deneme.txt” dosyası verilmiştir. Bunun anlamı programımız ile aynı dizinde bulunan deneme.txt dosyasının açılmasıdır. Şayet farklı bir dizinden okunması isteniyorsa tam yol verilebilir. Örneğin:
c:\deneme\deneme.txt –> C sürücüsundeki deneme dizinin altındaki deneme.txt (WINDOWS)
/usr/bin/deneme.txt –> root dizin / altındaki usr altındaki bin altındaki deneme.txt dosyası (LINUX)
..\dosyalar\deneme.txt –> programımızın bulunduğu dizinin bir altında bulunan dosyalar dizinin altındaki deneme.txt dosyası (WINDOWS)
şeklinde kullanılabilir. Hemen ardından fopen fonksiyonuna verilen ikinci parametre ise dosyanın açılma şeklini belirtir. Bu şekiller:
- r or rb
- Dosyayı okuma (read) için açar.
- w or wb
- Dosyayı yazma(write) için açar ve şayet dosya zaten varsa içindekileri temizleyerek yoksa yeni bir dosya oluşturur.
- a or ab
- Dosyaya ilave (Append) için açar. Bunun anlamaı dosya yoksa oluşturulacak varsa mevcut bilgilerin sonuna yazılacak demektir.
- r+ or rb+ or r+b
- Mevcut Dosyayı hem okumak hemde yazmak için açar.
- w+ or wb+ or w+b
- Dosyayı bir önceki şekilde olduğu gibi hem okumak hem de yazmak için açar. Ancak dosya yoksa oluşturur, dosya varsa içindekileri siler.
- a+ or ab+ or a+b
- Dosyayı ilave şeklinde açar ve şayet dosya yoksa oluşturur, varsa içindekilerin sonuna ilave eder. Bu şekilde açılan dosyalardan hem okuma hemde yazma işlemi yapılabilir.
Yukarıdaki bu şekillerden birisi tercih edilerek ilgili sembol fopen’a ikinci parametre olarak verilir. Yukarıdaki örnek kodda da görüldüğü üzere fopen fonksiyonu bir if içerisindedir. Bunun anlamı fopen fonksiyonundan başarılı sonuç dönerse dosyanın açıldığı anlaşılacaktır. Aksi halde dosyanın açılması başarısızlıkla sonuçlanmıştır ve programımızda bu durum için basit bir hata mesajı ekrana basılır.
Dosyadan okuma ve yazma
Dosya açıldıktan sonra dosyaya okuma ve yazma işlemleri yapılabilir. Okuma ve yazma işlemlerinin yapılabilmesi için yukarıda anlatılan dosya açma işlemine ilave olarakaçılan dosyayı gösteren bir göstericiye (pointer) ihtiyaç duyulmaktadır. Bu gösterici fopen fonksiyonu tarafından döndürülmektedir. Kod örneği aşağıdadır:
FILE *fp;
fp = fopen(“dosya.txt”,”r”);
yukarıdaki örnek kodun ilk satırında fp isminde bir dosya göstericisi tanımlanmıştır. İkinci satırında ise bu göstericinin içerisine fopen fonksiyonundan dönen değer atanmıştır. Buna göre dosyaya erişilmesi istendiğinde fp göstericisi üzerinden işlem yapılması yeterlidir.
Dosyalardan okuma ve yazma yapan çok sayıda fonksiyon olmasına karşılık anlaşılması en kolay fonksiyonlar C dili ilk öğrenilirken öğrenilen scanf ve printf fonksiyonlarının birer türevi olan fscanf ve fprintf fonksiyonlarıdır. Birer örnek aşağıda verilmiştir:
int i;
fscanf(fp,”%d”,&i);
fprintf(fp,”%d”,i);
yukarıdaki örneklerde bir i değişkeni integer tipinde tanımlanmıştır. Bu değişkene ikinci satırda fscanf fonksiyonu ile bir değer dosyadan okunmuştur. Bu fonksiyon ilk bakışta da anlaşılacağı üzere scanf fonksiyonundan farklı olarak ilave bir dosya göstericisi parametresi kullanmaktadır. Bu parametre fonksiyonun ilk parametresidir. Yukarıdaki örnekte bulunan “fp” dosya göstericisi de böyle bir dosya gösterici örneğidir.
fprintf fonksiyonu da ilave bir dosya göstericisi almak dışında standart printf fonksiyonundan farklı değildir.
Hatırlanması gereken önemli bir nokta, fscanf fonksiyonunun kullanılması için dosyanın okuma, fprintf fonksiyonunun kullanılabilmesi için ise dosyanın yazma şeklinde açılması gerekmektedir.
Örnek
Örnek olarak basit bir öğrenci kayıt sistemini C dilinde kodlamaya çalışalım. Amacımız “kayit.txt” isimli bir dosyaya, kullanıcıdan öğrenci bilgisi okuyup kaydetmek ve daha sonra kullanıcının istediği bir anda bu dosyayı aratarak kayıtlara ulaşmasını sağlamak olsun.
Öncelikle kullanıcı ile iletişimi sağlayan ufak bir menü tasarımı yapalım:

Yukarıdaki kodda, sonsuz bir döngü (14. satır) içerisinde dönen printf satırları ile yazılmış olan bir menü görülmektedir. Kullanıcının menüden yaptığı seçim bir değişkene okunmakta ve değerine göre if koşulları ile kontrol edilerek ilgili işlem icra edilmektedir. Örneğin yukarıdaki kodda, 20. satırda bulunan if koşuluna girilmesi için kullanıcının menüden 1′i seçmiş olması, diğer bir deyişle, klavyeden 1 yazarak enter’a basması gerekmektedir.
Kodumuzda öğrenci kayıtlarını tutacağımız için bir oluşum (composition) kullanmamız ve bu oluşumu C dilinde yapılar (structs) kullanarak tanımlamamız mümkündür:

Yukarıda, örnek bir öğrenci yapısı (struct) gösterilmektedir. Kodun 5-9. satırları arasında bu yapıyı oluşturan değişken tipleri tanımlanmıştır. Ayrıca yapının ismi “ogrenci” olarak tanımlanmıştır.
Kodumuzdaki main fonksiyonu içerisinde, 12. satırda, ogrenci yapısından bir tip oluşturulmakta ve bu yeni tipe xyz ismi verilmektedir. Bu tip, C dilinde tanımlı olan diğer tipler gibi (örneğin int, char, float) bir tip olmakta ve bu tipten yeni değişkenler tanımlamamıza imkan tanımaktadır.
Kodumuzdaki seçimlere göre çalışacak olan kayıt ekleme ve silme işlemlerini aşağıdaki şekilde kodlayabiliriz. Öncelikle kayıt ekleyen kısma bakalım:

Yukarıdaki kodda, 21. satırda xyz tipinde bir değişken tanımlanıp, ardından 22-29. satırlar arasında bu değişkenin içerisine klavyeden değer okunmuştur. Okunan değerler yapı (struct) içerisinde ilgili değişkenlere yerleştirilmiş ve hafızada tutulmaktadır.
Kodun 30. satırında bir dosya göstericisi tanımlanıp, göstericinin “kayit.txt” dosyasını göstermesi sağlanmıştır. Buradaki dosyanın açılış şekli, “a” parametresinden de anlaşılacağı üzere ekleme (append) halindedir.
Kodun 31. satırında fprintf fonksiyonu marifetiyle fp göstericisinin gösterdiği yani “kayit.txt” dosyasına okunan yapısındaki isim, soyisim ve no değişkenlerinin değeri bastırılmakta ve nihayetinde 32. satırda dosya kapatılarak kayıt işlemi tamamlanmaktadır.
Kayıtlar arasında arama işlemi yapan kod kısmı ise aşağıda verilmiştir:

Yukarıdaki kodun, 36. satırında, aranan ismi tutmak amacıyla bir dizgi (string) tanımlanmış ve bu değişkenin içerisine kullanıcıdan aranması istenen değer 37. satırda scanf ile okunmuştur.
38. satırda, dosya okuma şeklinde (read) açılmış ve fp isimli dosya göstericisine atanmıştır.
42. satırda feof fonksiyonu ile dosyanın sonuna kadar dönen bir döngü tanımlanmıştır. Buradaki döngü fp göstericisinin dosya sonunu göstermesi durumunda 1 döndürmektedir. Dolayısıyla dosya sonuna kadar 1 dönmesini ve dosya sonuna ulaşılınca 0 dönmesini sağlamak maksadıyla ! işaretiyle dönen değerin tersi alınmaktadır. While döngüsü kısaca dosya sonuna kadar dönen bir döngü halini almıştır.
Döngünün içindeki 43. satırda, dosyadan fscanf fonksiyonu ile okunan isimli yapının içerisine değerler okunmaktadır.
44. satırda okunan değerlerden isim bilgisi, aranan dizgi (string) ile karşılaştırılmakta ve eşitlerse 45. satırdaki printf fonksiyonu çalışmakta ve ekrana aranan öğrenci bilgisini yazmaktadır. Eşit olmaması durumunda bir sonraki öğrenciye devam edilmektedir.
Kodun tamamı aşağıdaki şekildedir:



20 Temmuz 2011 Çarşamba
String Tokenizer ( Dizgi Parçalayıcı )
Bilgisayar bilimlerinde sık kullanılan veri tiplerinden birisi de dizgilerdir (Strings). Bu veri tipinde herhangi bir yazı durabilir. Genellikle verinin bir parçasını elde etmek için dizgi içerisinden bir parça çıkarılması gerekir. Bu işlem için dizginin (string) parçalanması gerektiğinde yapılan işleme parçalama (Tokenize) ismi verilir.
Örneğin çok sık kullanılan virgül ayırmalı veri (Comma seperated values) yapısındaki bir dosyayı ele alalım:
isim,telefon,dogum
ali,123,1970
veli,321,1980
ahmet,333,1981
Yukarıdaki bu dosyayı okuyarak sırasıyla verileri işlememiz gerekirse yapılacak işlem dosyadan satır satır verileri okumak ve “,” karakterinden okunan dizgileri bölmek gerekir.
Bu işlem için örneğin C dilinde bir karakter dizisine okumak ve dizinin her elemanı üzerinden bir döngü ile geçerek , karakteri görünce bölme işlemini tamamlamak gerekir.
Bu işlemi yapan strtok isimli bir fonksiyon string.h dosyasında bulunmaktadır. Aşağıdaki şekilde kullanılabilir:
Örneğin çok sık kullanılan virgül ayırmalı veri (Comma seperated values) yapısındaki bir dosyayı ele alalım:
isim,telefon,dogum
ali,123,1970
veli,321,1980
ahmet,333,1981
Yukarıdaki bu dosyayı okuyarak sırasıyla verileri işlememiz gerekirse yapılacak işlem dosyadan satır satır verileri okumak ve “,” karakterinden okunan dizgileri bölmek gerekir.
Bu işlem için örneğin C dilinde bir karakter dizisine okumak ve dizinin her elemanı üzerinden bir döngü ile geçerek , karakteri görünce bölme işlemini tamamlamak gerekir.
Bu işlemi yapan strtok isimli bir fonksiyon string.h dosyasında bulunmaktadır. Aşağıdaki şekilde kullanılabilir:
/* strtok ornegi */ #include <stdio.h> #include <string.h> int main () { char str[] ="- Bu, ornek bir dizgidir."; char * pch; printf ("Girilen \"%s\" mesajini parcaliyoruz:\n",str); pch = strtok (str," ,.-"); // parcalama icin kullanilan ayırıcılar (delimiters) while (pch != NULL) { printf ("%s\n",pch); pch = strtok (NULL, " ,.-"); } return 0; }Yukarıdaki programın sonucu aşağıda verilmiştir:
Girilen "Bu, ornek bir dizgidir." mesajini parcaliyoruz: Bu ornek bir dizgidirYukarıda görüldüğü üzere ,.- karakterlerinden parçalanmıştır. Benzer bir hazır fonksiyonda JAVA dilinde bulunmaktadır. StringTokenizer isimli fonksiyonun kullanımı aşağıda verilmiştir:
StringTokenizer st = new StringTokenizer("Bu, ornek bir dizgidir"," ,."); while (st.hasMoreTokens()) { System.out.println(st.nextToken()); }Yukarıdaki kodda da aynı dizgi aynı ayıraçlarla (Deliminator) verilmiştir ve çıktısı aşağıdaki şekildedir:
Bu ornek bir dizgidir
9 Temmuz 2011 Cumartesi
C++ ile 1. Yazılı, 2. Yazılı, Sözlü Ortalama Hesaplamak
Merhabalar,
Bu videomuzda 1. yazılı, 2.yazılı, sözlü ortalama hesaplama programı yapımını öğreneceğiz.
İlk işimiz programı açmak. Yeni kaynak dosyası oluşturup kodumuzu yazıyoruz.
Bu kodları yazdıktan sonra programımızı başlatabiliriz.
Fakat değişkenleri kendime göre atadım, siz farklı değişken atayabilirsiniz.
Burada %.0f kullanmamızın amacını 2. derste söylemiştim, ama tekrar söyleyeyim: Eğer ki buraya .2 yazmasaydık sonucumuz mesela 50.3333333 gibi şekilde olurdu, şimdi ise 50.33 şeklinde çıkartıyor. İsterseniz burayı .0 yapabilirsiniz. Fakat "." (nokta) 'yı unutmayınız virgül koyarsanız olmaz.
Bu videomuzda 1. yazılı, 2.yazılı, sözlü ortalama hesaplama programı yapımını öğreneceğiz.
İlk işimiz programı açmak. Yeni kaynak dosyası oluşturup kodumuzu yazıyoruz.
#include#include main() { float yazil,yazili,sozlu,ort; printf("1.yazili notunu girin="); scanf("%f",&yazil); printf("2.yazili notunu girin="); scanf("%f",&yazili); printf("sozlu notunu yazin="); scanf("%f",&sozlu); ort=(yazil+yazil+sozlu)/3; printf("sonuc=%.2f",ort); getch(); }
Bu kodları yazdıktan sonra programımızı başlatabiliriz.
Fakat değişkenleri kendime göre atadım, siz farklı değişken atayabilirsiniz.
printf("sonuc=%.2f",ort);
Burada %.0f kullanmamızın amacını 2. derste söylemiştim, ama tekrar söyleyeyim: Eğer ki buraya .2 yazmasaydık sonucumuz mesela 50.3333333 gibi şekilde olurdu, şimdi ise 50.33 şeklinde çıkartıyor. İsterseniz burayı .0 yapabilirsiniz. Fakat "." (nokta) 'yı unutmayınız virgül koyarsanız olmaz.
5 Temmuz 2011 Salı
C++ Ders Notları ve Uygulamalar
Bilgisayar programlama 2 (C++) dersinin uygulamaları ve tekrar örnekleri toplu halde bilgisayar labaratuarı ağında paylaşılmıştı. Alamayanlar ders notlarını buradan indirebilir.
Ders Notlarının ve örneklerinin paylaşıldığı sayfa:
http://nucleus.istanbul.edu.tr/~bilprog2/
Hoca geçen yılın vize sorularınıda yayınlamış. (Kek)
Hepsini tek tek indirmek yerine buradan toplu olarak indirebilirsiniz. (Vize öncesi Ders 6 dahil )
Ayrıca derleyici olarak Dev C++ yı tavsiye ederim ki zaten okulda da onu kullanıyouz. Bu bağlantıda altarnatif indirme adresi.
Sorularınız olursa bilgimizin yettiği kadarına cevap vermeye çalışırız.
C++ ve diğer diller için videolu ders anlatımlarını bu yazımdan bulabilirsiniz. Mesela Kariyervideo dan C++ derslerini izleyebilirsiniz. ( Üyelik gerekir- Ücretsiz ) Amacınız sadece sınavı geçmekse ders notlarını okusanız da yeter.
Ders Notlarının ve örneklerinin paylaşıldığı sayfa:
http://nucleus.istanbul.edu.tr/~bilprog2/
Hoca geçen yılın vize sorularınıda yayınlamış. (Kek)
Hepsini tek tek indirmek yerine buradan toplu olarak indirebilirsiniz. (Vize öncesi Ders 6 dahil )
Ayrıca derleyici olarak Dev C++ yı tavsiye ederim ki zaten okulda da onu kullanıyouz. Bu bağlantıda altarnatif indirme adresi.
Sorularınız olursa bilgimizin yettiği kadarına cevap vermeye çalışırız.
C++ ve diğer diller için videolu ders anlatımlarını bu yazımdan bulabilirsiniz. Mesela Kariyervideo dan C++ derslerini izleyebilirsiniz. ( Üyelik gerekir- Ücretsiz ) Amacınız sadece sınavı geçmekse ders notlarını okusanız da yeter.
8 Haziran 2011 Çarşamba
Faktoriyel
Faktoriyel alan rekürsif bir fonksiyon.
#include "stdio.h" int faktoriyel(int x); int main(){ int deger=1; int sonuc=faktoriyel(deger); printf("Sonuc=%d",sonuc); return 0; } int faktoriyel(int x){ int birim; if(x>0){ birim=faktoriyel(x-1); return x*birim; }else{ return 1; } }
6 Haziran 2011 Pazartesi
Recursif Fonksiyon Örneği
Aşağıdaki kod decimal(onluk) tabandaki sayıyı ikilik tabandaki sayıya dönüştürür.
#include "stdio.h" void fonk(int sayi){ if(sayi==1 || sayi==0){ printf("%d",sayi); }else { fonk(sayi/2); printf("%d",sayi%2); } } int main(int argc, char **argv) { fonk(9); return 0; }
Kaydol:
Kayıtlar (Atom)