Fragen zur Machbarkeit in C/C++

Hallo und guten Tag zusammen,
mal wieder ein kleiner Nachtrag, weil mir fallen dann auch selbst irgendwelche Lösungen ein, aber nicht in C++ und es sind dann Notlösungen für mich. Also nun habe ich die Idee den String von dem im letzten Schreiben die Rede war, vorher schon in zwei kleinere String aufzuteilen. Den Ersten für die 10 Buchstaben und den Zweiten für die 6 Zahlen, mit denen gerechnet werden soll. Damit wäre das Problem ausgestanden und ich könnte meine nächsten Fragen stellen. Doch davon dan wieder zu einem späterem Zeitpunkt. Ich möchte erstmal sehen, was die Comunity zu vermelden hat.

Viele Grüsse

Duda
 
Hallo Duda!

sonst muß man sie handschriftlich aufs Papier bringen. Nun meine Frage hierzu, kann man nur auf die letzten 6 Positionen des Strings zugreifen und berechnen wie beschrieben.
Die Methode size() liefert dir die Länge des Strings. Mit [x] kannst du auf einzelne Zeichen zugreifen. Wenn du diese beiden Funktion mit etwas Mathe (=Länge - 6) kombinierst, kannst du die letzten 6 Zeichen eines Strings durchlaufen.
 
Hi ComFreek,

danke für Deine Antwort. Werde mich mal mit Deinem Vorschlag eingehend befassen. Was Du schreibst ist einfach zu lesen, wobei ich nicht ganz schlüssig bin mit dem size(), denn es ist immer ein Code aus 16 Zeichen welcher in diesem String eingegeben wird. Mit dem Durchlaufen weiß ich nichts genaues anzufangen. Wenn da nun 16 = -6 stehen würde, dann ergibt es 10. Soll das heißen, ab der 10 Position wird der String erst gelesen, also so verstehe ich es jedenfalls, wobei sicherlich das erste Zeichen nicht die 1 ist, sondern 0, was mich dann an 15 = -6 denken läßt, was dann ab Position 9 heißen würde.
Würde sich danach die von mir geschilderte Berechnung(laut Code von Cromon) durchführen lassen.
Im jetzigen Beispiel müßte ich wie folgt rechnen:
C++:
unsigned int suma = 10 Position + 12 Position + 14 Position;
unsigned int sumb = 11 Position + 13 Position + 15 Position;
// wobei ich nicht weiß, ob die rechte Seite vom Zuweisungzeichen so richtig geschrieben ist.

Mache mal Schluß, bevor ich vielleicht noch mehr unkorrekte Dinge schreibe.

Viele Grüsse

Duda

PS. Bin da irgendwo mit dem Mauszeiger drauf gekommen und weg war mein Text,
nun ist er irgendwie woanderst gelandet. Bitte an den Moderator, wenn unleserlich,
dann bitte löschen. Danke Duda
 
Zuletzt bearbeitet von einem Moderator:
Hallo,

also wenn ich alles richtig verstanden habe, dann interpretiere ich deine Idee und Code wie folgt. In Kurzform also:
C++:
std::string eingabe = "ABCDEFGHIJ123456";   // Eingabe String, hier vorgegeben
size_t length = eingabe.size()

unsigned int suma = int(eingabe[length-6]) + int(eingabe[length-4]) + int(eingabe[length-2]);
unsigned int sumb = int(eingabe[length-5]) + int(eingabe[length-3]) + int(eingabe[length-1]);
Wobei ich jetzt davon ausgegangen bin, dass du die Ziffern und nicht die ASCII-Zeichen addieren willst.

Erlaube mir aber die Frage, wie du C++ lernst. Hast du ein gutes Buch?

Grüße,
Jennesta
 
