*
Arch Linux Türkiye Forum


Hoşgeldiniz Ziyaretçi. Lütfen giriş yapın veya kayıt olun.

Kullanıcı adınızı, şifrenizi ve aktif kalma süresini giriniz

C Kod Örnekleri 7476

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

İleti: 65
C Kod Örnekleri
« : 15 Haziran 2012 - 15:28:47 »
Öncelikle ben MKA kadar sabırlı bir insan olmadığımdan :P, ders vermek yerine,yanlızca kod örnekleri paylaşacağım.

Bu konu sıfırdan başlayan biri için hiçbirşey öğretmez, ki böyle bir amacım da yok. Bir kitaptan/kaynaktan C öğreniyorsanız, buradaki kodlarla antrenman yapabilirsiniz. Sorunuz olursa, elimden geldiğince, yardımcı olmaya çalışırım.

_________________

Kodları çalıştırmak için Geany, GNU C Complier ve XTerm'e ihtiyacınız olacak(Başka şeyler de kullanabilirsiniz tabii).
Kod: [Seç]
pacman -S geany gcc4.6 xterm

ile yükleyebilirsiniz.

İpucu] Kodları Geany'ye yapıştırdıktan sonra program_adi.c şeklinde kaydederseniz kodlar renkelenecektir. Böylece daha rahat okuyabilirsiniz. Kodları F9 ile derleyip, F5 ile çalıştırabilirsiniz.



Önemli] Olurda program sonsuz döngüye girer veya bir hata sonucu kapatılamazsa Ctrl + C ile zorla durdurabilirsiniz.

_________________

Bazı kodların başlangıcında açıklamalar mevcut. Ben açıklamaları buraya da yazacağım. Tavsiyem önce açıklamaya göre kendi kodunuzu yazmanız, sonra benim kodlarımla karşılaştırmanızdır.

_________________

Kodlarımın "en iyi" olduğunu iddia etmiyorum.   :)  Daha iyi çözümler olabilir. Şimdilik 2 tane var. Akşama doğru daha da ekleyeceğim.

_________________

_________________

Hesap Makinesi:
Kod: [Seç]
#include <stdio.h>

int main(){
int dongu, secim, sayi1, sayi2;
dongu = 1;

printf ("::Hesap Makinesi:: n");

while (dongu == 1){

printf ("[0] Çıkış n");
printf ("[1] Toplama n");
printf ("[2] Çıkarma n");
printf ("[3] Çarpma n");
printf ("[4] Bölme n");
printf ("Komut No: ");

scanf ("%d", &secim);

if (secim == 0)
break;

else if (secim == 1){
printf ("nToplanan: ");
scanf ("%d", &sayi1);
printf ("Toplanan: ");
scanf ("%d", &sayi2);
printf ("Toplam: %d nn", sayi1 + sayi2);

continue;
}

else if (secim == 2){
printf ("nEksilen: ");
scanf ("%d", &sayi1);
printf ("Çıkan: ");
scanf ("%d", &sayi2);
printf ("Fark: %d nn", sayi1 - sayi2);

continue;
}

else if (secim == 3){
printf ("nÇarpan: ");
scanf ("%d", &sayi1);
printf ("Çarpan: ");
scanf ("%d", &sayi2);
printf ("Çarpım: %dnn", sayi1 * sayi2);

continue;
}

else if (secim == 4){
printf ("nBölünen: ");
scanf ("%d", &sayi1);
printf ("Bölen: ");
scanf ("%d", &sayi2);
printf ("Bölüm: %d nn", sayi1 / sayi2);

continue;

}
else{
printf ("Hatalı komut girdiniz! nn");

continue;
}

}

return 0;

}

_________________

_________________

Not İstatistikçisi(Ad bulamadım, kusura bakmayın  :) )
Kod: [Seç]
#include <stdio.h>

