Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Forentreff 2012     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: DOS und Win32-Konsole ::  C++ Anfänger- Programm funktoniert nicht!     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
genoni
Mitglied

Benutzerprofil
Anmeldungsdatum: 02.02.2012
Beiträge: 12
Beitrag genoni Mitglied 09:03:17 02.02.2012   Titel:   C++ Anfänger- Programm funktoniert nicht!            Zitieren

Hi,

Ich hab erst grad mit C++ angefangen und mein Programm funktioniert nicht:

Zitat:
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{int Zahl;
printf("Gib eine Zahl ein : ");
scanf("%d",&Zahl);
fflush(stdin);
printf("\nDie Zahl ist %x. \n",Zahl);
system("PAUSE");
return EXIT_SUCCESS;
}


Das Ziel ist es einen Dezimal zu Hexadezimalumrechner zu gestalten.

Kann mir jemand helfen?

mfG Leo
_matze
Mitglied

Benutzerprofil
Anmeldungsdatum: 31.07.2007
Beiträge: 9602
Beitrag _matze Mitglied 09:31:08 02.02.2012   Titel:              Zitieren

Doch, funktioniert (VS2008). Warum denkst du denn, dass es nicht funktioniert?

EDIT: Übrigens ist fflush(stdin) böse und sollte durch eine Alternative ersetzt werden (bzw. ist in diesem Programm gar nicht nötig). Siehe http://www.c-plusplus.de/forum/39349

Und arbeite an deiner Textformatierung, die ist so nicht ganz optimal. ;)

_________________
Wie viele atheistische Babys hat man schon aus Versehen - oder gar mit Absicht! - getauft?


Zuletzt bearbeitet von _matze am 09:41:52 02.02.2012, insgesamt 1-mal bearbeitet
genoni
Mitglied

Benutzerprofil
Anmeldungsdatum: 02.02.2012
Beiträge: 12
Beitrag genoni Mitglied 11:59:39 02.02.2012   Titel:              Zitieren

Danke es funktioniert doch, vielen Dank!!!!!


Zuletzt bearbeitet von genoni am 12:02:47 02.02.2012, insgesamt 3-mal bearbeitet
MFK
Mitglied

Benutzerprofil
Anmeldungsdatum: 02.11.2002
Beiträge: 5267
Beitrag MFK Mitglied 12:02:37 02.02.2012   Titel:              Zitieren

genoni schrieb:
Das Programm in der Console spuckt dann nicht die Zahl Hexadezimal aus, sondern es kommt eine Variable wie c oder 4d.

c und 4d sieht doch gut aus, je nachdem, was du eingegeben hast.

Gib doch mal ein paar konkrete Beispiele, welche Ausgabe du bei welcher Eingabe erwartest, und welche du bekommst.

_________________
"Funktioniert nicht" ist keine ausreichende Fehlerbeschreibung.
genoni
Mitglied

Benutzerprofil
Anmeldungsdatum: 02.02.2012
Beiträge: 12
Beitrag genoni Mitglied 19:06:03 02.02.2012   Titel:              Zitieren

Sorry, Ich habs jetzt selbst überprüft und die Hexadezimale Darstellung ist richtig!

Cool mein erstes nützliches Programm!

Vielen Dank für die Antworten, allerdings habe ich ein neues Problem.

Ich wollte zu meinem Dezimal zu Hexadezimal eine Codesperre hinzufügen.

Hier der Text im C Compiler:

Zitat:
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
int pwd;
printf("Gib dein Code ein: ");
scanf("d&",&pwd);
fflush(stdin);
printf("\n");
if(pwd!=7330);
{system("PAUSE");
return EXIT_SUCCESS;
}
{if(pwd==7330);
{printf("Gut! Dein Code ist richtig!");
}
}
{int Zahl;
printf("Gib eine Zahl ein : ");
scanf("%d",&Zahl);
fflush(stdin);
printf("\nDie Zahl ist Hexal : %x. \n",Zahl);
printf("\nDie Zahl ist Oktal : %o \n", Zahl);


system("PAUSE");
return EXIT_SUCCESS;
}


Herzlichen Dank im Voraus.

mfG Leo
Belli
Mitglied

Benutzerprofil
Anmeldungsdatum: 29.08.2009
Beiträge: 1110
Beitrag Belli Mitglied 19:57:36 02.02.2012   Titel:              Zitieren

genoni schrieb:

if(pwd!=7330); < ==Diese Semikolons müssen weg