Hallo Jennesta,
sei auch Du gegrüßt. Ich bin hoch erfreut, daß sich nun noch eine erfahrenes Mitglied mit einschaltet. Ja Du hast mich richtig verstanden.Ich hatte schon angenommen, daß ich einen kleinen Rüffel von ComFreek kassiere, weil in meiner Darstellung vielleicht besser "Positon[10] + Position[12] + P... usw. zu lesen gewesen wäre. Naja, nun ist ja alles schon durch Dich überholt. Ich danke Dir für Deinen Beispiel-Code. Zu Deiner Frage, wie ich C++ lerne, da muß ich Dir sagen: "im Anfang, bevor ich meine ersten Fragen in Bezug auf Runde und Modulo hier im Forum gestellt habe, da fühlte ich mich irgendwie total überfordert mit lesen von Infos oder Bücher über C++. da dachte ich das lernst Du nie(im Selbstgespräch).
Doch nachdem ich ein paar gute Antworten und hilfreiche Erklärungen aus dem Forum erhalten habe, da merkte ich daß da doch was geht und C++ gut geignet ist um meine Hirngespinste in ein Programm zu verwandeln. Ich versuche zu lernen und erstmal nur die Punkte zu realisieren, welche im
zu erstellendem Programm benötigt werden. Was aber eigentlich nur mit Euerer Hilfe und mit anderen Infos aus dem I-Net zu machen ist, denn ich lerne ja auf diesem Weg nicht das Programmieren, sondern ich setze ja nur die von Euch vorgeschlagenen Code-Schnipsel zusammen. Okay, ich lerne eine Menge dabei und bin damit schon zufrieden. Zu Büchern kann ich auf die zum Anfang des Threads genannten verweisen, wobei ich mir nun noch
weitere Bücher wie "Jetzt lerne ich C++" von Jesse Liberty in der Übersetzung von Frank Langenau beschafft habe. Habe auch noch weitere Bücher im Visier, denn in den Anfängerbüchern sind doch die meisten Dinge, wonach ich hier bei Euch frage, nicht enthalten. Also um es kurz zu machen, wenn ich etwas von C++ erlerne, dann eigentlich mehr durch meine Fragerei und den Antworten der Moderatoren und denMitgliedern vom Tutorials(point)de, oder hätte ich in diesem Fall besser (dot) geschrieben. :) :) :) Naja, ich habe einige Probleme mit der englischen Sprache und ich mache auch gerne Scherze, auch über mich selbst. Da ich ein überalterter Anfänger bin, deswegen auch alte Anfängerbücher, denn ein Kompendium, davon würde ich mich erschlagen fühlen. Was ich noch rüberbringen möchte, eine bessere Hilfstellung als durch Euch wird es wohl auch in Büchern nicht geben. Ich denke ich werde bestimmt kein Programmierer, denn nachdem ich meine Nase mal in C++ reingesteckt habe, da weiss ich erstmal, was einen erwartet, wenn man ein guter Programmierer werden möchte. Mir genügt es schon, wenn ich dank Euerer Hilfe mein in Angriff genommenes Hobby-Projekt auf die Reihe bekomme. Denn ich muß schon zugeben, daß mein Langzeitgedächtnis noch gut funktioniert, daß was schon mehrere Jahre im Memory ist und ab und zu gebraucht wird, das ist i.O., auch der Arbeitsspeicher scheint i.O., aber der Buffer, welcher den Inhalt des Arbeitsspeichers, übernehmen und nach Abschaltung des Arbeitsspeichers im Memory abspeichern soll, ja dieser Buffer ist nicht mehr der Beste. Aber so ist es ebend wenn man älter wird. Also wenn ich nicht laufend dran bleibe, dann vergesse ich die Hälfte wieder. Deswegen muß ich mir fleissig Notizen machen. Worauf ich noch zu sprechen kommen möchte ist Folgendes: "Ichmöchte auch nicht auf die laue Art ein Programm-Code von irgend jemand aus dem Forum", denn für solche Anliegen gibt es die Job-Börse. Nein ich möchte wirklich nach und nach ein Programm auf die Beine bringen, worin das meiste Euerer Beispiel-Codes enthalten sein wird. Also die Code-Schnipsel aus Eueren Antworten werden den Hauptteil des Programmes ausmachen. Im Vorspann werden dann alle Helfer mit auf gezählt, denn ich habe nicht vor mich mit fremden Federn zu schmücken. So das mußte ich auch noch los werden. Ich freue mich an weitere rege Beteiligung beim Beantworten "Fragen Zur Machbarkeit in C++". (Bitte an den Moderator: Kannst Du das "en" hinter Machbarkeit abschneiden? Danke im Voraus.)

Viele Grüsse

Duda
 
(Bitte an den Moderator: Kannst Du das "en" hinter Machbarkeit abschneiden? Danke im Voraus.)
Erledigt!

Ich bin mir nicht sicher, ob C++ die richtige Sprache für dich ist. Es ist einfach so, dass du dir mit C++ leicht ins Bein schießen kannst, aber bis jetzt hast du ja noch nicht mit Referenzen und Zeigern gearbeitet ;)