int main(){

int not=0, bes=0, dort=0, uc=0, iki=0, bir=0, sifir=0, sayici=0, toplam=0;

printf ("Not giriniz (Çıkış: -4): ");
scanf ("%d", &not);

while (not != -4){
++sayici;
toplam += not;

if (not < 20)
++sifir;

if (not <= 45){
if (not >= 20)
++bir;
}

if (not < 55){
if (not >= 45)
++iki;
}

if (not < 70){
if (not >= 55)
++uc;
}

if (not < 85){
if (not >= 70)
++dort;
}

if (not < 100){
if (not >= 85)
++bes;
}

printf ("Not giriniz (Çıkış: -4): ");
scanf ("%d", &not);
continue;
}
if (sayici== 0){
printf ("Not girilmemiştir!");
}

else{
printf ("nnSonuçlar:");
printf ("nSınava giren öğrenci sayısı: %d", sayici);
printf ("nn0 alan öğrenci sayısı: %d /%d", sifir, sayici);
printf ("n1 alan öğrenci sayısı: %d /%d", bir, sayici);
printf ("n2 alan öğrenci sayısı: %d /%d", iki, sayici);
printf ("n3 alan öğrenci sayısı: %d /%d", uc, sayici);
printf ("n4 alan öğrenci sayısı: %d /%d", dort, sayici);
printf ("n5 alan öğrenci sayısı: %d /%d", bes, sayici);
printf ("nnPuan ortalaması: %.2f",(float) toplam/sayici);
}

return 0;
}




_________________


Kod: [Seç]
#include <stdio.h>

int main(){

int sayi=0, enBuyuk=0;

printf ("Sayı giriniz (Çıkış: -4): ");
scanf ("%d", &sayi);

while (sayi != -4){

if (sayi > enBuyuk)
enBuyuk = sayi;

printf ("Sayı giriniz (Çıkış: -4): ");
scanf ("%d", &sayi);

continue;
}

printf ("nEn büyük sayı: %d", enBuyuk);

return 0;
}

_________________

En Büyük 1. ve 2. sayıyı bulma (biraz uğraştırdı beni  :) ) :
Kod: [Seç]
#include <stdio.h>

int main(){

int sayi=0, Buyuk=0, enBuyuk=0;

printf ("Sayı giriniz (Çıkış: -4): ");
scanf ("%d", &sayi);

while (sayi != -4){

if (sayi > enBuyuk)
Buyuk = enBuyuk;

else{
if (sayi > Buyuk)
if (sayi < enBuyuk)
Buyuk = sayi;
}

if (sayi > enBuyuk)
enBuyuk = sayi;

printf ("Sayı giriniz (Çıkış: -4): ");
scanf ("%d", &sayi);

continue;
}

printf ("nEn büyük sayı: %d", enBuyuk);
printf ("n2. En büyük sayı: %d", Buyuk);

return 0;
}

_________________

Kredi Hesaplayıcı
Kod: [Seç]

#include <stdio.h>

int main(){

int menu=0;
float faiz, kredi, vade, taksit;

printf ("[0] Çıkışn");
printf ("[1] Faiz Hesaplaman");
printf ("[2] Vade (Ay) Hesaplaman");
printf ("[3] Kredi Limiti Hesaplaman");
printf ("[4] Taksit Hesaplaman");

printf ("Komut: ");
scanf ("%d", &menu);

while (menu != 0){

if (menu == 1){
printf ("nVade (Ay): ");
scanf ("%f", &vade);

printf ("Kredi Tutarı: ");
scanf ("%f", &kredi);

printf ("Taksit (Ay): ");
scanf ("%f", &taksit);

printf ("Faiz: %.2f", (((taksit*vade)-kredi)/kredi));
}

if (menu == 2){
printf ("nFaiz: ");
scanf ("%f", &faiz);

printf ("Kredi Tutarı: ");
scanf ("%f", &kredi);

printf ("Taksit (Ay): ");
scanf ("%f", &taksit);

printf ("Vade (Ay): %.1f",  ((kredi*faiz)+kredi)/taksit);

}

if (menu == 3){
printf ("nFaiz: ");
scanf ("%f", &faiz);

printf ("Vade (Ay): ");
scanf ("%f", &vade);

printf ("Taksit (Ay): ");
scanf ("%f", &taksit);

printf ("Kredi Limiti: %.2f", (taksit*vade/(1+faiz)));

}

if (menu == 4){
printf ("nFaiz: ");
scanf ("%f", &faiz);

printf ("Vade (Ay): ");
scanf ("%f", &vade);

printf ("Kredi Tutarı: ");
scanf ("%f", &kredi);

printf ("Taksit (Ay): %.1f",  ((kredi*faiz)+kredi)/vade);
}

printf ("nn[0] Çıkışn");
printf ("[1] Faiz Hesaplaman");
printf ("[2] Vade (Ay) Hesaplaman");
printf ("[3] Kredi Limiti Hesaplaman");
printf ("[4] Taksit Hesaplaman");

printf ("Komut: ");
scanf ("%d", &menu);

continue;
}

return 0;
}

_________________

Ortalama Hesaplayıcı:

Bu uygulamanın en önemli özelliği siz -4 değerini girene kadar sayı almasıdır. while komutu kullanılmıştır.

