Font
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]1102[/thread]

Aufgabe aus Klausur: Hilfe !



<< >> 8 entries, 1 page
Cooly
 2004-02-08 15:43
#10885 #10885
User since
2003-08-04
81 articles
BenutzerIn
[Homepage] [default_avatar]
hallo - ich nerve schon wieder

aber da ich mich auf meine mündliche Prüfung vorbereite (nach einem Semester Informatik *g*) gehe ich grade die Klausur durch und versuche die Aufgaben zu lösen die ich net konnte - beim Versuch ist es geblieben ;) :


8. Formulieren Sie den Funktionskopf in C/C++ eines Nullstellenverfahrens für Gleichungssysteme. Der Funktion sollen "auf irgendeine Art" n Funktionen mit n Argumenten übergeben werden, ein Ergebnisvektor ist zurückzugeben sowie ein Fehlerstatus. Demonstrieren Sie im aufrufenden Programm wie der Aufruf zu erfolgen hat, d.h. wie konkret die Parameter zu belegen sind, wenn Sie die 3 Funktionen f1(x,y,z) = x*y+sin(z), f2(x,y,z)=x²*cos(y), f3(x,y,z)=y*tan(z)nutzen (10 Punkte)


ok ich würde spontan sagen Funktionspointerfeld - bloß wie? :(


thx

Cooly


p.s.: falls im falschen Forum bitte verschieben :D
esskar
 2004-02-08 17:23
#10886 #10886
User since
2003-08-04
7321 articles
ModeratorIn

user image
Angenohmen du hast folgende Strukturen

struct function - representiert eine Funktion
struct result - representiert ein Ergebnis
struct error - representiert einen Fehler

Code: (dl )
result* calc_zeros(const function* &, int size, error* &);


wobei size die anzahl der functionen in function* darstellt...
error* wird dann in der function alloziert (genauso wie result)und zwar mit size\n\n

<!--EDIT|esskar|1076253879-->
Cooly
 2004-02-08 18:53
#10887 #10887
User since
2003-08-04
81 articles
BenutzerIn
[Homepage] [default_avatar]
[quote=esskar,08.02.2004, 16:23]wobei size die anzahl der functionen in function* darstellt...
error* wird dann in der function alloziert (genauso wie result)und zwar mit size[/quote]
mir ist das noch nicht ganz klar - sry

wo gehen die Einzelnen Funktionen ein?

wie sieht Beispielsweise die Verarbeitung/Aufruf in der Funktion aus?

das & meint wohl Referenzen in dem Zusammenhang?


thx

Cooly
esskar
 2004-02-08 20:59
#10888 #10888
User since
2003-08-04
7321 articles
ModeratorIn

user image
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int size = 3;
function* fkt = new function[size];
fkt[0] = f1;
fkt[1] = f2;
fkt[2] = f3;

result* calc_zeros(const function* & fkts, int size, error* & errors)
{
if(size <= 1) return NULL;

result* rs = new result[size];
errors = new error[size];

for(int i = 0; i < size; i++)
{
/* in result[i] wird die nullstelle der function fkts[i] gespeichert
in errors[i] eventuell eine Fehlermeldung */
}
return rs;
}


besser ?
Cooly
 2004-02-08 22:41
#10889 #10889
User since
2003-08-04
81 articles
BenutzerIn
[Homepage] [default_avatar]
alles klar - danke\n\n

<!--EDIT|Cooly|1076272954-->
Cooly
 2004-02-24 22:24
#10890 #10890
User since
2003-08-04
81 articles
BenutzerIn
[Homepage] [default_avatar]
doppelt\n\n

<!--EDIT|Cooly|1077654531-->
Cooly
 2004-02-24 22:27
#10891 #10891
User since
2003-08-04
81 articles
BenutzerIn
[Homepage] [default_avatar]
oki sieht jetzt so aus:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
typedef double[] (*fp) (double a[], int n);

fp* fkt = new fp[3];

fkt[0] = f1;
fkt[1] = f2;
fkt[2] = f3;

//Aufruf:
ptrd = newton(fkt,3,&error);

double* newton(fp fkts[], int anzahl, int *error)
{
double * rs = new double[anzahl];
error = new int[anzahl];

for (int i=0; i<anzahl, i++)
{...}

return rs;
}


so hab ich mir das jetzt gebaut -- kann hinkommen oder?

thx Cooly\n\n

<!--EDIT|Cooly|1077654989-->
esskar
 2004-02-24 22:33
#10892 #10892
User since
2003-08-04
7321 articles
ModeratorIn

user image
jo
<< >> 8 entries, 1 page



View all threads created 2004-02-08 15:43.