Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   

Die mobilen Seiten von c++.de:
http://m.c-plusplus.de
Infos hier [BETA]

  
c++.de :: C++ (auch C++0x und C++11) ::  Verbesserungsvorschläge  
Gehen Sie zu Seite 1, 2  Weiter
  Zeige alle Beiträge auf einer Seite
Auf Beitrag antworten
Autor Nachricht
Flyerz1934
Unregistrierter




Beitrag Flyerz1934 Unregistrierter 09:26:42 15.05.2012   Titel:   Verbesserungsvorschläge            Zitieren

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
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
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
#include <iostream>
#include <string>
using namespace std;
 
int main()
{
    int ichoice;
    int ichoice1;
    int choice;
    int choice1;
    int choice2;
    int choice3;
    const double PI = 3.14;
    double umfang_kreis;
    double radius_kreis;
    double flaeche_kreis;
    double grundflaeche_pyramide;
    double hoehe_pyramide;
    double volumen_pyramide;
    double seite_dreieck;
    double hoehe_dreieck;
    double flaeche_dreieck;
    double seite_rhomboid;
    double hoehe_rhomboid;
    double flaeche_rhomboid;
    double flaeche_rhombus;
    double hoehe_rhombus;
    double seite_rhombus;
    double flaeche_quadrat;
    double seite_quadrat;
    double laenge_rechteck;
    double breite_rechteck;
    double tiefe_rechteck;
    double volumen_rechteck;
    double flaeche_rechteck;
    double kantenlaenge_wuerfel;
    double volumen_wuerfel;
    float num1;
    float num2;
    float sum1;
    char multi = '*';
    char ccount;
    char cyesno;
    char durch = '/';
   
    Menu:
         system("cls");
         cout << "Waehle: " << endl;
         cout << "1. Mathematik" << endl;
         cout << "2. Geometrie" << endl;
         cout << "3. Exit" << endl;
         
         
         cin >> ichoice;
         system("cls");
         
         if(ichoice == 1) {goto Mathematik; }
         if(ichoice == 2) {goto Geometrie;}
         if(ichoice == 3) {goto Exit; }
         else {
              cout << "Falsche Eingabe!" << endl;
              cerr << "Druecke eine Taste um fortzufahren" << endl;
              getchar();
              goto Menu;
              }
             
    Mathematik:
               system("cls");
                         
               cout << "1 Zahl: ";
               cin >> num1;
                         
               cout << "Operationszeichen (+, -, *, /):";
               cin >> ccount;
                         
               cout << "2 Zahl: ";
               cin >> num2;
               system("cls");
                         
               if(ccount =='+') { sum1 = num1 + num2; };
               if(ccount =='-') { sum1 = num1 - num2; };
               if(ccount =='*') { sum1 = num1 * num2; };
               if(ccount =='/') { sum1 = num1 / num2; };
             
               cout << "Summe: " << endl;
               cout << num1 << " " << ccount << " " << num2 << " = " << sum1 << endl << endl;
             
               cout << "Nochmal rechnen?" << endl << "[Y/N]: ";
               cin >> cyesno;
               if(cyesno =='y') {goto Mathematik; }
               if(cyesno =='n') {goto Menu;}
               else { goto confirm_calc; }
             
    confirm_calc:
                 cout << endl << endl << endl << "Falsche Eingabe!" << endl;
                 cout << "Nochmal rechnen?" << endl << "[Y/N]: ";
                 cin >> cyesno;
                 if(cyesno =='y') {goto Mathematik; }
                 if(cyesno =='n') {goto Menu;}
                 else { goto confirm_calc; }
                 
    Geometrie:
                 system("cls");
                 
                 cout << "Waehle: " << endl;
                 cout << "1. Rechteck, Quadrat, Wuerfel" << endl;
                 cout << "2. Rhombus, Rhomboid" << endl;
                 cout << "3. Dreieck, Pyramide" << endl;
                 cout << "4. Kreis, Kugel" << endl;
                 
                 
                 cin >> ichoice1;
                 system("cls");
                 
                 if(ichoice1 == 1){goto Rechteck_Quadrat_Wuerfel; }          
                 if(ichoice1 == 2){goto Rhombus_Rhomboid; }
                 if(ichoice1 == 3){goto Dreieck_Pyramide; }
                 if(ichoice1 == 4){goto Kreis_Kugel; }
                 else {
                       cout << "Falsche Eingabe!" << endl;
                       cout << "Druecke eine Taste um fortzufahren" << endl;
                       getchar();
                       goto Menu;
                       }
                       
    Rechteck_Quadrat_Wuerfel:
                               system("cls");
                               
                               cout << "1. Flaeche: Rechteck" << endl;
                               cout << "2. Flaeche: Quadrat" << endl;
                               cout << "3. Volumen: Rechteck(Quader)" << endl;
                               cout << "4. Volumen: Wuerfel" << endl;
                               
                               cin >> choice;
                               system("cls");
                               
                               if(choice == 1){goto Flaeche_Rechteck; }
                               if(choice == 2){goto Flaeche_Quadrat; }
                               if(choice == 3){goto Volumen_Rechteck; }
                               if(choice == 4){goto Volumen_Wuerfel; }
                               else {
                                    cout << "Falsche Eingabe!" << endl;
                                    cout << "Druecke eine Taste um fortzufahren" << endl;
                                    getchar();
                                    goto Menu;
                                    }
                                   
    Flaeche_Rechteck:
                      system("cls");
                     
                      cout << "Geben Sie die Länge ein: ";
                      cin >> laenge_rechteck;
                     
                      cout << "Geben Sie die Breite ein: ";
                      cin >> breite_rechteck;
                     
                      flaeche_rechteck = ( laenge_rechteck * breite_rechteck );
                     
                      cout << laenge_rechteck << " " << multi << " " << breite_rechteck << " = " << flaeche_rechteck << "cm2" << endl << endl;
                     
                      cout << "Noch eine Rechtecksflaeche berechnen?" << endl << "[Y/N]: ";
                      cin >> cyesno;
                      if(cyesno =='y') {goto Flaeche_Rechteck; }
                      if(cyesno =='n') {goto Menu;}
                      else { goto confirm_calc; }
                     
    Volumen_Rechteck:
                     system("cls");
                     
                     cout << "Geben Sie die Länge ein: ";
                     cin >> laenge_rechteck;
                     
                     cout << "Geben Sie die Breite ein: ";
                     cin >> breite_rechteck;
                     
                     cout << "Geben Sie die Tiefe ein: ";
                     cin >> tiefe_rechteck;
                     
                     volumen_rechteck = ( laenge_rechteck * breite_rechteck * tiefe_rechteck );
                     
                     cout << laenge_rechteck << " " << multi << " " << breite_rechteck << " " << multi << " " << tiefe_rechteck << " = " << volumen_rechteck << "ccm" << endl << endl;
                     
                     cout << "Noch ein Rechtecksvolumen berechnen?" << endl << "[Y/N]: ";
                      cin >> cyesno;
                      if(cyesno =='y') {goto Volumen_Rechteck; }
                      if(cyesno =='n') {goto Menu;}
                      else { goto confirm_calc; }
                     
    Flaeche_Quadrat:
                    system("cls");
                   
                    cout << "Geben Sie eine Seitenlänge ein: ";
                    cin >> seite_quadrat;
                   
                    flaeche_quadrat = ( seite_quadrat * seite_quadrat );
                   
                    cout << seite_quadrat << " " << multi << " " << seite_quadrat << " = " << flaeche_quadrat << "cm2" << endl << endl;
                   
                    cout << "Noch eine Quadratflaeche berechnen berechnen?" << endl << "[Y/N]: ";
                      cin >> cyesno;
                      if(cyesno =='y') {goto Flaeche_Quadrat; }
                      if(cyesno =='n') {goto Menu;}
                      else { goto confirm_calc; }
                   
    Volumen_Wuerfel:
                    system("cls");
                   
                    cout << "Geben Sie die Kantenlänge ein: ";
                    cin >> kantenlaenge_wuerfel;
                   
                    volumen_wuerfel = ( kantenlaenge_wuerfel * kantenlaenge_wuerfel * kantenlaenge_wuerfel );
                   
                    cout << kantenlaenge_wuerfel << " " << multi << " " << kantenlaenge_wuerfel << " " << multi << " " << kantenlaenge_wuerfel << " = " << volumen_wuerfel << "ccm" << endl << endl;
                   
                    cout << "Noch eine Würfel berechnen?" << endl << "[Y/N]: ";
                      cin >> cyesno;
                      if(cyesno =='y') {goto Volumen_Wuerfel; }
                      if(cyesno =='n') {goto Menu;}
                      else { goto confirm_calc; }
                     
    Rhombus_Rhomboid:
                     system("cls");
                               
                               cout << "1. Flaeche: Rhombus" << endl;
                               cout << "2. Flaeche: Rhomboid" << endl;
                                                             
                               cin >> choice1;
                               system("cls");
                               
                               if(choice1 == 1){goto Flaeche_Rhombus; }
                               if(choice1 == 2){goto Flaeche_Rhomboid; }
                               else {
                                    cout << "Falsche Eingabe!" << endl;
                                    cout << "Druecke eine Taste um fortzufahren" << endl;
                                    getchar();
                                    goto Menu;
                                    }
                                   
    Flaeche_Rhombus:
                    system("cls");
                   
                    cout << "Geben Sie irgendeine Seite ein: ";
                    cin >> seite_rhombus;
                   
                    cout << "Geben Sie die Hoehe h ein: ";
                    cin >> hoehe_rhombus;
                   
                    flaeche_rhombus = ( seite_rhombus * hoehe_rhombus );
                   
                    cout << seite_rhombus << " " << multi << " " << hoehe_rhombus << " = " << flaeche_rhombus << endl << endl;
                   
                    cout << "Noch eine Rhombus berechnen?" << endl << "[Y/N]: ";
                      cin >> cyesno;
                      if(cyesno =='y') {goto Flaeche_Rhombus; }
                      if(cyesno =='n') {goto Menu;}
                      else { goto confirm_calc; }
                   
    Flaeche_Rhomboid:
                     system("cls");
                     
                     cout << "Geben Sie eine Seite ein: ";
                     cin >> seite_rhomboid;
                     
                     cout << "Geben Sie die dazugehoerige Hoehe ein: ";
                     cin >> hoehe_rhomboid;
                     
                     flaeche_rhomboid = ( seite_rhomboid * hoehe_rhomboid );
                     
                     cout << seite_rhomboid << " " << multi << " " << hoehe_rhomboid << " = " << flaeche_rhomboid << endl << endl;
                     
                     cout << "Noch eine Rhomboid berechnen?" << endl << "[Y/N]: ";
                      cin >> cyesno;
                      if(cyesno =='y') {goto Flaeche_Rhomboid; }
                      if(cyesno =='n') {goto Menu;}
                      else { goto confirm_calc; }
                     
    Dreieck_Pyramide:
                     system("cls");
                               
                               cout << "1. Flaeche: Dreieck" << endl;
                               cout << "2. Volumen: Pyramide" << endl;
                                                             
                               cin >> choice2;
                               system("cls");
                               
                               if(choice2 == 1){goto Flaeche_Dreieck; }
                               if(choice2 == 2){goto Volumen_Pyramide; }
                               else {
                                    cout << "Falsche Eingabe!" << endl;
                                    cout << "Druecke eine Taste um fortzufahren" << endl;
                                    getchar();
                                    goto Menu;
                                    }
                                     
    Flaeche_Dreieck:
                    system("cls");
                   
                    cout << "Geben Sie eine Seite ein: ";
                    cin >> seite_dreieck;
                   
                    cout << "Geben Sie die dazugehoerige Hoehe ein: ";
                    cin >> hoehe_dreieck;
                   
                    flaeche_dreieck = ( seite_dreieck * hoehe_dreieck / 2 );
                   
                    cout << seite_dreieck << " " << multi << " " << hoehe_dreieck << " " << durch << " " << " 2 " <<  " = " << flaeche_dreieck << endl << endl;
                   
                    cout << "Noch ein Dreieck berechnen?" << endl << "[Y/N]: ";
                      cin >> cyesno;
                      if(cyesno =='y') {goto Flaeche_Dreieck; }
                      if(cyesno =='n') {goto Menu;}
                      else { goto confirm_calc; }
                     
    Volumen_Pyramide:
                    system("cls");
                   
                    cout << "Geben Sie die Grundflaeche ein: ";
                    cin >> grundflaeche_pyramide;
                   
                    cout << "Geben Sie die Hoehe der Pyramide ein: ";
                    cin >> hoehe_pyramide;
                   
                    volumen_pyramide = ( grundflaeche_pyramide * hoehe_pyramide / 3 );
                   
                    cout << grundflaeche_pyramide << " " << multi << " " << hoehe_pyramide << " " << durch << " " << " 2 " << " = " << volumen_pyramide << endl << endl;
                   
                    cout << "Noch eine Pyramide berechnen?" << endl << "[Y/N]: ";
                      cin >> cyesno;
                      if(cyesno =='y') {goto Volumen_Pyramide; }
                      if(cyesno =='n') {goto Menu;}
                      else { goto confirm_calc; }
                     
    Kreis_Kugel:
                system("cls");
                               
                               cout << "1. Flaeche: Kreis" << endl;
                               cout << "2. Umfang: Kreis" << endl;
                                                             
                               cin >> choice3;
                               system("cls");
                               
                               if(choice3 == 1){goto Flaeche_Kreis; }
                               if(choice3 == 2){goto Umfang_Kreis; }
                               else {
                                    cout << "Falsche Eingabe!" << endl;
                                    cout << "Druecke eine Taste um fortzufahren" << endl;
                                    getchar();
                                    goto Menu;
                                    }
                                   
    Flaeche_Kreis:
                  system("cls");
                 
                  cout << "Geben Sie den Radius ein: ";
                  cin >> radius_kreis;
                 
                  flaeche_kreis = ( radius_kreis * radius_kreis * PI );
                 
                  cout << radius_kreis << " " << multi << " " << radius_kreis << " " << multi << " " << PI << " = " << flaeche_kreis << endl << endl;
                 
                  cout << "Noch einen Kreis berechnen?" << endl << "[Y/N]: ";
                      cin >> cyesno;
                      if(cyesno =='y') {goto Flaeche_Kreis; }
                      if(cyesno =='n') {goto Menu;}
                      else { goto confirm_calc; }
               
               
    Umfang_Kreis:
                  system("cls");
                 
                  cout << "Geben Sie den Radius ein: ";
                  cin >> radius_kreis;
                 
                  umfang_kreis = ( radius_kreis * 2 * PI );
                 
                  cout << radius_kreis << " " << multi << " " << 2 << " " << multi << " " << PI << " = " << umfang_kreis << endl << endl;
                 
                  cout << "Noch einen Umfang berechnen?" << endl << "[Y/N]: ";
                      cin >> cyesno;
                      if(cyesno =='y') {goto Umfang_Kreis; }
                      if(cyesno =='n') {goto Menu;}
                      else { goto confirm_calc; }
                 
   
                 
    Exit:
                 return 0;
                 }