Her satır tek tek açıklanmıştır(Diğer kodların aksine  :) )
Kod: [Seç]
#include <stdio.h> // Standart giriş-çıkış kütüphanesini ekliyoruz.

int main(){

float ortalama; // Değişkenlerin bildirimi. "float" ondalıklı sayıları temsil edebilir.
int toplam=0, sayici=0, not; // Değişkenlerin bildirimi. "int" tam sayıları temsil edebilir.

printf ("Not giriniz [Son: "-4"]: "); // Not soruyor.
scanf ("%d", &not); // Girilen sayıyı "not" değişkenine atıyor.

while (not != -4){ // Nöbetçi değer(-4) girilmediği sürece(while)
toplam = toplam + not; // "not" değerini "toplam"a ekliyor.
sayici = sayici +1; // "sayici"'yı 1 arttırıyor.

printf ("Not giriniz [Son: "-4"]: "); // Not soruyor. Yeni değer, eskisinin üzerine yazılıyor.
scanf ("%d", &not); // Girilen sayıyı "not" değişkenine atıyor.

continue; // Kendinden sonraki tüm kodları atlayarak, koşul sağlandığı sürece, döngüyü başa alıyor.
}

if (sayici != 0){ // Eğer "sayici" değişkeni sıfıra eşit değilse, yani en az 2 not girildiyse
ortalama = (float) toplam / sayici; // "toplam" değişkenini, "sayici" değişkenine bölerek ortalamayı hesaplıyor ve "ortalama" değişkenine atıyor
printf ("Ortalama: %.2f", ortalama); // Ortalama değişkenini yazdırıyor. "%.2f" ifadesi ile virgülden sonra sadece 2 basamak gösteriliyor.
}

else // Eğer "sayici" değikeni sıfıra eşitse, yani en az 2 not girilmediyse
printf ("[!] Not girilmemiştir"); // Uyarı yazdırıyor.

return 0;
}
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »

Administrator İleti: 2.228 *****
Re: C Kod Örnekleri
« Yanıtla #1 : 15 Haziran 2012 - 15:43:00 »
Öncelikle paylaşım için teşekkür ederim @boraalper4. Hepimiz bir makinanın dişli parçaları gibi elemenları durumundayız. Bir başka deyişle birbirini tamamlayan unsurlar. Bir araya geldiginde mükemmel sonuçlar ortaya çıkıyor. Programlama adına gerek @MKA, gerekse sizler farklı anlatım olsa bile çok şey katacağınıza inanıyorum.
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »

İleti: 65
Re: C Kod Örnekleri
« Yanıtla #2 : 15 Haziran 2012 - 15:44:35 »
Alıntı yapılan: "cumali"
Öncelikle paylaşım için teşekkür ederim @boraalper4. Hepimiz bir makinanın dişli parçaları gibi elemenları durumundayız. Bir başka deyişle birbirini tamamlayan unsurlar. Bir araya geldiginde mükemmel sonuçlar ortaya çıkıyor. Programlama adına gerek @MKA, gerekse sizler farklı anlatım olsa bile çok şey katacağınıza inanıyorum.

Elimdeki kitap da ileride C++'a geçiyor. Sanırım ileri de daha da tamamlayıcı olacağız. :)
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »

İleti: 75

MKA

*
Re: C Kod Örnekleri
« Yanıtla #3 : 15 Haziran 2012 - 15:58:37 »
Gelelim baba toriklere =)

C iyidir güzeldir. Severiz kendilerini.

Kolay gelsin @boraalper4
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »

İleti: 1.707
Re: C Kod Örnekleri
« Yanıtla #4 : 16 Haziran 2012 - 16:10:42 »
Editör olarak Geany kullanınca ara sıra bunları denemek gerek esasen IDE olduğunu unutmamak için. :)
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »

İleti: 65
Re: C Kod Örnekleri
« Yanıtla #5 : 16 Haziran 2012 - 18:09:08 »
Alıntı yapılan: "hsngrms"
Editör olarak Geany kullanınca ara sıra bunları denemek gerek esasen IDE olduğunu unutmamak için. :)

Geany candır.

_________________
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »

Administrator İleti: 2.228 *****
Re: C Kod Örnekleri
« Yanıtla #6 : 16 Haziran 2012 - 19:01:09 »
@boraalper4, talebiniz üzere eklediginiz konu ilk mesaja eklenmiştir.
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »

Newbie İleti: 26 *
Re: C Kod Örnekleri
« Yanıtla #7 : 16 Haziran 2012 - 19:40:16 »
@boraalper4



