![]() |
for schleife c#
Hallo zusammen :)
Ich habe Probleme mit einer Hausaufgabe im Fach Anwendungsentwicklung und brauche dabei eure hilfe wenn es geht :) also erst mal der anfang: -- Aufgabenstellung: Lassen Sie den Rechner die Summe der folgenden Zahlen bis zu einem Grenzwert g berechnen und geben Sie die Anzahl der benötigten Glieder aus. SummeA: 1+2+3+4+.... Eingabe: Grenzwert: 12 Ausgabe: Summe: 15 Glieder: 5 -- Aufgabenstellung Ende -- Code: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace SumA { class Program { static void Main(string[] args) { int grenzwert=0; int summe=0; int i; Console.WriteLine("SummeA: 1+2+3+4+..."); Console.Write("Bitte geben Sie den Grenzwert ein: "); grenzwert = Convert.ToInt32(Console.ReadLine()); for (i = 1; summe <grenzwert ; i++) { summe = summe + i; } Console.WriteLine("Summe ist: " + summe); Console.WriteLine("Glieder: " + (i-1)); } } } -- Code Ende So das war das Beispiel das der Lehrer uns gegebn hat, nun sollen wir das Beispiel in folgende Aufgabenstellung umschreiben: -- Aufgabenstellung: Lassen Sie den Rechner die Summe der folgenden Zahlen bis zu einem Grenzwert g berechnen und geben Sie die Anzahl der benötigten Glieder aus. SummeB: 1-2+3-4+.... Eingabe: Grenzwert: 6 Ausgabe: Summe: 6 Glieder: 11 -- Aufgabenstellung Ende Ich komme damit überhaupt nicht klar.. könnte mir vil einer erklären wie das geht? Ich hoffe ihr denkt nicht das ich nur zu faul bin die Aufgabe zu machen, ich komme wirklih nicht damit klar. Unser lehrer erklärt uns so gut wie garnichts im unterricht :( |
Ich würde in die for schleife oben einfach eine if-Abfrage einbauen, die die geraden und ungeraden Werte für i unterscheidet. Wenn i ein gerade Wert ist (2,4,6,...) dann Summe=Summe-i, else Summe=Summe+i
Mehr ist nicht zu tun, so wie ich die Sache sehe ;-) Mussts nur noch in Code fassen.. Grüße MH EDIT: Zur Unterscheidung gerade<->ungerader Wert einfach den Modulo Operator benutzen :)! |
Hallo,
habe es jetzt so gelöst: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace SumA { class Program { static void Main(string[] args) { int grenzwert = 0; int summe = 0; int i; Console.WriteLine("SummeA: 1-2+3-4+..."); Console.Write("Bitte geben Sie den Grenzwert ein: "); grenzwert = Convert.ToInt32(Console.ReadLine()); for (i = 1; summe < grenzwert; i++) { if (i % 2 == 0) { summe = summe - i; } else { summe = summe + i; } } Console.WriteLine("Die Summe beträgt: " + summe); Console.WriteLine("Glieder: " + (i - 1)); } } } Nun zum nächsten Problem: Lassen Sie den Rechner die Summe der folgenden Zahlen bis zu einem Grenzwert g berechnen und geben Sie die Anzahl der benötigten Glieder aus. SummeC: 1+1/2+1/3+1/4+.... Eingabe: Grenzwert: 2 Ausgabe: Summe: 2,0833333333333333333333333333333 Glieder: 4 Wie soll ich diese Rechnung so schreiben damit es klappt? |
Ganz einfach ;-) 1/2 = 2^-1; 1/3 = 3^-1....--> 1/i = i^-1
Damit solltest du die Summen ganz einfach zusammenbasteln können.. Grüße MH |
danke schön..
habe es selbst zusammangezimmert: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace SumA { class Program { static void Main(string[] args) { double grenzwert = 0; double summe = 0; double i; Console.WriteLine("SummeC: 1+1/2+1/3+1/4+..."); Console.Write("Bitte geben Sie den Grenzwert ein: "); grenzwert = Convert.ToDouble(Console.ReadLine()); for (i = 1; summe < grenzwert; i++) { summe = summe + 1 / i; } Console.WriteLine("Die Summe beträgt: " + summe); Console.WriteLine("Glieder: " + (i - 1)); } } } habe da noch 2 aufgaben: -- nummer i: Lassen Sie den Rechner die Summe der folgenden Zahlen bis zu einem Grenzwert g berechnen und geben Sie die Anzahl der benötigten Glieder aus. SummeD: 1-1/2+1/3-1/4+.... Eingabe: Grenzwert: 0,8 Ausgabe: Summe: 0,83333333333333333333333333333333 Glieder: 3 -- nummer ii: Lassen Sie den Rechner die Summe der folgenden Zahlen bis zu einem Grenzwert g berechnen und geben Sie die Anzahl der benötigten Glieder aus. SummeE: 1+4+9+16+25+... Eingabe: Grenzwert: 30 Ausgabe: Summe: 55 Glieder: 5 |
Naja SummeD is ja einfach wieder mit der if-Schleife -> langweilig
SummeE is einfach 1 + 2^2 + 3^2 + 4^2 + .... -> auch langweilig Sollte man aber auch eigentlich selbst drauf kommen wenn man C# programmiert :D Grüße MH |
Ja schon, aber ich mach das ja gezwungener maßen.. hab eig gar keine interesse im programmieren.. deswegen tu ich mich da auch so schwer..
mit summe d habe ich aber immer noch probleme :( |
Naja SummeD ist ja summe = summe + 1 / i; dann einfach wieder ne if-Abfrage mit Modulo, ob i gerade oder ungerade ist, und dementsprechend eben + oder - 1/i ;-)
|
Zitat:
|
wenn der Grenzwert 0,8 ist, geht es auch garnicht. Den im ersten Schritt für i=1 passiert: summe = summe + 1 / 1, d.h. Summe + 1 --> Summe wäre dann 1, also im ersten Schritt schon größer als der Grenzwert. Probier mal einen Grenzwert > 1 und poste das Ergebnis :)
Grüße MH |
Habe es mit Grenzwert = 1,3 und Grenzwert = 1,5 ausprobiert und bei beiden hat der mit NICHTS ausgegeben.. :/
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:27 Uhr. |
Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.