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

StupidWiseMan

Frischling

  • »StupidWiseMan« ist der Autor dieses Themas

Beiträge: 12

Beruf: Gymnasiast

  • Private Nachricht senden

1

06.01.2014, 14:45

C++ If Problem

Guten Tag,

ich habe folgendes Problem und suche dringend nach Hilfe und sollte erwähnen, dass ich erst seit Gestern programmiere. Jedoch habe ich eine sehr gute Lektüre. Ich habe mehrere Endlosschleifen ineinander verschachtelt, die über eine If-Bedinungen beendet werden, da ich eine Software zur Annäherungsrechnung entwickle. Die If-Bedinung tritt die ganze Zeit ein auch wenn sie nicht stimmt.

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
    for (;;){
    if (loop == 0){
    schleife1 = schleife1-0.01;}
    if (loop == 1){
    schleife2 = schleife2-0.01;}
    finalif1 = schleife1*schleife1;
    finalif2 = schleife2*schleife2;
    finaldone = finalif1+finalif2;
    cin.get();
    if (i == 1 && I == 0){
    I = 1;
    i = i+1;
    system("cls");
    cout << "Bitte warten.\n" << schleife1 << "   " << schleife2 << "\n" << finalif1 << "   " << finalif2 << "\n" << finaldone << "   " << a*a << "\n";}
    if (i == 2 && I == 0){
    I = 1;
    i = i+1;
    system("cls");
    cout << "Bitte warten..\n" << schleife1 << "   " << schleife2 << "\n" << finalif1 << "   " << finalif2 << "\n" << finaldone << "   " << a*a << "\n";}
    if (i == 3 && I == 0){
    I = 1;
    i = 1;
    system("cls");
    cout << "Bitte warten...\n" << schleife1 << "   " << schleife2 << "\n" << finalif1 << "   " << finalif2 << "\n" << finaldone << "   " << a*a << "\n";}
    if (loop == 0){
    loop = 1;}
    else{
    loop = 0;}
    I = 0;
    if (finaldone == a*a){
    goto ende;}
    //if (finaldone == a*a){
    ende:{
    cout << "Seite A:" << schleife1 << "\n";
    cout << "Seite B:" << schleife2 << "\n";
    cout << "Ja   " << "\n\n";}}}}
    //cout << finalif1 << " " << finalif2; 
    return 0;


Variablen und #includes sind alle gegeben ich habe nur den Fehlerhaften Teil eingefügt. Bitte die Kommentare ignorieren damit habe ich meisstens Test-Funktionen eingefügt die mir die Werte anzeigten und ich somit sehen konnte ob es ein Zahlendreher oder Programmierfehler ist.

Vielen Dank

Tankard

Treue Seele

Beiträge: 192

Beruf: Student, Hardware- und Softwareentwicklung als wissenschaftliche Hilfskraft

  • Private Nachricht senden

2

06.01.2014, 14:48

goto und verschachtelte Endlosschleifen die durch IF Abfragen beendet werden... schmeiß deine Lektüre weg, falls du daher solche Ideen hast. Außerdem ist es gerade bei solchen Verschachtelungen hilfreich, wenn du die Einrückungen beachten würdest.

StupidWiseMan

Frischling

  • »StupidWiseMan« ist der Autor dieses Themas

Beiträge: 12

Beruf: Gymnasiast

  • Private Nachricht senden

3

06.01.2014, 14:49

ps: die If-Bedingung in Zeile 30 ist die fehlerhafte.

StupidWiseMan

Frischling

  • »StupidWiseMan« ist der Autor dieses Themas

Beiträge: 12

Beruf: Gymnasiast

  • Private Nachricht senden

4

06.01.2014, 14:51

goto und verschachtelte Endlosschleifen die durch IF Abfragen beendet werden... schmeiß deine Lektüre weg, falls du daher solche Ideen hast. Außerdem ist es gerade bei solchen Verschachtelungen hilfreich, wenn du die Einrückungen beachten würdest.

Ich habe alle Einrückungen mehrfach überprüft scheint alles korrekt und das goto funktionierte auch bis ich ein paar Änderungen vornahm, die If-Bedingung in Zeile 30 ist einfach wie ignoriert..

Tankard

Treue Seele

Beiträge: 192

Beruf: Student, Hardware- und Softwareentwicklung als wissenschaftliche Hilfskraft

  • Private Nachricht senden

5

06.01.2014, 14:52

ps: die If-Bedingung in Zeile 30 ist die fehlerhafte.


Da können wir dir nicht helfen, da du uns nicht sagst was a sein soll.

Tankard

Treue Seele

Beiträge: 192

Beruf: Student, Hardware- und Softwareentwicklung als wissenschaftliche Hilfskraft

  • Private Nachricht senden

6

06.01.2014, 14:57

Ich habe alle Einrückungen mehrfach überprüft scheint alles korrekt und das goto funktionierte auch bis ich ein paar Änderungen vornahm, die If-Bedingung in Zeile 30 ist einfach wie ignoriert..


Ich sehe keine Einrückungen in dem von dir geposteten Code. Das ist schwer zu lesen.

In Zeile 30 steht für uns "Unbekannt == Unbekannt * Unbekannt".

StupidWiseMan

Frischling

  • »StupidWiseMan« ist der Autor dieses Themas

Beiträge: 12

Beruf: Gymnasiast

  • Private Nachricht senden

7

06.01.2014, 15:19

Ok hm bei mir steht da alles.
Naja das mit dem goto ist auch laut meiner Lektüre nich so toll. Jedoch funzte es bis ich diese Schleife hier einfügte. Ich habe per Taschenrechner die Werte überprüft und wenn dann in Zahlen gesagt 240=243,31 korrekt sein soll und 240=240 auch korrekt ist, was es ja auch ist, aber die Schleife nie endet bzw return 0 erreicht, obwohl es in dem Block der sich immer durchgeführten If befindet, mit und ohne goto es läuft einfach weiter. Das passierte sogar als ich die Bedingung bei for einsetzte.

