sin(x) in Pascal mit Hilfe von Proceduren |
04.02.2016, 15:36 | Auf diesen Beitrag antworten » | ||||||||||
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. |
||||||||||
|
|||||||||||
04.02.2016, 17:26 | Auf diesen Beitrag antworten » | ||||||||||
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. |
||||||||||
04.02.2016, 17:44 | Auf diesen Beitrag antworten » | ||||||||||
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" |
||||||||||
04.02.2016, 18:04 | Auf diesen Beitrag antworten » | ||||||||||
eulerscheZahl |
Da geht aber Information verloren. Hattest du an so etwas gedacht (bisher ohne Setzen eines Vorzeichens)?
|
||||||||||
Anzeige | |||||||||||
|
|||||||||||
07.02.2016, 14:46 | Auf diesen Beitrag antworten » | ||||||||||
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 |
||||||||||
07.02.2016, 19:24 | Auf diesen Beitrag antworten » | ||||||||||
eulerscheZahl | Kann sein, dass noch mehr falsch ist, habe jetzt nicht alles gelesen (wenn dem so ist, einfach nochmal melden).
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
|
||||||||||
07.02.2016, 19:37 | Auf diesen Beitrag antworten » | ||||||||||
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);} |
||||||||||
07.02.2016, 19:48 | Auf diesen Beitrag antworten » | ||||||||||
VanesaMoonlight | Wenn ich nicht z:<1 schreibe sondern z<1 dann bekomme ich Syntax error auf derm gleichen Reihe before 'do' |
||||||||||
07.02.2016, 19:58 | Auf diesen Beitrag antworten » | ||||||||||
eulerscheZahl | Habe dir mal ein paar Dinge kommentiert.
|
|
Verwandte Themen
Die Beliebtesten » |
|
Die Größten » |
Die Neuesten » |
|