Autor Beitrag
Reini100
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mo 12.12.11 13:51 
Hallo ich soll in C# ein Programm zur Dreiecksberechnung schreiben, wobei entweder 2 Seiten und ein Winkel oder eine Seite und ein Winkel angegeben wird.
Meine Fragen
a) Aber wie mach ich es das es für den jeweiligen Menüpunkt auf die richtigen Formeln zugreift??
b) Wie mach ich es erkennt ob es ein rechtwinkeliges, gleichseitiges oder gleichschenkeliges Dreieck ist?

lg Reini

ausblenden volle Höhe C#-Quelltext
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:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278:
279:
280:
281:
282:
283:
284:
285:
286:
287:
288:
289:
290:
291:
292:
293:
294:
295:
296:
297:
298:
299:
300:
301:
302:
303:
304:
305:
306:
307:
308:
309:
310:
311:
312:
313:
314:
315:
316:
317:
318:
319:
320:
321:
322:
323:
324:
325:
326:
327:
328:
329:
330:
331:
332:
333:
334:
335:
336:
337:
338:
339:
340:
341:
342:
343:
344:
345:
346:
347:
348:
349:
350:
351:
352:
353:
354:
355:
356:
357:
358:
359:
360:
361:
362:
363:
364:
using System;                                       
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace AllgemeineDreiecksberechnung
{
   class Programm
   {
       static void Main(string[] args)
       {
           Console.WindowWidth = 150;
           Console.WindowHeight = 50;


           bool nochmal = true;

           while (nochmal)
           {

               Console.WriteLine("Allgemeine Dreiecksberechnung\n");
               Console.WriteLine("Nach welchen Größen wollen Sie das Dreieck berechnen?\n");
               Console.WriteLine("(1) Seite a,b und Winkel Alpha");
               Console.WriteLine("(2) Seite a,b und Winkel Beta");
               Console.WriteLine("(3) Seite a,b und Winkel Gamma");
               Console.WriteLine("(4) Seite a,c und Winkel Alpha");
               Console.WriteLine("(5) Seite a,c und Winkel Beta");
               Console.WriteLine("(6) Seite a,c und Winkel Gamma");
               Console.WriteLine("(7) Seite b,c und Winkel Alpha");
               Console.WriteLine("(8) Seite b,c und Winkel Beta");
               Console.WriteLine("(9) Seite b,c und Winkel Gamma\n");
               Console.WriteLine("(10) Seite a und Winkel Alpha, Beta");
               Console.WriteLine("(11) Seite b und Winkel Alpha, Beta");
               Console.WriteLine("(12) Seite c und Winkel Alpha, Beta");
               Console.WriteLine("(13) Seite a und Winkel Alpha, Gamma");
               Console.WriteLine("(14) Seite b und Winkel Alpha, Gamma");
               Console.WriteLine("(15) Seite c und Winkel Alpha, Gamma");
               Console.WriteLine("(16) Seite a und Winkel Beta, Gamma");
               Console.WriteLine("(17) Seite b und Winkel Beta, Gamma");
               Console.WriteLine("(18) Seite c und Winkel Beta, Gamma");
               Console.WriteLine("(19) Seite a, b und c");
               Console.WriteLine("(20) Winkel Alpha, Beta und Gamma");
               Console.WriteLine("(21) Berechnung beenden\n");

               Console.Write("\nWählen Sie aus den Menüpunkten 1-21: ");

               int eingabe = Convert.ToInt32(Console.ReadLine());

               switch (eingabe)
               {
                   case 1:
                       BerechnungABAlpha();
                       break;
                   case 2:
                       BerechnungABBeta();
                       break;
                   case 3:
                       BerechnungABGamma();
                       break;
                   case 4:
                       BerechnungACAlpha();
                       break;
                   case 5:
                       BerechnungACBeta();
                       break;
                   case 6:
                       BerechnungACGamma();
                       break;
                   case 7:
                       BerechnungBCAlpha();
                       break;
                   case 8:
                       BerechnungBCBeta();
                       break;
                   case 9:
                       BerechnungBCGamma();
                       break;
                   case 10:
                       BerechnungAAlphaBeta();
                       break;
                   case 11:
                       BerechnungBAlphaBeta();
                       break;
                   case 12:
                       BerechnungCAlphaBeta();
                       break;
                   case 13:
                       BerechnungAAlphaGamma();
                       break;
                   case 14:
                       BerechnungBAlphaGamma();
                       break;
                   case 15:
                       BerechnungCAlphaGamma();
                       break;
                   case 16:
                       BerechnungBBetaGamma();
                       break;
                   case 17:
                       BerechnungBBetaGamma();
                       break;
                   case 18:
                       BerechnungCBetaGamma();
                       break;
                   case 19:
                       BerechnungABC();
                       break;
                   case 20:
                       BerechnungAlphaBetaGamma();
                       break;
                       // case 21:
                       //   BerechnungBeenden = true;

                       //Console.WriteLine("Auf Wiedersehen!");
                       //break;
                   default:
                       break;

               }

           }
       }

       static double SeiteEinlesen(string seitenName)
       {
           Console.Write("Geben Sie einen Wert für Seite {0} ein: ", seitenName);

           string laenge = Console.ReadLine();
           double wert = Convert.ToDouble(laenge);

           return wert;
       }
       static double WinkelEinlesen(string winkelName)
       {
           Console.Write("Geben Sie einen Wert für den Winkel {0} ein: ", winkelName);

           string winkel = Console.ReadLine();
           double wert = Convert.ToDouble(winkel);

           return wert;
       }

       static void BerechnungABAlpha()
       {
           Console.WriteLine("Hallo, Sie haben sich für Variante a, b, alpha entschieden");
           double a = SeiteEinlesen("a");
           double b = SeiteEinlesen("b");
           double alpha = WinkelEinlesen("alpha");
           BerechneWerte(a, b, -1, alpha, -1, -1);
       }

       static void BerechnungABBeta()
       {
           Console.WriteLine("Hallo, Sie haben sich für Variante a, b, beta entschieden");
           double a = SeiteEinlesen("a");
           double b = SeiteEinlesen("b");
           double beta = WinkelEinlesen("beta");
           BerechneWerte(a, b, -1, beta, -1, -1);
       }
       static void BerechnungABGamma()
       {
           Console.WriteLine("Hallo, Sie haben sich für Variante a, b, gamma entschieden");
           double a = SeiteEinlesen("a");
           double b = SeiteEinlesen("b");
           double gamma = WinkelEinlesen("gamma");
           BerechneWerte(a, b, -1, gamma, -1, -1);
       }
       static void BerechnungACAlpha()
       {
           Console.WriteLine("Hallo, Sie haben sich für Variante a, c, alpha entschieden");
           double a = SeiteEinlesen("a");
           double c = SeiteEinlesen("c");
           double alpha = WinkelEinlesen("alpha");
           BerechneWerte(a, c, -1, alpha, -1, -1);
       }

       static void BerechnungACBeta()
       {
           Console.WriteLine("Hallo, Sie haben sich für Variante a, c, beta entschieden");
           double a = SeiteEinlesen("a");
           double c = SeiteEinlesen("c");
           double beta = WinkelEinlesen("beta");
           BerechneWerte(a, c, -1, beta, -1, -1);
       }
       static void BerechnungACGamma()
       {
           Console.WriteLine("Hallo, Sie haben sich für Variante a, c, gamma entschieden");
           double a = SeiteEinlesen("a");
           double c = SeiteEinlesen("c");
           double gamma = WinkelEinlesen("gamma");
           BerechneWerte(a, c, -1, gamma, -1, -1);
       }
       static void BerechnungBCAlpha()
       {
           Console.WriteLine("Hallo, Sie haben sich für Variante b, c, alpha entschieden");
           double b = SeiteEinlesen("a");
           double c = SeiteEinlesen("c");
           double alpha = WinkelEinlesen("alpha");
           BerechneWerte(b, c, -1, alpha, -1, -1);
       }

       static void BerechnungBCBeta()
       {
           Console.WriteLine("Hallo, Sie haben sich für Variante b, c, beta entschieden");
           double b = SeiteEinlesen("b");
           double c = SeiteEinlesen("c");
           double beta = WinkelEinlesen("beta");
           BerechneWerte(b, c, -1, beta, -1, -1);
       }
       static void BerechnungBCGamma()
       {
           Console.WriteLine("Hallo, Sie haben sich für Variante b, c, gamma entschieden");
           double b = SeiteEinlesen("b");
           double c = SeiteEinlesen("c");
           double gamma = WinkelEinlesen("gamma");
           BerechneWerte(b, c, -1, gamma, -1, -1);
       }
       static void BerechnungAAlphaBeta()
       {
           Console.WriteLine("Hallo, Sie haben sich für Variante a, alpha, beta entschieden");
           double a = SeiteEinlesen("a");
           double alpha = WinkelEinlesen("alpha");
           double beta = WinkelEinlesen("beta");
           BerechneWerte(a, -1, -1, alpha, beta, -1);
       }

       static void BerechnungBAlphaBeta()
       {
           Console.WriteLine("Hallo, Sie haben sich für Variante b, alpha, beta entschieden");
           double b = SeiteEinlesen("b");
           double alpha = WinkelEinlesen("alpha");
           double beta = WinkelEinlesen("beta");
           BerechneWerte(b, -1, -1, alpha, beta, -1);
       }
       static void BerechnungCAlphaBeta()
       {
           Console.WriteLine("Hallo, Sie haben sich für Variante c, alpha, beta entschieden");
           double c = SeiteEinlesen("c");
           double alpha = WinkelEinlesen("alpha");
           double beta = WinkelEinlesen("beta");
           BerechneWerte(c, -1, -1, alpha, beta, -1);
       }
       static void BerechnungAAlphaGamma()
       {
           Console.WriteLine("Hallo, Sie haben sich für Variante a, alpha, gamma entschieden");
           double a = SeiteEinlesen("a");
           double alpha = WinkelEinlesen("alpha");
           double gamma = WinkelEinlesen("gamma");
           BerechneWerte(a, -1, -1, alpha, gamma, -1);
       }

       static void BerechnungBAlphaGamma()
       {
           Console.WriteLine("Hallo, Sie haben sich für Variante b, alpha, gamma entschieden");
           double b = SeiteEinlesen("b");
           double alpha = WinkelEinlesen("alpha");
           double gamma = WinkelEinlesen("gamma");
           BerechneWerte(b, -1, -1, alpha, gamma, -1);
       }
       static void BerechnungCAlphaGamma()
       {
           Console.WriteLine("Hallo, Sie haben sich für Variante c, alpha, gamma entschieden");
           double c = SeiteEinlesen("c");
           double alpha = WinkelEinlesen("alpha");
           double gamma = WinkelEinlesen("gamma");
           BerechneWerte(c, -1, -1, alpha, gamma, -1);
       }
       static void BerechnungABetaGamma()
       {
           Console.WriteLine("Hallo, Sie haben sich für Variante a, beta, gamma entschieden");
           double a = SeiteEinlesen("a");
           double beta = WinkelEinlesen("beta");
           double gamma = WinkelEinlesen("gamma");
           BerechneWerte(a, -1, -1, beta, gamma, -1);
       }

       static void BerechnungBBetaGamma()
       {
           Console.WriteLine("Hallo, Sie haben sich für Variante b, beta, gamma entschieden");
           double b = SeiteEinlesen("b");
           double beta = WinkelEinlesen("beta");
           double gamma = WinkelEinlesen("gamma");
           BerechneWerte(b, -1, -1, beta, gamma, -1);
       }
       static void BerechnungCBetaGamma()
       {
           Console.WriteLine("Hallo, Sie haben sich für Variante c, beta, gamma entschieden");
           double c = SeiteEinlesen("c");
           double beta = WinkelEinlesen("beta");
           double gamma = WinkelEinlesen("gamma");
           BerechneWerte(c, -1, -1, beta, gamma, -1);
       }
       static void BerechnungABC()
       {
           Console.WriteLine("Hallo, Sie haben sich für Variante a, b, c entschieden");
           double a = SeiteEinlesen("a");
           double b = SeiteEinlesen("b");
           double c = SeiteEinlesen("c");
           BerechneWerte(a, b, c, -1, -1, -1);
       }
       static void BerechnungAlphaBetaGamma()
       {
           Console.WriteLine("Hallo, Sie haben sich für Variante alpha, beta, gamma entschieden");
           Console.WriteLine("Eine Berechnung der Seiten ist leider nicht möglich!!");
       }

       static void BerechneWerte(double a, double b, double c, double alpha, double beta, double gamma)
       {
           //alpha = (Math.Asin ((a / b) * Math.Sin(beta * Math.PI / 180)) * 180 / Math.PI);
           //beta = (Math.Asin((a / c) * Math.Sin(gamma * Math.PI / 180)) * 180 / Math.PI);
           //gamma = (Math.Asin((c / a) * Math.Sin(alpha * Math.PI / 180)) * 180 / Math.PI);

           //alpha = (Math.Asin((a / c) * Math.Sin(gamma * Math.PI / 180)) * 180 / Math.PI);
           beta = (Math.Asin((b / a) * Math.Sin(alpha * Math.PI / 180)) * 180 / Math.PI);
           //gamma = (Math.Asin((c / b) * Math.Sin(beta * Math.PI / 180)) * 180 / Math.PI);

           gamma = (180 - alpha - beta);
           //beta = (180 - gamma - beta);
           //alpha = (180 - beta - gamma);

           //alpha = Math.Acos ((b*b + c*c - a*a) / (2*b*c));
           //beta = Math.Acos ((a*a + c*c -b*b) / (2*a*c));
           //gamma = Math.Acos ((a*a + b*b - c*c) / (2*a*b));

           //a = Math.Sqrt((b+b) + (c+c) - 2*b*c*Math.Cos(alpha * Math.PI / 180));
           //b = Math.Sqrt((a+a) + (c+c) - 2*a*c*Math.Cos(beta * Math.PI / 180));
           //c = Math.Sqrt((a+a) + (b+b) - 2*a*b*Math.Cos(gamma * Math.PI / 180));

           //a = ((Math.Sin(alpha) / (Math.Sin(beta)) * b));
           //b = ((Math.Sin(beta) / (Math.Sin(alpha)) * a));
           //b = ((Math.Sin(beta) / (Math.Sin(gamma)) * c));
           c = ((Math.Sin(gamma) / (Math.Sin(beta)) * b));
           //c = ((Math.Sin(gamma) / (Math.Sin(alpha)) * a));
           //a = ((Math.Sin(alpha) / (Math.Sin(gamma)) * c));

           double radius = a / (2 * Math.Sin(alpha * Math.PI / 180));
           //double radius = b / (2 * Math.Sin(beta * Math.PI / 180));
           //double radius = c / (2 * Math.Sin(gamma * Math.PI / 180));

           double flaeche = Math.PI * (radius * radius);

           ErgebnisAusgeben(a, b, c, alpha , beta, gamma, radius, flaeche);
       }

       static void ErgebnisAusgeben(double a, double b, double c, double alpha, double beta, double gamma, double radius, double flaeche)
       {
           Console.WriteLine("\nDer Betrag für den Winkel Alpha lautet: " + alpha);
           Console.WriteLine("\nDer Betrag für den Winkel Beta lautet: " + beta);
           Console.WriteLine("\nDer Betrag für den Winkel Gamma lautet: " + gamma);
           Console.WriteLine("\nDer Betrag für die Seite a lautet: " + a);
           Console.WriteLine("\nDer Betrag für die Seite b lautet: " + b);
           Console.WriteLine("\nDer Betrag für die Seite c lautet: " + c);
           Console.WriteLine("\nDer Betrag für den Radius r lautet: " + radius);
           Console.WriteLine("\nDer Betrag für die Kreisfläche f lautet: " + flaeche);
           Console.WriteLine("\n\n\n\nTabellarische Aufstellung der Ergebnisse\n");
           Console.WriteLine("Seite A \t Seite B \t Seite C \t Winkel Alpha \t Winkel Beta \t Winkel Gamma \t Fläche\n");

           Console.WriteLine("{0}\t\t    {1}\t\t     {2}\t\t {3}\t   {4}\t\t   {5}\t\t   {6}\t", a, b, c, alpha, beta, gamma, flaeche);
           Console.ReadLine();
       }

   }

}


Moderiert von user profile iconGausi: C#-Tags hinzugefügt
Moderiert von user profile iconGausi: Topic aus VCL (Visual Component Library) verschoben am Mo 12.12.2011 um 13:09
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4805
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mo 12.12.11 15:05 
Hallo und :welcome:

die BerechneWerte-Methode macht so ja keinen Sinn, sondern du benötigst ja jeweils in den einzelnen Berechnungsmethoden (z.B. BerechnungABAlpha) die konkrete Formel und mußt dann jeweils ErgebnisAusgeben aufrufen (wobei eine Berechnungsmethode eigentlich keine Ausgabe durchführen sollte).

Anhand der Winkel kannst du ja erkennen, ob es sich um ein rechtwinkliges handelt (wenn ein Winkel 90° hat). Und gleichseitig anhand der Längen von a, b und c und gleichschenklig wenn 2 Winkel gleich groß sind.
Reini100 Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mo 12.12.11 15:38 
user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
Hallo und :welcome:

die BerechneWerte-Methode macht so ja keinen Sinn, sondern du benötigst ja jeweils in den einzelnen Berechnungsmethoden (z.B. BerechnungABAlpha) die konkrete Formel und mußt dann jeweils ErgebnisAusgeben aufrufen (wobei eine Berechnungsmethode eigentlich keine Ausgabe durchführen sollte).

Anhand der Winkel kannst du ja erkennen, ob es sich um ein rechtwinkliges handelt (wenn ein Winkel 90° hat). Und gleichseitig anhand der Längen von a, b und c und gleichschenklig wenn 2 Winkel gleich groß sind.




Hallo

kannst du mir ein Beispiel in für eine Methode schreiben???

lg