chrisstar Geschrieben 4. November 2013 Teilen Geschrieben 4. November 2013 Hallo ITler, ich bin gerade dabei für meine Abschlussprüfung 2014 zu lernen und gehe gerade ein paar Aufgaben durch und benötige dringend eure Hilfe !!!! Kann mir jemand bitte zu dieser Aufgabe seinen Lösungsweg aufschreiben, ich wäre seeeehr dankbar. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ein Bob Geschrieben 11. November 2013 Teilen Geschrieben 11. November 2013 Na genauso wie's da steht, würd ich sagen boolean isvalid(string knum) { int sum = 0; int qsum = 0; for (int i=0; i < knum.length() - 1; i++) { // -1, da die letzte ziffer PZ ist int zahl = knum[i]; // das parsen kann man sich im pseudocode imho sparen if (i % 2 == 0) { qsum += quersumme(zahl*3); } else { sum += zahl } } int sumsum = sum+qsum; int pz = 10-(sumsum%10) // alternativ per rundeauf-methode return pz == knum[knum.length() - 1]; } Keine Garantie auf Korrektheit, nicht wahr? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
chrisstar Geschrieben 12. November 2013 Autor Teilen Geschrieben 12. November 2013 Hall ein Bob. vielen Dank für deine Lösung. Jetzt wollte ich das ganze mal ein wenig in abgeänderter Version umsetzen. Dafür nutze ich Visual Studio C#. Mein CODE. static void Main(string[] args) { String knum = "9342571866601997"; int sum = 0; int qsum = 0; Console.WriteLine("Bitte geben Sie Ihre Kreditkartennummer ein"); Console.WriteLine(knum); for (int i = 0; i < knum.Length - 1; i++) // -1, da die letzte ziffer PZ ist { int zahl = knum; // das parsen kann man sich im pseudocode imho sparen if (i % 2 == 0) { qsum += zahl * 3; // Schritt 1: Multiplikation aller Zahlen an GERADER Stelle mit 3 Console.WriteLine("Quersumme" + " " + qsum); } else { sum += zahl; // Schritt 3: Addition aller Ziffern an ungerader Stelle Console.WriteLine("Summe" + " " + sum); } } int sumsum = sum + qsum; // Schritt 4: Addition der Egebnisse aus den Schritten 2 und 3 int pz = 10 - (sumsum % 10); // alternativ per rundeauf-methode // Schritt 5 if (pz == knum[knum.Length - 1]) { Console.WriteLine("True"); } else { Console.WriteLine("False"); } Console.ReadLine(); } int quersumme(int zahl) { Doch irgendwie funktioniert das ganze noch nicht ( Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ein Bob Geschrieben 12. November 2013 Teilen Geschrieben 12. November 2013 Du hast die Methode "quersumme" rausgenommen. Ich bezweifel auch, dass c# das konvertieren eines chars zum int so macht wie du dir das vorstellst, vermutlich muss der char eben geparset werden. Generell ist "funktioniert nicht" allerdings keine gültige Fehlerbeschreibung. Und denk dran, dass du keinen lauffähigen cvode schreiben musst in der Klausur. Du sollst zeigen, dass du in der Lage bist, anhand einer Problemstellung ein programm zu entwickeln. nicht umsonst wird unter anderem ein Struktogramm angeboten. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.