Addition von Dualzahlen
-
Hi,
"std::" verweist auf Bezeichner (Funktionen, Typen, Variablen,...) aus einem anderen Namensraum hin - damit hat man noch die Möglichkeit, einen string in einem anderen Namensraum zu bauen ... z.B. Monchichu::string :D). Und die Dinge, die im C++-Standard festgelegt wurden (und damit ganz offiziell zur Sprache gehören) , liegen meistens im Namensraum std.
Das braucht Dich aber eigentlich nicht zu belasten: Das Teil heißt einfach std::string."const" sagt: Auf diese Variable wird nicht schreibend zugegriffen. Damit kann Dir der Compiler helfen, Fehler zu vermeiden, indem er Dir im Fall des Falles zeigt: Achtung: Hier willst Du eine Variable verändern, die Du nicht verändern wolltest/darfst ! Sollte man ruhig verwenden: Kostet nix und hilft viel.
Gruß,
Simon2.
-
dann habe ich noch eine frage wie mache ich ein und?
also zum beispiel bei na while schleife bei oder sieht das ja so aus:while (i=1||j=1)
und wie is das bei und??
-
&& <-- logisches Und(AND)
-
also ich habe es jetzt noch einmal mit einer Funktion versucht und esimmer noch nich hin bekommen! damit ihr net denkt ich währe faul! und würde das von euch machen lassen!
//Name: Daniel Kersting //Klasse: IF1Aa //Datum: 28.03.2007 //Beschreibung: Addition von Dualzahlen #include<stdio.h> int i,j,ueber,erg; int add() { if (i=1 && j=1 && ueber=1) { erg=0; ueber=1; } if (i=1&&j=0&&ueber=1) { erg=0; ueber=1; } if (i=0&&j=1&&ueber=1) { erg=0; ueber=1; } if (i=1&&j=1&&ueber=0) { erg=0; ueber=1; } if (i=1&&j=0&&ueber=0) { erg=1; ueber=0; } if (i=0&&j=1&&ueber=0) { erg=1; ueber=0; } } int main() { char Ubertrag[7],Dual1[6],Dual2[6]; printf("Dieses Programm addiert 2 Dualzahlen."); printf("\n\nBitte geben sie die 1. Dualzahl ein: "); scanf("%s",&Dual1[i]); printf("\nBitte geben sie die 2. Dualzahl ein: "); scanf("%s",&Dual2[j]); printf("1.Dualzahl %s",Dual1); printf("\n2.Dualzahl + %s",Dual2); while (i!='/0'||j!='/0') { i++; j++; } Ubertrag[]=erg; while(erg!='/0') erg++; ueber=0; do { add(); i--; j--; erg--; } while(i||j=erg) erg++; printf("%s",Uebertrag); getchar(); getchar(); }
-
Monchichu schrieb:
also ich habe es jetzt noch einmal mit einer Funktion versucht und esimmer noch nich hin bekommen! damit ihr net denkt ich währe faul! und würde das von euch machen lassen!
//Name: Daniel Kersting //Klasse: IF1Aa //Datum: 28.03.2007 //Beschreibung: Addition von Dualzahlen #include<stdio.h> int i,j,ueber,erg; int add() { if (i=1 && j=1 && ueber=1) { erg=0; ueber=1; } if (i=1&&j=0&&ueber=1) { erg=0; ueber=1; } if (i=0&&j=1&&ueber=1) { erg=0; ueber=1; } if (i=1&&j=1&&ueber=0) { erg=0; ueber=1; } if (i=1&&j=0&&ueber=0) { erg=1; ueber=0; } if (i=0&&j=1&&ueber=0) { erg=1; ueber=0; } } int main() { char Ubertrag[7],Dual1[6],Dual2[6]; printf("Dieses Programm addiert 2 Dualzahlen."); printf("\n\nBitte geben sie die 1. Dualzahl ein: "); scanf("%s",&Dual1[i]); printf("\nBitte geben sie die 2. Dualzahl ein: "); scanf("%s",&Dual2[j]); printf("1.Dualzahl %s",Dual1); printf("\n2.Dualzahl + %s",Dual2); while (i!='/0'||j!='/0') { i++; j++; } Ubertrag[]=erg; while(erg!='/0') erg++; ueber=0; do { add(); i--; j--; erg--; } while(i||j=erg) erg++; printf("%s",Ubertrag); getchar(); getchar(); }
-
Ich habe nur paar zeilen angesehen:
ändere diese if(i=1...) mal um in if(i==1...) Das was du machst ist eine Zuweisung (also i wird 1) und ist ergo immer richtig. Verglichen wird mit ==.
-
aso ja abba funtzt trotzdem net und diese Komische Fehleranalyse oda was das sein soll was da immer steht checke ich net naja egal trotzdem danke für eure Hilfe!
MfG Monchichu
-
Jaja, step by step, ok? Mach mal den Fehler raus. Dann sehen wir uns das nächste an.
Da wäre z.B, dass man globale Variablen nicht sonderlich gerne sieht. Mach die besser lokal (lokal bedeutet, dass du sie da deklarieren sollst, wo du sie brauchst und übergib sie dann an die Funktion. Da du Funktionen kennst vermute ich, dass du das kannst)
Dann hast du imemr noch das Problem, dass dein i und dein j keinen Wert haben. Du schreibst also eigentlich "irgendwas+1". Was soll der PC damit anfangen? Also auch mal schön mit i=0; j=0; beides auf 0 setzen (kann sein, dass es auch ohne funktionnieren würde, falls dein Compiler das per default auf 0 setzt)
Dann schreibst du "Ubertrag=erg" aber erg hat auch keinen Wert bisher.
Ich weisz nicht, ob das Problem vielleicht da liegen könnte, aber die "Lesensart" von programmen könnte dir vielleicht Schwierigkeiten bereiten.
Also, im prozeduralen Programmieren (das was du gerade machst, später mag es etwas anders sein. Auszerdem jetzt etwas grob gesagt, also hängt mich nicht) fängt an in C++ mit dem Lesen bei "int main()" an. Danach liest man von oben nach unten und bei jedem Funktionsaufruf springt man zu der entsprechenden Funktion. Sobald diese zu Ende ist geht es in der Zeile nach dem Funktionsaufruf wieder weiter.
Alle "Zuweisungen" also z.B i=j; bedeuten, dass i den wert von j bekommt, aber nichtumgekehrt. Sozusagen: Links steht das, was sich verändert.
Vielleicht hilft es ein bisschen weiter, es gibt Leute die Probleme mit sowas haben, ich kann es ja im vorliegenden Fall nicht wissen.
-
Monchichu schrieb:
Ich Speicher doch nich das was nich klappt abba das hab ich habe kann ich euch ma geben!
#include<stdio.h> //c lib main() // naja nichts vom beiden { int ueber,i,j,erg; char Dual1[6],Dual2[6]; //c syntax printf("Dieses Programm addiert 2 Dualzahlen."); printf("\n\nBitte geben sie die 1. Dualzahl ein: "); scanf("%s",&Dual1[i]); printf("\nBitte geben sie die 2. Dualzahl ein: "); scanf("%s",&Dual2[j]); printf("1.Dualzahl %s",Dual1); printf("\n2.Dualzahl + %s",Dual2); while (i!='/0'||j!='/0') { i++; j++; } ueber=0; getchar(); getchar(); }
ist das überhaupt c++
?
-
Ja is es! zum mindest ist es über einen C/C++ Compiler gemacht! abba es hat sich erledigt ich habe mich grade noch mal sehr intensive damit befasst und habe eine Lösung gefunden!
Trotzdem Danke an alle!
MfG Monchichu
-
Hi,
die würde mich jetzt aber wirklich mal interessieren. Als Dank für unsere Mühen könntest Du die ja mal posten ....
Gruß,
Simon2.
-
Monchichu schrieb:
Ja is es! zum mindest ist es über einen C/C++ Compiler gemacht! abba es hat sich erledigt ich habe mich grade noch mal sehr intensive damit befasst und habe eine Lösung gefunden!
Trotzdem Danke an alle!
MfG Monchichu
demnach ist assembler auch ein teilbereich von c++
?