En büyük iki sayıyı hesaplarken aynı koşul için iki if kullanılması tam iyi olmamış sanırsam. Bir de scanf ile istediğimiz sayi değişkenine varsayılan olarak 0 değeri atanmaması durumu daha iyi olur diyebiliyorum ama bu konuda teorik bir bilgiye sahip değilim hangisi daha uygun ki?


Kod: [Seç]
#include <stdio.h>

int main(){

int sayi, Buyuk=0, enBuyuk=0;

printf ("Sayı giriniz (Çıkış: -4): ");
scanf ("%d", &sayi);

while (sayi != -4){

   if (sayi > enBuyuk) {
      Buyuk = enBuyuk;
      enBuyuk = sayi;
   } else {
   if (sayi > Buyuk)
      if (sayi < enBuyuk)
         Buyuk = sayi;
   }
     
   printf ("Sayı giriniz (Çıkış: -4): ");
   scanf ("%d", &sayi);
   
   continue;
}

printf ("nEn büyük sayı: %d", enBuyuk);
printf ("n2. En büyük sayı: %d", Buyuk);

return 0;
}
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »

özgürlük için..
İleti: 65
Re: C Kod Örnekleri
« Yanıtla #8 : 16 Haziran 2012 - 21:06:08 »
Alıntı yapılan: "alorak"
@boraalper4



En büyük iki sayıyı hesaplarken aynı koşul için iki if kullanılması tam iyi olmamış sanırsam. Bir de scanf ile istediğimiz sayi değişkenine varsayılan olarak 0 değeri atanmaması durumu daha iyi olur diyebiliyorum ama bu konuda teorik bir bilgiye sahip değilim hangisi daha uygun ki?


Kod: [Seç]
#include <stdio.h>

int main(){

int sayi, Buyuk=0, enBuyuk=0;

printf ("Sayı giriniz (Çıkış: -4): ");
scanf ("%d", &sayi);

while (sayi != -4){

   if (sayi > enBuyuk) {
      Buyuk = enBuyuk;
      enBuyuk = sayi;
   } else {
   if (sayi > Buyuk)
      if (sayi < enBuyuk)
         Buyuk = sayi;
   }
     
   printf ("Sayı giriniz (Çıkış: -4): ");
   scanf ("%d", &sayi);
   
   continue;
}

printf ("nEn büyük sayı: %d", enBuyuk);
printf ("n2. En büyük sayı: %d", Buyuk);

return 0;
}


Yaptığınız düzeltmelerin hepsi doğru sanırsam(ben bir hata göremedim, gcc de sorunsuz derledi). Teşekkür ederim.  :)



_________________

[size=200]HATA[/size]

Kredi Hesaplayıcısı örneğindeki finansal formüller hiç de o kadar basit değilmiş.  :)

Doğru olan finansal formüller de çok karışık olduğundan şimdilik elimden bir şey gelmiyor. Kusura bakmayın.
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »

Newbie İleti: 26 *
Re: C Kod Örnekleri
« Yanıtla #9 : 16 Haziran 2012 - 22:57:32 »
Alıntı yapılan: "boraalper4"



Yaptığınız düzeltmelerin hepsi doğru sanırsam(ben bir hata göremedim, gcc de sorunsuz derledi). Teşekkür ederim.  :)


Ayrıca şuan gördüm taksit taksit demek istemezdim ama else içindeki if (sayi < enBuyuk) da gereksiz oluyor. çünkü else zaten o durumu sağlamakla görevli. sadece o satır silinerek de program aynı şekilde çalışacaktır. :) Ama güzel örnekler olmuş yeni başlayanların anlayabilmesi için. Teşekkürler.
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »

özgürlük için..
İleti: 65
Re: C Kod Örnekleri
« Yanıtla #10 : 17 Haziran 2012 - 08:56:24 »
Alıntı yapılan: "alorak"
Alıntı yapılan: "boraalper4"



Yaptığınız düzeltmelerin hepsi doğru sanırsam(ben bir hata göremedim, gcc de sorunsuz derledi). Teşekkür ederim.  :)


Ayrıca şuan gördüm taksit taksit demek istemezdim ama else içindeki if (sayi < enBuyuk) da gereksiz oluyor. çünkü else zaten o durumu sağlamakla görevli. sadece o satır silinerek de program aynı şekilde çalışacaktır. :) Ama güzel örnekler olmuş yeni başlayanların anlayabilmesi için. Teşekkürler.