Tankard

Treue Seele

Beiträge: 192

Beruf: Student, Hardware- und Softwareentwicklung als wissenschaftliche Hilfskraft

  • Private Nachricht senden

8

06.01.2014, 15:25

Unser Problem ist dass du nicht gepostet hast was sich hinter den unvorteilhaft benannten Variablen verbirgt, das der Code schlecht formatiert ist und das es sich wohl um einen der unvorteilhaftesten Codeschnipsel handelt die ich je gesehen hab. Ich hab nichtmals im Ansatz eine Ahnung was das überhaupt tun soll.

Poste ein komplettes Beispiel was anständig formatiert ist und erklär was dort passieren soll und was wirklich passiert und dann kann man dir auch dabei helfen.

FSA

Community-Fossil

  • Private Nachricht senden

9

06.01.2014, 15:27

Uff
Fassen wir nochmal zusammen:
1. Lege deine Lektüre weg, wenn das so alles da drinnen steht
2. Zeig uns doch bitte deinen ganzen Code mit Einrückung

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

StupidWiseMan

Frischling

  • »StupidWiseMan« ist der Autor dieses Themas

Beiträge: 12

Beruf: Gymnasiast

  • Private Nachricht senden

10

06.01.2014, 17:58

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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#include <iostream>
using namespace std;
#include <math.h>
#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main() {
    double a;   //Gegebene Seite
    int d;  //wahrheitswert
    int x;  //formelwert
    double y;   //zwischeninteger nr.1
    double z;   //zwischeninteger nr.2
    double z1;  //zwischeninteger nr.3
    double z2;  //zwischeninteger nr.4
    double z3;
    double z4;
    double z5;
    double z6;
    double z7;
    double z8;
    double z9;
    double test1;
    double test2;
    double test3;
    double f;
    double f1;
    long double schleife1;
    long double schleife2;
    long double finalif1;
    long double finalif2;
    int i;
    int I;
    int loop;
    long double finaldone;
    for (;;){
    loop = 0;
    x = 2;
    i = 1;
    I = 0;
    cout.precision(15);
    cout << "Bitte die Seitenlänge von A angeben:\n";
    cin >> a;
    if(a >= 0)      //Hier wird ein Errorloop benötigt für else
    cout << "Ist die gegebene Seite die Hypothenuse? (0=n/1=j)\n"; // auf ja/nein tastenbestätigung ändern
    cin >> d;
    if(!(d != 0 && d != 1))     //Hier wird ein Errorloop benötigt für else
    if(d == 1)
    y = pow(a, x);
    z = y/2;
    z1 = sqrt(z);
    z6 = z1*10;
    z7 = z6+0.5;
    z8 = floor(z7);
    z9 = z8/10;
    z2 = z9/10;
    z3 = pow(z2, x);
    z4 = z3*2;
    z5 = sqrt(z4);
    f1 = 10*z5+0.5;
    f = floor(f1)/10;
    test1 = pow(z9-f, x);
    test2 = pow(z9+f, x);
    test3 = test1+test2;
    schleife1 = z9-f;
    schleife2 = z9+f;
    if (test3 == a*a){
    cout << "Seite A:" << z9-f << "\n";
    cout << "Seite B:" << z9+f << "\n";
    cout << "Ja   " << test3 << "\n\n";}
    if (!(test3 == a*a)){
    //cout << "Nein   " << test3 << "   " << f1 << "\n\n";
    schleife1 = schleife1*10;
    schleife1 = schleife1+0.5;  
    schleife1 = floor(schleife1);
    schleife1 = schleife1/10;
    schleife2 = schleife2*10;
    schleife2 = schleife2+0.5;
    schleife2 = floor(schleife2);
    schleife2 = schleife2/10;
    for (;;){
    if (loop == 0){
    schleife1 = schleife1-0.01;}
    if (loop == 1){
    schleife2 = schleife2-0.01;}
    finalif1 = schleife1*schleife1;
    finalif2 = schleife2*schleife2;
    finaldone = finalif1+finalif2;
    cin.get();
    if (i == 1 && I == 0){
    I = 1;
    i = i+1;
    system("cls");
    cout << "Bitte warten.\n" << schleife1 << "   " << schleife2 << "\n" << finalif1 << "   " << finalif2 << "\n" << finaldone << "   " << a*a << "\n";}
    if (i == 2 && I == 0){
    I = 1;
    i = i+1;
    system("cls");
    cout << "Bitte warten..\n" << schleife1 << "   " << schleife2 << "\n" << finalif1 << "   " << finalif2 << "\n" << finaldone << "   " << a*a << "\n";}
    if (i == 3 && I == 0){
    I = 1;
    i = 1;
    system("cls");
    cout << "Bitte warten...\n" << schleife1 << "   " << schleife2 << "\n" << finalif1 << "   " << finalif2 << "\n" << finaldone << "   " << a*a << "\n";}
    if (loop == 0){
    loop = 1;}
    else{
    loop = 0;}
    I = 0;
    if (finaldone == a*a){
    goto ende;}
    //if (finaldone == a*a){
    ende:{
    cout << "Seite A:" << schleife1 << "\n";
    cout << "Seite B:" << schleife2 << "\n";
    cout << "Ja   " << "\n\n";}}}}
    //cout << finalif1 << " " << finalif2; 
    return 0;
}

ich brauche diese software um Abweichungen der Formel auszugleichen die jedoch nahe an das eigentlich Ergebnis herantreten.

Werbeanzeige