Willkommen |
|
myGully |
|
Links |
|
Forum |
|
|
|
 |
28.11.10, 17:22
|
#1
|
Anfänger
Registriert seit: Apr 2010
Beiträge: 26
Bedankt: 0
|
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
|
|
|
28.11.10, 18:40
|
#2
|
Macianer
Registriert seit: Apr 2010
Beiträge: 139
Bedankt: 49
|
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  !
|
|
|
28.11.10, 19:23
|
#3
|
Anfänger
Registriert seit: Apr 2010
Beiträge: 26
Bedankt: 0
|
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?
|
|
|
28.11.10, 19:51
|
#4
|
Macianer
Registriert seit: Apr 2010
Beiträge: 139
Bedankt: 49
|
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
|
|
|
28.11.10, 20:12
|
#5
|
Anfänger
Registriert seit: Apr 2010
Beiträge: 26
Bedankt: 0
|
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
|
|
|
28.11.10, 20:36
|
#6
|
Macianer
Registriert seit: Apr 2010
Beiträge: 139
Bedankt: 49
|
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
Grüße MH
|
|
|
28.11.10, 20:56
|
#7
|
Anfänger
Registriert seit: Apr 2010
Beiträge: 26
Bedankt: 0
|
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
|
|
|
28.11.10, 21:17
|
#8
|
Macianer
Registriert seit: Apr 2010
Beiträge: 139
Bedankt: 49
|
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 ;-)
|
|
|
28.11.10, 21:36
|
#9
|
Anfänger
Registriert seit: Apr 2010
Beiträge: 26
Bedankt: 0
|
Zitat:
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("SummeD: 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++)
{
if (i % 2 == 0)
{
summe = summe - 1 / i;
}
else
{
summe = summe + 1 / i;
}
}
Console.WriteLine("Die Summe beträgt: " + summe);
Console.WriteLine("Glieder: " + (i - 1));
}
}
}
|
soweit so gut.. hat bei mir aber nicht geklappt.. bekomme kein bzw. ein falsches ergebinis.. also wir gehen jetzt davon aus das der grenzwert 0,8 ist..
|
|
|
29.11.10, 16:07
|
#10
|
Macianer
Registriert seit: Apr 2010
Beiträge: 139
Bedankt: 49
|
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
|
|
|
29.11.10, 19:02
|
#11
|
Anfänger
Registriert seit: Apr 2010
Beiträge: 26
Bedankt: 0
|
Habe es mit Grenzwert = 1,3 und Grenzwert = 1,5 ausprobiert und bei beiden hat der mit NICHTS ausgegeben.. :/
|
|
|
Forumregeln
|
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren
HTML-Code ist Aus.
|
|
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:53 Uhr.
().
|