Das mit der Jobbörse hast du gut erkannt, es gab schon einige Leute, die wollten nur 100% Code von anderen Leuten geschrieben haben, ohne Eigeninitiative zu zeigen. Sowas gehört natürlich ins Job-Forum - egal ob entgeldlich oder unentgeldlich.
 
Hallo ComFreek,
danke fürs "Erledigt". Dies Überschrift bleibt sicher noch eine Weile bestehen und ich habe überlegt, soll das "r" bei zur weg oder das"en". Weil ich kann es nicht mehr sehen(ich werde nicht blind oder so, sondern ich ärgere mich über mich selbst). Natürlich mache ich auch sonst eine Menge Flüchtigkeits- und Tastaturfehler, den häufig liege ich eine Taste daneben. Dann bin ich auch noch so ein Typ, der jeden Fehler von anderen sofort erkennt, nur meine Eigenen finde ich nicht. Ich entschuldige mich bei allen Lesern dafür, aber ich verspreche nicht, mich zu bessern, ist sinnlos, habe es schoin oft versucht, aber ich verfalle immer wieder in den Fehler-Trott, wenn es mehr als eine Zeile ist.
Wobei ich mir bei dem Programm natürlich sowas nicht erlauben darf. Vielleicht bremst mich C++ durch die englische Sprache etwas beim Schreibtempo, weil ich öfter schaun muß wie es geschrieben wird.
Werde wohl Korrektur lesen lassen müssen. Der Lektor tut mir schon leid.
Ach ja, mit dem ins Bein schiessen, daß habe ich auch nicht so gerne, weil sowas tut weh und als Ente(siehe Avatar) kann man nur noch im Kreis schwimmen. An Land kommt man auch nicht mehr so richtig in Gang und es fehlt an Tempo bei Anlauf zum Fliegen und beim Landen tut es auch weh, wenn man zur Seite kippt. Ich werde wohl aus diesem Grund so lange es geht die Referenzen und Zeiger meiden. Ansonsten kann es ruhig kompliziert sein(ich habe ja Euch Mods und die Mitgliedschaft, denen ich bei Community auch schon ein "m" vorenthalten habe. Sorry dafür.

So nun mache ich mal wieder Schluß und überlege wie ich weitere Fragen auf die Reihe kriege. Es geht dabei um Zahlen mit der Basis 2, wobei dann dann einstellige Hexzahlen aus den Zahlen 1, 2, 4 und 8 oder aus Kombinationen dieser Zahlen gebildet werden. Zum Beispiel 2 + 8 sind A,
1 + 2+ 4 = 7 uns so weiter, aber wie man erkennt, kann es nicht zu eine Zahl > 15 kommen. Außerdem ist die Variable wo die Summe reinkommt mit 0 vorbelegt, was heißt, wenn keine der Zahlen 1, 2, 4 und 8 zur Berechnung kommt, dann bleibt die 0 als Summe. Im programmablauf wählt der Anwender dann aus den vier Zahlen aus, welche berechnet werden. So werden mehrere mehrstelligen Hex-Strings gebildet, welche dann so ähnlich weiterberechnet werden, wie es Cromon dargestellt hat.
Nun wißt Ihr, wie die Hex-Strings entstehen, wenn ich sie nicht als Hexcode parat habe, sondern selber generieren muß.
Doch nun wirklich Schluß bis zum nächsten Mal, denn es wird sonst zu unübersichtlich.

Viele Grüsse

Duda
 
Hallo,

ich fragte nur desshalb wie du lernst, weil sich eben einige Fragen auf Basics beziehen (wie das Zugreifen auf String-/Array-Elemente), die meistens in den ersten Kapiteln eines guten Buches abgehandelt werden.
Bitte verstehe mich nicht falsch, ich möchte deine Motivation hier im Forum absolut nicht dämpfen, bitte schreibe weiter. Nur wenn ich das mit mir vergleiche, dann habe ich das Gefühl, dass du durch ggf. mehrfaches lesen dieser Kapitel schneller eine Antwort bekommst, als wenn du vielleicht einen halben Tag hier auf Antwort warten musst. :)

Und das ist geht vielleicht auch in die Richtung, die ComFreek angesprochen hat, denn die komplizierteren Konstrukte von C++ sind noch nicht aufgetaucht. Entschuldige, dass ich so direkt bin, nur ich wollte das generell einmal geklärt haben.
Aber egal, solange du motiviert bist, und das sieht man auch an deinen Texten, dann mach weiter so, denn hier sind ja alle gewillt auf vernünftige Fragen zu antworten. ;)

Beste Grüße,
Jennesta
 
