int main( )
{
PrimzahlBerechnen();
system("PAUSE");
return EXIT_SUCCESS;
}
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?
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
#include <iostream>
using namespace std;
void Zaehlen(void){//ohne return
int Eingabe;
cout << "Eine Zahl zwischen 0 und 100" << endl;
cin >> Eingabe;
while (Eingabe <=100)
{ cout << Eingabe << endl;
Eingabe++;
}
}
int Zaehlen_2(void){//mit return
int Wert1=10,Wert2=5;
return (Wert1+Wert2);
}//zwar nicht sinvoll aber selten ;)
int main(){
int Ergebnis;
//Ergebnis aus Zaehlen2 ausgeben
cout<<Zaehlen_2()<<endl;
//oder in einer Variablen speichern
Ergebnis=Zaehlen_2();
//und dann z.B ausgeben
cout<<Ergebnis<<endl;
system("pause");//wartet mit Aufforderung auf einen Tastendruck
}
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?
#include <iostream>
using namespace std;
int Zaehlen(int i, int value){
i += value;
return i;
}
int main(){
int Ergebnis = 0;
while(Ergebnis < 100)
{
Ergebnis = Zaehlen(Ergebnis,1);
cout << Ergebnis << endl;
}
system("pause");//wartet mit Aufforderung auf einen Tastendruck
}
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;
}
#include <iostream>
using namespace std;
int addiere(const int& Wert1,const int& Wert2){
return (Wert1+Wert2);
}//Angenommen Du wolltest zwei Werte addieren
bool A_B(const int& Wert1,const int& Wert2){
return (Wert1 > Wert2 ? true : false);
}//oder checken ob Wert1 größer als Wert2 ist
int* create(int* get,const int& size){
for(int i=0;i < size;i++){
get=new int;
}
return get;
}//oder dynamischen Speicher anfordern
int main(void){
int Ergebnis=0,Wert1=0,Wert2=0;
int TestArray[]={0,1,2,3,4,5,6,7,8,9};
int size=10;
int* alloc=NULL; //Zeiger deklarieren und sichern
alloc=create(alloc,size);//Speicher auf diesen Zeiger anfordern
cout<<"Erster Wert : ";
cin>>Wert1;
cout<<"Erster Wert : ";
cin>>Wert2;
Ergebnis=addiere(Wert1,Wert2);
cout<<"Ergebnis : "<<Ergebnis<<endl;
if( A_B (Wert1,Wert2) == true){cout<<"\nWert 1 ist groesser\n"<<endl;
}//wenn Rückgabe von Funktion A_B wahr ist,ist Wert 1 größer
else if( A_B (Wert1,Wert2) == false){cout<<"\nWert 2 ist groesser\n"<<endl;
}//wenn Rückgabe von Funktion A_B wahr ist,ist Wert 1 größer
for(int i=0;i < size;i++){
alloc[i]=i+1;//mit Werten füllen
}
for(int j=0;j < size;j++){
cout<<"Zelle "<<j<<" enthaellt int Wert "<<alloc[j]<<endl;//Werte wieder ausgeben
}
system("pause");
}
/*Letztendlich kannst Du alles mit allem in einer Funktion berechnen,verrechnen,etc und mit return zurückgeben lassen,
wichtig ist nur das der Rückgabetyp also das was vor dem Funktionsnamen steht richtig
gewählt wird,sonst muss gecastet werden ;)
*/
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.
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.
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.
Und selbst wenn es erlaubt ist, ist es verboten.
Wenn ein Idiot sich nicht dran hält, wär das für mich ein Kündigungsgrund!
Du zitierst jemanden der nichteinmal den Unterschied zwischen Funktions- und Symbolnamen
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
...
dieses Programm lässt sich problemloß mit Visual Studio Linken da es dem ANSI-Standard entspricht.
Code:
using System;
namespace Tütöriäl
{
class Prögram
{
static void Main(string[] args)
{
int ä = 0;
int ü = 5;
while(ä <= ü)
{
Console.WriteLine(ä++);
}
Console.ReadLine();
}
}
}
Funktioniert weil es der ECMA Norm entspricht.
Code:
>>> MäünStröng = "Hello World!"
>>> MäünStröng
Python hat meines Wissens nach keine Standardisierung aber auch da gehts
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.
__________________
1. Streite niemals mit Idioten, sie ziehen dich auf ihr Niveau und schlagen dich dann mit Erfahrung.
2. Wenn jemand denkt er hat die Oberhand, brich sie ihm.
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:
Zitat von Erik/Schreier
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.
... jetzt frag dich mal selbst wieviel Erfahrung du hast (internationale Projekte?).
@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,...
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.
... 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.
Nur diese Stelle würde ich so nicht unterschreiben ... Es ist hier ja keiner gezwungen dass er Antwortet. Wenn einem die Frage nicht passt oder man meint dass sich der Fragensteller die Antwort nicht verdient hat, dann sollte man auch nicht Antworten.
So wie Klopfer (aus Bambi) schon sagte:"[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]"
dieses Programm lässt sich problemlos mit Visual Studio Linken da es dem ANSI-Standard entspricht.
<...>
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
__________________
"They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety"
Wenn man sich an den [ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu 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.
__________________
1. Streite niemals mit Idioten, sie ziehen dich auf ihr Niveau und schlagen dich dann mit Erfahrung.
2. Wenn jemand denkt er hat die Oberhand, brich sie ihm.