Prozedur Allgemeine Quadr. Fkt < Maple < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 11:36 Fr 10.11.2006 | Autor: | pamela |
Aufgabe | Sei ein Polynom [mm] p=ax^2+bx+c [/mm] gegeben. Programmieren sie eine MAPLE-Procedur quadpol() die entscheidet, ob p reelle Nullstellen hat und diese gegebenenfalls berechnet. Benutzen sie keinen solve Befehl. (Drucken Sie ihren Maple-Code mit einem Positiven und einem negativen Beispiel aus! |
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
Maple gibt mir Fehler an, die ich nicht behoben kriege.
Kann mir jemand helfen, den/die Fehler zu beseitigen?
> quadpol:= proc(a,b,c);
> local d, e, D;
> p:= [mm] 2*x^2+4*x+6;
[/mm]
>
> a:= coeff (p, x, 2);
> b:= coeff (p, x, 1);
> c:= coeff (p, x, 0);
> d:= -b/(2*a);
> e:= [mm] (4*a*c-b^2)/(4*a);
[/mm]
> D:= [mm] b^2-4*a*c;
[/mm]
>
> if D < 0 then
> print ("keine reellen Nullstellen");
> else
> If D = 0 then
> print ("eine reelle NS","S(",d,";",e,")");
> else
> print ("zwei reelle NS");
> end if;
>
> end proc;
Error, reserved word `local` unexpected
Dateianhänge: Anhang Nr. 1 (Typ: mw) [nicht öffentlich]
|
|
|
|
Hallo,
da sind einige mittelschwere Fehler in deiner Prozedur:
1. Entweder übergibst du der Prozedur die Polynomkoeffizienten a,b,c oder das Polynom p. Im ersteren Fall musst/darfst du innerhalb der Prozedur a,b und c nicht nochmal explizit bestimmen. Das Polynom p hat dort auch nichts mehr zu suchen.
Im letzteren Fall (der schöner ist), übergibst du nur p an die Prozedur, definierst a,b und c als local und lässt die Zeile mit p:=... weg.
2. GANZ WICHTIG: Hinter proc(...) darf kein Semikolon stehen!
3. Irgendwo hast du If mit großem I geschrieben.
4. Dir fehlt ein end if, da ein else if etwas anderes ist als ein else.
Mit diesen Änderungen kannst du dann deine Prozedur aufrufen mit:
quadpol(2*x^2-4*x+6);
Gruß
Martin
|
|
|
|