Was studierst du denn? Wenns Informatik ist, guck dir das Programm in nem Jahr nochmal an, dann wirst du entsetzt sein, weil man es wohl in einem Viertel der Zeilen und mit mehr Übersicht etc. hätte machen können![]()
+ Antworten
Ergebnis 26 bis 49 von 49
- 08.11.11, 22:21 #26Leutnant zur See
- Registriert seit
- 18.03.2007
- Beiträge
- 1.189
Intel Core 2 Duo E6420 @ 2,8GHZ
Sapphire HD 5850
MDT 4GB DDR2-800
Cooler Master Stacker STC-T01
Gigabyte DS3P
Windows 7 Prof. 64bit
- 08.11.11, 22:31 #27
Habe im Oktober mit Umweltinformatik angefangen.
Und ja, mir kommt das Programm auch sehr sehr lang vor für das bisschen Inhalt ... aber naja, jeder fängt mal klein an
PC: Intel Core i3 2100 @ Big Shurriken, MSI H61MU-E35, Sapphire 5770 Vapor-X, 2x4GB 1333MHz TeamGroup, Samsung F1 320GB, Cougar A400, Lian Li PC-A05NB
Audio Equipment: Beyerdynamic T70p, Westone 4, Superlux HD681 @ FiiO E10 / iPhone 4
Heimkino Equipment: Samsung UE32B6000 TV, LG BD550 Blu-ray Player, Onkyo TX SR-605, Klipsch RB-51
Empfehlenswerte HiFi-Kopfhörer in 6 Preisklassen unterteilt - grobe Kaufempfehlung
- 08.11.11, 23:02 #28
Jo, so siehts aus. Ich hab auch noch nen Stück weit zur Verwirrung beigetragen, weil ich alle Ergebnisse mit ODER verknüpft habe, weil ich die Bedingungen nur überflogen habe.
Noch nen kleiner Tipp: Wenn man mit Arrays arbeitet, fängt man üblicherweise bei 0 an diese zu befüllen. Das erste Element des Arrays ist dann array[0] und nicht array[1].
Ich würde dir in jedem Fall auch raten für die Programmiersprache deiner Wahl ein ordentliches Buch zu besorgen. Das wird dich sehr lange Zeit begleiten, die 50€ sind sehr gut investiert.
Die Grundtypen der (prozeduralen) Programmierung (Schleifen,Abfragen,Bedingungen,Typen) sind bei fast allen Sprachen gleich, es ändert sich nur geringfügig die Syntax. Wenn du also die prozeduralen Grundzüge verstanden hast, kannst du jede Programmiersprache innerhalb von kurzer Zeit anwenden.
- 09.11.11, 11:20 #29
Kannst du da ein Buch empfehlen?
PC: Intel Core i3 2100 @ Big Shurriken, MSI H61MU-E35, Sapphire 5770 Vapor-X, 2x4GB 1333MHz TeamGroup, Samsung F1 320GB, Cougar A400, Lian Li PC-A05NB
Audio Equipment: Beyerdynamic T70p, Westone 4, Superlux HD681 @ FiiO E10 / iPhone 4
Heimkino Equipment: Samsung UE32B6000 TV, LG BD550 Blu-ray Player, Onkyo TX SR-605, Klipsch RB-51
Empfehlenswerte HiFi-Kopfhörer in 6 Preisklassen unterteilt - grobe Kaufempfehlung
- 09.11.11, 14:54 #30
Ich kann dir "Java ist auch eine Insel" sehr empfehlen, wenn du mit Java durchstarten willst, oder "The C Programming Language" von Kernighan/Ritchie für C. Ansonsten könnte ich noch "Learning Ruby" und "Learning Rails" von O'Reilly empfehlen. Da Ruby und insbesondere Rails aber ziemlich eigene Wege gehen, würde ich das nicht für jemanden empfehlen, der gerade in die Programmierung einsteigt.
Für C# habe ich leider kein Buch, da kann ich dir auch nichts empfehlen.
- 28.11.11, 12:30 #31
Mal wieder eine kurze Frage ...
Ich muss in einer Übung einen Wert einlesen, dieser darf nur 0 oder 1 sein.
Wenn der User etwas anderes eintippt (Buchstaben, Sonderzeichen oder andere andere Zahl) soll die Frage wiederholt werden. Wenn er den Wert das 3. Mal falsch eintippt, so soll der Wert auf 1 gesetzt werden.
Wie mache ich das am schlausten?
Das klingt irgendwie echt einfach, aber irgendwie steh ich aufm Schlau
PC: Intel Core i3 2100 @ Big Shurriken, MSI H61MU-E35, Sapphire 5770 Vapor-X, 2x4GB 1333MHz TeamGroup, Samsung F1 320GB, Cougar A400, Lian Li PC-A05NB
Audio Equipment: Beyerdynamic T70p, Westone 4, Superlux HD681 @ FiiO E10 / iPhone 4
Heimkino Equipment: Samsung UE32B6000 TV, LG BD550 Blu-ray Player, Onkyo TX SR-605, Klipsch RB-51
Empfehlenswerte HiFi-Kopfhörer in 6 Preisklassen unterteilt - grobe Kaufempfehlung
- 28.11.11, 12:40 #32
Ich bin jetzt nicht der C# Guru, aber ich würde das in einer while Schleife machen.
Wert einlesen
i=1
Solange Wert nicht 0 oder 1(
Wert neu einlesen
Hochzählen und bei i=3 nen Break)
So würde ich das grob machen.
Sent from my HTC Desire using Tapatalk
- 28.11.11, 12:45 #33
Detailierter?

