9
EXE RANK
Z1rT
Fexe Kullanıcısı
Puanları
0
Çözümler
0
- Katılım
- 26 Kas 2009
- Mesajlar
- 9,190
- Tepkime puanı
- 0
- Puanları
- 0
- Yaş
- 33
- Web sitesi
- www.netbilgini.net
Dersleri hazırlarken kaynak ve rehber olarak Deitel & Deitel'in C ve C++ adlı kitabını kullanıyorum. İsteyenler [B]buradan[/B] kitap hakkında daha fazla bilgiye sahip olabilir... Dersler hemen hemen bu kitaba paralel ilerleyecek bu yüzden
Programları yazarken ve derlerken Turbo C programını kullanıcaz bunun nedeni ise boyutunun ufak ve ilk aşamalarda bize yetecek bi compiler(derleyici) olmasıdır.
Aşağıdaki linklerden programı download edebilirsiniz boyutu yaklaşık 1.2 MB;
MS-DOS tabanlı bir program olduğundan dolayı kullanım açısından biraz farklılıklar ve WinXP'de çok ufak bi ayar gerektiyor. Kullanımı hakkında bilgi almak için
Ayrıca ekstra kaynak isteyenler için kaos_fırtına arkadaşımızın açmış olduğu konuya da gözatmalarını öneririm
Şimdiye kadar aşağıdaki dersler yayınlanmıştır. Devamı geldikçe listeye eklenecektir...
Kod:
[SIZE=5][COLOR=Red][B]- Ayrıntılı İndex -[/B][/COLOR][/SIZE]
[B]C ile Programlamaya Giriş[/B]
[LIST]
[*]C ile basit programlar yazabilmek
[*]Basit giriş/çıkış ifadelerini kullanabilmek
[*]Temel veri tiplerini tanımak
[*]Bilgisayar hafızasını kullanmayı anlamak
[*]Aritmetik operatörleri kullanabilmek
[*]Aritmetik operatörlerin önceliklerini anlamak
[*]Basit karar verme ifadeleri yazabilmek
[/LIST]
[B]C'de Yapısal Program Geliştirme[/B]
[LIST]
[*]Temel problem çözme tekniklerini anlamak
[*]Yukarıdan aşağıya adımsal iyileştirme süreciyle algoritmalar geliştirebilmek
[*]İf ve if/else yapılarını uygun yerde kullanarak işlemleri seçebilmek
[*]While yapısını programlarda uygulayarak, ifadeleri tekrar çalıştırabilmek
[*]Sayıcı kontrollü döngü ve nöbnetçi kontrollü döngüleri anlamak
[*]Yapısal programlamayı anlamak
[*]Arttırma, azaltma ve atama işlemlerini kullanabilmek
[/LIST]
[B]C'de Program Kontrolü[/B]
[LIST]
[*]For ve do/while döngü yapılarını kullanabilmek
[*]Switch seçim yapısını kullanarak çoklu seçimler yapabilmek
[*]Program kontrolünde break ve continue kullanabilmek
[*]Mantık operatörlerini kullanabilmek
[/LIST]
[B]Fonksiyonlar[/B]
[LIST]
[*]Fonksiyon adı verilen küçük parçalarla modüler programlar oluşturabilmeyi anlamak
[*]C standart kütüphanesinde içinde yer alan genel matematik fonksiyonlarını tanımak
[*]Yeni fonksiyonlar oluşturabilmek
[*]Fonksiyonlar arasında bilgi aktarımını sağlayan yöntemleri anlamak
[*]Rasgele sayılar üreterek benzetim (simulation) tekniklerini tanıtmak
[*]Kendi kendini çağırabilen fonksiyonları yazabilmek ve nasıl kullanılacaklarını anlamak
[/LIST]
[B]Diziler[/B]
[LIST]
[*]Dizi yapısını tanıtmak
[*]Dizilerin değerleri depolama, sıralama ve listeleri arama ile değer tablolarını oluşturmada kullanımlarını anlamak
[*]Bir dizinin nasıl bildirileceğini, bir diziye nasıl ilk değer atanacağını ve dizideki bağımsız elemanların nasıl çağırılacaklarını anlamak
[*]Dizileri fonksiyonlara geçirebilmek
[*]Temel sıralama tekniklerini anlamak
[*]Çok boyutlu dizileri bildirebilmek ve kullanabilmek
[/LIST]
[B]Göstericiler[/B]
[LIST]
[*]Göstericileri kullanabilmek
[*]Referansa göre çağırma ile fonksiyonlara argüman geçirmede göstericileri kullanabilmek
[*]Göstericiler, diziler ve stringler arasındaki yakın ilişkiyi anlamak
[*]Fonksiyonlarda gösterici kullanımını anlamak
[*]String dizilerini bildirmek ve kullanabilmek
[/LIST]
[B]Karakter ve Stringler[/B]
[LIST]
[*]Karakter kütüphanesindeki (ctype) fonksiyonları kullanabilmek
[*]Standart giriş/çıkış kütüphanesindeki (studio) string ve karakter giriş/çıkış fonksiyonlarını kullanabilmek
[*]Genel amaçlı kütüphanedeki (stdlib) string dönüşüm fonksiyonlarını kullanabilmek
[*]String kütüphanesindeki (string) string işleme fonksiyonlarını kullanabilmek
[*]Yazılımın yeniden kullanılabilirliğinde fonksiyon kütüphanelerinin gücünü anlamak
[/LIST]
[B] Biçimlendirilmiş Giriş - Çıkış[/B]
[LIST]
[*]Giriş ve çıkış akışlarını (stream) anlamak
[*]Bütün yazdırma biçimlendirme yeteneklerini kullanabilmek
[*]Bütün giriş biçimlendirme yeteneklerini kullanabilmek
[/LIST]
[B]Yapılar, Birlikler, Bit İşleme ve Sayma Sabitleri[/B]
[LIST]
[*]Yapılar, birlikler ve sayma sabitleri oluşturabilmek
[*]Yapıları fonksiyonlara değere göre çağırma ve referansa göre çağırma ile geçirebilmek
[*]Bir operatörleriyle veri işleyebilmek
[*]Verileri daha verimli bir şekilde depolayabilmek için bit alanları yaratmak
[/LIST]
[B]Dosya İşleme[/B]
[LIST]
[*]Dosyalar yaratabilmek, dosyalara yazma ve dosyadan okuma yapabilmek, dosyaları güncelleyebilmek
[*]Sıralı erişimle dosya işlemeyi tanımak
[*]Rasgele erişimle dosya işlemeyi tanımak
[/LIST]
[B]Veri Yapıları[/B]
[LIST]
[*]Veri nesleri için dinamik hafıza tahsis etmek ve tahsis edilen alanı boşaltabilmek
[*]Göstericiler, kendine dönüşlü yapılar ve yineleme kullanarak bağlı veri yapıları oluşturabilmek
[*]Bağlı listeler, sıralar ve ikili ağaçlar oluşturabilmek ve yönetebilmek
[*]Bağlı veri yapılarının bir çok önemli uygulamasını anlamak
[/LIST]
[B]C Önişlemcisi[/B]
[LIST]
[*]Büyük programlar geliştirirken #include kullanabilmek
[*]#define kullanarak makrolar ve argüman içeren makrolar yaratabilmek
[*]Koşullu derlemeyi anlamak
[*]Koşullu derleme esnasında hata mesajları yazdırabilmek
[*]Değimlerin değerlerinin doğru olup olmadığını belirlemek için bildirimler (assertion) kullanabilmek
[/LIST]
[B]İleri Düzey C komutları[/B]
[LIST]
[*]Klavye girişini dosyadan gelecek şekilde değiştirebilmek
[*]Ekran çıktısının dosyaya yerleştirilebilmesini sağlamak
[*]Uzunluğu değişebilen argüman listesine sahip fonksiyonlar yazabilmek
[*]Komut satırı argümanlarını işleyebilmek
[*]Nümerik sabitlere belli tipler atayabilmek
[*]Geçici dosyaları kullanabilmek
[*]Bir programda beklenmeyen durumları işleyebilmek
[*]Diziler için dinamik hafıza tahsisi yapabilmek
[*]Daha önceden dinamik olarak tahsis edilmiş hafıza miktarını değiştirebilmek
[/LIST]
Aşağıdaki linklerden programı download edebilirsiniz boyutu yaklaşık 1.2 MB;
MS-DOS tabanlı bir program olduğundan dolayı kullanım açısından biraz farklılıklar ve WinXP'de çok ufak bi ayar gerektiyor. Kullanımı hakkında bilgi almak için
Kod:
[SIZE=5][COLOR=Red][B]- Turbo C Kullanım Klavuzu -[/B][/COLOR][/SIZE]
WinXP kullanan arkadaşların yazdıkları programlar çalışıp hemen kapanıyor ve programları düzgün çalışsa bile herhangi bişi göremiyorlar. hemen bunun çaresini yazayım daha sonrada ikinci derse geçeriz...
turbo c bi ms dos programı olduğu için faremiz bu programı kullanırken hiç bir işimize yaramıyor... bu yüzden herşeyi klavyeden halletmek zorundayız. şimdi programı açıp kodlarımızı yazdıktan sonra [B][COLOR=Red]ALT + C[/COLOR][/B] tuşlarına basarak [B][COLOR=Red]Compile[/COLOR][/B] menüsüne ulaşıyoruz. buradan [COLOR=Red][B]Make EXE file[/B][/COLOR] seçeneğini seçiyoruz. Aşağıdaki resimde de zaten gözüküyor...
[CENTER][IMG]http://img316.imageshack.us/img316/1672/0048iy.jpg[/IMG]
[/CENTER]
Eğer kodu yazarken herhangi bir[B][COLOR=Red] hata yapmamışsanız[/COLOR][/B] programın derlendiğini gösteren aşağıdaki gibi bi mesaj geliyor ekrana.
[CENTER][IMG]http://img426.imageshack.us/img426/9141/0053iz.jpg[/IMG]
[/CENTER]
Bu mesajı herhangi bir tuşa basarak geçiyoruz. Ekrandan programımızın yerini ve adını öğreniyoruz.
[CENTER][IMG]http://img426.imageshack.us/img426/3605/0066cf.jpg[/IMG]
[/CENTER]
Eğer değiştirmediyseniz programımız [B][COLOR=Red]C:\TC\[/COLOR][/B] klasörü altındaki [B][COLOR=Red]NONAME.EXE[/COLOR][/B] olarak oluşturulmuş olacaktır. Eğer Windows XP kullanıyorsanız programınızı çalıştırmak için extradan bir adım daha yapmamız lazım.
[B][COLOR=Red]C:\TC\[/COLOR][/B] klasörüne gidiyoruz (resimde 1 olarak işaretli) ve programımızı bulup sağ tıklıyoruz (resimde 2 olarak işaretli), açılan menüden özellikleri seçiyoruz (resimde 3 olarak işaretli).
[CENTER][IMG]http://img426.imageshack.us/img426/8735/0071bp.jpg[/IMG]
[/CENTER]
karşımıza gelen özellikler penceresinden [B][COLOR=Red]Program[/COLOR][/B] tabını seçiyoruz. Buradaki [COLOR=Red][B]Çıkışta kapat[/B][/COLOR] seçeneğinin yanındaki tiki kaldırıyoruz. Uygula tamam diyip çıkıyoruz. Aşağıdan görebilirsiniz...
[CENTER][IMG]http://img426.imageshack.us/img426/4530/0080cs.jpg[/IMG]
[/CENTER]
Eveeeet artık programımıza çift tıklayarak nasıl bir sonuç elde ettiğinizi görebilirsiniz.
Daha profesyonel bir editör olan [B][COLOR=Black]Borland C++ 5.02[/COLOR][/B] kullanmak isteyenler[CODE]Yazdığımız programları daha profesyonel bir editör ve compiler olan [COLOR=black][B]x_string_x[/B][/COLOR]'in upload ettiği [B][COLOR=Red]Borland C++ 5.02[/COLOR][/B] programını kullanarak yapmak isteyenler aşağıdaki linklerden download edebilirler...
[url][B]Part 1[/B][/url]
[url][B]Part 2[/B][/url]
Programın nasıl kurulacağını anlatan yine [COLOR=Black][B]x_string_x[/B][/COLOR]'in sadece bu kusra katılan kişiler için hazırladığı dökümanı da [B][url]buradan[/url][/B] download edebilirsiniz...
Tüm bu emekleri ve desteği için [COLOR=Black][B]x_string_x[/B][/COLOR][COLOR=Red][COLOR=Black]'e teşekkür ediyorum..[/COLOR][/COLOR]
Kod:
[FONT=Comic Sans MS][B]C KURSU BAŞLIYOR
[COLOR=Red]1. C Dilinde Program Geliştirme ve İcra Etme[/COLOR]
-Problemin Tanımlanması
• Probleme ilişkin veriler
• Çözüm yöntemleri
• Problemin çözümü sonucunda hangi bilgiler elde edilecek
[COLOR=#ff0000]2. Algoritma Belirlenmesi[/COLOR]
Algoritma belirli bir problemi çözmek için gerekli adımlar kümesi olarak tanımlanır.
[COLOR=#ff0000]Not[/COLOR]: Bir algoritma ancak bir bilgisayar programlama dilinde ifade edilebilmişse icra edilir
Bir C programının bilgisayarda çalıştırılıp istenilen sonucun elde edilebilmesi için 3 adım gerekir.
• Programın metnini yazılması
• Programın derlenmesi
• Derleyicini makine diline dönüştürdüğü programın çalıştırılması
[COLOR=#ff0000]Problem : [/COLOR]C=(F-32)/ 1,8 Fahrenheit birimi ile verilen bir sıcaklığın Celcius birimine dönüştüren bir C programı yazınız.
[COLOR=#ff0000]Hatırlatma [/COLOR]! Derleyici /*………..*/ arasında yazan kısmı görmeyecektir.
Alıntı:
[COLOR=#ff0000]#include “stdio.h” /* <stdio.h> bu yazılım biçimide doğru */
main()
{
double f,c;
printf(“\n Fahrenheit Turunden Sıcaklıgı Girin…….”);
scanf(“%1f”,&f);
c=(f-32)/1.8;
printf(“Fahrenheit =%1f Celcius’tur”,f ,c);
return0;
}[/COLOR]
Tabiki de size ilk bakışta zor gelmiş olabilir.Bu sadece alıştırma turları, detaylı bilgi ileride verilecektir…
[COLOR=#ff0000]3. C Programının Genel Yapısı[/COLOR]
[COLOR=#ff0000]Örnek Problem : [/COLOR]
Alıntı:
[COLOR=#ff0000]#include <stdio.h> /* C Başlık Kütüphanesi Olmazsa Olmazlardan*/
main()
int x,y,z;
x=5;
y=6;
z=x*y;
printf(“\nz=%d”,z);[/COLOR]
Alıntı:
[COLOR=#ff0000]Not [/COLOR]: stdio.h C dilinini temel giriş ve çıkış fonksiyonlarının tanımlanmış olduğu bir başlık dosyasıdır.
C dilinde matematiksel işlemler (logaritma ,karekök,trigonometri…) [COLOR=#ff0000]math.h[/COLOR] adlı başlık dosyası içinde tanımlanmıştır.
[COLOR=#ff0000]conio.h[/COLOR] >>> konsol girişi için
[COLOR=#ff0000]time.h[/COLOR] >>> Zaman Fonksiyonları için
[COLOR=#ff0000]graphics.h[/COLOR] >>> Grafik fonksiyonları için
Alıntı:
Her C Programının bir başlığı bir de gövdesi vardır.
[COLOR=Red]main()
void main()
main(int argc,char *argv[])
int main()
int main(int argc,char *argv[])
void main(int argc,char *argv[])[/COLOR]
Başlık ve gövde yapıları bu gibi farklı durumlarda olabilirler.
Fonksiyon gövdesi {}
Bir C Programı içerisinde birden fazla blok( {} ) olabilir ama dengelenmiş olması gerekir.Yani kaç tane { varsa o kadar da } olmalı.
[COLOR=#ff0000]4. Atama Deyimi[/COLOR]
Değişken = ifade C Dilinde = sembolü atama sembolüdür ve şu şekilde çalışır.
Sağ taraftaki ifadenin değerini hesapla ve sonucu sol tarafa ata.
[COLOR=#ff0000]Örnek [/COLOR]: x=x+3 önce sap taraf x+3 hesaplanırdaha sonra hesaplanan yeni değer sol tarafa atanır.atama sonucunde eski değer silinir.
[COLOR=#ff0000]KURAL :[/COLOR] Bir değişkene yeni değer atanırsa eski değeri silinir.
[COLOR=#ff0000]5. C Dilinde Değişkenler İsim Verme[/COLOR]
• İsimler bir harf yada _ sembolü ile başlamalı
• Özel karakterler kullanılmaz (?+* vs.)
• Büyük küçük harf ayrımı vardır.
Örnek: x2 , b_1x , kaos_fırtına >>>>>> Doğru Kullanım!
2_x , _+b6 >>>>>>> Yanlış Kulanım.!
Printf(“\nz=&d”,z);
\ n Sembolü ekranda yeni bir satıra geçiş için %d ise format belirleyicisi olarak kullanılmıştır.
Problem :[url][IMG]http://img96.imageshack.us/img96/646/18cn3.jpg[/IMG][/url]
İfadesinin klavyeden girilecek a değeri için hesaplayan bir c programı yazınız.
Alıntı:
[COLOR=Red]#include “stdio.h”
#include “ math.h”
main()
{
float a,y;
printf(“\n a degerini giriniz…..”);
scanf(“%1f”,&a);
y=pow(a+2,(1.0/3.0))/pow(a+56,(1.0/4))+a;
printf(“\ny=%f”y);
}[/COLOR]
[url][IMG]http://img162.imageshack.us/img162/6610/s22zp.th.jpg[/IMG][/url]
Alıntı:
[B][url]Programın Çıktısını görmek İçin Tıklayın(Flash Animasyon)[/url][/B]
Alıntı:
[COLOR=#ff0000]Not :[/COLOR] C Dilinde irrasyonel ifadeler(köklü ifadeler) üssel ifadeler dönüştürülerek hesaplanır!
[url][IMG]http://img138.imageshack.us/img138/9531/23nx.jpg[/IMG][/url] şeklinde düşünülerek C dilinde pow(a,1.0/4.0); şeklinde hesaplatılabilinir.
[COLOR=#ff0000]Pow(x,y) = xy[/COLOR]
[COLOR=#ff0000]Problem[/COLOR] : b=a2-a+5 ifadesini klavyeden girilecek bir değer için hesaplatan bir C programı yazınız…
Alıntı:
[COLOR=#ff0000]#include<stdio.h>
#include<math.h>
main()
{
int b,a;
printf(“\n a’nın degerini giriniz……”);
scanf(“%d”,a);
b=a*a-(a+5);
printf(“\nb=%d,”b);
}[/COLOR]
[url][IMG]http://img207.imageshack.us/img207/7025/s31mm.th.jpg[/IMG][/url]
Alıntı:
[url]Ney Müziği Eşliğinde Programın Yazılışı ve Çıktısı İçin Tıklayın>>>Flash Animasyon[/url]
Klavyeden girilecek olan a değeri ondalıklı alınacak olsaydı b ve a yı float veya double olarak tanımlamamız gerekirdi.
[COLOR=#ff0000]Problem[/COLOR] : Birim Kar = (Satış Fiyatı-Maliyet)
Topam Kar = Birim Kar x Miktar
Klavyeden girilecek olan Satış Fiyatı (s) , Maliyet (ma) ve Miktar(mi) değerlerine göre Toplam Karı (t)ve Birim Karı (b) hesaplatan bir C programı yazınız…
Alıntı:
[COLOR=#ff0000]#include ”stdio.h”
#include “math.h”
int main
{
float b,t,s,ma,mi;
printf(“\nSatis Fiyatını Giriniz:…..”);
scanf(“%f”,s);
printf(“\nMaliyeti Giriniz……..”);
scanf(“%f”,ma);
printf(“\n Miktarı Giriniz:…….”);
scanf(“%f”,mi);
b=(s-ma);
t=(b*mi);
printf(“\nBirim Kar=%f”,b);
printf(“\nToplam Kar=%f”,t);
}[/COLOR]
Hepsi Bu Kadar ….
[COLOR=#ff0000]Problem[/COLOR] : x = (ce-bf) / (ae-bd) ve y = (ae-cd) / (ae-bd) klavyeden girilecek a,b,c,d,e,f yardımı ile x ve y ’yi bulunuz ?
Alıntı:
[COLOR=#ff0000]#include ”stdio.h”
#include “math.h”
void main()
{
int a,b,c,d,e,f,x,y;
printf(“\na değerini giriniz…..”);
scanf(“%d”.&a);
printf(“\nb değerini giriniz…..”);
scanf(“%d”.&b);
printf(“\nc değerini giriniz…..”);
scanf(“%d”.&c);
printf(“\nd değerini giriniz…..”);
scanf(“%d”.&d);
printf(“\ne değerini giriniz…..”);
scanf(“%d”.&e);
printf(“\nf değerini giriniz…..”);
scanf(“%d”.&f);
x=(c*e-b*f)/(a*e-b*d);
y=(a*e-c*d)/(a*e-b*d);
printf(“\nX’in değeri=%f,x);
printf(“\nY’in değeri=%f,y);
}[/COLOR]
[COLOR=#ff0000]Problem[/COLOR] : [url][IMG]http://img138.imageshack.us/img138/6154/35ll.jpg[/IMG][/url] Bileşik faiz problemini hesaplatan bir c program yazınız.
A:Ana para i : Faiz Yüzdesi n : Zaman P : Ana Para+Faiz
Alıntı:
[COLOR=#ff0000]#include ”stdio.h”
#include “math.h”
main()
{
float i,p,n,a;
printf(“\nAna Parayı Giriniz…….”);
scanf(“%f”,&a);
printf(“\nFaiz Yüzdesini Giriniz…….”);
scanf(“%f”,&i);
printf(“\Zamanı Giriniz…….”);
scanf(“%f”,&n);
p=a*pow((1+i),n);
printf(“\nDönem Sonu Ana Para + Faiz=%f”,p);
}[/COLOR]
[COLOR=#ff0000]Problem [/COLOR]: [url][IMG]http://img138.imageshack.us/img138/6924/43bh.jpg[/IMG][/url] x’in klavyeden girilecek bir değeri için y yi hesaplatan bir program yazın.
Alıntı:
[COLOR=#ff0000]#include ”stdio.h”
#include “math.h”
int main()
{
float x,y;
printf(“\nX değerini giriniz……”);
scanf(“%f”,&x);
y=(x+sqrt(x*x+1))/log(x+1);
printf(“\nY=%f”y);
[/COLOR]
Alıntı:
Not : sqrt(x) = karekök(x)
Problem : [url][IMG]http://img161.imageshack.us/img161/6603/59jw.jpg[/IMG][/url] x’in girilen bir değeri için z’yi hesaplatan bir c programı yazınız.
Alıntı:
[COLOR=#ff0000]#include ”stdio.h”
#include “math.h”
main()
{
float x,y,z;
printf(“\X değerini giriniz……”);
scanf(“%f”,&x);
y=pow(x, (3+x) )-pow(x, (1+sin(x) ))/(x+5);
z=y+1/(y+1);
printf(“\y=%f”,y);
printf(“\z=%f”,z);
}[/COLOR]
[COLOR=#ff0000]C Dilinde Basit Veri Yapıları[/COLOR]
İnt -- Ondalık kısmı olmayan sayı
Char -- Tamsayı ve karakter için kullanılır.
%c karakter %d ise tamsayı için kullanılır….
Değişkenlere Başlangıç Değeri Atama
[COLOR=#ff0000]#include ”stdio.h”
main()
{
int a,b;
a=0; b=10; (a ve b’ye başlangıç değeri atanmıştır.) [/COLOR][/B]
[COLOR=Blue][SIZE=5][B]02.03.2006 Tarihli En Son Eklenen Derslerimiz[/B][/SIZE][/COLOR]
[COLOR=#ff0000][SIZE=3][B]If Deyimi[/B]
[/SIZE][/COLOR]
İf deyimi c dilinde şartlı dallanma adı verilen işlemi gerçekleştirir.Şartlı dallanma işlemi sayesinde bir program kararlar alma imkanına kavuşur. İf deyimi ; bir ifadenin sonucuna göre bir komutlar dizisinin icra edilip edilemeyeceğine karar verir.
Alıntı:
[COLOR=Red]if(ifade) deyim1;
deyim2;
İfade bir doğru ise deyim bir , yanlış ise deyim 2 icra edilir.
İf(ifade) deyim1;
else deyim2;
deyim3;[/COLOR]
ifade bir doğru ise deyim bir icra edilip deyim 3 ‘e geçilir.
İf deyimi, ifade doğru ise ve deyimler grubunun icra edilmesi isteniliyorsa şu şekilde kullanılmalı.
Alıntı:
[COLOR=#ff0000]if(ifade)
{ deyim1;
deyim2;
……
deyim_n;}
else
{
deyim_n+1;
deyim_n+2;
deyim_m;
}
deyim_k;
[/COLOR]
ifade doğru ise deyim grubu icra edilip deyim k ya geçilir. Yanlış ise deyim_n+1 grubu icra edilerek deyim_k ya geçilir.
[COLOR=Red]Örnek; Alıntı:
[COLOR=#ff0000]
#include ”stdio.h”
main()
{
int a;
printf(“\nBir Tamsayı Giriniz……”);
scanf(“%d”,&a);
if(a>10)
printf(“\nGirdiğiniz sayı 10’dan Büyüktür\n”);
}[/COLOR]
[/COLOR]
Yukarıdaki örnekte klavyeden girilen sayı 10 dan büyükse ekrana “Girdiğiniz sayı 10’dan büyüktür” mesajı gelecektir.Ancak 10’dan küçük bir sayı girilirse herhangi bir mesaj yazmayacaktır.
Örnek2 ;
Alıntı:
[COLOR=#ff0000]#include ”stdio.h”
main()
{
int a;
printf(“\nBir Tamsayı Giriniz……”);
scanf(“%d”,&a);
if(a>10)
printf(“\nGirdiğiniz sayı 10’dan Büyüktür\n”);
else
printf(“\nGirdiğiniz sayı 10 yada daha küçük bir sayıdır…\n”);
}
[/COLOR]
Yukarıdaki örnekte klavyeden girilen sayı 10 dan büyükse ekrana “Girdiğiniz sayı 10’dan büyüktür” mesajı gelecektir. Küçükse “Girdiğiniz sayı 10 yada daha küçük bir sayıdır” mesajı gelecektir.
[COLOR=Cyan]Problem ;[/COLOR] Bir satış elemanının sattığı ürün miktarına göre alacağı günşlük ücret aşağıdaki gibidir.
Günlük satış miktarı 50’den az ise günlük sabit ücret 4 YTL alınarak satılan ürün başına 0,5 YTL’lik
prim eklenerek günlük ücret belirlenecektir.
Günlük satış miktarı 50 yada fazla ise günlük sabit ücret 5 YTL alınarak satılan ürün başına da ilk 50 ürün için 0,5 YTL 50 yi aşan kısım içinde 0,6 YTlL pirim verilerek günlük ücret belirlenecektir
Bir satıcının günlük satış miktarını bilgisayardan girildiğinde satıcının alacağı günlük ücreti belirleyen bir C Programı yazınız.
Alıntı:
[COLOR=Red]#include ”stdio.h”
#include “math.h”
main()
{
int satis;
double ucret;
printf(“\Satış Miktarını Giriniz…..”);
scanf(“%d”,&satis);
if(satis<50)
ucret=4+(satis*0.5);
if(satis>=50);
ucret=5+50*0.5+(satis-50)*0.6;
printf(“\nUcret=%1f\n”,ucret);
}[/COLOR]
[COLOR=Cyan]Problem ;[/COLOR] Bilgisayardan negatif olmayan bir sayı girildiğinde karekökünü alan , negatif bir sayı girildiğinde ise kullanıcıyı uyaran bir C programı yazınız….
Alıntı:
[COLOR=Red]#include ”stdio.h”
#include “math.h”
main()
{
daouble sayi;
printf(“\nNegatif Olmayan Bir Sayı Giriniz”);
scanf(“%1f”,&sayi);
if(sayi<0)
printf(“\nGiriş Hatası girilen sayı negatiftir….”);
else
printf(“\nSayının karekökü=%1f\n”,sqrt(sayi));
}
[/COLOR]
[COLOR=Cyan]Not:[/COLOR] Çift duyarlıklı (double) tiplerin format belirleyicisi %1f tir
Karşılaştırma İfadeleri
Alıntı:
[COLOR=Red]< …………. ‘den küçük
> …………. ‘den büyük
<= ………….. küçük veya eşit
>= ………….. büyük veya eşit
== ………….. ‘e eşit
!= ………….. eşit değil
[/COLOR]
[COLOR=Cyan]Not[/COLOR] İlişkisel bir ifadenin değeri doğru ise C bunu “1” olarak yanlış ise “0“ olarak görür.
-12<0 ………. 1
0>23 ……….. 0
1==1 ……….. 1
[COLOR=Cyan]İç İçe İf Deyimleri[/COLOR]
Tek bir if deyimi iki seçenekten birinin seçilmesine olanak tanır.İç içe if deyimi ise birinci karardan sonra ikinci,üçüncü kararların alınmasın sağlar.
Alıntı:
[COLOR=Red]İf(ifade1) deyim1;
else if(ifade2)
deyim2;
else if(ifade3)
deyim3;
……………..
else deyim_n
deyim_n+1[/COLOR]
[COLOR=Cyan]Açıklama[/COLOR]; Önce ifade 1 kontrol edilir doğru ise deyim 1 icra edilir ve deyim_n+1 ‘e geçilir.ifade 1 yanlış ise ifade 2 kontrol edilir.doğru ise deyim2 yanlış ise deyim_n+1’e geçilir.
Bütün if’lerdeki ifadeler yanlış ise bu halde deyim_n ve sonrasında deyim_n+1’e geçilir.
[COLOR=#00ffff]Problem; [/COLOR]
Gelir Küçük Eşit 150 YTL ise vergi oranı %25
Gelir Küçük Eşit 300 YTL ise vergi oranı %30
Gelir Küçük Eşit 600 YTL ise vergi oranı %35
Gelir Küçük Eşit 1200 YTL ise vergi oranı %40
Gelir Büyük 1200 YTL ise vergi oranı %50
-Gelir bilgisi klavyeden girilecek
-Gelir bilgisi yukarıdaki kurala göre kontrol edilecek
-Vergi hesaplanıp yazdırılacak
Alıntı:
[COLOR=Red]#include ”stdio.h”
#include “math.h”
void main()
{
double gelir,vergi,v1,v2,v3,v4;
v1=150*0,25;
v2=300*0.30;
v3=600*0.35;
v4=1200*0.40;
printf(“\n Vergi Mükellefinin Geliri……..”);
scanf(“%1f”,&gelir);
if(gelir<=150)
vergi=gelir*0.25;
else if(gelir<=300)
vergi=v1+(gelir-150)*0.30;
else if(gelir<=600)
vergi=v1+v2+(gelir-300);
else if(gelir<=1200)
vergi=v1+v2+v3+(gelir-600)*0.40;
else if(gelir<1200)
vergi=v1+v2+v3+v4+(gelir-1200)*0.5;
printf(“\nHesaplanan Vergi=%12.21f\n\n”,vergi);[/COLOR]
[COLOR=Cyan]Açıklama [/COLOR]; Yukarıdaki programda uygulanan vergilendirme mantığı şu şekildedir;
200 YTL geliri olan birisinin vergisi hesaplanırken bunun ilk 150 YTL si %25’ten geri kalanı ise %30’dan hesaplanmştır.
Bu nedenle sabit vergiler hasaplanmıştır.(v1,v2,v3,v4)
Kullanılan %12.21 f deyimi ise basamak sayısını belirmek içindir.
[/FONT][/B]
[COLOR=Blue][SIZE=5][B]05.03.2006 Tarihli En Son Eklenen Derslerimiz[/B][/SIZE][/COLOR]
[FONT=Comic Sans MS][B][FONT=Comic Sans MS][COLOR=Red]Switch Case Deyimi[/COLOR]
Çok sayıda koşul kontrolü ile bunların sonucuna göre gerçekleştirilecek eylemlerin icrasında kullanılır.(İf-else yerine)
Switch deyimi tek bir ifadenin değerine göre sınırsız sayıda icra yolu belirlemeye yarar.
Swtitch’den sonra gelen ifade parantez içerisinde ve tamsayı olmalı
Char,Short,,int,long biçiminde olabilir.
Case anahtar sözcükleri içeren ifadeler tamsayı sabit türünde olmalı (değişken içermemeli)
Switch ifadesinde hesaplanansonuç hangi case ‘i ,izleyen sabitle çakışıyorsa ğrogram kontrolü vuraya geçer.
Bu case’den sonrakideyimler de bir kontrole tabi olmaksızın sonuna kadar icra edilir.
İki case sabiti aynı değeri alamaz.
Programın kontrolünün ifadenin değerine göre case seçeneklerinden sadece birini icra edip bundan sonra switch-case yapısının terk edilmesi isteniliyorsa “break;” komutu kullanılmalı.
Alıntı:
[COLOR=#ff0000]Örnek ;
#include ”stdio.h”
int main()
{
char sec;
printf(“\nseçiminiz….. A,B,C’den birini seçiniz”);
scanf(“%c”,&sec);
switch(sec)
{
case ‘a’ : printf(“\nGirdiğiniz Harf A’dır”);break;
case ’b’ : printf(“\nGirdiğiniz Harf B’dir”);break;
case ‘c’ : printf(“\nGirdiğiniz Harf C’dir”);break;
default : printf(“\nHatalı Giriş Yaptınız…A,B veya C den birini girmelisiniz...\n”);
}
}
[/COLOR]
[COLOR=#ff0000]Not :[/COLOR] sec değişkeni yerine a değeri girilince case ’a’ icra edilir, break komutundan dolayı da switch-case yapısından çıkılır.
Yukarıdaki programda break komutu kullanılmasaydı klavyeden a değeri girildiğinde ekrana bütün case ler sıra ile icra edilip yazdırılacaktı.
[COLOR=#ff0000]Problem :[/COLOR] Aşağıdaki program bir turizm şirketinin tatil seçenekleri için yazılmıştır.
Alıntı:
[COLOR=#ff0000]#include ”stdio.h”
int main()
{
int sec;
printf(“\nFırtına Turizm şirketi İftaharla Sunar…..”)
printf(“\n1.Elazığ Seyehati”);
printf(“\n2.Gaziantep Seyehati”);
printf(“\n3.İstanbul Seyehati”);
pritntf(“\Seçiminiz……”);
scanf(“%d”,&sec);
switch(sec)
{
case ‘1’ : printf(“\nKaykay ile Seyehat,Yemek,Konaklama=250ytl”);break;
case ‘2’ : printf(“\nUçak ile Seyehat,Yemek,Konaklama,Eğlence=1000ytl”);break;
case ‘3’ : printf(“\nSandal ile Seyehat,Yemek,Konaklama,Gezi=5ytl”);break;
default : printf(“\nHatalı seçim…1,2veya 3 girilmeli\n\n”);
}[/COLOR]
}[/FONT][/B][/FONT]
Alıntı:
[SIZE=4][FONT=Comic Sans MS][COLOR=Magenta]10.03.2006 TARİHLİ EKLENEN EN SON C DERSLERİMİZ......[/COLOR][/FONT][/SIZE]
[FONT=Comic Sans MS][SIZE=2][B][COLOR=Black][COLOR=Red][B]Çevrim Oluşturma[/B][/COLOR]
Belli bir koşul sağlanana kadar aynı işlemler grubunu tekrar tekrar yaptırmaktır.
C dilinde çevrim yapısını oluşturmak için 3 deyim mevcuttur.
Alıntı:
[COLOR=#ff0000]- While Deyimi
- do….While Deyimi
- for Deyimi
[/COLOR]
[COLOR=SeaGreen]While Deyimi[/COLOR]
Alıntı:
[COLOR=Red]While(ifade)
Deyim1;
Deyim2;
………
deyim_n;[/COLOR]
[COLOR=#ff0000]Açıklama:[/COLOR] Önce ifade hesaplanır,sıfır olmayan bir değer çıkarsa(doğru) deyim icra edilir.
Deyim icra edildikten sonra program kontrolü while deyiminin başına geçer ve işlem tekrarlanır.Yani ifade yeniden hesaplanır , sonucuna göre işlem yapılır.Bu ifadenin sonucu yanlış(0) olana kadar hesaplama devam eder.
[COLOR=#ff0000]Do…….While deyim[/COLOR]i
While deyiminde ilk anda koşulun yanlış olması durumunda while gövdesi hiçbir zaman icra edilmez.
Do……While de ise hiç değilse program gövdesi 1 defa icra edilir.
Alıntı:
[COLOR=#ff0000]Do{ deyim1;
deyim2;
………
deyim_n;
}
while(ifade)
[/COLOR]
Test koşulu do….while deyiminden sonra bulunur.Bu nedenle çevrim hiç olmazsa bir defa icra eldir.Sonra ifadenin değerine bağlı olarak do ya dönülerek çevrim sürebilir.
[COLOR=#ff0000]For Deyimi[/COLOR]
For deyimi işlemlerin tekrar sayısı önceden belli olan durumlarda kullanılır.
Alıntı:
[COLOR=#ff0000]for(ifade1;ifade2;ifade3) deyim1;
deyim2;
veya
for(ifade1;ifade2,ifade3)
{deyim1;
deyim2;
……….
deyim_n;
}
deyim_x;
[/COLOR]
[COLOR=#ff0000]Açıklama : [/COLOR]
1. İlk önce ifade 1 hesaplanır ,bu genellikle bir veya daha fazla değişkene ilk değer atamaya yarayan bir atama deyimidir.
2. sonra ifade 2 hesaplanır.Bu deyimin koşulsal kısmıdır.
3. iade 2 yanlışsa ,programın kontrolü for deyiminden çıkar ve programın akışı programdaki bir sonraki deyime geçer (deyim_x[IMG]http://img.frmtr.com/images/smilies/wink.gif[/IMG]
4. Deyim veya bloklar arasındaki deyimler grubu icra edildikten sonra ifade 3 icra edilerek hesaplanır.Bundan sonra ifade 2 (koşul) hesaplanır ,koşul devam ediyorsa deyimler grubu tekrar icra edilir ve program tekrar ifade 2 ye döner.
İfade 1 sadece 1 defa icra edilir. İfade 2 ve ifade 3 çevrimin her tekrarında icra edilir.
Alıntı:
[COLOR=#ff0000]for(ifade1;ifade2;ifade3 )
deyim;
[/COLOR]
Alıntı:
[COLOR=#ff0000]ifade1;
while(ifade2)
{deyim;
ifade3;
}
[/COLOR]
bu ikisi tamamen aynıdır…..
[COLOR=#ff0000]Problem: [/COLOR]1’den n’e kadar olan tamsayıların toplamını veren bir C programı yazınız….
Alıntı:
[COLOR=#ff0000]#include ”stdio.h”
#include “conio.h”
main()
{
clrscr();
int top,i,n
printf(“\nÜst Sınırı Giriniz(Tamsayı)……”);
scanf(“%d”.&n);
top=0;
for(i=1;i<=n;i=i+1)
top=top+i
printf(“\1’den n’e kadar olan sayıların toplamı%d=%d\n\n(1+2+3+…..n)”,n,top);
}
[/COLOR]
[COLOR=#ff0000]Açıklama :[/COLOR] Başlangıç olarak top değerine 0 değeri atanmıştır.Girilen sayı 5 olsun yani n=5 için
i değerine başlangıçta 1değeri atanmıştır (i= için )bu halde “i<=n” koşulu sağlanacağından
top=0+1=1 olacak bu işlemin sonunda i bir arttırılarak çevrim devam edecek yani i=2 için
top=1+2 olacak i=3 için top=(1+2)+3, i=4 için top=(1+2+3)+4, i=5 için top=(1+2+3+4)+5 olacaktır.
Bundan sonra i=6 için koşul sağlanmayacağından çevrim sonlanacaktır.
İfade2 i<=n oluncaya kadar çevrim devam edecektir…
İfade3 ise i=1+i şeklinde b,r artırım ifadesidir.Çevrimin her tekrarında i değişkeninin değerini 1 arttıracaktır.
[COLOR=#ff0000]
Faktöryel Hesabı[/COLOR]
Alıntı:
[COLOR=#ff0000]#include ”stdio.h”
#include “conio.h”
main()
{
clrscr();
int fak,i,n;
printf(“\nFaktöryeli Alınacak Sayıyı Giriniz……”);
scanf(“%d”,n);
fak=1;
for(i=1;i<=n;i++)
fak=fak*i
printf(“\n%d!=1*2*3*……%d=%d\n\n”,n,n,fak);
}[/COLOR]
[COLOR=#ff0000]Açıkama :[/COLOR]
Çevrim öncesi i=1,fak=1 dir.
n=4 için koşul sağlanacak(i<=n) ve i=1 için fak=1*1 olacak i=2 için de koşul sağlanacak ve fak=1*2 olacak i=3 için fak=(1*2)*3 ve i=4 için (çevrim son kez olacak) fak=(1*2*3)*4 olacaktır.
i=4 olduğunda çevrim bitecektir
[/COLOR][/B][/SIZE][/FONT]