Übung zu C -> Warum stimmen Werte bei Programmausführung nicht?
-
Hallo Leute,
ich bin Tobi.
Ich bin gerade dabei mich mit der C-Programmiersprache vertraut zu machen. Hierfür habe ich aus einem Lehrbuch eine Übung übernommen, bei der ich aus einer Kommazahl, in meinem Fall die Zahl 1,093, den Tangens ziehen soll.
Ich habe das Programmgerüst mit Hilfe des Bloodshed Dev C++ - Compilers (Version 4.9.9.2) erstellt, so wie es der Autor auch vorgeführt, bzw. im Lösungsanhang des Buches aufgegührt, hat.
Beim kompelieren meldet der Compiler keine Fehler. Wenn ich dann das Programm ausführe, scheint dies auch zu funktionieren.
Allerdings habe ich mir mal den Spaß gemacht, den Endwert, also den Tangens aus 1,093 mit dem Tachenrechner zu bestätigen. Dabei habe ich festgestellt, daß der mir, bei Ausführung des Programmes in der Konsole, angezeigte Endwert falsch ausgegeben wird.Der korrekte Endwert muß 0,01907... lauten. Der Compiler aber gibt den Wert 1,931199 als Endwert aus.
Ich habe daraufhin auch mal diesen Versuch mit der Kosinus-, und der Sinusfunktion versucht. Auch dort stimmen die Werte nicht.
Hier mal das Programmgerüst:
#include <stdio.h> #include <stdlib.h> #include <math.h> int main(int argc, char *argv[]) { double zahl = 1.093; printf("Tangens von zahl: %lf=%lf\n",zahl,tan(zahl)); system("PAUSE"); return 0; }
Ich würde mich freuen, wenn mir jemand von Euch sagen könnte, welche Ursache dieses Problem hat, und wie ich sie beseitigen kann.
Mit freundlichen Grüßen
TobiTobsucht
-
-
Dieser Thread wurde von Moderator/in pumuckl aus dem Forum C++ in das Forum ANSI C verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Unterscheide bitte zwischen C und C++ - und zwischen den zugehörigen Foren. Dein Code ist C, also gehörts auch ins C-Forum
Am Besten solltest du für C dann auch noch einen C-Compiler benutzen.
-
Schönen guten Abend,
erst einmal vielen Dank für Eure schnelle Beteiligung.
Danke an Pumuckel für's "Zurechtrücken"
. An meinem Patzer erkenne ich, daß ich noch viel vorhabe, bis ich mich im Glossar der Programmiersprachen gut genug auskenne, um mich in diesem Forum richtig zurechtzufinden.
Bei dem, von mir verwendeten Bloodshet Dev C++ - Compiler, ist der C++ - und der C-Compiler integriert. Ich muß vor Beginn eines neuen Projektes nur darauf achten, daß ich die richtige Einstellung wähle. In meinem Fall habe ich noch mal nachgesehen, und ich habe die richtige Einstellung, also den C-Compiler, gewählt.
Vielen Dank auch an "Regestrierter Troll". Bei Deinem Beitrag habe ich erst mal eine Weile überlegt, aber dann
.
Ich wußte nicht, daß Computer im Bogenmaß rechnen. Auch ist dies in meinem Buch nicht erwähnt. Aber Dank Deines Hinweises, weiß ich jetzt, daß ich nicht total falsch gearbeitet habe, und mein Computer sowieso nicht.
Also ganz doll freu undfür Deinen Hinweis.
Liebe Grüße
-
Bloodshet Dev C++ ist kein Compiler, sondern eine IDE. Der Compiler ist gcc bzw. g++.
-
Hi Porter,
ich danke Dir. Hab ich wieder was dazu gelernt.
Sowas steht alles garnicht in dem Buch was ich da habe. Da wird mir als Leser der Bloodshet C++ zum Beispiel als Compiler vorgestellt. Dabei ist er das garnicht, sondern eine Programmierplattform bei der der Compiler nur halt mit integriert ist.Na macht bitte alle so weiter! Bei Euch kann ich mir scheinbar 'ne Menge Zusatzinformationen abholen. Freut mich.
Liebe Grüße
-
TobiTobsucht schrieb:
Ich wußte nicht, daß Computer im Bogenmaß rechnen.
Darauf ist wohl jeder schonmal 'reingefallen. Das kann einen echt zur Weißglut treiben, wenn's schnell gehen soll und man sich nach Stunden plötzlich an den Kopf klatscht...