IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  digitalpanel

Etiketlenen Kullanıcılar

Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 25 Şubat 2012, 19:48   #1
Çevrimdışı
aSi
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Taban Aritmetiği





Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.

sayi_tabani(int simdiki_taban,int istenen_taban, int donusturulecek_sayi)
Belirli tabanda girilen sayıyı istenilen tabana dönüştüren fonksiyonu yazınız. Girilen sayının belirtilen tabanda olup olmadığının kontrolü yapılmalı eğer değilse tekrar sayı girişi istenilmelidir.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
#include<stdio.h> #include<conio.h> #include<windows.h> int sayi_tabani(int,int,int); main() { int a,b,sayi; do { system("cls");//ekrani sil printf("Simdiki Taban : "); scanf("%d",&a); printf("Donusturulecek Taban : "); scanf("%d",&b); printf("Sayi girisi yapiniz : "); scanf("%d",&sayi); } while(sayi_tabani(a,b,sayi)==0);//0 dönerse kural dışı birşey olmuş olacak ve işlem tekrar yapılacak. system("cls");//ekrani sil sayi_tabani(a,b,sayi);//fonksiyona gönderelim. getch(); } int sayi_tabani(int simdiki_taban,int istenen_taban, int donusturulecek_sayi) { int toplam=0,carp=1; int kalan=0,basamak=1,i; int yedek=donusturulecek_sayi;//sadece ekrana yazdirmak için yedeğini tutarız. do { if(donusturulecek_sayi%10>=simdiki_taban)//sayinin 10'a göre modunu alarak sırayla hep en sağdaki sayiyi kontrol ederiz.. //..xxxx işaretlediğim satırda da 10 a bolerek en sagdaki sayinin değişmesini sağlarız. return 0;//koşul sağlanmazsa fonksiyon 0 döndürür ve tekrar değer girilmesi istenir. else { toplam+=simdiki_taban*(donusturulecek_sayi%10)*carp;//10'luk tabana dönüştürürüz. carp*=10; donusturulecek_sayi/=10;//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx } } while(donusturulecek_sayi>0);//sayi 0'dan buyuk olana kadar bu ıslem devam eder. printf("\n%d Tabaninda Cevirilen deger : %d",simdiki_taban,yedek); int toplamyedek=toplam;//toplam degerini kaybetmemek için yedeğini alırız. do//taban aritmetiğinde değerler sondan başa doğru yazıldıgı ıcın once basamak sayısını bulup.. {//..basamak ilerledikçe 10 ile çarparız.bu yüzden burada basamak sayısını buluyoruz. toplamyedek/=istenen_taban;//toplamyedek değerini istenen tabana bölerek her defasında yeni bölen elde ederiz. basamak++; } while(toplamyedek>istenen_taban);//bölen istenen tabandan küçükse bu döngüden çıkar. carp=1;//basamak işlemlerini yaparız. for(i=1;i<basamak;i++) carp*=10; int son=carp;//döngünün bitişini kontrol etmek için son değerini tutarız.. carp=1;//yeni bi değişken atayacağımıza boşta duran çarp değerini 1'e eşitleyerek bellekten yer kazanalım. int sonuc=0;//bizden istenen cevap. do { sonuc+=(toplam%istenen_taban) * carp;//herseferinde nuldugum sayiyi carp degiskenıyle carpıyoruz. toplam/=istenen_taban;//bölenimiz her seferinde değişiyor carp*=10;//basamak ilerledikçe basamak değerini 10'la çarparız. } while(carp<=son); printf("\n%d Tabanina Donusen sayi : %d",istenen_taban,sonuc);//sonucu ekrana yazdırıp programdan çıkılır. }


__________________
Doğruları biliyorsan, yalanları dinlemek eğlencelidir.
 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları eglen sohbet sohbet
Cevapla

Etiketler
aritmetiği, taban


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Aşk Aritmetiği tiNa Serbest Kürsü 0 03 Eylül 2013 12:55
Sayıların Çözümlenmesi ve Taban Aritmetiği Liaaa Ödev ve Tezler 0 13 Haziran 2012 14:49
Hilbert'in Uçlar Aritmetiği Liaaa Ödev ve Tezler 0 31 Mart 2012 19:20
Taban Aritmetiği KarakıZ Ödev ve Tezler 0 09 Aralık 2011 09:45