Yeni örnek paylaşmaya korkuyorum artık. :P  Şaka bir yana, tavsiyeleriniz için çok teşekkür ederim.  :)

_________________

Sayılar için Palindrom Kontrolü



Bu örnekte ilk kez && kullandım. Böylece 2 kez if ve iki kez else kullanmama da gerek kalmadı.



İkinci önemli bir şey ise sayıları, kaç basamaklı olduğu önceden biliniyorsa eğer, basamaklarına ayırabilmesi. Biz, sayımızın 5 basamaklı olduğu için mod alma(%) ve bölme işlemleriyle ile basamaklarına ayrıdık:

Mod alma bir sayıyı başka bir sayıya böldüğünüzde kalanı verir(10 % 3 = 1). Bu işlemi sayımıza 10 ile yaptığımızda (sayi % 10) birler basamağını elde ederiz. (sayi % 10 = birler_basamağı)

Onlar basamağındaki rakamı da elde edebilmek için ne yapmalı:

Önce birler basamağını sayıdan çıkratıyoruz. Sayının birler basamağı 0 olacağı için kolayca 10'a bölebiliriz. 10'a böldükten sonra sayımız 4 haneli olacak ve onlar basamağındaki sayı da birler basamağına gelecek. Sonra tekrar 10 ile mod alacağız. Bu döngü tüm rakamları elde edene kadar devam edecek.



Anlatım karışık olduysa kusura bakmayın.  :D
Kod: [Seç]
#include <stdio.h>

int main(){
int sayi, s2, s3, s4, s5, s6;

printf ("5 Basamaklı bir sayı girin: ");
scanf ("%d", &sayi);

if (sayi > 99999)
printf ("Girdiğiniz sayı 5 basamaklı değil!");

if (sayi < 10000)
printf ("Girdiğiniz sayı 5 basamaklı değil!");

s2 = sayi % 10;
sayi = (sayi - s2) / 10;

s3 = sayi % 10;
sayi = (sayi - s3) / 10;

s4 = sayi % 10;
sayi = (sayi - s4) / 10;

s5 = sayi % 10;
sayi = (sayi - s5) / 10;

s6 = sayi;

if (s2 == s6 && s3 == s5)
printf ("Bu sayı bir "Palindrome"dur!");

else
printf (""Palindrome" ne arar la bu sayıda?");

return 0;
}
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »

Administrator İleti: 2.228 *****
Re: C Kod Örnekleri
« Yanıtla #11 : 17 Haziran 2012 - 09:14:38 »
@boraalper4, anlatım karışık degil. Güzel gidiyor. Kısa süre sonra kod etiketi üzerinde yapacağımız düzenlemeyle karışık görüntünün giderilecegine inanıyorum. Yola devam :)
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »

İleti: 65
Re: C Kod Örnekleri
« Yanıtla #12 : 17 Haziran 2012 - 09:31:25 »
Alıntı yapılan: "cumali"
Kısa süre sonra kod etiketi üzerinde yapacağımız düzenlemeyle karışık görüntünün giderilecegine inanıyorum.

Çok iyi, hatta çok çok iyi olur. :)
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »

Newbie İleti: 26 *
Re: C Kod Örnekleri
« Yanıtla #13 : 17 Haziran 2012 - 13:23:35 »
Alıntı yapılan: "boraalper4"

Yeni örnek paylaşmaya korkuyorum artık. :P  Şaka bir yana, tavsiyeleriniz için çok teşekkür ederim.  :)


Yok canım paylaşımlar cidden mükemmel. Emek verilen şeyler kesinlikle değerlidir. Ben yalnızca temel olarak bakıp mantıksal düzeyde fazlalık ve eksiklik var mı şeklinde katkıda bulunmak istedim. Eline sağlık tekrardan :P ve ilerisi için de.
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »

özgürlük için..
Newbie İleti: 26 *
Re: C Kod Örnekleri
« Yanıtla #14 : 17 Haziran 2012 - 15:26:57 »
Ben de palindrom olayını for döngüsü ve dizilerle yapayım dedim:


Kod: [Seç]
#include <stdio.h>

int main(){
int rakamlar[ 5 ], i, sayi;

printf ("5 Basamaklı bir sayı girin: ");
scanf ("%d", &sayi);

if (sayi > 99999)
   printf ("Girdiğiniz sayı 5 basamaklı değil!");
   
if (sayi < 10000)
   printf ("Girdiğiniz sayı 5 basamaklı değil!");
   
for (i = 1; i < 5; i++)
{
rakamlar[i] = sayi % 10;
sayi = (sayi - rakamlar[i]) / 10;
}

if (rakamlar[1] == sayi && rakamlar[2] == rakamlar[4])
   printf ("Bu sayı bir "Palindrome"dur!");

else
   printf (""Palindrome" ne arar la bu sayıda?");

return 0;
}


