Fajne by było, żebyś chociaż ten kod sam napisał...
http://peb.pl/programowanie/107542-pascal-konwerter-liczb-dziesietnych-na-rzymskie.html
A żebyś wiedział, że nudziłem się...
```delphi
Program ewerw1pi; // Program Ewerw1pi
{$APPTYPE CONSOLE} // Konsola
// Pusta linia
Var N : LongInt; // Zmienna N typu LongInt
T, S, De, J : Integer; // Zmienne T, S, De, J typu LongInt
I, V, X, L, C, D, M: String; // Zmienne I, V, X, L, C, D, M typu String
Begin // Zaczynamy program
// Pusta linia
Write ('Podaj liczbe z zakresu (0;4000) = ');// Wyświetlenie napisu
// Pusta linia
Read(N); // Czekamy na wprowadzenie danych (liczby)
// Pusta linia
if (N < 4000) Then // IF: Jeżeli N (wprowadzona przed chwilą liczba) jest mniejsza, niż 4 000, to idziemy dalej.
if (N > 0) Then // IF: Jeżeli N (wprowadzona przed chwilą liczba) jest większa od 1, to idziemy dalej.
Begin // Instrukcja blokowa (tak to się chyba nazywało ?)
T := N Div 1000; // Do zmiennej T przypisujemy wartość N podzieloną przez 1000
S := (N - (T*1000)) Div 100; // Działanie algebraiczne (???)
De := (N - (T*1000)-(S*100)) Div 10; // Działanie algebraiczne (???)
J := (N - (T*1000)-(S*100)-(De*10)) Div 1; // Działanie algebraiczne (???)
I := 'I'; // Trochę bezsensownego kodu
V := 'V'; // Trochę bezsensownego kodu
X := 'X'; // Trochę bezsensownego kodu
L := 'L'; // Trochę bezsensownego kodu
C := 'C'; // Trochę bezsensownego kodu
D := 'D'; // Trochę bezsensownego kodu
M := 'M'; // Trochę bezsensownego kodu
For N := 1 To T Do // Pętla od 1 do T
Write(M); // Wypisywanie w pętli wartości M
// Pusta linia
if (S=9) Then // Jeżeli S jest równe 9, to wypisz 'C' oraz 'M'
Write(C, M) Else // A jeżeli nie jest równe 9, to
if (S >= 5) Then // Jeżeli S większe, bądź równe 5, to
Begin // (instrukcja blokowa)
Write(D); // Wypisz 'D'
For N := 1 To S-5 do // Pętla od 1 do 'S-5'
Write(C); // W tej pętli wypisz 'C'
End // (koniec instrukcji blokowej)
Else // A jeżeli S nie jest większe, bądź równe 5...
if (S = 4) Then // Ale jezeli jest równe 4, to...
Write(C, D) // Wypisz 'C' oraz 'D'
Else // Ale jeżeli tego warunku też nie spełnia, to...
For N := 1 To S Do // ...pętla od 1 do 'S'
Write(C); // Wypisz w pętli wartość 'C'
// Pusta linia
if (De = 9) Then // Jeżeli 'De' jest równe 9, to
Write(X, C) // Wypisz 'X' oraz 'C'
Else // A jeżeli 'De' nie jest równe 9...
if (De >= 5) Then // Ale jest równe, bądź większe, niż 5, to
Begin // (instrukcja blokowa)
Write(L); // Wypisz 'L'
For N := 1 To De-5 Do // Pętla od 1 do 'De-5'
Write(X); // Wypisz 'X'
End Else // (koniec instrukcji blokowej)
if (De = 4) Then // Jeżeli D nie jest równe, bądź większe, niż 5, lecz jest równe 4, to
Write(X, L) // Wypisz 'X' oraz 'L'
Else // A jeżeli 'D' nie jest równe, bądź większe, niż 5 oraz nie jest równe 4, to
For N := 1 To De Do // Pętla od 1 do 'De'
Write(X); // Wypisz 'X'
// Pusta linia
if (J = 9) Then // Jeżeli 'J' jest równe 9, to
Write(I, X) // Wypisz 'I' oraz 'X'
Else // A jeżeli nie jest równe 9,
if (J >= 5) And (J <= 8) Then // Lecz jest równe, bądź większa, niż 5, oraz jest równe bądź mniejsze, niż 8, to
Begin // (instrukcja blokowa)
Write(V); // Wypisz 'V'
For N := 1 To J-5 Do // Pętla od 1 do 'J-5'
Write(I); // Wypisz 'I'
End Else // (koniec instrukcji blokowej) ; jeżeli J nie jest równe 9, oraz nie jest równe, bądź większe, niż 5 oraz nie jest równe bądź mniejsze, niż 8,
if (J = 4) Then // A jest równe 4, to
Write(I, V) // Wypisz 'I' oraz 'V'
Else // Jeżeli J nie jest równe 9, oraz nie jest równe, bądź większe, niż 5 oraz nie jest równe bądź mniejsze, niż 8, oraz nie jest równe 4, to
For N := 1 To J Do // Pętla od 1 do 'J'
Write(I); // Wypisz 'I'
End Else // (koniec instrukcji blokowej) ; jeżeli podano liczbę większą od 4000, lub mniejszą, niż 0, to
WriteLn('Bledne dane'); // Wyświetl napis
// Pusta linia
ReadLn(N); // Odczytaj 'N'
End. // Koniec programu
(* /-------------------------------------------------------\ *)
(* | Skomentował Patryk27 (wspomnij coś o mnie profesorkowi)| *)
(* | | *)
(* | Copyright © 2011 By Patryk27 | *)
(* | All rights reserved / Wszystkie prawa zastrzeżone | *)
(* \-------------------------------------------------------/ *)
```