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!

ellerine sağlik yeni öğrenen kişiler için çok güzel bir uygulama olmuş... teşekkürler.
teşekkür ederim
sonsuz döngüye giriyo malesef..
sonda geçersiz işlem yürüttü hatası veriyor:agla:
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..
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...
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...
eh gecenin bi yarisi yorum yazmaya kalkarda yazdiklarim niye cikmadi bi daha yazim dersen bole kendini tekrar edersin kusura bakmayin ...

Yukarı Git