Pascal - auf 10ner runden



  • Guten Tag leute;

    ich möchte nicht lange um den heißen brei herum laufen .. also hier meine frage, die ich schon für eine andere sprache gestellt habe..

    nehmen wir an:
    int rest;
    int summe = 103;

    dann soll summe auf den nächsten 10ner gerundet werden also:

    110

    und der rest soll in

    rest = (differenz zwichen summe und der 110 .. )

    der code dafür ist in c++ :

    if ((Summe % 10) != 0)
    {
    Rest = 10 - (Summe % 10);
    Summe = ((Summe / 10) + 1) * 10;
    }

    aber ich frage mich wie es in pascal geht ..
    mfg 🙂



  • Genauso, ungetest:

    if (summe mod 10) <> 0 then
    begin
      rest := 10 - (summe mod 10);
      summe := ((summe / 10) + 1) *10;
    end;
    


  • bei mir kommt da der fehler:

    Recompiling because of C:\FPC\2.4.4\bin\i386-win32\Hello_World.pas
    Hello_World.pas(86,28) Error: Incompatible types: got "Extended" expected "SmallInt"
    Hello_World.pas(98) Fatal: There were 1 errors compiling module, stopping
    Hello_World.pas(0) Fatal: Compilation aborted

    die zeile in der der fehler ist ist diese :

    summe := ((summe / 10) + 1 ) *10;
    /\
    der fehler ist hier ||



  • Mit Codetags sieht man es auch:

    Zeus schrieb:

    die zeile in der der fehler ist ist diese :
    
    summe := ((summe / 10) + 1 ) *10;
                                 /\
    der fehler ist hier          ||
    

    Keine Ahnung ob Pascal da noch ein Leerzeichen zwischen * und 10 möchte.
    Wie hast du denn die Variablen definiert?

    Codetags: Text markieren und den Code Button unter 😞 :p anklicken.
    (Bei C nimmst du den C/C++ Button)



  • var summe, rest : Integer;
    


  • Sorry mein Pascal ist eingerostet nimm "div" (Integer division) anstelle von "/" (Real division).



  • nice it works 🙂


Anmelden zum Antworten