{if(pwd==7330); < ==
Thuruk
Mitglied

Benutzerprofil
Anmeldungsdatum: 26.01.2012
Beiträge: 130
Beitrag Thuruk Mitglied 20:17:27 02.02.2012   Titel:              Zitieren

C/C++ Code:
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
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
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{

    int pwd;
    printf("Gib deinen Code ein: ");
    scanf("%d",&pwd);
   
    if(pwd!=7330)
    {
        printf("Falsch!\n");
        return EXIT_SUCCESS;
    }

    if(pwd==7330)
    {
        printf("Gut! Dein Code ist richtig!\n");
    }

    int Zahl;
   
    printf("Gib eine Zahl ein : ");
    scanf("%d",&Zahl);
   
    printf("\nDie Zahl ist Hexal : %x. \n",Zahl);
    printf("\nDie Zahl ist Oktal : %o \n", Zahl);

    return EXIT_SUCCESS;
}
C/C++ Code:
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
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{

int pwd;
printf("Gib deinen Code ein: ");
scanf("%d",&pwd);

if(pwd!=7330)
{
printf("Falsch!\n");
return EXIT_SUCCESS;
}

if(pwd==7330)
{
printf("Gut! Dein Code ist richtig!\n");
}

int Zahl;

printf("Gib eine Zahl ein : ");
scanf("%d",&Zahl);

printf("\nDie Zahl ist Hexal : %x. \n",Zahl);
printf("\nDie Zahl ist Oktal : %o \n", Zahl);

return EXIT_SUCCESS;
}
C/C++ Code:
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
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{

    int pwd;
    printf("Gib deinen Code ein: ");
    scanf("%d",&pwd);
   
    if(pwd!=7330)
    {
        printf("Falsch!\n");
        return EXIT_SUCCESS;
    }

    if(pwd==7330)
    {
        printf("Gut! Dein Code ist richtig!\n");
    }

    int Zahl;
   
    printf("Gib eine Zahl ein : ");
    scanf("%d",&Zahl);
   
    printf("\nDie Zahl ist Hexal : %x. \n",Zahl);
    printf("\nDie Zahl ist Oktal : %o \n", Zahl);

    return EXIT_SUCCESS;
}


Ein wenig unnötiger Code war drin, und die schon bemerkten Fehler. Außerdem in einem scanf ein Schreibfehler.
genoni
Mitglied

Benutzerprofil
Anmeldungsdatum: 02.02.2012
Beiträge: 12
Beitrag genoni Mitglied 22:24:22 02.02.2012   Titel:              Zitieren

Danke, Ich hab jetzt alles so gemacht wie du gesagt hast.

Es kommt nach der Code-Eingabe, die Zahl Eingabe. Aber Anstatt die Zahl umzurechnen, schliesst sich das Programm! Was ist jetzt der Fehler?

mfG Leo

PS: Tut mir leid dass ich soviele Fragen habe, aber ich habe erst gestern Abend mit der C++ angefangen.


Zuletzt bearbeitet von genoni am 22:25:31 02.02.2012, insgesamt 1-mal bearbeitet
Wutz
Mitglied

Benutzerprofil
Anmeldungsdatum: 15.04.2010
Beiträge: 2103
Beitrag Wutz Mitglied 22:39:37 02.02.2012   Titel:              Zitieren

Du hast mit C angefangen, nicht mit C++.
Das Programm endet, weil es ein Konsolenprogramm ist und die Konsole sich ebenso beendet.
Unter VisualStudio starte dein Programm mit Strg+F5.

_________________
Java, the best argument for Smalltalk since C++. -- Frank Winkler
genoni
Mitglied

Benutzerprofil
Anmeldungsdatum: 02.02.2012
Beiträge: 12
Beitrag genoni Mitglied 22:57:45 02.02.2012   Titel:              Zitieren

Vielen Dank, aber irgendwie verstehe ich das nicht ganz.

Wieso geht denn das Programm zu, bevor die ganze Programmierung durchgelaufen ist?

Muss ich irgendeinen Code eingeben?

mfG Leo
Wutz
Mitglied

Benutzerprofil
Anmeldungsdatum: 15.04.2010
Beiträge: 2103
Beitrag Wutz Mitglied 23:11:08 02.02.2012   Titel:              Zitieren

Wer lesen kann, ist klar im Vorteil.
Lies dir die 2. Zeile nochmal durch und versuche sie zu verstehen, also Hinweis noch: unter Konsole versteht man in Windows auch das "DOS-Fenster", siehe auch den Forumstitel.

_________________
Java, the best argument for Smalltalk since C++. -- Frank Winkler
Thuruk
Mitglied

Benutzerprofil
Anmeldungsdatum: 26.01.2012
Beiträge: 130
Beitrag Thuruk Mitglied 23:13:53 02.02.2012   Titel:              Zitieren

Das Programm schließt sich, nachdem die Zahl umgerechnet ausgegeben wurde. Du könntest z.B. eine Schleife machen:
C/C++ Code:
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
    while(true)
    {
            printf("Gib eine Zahl ein : ");
            scanf("%d",&Zahl);
           
            printf("\nDie Zahl ist Hexal : %x. \n",Zahl);
            printf("\nDie Zahl ist Oktal : %o \n", Zahl);
    }
C/C++ Code:
1
2
3
4
5
6
7
8
while(true)
{
printf("Gib eine Zahl ein : ");
scanf("%d",&Zahl);

printf("\nDie Zahl ist Hexal : %x. \n",Zahl);
printf("\nDie Zahl ist Oktal : %o \n", Zahl);
}
C/C++ Code:
1
2
3
4
5
6
7
8
    while(true)
    {
            printf("Gib eine Zahl ein : ");
            scanf("%d",&Zahl);
           
            printf("\nDie Zahl ist Hexal : %x. \n",Zahl);
            printf("\nDie Zahl ist Oktal : %o \n", Zahl);
    }
genoni
Mitglied

Benutzerprofil
Anmeldungsdatum: 02.02.2012
Beiträge: 12
Beitrag genoni Mitglied 23:27:17 02.02.2012   Titel:              Zitieren

Mein Programm sieht jetzt so aus:

Zitat:

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
int Code;
printf("Gib bitte den Code ein: ");
scanf("%d",&Code);

if(Code!=7330)
{
printf("Falsch\n!");
return EXIT_SUCCESS;
}

if(Code==7330)
{
printf("Zugriff gew\x84hrt!\n");
}
int Zahl;

while(true)
{
printf("Gib eine Zahl ein : ");
scanf("%d",&Zahl);
printf("\nDie Zahl ist Hexal : %x. \n",Zahl);
printf("\nDie Zahl ist Oktal : %o \n", Zahl);
}

return EXIT_SUCCESS;
}

