[SOLVED] CECS282 Lab 3

30.00 $

Category:
Click Category Button to View Your Next Assignment | Homework

You will receive the following solution file(s) instantly after successful payment:

zip file icon Lab_3-luemxb.zip (171.5 KB)
Assignment Instructions Updated Recently? Submit Below and we will provide new Solution!
Submit New Instructions
🔒 Securely Powered by:
Secure Checkout
5/5 - (1 vote)

Reading
Reading from C++ How to Program:

1. Important: Chapter 8.1, 8.2, 8.3, 8.4
2. Skim Chapter 6.10
3. Chapter 6.13
4. Chapter 15.1, 15.2 (focus only on vector), 15.3 􏰀Introduction to Iterators􏰁 5. Chapter 15.5 (again, only vectors)

Assignment

  1. What is the output of the following C++ code fragment? Trace the code’s operation to support your answer: keep track of each variable’s current value, and indicate what actual values the pointers point to.
    #include <iostream>

         using namespace std;
    
         double Blah(int *p) {
            *p = *p + 5;
            double local = *p / 2;
            return local;
    

    }

         int main() {
            int x = 10;
    

    int *y = &x;
    double z = Blah(y); cout <􏰆< x <􏰆< endl <􏰆< z;

    }

  2. Write a C++ function SolveQuadratic which solves a quadratic equation of the form ax2 + bx + c = 0 when given the coe􏰇cients a, b, and c. Your function should take three double parameters for the three coe􏰇cients, plus two double pointer parameters that you will use to save the two solutions to the equation. You will return an integer indicating the number of real solutions to the equation.

    Your function should not do any input or output; it should only calculate and set the solution variables, and return the numbe of solutions.

    Example usage:
    double xSolution1, xSolution2;
    double a, b, c;
    // suppose a, b, and c are given values from the user
    int numberOfSolutions = SolveQuadratic(a, b, c, &xSolution1, &xSolution2);

    Test your code to make sure it works in the following scenarios:

a

b

c

numberOfSolutions

xSolution1

xSolution2

Explaination

1

2

1

1

-1

0

For x2 + 2x + 1 = 0, the only solution is x = −1

1

0

1

0

0

0

No real solution to

x2 + 1 = 0

1

-3

-4

2

4

-1

For x2 − 3x − 4 = 0, the solutions are x = 4 and x = −1

1

3. In the following code fragment:

  string a = 􏰀hello􏰁;
  string b = a;
  string *c = &a;
  string &d = *c;
  string e = *c;

How many instances of the string type exist in memory? Draw a picture of automatic storage for these variables.

  1. Ada is writing several functions that each accept a string parameter. For each function description, decide if the function should accept its parameter as a string, a string*, a string&, or a const string&:
    1. (a)  In FuncA, Ada will read individual characters from the string to make a computation. She will not mutate the string.
    2. (b)  In FuncB, Ada will mutate the string parameter, but doesn’t want the original string passed to the function to mutate.
    3. (c)  In FuncC, Ada will mutate the string parameter, and the string cannot be 􏰀null􏰁/nullptr.
    4. (d)  In FuncD, Ada does not want to duplicate the string passed to the function, and is prepared to handle a null value as well.
  2. Given the following C++ program:

    #include <vector > #include <iostream > using namespace std;

    void FA(vector<int> &p1) { // see part (a)

    p1.pop_back(); p1.push_back(0);

    }
    void FB(vector<int> p2) {

} int

}

(a)

(b)

(c)

FA(p2);

main() {
int x = 0;
vector<int> v = {1, 2, 3, 4}; FB(v);
cout << v.size() << ” ” << v[3];

By the time the comment is reached at run time, how many actual vector objects exist in automatic storage? Identify them.

At what point in the program will the parameter p2 be destroyed and removed from memory? Be speci􏰃c.

What is the printed output of this program?

  • Lab_3-luemxb.zip