Girilen Sayıyı Roma Rakamlarına Çevirelim

Bu dersimizde girilen bir sayıyı roma raklamlarına çeviren bir programcık yapalım.

Bu dersimizde girilen bir sayıyı roma raklamlarına çeviren bir programcık yapalım.

Açıklamalarına kodlar içinde mümkün mertebe yer vermeye çalıştım.


#include <stdio.h>

#include <conio.h>



int main()

{



int sayi;



printf("Lutfen roma rakamlarina cevirmek istediginiz sayiyi giriniz: n");

scanf("%d", sayi);



while(sayi!=0) /*Sayimizi roma rakamlari kuralina gore azaltmaya basliyacagiz ve 0 oldugunda donguden cikacak. */

{

while(sayi>999) /* sayi 9999dan buyukse roma rakami olarak ekrana M yazdirilir.*/

{

sayi=sayi-1000; /*Sayidan 1000 cikartilir*/

printf("M");

}



if(sayi>=900) /*Roma rakamları mantığına göre 900 90 9 40 ve 4 un yazım şekli ayridir.*/

{

sayi=sayi-900;

printf("CM"); /*C = 100 M= 1000 900 icin 9 tane c yada 1 tane d 4 tane c konmaz. 1000'den 100 cıkartılır. */

}



if(sayi>=500) /*Sayi 500 den buyuk ve esitse D kullaniriz*/

{

sayi=sayi-500;

printf("D");

}



while(sayi>99) /* Yine ozel kısım olan 99 incelenir. 99'dan buyuk oldugu surece ekrana C yazariz. C=100 oldugunu unutmayalim*/

{

sayi=sayi-100;

printf("C");

}



if(sayi>=90)/*900 yazim mantıgını biliyoruz. o halde 90 XC yani 100-10 seklinde yazariz.*/

{

sayi=sayi-90;

printf("XC");

}



if(sayi>=50)/*Sayimiz 50den buyukse L kullanalim*/

{

sayi=sayi-50;

printf("L");

}



if(sayi>=40)/*Yine ozel durum mantigi 40 = 50-10 XL*/

{

sayi=sayi-40;

printf("XL");

}



while(sayi>9)

{

sayi=sayi-10;/*Sayi 10dan buyuk oldugu surece ekrana X yazariz*/

printf("X");

}



if(sayi>=9)/*Yine 9 u IX seklinde yaziyoruz. 10-1*/

{

sayi=sayi-9;

printf("IX");

}



if(sayi>=5)/*Sayi 5 den buyuk oldugu surece V yazariz*/

{

sayi=sayi-5;

printf("V");

}



if(sayi>=4)/*4=5-1 seklinde IV yazılır*/

{

sayi=sayi-4;

printf("IV");

}



while(sayi>0);/* Ve son olarak elimizde 1-2-3 gibi bir deger kalir ve bunlar icin de I kullanırız.*/

{

sayi=sayi-1;

printf("I");

}

if(sayi==0) /*Bu kontrol ile de dongunun herhangi bir yerinde sayimiz 0'a ulastiginda donguden cikariz.*/

break;



}

printf("coded by tylnn");

getch();

}

  • Etiketler;
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

• 11 yıl önce
ellerine sağlik yeni öğrenen kişiler için çok güzel bir uygulama olmuş... teşekkürler.
• 11 yıl önce
teşekkür ederim
• 11 yıl önce
sonsuz döngüye giriyo malesef..
• 11 yıl önce
sonda geçersiz işlem yürüttü hatası veriyor:agla:
• 10 yıl önce
donguye girme nedeni satir no 10 scanf("%d",&sayi); virgulden sonra & isareti unutulmus. kullandiginiz compilera gore kodlarda bir cok degisiklik yapmak gerekebilir.. mesela dev c++ programinda sonucu gorebilmek icin getch(); satiri yerine system("pause"); return 0; kullanilmasi daha uygundur.. code block gibi diger uygulamalar icin her if dongusune return 0; satiri eklemeniz gerekebilir... saygilar..
• 10 yıl önce
Oncelikle kodu yazan arkadasin ellerine saglik.. 10. satir scanf("%d",&sayi); olarak degistirirseniz program calisacaktir.tabii devaminda 85 ve 86. satirlar silinebilir.. ayrica while (sayi!=0){}olarak baslayan programi do{}while(sayi==0); olarak degistirirseniz program gerektigi sekkilde calisacaktir saygilar...
• 10 yıl önce
Oncelikle kodu yazan arkadasin ellerine saglik.. 10. satir scanf("%d",&sayi); olarak degistirirseniz program calisacaktir.tabii devaminda 85 ve 86. satirlar silinebilir.. ayrica while (sayi!=0){program govdesi...}olarak baslayan programi 12.satir= do{ program govdesi.... 88.satir= }while(sayi==0); olarak degistirirseniz program gerektigi sekilde calisacaktir saygilar...
• 10 yıl önce
eh gecenin bi yarisi yorum yazmaya kalkarda yazdiklarim niye cikmadi bi daha yazim dersen bole kendini tekrar edersin kusura bakmayin ...

Yukarı Git