Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Benniboy

Frischling

  • »Benniboy« ist der Autor dieses Themas

Beiträge: 8

Wohnort: Rehling

  • Private Nachricht senden

1

27.09.2005, 16:28

Variablenwechsel

Wie kann ich programmieren das meine for Schleife immer bei jedem Durchlauf eine andere Variable augibt?

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
//Vokabeltrainer

//Von Benjamin Milde

#include <iostream>
using namespace std;
int main ()
{
    //Variablen

    const char ch1[10] = "villa";
    const char ch11[1000] = "Villa";
    const char ch2[10] = "figura";
    const char ch21[10] = "Figur";
    const char ch3[10] = "forma";
    const char ch31[10] = "Form";
    const char ch4[10] = "statua";
    const char ch41[10] = "Statue";
    const char ch5[10] = "flamma";
    const char ch51[10] = "Feuer";
    const char ch6[10] = "fabula";
    const char ch61[11] = "Geschichte";
    const char ch7[10] = "insula";
    const char ch71[10] = "Insel";
    char chEingabe[1000];
    int Kapitelwahl;
    int Punkte = 0;

    //Auswahl

    cout << "Welches Kapitel willst du lernen?\n\n";
    cout << "> 1 <\n";
    cout << "> 2 <\n";
    cout << "> 3 <\n";
    cout << "> 4 <\n";
    cout << "> 5 <\n\n";
    cin >> Kapitelwahl;
    
    //Vokabelabfrage

    switch (Kapitelwahl)
    {
        //Kapitel 1

        case (1):
        {
            for (int i = 0;i<8;i++)
            {
                cout << ch1 << endl;
                cin >> chEingabe;
                if (!strcmp(chEingabe, ch11))
                {
                    Punkte++;
                    cout << "Richtig\n";
                }
                else
                    cout << "Falsch\n";
            }
        }break;
        default:
        {
            cout << "Falsche Eingabe" << endl;
        }
    }
    cout << "Sie haben " << Punkte << " Punkte\n";
    return 0;
}


???
Danke schon im Voraus
Benniboy
}> Zogge oder stirb, du hast die Wahl. }>
http://de.miniprofile.xfire.com/bg/co/type/0/benniboy.png

Terriermon

Frischling

Beiträge: 52

Wohnort: Finnland :-)

  • Private Nachricht senden

2

27.09.2005, 17:57

So, hier mal eine Komplettlösung, ich hab gerade nichts zu tun... ;)
Erst mal solltest die Char-Variablen in einem 2-dimensionalen Array speichern, z. B.

C-/C++-Quelltext

1
2
3
4
char K1_Deutsch[7][15]; // 7 Wörter á 15 Zeichen

char K1_Latein[7][15];    //  - " -

strcpy(K1_Deutsch[0], "Villa"); // 2-dimensionale Arrays müssen über strcpy beschrieben werden

// ...

Jetzt brauchst du noch einen Zufallsgenerator...

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
// Zusätzliche Includes:

#include <MMSystem.h>
#pragma comment(lib, "WinMM.lib")

// Noch eine Hilfsfunktion

int RandomInt(const int iMin, const int iMax) // Liefert einen int-Zufallswert zwischen iMin und iMax zurück

{
    return iMin + (rand() % (iMax - iMin + 1));
}

srand(timeGetTime() % 1000); // Dadurch werden die Zufallszahlen bei jedem Programmstart verändert

Du musst nun in jedem Schleifendurchlauf mit RandomInt eine zufällige int-Variable zwischen 0 und deiner Wortanzahl liefert. Um zu verhindern, dass einige Wörter doppelt gefragt werden, schreibst du am Anfang:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
bool bWordCheck = 0;
int iWordIndex = 0;
while(!bWordCheck)
{ 
    iWordIndex = RandomInt(0, 8);
    if(strcmp(K1_Deutsch[iWordIndex], "") bWordCheck = 1; // Ist das Wort "leer", wurde es schon gefragt

}
// Und am Ende deiner Schleife:

strcpy(K1_Deutsch[iWordIndex], "");


So, sollte funktionieren ;)

Benniboy

Frischling

  • »Benniboy« ist der Autor dieses Themas

Beiträge: 8

Wohnort: Rehling

  • Private Nachricht senden

3

27.09.2005, 20:24

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
//Vokabeltrainer

//Von Benjamin Milde

