Kamis, 17 September 2009

Konversi romawi to desimal

Sory pren brau isa ngisi blog ma share tugas tanggal 15 septemer 2009. Nih klo mau coba ndiri, tak tuntun pelan2… itung2 blajar….. sori klo aga ribet, coz bwatnya setelah otak umup sih, mana pake ndongkol pula…… oke langsung masuk ke pokok permasalahan:

Logikanya :

1. Seperti yang kita ketahui, Angka romawi memiliki arti : I = 1 , V = 5, X = 10, L = 50, C = 100, D = 500, M = 1000.

2. Romawi tidak mengenal 4 buah symbol yang di lakukan secara berurutan. Missal IIII itu seharusnya IV, XXXX seharusnya LX, dsb.

3. Lambing romawi seperti IV, MC, CD, dsb, memilikiv ciri khas yaitu Simbol pertama memiliki nilai Lebih Kecil dari pada symbol kedua.

4. Jika ditemukankondisi nomor 3 maka pembacaanya adalah lambang kedua dikurangi lambang pertama.

5. Jika ditemukan Lambang Seperti nomor 3 maka yang di perbandingkan maju 2 langkah, misal: CMII pertama2 kita bandingkan karakter pertama dan kedua dahulu yaitu C dan M. C memiliki nilai yang kurang dari M. next kita membandingkan I dengan I bukan M dengan I.

6. Berdasarkan logika 4 dan 5 diperoleh pembacaan bila CMII maka akan dibaca M – C + I + I.

7. Jika kondisi Lambang Kedua Lebih besar dari pada lambang pertama, maka pembacaan tinggal dijumlahkan saja misal: MVII maka M + V + I + I.

uda sementara itu dulu ja logikanya, coz klo di jabarin smua bias 3 hari ndak makan aq…..

berhubung ni tutorial pertama kit lang sung ja ke programnya, sambal jalan tak jelasin, biar mudah dolo, kita berasumsi maksimal jumlah karakter adalah 4 lambang

1. Pertama Buatlah Struktur penginputan Lamabng Romawi. untuk inputan dapat menggunakan berbagi macam gaya misal gaya Quartal Scanf (nama ini sebutan pribadi jadi bukan nama resmi), menggunakan array, menggunakan Swich case. Caranya emang banyak, dan memiliki keunggulan dan kelemahan. Itulah “THE ART OF PROGRAMMING”. Untuk program di bawah saya pake switch case aja.

2. Buatlah pengkonversian dari nilai Romawi ke nilai Desimal. Ini misal menggunakan IF, IF – THEN ELSE.

3. Lakukan pengecekan Inputan. Misal penginputan 4 lambang yang sama.

4. Buatlah pengkonversian berdasar logika 3 hingga 7

# include "stdio.h"

char nil[4];

int q, a, c, j;

int rom;

main()

{

int b[4];

clrscr();

printf ("Masukkan Nilai Romawi = "); scanf ("%s",&nil[q]);

for (q=0;q<=4;q++)

{

switch (nil[q])

{

case 'I' : b[q]=1; break;

case 'V' : b[q]=5; break;

case 'X' : b[q]=10; break;

case 'L' : b[q]=50; break;

case 'C' : b[q]=100; break;

case 'D' : b[q]=500; break;

case 'M' : b[q]=1000; break;

}

} /* Ampe sini kita cumin bahas penginputan sekaligus pengkonversian*/

if(b[0] == b [1] == b[2] == b [3])

{

printf("jangan... ntar julius caesar marah...");

getch();

exit();

}/* untuk pengecekan */

/*konversinya*/

j=1;

rom = 0;

for(q=0;q<=3;q++)

{

if ((b[q]==b[j])||(b[q]>b[j]))

rom = rom + b[q];

if (b[q]

{

rom = rom + (b[j]-b[q]);

j++;

q++;

}

j++;

}

printf("\n %d", rom);

getch();

}

Nah itu salah satu contoh penyelesaian masalah konversi, masi banya cara. Klo bisa carilah cara yang sesuai dengan gaya pemrogramanmu sendiri, mumpung masi dini, cari stylenya…..

Klo yang ada yang ga mudeng, di tanyain aja,kan lewat coment bisa, klo bisa gotong royong bwat nyempurnain nih program coz masi banyak asumsi yang kaga diterapin….