[C#] Prüfsumme

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von mW2fast4u, 8. Juni 2010 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 8. Juni 2010
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    Prüfsumme

    Hallo, ich hab hier ne schöne Aufgabe.

    Ein Benutzer soll einen Code in Form einer Integerzahl eingeben, die dann dann auf folgende Kriterien überprüft werden soll.

    mehr in der PDF

    No File | xup.in

    Es reicht mir, wie man an diese Aufgabe rangeht!

    danke
     
  2. 8. Juni 2010
    AW: Prüfsumme

    Naja du schreibst ne funktion z.b. "CheckInput" inder du die Zahl mithilfe von arithmetischen Operatoren auf die gewünschten eingeschaften prüfst. Das hilft evtl:
    C# Arithmetic Operators
    Wenn du an irgendeiner Stelle nicht weiter kommst kannst du ja deinen bisherigen Code posten und das Problem beschreiben.
     
  3. 8. Juni 2010
    AW: Prüfsumme

    ich hab jetz nen array gebildet aber die operatoren nicht benutzt

    mir fhelen aber noch ein paar bedingungen

    Code:
     int Vorgabezahl = 45454;
     int[] Array = new int[5];
     if (Vorgabezahl - 10000 >= 0)
     {
     if (Vorgabezahl % 3 != 0 && Vorgabezahl % 5 != 0 && Vorgabezahl % 7 != 0)
     {
     for (int i = 0; i < 5; i++)
    
     { Array[i] = Convert.ToInt32((Vorgabezahl % Math.Pow(10, i+1)) / Math.Pow(10, i));
     } Vorgabezahl = Vorgabezahl - Convert.ToInt32((Vorgabezahl % Math.Pow(10, i+1))); 
    funzt aber noch nicht so wirklich.. ich knobel mal weiter
     
  4. 8. Juni 2010
    AW: Prüfsumme

    Vorgehensweise: 54274

    zahl 5 stellig prüfen:

    if (zahl>9999) && (zahl<100000)



    nicht durch 3,5,7 teilbar:

    if (zahl mod 3 != 0 ) && (zahl mod 5 != 0) && (zahl mod 7 != 0)


    zahl mit 1 beinnt muss zahl mit 1 enden:

    die erste und letzte ziffer kannste dir einfach mit MODULO Packen

    letzte ziffer: zahl mod 10
    Denn: 54274 mod 10.. wäre der rest ja 4!

    erste ziffer:
    - bissel trickie da man verhindern musst das plötzlich gerundet wird

    1.) zahl mod 10000 wäre ja 4274... also bekommste die tausender (4stelligen)
    2.) zahl - zahl mod 10000 dann hasste ja 54274 - 4274 = 50000 (somit keine Nachkomma mehr)
    3.) (zahl - (zahl mod 10000)) / 10000 wäre ..... 50000 / 10000 =5 .. somit erste zahl


    also

    if ( ((zahl - (zahl mod 10000)) / 10000) == 1)
    if ... rets kannst dir wohl selber denken




    un dbeim letzten gehste genau so vor wie ich bei den ersten 3 dingern..

    pickst dir durch zahl - zahl mod.... usw. die einzelnen ziffern, addierst die
    ersten 4 ... teilst durch 7 und fragst halt ab ob das ergebnis dann der letzten entsprechne würde
     
  5. 8. Juni 2010
    AW: Prüfsumme

    So vielleicht?

    Code:
    bool checkInt(int x)
    {
     bool res = true;
     if (x.ToString().Length != 5)
     res = false;
     if (x % 3 == 0 || x % 5 == 0 || x % 7 == 0)
     res = false;
     if (x.ToString().StartsWith("1") && !x.ToString().EndsWith("1"))
     res = false;
     
     int sum = 0;
     for (int i = 0; i < 4; i++)
     sum += Convert.ToInt32(x.ToString()[i]);
    
     if (sum % Convert.ToInt32(x.ToString()[4]) != 7)
     res = false;
    
     return res;
    }
    Habe es nicht getestet, hab hier gerade keinen C# compiler, aber eigentlich sollte es so funzen.

    greez
     
  6. 8. Juni 2010
    AW: Prüfsumme

    Danke Leute..

    hab es jetzt durch ein wenig hilfe vom kollegen geschafft ist aber etwas anders aufgebaut

    wer sich dafür interessiert kann sich ja per PN melden
     
  7. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.