Sorry wenn ich euch mit meinen fragen langweile, aber es geht trotzdem zu bevor es die Zahl ausgerechnet hat.

@Wutz

Sorry aber ich werde auch beim 10 mal Lesen nicht schlau aus deinem Post, ich weiss ja das sich das Programm schliesst, aber wie kann ich das verhindern?

mfG Leo


Zuletzt bearbeitet von genoni am 23:28:50 02.02.2012, insgesamt 3-mal bearbeitet
Belli
Mitglied

Benutzerprofil
Anmeldungsdatum: 29.08.2009
Beiträge: 1110
Beitrag Belli Mitglied 23:47:03 02.02.2012   Titel:              Zitieren

Starte Dein Konsolenprogramm aus der Konsole!
f.-th.
Unregistrierter




Beitrag f.-th. Unregistrierter 23:52:07 02.02.2012   Titel:              Zitieren

Du weisst was eine Win32-Konsole ist?
Öffne da dein Programm. Und berichte wie das da funktioniert :live:

Wenn du mit einer IDE programmierst, hast du da auch oft die Möglichkeit das Programm auf Konsole zu testen.

Und nimm für deinen Quelltext den C/C++ Button hier, der erste direkt unter den Smilies :live:

Dann schreibst du C++. Aber C++ sind nur die ersten 3 Zeilen deines Quelltextes, wenn ich nichts übersehen hab. Warum nicht die weiteren? Seid ihr noch nicht so weit? Oder was hindert dich?

MfG f.-th.
Thuruk
Mitglied

Benutzerprofil
Anmeldungsdatum: 26.01.2012
Beiträge: 130
Beitrag Thuruk Mitglied 00:01:58 03.02.2012   Titel:              Zitieren

C/C++ Code:
#include <cstdlib>
C/C++ Code:
#include <cstdlib>
C/C++ Code:
#include <cstdlib>


ist unnötig. Wenn du rein in C programmieren willst, ist denke ich
C/C++ Code:
#include <stdio.h>
C/C++ Code:
#include <stdio.h>
C/C++ Code:
#include <stdio.h>


die richtige Wahl statt
C/C++ Code:
#include <iostream>
using namespace std;
C/C++ Code:
#include <iostream>
using namespace std;
C/C++ Code:
#include <iostream>
using namespace std;


Zu deinem Problem, geh auf Start -> Ausführen (evtl. in den Eigenschaften des Startmenüs einstellen) -> 'cmd', dann hast du die Konsole offen. Dann mit 'cd' in den Ordner, wo deine .exe liegt, wechseln und den vollständigen Dateinamen angeben. Damit geht das Fenster nicht zu, nachdem das Programm beendet wurde.

In diesem konkreten Fall hast du wahrscheinlich den falschen Code eingegeben. 7330 muss der sein, sonst beendet das Programm nach der Meldung 'Falsch!'.
genoni
Mitglied

Benutzerprofil
Anmeldungsdatum: 02.02.2012
Beiträge: 12
Beitrag genoni Mitglied 13:46:58 03.02.2012   Titel:              Zitieren

Danke für euere Antworten und Hinweise, sebstverständlich werde ich ab jetzt den Quelltext mit dem (
C/C++ Code:
C/C++ Code:
C/C++ Code:
) ausgeben.

@f.th-
Ja eben ich hab so ein PDF gedownloadet das mir alles Schritt für Schritt erklärt. Dort stehen eben wahrscheinlich nur die C-Befehle.
--------------------------------------------------

@Thuruk

Vielen Dank für deine Erklärung, noch eines ist mir unklar:
nach dem cd muss ich den path meiner Datei angeben?

---------------------------------------------------

Bis jetzt habe ich meine Programme immer so aufgemacht:

1. Ausführen-->Kompileren
2. Ausführen-->Ausführen

-------> Das Programm ging als Konsolenprogramm auf.

Nun mache ich das wieder so, aber es ist fehlerhaft.
Was ist eigentlich das kompilieren, erstellt es da eine .exe?

mfG Leo
PS: Ihr müsst jetzt nicht meinen ich sei ein Unfähiger Computer-Bediener, bis jetzt arbeitete ich immer auf dem Mac und nun habe ich mir per Bootcamp eine Windows-Partition geholt.


