pourquoi est-ce péché méthode retournant une mauvaise réponse?
Hey, travail sur certaines catégories et j'ai heurté contre un drôle de question, im essentiellement en expansion sur une calculatrice classe pour ajouter un peu de trigo méthodes, et j'obtiens une valeur incorrecte lorsque j'appelle le péché de la méthode dans le retour en forme de double. j'ai envoyer une valeur de 100.7 à la méthode et retourne 0.168231, de ce que je peux voir la valeur correcte doit être = 0.939693 ou il abouts.
heres le code, je suis aussi de l'attachement d'un lien vers le projet complet ici:
(merci)
http://files.me.com/knyck2/svpfd4
//
// Calculator_trig.m
// 11.4_calculator_trig
//
// Created by Nicholas Iannone on 1/6/10.
// Copyright 2010 __MyCompanyName__. All rights reserved.
//
#import "Calculator_trig.h"
#import <math.h>
@implementation Calculator (Trigonometry)
-(double) sin
{
double result;
result = (double) sin (accumulator);
return result;
}
-(double) cos
{
double result;
result = cos ( accumulator);
return result;
}
-(double) tan
{
double result;
result = tan ( accumulator);
return result;
}
@end
#import "Calculator.h"
@implementation Calculator
-(void) setAccumulator: (double) value
{
accumulator = value;
}
-(void) clear
{
accumulator = 0;
}
-(double) accumulator
{
return accumulator;
}
-(double) memoryClear
{
memory = 0;
NSLog(@"memory has been cleared");
return accumulator;
}
-(double) memoryStore
{
memory = accumulator;
NSLog(@"memory has been set to %g", memory);
return accumulator;
}
-(double) memoryRecall
{
accumulator = memory;
NSLog(@"accumulator has been set to %g", accumulator);
return accumulator;
}
-(double) memoryAdd
{
memory += accumulator;
NSLog(@"accumulator: %g has been added to memory, memory is now %g", accumulator, memory);
return accumulator;
}
-(double) memorySubtract
{
memory -= accumulator;
NSLog(@"accumulator: %g has been subtracted from memory, memory is now %g", accumulator, memory);
return accumulator;
}
-(double) add: (double) value
{
accumulator += value;
return accumulator;
}
-(double) subtract: (double) value
{
accumulator -= value;
return accumulator;
}
-(double) multiply: (double) value
{
accumulator *= value;
return accumulator;
}
-(double) divide: (double) value
{
accumulator /= value;
return accumulator;
}
-(double) changeSign
{
accumulator = -accumulator;
return accumulator;
}
-(double) reciprocal
{
accumulator = 1 / accumulator;
return accumulator;
}
-(double) xSquared
{
accumulator *= accumulator;
return accumulator;
}
@end
#import <Foundation/Foundation.h>
#import "Calculator.h"
#import "Calculator_trig.h"
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
Calculator *myCalc = [[Calculator alloc] init];
double a = 0;
[myCalc setAccumulator: 100.70];
a = [myCalc sin];
NSLog(@" sin of accumulator = %f", a);
[myCalc release];
[pool drain];
return 0;
}
"ce que je peux voir la valeur correcte doit être = 0.939693 ou il abouts" Vraiment? Pourquoi? Pouvez-vous fournir toute justification pour qui? Pensez-vous que le péché œuvres en degrés ou en radians?
je l'ai eu en le mettant dans le mac calculatrice et un web en ligne calculatrice mais peut-être que je saisis mal, l'amour, l'avatar btw, mein führer!
Fait amusant: le tournesol est l'une des raisons que les radians sont la "norme" pour l'argument de péché. Avec des angles en radians, d/dx sin(x) = cos(x). Avec des angles en degrés, vous obtenez un vilain facteur constant qui ne fait que s'aggraver avec les dérivées successives 🙂
je l'ai eu en le mettant dans le mac calculatrice et un web en ligne calculatrice mais peut-être que je saisis mal, l'amour, l'avatar btw, mein führer!
Fait amusant: le tournesol est l'une des raisons que les radians sont la "norme" pour l'argument de péché. Avec des angles en radians, d/dx sin(x) = cos(x). Avec des angles en degrés, vous obtenez un vilain facteur constant qui ne fait que s'aggraver avec les dérivées successives 🙂
OriginalL'auteur nickthedude | 2010-01-07
Vous devez vous connecter pour publier un commentaire.
Vous êtes le calcul du péché de 100.7 radians, et la réponse donnée est correcte.
La trigonométrie est indépendant de la langue.
OriginalL'auteur Hamish Grubijan
Il attend radians. Pour obtenir la réponse que vous voulez, convertir des degrés en radians première:
OriginalL'auteur John Feminella
il attend radians
OriginalL'auteur Jimmy
Selon google, la réponse est correcte. Avis google suppose radians.
http://www.google.com/search?hl=en&q=sin+de+100.7
OriginalL'auteur James Lawruk
La fonction sin attend radian. Si vous souhaitez obtenir le degré d'-vous besoin pour convertir degré en radian.
Comment faites-vous?
Simple.
Dans un cercle de 360 degrés. Combien radian est-il?
Radian est défini comme le rapport entre la longueur de l'arc en face de l'angle divisé par le rayon.
Donc, pour un cercle complet, la longueur de l'arc est tout simplement la circonférence du cercle.
Qu'est-ce que la totalité de la circonférence du cercle?
Bien, π est définie comme le rapport entre la circonférence du cercle à son diamètre.
Quel est le diamètre?
Bien, le diamètre est de 2 fois le rayon. Fondamentalement, le diamètre est d'une ligne passant par le centre du cercle et s'est terminé quand la ligne du cercle. Le rayon est une ligne qui commence au centre et à la fin le cercle.
Donc
Cercle de circonférence est de π * diamètre = π * 2 * rayon = 2π rayon. C'est raccourcie à 2nr, où r est le rayon.
Oui, combien de radians sont là dans un cercle?
Facile
Vous divisez la circonférence du cercle avec le rayon. Tada vous avez 2nr/r=2π.
Et que 2π est équivalent à 360 degrés.
Donc, si nous savons le degré, comment savons-nous que le radian?
Simple, nous multiplions par 2π, et nous diviser par 360.
Si l'on multiplie le tout par 2π/360=π/180.
Un moyen de le voir c'est d'imaginer que le radian et le degré sont des "unités". Il y a π radians pour tous les 180 degrés. Cela signifie que π radians/180 degrés est une parce que ceux qui sont le ratio de l'exacte même nombre.
Donc si vous avez 107 degré 107
EST de 107 degrés * 1 = 107 degrés * π radians/180 degrés. Bien sûr, l'ordinateur ne se soucient pas de l'unité. À la fin, il devient 107 * pi/180.
En Objective-c M_PI est une constante que de stocker la valeur de π.
Ce que je voudrais faire c'est que je voudrais déclarer
Maintenant, la valeur n'est pas vraiment 1. Toutefois, sur le plan conceptuel, radianperdegree est en effet 1 si l'on prend en compte l'unité. C'est parce que 1 radian est plus grand que 1 degré.
Pour obtenir l'angle en radian, je ne dois pas changer l'angle. Ce que je fais c'est multiplier par un nombre concepsually 1. J'ai donc multiplier par radianperdegree. Le résultat est un nombre beaucoup plus restreint. Mais que nombre beaucoup plus restreint de représenter exactement le même angle. C'est parce que beaucoup plus petit nombre est la valeur de l'angle en radian et chaque radian est plus grand.
Puis-je faire
Tada.....
Clair?
Une autre chose que vous pouvez faire est de définir
Et ensuite utiliser le péché(DEGTORAD(107))
OriginalL'auteur user4951