Spiele Fanpage-Forum zu X Rebirth, X³: Terran Conflict, X3: Reunion, X2-Die Bedrohung & viele weitere Spiele/Games

X Rebirth, X3: Terran Conflict, X3: Reunion Infos & Spiele-Lösungen, Diskussionen, Tipps Tricks & Cheats/Mods im Fanpage-Forum & weitere Spiele/Games










Aktuelle Zeit: 16.10.2018, 17:40
Willkommen im Xfans Spiele Fanpage-Forum!
Wenn Du auch ein Zocker bist, dann bist Du hier richtig. Du musst registriert sein, um alle Funktionen (schreiben, Bilder ansehen, etc.) dieses Forums nutzen zu können. Benutze das Registrierungsformular um dich kostenlos zu registrieren. Falls Du bereits in diesem Forum registriert bist, kannst du dich hier anmelden. Viel Spaß!


Alle Zeiten sind UTC [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 90 Beiträge ]  Gehe zu Seite Vorherige  1 ... 5, 6, 7, 8, 9
Werbepause ;-)
Autor Nachricht
 Betreff des Beitrags: Re: Kleine Hilfe bei Übungsprogramm (C++)
BeitragVerfasst: 12.06.2009, 19:58 
Offline
Industrieller
Industrieller
Benutzeravatar

Registriert: 21.07.2006, 17:57
Beiträge: 274
Wohnort: Sektor Offenburg
Dann würde ich vorschlagen mal ein richtiges Projekt anzugehen, egal mit welchem Kentnisstand.
Je mehr Probleme sich dabei auftürmen desto besser. Es muss ja nichts ernsthaftes sein, solang man was dabei lernt.
Bei Fragen fragen: Xfans CodeCorner - Da werden Sie geholfen :lach:

_________________
[WIP] C++ Tutorial Kapitel 1-4
Space Cleaner

Bild

Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Kleine Hilfe bei Übungsprogramm (C++)
BeitragVerfasst: 12.06.2009, 21:25 
Offline
Moderator
Moderator
Benutzeravatar

Registriert: 01.07.2007, 14:21
Beiträge: 1669
Wohnort: Lucern-Switzerland
Yup, da kommt schon die nächste Frage :P

Ich hatte eigentlich vor einen Euro Millions Zufallsgenerator zu basteln (also mit fünf Zahlen und zwei Sternen). Jetzt funzt der ja theoretisch auch, aber ich finde keine Möglichkeit zu kontrollieren ob eine der Zufallszahlen bereits verwendet wird und komm auch nicht drauf (liegts dran dass Freitagabend ist? :lach: )...

Ich habe jetzt wie von ToFa geschrieben zwei Array gemacht, also:
Code:
short Zahl[4];
short Stern[1];

... dannach kann ich auch allen Feldern eine Zufallszahl zuweisen. Aber eben, wie kontrolliere ich denn dabei ob die Zahl in Zahl[i] bzw. Stern[i] schon verwendet wurde?
(Ich weiss übrigens das if und switch existiert, komme trotzdem nicht dahinter ;) )

@ToFa: Was meinst du mit Projekt angehen, sowas wie eben das EuroMillions Spiel? Was hast du gemacht, als du Kenntnisstand Grundlagen (ohne Zeiger, Klassen, Template...) hattest? Würd mich interessieren :ja:

EDIT: Da ist noch eine kleine Frage hinzugekommen ;)
Code:
#include <iostream>

int* pResultat = 0;

using namespace std;

void Addition(int Zahl1, int Zahl2);

int main()
{
    int Zahl1, int Zahl2;
    cout << "Geben Sie eine Zahl ein: ";
    cin >> Zahl1;
    cout << endl << endl << "Geben Sie die zweite zu addierende Zahl ein: ";
    cin >> Zahl2;
    cout << endl << endl;

    Addition(Zahl1, Zahl2);
    cout << "Das Resultat ist " << *pResultat << ".";
    cin.get();
}

void Addition(int Zahl1, int Zahl2)
{
    int Resultat;
    Resultat = Zahl1+Zahl2;
    pResultat = &Resultat;
}


Und zwar gibt mir das Programm immer nur die zweite Eingegebene Zahl als Resultat an. Es sei denn ich mache in der Funktion 'void Addition' drin, einen cout-Befehl, egal ob es sich um eine der Zahlen, dem Resultat oder etwas anderem (bsp. endl) handelt, dann funktioniert es, ich check nicht ganz wieso, und ob es ev. ein Fehler meiner IDE ist...

_________________
Bild


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Kleine Hilfe bei Übungsprogramm (C++)
BeitragVerfasst: 13.06.2009, 19:00 
Offline
Industrieller
Industrieller
Benutzeravatar