Zuletzt bearbeitet von genoni am 13:51:42 03.02.2012, insgesamt 2-mal bearbeitet
Thuruk
Mitglied

Benutzerprofil
Anmeldungsdatum: 26.01.2012
Beiträge: 130
Beitrag Thuruk Mitglied 19:13:38 03.02.2012   Titel:              Zitieren

Nach 'cd' (change directory) muss der Pfad des Ordners, in dem die durch den Compiler und Linker erstellte .exe liegt, angegeben werden.

Du kannst außerdem eine Verknüpfung am Desktop erstellen, als Pfad C:\Windows\system32\cmd.exe angeben, darauf rechte Maustaste -> 'ausführen in', da den Pfad angeben, damit startet die Konsole in dem gewünschten Ordner.
genoni
Mitglied

Benutzerprofil
Anmeldungsdatum: 02.02.2012
Beiträge: 12
Beitrag genoni Mitglied 23:26:57 03.02.2012   Titel:              Zitieren

Herzlichen Dank an alle!!!!

Nun muss man den Code eingeben, dann kommt man soll eine Zahl eingeben und diese wird dann umgerechnet.

Alles so wie es soll. vielen Dank.

Nun habe ich aber erneut eine Frage.
Ich hoffe ihr nehmt mir das nicht übel.

Nun:

Das Ziel ist es einen NotenCalculator zu basteln:

C/C++ Code:
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
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
#include <cstdlib>
#include
<iostream>

using namespace std;

int main(int argc, char *argv[])
{
float Gesamtpunktzahl;
printf("Bitte geben sie die Gesamtpunktzahl ein: \n");
scanf("%d",&Gesamtpunktzahl);

float r;
printf("Bitte geben sie ein, welche Punktzahl für eine Sechs nötig ist: \n");
scanf("%d",&r);

float punktezahleins;
printf("Bitte geben sie ein, welche Punktzahl für eine Eins nötig ist: \n");
scanf("%d",&punktezahleins);

float y;
float erreichtepunktzahl;
printf("Bitte geben sie ein, welche Punktzahl der Schueler erreicht hat : \n");
scanf("%d",&erreichtepunktzahl);
(erreichtepunktzahl*5)=y;
{
float Ergebnis;
while(Ergebnis!=7);
}
{
float Ergebnis;
float note;
float r;
float z;
float x;
r=punktezahleins;
y/r=x;
x+1=note;


printf("Die note ist %f\n",note);
    return EXIT_SUCCESS;
}
}
C/C++ Code:
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
#include <cstdlib>
#include
<iostream>

using namespace std;

int main(int argc, char *argv[])
{
float Gesamtpunktzahl;
printf("Bitte geben sie die Gesamtpunktzahl ein: \n");
scanf("%d",&Gesamtpunktzahl);

float r;
printf("Bitte geben sie ein, welche Punktzahl für eine Sechs nötig ist: \n");
scanf("%d",&r);

float punktezahleins;
printf("Bitte geben sie ein, welche Punktzahl für eine Eins nötig ist: \n");
scanf("%d",&punktezahleins);

float y;
float erreichtepunktzahl;
printf("Bitte geben sie ein, welche Punktzahl der Schueler erreicht hat : \n");
scanf("%d",&erreichtepunktzahl);
(erreichtepunktzahl*5)=y;
{
float Ergebnis;
while(Ergebnis!=7);
}
{
float Ergebnis;
float note;
float r;
float z;
float x;
r=punktezahleins;
y/r=x;
x+1=note;


printf("Die note ist %f\n",note);
return EXIT_SUCCESS;
}
}
C/C++ Code:
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
#include <cstdlib>
#include
<iostream>

using namespace std;

int main(int argc, char *argv[])
{
float Gesamtpunktzahl;
printf("Bitte geben sie die Gesamtpunktzahl ein: \n");
scanf("%d",&Gesamtpunktzahl);

float r;
printf("Bitte geben sie ein, welche Punktzahl für eine Sechs nötig ist: \n");
scanf("%d",&r);

float punktezahleins;
printf("Bitte geben sie ein, welche Punktzahl für eine Eins nötig ist: \n");
scanf("%d",&punktezahleins);

float y;
float erreichtepunktzahl;
printf("Bitte geben sie ein, welche Punktzahl der Schueler erreicht hat : \n");
scanf("%d",&erreichtepunktzahl);
(erreichtepunktzahl*5)=y;
{
float Ergebnis;
while(Ergebnis!=7);
}
{
float Ergebnis;
float note;
float r;
float z;
float x;
r=punktezahleins;
y/r=x;
x+1=note;


printf("Die note ist %f\n",note);
    return EXIT_SUCCESS;
}
}


bei dem Befehl (erreichtepunktzahl*5)=y; gibt es den Fehler
Zitat:
Non-Ivalue in assigment


Wie kann ich das verhindern?

mfG Leo


Zuletzt bearbeitet von genoni am 23:28:18 03.02.2012, insgesamt 1-mal bearbeitet
Thuruk
Mitglied

Benutzerprofil
Anmeldungsdatum: 26.01.2012
Beiträge: 130
Beitrag Thuruk Mitglied 23:38:25 03.02.2012   Titel:              Zitieren

