Kezdőoldal » Számítástechnika » Programozás » Pascalban római számból...

Pascalban római számból arabot? Van egy programom, de nem tökéletes. Láttok-e benne kizárható hibalehetőségeket? Forráskód alul

Figyelt kérdés

program p10;

var i,n,szam:integer;

s:string;

begin

readln(s);

i:=1;

while i<=length(s) do

case s[i] of

'M':begin

szam:=szam+1000;

inc(i);

end;

'D':begin

if (s[i+1]='M') or (s[i+1]='D') then

begin

szam:=0;

i:=length(s)+1;

end

else

begin

szam:=szam+500;

inc(i);

end;

end;

'C':begin

case s[i+1] of

'M':begin

szam:=szam+900;

i:=i+2;

end;

'D':begin

szam:=szam+400;

i:=i+2;

end;

else

begin

szam:=szam+100;

inc(i);

end;

end;

end;

'L':begin

if (s[i+1]='M') or (s[i+1]='D') or (s[i+1]='L') then

begin

szam:=0;

i:=length(s)+1;

end

else

begin

szam:=szam+50;

inc(i);

end;

end;

'X':begin

if (s[i+1]='M') or (s[i+1]='D') then

begin

szam:=0;

i:=length(s)+1;

end

else

begin

case s[i+1] of

'C':begin

szam:=szam+90;

i:=i+2;

end;

'L':begin

szam:=szam+40;

i:=i+2;

end;

else

begin

szam:=szam+10;

inc(i);

end;

end;

end;

end;

'V':begin

if (s[i+1]='M') or (s[i+1]='D') or (s[i+1]='C') or (s[i+1]='L') or (s[i+1]='V') then

begin

szam:=0;

i:=length(s)+1;

end

else

begin

szam:=szam+5;

inc(i);

end;

end;

'I':begin

if (s[i+1]='M') or (s[i+1]='D') or (s[i+1]='C') or (s[i+1]='L') then

begin

szam:=0;

i:=length(s)+1;

end

else

begin

case s[i+1] of

'X':begin

szam:=szam+9;

i:=i+2;

end;

'V':begin

szam:=szam+4;

i:=i+2;

end;

else

begin

szam:=szam+1;

inc(i);

end;

end;

end;

end;

else

begin

szam:=0;

i:=length(s)+1;

end;

end;

if (szam>0) and (szam<4000) then

writeln(szam)

else

writeln('HELYTELEN SZAM');

readln;

end.


2013. okt. 24. 11:54
 1/2 anonim ***** válasza:
Manapság inkább már használj C-t.
2013. okt. 24. 13:10
Hasznos számodra ez a válasz?
 2/2 coopper ***** válasza:

Szia.


Ami gond lehet szerintem :


A vizsgálatokban az I+1 index.


Ha az I éppen az utolsó karakternél jár (Tehát eléri a beadott string hosszát) akkor ezeknél a vizsgálatoknál valószinűleg hibával fog leállni a program, bár nem vagyok benne 100 %-osan biztos, de akkor sem szép dolog, a string vége után hivatkozni.


Sok sikert.

Üdv.

2013. okt. 24. 16:18
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!