Unregistrierter





Beitrag Unregistrierter 09:55:09 15.05.2012   Titel:              Zitieren

Alles neu! Haste bei Jürgen Wolf gelernt oder was!? Das ist unglaublich hässlich, Variablennamen immer so lokal wie möglich halten, niemals den Standard-Namensraum ausschütten, keine OS-spezifischen Konsolenbefehle benutzen, und dazu ist das alles noch so imperativ programmiert.....
arghonaut
Unregistrierter




Beitrag arghonaut Unregistrierter 10:05:38 15.05.2012   Titel:              Zitieren

Hacker schrieb:
Alles neu! Haste bei Jürgen Wolf gelernt oder was!? Das ist unglaublich hässlich, Variablennamen immer so lokal wie möglich halten, niemals den Standard-Namensraum ausschütten, keine OS-spezifischen Konsolenbefehle benutzen, und dazu ist das alles noch so imperativ programmiert.....

Das ist doch alles relativ wurscht.
Das eigentliche Problem ist mMn., dass alles in der main gemacht wird, und anstatt die Funktionalität in Funktionen/Klassen auszulagern, wird alles hinter Sprungmarken (goto) versteckt. Das wird unheimlich unübersichtlich und schwer erweiterbar.
SeppJ
Moderator

Benutzerprofil
Anmeldungsdatum: 10.06.2008
Beiträge: 17991
Beitrag SeppJ Moderator 10:09:11 15.05.2012   Titel:              Zitieren

Abstraktion! Du wiederholst 20x fast den gleichen Code. Versuche dein Problem in Funktionen zu zerlegen, die du mehrmals benutzen kannst. Optimalerweise* hast du in deinem Code keine zwei Zeilen Code jemals doppelt.

Werde den Spaghettisalat mit den ganzen gotos los! Die Zerlegung in Funktionen wird dir dabei helfen. Im Prinzip dürfte jedes goto bei dir stattdessen ein Funktionsaufruf werden, denn deine jetzigen Codeblöcke entsprechen schon fast Funktionen. Vorteil der Funktionen ist aber gewaltig, denn dann ist garantiert, dass die Codeblöcke auch wirklich unanbhängig sind und ein normaler Mensch (d.h. jeder außer dir und du selber in ein bis zwei Wochen) kann das Programm nachvollziehen, ohne neue Hirnwindungen zu bekommen.

Das sind erst einmal die allerwichtigsten zwei Punkte. Wenn das gemacht ist, kann man weitergucken, es gibt noch viel mehr Verbesserungspotential.


*: Naja, wirklich optimal ist das nicht, aber es ist eine gute Anfängerübung, wenn du dies anstrebst.

_________________
Du brauchst Hilfe?, Buchempfehlungen für C++,
Wie man in Fragen den richtigen Code postet,
The Definitive C++ Book Guide and List
Unregistrierter





Beitrag Unregistrierter 11:46:52 15.05.2012   Titel:              Zitieren

arghonaut schrieb:
Hacker schrieb:
Alles neu! Haste bei Jürgen Wolf gelernt oder was!? Das ist unglaublich hässlich, Variablennamen immer so lokal wie möglich halten, niemals den Standard-Namensraum ausschütten, keine OS-spezifischen Konsolenbefehle benutzen, und dazu ist das alles noch so imperativ programmiert.....

Das ist doch alles relativ wurscht.
Das eigentliche Problem ist mMn., dass alles in der main gemacht wird, und anstatt die Funktionalität in Funktionen/Klassen auszulagern, wird alles hinter Sprungmarken (goto) versteckt. Das wird unheimlich unübersichtlich und schwer erweiterbar.


Hmmm? Das war ein Punkt von mir.
Flyerz1934
Unregistrierter




Beitrag Flyerz1934 Unregistrierter 12:14:51 15.05.2012   Titel:              Zitieren

Vielen Dank für die Vorschläge.

Nun ich mach das Programm für die Schule als Projekt.
Öhm ich übe das Ganze mit einem Buch (jetzt lerne ich C++ , Dirk Louis)
Ausserdem werde ich das alles noch in der Ausbildung lernen ;).

Das Buch hab ich noch ned fertig deshalb kenn ich das mit den Funktionen nicht.

Ich werde das sicher noch versuchen zu ändern.
Könnt ihr mir sagen wie man hoch 2 macht?
volkard
Moderator

Benutzerprofil
Anmeldungsdatum: 06.04.2000
Beiträge: 25714
Beitrag volkard Moderator 12:16:52 15.05.2012   Titel:              Zitieren

p ist zwei hoch x
als double:
double p=std::pow(2,x);
als int:
int p=1<<x;

_________________
ewr-dienstleister krankenversicherung
SeppJ
Moderator

Benutzerprofil
Anmeldungsdatum: 10.06.2008
Beiträge: 17991
Beitrag SeppJ Moderator 12:18:27 15.05.2012   Titel:              Zitieren

Wie wäre es allgemein mit x*x?


edit: so ein kurzer Satz, so viele Rechtschreibfehler, *schäm*.

_________________
Du brauchst Hilfe?, Buchempfehlungen für C++,
Wie man in Fragen den richtigen Code postet,
The Definitive C++ Book Guide and List


Zuletzt bearbeitet von SeppJ am 12:19:16 15.05.2012, insgesamt 1-mal bearbeitet
314159265358979
Mitglied

Benutzerprofil
Anmeldungsdatum: 09.03.2010
Beiträge: 4658
Beitrag 314159265358979 Mitglied 12:21:00 15.05.2012   Titel:              Zitieren

@volkard: Er will doch x^2, nicht 2^x.
volkard
Moderator

Benutzerprofil
Anmeldungsdatum: 06.04.2000
Beiträge: 25714
Beitrag volkard Moderator 12:22:52 15.05.2012   Titel:              Zitieren

Flyerz1934 schrieb:
Das Buch hab ich noch ned fertig deshalb kenn ich das mit den Funktionen nicht.

Draußen scheint die Sonne. Setz eine Sonnebrille auf und geh mit dem Buch in den Garten und hau es Dir flugs in den Kopf. Ganz oberflächlich, so daß Du es bis morgen durch hast.

Und dann mach weiter wie gehabt, aber mit einem besseren Blick fürs Große. Im Endeffekt sparst Du damit sicherlich einiges an Zeit. (Benutze für dieses Projekt keine selbergebauten Klassen.)

_________________
ewr-dienstleister krankenversicherung
c++.de :: C++ (auch C++0x und C++11) ::  Verbesserungsvorschläge  
Gehen Sie zu Seite 1, 2  Weiter
Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.