In c++ (wie auch Assembler) ist links immer der Zieloperant angegeben.

y=(e+5) schreibt den Wert (e+5) in die für y reservierte Speicherstelle und ist daher richtig.
genoni
Mitglied

Benutzerprofil
Anmeldungsdatum: 02.02.2012
Beiträge: 12
Beitrag genoni Mitglied 23:47:00 03.02.2012   Titel:              Zitieren

Herzlichen Dank, jetzt hab ich alles so:
C/C++ Code:
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
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
#include <cstdlib>
#include
<iostream>

using namespace std;

int main(int argc, char *argv[])
{
float Gesamtpunktzahl;
printf("Bitte geben sie die Gesamtpunktzahl ein: \n");
scanf("%d",&Gesamtpunktzahl);

float r;
printf("Bitte geben sie ein, welche Punktzahl für eine Sechs nötig ist: \n");
scanf("%d",&r);

float punktezahleins;
printf("Bitte geben sie ein, welche Punktzahl für eine Eins nötig ist: \n");
scanf("%d",&punktezahleins);

float y;
float erreichtepunktzahl;
printf("Bitte geben sie ein, welche Punktzahl der Schueler erreicht hat : \n");
scanf("%d",&erreichtepunktzahl);
y=(erreichtepunktzahl*5);
{
float Ergebnis;
while(Ergebnis!=7);
}
{
float Ergebnis;
float note;
float r;
float z;
float x;
r=punktezahleins;
x=(y/r);
note=(x+1);


printf("Die note ist %d\n",note);
    return EXIT_SUCCESS;
}
}
C/C++ Code:
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
#include <cstdlib>
#include
<iostream>

using namespace std;

int main(int argc, char *argv[])
{
float Gesamtpunktzahl;
printf("Bitte geben sie die Gesamtpunktzahl ein: \n");
scanf("%d",&Gesamtpunktzahl);

float r;
printf("Bitte geben sie ein, welche Punktzahl für eine Sechs nötig ist: \n");
scanf("%d",&r);

float punktezahleins;
printf("Bitte geben sie ein, welche Punktzahl für eine Eins nötig ist: \n");
scanf("%d",&punktezahleins);

float y;
float erreichtepunktzahl;
printf("Bitte geben sie ein, welche Punktzahl der Schueler erreicht hat : \n");
scanf("%d",&erreichtepunktzahl);
y=(erreichtepunktzahl*5);
{
float Ergebnis;
while(Ergebnis!=7);
}
{
float Ergebnis;
float note;
float r;
float z;
float x;
r=punktezahleins;
x=(y/r);
note=(x+1);


printf("Die note ist %d\n",note);
return EXIT_SUCCESS;
}
}
C/C++ Code:
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
#include <cstdlib>
#include
<iostream>

using namespace std;

int main(int argc, char *argv[])
{
float Gesamtpunktzahl;
printf("Bitte geben sie die Gesamtpunktzahl ein: \n");
scanf("%d",&Gesamtpunktzahl);

float r;
printf("Bitte geben sie ein, welche Punktzahl für eine Sechs nötig ist: \n");
scanf("%d",&r);

float punktezahleins;
printf("Bitte geben sie ein, welche Punktzahl für eine Eins nötig ist: \n");
scanf("%d",&punktezahleins);

float y;
float erreichtepunktzahl;
printf("Bitte geben sie ein, welche Punktzahl der Schueler erreicht hat : \n");
scanf("%d",&erreichtepunktzahl);
y=(erreichtepunktzahl*5);
{
float Ergebnis;
while(Ergebnis!=7);
}
{
float Ergebnis;
float note;
float r;
float z;
float x;
r=punktezahleins;
x=(y/r);
note=(x+1);


printf("Die note ist %d\n",note);
    return EXIT_SUCCESS;
}
}


es rechnet trotzdem nich die Note aus, sondern es erscheint gar nichts.

Ist es ein Fehler im letzten printf?

Die Berechnung sollte so erfolgen:

(erreichte Punkte{durch}Punktzahl für die Eins) +1= Note.

mfG Leo


Zuletzt bearbeitet von genoni am 23:47:54 03.02.2012, insgesamt 1-mal bearbeitet
Thuruk
Mitglied

Benutzerprofil
Anmeldungsdatum: 26.01.2012
Beiträge: 130
Beitrag Thuruk Mitglied 00:08:23 04.02.2012   Titel:              Zitieren

Zeile 27 ist mal Unsinn. Wenn du eine While-Schleife machen willst, hat die so auszusehen:

C/C++ Code:
while(true){
//do something
}
C/C++ Code:
while(true){
//do something
}
C/C++ Code:
while(true){
//do something
}


Bei dir stehen einige komische Klammern und ein Semikolon gleich nach 'while'.
genoni
Mitglied

Benutzerprofil
Anmeldungsdatum: 02.02.2012
Beiträge: 12
Beitrag genoni Mitglied 00:21:38 04.02.2012   Titel:              Zitieren

Danke, hab das jetzt mal so gemacht:

C/C++ Code:
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
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
#include <cstdlib>
#include
<iostream>

using namespace std;

int main(int argc, char *argv[])
{
float Gesamtpunktzahl;
printf("Bitte geben sie die Gesamtpunktzahl ein: \n");
scanf("%d",&Gesamtpunktzahl);

float r;
printf("Bitte geben sie ein, welche Punktzahl für eine Sechs nötig ist: \n");
scanf("%d",&r);

float punktezahleins;
printf("Bitte geben sie ein, welche Punktzahl für eine Eins nötig ist: \n");
scanf("%d",&punktezahleins);

float y;
float erreichtepunktzahl;
printf("Bitte geben sie ein, welche Punktzahl der Schueler erreicht hat : \n");
scanf("%d",&erreichtepunktzahl);
y=(erreichtepunktzahl*5);

int note;
while(true)

{
float note;
float r;
float z;
float x;
r=punktezahleins;
x=(y/r);
note=(x+1);
}
printf("Die note ist %d\n",note);
return EXIT_SUCCESS;
}
C/C++ Code:
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
#include <cstdlib>
#include
<iostream>

using namespace std;

int main(int argc, char *argv[])
{
float Gesamtpunktzahl;
printf("Bitte geben sie die Gesamtpunktzahl ein: \n");
scanf("%d",&Gesamtpunktzahl);

float r;
printf("Bitte geben sie ein, welche Punktzahl für eine Sechs nötig ist: \n");
scanf("%d",&r);

float punktezahleins;
printf("Bitte geben sie ein, welche Punktzahl für eine Eins nötig ist: \n");
scanf("%d",&punktezahleins);

float y;
float erreichtepunktzahl;
printf("Bitte geben sie ein, welche Punktzahl der Schueler erreicht hat : \n");
scanf("%d",&erreichtepunktzahl);
y=(erreichtepunktzahl*5);

int note;
while(true)

{
float note;
float r;
float z;
float x;
r=punktezahleins;
x=(y/r);
note=(x+1);
}
printf("Die note ist %d\n",note);
return EXIT_SUCCESS;
}
C/C++ Code:
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
#include <cstdlib>
#include
<iostream>

using namespace std;

int main(int argc, char *argv[])
{
float Gesamtpunktzahl;
printf("Bitte geben sie die Gesamtpunktzahl ein: \n");
scanf("%d",&Gesamtpunktzahl);

float r;
printf("Bitte geben sie ein, welche Punktzahl für eine Sechs nötig ist: \n");
scanf("%d",&r);

float punktezahleins;
printf("Bitte geben sie ein, welche Punktzahl für eine Eins nötig ist: \n");
scanf("%d",&punktezahleins);

float y;
float erreichtepunktzahl;
printf("Bitte geben sie ein, welche Punktzahl der Schueler erreicht hat : \n");
scanf("%d",&erreichtepunktzahl);
y=(erreichtepunktzahl*5);

int note;
while(true)

{
float note;
float r;
float z;
float x;
r=punktezahleins;
x=(y/r);
note=(x+1);
}
printf("Die note ist %d\n",note);
return EXIT_SUCCESS;
}


Es lässt sich zwar kompilieren, aber es rechnet die Note noch nicht aus.
mfG Leo
Thuruk
Mitglied

Benutzerprofil
Anmeldungsdatum: 26.01.2012
Beiträge: 130
Beitrag Thuruk Mitglied 00:31:33 04.02.2012   Titel:              Zitieren

Mir ist auch noch nicht klar was du da mit der Schleife machen willst.

C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>

using namespace std;

int main()
{
    double peins, perreicht;
    cout << "Bitte geben Sie die Werte der Variablen 'Punktezahl fuer die Eins' und 'Erreichte Punkte' ein: ";
    cin >> peins >> perreicht;

    cout << "Die erreichte Note ist " << perreicht/peins+1 << ".\n";

    return EXIT_SUCCESS;
}
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>

using namespace std;

int main()
{
double peins, perreicht;
cout << "Bitte geben Sie die Werte der Variablen 'Punktezahl fuer die Eins' und 'Erreichte Punkte' ein: ";
cin >> peins >> perreicht;

cout << "Die erreichte Note ist " << perreicht/peins+1 << ".\n";

return EXIT_SUCCESS;
}
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>

using namespace std;

int main()
{
    double peins, perreicht;
    cout << "Bitte geben Sie die Werte der Variablen 'Punktezahl fuer die Eins' und 'Erreichte Punkte' ein: ";
    cin >> peins >> perreicht;

    cout << "Die erreichte Note ist " << perreicht/peins+1 << ".\n";

    return EXIT_SUCCESS;
}


Das wäre eine einfache Lösung, die nach deiner Formel die Note berechnet.


Zuletzt bearbeitet von Thuruk am 00:34:07 04.02.2012, insgesamt 1-mal bearbeitet
f.-th.
Unregistrierter




Beitrag f.-th. Unregistrierter 09:10:27 04.02.2012   Titel:              Zitieren

C/C++ Code:
float note;
float r;
float z;
float x;
C/C++ Code:
float note;
float r;
float z;
float x;
C/C++ Code:
float note;
float r;
float z;
float x;


