
Explanation of Solution
Code which supports unary negation and the four standard arithmetic operators:
//include the required header files
#include <cmath>
using std::abs;
using std::round;
#include <iostream>
using std::ostream;
using std::cout;
//definition of class "rational"
class rational
{
//declare the required variables
int num;
int den;
//definition of "gcd" function
int gcd(int i, int j)
{
//set the absolute values
i = abs(i);
j = abs(j);
//check "i" is not equal to "j"
while (i != j)
{
//check "i" is greater than "j"
if (i > j)
/*subtract the values and store the result in "i"*/
i = i - j;
//otherwise
else
/*subtract the values and store the result in "j"*/
j = j - i;
}
//return the "i" value
return i;
}
//definition of "normalize" function
void normalize()
{
//check "den" is less than 0
if (den < 0)
{
//calculate numerator value
num = -num;
//calculate denominator value
den = -den;
}
//call the "gcd" function with a parameters
int g = gcd(num, den);
//calculate numerator value
num /= g;
//calculate denominator value
den /= g;
}
//access specifier
public:
//definition constructor
rational(int n, int d)
{
//set the values
num = n;
den = d;
//call the function
normalize();
}
// definition of constructor
rational(double r, double e)
{
//set the values
num = (int) r;
den = 1;
//check the condition
while (abs(r - ((double)num)/((double)den)) > e)
{
//increment the value
++den;
//calculate numerator value
num = round(den*r);
}
}
//definition of operator "-"
rational operator-()
{
//calculate numerator value
num = -num;
//return the value
return *this;
}
//definition of operator "+"
rational operator+(const rational o)
{
//declare the variable and calculate the value
int p = den * o.den;
//calculate numerator value
num = num * o.den + den * o.num;
//set the value
den = p;
//call the function
normalize();
//return the value
return *this;
}
//definition of operator "-"
rational operator-(const rational o)
{
//declare the variable and calculate the value
int p = den * o.den;
//calculate numerator value
num = num * o.den - den * o.num;
//set the value
den = p;
//call the function
normalize();
//return the value
return *this;
}
//definition of operator "*"
rational operator*(const rational o)
{
//calculate numerator value
num *= o.num;
//calculate denominator value
den *= o.den;
//call the function
normalize();
//return the value
return *this;
}
//definition of operator "/"
rational operator/(const rational o)
{
//calculate numerator value
num *= o.den;
//calculate denominator value
den *= o.num;
//call the function
normalize();
//return the value
return *this;
}
};
Explanation:
- The header files are included in the beginning of the program.
- The “rational” class is defined. Inside the class,
- The “num” and “den” variables are declared.
- The “gcd” function is defined
- Get the absolute values of “i” and “j” and store it in the corresponding variables.
- The “while” loop is used to check “i” is not equal to “j”.
- If the “i” value is greater than “j” value, then subtract the “i” and “j” value and store the result in the “i” variable.
- Otherwise, subtract the “j” and “i” value and store the result in the “j” variable.
- Return the “i” value.
- The “normalize” function is defined.
- If the “den” is less than 0, then calculate the “num” and “den” values.
- Call the “gcd” function with the parameters.
- Calculate the numerator and denominator values.
- The constructor of “rational” is defined with two parameters.
- Set the values
- Call the “normalize” function.
- Again, the constructor of “rational” is defined with another two parameters.
- Set the values.
- Check the “while” condition
- Increment the denominator value
- Calculate the numerator
- The operator “-” is defined
- Calculate the “num” value
- Return the result
- The operator “+” is defined with parameter
- Calculate the “p” and “num” values
- Set the value
- Call the “normalize” function
- Return the result
- The operator “-” is defined with parameter
- Calculate the “p” and “num” values
- Set the value
- Call the “normalize” function
- Return the result
- The operator “*” is defined with parameter
- Calculate the “den” and “num” values
- Call the “normalize” function
- Return the result
- The operator “/” is defined with parameter
- Calculate the “den” and “num” values
- Call the “normalize” function
- Return the result
Want to see more full solutions like this?
Chapter 3 Solutions
Programming Language Pragmatics, Fourth Edition
- Given f(t)=a sin(ßt) a = 10 & ß = 23 Find the Laplace Transform using the definition F(s) = ∫f(t)e-stdtarrow_forwardPlease do not use any AI tools to solve this question. I need a fully manual, step-by-step solution with clear explanations, as if it were done by a human tutor. No AI-generated responses, please.arrow_forwardObtain the MUX design for the function F(X,Y,Z) = (0,3,4,7) using an off-the-shelf MUX with an active low strobe input (E).arrow_forward
- I cannot program smart home automation rules from my device using a computer or phone, and I would like to know how to properly connect devices such as switches and sensors together ? Cisco Packet Tracer 1. Smart Home Automation:o Connect a temperature sensor and a fan to a home gateway.o Configure the home gateway so that the fan is activated when the temperature exceedsa set threshold (e.g., 30°C).2. WiFi Network Configuration:o Set up a wireless LAN with a unique SSID.o Enable WPA2 encryption to secure the WiFi network.o Implement MAC address filtering to allow only specific clients to connect.3. WLC Configuration:o Deploy at least two wireless access points connected to a Wireless LAN Controller(WLC).o Configure the WLC to manage the APs, broadcast the configured SSID, and applyconsistent security settings across all APs.arrow_forwardusing r language for integration theta = integral 0 to infinity (x^4)*e^(-x^2)/2 dx (1) use the density function of standard normal distribution N(0,1) f(x) = 1/sqrt(2pi) * e^(-x^2)/2 -infinity <x<infinity as importance function and obtain an estimate theta 1 for theta set m=100 for the estimate whatt is the estimate theta 1? (2)use the density function of gamma (r=5 λ=1/2)distribution f(x)=λ^r/Γ(r) x^(r-1)e^(-λx) x>=0 as importance function and obtain an estimate theta 2 for theta set m=1000 fir the estimate what is the estimate theta2? (3) use simulation (repeat 1000 times) to estimate the variance of the estimates theta1 and theta 2 which one has smaller variance?arrow_forwardusing r language A continuous random variable X has density function f(x)=1/56(3x^2+4x^3+5x^4).0<=x<=2 (1) secify the density g of the random variable Y you find for the acceptance rejection method. (2) what is the value of c you choose to use for the acceptance rejection method (3) use the acceptance rejection method to generate a random sample of size 1000 from the distribution of X .graph the density histogram of the sample and compare it with the density function f(x)arrow_forward
- using r language a continuous random variable X has density function f(x)=1/4x^3e^-(pi/2)^4,x>=0 derive the probability inverse transformation F^(-1)x where F(x) is the cdf of the random variable Xarrow_forwardusing r language in an accelerated failure test, components are operated under extreme conditions so that a substantial number will fail in a rather short time. in such a test involving two types of microships 600 chips manufactured by an existing process were tested and 125 of them failed then 800 chips manufactured by a new process were tested and 130 of them failed what is the 90%confidence interval for the difference between the proportions of failure for chips manufactured by two processes? using r languagearrow_forwardI want a picture of the tools and the pictures used Cisco Packet Tracer Smart Home Automation:o Connect a temperature sensor and a fan to a home gateway.o Configure the home gateway so that the fan is activated when the temperature exceedsa set threshold (e.g., 30°C).2. WiFi Network Configuration:o Set up a wireless LAN with a unique SSID.o Enable WPA2 encryption to secure the WiFi network.o Implement MAC address filtering to allow only specific clients to connect.3. WLC Configuration:o Deploy at least two wireless access points connected to a Wireless LAN Controller(WLC).o Configure the WLC to manage the APs, broadcast the configured SSID, and applyconsistent security settings across all APs.arrow_forward
- A. What will be printed executing the code above?B. What is the simplest way to set a variable of the class Full_Date to January 26 2020?C. Are there any empty constructors in this class Full_Date?a. If there is(are) in which code line(s)?b. If there is not, how would an empty constructor be? (create the code lines for it)D. Can the command std::cout << d1.m << std::endl; be included after line 28 withoutcausing an error?a. If it can, what will be printed?b. If it cannot, how could this command be fixed?arrow_forwardCisco Packet Tracer Smart Home Automation:o Connect a temperature sensor and a fan to a home gateway.o Configure the home gateway so that the fan is activated when the temperature exceedsa set threshold (e.g., 30°C).2. WiFi Network Configuration:o Set up a wireless LAN with a unique SSID.o Enable WPA2 encryption to secure the WiFi network.o Implement MAC address filtering to allow only specific clients to connect.3. WLC Configuration:o Deploy at least two wireless access points connected to a Wireless LAN Controller(WLC).o Configure the WLC to manage the APs, broadcast the configured SSID, and applyconsistent security settings across all APs.arrow_forwardTransform the TM below that accepts words over the alphabet Σ= {a, b} with an even number of a's and b's in order that the output tape head is positioned over the first letter of the input, if the word is accepted, and all letters a should be replaced by the letter x. For example, for the input aabbaa the tape and head at the end should be: [x]xbbxx z/z,R b/b,R F ① a/a,R b/b,R a/a, R a/a,R b/b.R K a/a,R L b/b,Rarrow_forward
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education





