Zeige Beiträge 1 bis 11 von 11 Treffern |
|
Thema: Putty + Matlab + X11 forwarding? |
|
Schönen Dank, ich werde mich an die Uni richten und mal nachfragen!
Die Alternative schaue ich mir auf jeden Fall mal an, klingt ja sehr interessant.
Viele Grüße
Dragon_Fighter
|
|
Thema: Monatslänge/ Schaltjahr (C++-Aufgaben zu "Bedingte Anweisungen") |
|
Hallo!
Danke,
das mit dem Array muss ich noch nach hinten schieben, das hatten wir noch nicht behandelt.
Und zu der zweiten Anmerkung von Dir: Da habe ich wohl Tomaten vor den Augen gehabt.
Aber vielleicht lasse ich die auch stehen, weil es (für mich) dann inhaltlich klarer ist.
|
|
Thema: Monatslänge/ Schaltjahr (C++-Aufgaben zu "Bedingte Anweisungen") |
|
Meine Frage:
Hey!
(1) Schreiben Sie ein Programm monatslaenge, das den Anwender auffordert, eine ganze Zahl zwischen 1 und 12 einzugeben, und das dann angibt, wie viele Tage der entsprechende Monat hat.
Hierbei soll die Zahl 1 für Januar mit 31 Tagen, die Zahl 2 für Februar mit 28 Tagen usw. stehen.
Falls eine Zahl eingelesen wird, die keinem Monat entspricht, soll eine entsprechende Fehlermeldung ausgegeben werden.
(2) Schreiben Sie ein Programm Schaltjahr, das eine Jaheszahl einliest und bestimmt, ob die eingegebene Jahreszahl zu einem Schaltjahr gehört.
Hinweis: Zunächst sind alle durch 4 teilbaren Jahreszahlen Schaltjahre. Ausgenommen sind lediglich die Sekulärkjahre XX00, die nicht durch 400 teilbar sind: So war weder 1800 noch 1900 ein Schaltjahr, aber 2000 schon.
Meine Ideen:
Hier meine Versuche:
Zu (i) mit switch:
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:
|
#include <iostream>
using namespace std;
int main() {
int a;
cout << "Bitte geben Sie eine ganze Zahl zwischen 1 und 12 ein (1 und 12 inklusive)." << endl;
cin >> a;
switch(a) {
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
cout << "Der Monat " << a << " hat 31 Tage." << endl;
break;
case 2:
cout << "Der Monat " << a << " hat 28 Tage." << endl;
break;
case 4: case 6: case 9: case 11:
cout << "Der Monat " << a << " hat 30 Tage." << endl;
break;
default:
cout << "Sie haben keine ganze Zahl zwischen 1 (inklusive) und 12 (inklusive) eingegeben!" << endl;
}
} |
|
Bei mir funktioniert das.
Zu (ii):
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() {
int jahr;
cout << "Bitte geben Sie eine Jahreszahl ein." << endl;
cin >> jahr;
if( ((jahr % 4 == 0) && (jahr % 100 != 0)) || ((jahr % 100 == 0) && (jahr % 400 == 0)) ) {
cout << "Das Jahr " << jahr << " war/ ist ein Schaltjahr." << endl;
}
else {
cout << "Das Jahr " << jahr << " war/ ist kein Schaltjahr." << endl;
}
} |
|
Auch das ist m.E. so in Ordnung.
Dennoch hätte ich gerne zu (i) und (ii) Eure Meinung, da ich noch Anfänger bin und mich daher nicht so auf meine Meinung verlassen möchte.
Sehr viele Grüße
Dragon_Fighter
|
|
Thema: Logische Operatoren |
|
Meine Frage:
Hallo, ich hoffe, dass ich Euch nicht mit meinen Anfängerfragen auf die Nerven gehe. Hier ist wieder eine Aufgabe, an der ich mich versucht habe:
(a) Wie würden Sie diese Bedingung beschreiben:
code: |
1:
|
( (x && !y) ) || ( (!x&&y) ) |
|
?
(b) Worin liegt der Unterschied zwischen
und
?
(c) Formulieren Sie den Ausdruck
ohne den ! Operator.
Meine Ideen:
Zu (a):
Das würde ich als "Entweder-Oder" bezeichnen.
Beispiel:
a="Es regnet."
b="Es stürmt."
Der gesamte Ausdruck ist (theoretisch) in folgenden drei Fällen wahr:
1.) Es regnet und stürmt nicht. (linke Aussage stimmt)
2.) Es regnet nicht und stürmt. (rechte Aussage stimmt)
3.) Es regnet und stürmt nicht. Und es regnet nicht und stürmt. (linke und rechte Aussage stimmen)
Aber die Aussage 3 kann nicht eintreten; es kann nicht gleichzeitig regnen und nicht regnen bzw. stürmen und nicht stürmen.
Also entweder es regnet und es stürmt nicht - oder es regnet nicht und es stürmt.
----
(b) Meiner Ansicht nach gibt es da keinen Unterschied!
Nach de Morgan hat man doch
code: |
1:
|
(!a || !b)=!(a && b) |
|
, also
code: |
1:
|
(!(!a || !b))=(!(!(a && b))=(a&&b) |
|
--------------
Zu (c)
Das weiß ich leider nicht!
Ich weiß nur:
code: |
1:
|
!(a&&b)=!a || !b |
|
,
aber da kommt der ! Operator ja noch drin vor.
|
|
Thema: Typumwandlungen C++ |
|
Hallo, Airblader.
Stimmt, eigentlich könnte man ja die Zahl x gleich vom Typ double auffassen.
Dann hätte ich dieses:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
|
#include <iostream>
using namespace std;
int main() {
double x=1,w,y,f;
w=(x-1)*(x-1);
y=((x-1)/(x+1))+w;
f=1+x+((x*x)/(double)2)+((x*x*x)/((double)6))+((x*x*x*x)/((double)24));
cout << w << endl;
cout << y << endl;
cout << f << endl;
} |
|
Das sieht schon viel schöner aus - finde ich. Denn ich muss nur noch die Nenner in den Typ double umwandeln. Oder muss ich das gar nicht, weil es reicht, wenn der Zähler vom Typ double ist?
Ich habe das mal ausprobiert, also:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
|
#include <iostream>
using namespace std;
int main() {
double x=1,w,y,f;
w=(x-1)*(x-1);
y=((x-1)/(x+1))+w;
f=1+x+((x*x)/2)+((x*x*x)/(6))+((x*x*x*x)/(24));
cout << w << endl;
cout << y << endl;
cout << f << endl;
} |
|
und tatsächlich, das liefert ebenfalls
code: |
1:
2:
3:
|
0
0
2.70833 |
|
.
Also liege ich wohl richtig damit, dass es vollkommen ausreichend ist, dass der Zähler von diesem Typ ist.
Edit: Jetzt lese ich, dass eulerscheZahl das ja auch schon geschrieben hatte, sorry, total überlesen.
|
|
Thema: Typumwandlungen C++ |
|
Meine Frage:
Formulieren Sie aus den folgenden Ausdrücken C++-Anweisungen:
Berechnen Sie den Wert der Ausdrücke für .
Meine Ideen:
Also ich habe das so gemacht (bestimmt sehr umständlich, aber ich möchte ja für f auch die Dezimalzahl haben):
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
|
#include <iostream>
using namespace std;
int x=1,w,y;
double f;
w=(x-1)*(x-1);
y=((x-1)/(x+1))+w;
f=1+(double)x+(((double)x*(double)x)/(double)2)+(((double)x*(double)x*(double)x)/((double)6))+(((double)x*(double)x*(double)x*(double)x)/((double)24));
cout << w << endl;
cout << y << endl;
cout << f << endl;
|
|
Nach dem Compilieren und der Ausführung ergibt sich
code: |
1:
2:
3:
4:
5:
|
0
0
2.70833
|
|
Ist ja richtig, aber kann man das mit der expliziten Typumwandlung irgendwie praktischer/ kürzer machen?
Viele Grüße
Dragon_Fighter
|
|
Thema: Inkrement/ Dekrement |
|
Danke!
Ja, das sind so Übungsaufgaben, mit denen man Anfänger wie mich wohl gerne ein bisschen in den Wahnsinn treibt.
Aber es stand auch der Hinweis bei, dass man sowas doch bitte nicht machen soll und Inkremente/ Dekremente nur für Zähler (z.B. for-Schelife) benutze.
|
|
Thema: Inkrement/ Dekrement |
|
Meine Frage:
Hallo, ich habe eine Frage zu den Prä- u. Postoperatoren.
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
|
#include <iostream>
int main () {
int a = 1;
a+= a++ + ++a;
std::cout << a << std::endl;
} |
|
Begründen Sie das Ergebnis!
Meine Ideen:
In Zeile 5 wird die Variable a auf den Wert 1 gesetzt.
Dann in Zeile 7 steht doch (ausgeschrieben)
code: |
1:
|
a= a + a++ + ++a |
|
Ich hätte jetzt gesagt, dass da am Ende a=7 steht.
Erklärung:
1. Schritt:
a=a + a++ =1+1
Also a=2.
2. Schritt
Dann wird a um 1 erhöht, also a=3.
3. Schritt
3 + ++a = 3 + 4
ALSO:
a=7
Ist das so die richtige Erklärung?
Also das Ergebnis stimmt, das habe ich nachgeprüft.
|
|
|
Zeige Beiträge 1 bis 11 von 11 Treffern |
|
|
|