So im Grund ist die Idee ja recht simple, bei mir hapert es nur arg an der Umsetzung...PC: Intel Core i3 2100 @ Big Shurriken, MSI H61MU-E35, Sapphire 5770 Vapor-X, 2x4GB 1333MHz TeamGroup, Samsung F1 320GB, Cougar A400, Lian Li PC-A05NB
Audio Equipment: Beyerdynamic T70p, Westone 4, Superlux HD681 @ FiiO E10 / iPhone 4
Heimkino Equipment: Samsung UE32B6000 TV, LG BD550 Blu-ray Player, Onkyo TX SR-605, Klipsch RB-51
Empfehlenswerte HiFi-Kopfhörer in 6 Preisklassen unterteilt - grobe Kaufempfehlung
- 28.11.11, 12:59 #34Leutnant zur See
- Registriert seit
- 05.11.2007
- Ort
- Neckar-Odenwald Kreis
- Beiträge
- 1.158
War doch schon sehr detailliert

du definierst einen int (z.B. i) der dir deine Eingabeversuche zählt.
danach startest du eine While schleife, die deine Eingabe einliest, checkt, ob es eine 1, 0 oder Etwas anderes ist.
- bei 1: Irgendwo den Wert speichern, dann break
- bei 0: Irgendwo den Wert speichern, dann break
- bei allem anderen (default): Wert als 1 speichern und i++
fertig.
ein Tipp, versuch dich ins Programm "rein zu denken", was soll es als nächstes machen, dann ist alles recht logisch (klappt bei mir zumindest).
- 28.11.11, 13:12 #35
Kann ich das auch mit switch machen?
---------- Beitrag hinzugefügt um 13:17 ---------- Vorheriger Beitrag war um 13:12 ----------
Glaube das Fieber tut mir nicht gut ... sieht jetzt so aus, funktioniert aber nicht:
Console.WriteLine("\nBitte AGB Wert eingeben (0 oder 1):");
int i = 0;
while (AGB == 1)
{
AGB = Convert.ToInt32(Console.ReadLine());
break;
}
while (AGB == 0)
{
AGB = Convert.ToInt32(Console.ReadLine());
break;
}
default ()
{
AGB = 1;
i++;
}
Was muss ich ändern? Müsste ich nicht irgendwie eine if Schleife machen, die dann bis i = 3 hochzählt oder so etwas?Geändert von Terr0rSandmann (28.11.11 um 13:21 Uhr)
PC: Intel Core i3 2100 @ Big Shurriken, MSI H61MU-E35, Sapphire 5770 Vapor-X, 2x4GB 1333MHz TeamGroup, Samsung F1 320GB, Cougar A400, Lian Li PC-A05NB
Audio Equipment: Beyerdynamic T70p, Westone 4, Superlux HD681 @ FiiO E10 / iPhone 4
Heimkino Equipment: Samsung UE32B6000 TV, LG BD550 Blu-ray Player, Onkyo TX SR-605, Klipsch RB-51
Empfehlenswerte HiFi-Kopfhörer in 6 Preisklassen unterteilt - grobe Kaufempfehlung
- 28.11.11, 13:51 #36Leutnant zur See
- Registriert seit
- 05.11.2007
- Ort
- Neckar-Odenwald Kreis
- Beiträge
- 1.158
du hättest alles in eine while packen müssen, die die 3 Abfragen prüft.
AGB = Convert.ToInt32(Console.ReadLine()); //Das kannst du vergessen, außer du machst noch eine try-Catch dazu, weil Buchstaben kann er nicht als int umwandeln, vergleich einfach mit einem String ("1" bzw. "0").
Hab da mal schnell was gebastelt.
Spoiler: Anzeigen
sollte so funktionieren, habs aber nicht getestet und bin mir bei der switch-case Syntax grad nicht sicher
- 28.11.11, 13:59 #37
Musste es etwas ändern, da viele Fehler drin waren.
Sieht jetzt so aus ... allerdings meckert er mit AGB rum.
Er sagt mir, dass strings nicht in int formatiert werden können.
Ich brauche das aber eigentlich als int, da es eine 0 oder 1 sein soll. Zudem soll er mir ja auch einen Fehler bringen (bool?) wenn Buchstaben oder Zeichen eingegeben werden.
Console.WriteLine("\nBitte AGB Wert eingeben (0 oder 1):");
int y = 0;
while (y<3)
{
//AGB = Console.ReadLine();
switch (y)
{
case 1:
AGB = 1;
break;
case 0:
AGB = 0;
break;
default:
y = 1;
Console.WriteLine("Falsche Eingabe!");
y++;
}
AGB = 1;
}
Edit:
Jetzt gibt er nur noch einen Fehler wegen dem "default", aber was soll denn da bitte falsch sein? Verstehe ich nciht.Geändert von Terr0rSandmann (28.11.11 um 14:21 Uhr)
PC: Intel Core i3 2100 @ Big Shurriken, MSI H61MU-E35, Sapphire 5770 Vapor-X, 2x4GB 1333MHz TeamGroup, Samsung F1 320GB, Cougar A400, Lian Li PC-A05NB
Audio Equipment: Beyerdynamic T70p, Westone 4, Superlux HD681 @ FiiO E10 / iPhone 4
Heimkino Equipment: Samsung UE32B6000 TV, LG BD550 Blu-ray Player, Onkyo TX SR-605, Klipsch RB-51
Empfehlenswerte HiFi-Kopfhörer in 6 Preisklassen unterteilt - grobe Kaufempfehlung
- 28.11.11, 14:31 #38Leutnant zur See
- Registriert seit
- 05.11.2007
- Ort
- Neckar-Odenwald Kreis
- Beiträge
- 1.158
das muss raus, y = 1;
Du setzt jedes mal, wenn du in default rein gehts y auf 1, machst später y++ damit wird y nie größer als 2 und deine schleife bricht nicht mehr ab.
Edit: und dein AGB = 1; ganz unten muss noch vor die klammer
müsste am ende so aus sehen:
AGB = 1;
}
}
!!Fehler, du switchst dein y, du musst deine Eingabe switchen!!Geändert von unl34shed (28.11.11 um 14:35 Uhr)
- 28.11.11, 14:35 #39
Noch ein Fehler: im Switch muss bei case "0" und case "1" dann die While-Schleifenvariable (y) auf 3 gesetzt werden.
Sonst gibt es bei korrekter Eingabe trotzdem 3 Durchläufe.
Oder einfach per If, dann kann man bequem mit break; die Schleife verlassen, was bei Switch nicht möglich ist, denn dort wird das break; auf das switch angewendet, nicht aber auf die while-Schleife.
Code:int i = 1; string eingabe; int ausgabe = -1; while (i <= 3) { eingabe = Console.ReadLine(); if (eingabe == "1") { ausgabe = 1; break; } else if (eingabe == "0") { ausgabe = 0; break; } else if (i >= 3) { ausgabe = 1; break; } else { Console.WriteLine("Möp falsche einagabe. Bitte wiederholen"); i++; } } Console.WriteLine(ausgabe.ToString());Geändert von pointX (28.11.11 um 14:43 Uhr)
2500K, Z68-V, Team 8GB 1333, 1TB Samsung F3, Ninja 3, CM-500W

