Die letzten 9 Beiträge |
eulerscheZahl |
Habe dir mal ein paar Dinge kommentiert.
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
|
if z=0 then y:=sin(x) //keine Zuweisung in Abfrage, kein do, falsche Datentypen
else y:=sin(a); //kein do, a und y müssen real sein, nicht integer
if x<90 then do y:=sin(x); //kein do, Datentypen
if x>90 then x<180 then begin b:=180-x; y:=sin(b); end;
if x>180 and x<270 then begin c:=x-180; y:=vz*sin(c); end; //die beiden Bedingungen musst du glaube ich klammern
if x>270 and x<360 then begin d:=360-x; y:=vz*sin(d); end;
if x=90 then y=1;
if x=270 then y=vz*1;
if x=360 or x=180 or x=0 then y:=0; //Zuweisung |
|
|
VanesaMoonlight |
Wenn ich nicht z:<1 schreibe sondern z<1 dann bekomme ich Syntax error auf derm gleichen Reihe before 'do' |
VanesaMoonlight |
Danke für deine Antwort.
Ich bekomme einen Error: Syntax error before ':' auf dem 8. Reihe
das heißt in: {if z:<1 then do x := Sin(w);} |
eulerscheZahl |
Kann sein, dass noch mehr falsch ist, habe jetzt nicht alles gelesen (wenn dem so ist, einfach nochmal melden).
code: |
1:
|
if x>90 then x<180 then do b:=180-x and y:=sin(b); |
|
Das and kannst du in boolschen Abfragen nehmen: if x > 90 and x < 180 (nicht then).
Wenn du mehrere Befehle ausführen willst, musst du sie in einen Block schreiben
code: |
1:
2:
3:
4:
5:
|
if x > 90 and x < 180 then
begin
b := 180-x;
y := sin(b); //das wird im Bogenmaß gerechnet, nicht im Gradmaß
end |
|
|
VanesaMoonlight |
Hallo!
Danke für deine Antwort.
Für das Proz. Reduktion habe ich dieses Code geschrieben aber da funktioniert was nicht.
Program test;
var y,x,z,a,b,c,d,vz:Real;
Procedure Reduction(x,z,vz,a,b,c,d:integer;var y:integer);
begin
vz:=-1;
z:= x div 360;
a:= x mod 360;
if z:=0 then do y:=sin(x)
else do y:=sin(a);
if x<90 then do y:=sin(x);
if x>90 then x<180 then do b:=180-x and y:=sin(b);
if x>180 and x<270 then do c:=x-180 and y:=vz*sin(c);
if x>270 and x<360 then do d:=360-x and y:=vz*sin(d);
if x=90 then y=1;
if x=270 then y=vz*1;
if x=360 or x=180 or x=0 then y=0;
end;
Begin
ClrScr
Write('Bitte Winkel eingeben: ');
ReadLn (x);
y:=sin(x);
Write('Der Sinus des Winkels ',x:7:2, 'beträgt: ',Sinus(x):7:5);
End |
eulerscheZahl |
Zitat: |
z.B: w von [0°; 360°[ => w von [0°;90°[, mit Vorzeichen + oder - 1 |
Da geht aber Information verloren.
Hattest du an so etwas gedacht (bisher ohne Setzen eines Vorzeichens)?
code: |
1:
2:
3:
4:
|
function Reduktion(alpha: Integer): Integer;
begin
result := alpha mod 90;
end; |
|
|
VanesaMoonlight |
Danke für Ihre Antwort.
Reduktion soll prüfen in welchem Quadrant der Winkel liegt und den Winkel in einen kleiner Wert darstellen.
z.B: w von [0°; 360°[ => w von [0°;90°[, mit Vorzeichen + oder - 1
Beim Komplement:
w von [45°; 90°[ => w von [0°; 45°[, dann aber flag_cos:= {"not false"} "true" |
eulerscheZahl |
Gibt es dazu auch eine genaue Aufgabenstellung?
Was sollen Reduktion und Komplement überhaupt machen?
Wenn du functions verwendest, hast du auch einen Rückgabewert. Den wertest du nicht aus, da könntest du auch eine procedure nehmen. |
VanesaMoonlight |
sin(x) in Pascal mit Hilfe von Proceduren
Meine Frage:
Ich brauche Hilfe bei der Proceduren von Reduktion und Komplement.
Vielen Dank
Meine Ideen:
{Ich möchte Sinus mit vielen Unterprogrammen berechnen.}
Var n, vz: Integer;
w,x,s: Real;
flag_cos: Boolean;
Function...
Function...
Procedure...
Procedure...
Procedure...
Procedure...
Procedure...
Procedure...
Begin
Eingabe (w);
Modulo (w);
Reduktion (w, vz);
Komplement (w, flag_cos);
Radian (w,x);
Taylor (x, flag_cos, s);
Ausgabe (s, vz);
End. |
|
|