Hoe werkt 'LN' en 'EXP' in de taal C

R

rizalafande

Guest
Kan iemand helpt me om te laten zien hoe operaties gebruik 'LN' en 'wiskundige' EXP in C taal?Ik heb geprobeerd met behulp van onderstaande codes, maar helaas werkt niet.
=====
# Include <math.h>
.....
double x (dubbel invoeren)
(
dubbele uitgang;
ln = exit (enter) exp (enter);
)
=====

 
De gebruikelijke naam voor de functie natuurlijke logaritme is log ().Maar je moet wel controleren of het is uitgevoerd met een compiler math.lib je.

 
/ * Reverse Polish Notation rekenmachine.* /

% (
# Define YYSTYPE dubbele
# Include <math.h>
%)

NUM% token

%% / * Grammaticale regels en acties te volgen * /

De C verklaringen deel (zie paragraaf De afdeling C Verklaringen) bevat twee preprocessor-richtlijnen.

De # define richtlijn definieert de macro YYSTYPE, dus met vermelding van de data type C voor semantische waarden van beide tokens en samenwerkingsverbanden (zie rubriek Data Types van Semantic Values).De Bison parser zal gebruik ook YYSTYPE is gedefinieerd als type, als je niet definiëren, int is de standaardinstelling.Omdat we dubbel opgeven, elk token en elke uitdrukking heeft een bijbehorende waarde, dat is een floating point nummer.

De # include richtlijn wordt gebruikt om pow verklaar de machtsverheffing functie.

Het tweede deel, Bison verklaringen, verstrekt informatie aan over de Bison token typen (zie rubriek De Bison verklaringen afdeling).Elke terminal symbool dat niet een enkel-karakter letterlijke moet hier worden aangegeven.(Enkel-karakter literals normaal gesproken niet hoeft te worden verklaard.) In dit voorbeeld, alle rekenkundige operatoren worden aangewezen door enkel-karakter literals, dus de enige terminal symbool dat dient te worden verklaard is NUM, de token type voor numerieke constanten .

 
Gebruik geen namen, zoals in te voeren.Het ziet eruit als een woord en de programmering is verwarrend.

In de tweede plaats, afrit ziet eruit als een woord dat ook de programmering, en het is, het is een gereserveerd woord.Je kunt het niet gebruiken als een variabele.U moet gebruik maken van rendement (log (voer) exp (enter));.

Ten slotte gebruikt math.h logboek voor de natuurlijke logaritme en log10 voor het basisstation 10 blokken.

 
Ik ben het eens, dat onder misleidende namen van variabelen moet worden vermeden, maar eigenlijk geen van de genoemde namen van variabelen is een gereserveerd woord in de standaard C. Er is dus geen fout te corrigeren, op slechts een kwestie van smaak.

Afgezien van het gebruik van een verkeerde naam voor de functie log (), zoals ik al zei, retourneert de functie geen waarde.

 
Goede vangst, je hebt gelijk, exit () is niet een gereserveerd woord, maar het is een functie gedefinieerd in stdlib.h, en is een zeer vaak aangeroepen functie.Ik gebruikte automatisch op te nemen in stdlib.h alles wat ik schreef, dus exit was ongeveer net zo goed als een gereserveerd woord.

 
dank aan alle feedback.problemen inmiddels zijn opgelost.

 
Quote:

Ik gebruikte automatisch op te nemen in stdlib.h alles wat ik schreef, dus exit was ongeveer net zo goed als een gereserveerd woord.
 

Welcome to EDABoard.com

Sponsor

Back
Top