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.
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.
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.
@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 ]"
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.
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