Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
22
Cevap
40158
Tıklama
0
Öne Çıkarma
10'luk sistemdeki bir sayiyi 16 lık sayi sistemine çevirme.yardım?
H
19 yıl
Çavuş
Konu Sahibi

basamak sayisi belli olmayan !0'luk sistemdeki bir sayiyi 16 sayi sistemine çeviren c++ programını nasıl yazabilirim?

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



P
19 yıl
Yüzbaşı

sayıyı yaz deniym



M
19 yıl
Yarbay

ya ben mi yanlış biliyorum acba, yoksa uykum geldi hatırlayamıyor muyum?

10 luk sistemde yazdığın he ryazı 16 lık sistemde de aynısıdır.
16 lık sistemde yazılan bir sayıyı 10 luk sisteme çevirmek istiyorsan o olabilir işte.

o zaman şunu yapmalısın.

birler basamağında ki sayıyı 16 üzeri 0 ile çarp
onlar basamağında ki sayıyı 16 üzeri 1 ile çarp
yüzler basamağında ki sayıyı 16 üzeri 2 ile çarp
binler basamağında ki sayıyı 16 üzeri 3 ile çarp

sonra bu sayıları topla.

yani 16 lık sayı sisteminde ki 241 'in 10 luk sistemde ki karşılığı

1 x 1 = 1
4 x 16 = 64
2 x 256 = 512

512 + 64 + 1 = 577 dir.

ayrıca 16 lık sayı sisteminde yazılan
A 10 luk sistemde 10
B 10 luk sistemde 11
C 10 luk sistemde 12
D 10 luk sistemde 13
E 10 luk sistemde 14
F 10 luk sistemde 15 'e eşittir.


Bu mesaja 1 cevap geldi.
H
19 yıl
Çavuş
Konu Sahibi

yanlış hatırlıyosun mesala 10 luk sistemde =16 sayisi
16 lık sistemde =10 dur
anladın mı?
kullanıcı istediği sayıyı girecek sende onun 16 sayı sistemine çevirip direk 16 sistemdeki karşılığını vereceksin...


Bu mesaja 1 cevap geldi.
M
19 yıl
Yarbay

he tamam onu da hatırladım.

10 luk sistemde ki sayıyı 16 'lık sisteme çevirmek için sayıyı sürekli 16 'ya bölüyoruz.
sonra sağdan sola doğru yanyana yazıyoruz.

< Resime gitmek için tıklayın >


Bu mesaja 1 cevap geldi.
H
19 yıl
Çavuş
Konu Sahibi

ewet öyle yapıyor.matematiksel olarak kolay bişi ama programda nasıl yapacağımı bulamadım.


Bu mesaja 1 cevap geldi.
M
19 yıl
Yarbay

ben bu arada bir örnek daha yaptım. belki birilerine lazım olur. onuda paylaşalım.
< Resime gitmek için tıklayın >

bunu programda nasıl mı yapacaksın. aslında herşey önünde duruyor. ne yapacağım diye sorduğuna göre programlama da çok iyi değilsin.

girilen sayıyı 16 ya böl bölümü bir değişkene kaydet
girilen sayıyı 16 ya böl kalanı bir değişkene kaydet (mod alma işlemi, % işareti ile yapılır ==> 241 % 16 = 1 )

eğer bölüm 16 dan büyükse yukarıda ki işlemi tekrar yap.


bu arada bölümleri hep aynı değişkene kaydedebilirsin fakat kalanları mutlaka bir diziye sırayla yazdırmalısın.
C / C++ bilmediğim için kod örnekleri vererek yardımcı olamıyorum.





< Bu mesaj bu kişi tarafından değiştirildi MaviAteş -- 1 Şubat 2007; 2:17:26 >
Bu mesaja 1 cevap geldi.
H
19 yıl
Çavuş
Konu Sahibi

programlama da oldukca iyiyim.sadece forma takılan programcıların yaklaşımlarını takip etmek istiyorum.yani programı çözmek için ne yapacaklarını ve söylediklerini dikkate alıyorum.ama şimdiye kadar kimseden söyle yapabilirsin diye bir cvp alamadım.aslında basit bir program.bildiğin programlama dilinde yaz ozaman.illa c++ da yazmasanda olur.ama bana kod lazım.
benim uzamanlığım c++ da.oldğu için orda istedim.


Bu mesaja 1 cevap geldi.
M
19 yıl
Yarbay

quote:

Orjinalden alıntı: hakanngurcan

programlama da oldukca iyiyim.sadece forma takılan programcıların yaklaşımlarını takip etmek istiyorum.yani programı çözmek için ne yapacaklarını ve söylediklerini dikkate alıyorum.ama şimdiye kadar kimseden söyle yapabilirsin diye bir cvp alamadım.aslında basit bir program.bildiğin programlama dilinde yaz ozaman.illa c++ da yazmasanda olur.ama bana kod lazım.
benim uzamanlığım c++ da.oldğu için orda istedim.


baştan deseydin, bende resimlerle fala no kadar uğraşmazdım.
neyse inşaallah, birilerinin işine yarar.


şunu söyleyim, burası deneme tahtası değil, ayrıca burada her telden insan bulabilirsin. birçok kişi vardır, soruyu sorarken cevabını çözmüştür bile ama burada başka amaçla bulunuyordur yardım isteyene vakit ayırmaz.