Hallo Jennesta,
schön von Dir zu hören/lesen. Ja ich gebe Dir recht, das mit dem Lesen und dem Anlegen von Arrays, das verstehe ich schon, was da Computer-/Speichertechnisch passiert, denn es ist oft mit simplen Beispielen beschrieben. Es ist nicht so, daß ich gar keine Ahnung von Dingen habe, welche von einigen Autoren mit eine Komode mit vielen Schubladen oder wenn einer dieser Autoren etwas mit Hasen zu tun hat, dann wurde dieser Schrank mit den Schubladen auch als großer Kaninchenstall betitelt, welche in mehrere Einzelboxen aufgeteilt ist. Naja, ich weiß nicht so genau, bedeutet soviel wie arrangierte Ordnung bzw.
festgelegte Anordnung. Aber es ist auch egal, denn gemeint sind festgelegte Speicherplätze und der
Vergleich mit einem Regal mit vielen Fächern hat mir am Besten gefallen. Ja auch daß man vorher wissen muß wieviel von den Fächern gebraucht werden um dort seine Daten abzulegen,
damit diese Ablageflächen nummeriert werden können und an Hand der jeweiligen Ablageflächen-Nummer wird diese Fläche schnell gefunden und man hat die, dieser Fläche zugeordneten Daten. Das alles gibt es im ganzen Leben, ich meine überall sind wir mehr oder weniger von dieser Art Ordnungs-Aufstellung umgeben.
Ich bin da schon hintergestiegen, nur die Programmiersprache von C++ ist mir nicht so geläufig. Deswegen frage ich lieber bevor ich mich selbst aufs Glatteis begebe. Es ist überhaupt nicht schlimm, wenn Du die Dinge beim Namen nennst und mich befragst. Es ist auch nicht so, daß ich einen halben Tag rumwarte, bis ich eine Antwort bekomme. Ich muß zugeben, daß ich öfter mal zwischendurch nachschaue, ob jemand geantwortet hat, aber wenn ich keine Antwort erhalte habe, dann ist es auch nicht weiter schlimm und immernoch besser als sich ins Bein zu schiessen. :) Um so mehr freue ich mich, wenn jemand meine Fragen zur Kenntnis nimmt und zu einer Antwort bereit ist.
Ob meine Fragen vernünftig sind, daß weiß ich auch nicht, aber für mich mich haben sie einen Sinn, den vielleicht nicht jeder umgehend versteht. Im Gegensatz zu vielen Anderen muß ich nicht mehr sagen, Zeit ist Geld oder so, ich bin ein fauler Rentner, mir ist schon bewußt, daß die Leser welche mir antworten, sich dafür die Zeit nehmen, wofür ich mich bedanken möchte, so wie auch bei Dir, denn auch Du hast Dir Zeit genommen. Ich habe dies mitten in der Nacht geschrieben,
deshalb wünsche ich Dir einen guten und erhohlsamen Schlaf.

Viele Grüsse

Duda
 
Zuletzt bearbeitet:
So nun mache ich mal wieder Schluß und überlege wie ich weitere Fragen auf die Reihe kriege. Es geht dabei um Zahlen mit der Basis 2, wobei dann dann einstellige Hexzahlen aus den Zahlen 1, 2, 4 und 8 oder aus Kombinationen dieser Zahlen gebildet werden. Zum Beispiel 2 + 8 sind A,
1 + 2+ 4 = 7 uns so weiter, aber wie man erkennt, kann es nicht zu eine Zahl > 15 kommen.
Wenn du den letzten Satz etwas umstellst, dann erhälst du folgenden Satz:
Aber wie erkennt man, ob es nicht zu einer Zahl > 15 kam.
Ich markiere mal die wichtigen Wörter::
Aber wie erkennt man, ob es nicht zu einer Zahl > 15 kam.
Das ob entspricht dem IF in C++ (und vielen anderen Programmiersprachen).
Die Zahl entspricht einer Variable.
Das Größerzeichen > existiert auch in C++.
Und die Zahl 15 auch.

Jetzt überleg dir den äquivalenten C++-Code zu deinem Satz mit meiner Hilfestellung.
Wenn du es herausgefunden hast oder auch nicht, dann kannst es mittels eines Klicks auf Spoiler unter diesem Satz meine Lösung aufdecken ;)
C++:
if (deineVariableMitDerSumme > 15) {
  // Es ist > 15
}
else {
  // Es ist <= (kleiner oder gleich) 15
}
 
Zurück