<codec> root kann mein heim zerstören, mich aus dem system aussperen. Aber nur Gott allein entscheidet, ob ich nach /dev/null/ oder nach /var/log/ komme
- 28.11.11, 14:36 #40
Ok, habe das y=1; rausgenommen, trotzdem meldet er einen Fehler in der Zeile vom default.
Fehlermeldung:
Das Steuerelement kann nicht von einer case-Bezeichnung ("default:") zur nächsten fortfahren.
Edit:
Dank dir pointX. Mit deinem Text funktioniert es. Nun noch etwas die Bezeichnungen ändern und dann ist fein. Super.Geändert von Terr0rSandmann (28.11.11 um 14:38 Uhr)
PC: Intel Core i3 2100 @ Big Shurriken, MSI H61MU-E35, Sapphire 5770 Vapor-X, 2x4GB 1333MHz TeamGroup, Samsung F1 320GB, Cougar A400, Lian Li PC-A05NB
Audio Equipment: Beyerdynamic T70p, Westone 4, Superlux HD681 @ FiiO E10 / iPhone 4
Heimkino Equipment: Samsung UE32B6000 TV, LG BD550 Blu-ray Player, Onkyo TX SR-605, Klipsch RB-51
Empfehlenswerte HiFi-Kopfhörer in 6 Preisklassen unterteilt - grobe Kaufempfehlung
- 28.11.11, 14:47 #41
2500K, Z68-V, Team 8GB 1333, 1TB Samsung F3, Ninja 3, CM-500W

<codec> root kann mein heim zerstören, mich aus dem system aussperen. Aber nur Gott allein entscheidet, ob ich nach /dev/null/ oder nach /var/log/ komme
- 28.11.11, 15:40 #42
Und wieder ein neues Problem ... Im ersten Moment klingt das immer so simple, aber dann scheitert es doch irgendwie

Der User muss einen Wert [Variable Cf] von 10 bis 1000 eingeben. Bei Falscheingabe (Wert zu hoch, zu niedrig oder ein Buchstabe/Sonderzeichen) muss die Abfrage wiederholt werden. Bei der 3. Fehleingabe wird der Wert auf 1 gesetzt.
Mein Ansatz sieht so aus:
int h = 1;
double Cf;
Console.WriteLine("\nBitte Cf Wert eingeben (10 bis 1000):");
Cf = Convert.ToDouble(Console.ReadLine());
while (h <= 3)
{
if ((Cf <= 1000) && (Cf > 0))
{
Cf = Convert.ToDouble(Console.ReadLine());
break;
}
else if (Cf > 1000)
{
Console.WriteLine("Falsche Eingabe, Wert zu hoch. Bitte wiederholen");
break;
h++;
}
else if (Cf < 10)
{
Console.WriteLine("Falsche Eingabe, Wert zu niedrig. Bitte wiederholen");
break;
h++;
}
else if (h >= 3)
{
Cf = 1;
break;
}
}
Console.WriteLine("\nCf Wert: " + Cf);
Problem ist, dass er zb erkennt, wenn ich eine Zahl über 1000 eingebe, schreibt mir auch, dass die Zahl falsch ist, nimmt den Wert aber trotzdem an.
Ebanso wenn die Zahl etwa zu klein ist.
Und er fragt auch immer 2x ab
Geändert von Terr0rSandmann (28.11.11 um 15:49 Uhr)
PC: Intel Core i3 2100 @ Big Shurriken, MSI H61MU-E35, Sapphire 5770 Vapor-X, 2x4GB 1333MHz TeamGroup, Samsung F1 320GB, Cougar A400, Lian Li PC-A05NB
Audio Equipment: Beyerdynamic T70p, Westone 4, Superlux HD681 @ FiiO E10 / iPhone 4
Heimkino Equipment: Samsung UE32B6000 TV, LG BD550 Blu-ray Player, Onkyo TX SR-605, Klipsch RB-51
Empfehlenswerte HiFi-Kopfhörer in 6 Preisklassen unterteilt - grobe Kaufempfehlung
- 28.11.11, 18:32 #43
Erst einmal etwas generelles:
So etwas wie
niemals ohne Try-Catch.Code:Convert.ToDouble(string a);
Wenn dir Try-Catch nichts sagt empfehle ich dir dringend das mal anzuschauen.
Sonst stürtzt dein Programm sauber ab, wenn du z.B. Buchstaben eingibst.
Zu deinem Problem:
Schau dir doch deine Struktur mal an, was du im fehlerfall machst.
Hier dein Ablauf:
Cf parsen - prüfen - Meldung ausgeben - break; h++ (?? -> siehe weiter unten).
Cf hat aber immer noch den geparsten Wert.
Du vergisst hier Cf = 1 zu setzen, wie es gewünscht ist.
Was anderes:
Was soll das bringen ?Code:break; h++;
Du weißt, dass break; bedeutet, dass die while-Schleife nicht mehr ausgeführt wird, sondern abgebrochen wird ?
D.h. dein h++ wird schon nicht mehr ausgeführt ! Die Schleife wird abgebrochen.
Deshalb vllt. wird es auch nur 2x ausgeführt.... wenn bei der 2. Eingabe etwas falsches eingegeben wird
Du hattest vllt das hier vor:
Code:h++; continue; // nächster Durchlauf.....
Ein bisschen verändert, funktioniert:
Code:int h = 0; double Cf = -1; string eingabe; while (h <= 3) { if (h == 3) { Cf = 1; // nach 3. erfolgloser eingabe auf 1 als default wert setzen break; } else { Console.WriteLine("\nBitte Cf Wert eingeben (10 bis 1000):"); eingabe = Console.ReadLine(); try { Cf = double.Parse(eingabe); } catch { Console.WriteLine("ungültige Einagabe ! Das war keine Zahl."); } if ((Cf <= 1000) && (Cf > 0)) // 10 oder 0 ? was willst du ? entweder hier 10 oder unten auch 0 { break; // ok , while verlassen da Wert korrekt } else if (Cf > 1000) { Console.WriteLine("Falsche Eingabe, Wert zu hoch. Bitte wiederholen"); } else if (Cf < 10) // 10 oder 0 ? was willst du ? entweder hier 0 oder oben auch 10 { Console.WriteLine("Falsche Eingabe, Wert zu niedrig. Bitte wiederholen"); } h++; } } Console.WriteLine("\nCf Wert: " + Cf.ToString());Geändert von pointX (28.11.11 um 18:39 Uhr)
2500K, Z68-V, Team 8GB 1333, 1TB Samsung F3, Ninja 3, CM-500W

<codec> root kann mein heim zerstören, mich aus dem system aussperen. Aber nur Gott allein entscheidet, ob ich nach /dev/null/ oder nach /var/log/ komme
- 28.11.11, 18:58 #44
Hmm ... ich merke schon, ich muss noch eine Menge lernen.
Was genau bedeutet:?Cf = double.Parse(eingabe);
Dieses double.Parse kenne ich garnicht.
Der Rest leuchtet eigentlich ein ...
Dir nochmal ein großes Danke
PC: Intel Core i3 2100 @ Big Shurriken, MSI H61MU-E35, Sapphire 5770 Vapor-X, 2x4GB 1333MHz TeamGroup, Samsung F1 320GB, Cougar A400, Lian Li PC-A05NB
Audio Equipment: Beyerdynamic T70p, Westone 4, Superlux HD681 @ FiiO E10 / iPhone 4
Heimkino Equipment: Samsung UE32B6000 TV, LG BD550 Blu-ray Player, Onkyo TX SR-605, Klipsch RB-51
Empfehlenswerte HiFi-Kopfhörer in 6 Preisklassen unterteilt - grobe Kaufempfehlung
- 28.11.11, 20:54 #45
Mit was Programmierst du ?
In Visual C# 2010 werden doch die Erklärungen immer mit angezeigt.

Konvertiert einfach die übergebene Variable zu double.
Bei Fehler treten die entsprechenden Exceptions auf, welche per try-catch abgefangen und entsprechend behandelt werden können.2500K, Z68-V, Team 8GB 1333, 1TB Samsung F3, Ninja 3, CM-500W

<codec> root kann mein heim zerstören, mich aus dem system aussperen. Aber nur Gott allein entscheidet, ob ich nach /dev/null/ oder nach /var/log/ komme
- 28.11.11, 22:38 #46
Ich nutze Sharpdevelop.
PC: Intel Core i3 2100 @ Big Shurriken, MSI H61MU-E35, Sapphire 5770 Vapor-X, 2x4GB 1333MHz TeamGroup, Samsung F1 320GB, Cougar A400, Lian Li PC-A05NB
Audio Equipment: Beyerdynamic T70p, Westone 4, Superlux HD681 @ FiiO E10 / iPhone 4
Heimkino Equipment: Samsung UE32B6000 TV, LG BD550 Blu-ray Player, Onkyo TX SR-605, Klipsch RB-51
Empfehlenswerte HiFi-Kopfhörer in 6 Preisklassen unterteilt - grobe Kaufempfehlung
- 29.11.11, 20:23 #47
Eine letzte Frage

(Für diese Woche
)
Ich muss 2 Formeln ausrechnen und zuvor halt die ganzen Werte einlesen.
Mit den Werte einlesen und Fehler abfangen und allem drum und dran funktioniert soweit, aber wie mache ich das, dass wenn er die erste Formel ausspuckt, quasi von vorne anfängt die Werte einzulesen und dann am Ende die 2. Formel zur Berechnung nimmt?
Simpel gesprochen um es zu veranschaulichen:
Werte Formel1 einlesen:
a = ... // ist ein Array
b = ...
c = ...
Formel1:
z = a + b + c
Werte Formel2 einlesen:
a = ... // ist ein Array
b = ...
c = ...
Formel2:
z = a * b * c
Wie verwirkliche ich das mit einer Schleife?
(Die Variablen [hier im Beispiel a, b und c] sollen überschrieben werden)Geändert von Terr0rSandmann (29.11.11 um 20:27 Uhr)
PC: Intel Core i3 2100 @ Big Shurriken, MSI H61MU-E35, Sapphire 5770 Vapor-X, 2x4GB 1333MHz TeamGroup, Samsung F1 320GB, Cougar A400, Lian Li PC-A05NB
Audio Equipment: Beyerdynamic T70p, Westone 4, Superlux HD681 @ FiiO E10 / iPhone 4
Heimkino Equipment: Samsung UE32B6000 TV, LG BD550 Blu-ray Player, Onkyo TX SR-605, Klipsch RB-51
Empfehlenswerte HiFi-Kopfhörer in 6 Preisklassen unterteilt - grobe Kaufempfehlung
- 29.11.11, 22:49 #48
Hmm, irgendwie sieht das so aus, als sollten die anderen deine Hausaufgaben erledigen...
Es gibt viele Möglichkeiten: lager die Ein- und Ausgabe in Prozeduren oder Funktionen aus.
Dann sieht deine Main Funktion ungefähr so aus:
Aufruf der Eingabeprozedur
Berechnung Formel 1
Aufruf der Ausgabeprozedur
Aufruf der Eingabeprozedur
Berechnung Formel 2
Aufruf der Ausgabeprozedur
Ende
Man kann es auch anders machen bei solchen simplen Programmen. Schreib doch erstmal das Programm und poste dann nochmal dein konkretes Problem.
Im Grunde ist es ja immer das gleiche, was hier gefragt wird.
Wenn du es in einer Schleife lösen willst (Pseudocode):
Int i=1;
While(i<=3){
Eingabeprozedur();
If(i%2==1){Formel1();}
Else{Formel2();}
Ausgabeprozedur();
i++;
}
Das müsste eigentlich einleuchtend sein.
PS: Ich habe Programmieren immer gehasst, bis es mal klick gemacht hat. Jetzt finde ich es toll, das kommt bei dir auch noch. Ich werde jetzt schlafen und mich morgen wieder der AVR Programmierung widmen.
Sent from my HTC Desire using Tapatalk
- 29.11.11, 22:56 #49
Das ganze Programm? Ui ... das wird aber viel

Was mir halt noch fehlt, dass ich 1x mit den ganzen Eingabe die Lösung 1 rauskriege und das ganze Teil dann von vorne durchläuft mit den Werteeingeben und mir dann die Lösung 2 ausgespuckt wird.
(Jaja, sinnlos ... weil es 2x die selbe Endformel ist)
Die Werte IF (Array with 9 Werten), AGB, DOM, Cf und Gef werden eingelesen und sollen dann zur Lösung1 werden. Dann soll der User die Werte nochmal eingeben können, welche dann am Ende die Lösung2 ergeben.using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ü2_29._11_teil2
{
class Program
{
public static void Main(string[] args)
{
#region Variablen
double[] IF = new double[16]; // Array Impact Factoren
// x = Zähler
double L; // Lösung
double L1; // Lösung Nr. 2
string eingabe_AGB; // AGB zwischen 0 und 1
double AGB = -1;
// i = Zähler
string eingabe_DOM; // DOM zwischen 0 und 1
double DOM = -1;
// j = Zähler
string eingabe_Cf; // Cf zwischen 10 und 1000
double Cf = -1;
// h = Zähler
string eingabe_Gef; // Gef 1 oder höher
double Gef = -1;
// k = Zähler
#endregion
#region IF
for (int x = 1; x < 10; x++)
{
Console.WriteLine("\nBitte Impact Factor Nr. " + x + " eingeben:");
try
{
IF[x] = Convert.ToDouble(Console.ReadLine());
}
catch
{
Console.WriteLine("\aEingabe fehlerhaft, bitte wiederholen.\nBuchstaben und Sonderzeichen sind nicht gültig.");
x--;
continue;
}
}
Console.WriteLine("\nSumme der Impact Factoren: " + IF.Sum());
#endregion
#region AGB
int i = 1;
//string eingabe_AGB;
//double AGB = -1;
while (i <= 3)
{
if (i == 3)
{
AGB = 1; // Nach 3 erfolglosen Eingabe, Wert auf 1
break;
}
else
{
Console.WriteLine("\nBitte AGB Wert eingeben (zwischen 0 und 1):");
eingabe_AGB = Console.ReadLine();
try
{
AGB = double.Parse(eingabe_AGB);
}
catch
{
Console.WriteLine("\aUngültige Eingabe! Das war keine Zahl.");
}
if ((AGB >= 0) && (AGB <= 1)) // Wert zwischen 0 und 1
{
break; // While verlassen -> Wert korrekt
}
else if (AGB > 1) // Ausführen wenn DOM > 1
{
Console.WriteLine("\aFalsche Eingabe, Wert zu hoch. Bitte wiederholen");
}
else if (AGB < 0) // Ausführen wenn DOM < 0
{
Console.WriteLine("\aFalsche Eingabe, Wert zu niedrig. Bitte wiederholen");
}
i++;
}
}
Console.WriteLine("\nAGB Wert: " + AGB.ToString());
#endregion
#region DOM
int j = 1;
//string eingabe_DOM;
//double DOM = -1;
while (j <= 3)
{
if (j == 3)
{
DOM = 1; // Nach 3 erfolglosen Eingabe, Wert auf 1
break;
}
else
{
Console.WriteLine("\nBitte DOM Wert eingeben (zwischen 0 und 1):");
eingabe_DOM = Console.ReadLine();
try
{
DOM = double.Parse(eingabe_DOM);
}
catch
{
Console.WriteLine("\aUngültige Eingabe! Das war keine Zahl.");
}
if ((DOM >= 0) && (DOM <= 1)) // Wert zwischen 0 und 1
{
break; // While verlassen -> Wert korrekt
}
else if (DOM > 1) // Ausführen wenn DOM > 1
{
Console.WriteLine("\aFalsche Eingabe, Wert zu hoch. Bitte wiederholen");
}
else if (DOM < 0) // Ausführen wenn DOM < 0
{
Console.WriteLine("\aFalsche Eingabe, Wert zu niedrig. Bitte wiederholen");
}
j++;
}
}
Console.WriteLine("\nDOM Wert: " + DOM.ToString());
#endregion
#region Cf
int h = 0;
// double Cf = -1;
// string eingabe_Cf;
while (h <= 3)
{
if (h == 3)
{
Cf = 1; // Nach 3 erfolglosen Eingabe, Wert auf 1
break;
}
else
{
Console.WriteLine("\nBitte Cf Wert eingeben (10 bis 1000):");
eingabe_Cf = Console.ReadLine();
try
{
Cf = double.Parse(eingabe_Cf);
}
catch
{
Console.WriteLine("\aUngültige Eingabe! Das war keine Zahl.");
}
if ((Cf <= 1000) && (Cf > 10)) // Wert zwischen 10 und 1000
{
break; // While verlassen -> Wert korrekt
}
else if (Cf > 1000) // Ausführen wenn Cf > 1000
{
Console.WriteLine("\aFalsche Eingabe, Wert zu hoch. Bitte wiederholen");
}
else if (Cf < 10) // Ausführen wenn Cf < 10
{
Console.WriteLine("\aFalsche Eingabe, Wert zu niedrig. Bitte wiederholen");
}
h++;
}
}
Console.WriteLine("\nCf Wert: " + Cf.ToString());
#endregion
#region Gef
int k = 0;
// double Gef = -1;
// string eingabe_Gef;
while (k <= 3)
{
if (k == 3)
{
Gef = 1; // Nach 3 erfolglosen Eingabe, Wert auf 1
break;
}
else
{
Console.WriteLine("\nBitte Gef Wert eingeben (1 oder höher):");
eingabe_Gef = Console.ReadLine();
try
{
Gef = double.Parse(eingabe_Gef);
}
catch
{
Console.WriteLine("\aUngültige Eingabe! Das war keine Zahl.");
}
if (Gef >= 1) // Wert mind. 1
{
break; // While verlassen -> Wert korrekt
}
else if (Gef < 1) // Ausführen wenn Cef < 1
{
Console.WriteLine("\aFalsche Eingabe, Wert zu niedrig. Bitte wiederholen");
}
k++;
}
}
Console.WriteLine("\nGef Wert: " + Gef.ToString());
#endregion
#region Rechnung
L = IF.Sum()*(((AGB + DOM)*Cf)*(Gef*0.001));
Console.WriteLine("\nLösung laut Formel: " + L);
#endregion
Console.WriteLine("\nTaste drücken zum beenden.");
Console.ReadKey(true);
}
}
}
---------- Beitrag hinzugefügt um 23:48 ---------- Vorheriger Beitrag war um 22:56 ----------
Jear ... ich habe es gelöst. Sicher nicht die beste Lösung, aber es funktioniert.
Hier der Quellcode:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ü2_29._11_teil2
{
class Program
{
public static void Main(string[] args)
{
#region Variablen
double[] IF = new double[16]; // Array Impact Factoren
// x = Zähler
double L; // Lösung CH4
double L1; // Lösung N2O
string eingabe_AGB; // AGB zwischen 0 und 1
double AGB = -1;
// i = Zähler
string eingabe_DOM; // DOM zwischen 0 und 1
double DOM = -1;
// j = Zähler
string eingabe_Cf; // Cf zwischen 10 und 1000
double Cf = -1;
// h = Zähler
string eingabe_Gef; // Gef 1 oder höher
double Gef = -1;
// k = Zähler
#endregion
int a = 1;
int b = 1;
while (a == 1)
{
if (b >=0)
{
#region IF
for (int x = 1; x < 10; x++)
{
Console.WriteLine("\nBitte Impact Factor Nr. " + x + " eingeben:");
try
{
IF[x] = Convert.ToDouble(Console.ReadLine());
}
catch
{
Console.WriteLine("\aEingabe fehlerhaft, bitte wiederholen.\nBuchstaben und Sonderzeichen sind nicht gültig.");
x--;
continue;
}
}
Console.WriteLine("\nSumme der Impact Factoren: " + IF.Sum());
#endregion
#region AGB
int i = 1;
//string eingabe_AGB;
//double AGB = -1;
while (i <= 3)
{
if (i == 3)
{
AGB = 1; // Nach 3 erfolglosen Eingabe, Wert auf 1
break;
}
else
{
Console.WriteLine("\nBitte AGB Wert eingeben (zwischen 0 und 1):");
eingabe_AGB = Console.ReadLine();
try
{
AGB = double.Parse(eingabe_AGB);
}
catch
{
Console.WriteLine("\aUngültige Eingabe! Das war keine Zahl.");
}
if ((AGB >= 0) && (AGB <= 1)) // Wert zwischen 0 und 1
{
break; // While verlassen -> Wert korrekt
}
else if (AGB > 1) // Ausführen wenn DOM > 1
{
Console.WriteLine("\aFalsche Eingabe, Wert zu hoch. Bitte wiederholen");
}
else if (AGB < 0) // Ausführen wenn DOM < 0
{
Console.WriteLine("\aFalsche Eingabe, Wert zu niedrig. Bitte wiederholen");
}
i++;
}
}
Console.WriteLine("\nAGB Wert: " + AGB.ToString());
#endregion
#region DOM
int j = 1;
//string eingabe_DOM;
//double DOM = -1;
while (j <= 3)
{
if (j == 3)
{
DOM = 1; // Nach 3 erfolglosen Eingabe, Wert auf 1
break;
}
else
{
Console.WriteLine("\nBitte DOM Wert eingeben (zwischen 0 und 1):");
eingabe_DOM = Console.ReadLine();
try
{
DOM = double.Parse(eingabe_DOM);
}
catch
{
Console.WriteLine("\aUngültige Eingabe! Das war keine Zahl.");
}
if ((DOM >= 0) && (DOM <= 1)) // Wert zwischen 0 und 1
{
break; // While verlassen -> Wert korrekt
}
else if (DOM > 1) // Ausführen wenn DOM > 1
{
Console.WriteLine("\aFalsche Eingabe, Wert zu hoch. Bitte wiederholen");
}
else if (DOM < 0) // Ausführen wenn DOM < 0
{
Console.WriteLine("\aFalsche Eingabe, Wert zu niedrig. Bitte wiederholen");
}
j++;
}
}
Console.WriteLine("\nDOM Wert: " + DOM.ToString());
#endregion
#region Cf
int h = 0;
// double Cf = -1;
// string eingabe_Cf;
while (h <= 3)
{
if (h == 3)
{
Cf = 1; // Nach 3 erfolglosen Eingabe, Wert auf 1
break;
}
else
{
Console.WriteLine("\nBitte Cf Wert eingeben (10 bis 1000):");
eingabe_Cf = Console.ReadLine();
try
{
Cf = double.Parse(eingabe_Cf);
}
catch
{
Console.WriteLine("\aUngültige Eingabe! Das war keine Zahl.");
}
if ((Cf <= 1000) && (Cf > 10)) // Wert zwischen 10 und 1000
{
break; // While verlassen -> Wert korrekt
}
else if (Cf > 1000) // Ausführen wenn Cf > 1000
{
Console.WriteLine("\aFalsche Eingabe, Wert zu hoch. Bitte wiederholen");
}
else if (Cf < 10) // Ausführen wenn Cf < 10
{
Console.WriteLine("\aFalsche Eingabe, Wert zu niedrig. Bitte wiederholen");
}
h++;
}
}
Console.WriteLine("\nCf Wert: " + Cf.ToString());
#endregion
#region Gef
int k = 0;
// double Gef = -1;
// string eingabe_Gef;
while (k <= 3)
{
if (k == 3)
{
Gef = 1; // Nach 3 erfolglosen Eingabe, Wert auf 1
break;
}
else
{
Console.WriteLine("\nBitte Gef Wert eingeben (1 oder höher):");
eingabe_Gef = Console.ReadLine();
try
{
Gef = double.Parse(eingabe_Gef);
}
catch
{
Console.WriteLine("\aUngültige Eingabe! Das war keine Zahl.");
}
if (Gef >= 1) // Wert mind. 1
{
break; // While verlassen -> Wert korrekt
}
else if (Gef < 1) // Ausführen wenn Cef < 1
{
Console.WriteLine("\aFalsche Eingabe, Wert zu niedrig. Bitte wiederholen");
}
k++;
}
}
Console.WriteLine("\nGef Wert: " + Gef.ToString());
#endregion
#region Rechnung
if (b == 1)
{
L = IF.Sum()*(((AGB + DOM)*Cf)*(Gef*0.001));
Console.WriteLine("\nLösung laut Formel (CH4): " + L);
b++;
continue;
}
else if (b == 2)
{
L1 = IF.Sum()*(((AGB + DOM)*Cf)*(Gef*0.001));
Console.WriteLine("\nLösung laut Formel (N2O): " + L1);
Console.WriteLine("\nTaste drücken zum beenden.");
Console.ReadKey(true);
break;
}
#endregion
}
}
}
}
}
Geändert von Terr0rSandmann (30.11.11 um 00:00 Uhr)
PC: Intel Core i3 2100 @ Big Shurriken, MSI H61MU-E35, Sapphire 5770 Vapor-X, 2x4GB 1333MHz TeamGroup, Samsung F1 320GB, Cougar A400, Lian Li PC-A05NB
Audio Equipment: Beyerdynamic T70p, Westone 4, Superlux HD681 @ FiiO E10 / iPhone 4
Heimkino Equipment: Samsung UE32B6000 TV, LG BD550 Blu-ray Player, Onkyo TX SR-605, Klipsch RB-51
Empfehlenswerte HiFi-Kopfhörer in 6 Preisklassen unterteilt - grobe Kaufempfehlung

LinkBack URL
About LinkBacks
Zitieren