Registriert: 21.07.2006, 17:57
Beiträge: 274
Wohnort: Sektor Offenburg
Beim Kontrollieren könntest du z.B. immer gucken, ob die Zufallszahl schon irgendwo vorhanden ist, bevor du sie hinzufügst (Zahlen und Sterne natürlich getrennt behandeln)
Code:
// NOTE: short zufall == Deine Zufallszahl für entweder Stern oder Zahl
// Bei 5 aus 50:
bool Exists;
for(
int i = 0; i < 5; i++)
{
    Exists = true;
    while(Exists)
    {
        // Zufall generieren...

        for(int j = 0, Exists = false; j < i && !Exists; j++)
            Exists = Zahl[j] == zufall;
    }
    Zahl[i] = zufall;
}
 

Gibt wahrscheinlich einfachere Lösungen, hab mir das jetzt schnell so ausgedacht. Es funktioniert so auch mit beliebig vielen Zufallszahlen.
Im Übrigen werden Arrays immer mit der ANZAHL der Elemente deklariert. Stern[1] hat also nur ein Element. Die Regel mit immer eins weniger gilt nur bei der Verwendung, da das erste Element immer den Index 0 hat ;)
-----
Wie hab ich's damals gemacht. Gute Frage. Ich weiß nur, dass ich auch immer mal kleinere Projekte gemacht hab. Auf keinen Fall darf man in der Zeit ernsthafte Projekte angehen, das wird nix (Dadurch, dass man immer mal was dazulernt, will man das dann da einbauen und da was ausbessern, und irgendwann kann man den Code dann in die Tonne kloppen). An ein Projekt kann ich mich noch gut erinnern: Ich hatte damals einen Spaß-"Virus" gecodet, der sich selbst kopiert, die Maus und Tastatur lahmlegt usw. Wenn ich mir heut den Code anschau wird mir schlecht.
-----
Und das nächste mal bitte mein M nicht vergessen^^
Sollte mich irgendjemand mal auf der Straße fragen, wie ich auf so komische Namen komme, werde ich schreiend wegrennen.
-----
@Edit:
Skyese hat geschrieben:
int Zahl1, int Zahl2;

Wundert mich, dass dein Compiler scheinbar keinen Fehler ausspuckt. Visual Studio tut's nämlich. Mach das zweite int mal weg. Bei mir hat es dann funktioniert.

_________________
[WIP] C++ Tutorial Kapitel 1-4
Space Cleaner

Bild

Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Kleine Hilfe bei Übungsprogramm (C++)
BeitragVerfasst: 13.06.2009, 20:08 
Offline
Moderator
Moderator
Benutzeravatar

Registriert: 01.07.2007, 14:21
Beiträge: 1669
Wohnort: Lucern-Switzerland
OK, ich sag nur noch ToFam :lach:

Hmm. Also ich hab da mal bei Zahl1 & Zahl2 nur ein int genommen, aber der Fehler will nicht verschwinden :naja:
(Ich habe das int bei der Mainfunktion entfernt, nicht bei den Funktionen, das meintest du oder?)

Dann danke für den Quellcode, werden wir das nochmal versuchen, nebenbei noch ein paar Miniprojekte..

Danke dir :)

PS: Hab ich doch glatt vergessen dass Arrays mit der Anzahl der Felder deklariert werden ohne eins abzuzählen, das erklärt warum gewisse Progs nicht richtig funktionierten :P

_________________
Bild


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Kleine Hilfe bei Übungsprogramm (C++)
BeitragVerfasst: 13.06.2009, 20:22 
Offline
Industrieller
Industrieller
Benutzeravatar

Registriert: 21.07.2006, 17:57
Beiträge: 274
Wohnort: Sektor Offenburg
Skyese hat geschrieben:
Hmm. Also ich hab da mal bei Zahl1 & Zahl2 nur ein int genommen, aber der Fehler will nicht verschwinden

Das hab ich mir nach dem Absenden dann auch gedacht. Komisch dass VS da trotzdem alles richtig macht.
Also du hast ja in der Funktion die Variable Resultat. Wenn du darauf die Adresse speicherst, wird der Wert ja nicht in den Zeiger geschrieben, der Zeiger speichert nur die Adresse. Und diese Adresse liegt auf dem Funktions-Stack von Addition().
Dieser Stack existiert per Definition aber nur, bis zum Verlassen der Funktion. Dann ist die Adresse ungültig.
Hast du in deinem Buch schon den Heap durchgenommen?
Das ist dann das was du brauchst.

_________________
[WIP] C++ Tutorial Kapitel 1-4
Space Cleaner

Bild

Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Kleine Hilfe bei Übungsprogramm (C++)
BeitragVerfasst: 13.06.2009, 20:35 
Offline
Moderator
Moderator
Benutzeravatar