Açıklama olarak şunu da diyeyim. For içinde bir if döngüsü ve rakamlar[5] ile son rakamı da koyabilirdik. böylelikle rakamlar dizisinde girdiğimiz sayının tamamını barındırabilirdik ama kod kolaylığı olsun diye son kalan rakamı sayi değişkeninde tuttuk.
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »

özgürlük için..
Newbie İleti: 26 *
Re: C Kod Örnekleri
« Yanıtla #15 : 17 Haziran 2012 - 16:09:57 »
Ayrıca yazdığım yazıları düzenleyemediğim için iki if kullanmak yerine bir or(||) kullanabiliriz.


Kod: [Seç]
if (sayi > 99999 || sayi < 10000)
   printf ("Girdiğiniz sayı 5 basamaklı değil!");


şeklinde.. Benim kodda da arkadaşınkinde de eksik yapılmış bir şey olarak düşünülmektedir.
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »

özgürlük için..
İleti: 65
Re: C Kod Örnekleri
« Yanıtla #16 : 17 Haziran 2012 - 22:38:44 »
Beraber iyi bir ikili olduk sanırım.  :) Katkılarınız için ne kadar teşekkür etsem az.


Alıntı yapılan: "alorak"
Ayrıca yazdığım yazıları düzenleyemediğim için...

Şu sorun düzeltilse çok iyi olur. Kodlar sayfalara dağılıyor. Yöneticileri de sürekli mesaj düzenleterek uğraştırmak istemiyorum. :)

_________________

Türkçe C ve C++ kaynağı arayanlara:

C ve C++ kitabını öneriyorum. Ben çok sevdim çünkü dolu dolu bir kitap(863 sayfa). Ayrıca her konunun sonunda alıştırmaları ve konu içinde de bol bol tavsiyeler(taşınabilirlik ve hız hakkında) var. Hatta buradaki örneklerin pek çoğu, kitaptaki alıştırmaların çözümü aslında(biraz makyajlıyorum tabii  :D ).

_________________

Neyse ki bugün de elim boş gelmiyorum! :P Adı biraz dandik oldu ama... Uygulamamız girdiğiniz bir sayıyı (en fazla 255) makine diline (sıfır sıfır bir) dönüştürüyor!(Aman ne büyük şey  :D ) Tam tersi de mümkün tabii.



Özür: Kodun bazı satırları çok uzun oldu. Kusura bakmayın.



Son: Çok uzattım ama, programın çıktılarını test etmek için şu siteye.

_________________

İkili ve Onlu Dönüştürücü (İng: Binary(001) to Decimal(123) Converter)
Kod: [Seç]
#include <stdio.h>

int main(){

int menu, giris, rakamlar[9], i;

printf ("[0] Çıkışn");
printf ("[1] İkili > Onlukn");
printf ("[2] Onluk > İkilin");
printf ("[#] Komut: ");
scanf ("%d", &menu);

while (menu != 0){

if (menu == 1){
printf ("nSayı giriniz: ");
scanf ("%d", &giris);

for (i = 1; i < 8; i++){

rakamlar[i] = giris % 10;
giris = (giris - rakamlar[i]) / 10;
}
printf ("Sonuç: %d", (rakamlar[1] *1 + rakamlar[2] *2 + rakamlar[3] *4 + rakamlar[4] *8 + rakamlar[5] *16 + rakamlar[6] *32 + rakamlar[7] *64 + giris *128));
}
if (menu == 2){
printf ("nSayı giriniz: ");
scanf ("%d", &giris);

for (i = 8; i > 0; i--){

rakamlar[i] = giris % 2;
giris /= 2;
}

printf ("Sonuç: %d%d%d%d%d%d%d%d", rakamlar[1],rakamlar[2],rakamlar[3],rakamlar[4],rakamlar[5],rakamlar[6],rakamlar[7],rakamlar[8]);
}

printf ("nn[0] Çıkışn");
printf ("[1] İkili > Onlukn");
printf ("[2] Onluk > İkilin");
printf ("[#] Komut: ");
scanf ("%d", &menu);

continue;
}
return 0;
}
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »

Newbie İleti: 26 *
Re: C Kod Örnekleri
« Yanıtla #17 : 17 Haziran 2012 - 23:38:58 »
Bu arada eski polindrom'un sayı kısıtlamasız çözümü için: (kod daha kısaltılabilir belki ama şuan aklıma gelmedi :) )


