Herkese merhabalar arkadaşlar bu yazımızda sizlere C programlama dili ile dışarıdan girilen bir sayıyı roma(romen) rakamlarına çeviren bir program yapacağız.Programın kodları ve anlatımı aşağıda verilmiştir.
C programlama dili ile bir çok örnek yapılabilir.Biz sizlere en temelden anlatmak için böyle bir kaç basit tarzda program yapmaya devam edeceğiz.Diğer C programlama örneklerine buradan ulaşabilirsiniz.
Şimdi gelelim programımızın mantığını açıklamaya.Program aslında çok basit sadece if else ve for komutları kullanılmıştır.Programda dışarıdan bir sayı giriyorsunuz ve sonucunda sizlere bu sayıyı roma rakamına çeviriyor.Şimdi gelelim kodlara ve detaylı anlatıma.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 |
#include <stdio.h> //Kütüphanelerimizi ekledik. #include <conio.h> int main() //Programı tek bir ana fonksiyonda halledeceğiz. { int sayi,i; printf("Roma rakamlarina cevirmek istediginiz sayiyi girin: \n"); scanf("%d",&sayi); //Dışarıdan sayıyı giriyoruz. for(i=0;i<100;i++){ //Burada bilerek 100 değerine kadar devam etsin dedim.Siz daha fazla sayı da verebilirsiniz. if(sayi>999) //İşte mantık burada başlıyor.Öncelikle sayımızı kontrol ediyor eğer 999 dan büyükse ekrana M harfi yazıyor.Çünkü roma rakamlarında kural böyle. { sayi=sayi-1000; //Sonrasında sayıdan 1000 çıkartılıyor.Çünkü M harfini artık çıktımıza verdik o yüzden 1000 çıkartmamız gereklidir. printf("M"); } if(sayi<=999){ //Eğer sayı 999 dan küçükse for döngüsünü kapıyor bir sonraki döngüye geçiyor.İşte bu şekilde de en büyükden en küçüğe doğru tüm olasılıkları denemiş oluyoruz.Yani tamamen aslında if else yapıyoruz yaptığımız bir şey yok.Tek bilmemiz gereken roma rakamlarının yazılış kuralı.Onu da bilince programımızı gözü kapalı yazabiliyoruz. break;} } for(i=0;i<100;i++){ //İkinci bir döngüye geçtik.Teker teker tüm olasılıkları deneyeceğiz. if(sayi>899) { sayi=sayi-900; printf("CM"); } if(sayi<=899){ break;} } for(i=0;i<100;i++){ if(sayi>499) { sayi=sayi-500; printf("D"); } if(sayi<=499){ break;} } for(i=0;i<100;i++){ if(sayi>99) { sayi=sayi-100; printf("C"); } if(sayi<=99){ break;} } for(i=0;i<100;i++){ if(sayi>89) { sayi=sayi-90; printf("XC"); } if(sayi<=89){ break;} } for(i=0;i<100;i++){ if(sayi>49) //Sayımız bu sefer 49 dan büyükse ekrana L harfini yazdıracaktır.Bu şekilde roma rakamlarının tüm harflerini sırasıyla ekrana yazdırmamız gerekmektedir. { sayi=sayi-50; printf("L"); } if(sayi<=49){ break;} } for(i=0;i<100;i++){ if(sayi>39) { sayi=sayi-40; printf("XL"); } if(sayi<=39){ break;} } for(i=0;i<100;i++){ if(sayi>9) { sayi=sayi-10; printf("X"); } if(sayi<=9){ break;} } for(i=0;i<100;i++){ if(sayi>8) { sayi=sayi-9; //Sayının sonu 9 ile bitiyorsa yine özel bir durum mevcut ve ekrana IX yazılması gereklidir. printf("IX"); } if(sayi<=8){ break;} } for(i=0;i<100;i++){ if(sayi>4) { sayi=sayi-5; printf("V"); } if(sayi<=4){ break;} } for(i=0;i<100;i++){ if(sayi>3) { sayi=sayi-4; printf("IV"); } if(sayi<=3){ break;} } for(i=0;i<100;i++){ if(sayi>0) { sayi=sayi-1; printf("I"); //Son olarak sayımızda en son sıfır kalana kadar işlemlere devam ediyoruz.Yani eğer son rakam 3 olursa programımız ekrana 3 tane III şeklinde yazacak. } if(sayi<=1){ break;} } getch(); return 0; //Programımızı bitiriyoruz. } |
Örnek bir ekran görüntüsü;

Evet arkadaşlar gördüğünüz gibi biz dışarıdan “25” sayısını girdik ve sonuç olarak program bizlere “XXV” çıktısını verdi.Bu şekilde sizlerde istediğiniz sayıyı deneyip sonuç alabilirsiniz.
Anlamadığınız bir yer olursa yorum kısmından bizlere yazabilirsiniz.Herkese iyi çalışmalar iyi günler dileriz…
Bu Yazıya Tepkin Ne Oldu ?


