Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
-- Praktische Informatik (http://www.informatikerboard.de/board/board.php?boardid=6)
--- Implementierungsproblem (http://www.informatikerboard.de/board/thread.php?threadid=3737)


Geschrieben von Kevin33 am 22.10.2017 um 15:49:

 

hmm ok . Wieso soll man goalsreceived.total usw weg lassen ?
Ich dachte ,dass das auch zum Endergebnis sozusagen gehört

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:
void CTeam::addResult(unsigned int goalsScored,unsigned int goalsReceived){


	if(goalsScored>goalsReceived ){

		m_winsTotal = m_winsTotal + 1 ;


	}
	if(goalsScored<goalsReceived   ){

			m_lostTotal = m_lostTotal + 1;


		}
	if( goalsScored== goalsReceived){

				m_equalTotal= m_equalTotal +1;
			}

}








Geschrieben von as_string am 22.10.2017 um 16:08:

 

Ich hab nicht gesagt, dass man das weglassen soll, wo liest Du das denn raus??? Ich habe nur gesagt, dass die beiden Werte nichts damit zu tun haben, ob das aktuelle Spiel gewonnen ist oder nicht!
Und was soll denn überhaupt goalsreceived.total sein???
Das hier
m_winsTotal = m_winsTotal + 1 ;
entspricht
m_winsTotal += 1;
was wiederum dem hier entspricht:
m_winsTotal++;
Alle diese Anweisungen zählen die Variable um eins hoch und das ist hier auch richtig.

Wenn Du aber die Gesamttore zählen willst, musst Du diese ja nicht um 1hoch zählen, sondern eben um die Anzahl der jeweils gefallenen Tore. Also nicht eine 1 addieren sondern den jeweiligen Zahlenwert. Verstehst Du den Unterschied oder ist selbst sowas triviales für Dich schon zu viel?



Geschrieben von Kevin33 am 22.10.2017 um 16:18:

 

Dann hatte ich dich wohl falsch verstanden .
Weil dauernd gesagt wird , ich hätte keinen Plan , dachte dass wäre falsch . Aber ok .

m_goalsReceivedTotal++; müsste ich nicht this. ...machen ?
Wieso soll ich überhaupt die Gesamtrore aufsummieren ? Wo steht das?

Ich dachte nur die Variablen die ich gemacht habe



Geschrieben von Kevin33 am 22.10.2017 um 17:13:

 

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:
void CTeam::addResult(unsigned int goalsScored,unsigned int goalsReceived){


    if(goalsScored>goalsReceived &&  m_goalsScoredTotal>m_goalsReceivedTotal){

        m_winsTotal += 1;
        m_winsTotal = m_winsTotal+m_goalsScoredTotal;


    }
    if(goalsScored<goalsReceived &&  m_goalsScoredTotal<m_goalsReceivedTotal  ){

            m_lostTotal += 1;
            m_lostTotal= m_lostTotal+m_goalsReceivedTotal;



        }
    if(m_goalsScoredTotal==m_goalsReceivedTotal && goalsScored== goalsReceived){

                m_equalTotal += 1;
            }

}





Geschrieben von Kevin33 am 22.10.2017 um 17:17:

 

m_goalsScoredTotal += goalsScored;

m_goalsReceivedTotal += goalsReceived;

Oder ist der letzten Aufgabenteil so gemeint ?



Geschrieben von as_string am 22.10.2017 um 19:27:

 

Zitat:
Original von Kevin33
m_goalsScoredTotal += goalsScored;

m_goalsReceivedTotal += goalsReceived;

Oder ist der letzten Aufgabenteil so gemeint ?

Ja, natürlich! Was denn sonst???



Geschrieben von as_string am 22.10.2017 um 19:37:

 

Zitat:
Original von Kevin33
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:
void CTeam::addResult(unsigned int goalsScored,unsigned int goalsReceived){


    if(goalsScored>goalsReceived &&  m_goalsScoredTotal>m_goalsReceivedTotal){

        m_winsTotal += 1;
        m_winsTotal = m_winsTotal+m_goalsScoredTotal;


    }
    if(goalsScored<goalsReceived &&  m_goalsScoredTotal<m_goalsReceivedTotal  ){

            m_lostTotal += 1;
            m_lostTotal= m_lostTotal+m_goalsReceivedTotal;



        }
    if(m_goalsScoredTotal==m_goalsReceivedTotal && goalsScored== goalsReceived){

                m_equalTotal += 1;
            }

}



Was soll denn das hier überhaupt???:
code:
1:
2:
        m_winsTotal += 1;
        m_winsTotal = m_winsTotal+m_goalsScoredTotal;

Du addierst zuerst 1 und dann nochmal m_goalsScoredTotal zu m_winsTotal??? Also letztlich addierst Du m_goalsScoredTotal+1 zu dem Wert, der in m_winsTotal ist?
Jetzt mal im Ernst: Hast Du auch nur irgendetwas dabei Dir gedacht oder hast Du das einfach mal so hingerotzt?
Mal abgesehen davon, dass das im if ja auch wieder überhaupt keinen Sinn ergibt, wie ich Dir jetzt schon mehrfach versucht hatte zu erklären: Du sollst im if() eine Bedingung haben, die wahr wird, wenn ein Spiel gewonnen ist, im nächsten, wenn es verloren ist, im letzten, wenn es unentschieden ist. Verstehst Du das wenigstens? Warum kommst Du dann auf die Idee hier immer noch die Total-Variablen mit zu überprüfen? Das muss man doch mit normalem gesunden Menschverstand schon verstehen dass das einfach nur Blödsinn ist!
Ich habe das ja noch nie gesagt, aber Du bist wirklich ein hoffnungsloser Fall. Da Du ja auch keinen einzigen Ratschlag befolgen willst, wird sich daran auch nie etwas ändern.

Gruß
Marco



Geschrieben von Kevin33 am 22.10.2017 um 20:46:

 

Aber dann müssen doch diese if Bedingungen richtig sein oder ?
code:
1:
2:
3:
4:
5:
6:
7:
8:
 if(goalsScored>goalsReceived Spiel gewonnen 

goalsScored<goalsReceived  Mehr Tore kassiert ,also verloren

goalsScored== goalsReceived Gleichstand 



Sind diese if Bedingungen jetzt richtig?
Aus meiner Sicht schon großes Grinsen



Geschrieben von as_string am 22.10.2017 um 22:09:

 

So sind die Bedingungen, richtig.
Ohne Dich noch mehr verwirren zu wollen: Du solltest hier mit if() {} else if() {} else{} arbeiten. Dann wird das zweite if nur überprüft, wenn das erste nicht zugetroffen hat und die letzte Bedingung ausgeführt, wenn die ersten beiden ifs nicht wahr geworden sind. Wenn das eine weder kleiner noch größer als das andere ist, muss es ja gleich sein, so dass Du Dir die letzte Überprüfung dann sparen könntest.
Aber das ist nicht weiter wichtig, wenn Du das nicht gleich verstanden hast, dann lass das einfach erstmal so, wie Du es jetzt hast. Das ist schon auch richtig.

So, jetzt musst Du also überlegen, was passieren soll in den einzelnen Fällen. Du sollst ja im Falle eines Sieges die eine Member-Variable für die Summe aller gewonnen Spiele hoch zählen, im zweiten Fall die für die verlorenen und im dritten dann die für unentschieden.
Das Hochzählen mach am besten mit ++, also
code:
1:
var++;
Das ist die kürzeste Form, eine Ganzzahl-Variable um eins hoch zu zählen. Keiner schreibt
code:
1:
var += 1;
oder sogar
code:
1:
var = var + 1
wenn das auch alles richtig ist.

Unabhängig von dem if musst Du die beiden total-Variablen für die Tor/Gegentor-Summen jeweils um die Anzahl der für dieses Spiel erzielten Tore bzw. kassierten Gegentore hochzählen.

Dann endlich wären wir eventuell einen Schritt weiter... unglücklich

Gruß
Marco



Geschrieben von Kevin33 am 22.10.2017 um 22:17:

 

Zuerst mal noch eine Frage das mit dem m_lostTotal+=1 , sollte ich doch machen oder ?

Das was du willst ist ja : m_goalsReceivedTotal++;
Und in dem anderen Fall m_goalsScoredTotal++, machen .

Muss ich diese beide Sachen zusätzlich machen ?

Weil das stand ja nicht so in der Aufgabe großes Grinsen



Geschrieben von Kevin33 am 22.10.2017 um 22:28:

 

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:
44:
45:
46:
47:
48:
49:
50:

#include<iostream>
using namespace std;
#include<string>
#include"CTeam.h"

CTeam::CTeam(string name ){

    m_teamName = name;
}

std::string CTeam::getName(){
    return m_teamName;

    }

void CTeam::addResult(unsigned int goalsScored,unsigned int goalsReceived){


    if(goalsScored>goalsReceived ){

        m_winsTotal += 1;
        m_goalsScoredTotal += goalsScored;
        m_goalsScoredTotal++;




    }
    if(goalsScored<goalsReceived   ){

            m_lostTotal += 1;
            m_goalsReceivedTotal += goalsReceived;
            m_goalsReceivedTotal++;



        }
    if( goalsScored== goalsReceived){

                m_equalTotal += 1;
                m_equalTotal++;
            }

}




So würde das dann als Code aussehen .
Die fragen sind ja im vorletzten Beitrag LOL Hammer



Geschrieben von Kevin33 am 22.10.2017 um 23:11:

 

Ich habe den weiteren Aufgabenteil auch schon ein wenig bearbeitet :

Mal sehen ob ich die Funktion richtig implementiert hab

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
unsigned int const CTeam::getTotalPoints(){

	int tmp = 0;
	 if(m_goalsScoredTotal>m_goalsReceivedTotal ){

		 tmp += 3;
		 return tmp;
	 }

	 if(m_goalsScoredTotal<m_goalsReceivedTotal   ){

		 return tmp;

		 }

	 if(m_goalsScoredTotal==m_goalsReceivedTotal   ){
		 tmp += 1;
		 return tmp;
	 }




Geschrieben von Kevin33 am 22.10.2017 um 23:13:

 

Oder soll ich es so : return tmp +=3 ; ausgeben bei der getter Methode ?



Geschrieben von as_string am 22.10.2017 um 23:20:

 

Zitat:
Original von Kevin33
Zuerst mal noch eine Frage das mit dem m_lostTotal+=1 , sollte ich doch machen oder ?

Das was du willst ist ja : m_goalsReceivedTotal++;
Und in dem anderen Fall m_goalsScoredTotal++, machen .

Muss ich diese beide Sachen zusätzlich machen ?

Weil das stand ja nicht so in der Aufgabe großes Grinsen

Nein, Du verstehst ja schon wieder gar nichts! Was hab ich oben geschrieben, was macht += 1, was macht ++? Was willst Du mit den einzelnen Membervariablen machen?

Nochmal von vorne: mache mir zuerst eine Tabelle schreibe in die Spalten die fünf Membervariablen. Dann mache vier Zeilen mit 3:2 gewonnen, 2:2 unentschieden, 1:2 verloren und 0:0 unentschieden. Schreibe für die 4 Ergebnisse jeweils die Werte der Variablen auf, so wie wenn diese Spiele nacheinander stattgefunden hätten.

Mach die Tabelle, dann sehen wir weiter!



Geschrieben von Kevin33 am 22.10.2017 um 23:26:

 

Ja aber hier steht es doch so oder nicht?

Wenn die Anzahl der eigenen Tore größer ist als die Anzahl der Gegentore, wird das das Attribut m_winsTotal um 1 erhöht, bei mehr Gegentoren als eigenen Toren das Attribut m_lostTotal und bei gleich vielen Toren das Attribut m_equalTotal.

Was du meinst ja ist ja ,das man die Summe:

m_goalsScoredTotal++; hochzählt .


Forensoftware: Burning Board, entwickelt von WoltLab GmbH