Wie oft, genoni, kommt jede dieser Zeile in deinem Quelltext vor?
Und was passiert dann?
Okay, das kann gar funktionieren aber nur, wenn der Programmierer nicht den Überblick verliert. Also, wenn bei einem Anfänger eine dieser Zeilen, oder vergleichbare vorkommen, immer überlegen, ist das irgend wo vom Auftraggeber so vorgegeben? Wenn nicht, eine übersichtlichere Lösung vorziehen.

Zur Krönung der Unübersichtlichkeit:
C/C++ Code:
int note;
...
float note;
C/C++ Code:
int note;
...
float note;
C/C++ Code:
int note;
...
float note;
:eek:
weist du was du da willst oder machst?

MfG f.-th.
f.-th.
Unregistrierter




Beitrag f.-th. Unregistrierter 09:14:28 04.02.2012   Titel:              Zitieren

Was vergessen :mad:

Also, wenn bei einem Anfänger eine dieser Zeilen oder vergleichbare mehr als einmal in einem Quelltext vorkommen immer überlegen, ist das irgend wo vom Auftraggeber so vorgegeben?

So sollte das besser sein.
genoni
Mitglied

Benutzerprofil
Anmeldungsdatum: 02.02.2012
Beiträge: 12
Beitrag genoni Mitglied 17:40:46 11.02.2012   Titel:              Zitieren

Sorry, ich war jetzt eine Woche ohne Internet abwesend.

Vielen Dank für die Antworten.

@Thuruk,

Deine Version funktioniert bestens, herzlichen Dank.

@f-th

lach*, mir ist klar dass meine Programme extrem unübersichtlich sind.
Ich habe einfach mal mit denen mir Bekannten Befehlen losgelegt und es wurden dann immer mehr Änderungen.

Wenn ich das nun ähnlich meiner Vorgabe machen möchte, muss ich dann nur diese floats anders gestalten? Oder geht das so gar nicht?

mfG Leo
f.-th.
Unregistrierter




Beitrag f.-th. Unregistrierter 18:45:38 11.02.2012   Titel:              Zitieren

Hab ich doch geschrieben, solange du den Überblick über deinen Quelltext hast bekommst du das hin :live:
Wenn du den Überblick verlierst, ... :o)

Also würde ich den Quelltext übersichtlich formatieren.
Dann solltest du dir selber im Quelltext keine Fallen aufbauen in der Form das du dich selbst austrickst.
C/C++ Code:
  float r;
  printf("Bitte geben sie ein, welche Punktzahl für eine Sechs nötig ist: \n");
  scanf("%d",&r);
C/C++ Code:
float r;
printf("Bitte geben sie ein, welche Punktzahl für eine Sechs nötig ist: \n");
scanf("%d",&r);
C/C++ Code:
  float r;
  printf("Bitte geben sie ein, welche Punktzahl für eine Sechs nötig ist: \n");
  scanf("%d",&r);

Was willst du damit erreichen? Okay, es kann sein das es nur eine mögliche Punktzahl für eine 6 gibt? Dann gibt es innerhalb von Europa Staaten wo 6 die schlechteste Zensur ist und andere wo eine 6 die beste ist. Also soll das Programm in Deutschland, in Österreich, in der Schweiz oder sonst wo spielen?