Kod: [Seç]
#include <stdio.h>

int main(){
int i, sayi, kacBasamak=0, sayi2, kacKere, dogru=1;

printf ("Bir sayı girin: ");
scanf ("%d", &sayi);

sayi2 = sayi;

while(sayi2>0)
{
kacBasamak++;
sayi2/=10;
}

int dizi[ kacBasamak ];

for (i = 1; i < kacBasamak+1; i++)
{
dizi[i] = sayi % 10;
sayi = (sayi - dizi[i]) / 10;
}

kacKere = kacBasamak/2;

for (i = 1; i < kacKere+1; i++)
{
if(dizi[i] != dizi[kacBasamak])
dogru=0;
kacBasamak--;
}

if (dogru == 1)
printf ("Bu sayı bir "Palindrom"dur!");
else
printf (""Palindrom" ne arar la bu sayıda?");


return 0;
}
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »

özgürlük için..
Newbie İleti: 26 *
Re: C Kod Örnekleri
« Yanıtla #18 : 18 Haziran 2012 - 00:40:48 »
Alıntı yapılan: "boraalper4"

İkili ve Onlu Dönüştürücü (İng: Binary(001) to Decimal(123) Converter)


Sanki bunda baştaki menüyü de döngü içine alırsak daha iyi olacak gibi geldi. böylelikle 2 yerde kullanmak zorunda kalmadık aynı menüyü:


Kod: [Seç]
#include <stdio.h>

int main(){

int menu, giris, rakamlar[9], i;

while (menu != 0){

   printf ("[0] Çıkışn");
   printf ("[1] İkili > Onlukn");
   printf ("[2] Onluk > İkilin");
   printf ("[#] Komut: ");
   scanf ("%d", &menu);
   
   if (menu == 1){
      printf ("nSayı giriniz: ");
      scanf ("%d", &giris);
     
      for (i = 1; i < 8; i++){
         
         rakamlar[i] = giris % 10;
         giris = (giris - rakamlar[i]) / 10;
      }
      printf ("Sonuç: %dnn", (rakamlar[1] *1 + rakamlar[2] *2 + rakamlar[3] *4 + rakamlar[4] *8 + rakamlar[5] *16 + rakamlar[6] *32 + rakamlar[7] *64 + giris *128));
}
   if (menu == 2){
      printf ("nSayı giriniz: ");
      scanf ("%d", &giris);
     
      for (i = 8; i > 0; i--){
         
         rakamlar[i] = giris % 2;
         giris /= 2;
      }
     
   printf ("Sonuç: %d%d%d%d%d%d%d%dnn", rakamlar[1],rakamlar[2],rakamlar[3],rakamlar[4],rakamlar[5],rakamlar[6],rakamlar[7],rakamlar[8]);
   }
   
   continue;
}
return 0;
}
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »

özgürlük için..
İleti: 65
Re: C Kod Örnekleri
« Yanıtla #19 : 20 Haziran 2012 - 19:34:09 »
Char > Int Dönüştürücü


Kod: [Seç]

#include <stdio.h>
#include <stdlib.h>

int main(){
char chr[11];
int Dchr[11], i=1;

printf ("Metin (En fazla: 10 karakter): ");
scanf ("%c%c%c%c%c%c%c%c%c%c", &chr[1], &chr[2], &chr[3], &chr[4], &chr[5], &chr[6], &chr[7], &chr[8], &chr[9], &chr[10]);

while (i < 11){
Dchr[i] = chr[i];
i++;
}

printf ("ASCII (Decimal): %d %d %d %d %d %d %d %d %d %d", Dchr[1], Dchr[2], Dchr[3], Dchr[4], Dchr[5], Dchr[6], Dchr[7], Dchr[8], Dchr[9], Dchr[10]);

return 0;
}


Nasıl dönüştürür: Karakteri ASCII Tablosu'na göre sayıya dönüştürür.
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »

Newbie İleti: 57 *
Re: C Kod Örnekleri
« Yanıtla #20 : 01 Eylül 2012 - 11:19:52 »
Arkadaşlar ellerinize sağlık.Önceki örnekleri gerçekten zevkle inceliyorum.



Bende bir parça kod ekleyeyim çorbada tuzum olsun :)


Kod: [Seç]
#include <stdio.h>