Registriert: 01.07.2007, 14:21
Beiträge: 1669
Wohnort: Lucern-Switzerland
Nein Stack & Heap kommt erst noch, werde das morgen mal versuchen..
Komisch das meine IDE keinen Fehler meldet.

EDIT: Ehm ToFam das kann nicht sein das es daran liegt.
Ich habe ja immer die Zahl2 als Resultat, das ist nach deiner Erklärung logisch da es den ersten Teil des Stacks ist (der theoretisch nicht mehr existiert, aber ja auch nicht von den RAM gelöscht wird), ABER das ganze funktioniert ja wenn ich in die Funktion z.B. eine Linie mit
Code:
cout << endl;
//(oder ein anderer cout-Befehl)

einbinde... :stupid:

_________________
Bild


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Kleine Hilfe bei Übungsprogramm (C++)
BeitragVerfasst: 13.06.2009, 21:27 
Offline
Industrieller
Industrieller
Benutzeravatar

Registriert: 21.07.2006, 17:57
Beiträge: 274
Wohnort: Sektor Offenburg
Seltsam ist es auf jeden Fall. Aber ich bin sicher das ganze funktioniert, wenn du mit dem Heap arbeitest.
Welchen Compiler benutzt du denn eigentlich?

Edit: Also ich hab es jetzt mal funktionierend umgeschrieben:
Code:
#include <iostream>
using namespace std;

int* pResultat = 0;
int Addition(int Zahl1, int Zahl2);

int main()
{
    int Zahl1, Zahl2;
    cout << "Geben Sie eine Zahl ein: ";
    cin >> Zahl1;
    cout << endl << endl << "Geben Sie die zweite zu addierende Zahl ein: ";
    cin >> Zahl2;
    cout << endl << endl;

    Addition(Zahl1, Zahl2);
    cout << "Das Resultat ist " << *pResultat << ".";
    cin.ignore();
    cin.get();

    delete pResultat;
    return 0;
}

int Addition(int Zahl1, int Zahl2)
{
    int* Resultat = new int;
    *Resultat = Zahl1+Zahl2;
    pResultat = Resultat;
}
 

Das macht das Beispiel zwar mehr oder weniger sinnlos, aber es ist ja nur zur Demonstration.

_________________
[WIP] C++ Tutorial Kapitel 1-4
Space Cleaner

Bild

Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Kleine Hilfe bei Übungsprogramm (C++)
BeitragVerfasst: 13.06.2009, 21:35 
Offline
Moderator
Moderator
Benutzeravatar

Registriert: 01.07.2007, 14:21
Beiträge: 1669
Wohnort: Lucern-Switzerland
Öhm insgesamt arbeite ich mit:

Code::Blocks (IDE)
Microsoft Visual C++ Toolkit 2003

Ich weiss es gibt besseres, aber mein Buch baut darauf auf, deshalb werde ich es vorerst nicht ändern (ausserdem habe ich MS Visual C++ 2008 Express nicht kapiert :D )

_________________
Bild


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Kleine Hilfe bei Übungsprogramm (C++)
BeitragVerfasst: 13.06.2009, 21:38 
Offline
Industrieller
Industrieller
Benutzeravatar

Registriert: 21.07.2006, 17:57
Beiträge: 274
Wohnort: Sektor Offenburg
Das heißt du verwendest Code::Blocks mit dem Visual Studio Compiler?
Du kannst ja mal zum Spaß den GCC einstellen, vielleicht verhält es sich dann anders?

_________________
[WIP] C++ Tutorial Kapitel 1-4
Space Cleaner

Bild

Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Kleine Hilfe bei Übungsprogramm (C++)
BeitragVerfasst: 13.06.2009, 21:45 
Offline
Moderator
Moderator
Benutzeravatar

Registriert: 01.07.2007, 14:21
Beiträge: 1669
Wohnort: Lucern-Switzerland
Das ist es ja, die alte Code::Blocks Version ist da unflexibel, es müssen dann zum Compiler noch von Hand Einstellungen gemacht werden und von GCC weiss ich sie nicht und müsste lange suchen...

Werde mich jetzt aber zuerst mal mit Heap und Stack beschäftigen um mir diesen Ärger zu ersparen, ein weiteres mal ein dankeschön von mir ;)

_________________
Bild


Nach oben
 Profil  
 
Werbepause ;-)
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 90 Beiträge ]   
Gehe zu Seite Vorherige  1 ... 5, 6, 7, 8, 9

Alle Zeiten sind UTC [ Sommerzeit ]


Ähnliche Beiträge


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast






Suche nach:

Gehe zu:  


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.


www.xfans.de - Spielefanpage Xfans News Xfans Fanscripte-Downloadarchiv Pagerank erhoehen

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Deutsche Übersetzung durch phpBB.de

PlayStation style by Scott Stubblefield