Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 10. 01. 2010 19:04

Ashrak
Zelenáč
Příspěvky: 4
Škola: ČVUT FIT
Reputace:   
 

tzv. Římská kalkulačka

Ahoj potřebuju pomoct s ejdním prográmkem, jde o to že má sčítat Římská čísla. Napsal jsem si tedy dvě funkce, které převádějí číslo z Římských číslic do desítkové soustavy a obráceně (no problemo), problem však nastává když ona dvě čísla chci sečíst nebo odečíst....


Code:

procedure zpracuj(kalkulus : string); {kalkulus je string s celou operací která na jedno řádku, takže třeba I+I+I}
var pomocne : string;
    delka, k, vysledek, cislo : integer;
    znamenko, zacatek : boolean;
begin
     k := 1;
     vysledek := -MAXINT;
     delka := length(kalkulus);
     znamenko := false;
     zacatek := TRUE;
     pomocne := '';
     while k < delka+1 do
     begin
          while ((kalkulus[k] <> '-') and (kalkulus[k] <> '+') and (k < delka+1)) do
          begin
               pomocne := pomocne + kalkulus[k];
               Inc(k);
          end;
          cislo := ZRimskych(pomocne);
          if (zacatek and (pomocne <> '')) then          {pokud je znaménko na začátku operace, tak se má ignorovat či-li -V+V je X a ne O}
          begin
               vysledek := cislo;
               zacatek := false;
          end
          else if znamenko then vysledek := vysledek + cislo
          else vysledek := vysledek - cislo;
          if kalkulus[k] = '+' then znamenko := TRUE;
          pomocne := '';
          Inc(k);
          {writeln(vysledek);}
     end;
     DoRimskych(vysledek);
end;

U mě v pc to funguje super správně, ale CodeX mi hlásí 4krát Wrong Answer :(

Offline

  • (téma jako vyřešené označil(a) byk7)

#2 10. 01. 2010 22:23

Stýv
Vrchní cenzor
Příspěvky: 5692
Reputace:   215 
Web
 

Re: tzv. Římská kalkulačka

přijde mi, že jakmile jednou přečteš +, tak pak už pořád přičítáš

Offline

 

#3 10. 01. 2010 22:36

Ashrak
Zelenáč
Příspěvky: 4
Škola: ČVUT FIT
Reputace:   
 

Re: tzv. Římská kalkulačka

Hmm koukám na to a máš pravdu, ale i když jsem to upravil tak mi to moc nepomohlo, vyřešilo to jeden test.

Offline

 

#4 12. 01. 2010 00:22 — Editoval xxsawer (13. 01. 2010 19:01)

xxsawer
Příspěvky: 196
Reputace:   
 

Re: tzv. Římská kalkulačka

↑ Ashrak:
Vzdyt to mas cely nejaky vachrlaty...Co je tohle?

Code:

while ((kalkulus[k] <> '-') and (kalkulus[k] <> '+') and (k < delka+1)) do

Tenhle cyklus nikdy nenastane leda bys měl v tom řetězdi na jednom místě + a -

EDIT...moje chyba...

Offline

 

#5 13. 01. 2010 13:25 — Editoval Ashrak (13. 01. 2010 13:48)

Ashrak
Zelenáč
Příspěvky: 4
Škola: ČVUT FIT
Reputace:   
 

Re: tzv. Římská kalkulačka

Právě že nastává pokáždé  když je to zároveň rozdílné od + a - ... pokud vim.


Teď jsem to upravil aby se vypisovala nejaka hlaska pojkazde co do te funkce vstoupí a opravdu to tak běží...

Offline

 

#6 13. 01. 2010 19:01

xxsawer
Příspěvky: 196
Reputace:   
 

Re: tzv. Římská kalkulačka

↑ Ashrak:
Aaaa sem debil promiň, nějak sem si vsugeroval, že tam je =
Hoď sem celej program a já se ti na to podivám

Offline

 

#7 09. 10. 2015 09:54

petrik_ch
Příspěvky: 240
Škola: ZS Tribecska Topolcany
Pozice: priatel skoly, absolvent, rodic
Reputace:   
Web
 

Re: tzv. Římská kalkulačka

Inspirace rimske kalkulacky co vi vsechny matematicke operace aj s rimskymi cisli v kombinacii s dekadickymi aj desetinnymi, zavorkami, zaporne cisla, siny, kosiny:

http://www.hackmath.net/cz/kalkulacka/rimska-cisla

Samozrejme Rimske cisla maji omezeny rozsah - bezne do 5000, neznaji zapor, nemaji desetinnu tecku, tzv. vysledek se nemusi dat vzdy zobrazit ako  rimske.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson