Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 02:50

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Frage] Modulo

Discussion on [Frage] Modulo within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
KingwondA's Avatar
 
elite*gold: 312
Join Date: May 2013
Posts: 449
Received Thanks: 45
[Frage] Modulo

Heey,
ich habe eine Frage zu folgendem Beispiel, nämlich wie erkennt Modulo die geraden Zahlen?

Was soll das Programm machen?
Das Programm soll einen Countdown darstellen, und wenn die Hälfte erreicht ist eine Meldung ausgeben.
Der Countdown soll nur ungerade Zahlen annehmen, wenn eine gerade Zahl eingegeben wird soll eine Fehlermeldung ausgegeben werden.

Kann mir wer erklären wie Modulo das berechnet?

Code:
Code:
#include <iostream>

using namespace std;

// Hauptprogramm
//
int main ()
{
	// Variablen
	//
	int CountdownStart; // Startwert des Countdown

	// Abfrage des Startwertes
	cout << "Startwert des Countdowns: ";
	cin >> CountdownStart;

	// Bei geradem Wert das Programm verlassen
	if (CountdownStart%2 == false)
	{
		cout << "Es wurde ein gerader Wert eingegeben " << endl;
	}
	// Ansonsten weiter
	else
	{
		// Schleife für den Countdown
		for (int i=CountdownStart; i>=0; i--)
		{
			cout << "Countdown: " << i << endl;

			// Meldung, wenn die Hälfte erreicht wurde
			if (i == CountdownStart/2 + 1)
				cout << "Die Haelfte ist vorbei" << endl;
		}
	}

	return 0;
}
MfG nico
KingwondA is offline  
Old 03/04/2014, 12:46   #2
 
elite*gold: 46
Join Date: Oct 2010
Posts: 782
Received Thanks: 525
false wird in c++ als 0 angesehen. Wenn der Rest von einer Teilung durch 2 0 ist, ist die Zahl gerade.
th0rex is offline  
Thanks
1 User
Old 03/04/2014, 13:14   #3
 
Padmak's Avatar
 
elite*gold: 58
Join Date: Jun 2008
Posts: 2,311
Received Thanks: 8,420
Das Programm sollte aber == 0 überprüfen und nicht == false
Es mag so funktionieren, ist aber nicht standardkonform

Padmak
Padmak is offline  
Old 03/04/2014, 13:31   #4


 
buFFy!'s Avatar
 
elite*gold: 1826
Join Date: Mar 2009
Posts: 4,310
Received Thanks: 6,287
Kleine Anmerkung zum Code selbst:

using namespace std; ist schlechter Stil. Lieber std::cout und std::cin schreiben.
buFFy! is offline  
Old 03/04/2014, 16:11   #5
 
elite*gold: 3
Join Date: Apr 2009
Posts: 6,952
Received Thanks: 3,546
Quote:
Originally Posted by buFFy! View Post
Kleine Anmerkung zum Code selbst:

using namespace std; ist schlechter Stil. Lieber std::cout und std::cin schreiben.
Wieso ist das benutzen von using namespace std; nicht so gut?
Mirco' is offline  
Old 03/04/2014, 16:19   #6
 
Padmak's Avatar
 
elite*gold: 58
Join Date: Jun 2008
Posts: 2,311
Received Thanks: 8,420


Wurde schon das ein oder andere Mal hier erwähnt

Padmak
Padmak is offline  
Thanks
1 User
Old 03/04/2014, 16:48   #7


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
Quote:
Originally Posted by Padmak View Post
Das Programm sollte aber == 0 überprüfen und nicht == false
Es mag so funktionieren, ist aber nicht standardkonform

Padmak
Doch, das ist standardkonform, in C++ gibt es eine implizite Umwandlung von bool zu int.
Ist auf diese Art nur unschön weil missverständlich.
MrSm!th is offline  
Thanks
3 Users
Old 03/04/2014, 17:04   #8
 
KingwondA's Avatar
 
elite*gold: 312
Join Date: May 2013
Posts: 449
Received Thanks: 45
Also lieber 0 als false verwenden. OK
KingwondA is offline  
Old 03/04/2014, 17:11   #9

 
snow's Avatar
 
elite*gold: 724
Join Date: Mar 2011
Posts: 10,479
Received Thanks: 3,318
Quote:
Kann mir wer erklären wie Modulo das berechnet?
Modulo gibt den Rest aus, der bei einer Division entsteht. 3 % 2 (3 / 2 == 1, Rest 1) ergibt z.B. 1, 4 % 2 (4 / 2 == 2, Rest 0) ergibt 0.

Code:
if (CountdownStart%2 == false)
false ist hier gleichzusetzen mit 0, somit wird überprüft, ob der Rest von CountdownStart / 2 == 0 ist.
snow is offline  
Thanks
1 User
Old 03/04/2014, 17:35   #10
 
KingwondA's Avatar
 
elite*gold: 312
Join Date: May 2013
Posts: 449
Received Thanks: 45
Quote:
Originally Posted by snow911 View Post
Modulo gibt den Rest aus, der bei einer Division entsteht. 3 % 2 (3 / 2 == 1, Rest 1) ergibt z.B. 1, 4 % 2 (4 / 2 == 2, Rest 0) ergibt 0.

Code:
if (CountdownStart%2 == false)
false ist hier gleichzusetzen mit 0, somit wird überprüft, ob der Rest von CountdownStart / 2 == 0 ist.
Ahhhh
Also Modulo teilt die Aufgabe, gibt aber nur den Rest aus.
KingwondA is offline  
Reply


Similar Threads Similar Threads
Modulo Schleife oder so
01/22/2013 - C/C++ - 6 Replies
N'Abönd, ich würde gerne einen Programm schreiben was sagen soll ob x eine Primzahl ist oder nicht. Dafür wollte ich fragen da ich erst neu angefangen habe mit c++ zu arbeiten welchen Befehl ich am besten nehmen soll. Ich will das der Nutzer eine Zahl eingibt und das Programm x%2 x%3 x%4 teilt und wenn der Rest 0 ist -> keine Primzahl halt mit If x=0 goto blubb und else x ist eine Primzahl. Weis vllt jemand wie ich das am besten machen kann mit "do" vlt?



All times are GMT +1. The time now is 02:52.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.