
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
- You are troubleshooting a network issue where an employee's computer cannot connect to the corporate network. The computer is connected to the network via an Ethernet cable that runs to a switch. Suspecting a possible layer 1 or layer 2 problem, you decide to check the LED status indicators on both the computer's NIC and the corresponding port on the switch. Describe five LED link states and discuss what each indicates to you as a network technician.arrow_forwardYou are a network expert tasked with upgrading the network infrastructure for a growing company expanding its operations across multiple floors. The new network setup needs to support increased traffic and future scalability and provide flexibility for network management. The company is looking to implement Ethernet switches to connect various devices, including workstations, printers, and IP cameras. As part of your task, you must select the appropriate types of Ethernet switches to meet the company's needs. Evaluate the general Ethernet switch categories you would consider for this project, including their features and how they differ.arrow_forwardYou are managing a Small Office Home Office (SOHO) network connected to the Internet via a fibre link provided by your Internet Service Provider (ISP). Recently, you have noticed a significant decrease in Internet speed, and after contacting your ISP, they confirmed that no issues exist on their end. Considering that the problem may lie within your local setup, identify three potential causes of the slow Internet connection, focusing on physical factors affecting the fibre equipment.arrow_forward
- Your organisation has recently installed a new network in a building it has acquired. As the network administrator, you have set up a dedicated telecommunications room to house all the rack-mounted servers, switches, and routers. To ensure optimal performance and longevity of the equipment, you need to monitor certain environmental factors in the room. Identify the environmental factors that should be monitored and explain why each is important to maintain the proper functioning of the telecommunications equipment.arrow_forwardYour organisation is preparing to move into a newly constructed office building that has never been occupied or wired for network services. As the network administrator, your manager has tasked you with designing a structured cabling plan that will support data, voice, and other network services across all building floors. The cabling plan must account for future expansion, efficient data transmission, and compliance with industry standards. Identify and explain the different subsystems you would include in the structured cabling scheme, following the ANSI/TIA/EIA 568 standard.arrow_forwardAs a technical advisor responsible for designing a network in a newly constructed building, you have decided to utilise twisted pair cables to efficiently deliver data and voice services. Given the specific requirements for connectivity in this setup, identify the appropriate connector types that can be used with twisted pair cables, explaining how each connector works in detail.arrow_forward
- In computer networks, communication between devices or nodes relies on predefined rules known as network protocols. These protocols ensure that data can be transmitted accurately and efficiently between different devices, even on separate networks or running different operating systems. Explain how a network protocol facilitates the transmission of data between nodes.arrow_forwardYou are part of the IT department at a large company, tasked with setting up a new branch office's networking infrastructure. The branch office must handle various types of traffic, including video conferencing, file sharing, and cloudbased business applications. The network will also need to prioritise certain types of traffic to ensure smooth video conferencing and efficient application performance. Due to budget constraints, the company plans to use physical and virtual systems to set up the network, balancing the cost and performance needs. Describe how you would approach the design and implementation of the networking infrastructure for this new branch office, ensuring it meets the company's needs for efficient application performance and traffic prioritisation.arrow_forwardTask 1: Abstract Class (15 Points) HybridCourse percentOfRemoteLearning: int +HybridCourse() +HybridCourse(courseName: String, sectiomNumber: int, instructorName: String, percentOfRemoteLearning: int) +getCapacity() int +getPercentOfRemoteLearning(): int +setPercentOfRemoteLearning (percentOfRemoteLearning: int): void +toString(): String Course -courseName: String - sectionNumber: int - instructorName: String - numberOfStudentsEnrolled: int #Course() #Course(courseName: String) #Course(courseName: String, sectionNumber: int, instructorName: String) +getCapacity(): int +get CourseName(): String +set CourseName(courseName: String): void +getSection Number(): int +setSection Number(section Number: int): void +getInstructorName(): String +setInstructorName(instructorName: String): void +getNumberOfStudentsEnrolled(): int +toString(): String - platform: String Online Course - meetingLink: String sectionNumber: int, + OnlineCourse() + OnlineCourse(courseName: String, instructorName: String,…arrow_forward
- I need help to solve a simple problem using Grover’s algorithm, where the solution is not necessarily known beforehand. The problem is a 2×2 binary sudoku with two rules: • No column may contain the same value twice. • No row may contain the same value twice. Each square in the sudoku is assigned to a variable as follows: We want to design a quantum circuit that outputs a valid solution to this sudoku. While using Grover’s algorithm for this task is not necessarily practical, the goal is to demonstrate how classical decision problems can be converted into oracles for Grover’s algorithm. Turning the Problem into a Circuit To solve this, an oracle needs to be created that helps identify valid solutions. The first step is to construct a classical function within a quantum circuit that checks whether a given state satisfies the sudoku rules. Since we need to check both columns and rows, there are four conditions to verify: v0 ≠ v1 # Check top row v2 ≠ v3 # Check bottom row…arrow_forwardI need help to solve a simple problem using Grover’s algorithm, where the solution is not necessarily known beforehand. The problem is a 2×2 binary sudoku with two rules: • No column may contain the same value twice. • No row may contain the same value twice. Each square in the sudoku is assigned to a variable as follows: We want to design a quantum circuit that outputs a valid solution to this sudoku. While using Grover’s algorithm for this task is not necessarily practical, the goal is to demonstrate how classical decision problems can be converted into oracles for Grover’s algorithm. Turning the Problem into a Circuit To solve this, an oracle needs to be created that helps identify valid solutions. The first step is to construct a classical function within a quantum circuit that checks whether a given state satisfies the sudoku rules. Since we need to check both columns and rows, there are four conditions to verify: v0 ≠ v1 # Check top row v2 ≠ v3 # Check bottom row…arrow_forwardusing r languagearrow_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