So ein wenig Hintergrund brauche ich schon, wenn das ein halbwegs gutes Programm werden soll. Ich nehme an du solltest dich auch mal eingehender damit beschäftigen. Zum einen mit dem Hintergrund und zum anderen mit den Grundlagen von C und/oder C++.
C/C++ Code:
  int note; //  siehe 4 Zeilen später
  while(true)

  {
    float note; // note hast du doch gerade als int definiert und bislang nicht gebraucht???
C/C++ Code:
int note; // siehe 4 Zeilen später
while(true)

{
float note; // note hast du doch gerade als int definiert und bislang nicht gebraucht???
C/C++ Code:
  int note; //  siehe 4 Zeilen später
  while(true)

  {
    float note; // note hast du doch gerade als int definiert und bislang nicht gebraucht???


MfG f.-th.
genoni
Mitglied

Benutzerprofil
Anmeldungsdatum: 02.02.2012
Beiträge: 12
Beitrag genoni Mitglied 19:24:51 11.02.2012   Titel:              Zitieren

Herzlichen Dank.

Das Programm soll in der Schweiz spielen, wo 6 die höchste und 1 die tiefste Note ist. Das mit dem Note hab ich gar nicht gesehen :( . Wie gesagt, ich hab erst vor 2 Wochen mit C angefangen und kenne darum nur wenige Befehle. Als dann eine Bekannte gesagt hat ihr fehle ein Programm das Noten berechnet, habe ich gesagt ich könne versuchen eines zu basteln. :)

mfG Leo
f.-th.
Unregistrierter




Beitrag f.-th. Unregistrierter 21:59:02 11.02.2012   Titel:              Zitieren

Du kennst immer noch nicht den Unterschied zwischen C und C++.

Hier mal ein schnell zusammen genagelter C-Quelltext:
C/C++ Code:
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
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
// punkt2note - swiss
// hier Punkte fest vorgegeben -> add Punkte für Note aus externe Datei lesen.
// 2012feb11


#include
<stdio.h>

int main()
{
    int punkte;
    int pkt2 = 25;
    int pkt3 = 42;
    int pkt4;    // ergänzen
    int pkt5;
    int pkt6 = 90;
   
    printf("Bitte geben Sie hier die erreichten Punkte ein: ");
    scanf("%d", &punkte);
   
    if( punkte < pkt2 )
        printf("%d-> eins \n", punkte);
    else if( punkte < pkt3 )
        printf("%d-> zwei\n", punkte);
    else
        printf("%d-> sechs\n", punkte);
}
C/C++ Code:
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
// punkt2note - swiss
// hier Punkte fest vorgegeben -> add Punkte für Note aus externe Datei lesen.
// 2012feb11


#include
<stdio.h>

int main()
{
int punkte;
int pkt2 = 25;
int pkt3 = 42;
int pkt4; // ergänzen
int pkt5;
int pkt6 = 90;

printf("Bitte geben Sie hier die erreichten Punkte ein: ");
scanf("%d", &punkte);

if( punkte < pkt2 )
printf("%d-> eins \n", punkte);
else if( punkte < pkt3 )
printf("%d-> zwei\n", punkte);
else
printf("%d-> sechs\n", punkte);
}
C/C++ Code:
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
// punkt2note - swiss
// hier Punkte fest vorgegeben -> add Punkte für Note aus externe Datei lesen.
// 2012feb11


#include
<stdio.h>

int main()
{
    int punkte;
    int pkt2 = 25;
    int pkt3 = 42;
    int pkt4;    // ergänzen
    int pkt5;
    int pkt6 = 90;
   
    printf("Bitte geben Sie hier die erreichten Punkte ein: ");
    scanf("%d", &punkte);
   
    if( punkte < pkt2 )
        printf("%d-> eins \n", punkte);
    else if( punkte < pkt3 )
        printf("%d-> zwei\n", punkte);
    else
        printf("%d-> sechs\n", punkte);
}

kannst das ja noch ergänzen.
Thuruk
Mitglied

Benutzerprofil
Anmeldungsdatum: 26.01.2012
Beiträge: 130
Beitrag Thuruk Mitglied 00:05:55 12.02.2012   Titel:              Zitieren

Und man könnte die Punkte noch in einem Array anordnen, das dann per for-Schleife nach der richtigen Note durchsucht wird.

C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>

using namespace std;

int main()
{
    unsigned short pkt[5]={10, 20, 30, 40, 50}, j=0, punkte=0; //einlesen/im Quellcode angeben

    cout << "Notenschluessel:\n";

    for(;j<5;++j){
        cout << pkt[j] << ": " << j+2 << '\n';
    }

    for(;;){
        cin >> punkte;
        for(j=1;punkte>=pkt[j-1];++j) {}
        cout << "Erreichte Note: " << j << '\n';
    }
}
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>

using namespace std;

int main()
{
unsigned short pkt[5]={10, 20, 30, 40, 50}, j=0, punkte=0; //einlesen/im Quellcode angeben

cout << "Notenschluessel:\n";

for(;j<5;++j){
cout << pkt[j] << ": " << j+2 << '\n';
}

for(;;){
cin >> punkte;
for(j=1;punkte>=pkt[j-1];++j) {}
cout << "Erreichte Note: " << j << '\n';
}
}
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>

using namespace std;

int main()
{
    unsigned short pkt[5]={10, 20, 30, 40, 50}, j=0, punkte=0; //einlesen/im Quellcode angeben

    cout << "Notenschluessel:\n";

    for(;j<5;++j){
        cout << pkt[j] << ": " << j+2 << '\n';
    }

    for(;;){
        cin >> punkte;
        for(j=1;punkte>=pkt[j-1];++j) {}
        cout << "Erreichte Note: " << j << '\n';
    }
}


;)
f.-th.
Unregistrierter




Beitrag f.-th. Unregistrierter 01:39:28 12.02.2012   Titel:              Zitieren

Muss zugeben das ich das nicht ganz ausgefeilt hab ;)

Aber zum einen soll der Beitragsersteller auch noch etwas zu tun haben :D
Und zum anderen, denke ich das das Programm noch ein wenig leistungsfähiger und damit umfangreicher werden soll.

Was man noch einbauen kann:
Ein Schüler hat mehrere Arbeiten abgeliefert, die mit unterschiedlichen Schlüsseln bewertet werden und wo am Ende z.B. eine Zeugnisnote herauskommen soll.

Eine Schleife um das Kernprogramm mit Menu wäre auch noch eine Option.

Es gibt da sicher noch andere Varianten :live:

MfG f.-th.
anneXus
Mitglied

Benutzerprofil
Anmeldungsdatum: 15.01.2012
Beiträge: 8
Beitrag anneXus Mitglied 23:59:03 13.02.2012   Titel:              Zitieren

genoni schrieb:
[...]bis jetzt arbeitete ich immer auf dem Mac und nun habe ich mir per Bootcamp eine Windows-Partition geholt.


Vielleicht weisst du das einfach noch nicht daher sage ich es einfach mal: du kannst auch auf deinem Mac einen C++ Compiler installieren.

Gruss,
anneXus
C/C++ Forum :: DOS und Win32-Konsole ::  C++ Anfänger- Programm funktoniert nicht!   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.