Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Softwaretechnik » sin(x) in Pascal mit Hilfe von Proceduren » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen sin(x) in Pascal mit Hilfe von Proceduren
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
VanesaMoonlight
Grünschnabel


Dabei seit: 04.02.2016
Beiträge: 6

sin(x) in Pascal mit Hilfe von Proceduren Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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 15:36 VanesaMoonlight ist offline E-Mail an VanesaMoonlight senden Beiträge von VanesaMoonlight suchen Nehmen Sie VanesaMoonlight in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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.

__________________
Syntax Highlighting fürs Board (Link)
04.02.2016 17:26 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
VanesaMoonlight
Grünschnabel


Dabei seit: 04.02.2016
Beiträge: 6

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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 17:44 VanesaMoonlight ist offline E-Mail an VanesaMoonlight senden Beiträge von VanesaMoonlight suchen Nehmen Sie VanesaMoonlight in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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;


__________________
Syntax Highlighting fürs Board (Link)
04.02.2016 18:04 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
VanesaMoonlight
Grünschnabel


Dabei seit: 04.02.2016
Beiträge: 6

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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 14:46 VanesaMoonlight ist offline E-Mail an VanesaMoonlight senden Beiträge von VanesaMoonlight suchen Nehmen Sie VanesaMoonlight in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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


__________________
Syntax Highlighting fürs Board (Link)
07.02.2016 19:24 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
VanesaMoonlight
Grünschnabel


Dabei seit: 04.02.2016
Beiträge: 6

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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);}

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von VanesaMoonlight: 07.02.2016 19:43.

07.02.2016 19:37 VanesaMoonlight ist offline E-Mail an VanesaMoonlight senden Beiträge von VanesaMoonlight suchen Nehmen Sie VanesaMoonlight in Ihre Freundesliste auf
VanesaMoonlight
Grünschnabel


Dabei seit: 04.02.2016
Beiträge: 6

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Wenn ich nicht z:<1 schreibe sondern z<1 dann bekomme ich Syntax error auf derm gleichen Reihe before 'do'
07.02.2016 19:48 VanesaMoonlight ist offline E-Mail an VanesaMoonlight senden Beiträge von VanesaMoonlight suchen Nehmen Sie VanesaMoonlight in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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


__________________
Syntax Highlighting fürs Board (Link)
07.02.2016 19:58 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » Softwaretechnik » sin(x) in Pascal mit Hilfe von Proceduren