kimisi vardır bilmediği halde sallar.
kimisi vardır benim gibi yardım etmeye çalışır, ama karşısında kinin yardıma ihtiyacı yoktur.

yani demek istediğim forumun genel seviyesini böyle ölçemezsin. çünkü yazdığın soruyu her okuyan cevap vermiyor.


Bu mesaja 1 cevap geldi.
H
19 yıl
Çavuş
Konu Sahibi

demek istediğini anladım.ama bazı insanlara örnek vererek soruyu çözmesini istemek yeterli olmaz.çünkü sorusu bildiği halde nasıl koda dökeceğini bilmiyorsa ne kadar da örnek göstersen yapamaz.onun için yardımını daha açık ve kodsal yaparsan,yardım isteyen kişiye okadar yardım olursun.sen baana anlatığın şey sadece matematik işlemi.onu her türlü insan bilir.liseden.ama program açısından yardımcı olmuyorsun.yanlış anlama.bildiğin programlama dilli hangisi?


Bu mesaja 2 cevap geldi.
M
19 yıl
Yarbay

Ben şöyle düşünüyorum.

kişi eğer programcı olmak istiyorsa otursun mantığını kendisi bulsun.
ben burada ona fonksiyonu yazıp verirsem buradan birşey öğrenmeden gider.

Ben programlamayı ilk olarak Pascal 'da öğrendim sonra delphi ile biraz ilgilendim.
daha sonra C# ve PHP ile de ilgilendim. PHP ile daha çok Veritabanı işlerinde uğraştım.

bunlarında hiç birinde de mükemmel değilim fakat iş ne olursa olsun, ararım bulurum işimi hallederim.



H
19 yıl
Çavuş
Konu Sahibi

kendine de söylüyorsun soruyu sorarken bile soruyu çözmüştür ve başka amaçlar için burdadır.yani progralama sende bilirsin tek bir yol yoktur.onun için yaklaşımlar herzaman önemlidir.doğru söylüyorsun ama bazen düşündüğün şeyi kod olarak aktarmakta insan zorlanır.onun için yardım ister.bende c++ başladım bu işe delphi de bilirim ama az hoşuma gitmedi.onun yerine visual basic daha kolay ve daha ii bence.veritabanında da acess te abay program yazdım.


Bu mesaja 1 cevap geldi.
H
19 yıl
Çavuş
Konu Sahibi

bence de ilk önce programı analiz yatar.yani kodlama benim için 2. planda kalır.sana bir mantık sorusu 2 sayıyı birbirine bölmeden nasıl böldürürsün?


Bu mesaja 2 cevap geldi.
B
19 yıl
Çavuş

Bende hazir fonksiyon var bu konuyla ilgili. Ama bence de kendin yazman en iyisi.

Cok istiyosan gondereyim yine de.


Bu mesaja 1 cevap geldi.
H
19 yıl
Çavuş
Konu Sahibi

B
19 yıl
Çavuş

Ozelinde ;)



K
19 yıl
Çavuş

quote:

Orjinalden alıntı: hakanngurcan

bence de ilk önce programı analiz yatar.yani kodlama benim için 2. planda kalır.sana bir mantık sorusu 2 sayıyı birbirine bölmeden nasıl böldürürsün?


valla tarihin en zor sorusunu sormuşsun
:D

birbirinden çıkararak mı yoksa :D


Bu mesaja 1 cevap geldi.
A
19 yıl
Onbaşı

#include <iostream>
#include <cmath>
using namespace std;


int main()
{
cout<<"16 lik sistemde yazilmasini istediginiz sayiyi girin: ";
int sayi,basamak=1;
cin>>sayi;

while(sayi>=pow(16,basamak))
{
basamak++;
}

while(basamak>0)
{
cout<<sayi/int(pow(16,basamak-1))<<" ";
sayi=sayi%int(pow(16,basamak-1));
basamak--;
}


return 0;
}


alın size yazdığım kodlar. çok fazla deneme şansım olmadı bir de siz deneyin.


Bu mesaja 1 cevap geldi.
R
19 yıl
Yüzbaşı

Yanlış anlamayın ama şunu hiç denedinizmi?

 
cout<<hex<<15;


yani verdiğiniz bir sayıyı zaten standart c++ fonsiyonu "cout" ile 16 lık tabana çevirirsiniz.


Bu mesaja 1 cevap geldi.
A
19 yıl
Yüzbaşı

quote:

Yanlış anlamayın ama şunu hiç denedinizmi?

cout<<hex<<15;



Benden daha hizli davrandin :-)

int olarak belirledigimiz rakamlar zaten bilgisayarda hex olarak tutuluyor. 10lu taban okumak insanlar icin daha kolay oldugundan kod seviyesinde rakamlar 10lu tabandir.

 
#include <iostream>

using namespace std;

int main() {

int a=14;
int b=0xf;

cout<<hex<<a<<endl;
cout<<b<<endl;

return 0;
}



cout<<hex'ten sonraki cout'larin hepsi hex formati veriyor (yeni ogrendim)... asagidaki programin ciktisina bak...

 
#include <iostream>

using namespace std;

int main() {

int a=14;
int b=0xf;

cout<<b<<endl;

cout<<hex<<a<<endl;

cout<<b<<endl;

cout<<dec<<b<<endl;

return 0;
}



Bu mesaja 1 cevap geldi.