Nicole_X
-
Gesamte Inhalte
13 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Beiträge von Nicole_X
-
-
long ModuloBLZ, ModuloKtNr; ModuloBLZ = BLZNr % 97; // BLZNr Modulo 97 cout << ModuloKtNr << endl; CString test2 = BLZKtNr(ModuloBLZ, KtNr); // BLZNr + KtNr CString BLZKtNr(long ModuloBLZ, long KtNr) { CString m; m.Format("%i%i", ModuloBLZ, KtNr); cout << m << endl; return m; }
Jetzt wird die Zahl (341234567890) wieder zu lang um es so zu machen:int test3 = atof(test2); TRACE(test2 + "\r\n"); TRACE("%f\r\n", test3);
Wie kann ich jetzt weiterrechnen?
-
Ja das hab ich verstanden.
Aber ich meinte wie ich cout << BLZNr % 97 << endl jetzt weiterverwenden kann. Ich kann ja z.B. nicht
ModuloBLZ = cout << BLZNr % 97 << endl; cout << ModuloBLZ, KtNr << endl;
schreiben..
-
Wie kommst du auf 35?
Oh, okay danke! Hab da was verzockt..
Also könnte ich das so schreiben:
cout << BLZNr % 97 << endl;
Aber wie bekomm ich jetzt die 34 an die kontonummer angehängt um dann weiterzurechnen??
-
Nein, nicht zusammenzählen. Genauso unter Beachtung der Stellenanzahl hintereinanderpacken wie vorher.
Um mal bei deinem Beispiel zu bleiben:
700901001234567890131400 mod 97 = ?
70090100 mod 97 = 34
=> 700901001234567890131400 mod 97 = 341234567890131400 mod 97
341234567890131400 ist jetzt schon eine Zahl, die in einen 64-Bit-Integer passt.
Du kannst das aber auch noch weiter reduzieren:
341234567890 mod 97 = 19
=> 341234567890131400 mod 97 = 19131400 mod 97
19131400 passt locker in einen 32-Bit-Integer.
hey danke... so könnte ich die rechnung auf jedenfall umsetzen nur wenn da nicht ein problemchen wäre...
wie kommst du schon bei der ersten rechnung auf 34? ich komme da auf 35?:confused:
kannst du mir das bitte erklären vielleicht so schritt für schritt wäre ganz nett ?danke
-
Es ändert nichts am Ergebnis, wenn du die Einzelteile deiner Prüfzahl schon vorher modulo 97 nimmst. Damit schrumpft die BLZ auf maximal 2 Stellen. Du kannst dasselbe Verfahren dann nochmal auf die gekürzte BLZ + angehängte Kontonummer anwenden, damit sollte die Gesamtzahl klein genug sein, dass sie in einen 32-Bit-Integer passt.
Versteh ich nicht ganz..
Ich dividiere die BLZ durch 97, dann die Kontonummer dividiert durch 97, und dann die Länderkennung+00 durch 97?! Und die Ergebnisse dann zusammenzählen?! Da kommt dann aber nicht das richtige raus.. logisch..
Bin nicht so des Mathegenie :floet:
Oder kann man das irgendwie so machen wie man schriftlich dividiert?
Wie in der 3. Klasse
-
Hilfestellung bedeutet, dass du selbst auch einen Teil der Arbeit tust. Davon ist aber bisher nichts zu sehen.
Zeig, was du bisher geschrieben hast. Ein Grundgerüst für das Programm wirst du ja haben. Eine Zeichenkette vom Benutzer einzulesen, sollte auch kein Problem sein.
#include <stdafx.h> #include <iostream.h> #include <stdio.h> #include <string.h> #include <afx.h> CString plus(long BLZNr, long KtNr, char BZahl, char BZahlC); CString ZErgebnis; int main(int argc, char* argv[]) { long BLZNr, KtNr, nuller; CString LKennung; double i,i2; double BZahl,BZahlC; char b,c; LKennung = "DE"; BLZNr = 70090100; KtNr = 1234567890; nuller = 00; cout << LKennung << endl; cout << BLZNr << endl; cout << KtNr << endl; b = (char) LKennung.GetAt(0);//Nimmt den ersten Buchstaben der Länderkennung c = (char) LKennung.GetAt(1);//Nimmt den zweiten Buchstaben der Länderkennung char BuchstabeB = b; // ASCII char BuchstabeC = c; // ASCII i = BuchstabeB; i2 = BuchstabeC; BZahl = i -55; // ASCII-Code - 55 BZahlC = i2 -55; // ASCII-Code - 55 cout << BZahl << endl; cout << BZahlC << endl; CString test = plus(BLZNr, KtNr, BZahl, BZahlC); /* long double testl = atof(test); TRACE(test + "\r\n"); TRACE("%f\r\n", testl); */ return 0; } CString plus(long BLZNr, long KtNr, char BZahl, char BZahlC) { CString s; s.Format("%i%i%i%i00", BLZNr, KtNr, BZahl, BZahlC); cout << s << endl; return s; }
Bei dem Auskommentierten komm ich nicht mehr weiter..
Wie formatiere ich das ganze jetzt in eine Zahl um? Das Problem ist, das sie so lang ist..
Irgendwelche Vorschläge!?
-
Wenn bei dir gar nichts geht, wenn du nicht irgendwo abschreibst, ist das ziemlich traurig.
Du kannst nicht erwarten, dass hier jemand deine Hausaufgaben macht, wenn deine Eigeninitiative gerade mal dazu ausreicht, irgendwelchen Code abzuschreiben.
Ja find ich auch traurig, aber danke das dus mir nochmal vor Augen geführt hast!
Ich erwarte nicht das mir jemand meine Hausaufgaben macht sondern mir Hilfestellungen gibt..
Aber ich kann hier wohl keine Hilfe erwarten. Trotzdem Danke!
-
ja danke is mir bewusst dass es c# ist ^^
und selbstverständlich ist der text kopiert ohne geht ja gar nix!
:uli:
-
#include "IBAN.h" #include "stdafx.h" using class IBAN_validieren { private: string IBAN; public: IBAN_validieren(string sIBAN) { IBAN = sIBAN; } public: bool ISIBAN() { //Leerzeichen entfernen string mysIBAN = IBAN.Replace(" ", ""); //Eine IBAN hat maximal 34 Stellen if (mysIBAN.Length > 34 || mysIBAN.Length < 5) return false; else { string LaenderCode = mysIBAN.Substring(0, 2).ToUpper(); string Pruefsumme = mysIBAN.Substring(2, 2).ToUpper(); string BLZ_Konto = mysIBAN.Substring(4).ToUpper(); if (!IsNumeric(Pruefsumme)) return false; //Prüfsumme ist nicht numerisch if (!ISLaendercode(LaenderCode)) return false; //Ländercode ist ungültig //Pruefsumme validieren string Umstellung = BLZ_Konto + LaenderCode + "00"; string Modulus = IBANCleaner(Umstellung); if (98 - Modulo(Modulus, 97) != int.Parse(Pruefsumme)) return false; //Prüfsumme ist fehlerhaft } return true; } private bool ISLaendercode(string code) { // Der Code muss laut ISO 3166-1 ein 2-stelliger Ländercode aus Buchstaben sein. if (code.Length != 2) return false; else { code = code.ToUpper(); string[] Laendercodes = { "AA", "AB", "AC", "AD", "AE", "AF", "AG", "AH", "AI", "AJ", "AK", "AL", "AM", "AN", "AO", "AP", "AQ", "AR", "AS", "AT", "AU", "AV", "AW", "AX", "AY", "AZ", "BA", "BB", "BC", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BK", "BL", "BM", "BN", "BO", "BP", "BQ", "BR", "BS", "BT", "BU", "BV", "BW", "BX", "BY", "BZ", "CA", "CB", "CC", "CD", "CE", "CF", "CG", "CH", "CI", "CJ", "CK", "CL", "CM", "CN", "CO", "CP", "CQ", "CR", "CS", "CT", "CU", "CV", "CW", "CX", "CY", "CZ", "DA", "DB", "DC", "DD", "DE", "DF", "DG", "DH", "DI", "DJ", "DK", "DL", "DM", "DN", "DO", "DP", "DQ", "DR", "DS", "DT", "DU", "DV", "DW", "DX", "DY", "DZ", "EA", "EB", "EC", "ED", "EE", "EF", "EG", "EH", "EI", "EJ", "EK", "EL", "EM", "EN", "EO", "EP", "EQ", "ER", "ES", "ET", "EU", "EV", "EW", "EX", "EY", "EZ", "FA", "FB", "FC", "FD", "FE", "FF", "FG", "FH", "FI", "FJ", "FK", "FL", "FM", "FN", "FO", "FP", "FQ", "FR", "FS", "FT", "FU", "FV", "FW", "FX", "FY", "FZ", "GA", "GB", "GC", "GD", "GE", "GF", "GG", "GH", "GI", "GJ", "GK", "GL", "GM", "GN", "GO", "GP", "GQ", "GR", "GS", "GT", "GU", "GV", "GW", "GX", "GY", "GZ", "HA", "HB", "HC", "HD", "HE", "HF", "HG", "HH", "HI", "HJ", "HK", "HL", "HM", "HN", "HO", "HP", "HQ", "HR", "HS", "HT", "HU", "HV", "HW", "HX", "HY", "HZ", "IA", "IB", "IC", "ID", "IE", "IF", "IG", "IH", "II" }; if (Array.IndexOf(Laendercodes, code) == -1) return false; else return true; } } private: string IBANCleaner(string sIBAN) { for (int x = 65; x <= 90; x++) { int replacewith = x - 64 + 9; string replace = ((char)x).ToString(); sIBAN = sIBAN.Replace(replace, replacewith.ToString()); } return sIBAN; } private: int Modulo(string sModulus, int iTeiler) { int iStart,iEnde,iErgebniss,iRestTmp,iBuffer; string iRest = "",sErg = ""; iStart = 0; iEnde = 0; while (iEnde <= sModulus.Length - 1) { iBuffer = int.Parse(iRest + sModulus.Substring(iStart, iEnde - iStart + 1)); if (iBuffer >= iTeiler) { iErgebniss = iBuffer / iTeiler; iRestTmp = iBuffer - iErgebniss * iTeiler; iRest = iRestTmp.ToString(); sErg = sErg + iErgebniss.ToString(); iStart = iEnde + 1; iEnde = iStart; } else { if (sErg != "") sErg = sErg + "0"; iEnde = iEnde + 1; } } if (iStart <= sModulus.Length) iRest = iRest + sModulus.Substring(iStart); return int.Parse(iRest); } private bool IsNumeric(string value) { try { int.Parse(value); return (true); } catch { return (false); } } IBAN_validieren ib = new IBAN_validieren(textBox1.Text); if (!ib.ISIBAN()) { MessageBox.Show("IBAN falsch"); } }
ja also das is das was ich bis jetzt habe.... aber es sind 100 fehler da drinn :d und ich komm einfach nicht mehr klar aber so ähnlich sollte es ablaufen
-
Berechnet aus welchen Eingabedaten?
Was die Prüfung angeht:
International Bank Account Number ? Wikipedia
Die IBAN Nummer soll aus Länderkennung, BLZ und Kontonummer berechnet werden.
Ja genauso wie auf Wikipedia sollte es ablaufen.. und bei der Prüfung dann einfach wieder umgestellt und Modulo 97 gemacht werden und wenn dort ein Wert von 1 herauskommt ist die IBAN Nummer korrekt und ein anderer Wert als 1 ist sie falsch.
-
Hallo miteinander....
ich habe folgendes problem ich müsste ein programm in c ++ schreiben, das einfach eine iban nummer prüft und auch iban nummer berechnet.
also ich bräuchte nur die funktionen mehr nicht, wäre wirklich sehr nett, da ich kaum ahnung von c++ habe!!
Vielen Dank schonmal!!
-
Ich hoffe es kann mir jemand helfen, ich bin Auszubildende im 1. Lehrjahr deswegen kenne ich mich noch nicht so gut aus.
Ich will nicht jedesmal diese 2 Zeilen haben für die "Zieldatei" kann ich das irgendwie zusammenfassen das ich nurnoch angeben muss
wieviele Zieldateien es sind?
CStringArray aOldFiles;
char xWert[500];
char Nochwas[500];
char Test[500];
DWORD destSize;
destSize=500;
GetPrivateProfileString("UpdateFiles","Zieldatei1","NULL",xWert,destSize,"C:\\PROGRAMME\\UPDATE\\TEST\\TESTLOADER.INI");
aOldFiles.Add( xWert );
GetPrivateProfileString("UpdateFiles","Zieldatei2","NULL",xWert,destSize,"C:\\PROGRAMME\\UPDATE\\TEST\\TESTLOADER.INI");
aOldFiles.Add( xWert );
GetPrivateProfileString("UpdateFiles","Zieldatei3","NULL",xWert,destSize,"C:\\PROGRAMME\\UPDATE\\TEST\\TESTLOADER.INI");
aOldFiles.Add( xWert );
Suche Prüfungen / Lösungen: Der Altthread.
in Prüfungsaufgaben und -lösungen
Geschrieben
Ich suche Zwischenprüfungen FIAE der letzten Jahre wenn möglich mit Lösungen
Wenn jemand was hat bitte PN :hells: