Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Übertragung von C++source in C-source

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ 16 ] > 17 < [ 18 ] [ 19 ] [ 20 ]
160
06.01.2004, 15:45 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



Zitat:

Naja, virtual war schneller als ich und er kennt sich mit den Standards viel besser als ich aus, ich frag mich manchmal, woher er so viel von den Standards weiß...


Ich habe manchmal den Eindruck er ist mit Herrn Stroustrup verwandt...
Sein Bügerlichername ist Klaus Stroustrup...
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 06.01.2004 um 15:45 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
161
06.01.2004, 15:47 Uhr
Lumina



oh, oh, oh, ...

zurück zu Aufgabe 4, das Riesenprogramm, wie kann ich erfolgreich den Fehler abfangen, wenn der Nenner mal 0 wird bei der Lösung des lin. Gl.Systems?
--
*******************************************
Willst du glücklich sein im Leben, trage bei zu and'rer Glück,
denn die Freude, die wir geben, kehrt ins eig'ne Herz zurück!
*******************************************
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
162
06.01.2004, 15:54 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



C++:
if(nenner==0)fehlerbehandlung else normal im proggie weiter;


--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
163
06.01.2004, 16:28 Uhr
Clair Grube



virtual hat sich den Draft zugelegt für 18 Euro.
Hat er mal gesagt, glaube ich, und so ca 20 Bücher zum Thema C++.
Ich sammle noch, aber den Standard in Papierform würde ich mir nie kaufen, wozu gibt es denn virtual.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
164
06.01.2004, 16:50 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



Zitat:

Ich sammle noch, aber den Standard in Papierform würde ich mir nie kaufen, wozu gibt es denn virtual


das ist dann quasi so wie bei den Juristen. Die haben imemr ihren schönfelder als einzelne seiten in so nen fetten ordner geheftet und zahlen im jahr weiss ich wieviel euro damit die immer die aktuellen seiten zugeschickt bekommen wenn sich was ändert. Mal ganz vom dem aufwand abgesehen den scheiss immer an der richtigen stelle einzuheften....
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
165
06.01.2004, 17:57 Uhr
0xdeadbeef
Gott
(Operator)


Noch ne Sache - der Ausdruck

C++:
main() {

}


und vergleichbare ist nach dem alten ANSI-C Standard von 89 korrekt. Der neue Standard (ANSI/ISO C99) erlaubt das nicht mehr. Dasselbe gilt für die - zu Recht - etwas aus der Mode gekommene Parameterauflistung:

C++:
main(argc, argv)
  char *argv[];
{

}


In C89 wurde, wenn der Typ nicht bekannt war, automatisch int angenommen. C99 ist da strenger mit dem Programmierer. (Was es für C-Golf ziemlich nutzlos macht )

Ansonsten kannst du mit void main die wildesten Effekte haben. Sowas kann unter Umständen den Stack korrumpieren und zu einem Absturz des Programms führen, was widerum vor allem dann ziemlich bösartig ist, wenn du das Programm in einem Skript benutzen willst. Dass es unter Windows funktioniert, ist reiner Zufall, ähnlich wie fflush(stdin).
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
166
06.01.2004, 19:09 Uhr
Pablo
Supertux
(Operator)



Zitat:
Lumina postete
oh, oh, oh, ...

zurück zu Aufgabe 4, das Riesenprogramm, wie kann ich erfolgreich den Fehler abfangen, wenn der Nenner mal 0 wird bei der Lösung des lin. Gl.Systems?


So, da bin cih wieder Welchen Nenner meinst du? Wie machst du eigentlich die Eingabe der verschiedenen Gleichungen?

PS: ich glaube, wenn du mehr als 4 Variablen und Gleichungen lösen willst, könnte es wirklich ecklig werden, vor allem, wenn man 2 Gleichungen Vielfachen von sich selbst sind wie 2x_1+ 3x_2-5x_3 = 8 und -20x_1 - 30x_2+50x_3 = -80 --> dann gibt es keine eindeutige Lösung und man sollte dann die Menge der Lösungen eingeben und das könnte ne harte Arbeite sein. Deshalb bin ich der Meinung, dass wie es langsam machen sollten und vor allem, am Anfang, die Fähigkeiten einschränken, dass man immer eine Lösung finden kann, usw. und wenn wir das hinkriegen, dann könnten wir den Rest weiter machen.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 06.01.2004 um 19:13 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
167
06.01.2004, 19:15 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@Pablo
ist kein Problem
einfach determinante ausrechenen....wenn die nicht 0 ist dann gibt es eine eindeutige Lösung... dann den Cramer rüberjagen und fertisch ist der Krempel...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
168
06.01.2004, 19:49 Uhr
Pablo
Supertux
(Operator)


Das ist mir auch klar, das habe ich auch früher vorgeschlagen alles in eine Mat. zu packen. Aber wenn die Lösung nicht eideutig ist, dann sollte man die Menge der Vektoren angeben, die die Lösungsebene (falls es Ebene, oder Gerade, oder was auch immer kommt) angeben, und dafür fällt mir im Moment nichts ein.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
169
06.01.2004, 20:38 Uhr
Lumina



hier ist die Angabe zu dem ganzen Kram:

Aufgabe 4:
Schreiben Sie ein Programm, das alternativ eine Matrix invertiert, die Determinante einer Matrix berechnet oder die Lösung eines linearen Gleichungssystems berechnet. Die Matrixelemente beziehungsweise die Koeffizienten des Gleichungssystems seien dabei reelle Zahlen. Beim Aufruf des Programms soll dem Benutzer ein Auswahlmenü angeboten werden, in dem er durch Eingabe eines Zeichens (bspw. 1, 2, 3, oder 4) zwischen den Alternativen

I.„Matrixinvertierung“
II.„Determinantenberechnung“
III.„Lösung eines linearen Gleichungssystems“ und
IV.„Abbruch“

wählen kann.

Danach (falls nicht Alternative IV gewählt wurde) wird er aufgefordert, die Dimension der Matrix/des Gleichungssystems anzugeben (für 3x3-Matrix bspw. Eingabe von 3). die Matrixelemente und Koeffizienten sind abschließend einzugeben, bevor die Berechnung beginnt und die Ergebnisse angezeigt werden. Dann wird das Menü erneut angeboten, bis der Benutzer die Alternative IV wählt.

Achten sie bei der Realisierung ihres Programms auf eine gute Strukturierung durch Einführung von Funktionen zur Lösung von Teilaufgaben. So sollten zumindest die angebotenen drei Alternativen in einzelnen Funktionen abgebildet werden. Besser ist eine weitere Unterteilung in Funktionen zur eigentlichen Berechnung und Funktionen mit Benutzerinteraktion.

Hinweise:
Sie können im Programm von einer maximal zu behandelnden Matrixdimension ausgehen. Der Benutzer ist bei Eingabe größerer Werte zu informieren. Vektoren/Matrizen können Sie in C durch Angabe von eckigen Klammern mit den Einzeldimensionen hinter dem Variablenbezeichner definieren. Die Indizierung – ebenfalls über eckige Klammern – beginnt in C mit 0. Ein Vektor der Dimension 3 und eine 3x3-Matrix mit double-Werten kann in C bspw. Folgendermaßen definiert und zugegriffen werden:

double vek[3];
double mat[3][3];

vek[1]=4.1; /* Zweites Vektorelement bechrieben */
mat[2][0]=8.7 /* Matrix dritte Zeile, erste Spalte */

Funktionsparameter können Sie analog angeben (Übergabe von Vekoren/Matrizen per Referenz!).

Beachten Sie, dass die Invertierung einer Matrix bzw. die eindeutige Lösung eines linearen Gleichungssystems nicht immer möglich ist und zeigen Sie es dem Benutzer an, falls ein solcher Fall auftritt.

Beachten Sie, dass der Vergleich zweier reeller Zahlen in einem Rechnersystem im Allgemeinen nicht exakt durchgeführt werden kann, da die Repräsentation einer reellen Zahl im Allgemeinen nicht exakt möglich ist.

****************
Da lässt sich doch so vereinfachen, dass man nur eine Lösung ausgibt, wenn diese eindeutig ist und keine Vektoren sind...
--
*******************************************
Willst du glücklich sein im Leben, trage bei zu and'rer Glück,
denn die Freude, die wir geben, kehrt ins eig'ne Herz zurück!
*******************************************

Dieser Post wurde am 06.01.2004 um 20:40 Uhr von Lumina editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ 16 ] > 17 < [ 18 ] [ 19 ] [ 20 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: