![]() |
[C++] Anfänger sucht Hilfe
Hi,
ich hab erst vor ein paar Monaten C++ gelernt (jetzt schon fast ein Jahr) und wollt heute die Praxis ausprobieren. Mein Programm soll jetzt Primzahlen ermitteln. Meine Theorie: Eine Zahl ist eine Primzahl, wenn es einen Rest gibt wenn man es mit allen vorigen Primzahlen teilt. Das Problem ist, dass zu viele Arrays erstellt werden als nötig.(Hab die betroffene Stelle fett makiert) Frage: Man man das Problem elegant(er) lösen? |
Mich wundert, dass es überhaupt kompiliert...
int Zaehlen aber kein return |
Das Programm wird vermutlich richtig ausgeführt.
Jedoch so schnell das du nichts davon siehts. Füg einfach mal am Ende des Programms cin.get(); ein. Der Befehl lässt das Programm warten, bis du eine Taste gedrückt hast. Ansonsten hat Thelvan recht. Du musst die Funktion Zaehlen nicht als int deklarieren wenn du keinen Wert zurückgeben willst. Es wäre also sinnvoller als Funktionstyp void zu wählen. (Also void Zaehlen ()) |
Ich hab da noch eine Frage:
der Befehl return gibt den Rückgabewert an den Aufrufer zurückgesendet. Aber was bedeutet das genau? :) Und kann man irgendwie Umlaute benutzen? Also statt int Zeahlen -> int Zählen |
Wenn er was zurückgeben soll musst du das in einer Variable speichern, also z.B. so:
int result = Zaehlen(); Macht hier aber nicht viel Sinn |
Zitat:
|
Code:
#include <iostream> |
Was soll das Programm den können, ist der Einbau der Unterfunktion beabsichtigt...?
Gr eonar |
@firstguess
Wenn ich das Progamm nur mit Zaehlen_2 ausführe, erscheint einfach nur eine 15... Kannst du mir bitte ein anderes (evtl. besseres :)) Beispiel für einen Rückgabewert und return geben? :) |
Code:
#include <iostream> |
#include <cstdlib>
#include <iostream> using namespace std; int Zaehlen(int i, int value); //-- Anmeldung der Unterfunktion int main(int argc, char *argv[]) { int Zahl; cout << "Bitte eine Zahl eingeben :"; cin>>Zahl; while(Zahl < 100) { Zahl = Zaehlen(Zahl,1); cout << Zahl << endl; } system("PAUSE"); return EXIT_SUCCESS; } int Zaehlen(int i, int value) { i = i + value; return i; } |
@ NoKey hoffe hilft weiter :)
|
Zitat:
Das Problem ist dass umlaute nich in allen Ländern verwendet werden und Programmierer in US Klassen wie Übergabe oä. nicht verwenden können. |
@^ :D Guck mal genau auf eine QWERTY Tastatur .. Es gibt keine Umlaute wie "Ä" "Ü" "Ö" .
|
Umlaute sind möglich dazu nutzt du in deiner cout ausgabe ein \x84 was soweit ich weiß ein kleines ä ist.
Die 84 kannst du durch jede Beliebige zahl aus dem Asci zeichensatz ersetzen. Z.B. cout << "Das ist ein Umlaut \x84 \n"; wobei \n für einen Zeilenumbruch steht. |
Zitat:
|
Zitat:
wenn du dir so sicher bist warum Probierst du es nicht mal aus |
Zitat:
Umlaute in Symbolnamen sind verboten! |
hier gibt es ein kleines Tutorial für Java einsteiger,
Java ähnelt sehr c++ [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...] kannst es dir ja mal anschauen. VG |
C++ ist aber auch in sehr vielen Sachen sehr viel anders ... Wer C++ lernen will, soll C++ lernen, wer Java lernen will, soll Java lernen. Wenn man so versucht eine Sprache zu lernen, lernt man sich sehr viele schlechte Sachen, die die Sprache eigentlich schöner lösen könnte.
|
Dann würde ich mir schon eher C# Videos anschauen ;)
Trotzdem, C++ bleibt C++ ! :) |
Zitat:
kennt und das einzige was dir einfällt ist dass du jemanden kündigen würdest der eine Konvention verwendet die in manchen Firmen durchaus gebräuchlich ist. Daran merkt man dass du keinerlei erfahrung in der Programmierung hast. Was soll eigentlich "wenn es ERLAUBT ist ist es VERBOTEN" heißen? Regeln für Namensvergabe in C, C++, Python, Java ... (bei nichtbeachtung kommt ein Fehler beim Linken) - muss mit einem Buchstaben oder Unterstrich beginnen - darf keine Sonderzeichen wie enthalten Namenskonventionen für Programmiersprachen sind (einfach nur Dinge an die man sich halten SOLLTE) - Variablennamen beginnen mit Kleinbuchstaben - Klassennamen beginnen Mit Substantiven und großbuchstaben - Methodennamen beginnen mit Verben und kleinbuchstaben - Konstanten weden ausschließlich mit Großbuchstaben geschrieben - keine Umlaute verwenden ... Code:
#include <iostream> Code:
using System; Code:
>>> MäünStröng = "Hello World!" Ich könnte mit 100 Programmiersprachen so weiter machen aber irgendwann will ich heute auch nochmal ins Bett. Sollte aber sowieso jedem Zeigen dass es möglich ist Umlaute zu verwenden. Bevor man behauptet irgendwas is verboten oder irgendwas geht nich sollte man sich n bisschen damit beschäftigen oder auch mal Ausprobieren besonders da ausprobieren einen großteil der Programmierarbeit ausmacht. Wenn ettwas in einem Programm einbaut was verboten ist (In Fachkreisen dem Standard bzw. der Norm wiederspricht) meldet der Linker nen Fehler und man weiß dass es nicht möglich ist. |
@Erik/Schreier:
1. Der Thread ist schon einige Wochen alt! 2. An dem was du schreibst merkt man eher, dass du absolut keine Erfahrung in der Entwicklung hast! 3. Verstanden hast du auch nichts! Dass das Linken/Kompilieren etc. funktioniert stellt hier auch niemand in Frage! Schon mal an den Fall gedacht, dass dein Code auch mal von anderen verarbeitet wird? Anscheinend nicht! Das mag daran liegen, dass du noch nie in größeren Projekten gearbeitet hast in denen der Code in verschiedenen Ländern von Menschen mit unterschiedlichen Muttersprachen erstellt, bearbeitet und reviewt wird. Klar, wenn man (wie du vielleicht) Code entwickelt, den niemals ein anderer Mensch sehen wird/will, dann darst du auch Umlaute verwenden. Da die Code-Wiederverwendbarkeit aber in der Entwicklung eine sehr hohe Priorität hat, ist es eben nicht nur sinnvoll sondern eben Pflicht, eine Sprache zu verwenden, die von vielen verstanden wird (und das ist eben Englisch). Selbst wenn das Produkt nur in Deutschland entwickelt wird, so wird es mit der Zeit wachsen und irgendwann mal von einer nicht-deutsch-sprechenden Person verarbeitet wird. Nicht vergessen darf man Paper, Foren etc. in denen Code-Teile besprochen werden. Da Symbolnamen dann auch noch in Bindings vorkommen können. Was ist wenn die Arbeit mit dem Code nur dadurch erschwert wird, weil jemand im Ausland keine Umlaute auf der Tastatur hat? Daher ist der Hinweis, dass selbst "wenn es erlaubt ist, ist es verboten" absolut richtig! Jemanden der das eben nicht versteht und sich nicht daran hält, weil er der Meinung ist er würde es besser verstehen, würde ich dann auch kündigen! Alles was du schreibst hört sich doch eher so an, als hättest du eben absolut Null Erfahrung in der Softwareentwicklung! Du gehst wohl von deinen "Projekten" aus und vergleichst (sorry für den Ausdruck, aber so ist es eben) deine Furz-Projekte mit echten Projekten, die auf Jahrzehnte geplant sind. Das ist doch kindisch, oder? Dein abschliessender Satz ist daher einfach nur lachhaft und löst bei mir nur Kopfschütteln aus: Zitat:
|
@haba,....& dem rest der bande,...schönes geflame etc,...würd ehrlich gesagt mal etwas auser dem (geflame/rumgebashe) laut dir 'kritik', von deiner wenigkeit sehen,...ein klein wenig hilfe für die leute die hilfe suchen und nicht eine 'haun wir auf den tisch und ruhe ist' mentalität
momentan gehts in diesem teil des forums leider in die richtung das du, progmaster und wie auch immer der 3te in eurer werten runde heisen magst seit nem guten halben jahr alles niedermacht das da irgendwie fragt und oder hilfe sucht,...muss das wirklich sein? ich sehs eher traurig,...ihr leute basht und flamt lieber als die 2min dazu investieren zu helfen,...aber ja was solls,...vlt könnts ihr es mit 'eurer erfahrung' od was auch immer nicht besser,.. ich würde an dieser stelle auch gern einmal die co-admins und moderatoren ansprechen,...warum schiebt ihr da nicht einmal nen riegel vor? das programmierunterforum geht den bach runter im moment,...was heist im moment,...seit einem halben jahr,... greetz disphoria |
@disphoria:
Sorry, ich wußte nicht, dass man hier direkt weint, wenn man etwas berechtigterweise kritisiert. In Zukunft werde ich meine Erfahrung nicht mehr einbringen und lieber bei jedem Unsinn behaupten, dass das so richtig ist. |
kritik ist immer willkommen wenn sie konstruktiv ist. wenn man aber jeden seiner beiträge mit nem satz wie "man wie dumm kann man eigentlich sein?" anfängt, ist damit niemandem geholfen. damit sorgt man nur dafür, dass anfänger sich nicht mehr trauen ihre fragen zu stellen, da sie angst haben auseinandergenommen zu werden. bei dir netwebs ist es mir noch nie aufgefallen, aber bei manch anderen schon...
ich will hier jetzt niemanden direkt anprangern, aber bevor man postet sollte man sich vielleicht mal überlegen, was man, wenn man selbst die frage gestellt hätte, gerne lesen würde. wenn einem die frage zu dumm ist, kann man seine zeit ja auch sinnvolle investieren, als den nächsten flamewar loszutreten. in threads in denen offensichtlich ist, dass der ersteller nur zu faul ist sich die lösung selber zu erarbeiten könnt ihr wegen meiner rumfalmen wie ihr wollt. |
Zitat:
So wie Klopfer (aus Bambi) schon sagte:"[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]" ;) |
@Erik/Schreier
Zitat:
Das wusste ich wirklich nicht. Ich muss zugeben, ich habe es nicht einmal geglaubt. Deswegen habe ich es zuerst ausprobieren müssen, bei den neueren Studios funktioniert es tatsächlich. (GNU habe ich noch nicht ausprobiert.) Hauptsächlich arbeite ich mit VC++ 6.0 (plus Qt und noch einigen Gimmicks), dort ist es nicht möglich. Wird ein älterer Standard sein. |
G++ ((Debian 4.4.7-1) 4.4.7) kompiliert das bei mir jedenfalls nicht.
5: error: stray ‘\303’ in program 5: error: stray ‘\274’ in program 5: error: stray ‘\303’ in program 5: error: stray ‘\266’ in program 5: error: stray ‘\303’ in program 5: error: stray ‘\244’ in program |
MinGW bringt die gleichen Meldungen.
|
Wenn man sich an den [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...] von ISO/IEC hält, dann sieht man unter "6.4.2 Identifiers", welche Zeichen erlaubt sind und welche nicht. Sollte es trotzdem funktionieren, dann hat das nichts damit zu tun dass es erlaubt ist, sondern nur dass sich der verwendete Compiler nicht an den Standard hält (bzw. an einen anderen).
Also nicht streiten, sondern Spezifikationen lesen ;) |
Interessant wie viele Hier an Internationalen Projekten beteiligt sind ... da kommt man sich als mikriger SPS und Mikroprozessor Programmierer ja richtig klein vor auch wenn man seit 15 Jahren Programmiert. Mal davon abgesehen dass man aus 15 Beiträgen die rein garnix mit Programmierung zu tun haben ableiten kann wieviel erfahrung man als Programmierer hat und "wie viele Haare man am Sack hat". Ka wies in der "Internetionalen Branche" aussieht mir auch egal, wenn ich n Programm schreib dann isses mir egal wie Portabel das Programm ist weil wenn jemand was dran machen muss ich das bin und dann zum Kunden fahr. Außerdem hab ich nie behauptet dass man die Konventionen ignorieren sollte sondern nur dass man sie wenn man sich nicht um Portabilität schert ignorieren "KANN". Er ist anfänger und da bringen ihm Programme die die Lösung auf sein Problem unnötig verkomplizieren nur weil man sein "Können" zeigen muss herzlich wenig.
|
Ein Hallo an alle C++ Programmierer da draußen!
Ich habe da wieder ein Problem ( es ist mehr eine Frage ) Alle Infos seht ihr im ersten Post. |
Also was dümmeres konnte dir jetzt echt nicht einfallen, als das Eingangsposting zu editieren?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:58 Uhr. |
Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.