int main()
{
   long  i, n, faktor;

   printf("Faktoriyeli hesaplanacak sayi girin : ");
   scanf("%ld",&n);

   faktor=1;
   for(i=1; i<=n; i++){
         faktor *= i;     /* n! = 1 x 2 x 3 x ... x n */
   }

   printf("%ld! = %ldn", n, faktor);

 return 0;
}




konsolda derlemek için ;


Kod: [Seç]
gcc fak.c -o fak


*dipnot] dosya ismini faktoriyelin kısaltması olarak fak.c diye ekledim.



http://i.imgur.com/oi1LSl.png" alt="" class="bbc_img" />



resimin büyük halinin adresi : http://i.imgur.com/oi1LS.png
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »

Newbie İleti: 26 *
Re: C Kod Örnekleri
« Yanıtla #21 : 13 Eylül 2012 - 18:07:09 »
Alıntı yapılan: "fthpl"

Kod: [Seç]
#include <stdio.h>

int main()
{
   long  i, n, faktor;

   printf("Faktoriyeli hesaplanacak sayi girin : ");
   scanf("%ld",&n);

   faktor=1;
   for(i=1; i<=n; i++){
         faktor *= i;     /* n! = 1 x 2 x 3 x ... x n */
   }

   printf("%ld! = %ldn", n, faktor);

 return 0;
}



Bu koda matematiksel bir ek de yapılabilir aslında. Çünkü n=0 yani girilen sayı 0 ise fonksiyon tanımlı olmayacak sanırım. Oysa ki 0 faktöriyel 1'e eşit(n!=n.(n-1)!, n!/n=(n-1)! ve n yerine 1 koyduğumuzda 1!/1=0!'den 0 faktöriyel 1 e eşit oluyor)



Bunu düzeltmek için forun dışına "if-else" yapısı eklenebilir. for'un içi de aynı şekilde n=0 durumunda n=1'e çevrilebilir. hatta dışına n=0 girildiğinde otomatik olarak n=1 de yaptırılabilir.. Alternatif çözüm çok düşünemedim ama daha iyi düşünen birisi çıkabilir belki.
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »

özgürlük için..
İleti: 65
Re: C Kod Örnekleri
« Yanıtla #22 : 13 Eylül 2012 - 18:12:23 »
Alıntı yapılan: "alorak"
Alıntı yapılan: "fthpl"

Kod: [Seç]
#include <stdio.h>

int main()
{
   long  i, n, faktor;

   printf("Faktoriyeli hesaplanacak sayi girin : ");
   scanf("%ld",&n);

   faktor=1;
   for(i=1; i<=n; i++){
         faktor *= i;     /* n! = 1 x 2 x 3 x ... x n */
   }

   printf("%ld! = %ldn", n, faktor);

 return 0;
}



Bu koda matematiksel bir ek de yapılabilir aslında. Çünkü n=0 yani girilen sayı 0 ise fonksiyon tanımlı olmayacak sanırım. Oysa ki 0 faktöriyel 1'e eşit(n!=n.(n-1)!, n!/n=(n-1)! ve n yerine 1 koyduğumuzda 1!/1=0!'den 0 faktöriyel 1 e eşit oluyor)



Bunu düzeltmek için forun dışına "if-else" yapısı eklenebilir. for'un içi de aynı şekilde n=0 durumunda n=1'e çevrilebilir. hatta dışına n=0 girildiğinde otomatik olarak n=1 de yaptırılabilir.. Alternatif çözüm çok düşünemedim ama daha iyi düşünen birisi çıkabilir belki.

Kod: [Seç]

#include <stdio.h>

long faktor_hesapla(long);

int main()
{
long n, faktor;

printf("Faktoriyeli hesaplanacak sayi girin : ");
scanf("%ld",&n);

faktor = faktor_hesapla(n);

printf("%ld! = %ldn", n, faktor);

return 0;
}

long faktor_hesapla(long sayi)
{
if (sayi == 0)
return 1;

else
return sayi * faktor_hesapla(sayi-1);
}
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »

İleti: 16
Re: C Kod Örnekleri
« Yanıtla #23 : 24 Ekim 2012 - 21:42:12 »
Güzel konu ilerleyen zamanlar da bende örneklerimi paylaşırım.
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »

İleti: 94
Re: C Kod Örnekleri
« Yanıtla #24 : 20 Şubat 2015 - 23:09:50 »
Guzel anlatimlar.

Tesekkurler...
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »

echo \"main(i){for(i=0;;i++)putchar(((i*(i>>7|i>>9)&46&i>>8))^(i&i>>9|i>>4));}\" | gcc -x c - && ./a.out | aplay