#include <iostream>
#include <MMSystem.h>
#pragma comment(lib, "WinMM.lib")
int RandomInt(const int iMin = 0, const int iMax = 7);
{
    return iMin + (rand() % (iMax - iMin + 1));
}
using namespace std;
int main ()
{
    //Variablen

    char K1_Deutsch[7][15];
    char K1_Latein[7][15];
    strcpy(K1_Deutsch[0], "Villa" , K1_Deutsch[1] , "Figur");
    strcpy(K1_Latein[0], "villa")
    char chEingabe[1000];
    int Kapitelwahl;
    int Punkte = 0;
    //Auswahl

    cout << "Welches Kapitel willst du lernen?\n\n";
    cout << "> 1 <\n";
    cout << "> 2 <\n";
    cout << "> 3 <\n";
    cout << "> 4 <\n";
    cout << "> 5 <\n\n";
    cin >> Kapitelwahl;


    //Vokabelabfrage

    switch (Kapitelwahl)
    {
        //Kapitel 1

        case (1):
        {
            for (int i = 0;i<8;i++)
            {
            bool bWordCheck = 0;
            int iWordIndex = 0;
            while(!bWordCheck)
            {
                iWordIndex = RandomInt(0, 8);
                if(strcmp(K1_Deutsch[iWordIndex], "")) bWordCheck = 1;
            }
            strcpy(K1_Deutsch[iWordIndex], "");
            }
        }break;
        default:
        {
            cout << "Falsche Eingabe" << endl;
        }
    }
    cout << "Sie haben " << Punkte << " Punkte\n";
    return 0;
}

So sollte des dann aussehen oder? Dann kommen aber zwei Fehler:
c:\programme\microsoft visual studio\vc98\include\mmsystem.h(113) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'MMVERSION'

c:\programme\microsoft visual studio\vc98\include\mmsystem.h(113) : fatal error C1004: Unerwartetes Dateiende gefunden

:help:
}> Zogge oder stirb, du hast die Wahl. }>
http://de.miniprofile.xfire.com/bg/co/type/0/benniboy.png

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

4

27.09.2005, 21:03

link die lib lieber mal per Linker ;)
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

5

27.09.2005, 21:05

Hallo,

Quellcode

1
2
3
strcpy(K1_Deutsch[0], "Villa" , K1_Deutsch[1] , "Figur");
strcpy(K1_Latein[0], "villa"); // << Semikolon vergessen!
char chEingabe[1000];


Gruß Dima ;)

Benniboy

Frischling

  • »Benniboy« ist der Autor dieses Themas

Beiträge: 8

Wohnort: Rehling

  • Private Nachricht senden

6

27.09.2005, 21:10

Zitat von »"Nox"«

link die lib lieber mal per Linker ;)

hää lib?? sorry aber ich bin Einsteiger in programmierung
}> Zogge oder stirb, du hast die Wahl. }>
http://de.miniprofile.xfire.com/bg/co/type/0/benniboy.png

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

7

27.09.2005, 21:10

Der Fehler tritt ja in der MMSystem auf. Also fehlt wohl ein header oder eine lib. Das mit dem Semikolon ist natürlich auch ein Fehler ;)
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Benniboy

Frischling

  • »Benniboy« ist der Autor dieses Themas

Beiträge: 8

Wohnort: Rehling

  • Private Nachricht senden

8

27.09.2005, 21:18

dima dank dir geht aber immer noch nicht
}> Zogge oder stirb, du hast die Wahl. }>
http://de.miniprofile.xfire.com/bg/co/type/0/benniboy.png

9

27.09.2005, 21:22

Zitat von »"Benniboy"«

dima dank dir geht aber immer noch nicht


Bleibt die Fehlermeldung gleich?

Gruß Dima ;)

Benniboy

Frischling

  • »Benniboy« ist der Autor dieses Themas

Beiträge: 8

Wohnort: Rehling

  • Private Nachricht senden

10

27.09.2005, 21:25

Zitat

Temporäre Dateien und Ausgabedateien für "Latein - Win32 Debug" werden gelöscht.
--------------------Konfiguration: Latein - Win32 Debug--------------------
Kompilierung läuft...
Vokabeln.cpp
c:\programme\microsoft visual studio\vc98\include\mmsystem.h(113) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'MMVERSION'
c:\programme\microsoft visual studio\vc98\include\mmsystem.h(113) : fatal error C1004: Unerwartetes Dateiende gefunden
Fehler beim Ausführen von cl.exe.

Latein.exe - 2 Fehler, 0 Warnung(en)
}> Zogge oder stirb, du hast die Wahl. }>
http://de.miniprofile.xfire.com/bg/co/type/0/benniboy.png

Werbeanzeige