Starting from:

$25

CECS282 - Lab 3 - Solved

Reading
ReadingfromC++HowtoProgram:

1.    Important: Chapter8.1,8.2,8.3,8.4

2.    SkimChapter6.10

3.    Chapter6.13

4.    Chapter15.1,15.2(focusonlyonvector),15.3 IntroductiontoIterators

5.    Chapter15.5(again,onlyvectors)

Assignment
1. WhatistheoutputofthefollowingC++codefragment? Tracethecode’soperationtosupportyour answer: keeptrackofeachvariable’scurrentvalue,andindicatewhatactualvaluesthepointerspoint 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.    WriteaC++functionSolveQuadraticwhichsolvesaquadraticequationoftheformax2+bx+c=0 when given the coe cients a, b, and c. Your function should take three double parameters for the threecoe cients, plustwodoublepointer parametersthatyouwillusetosavethetwosolutionsto theequation. Youwillreturnanintegerindicatingthenumberofrealsolutionstotheequation.

Yourfunctionshouldnotdoanyinputoroutput;itshouldonlycalculateandsetthesolutionvariables, andreturnthenumbeofsolutions.

Exampleusage: 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); Testyourcodetomakesureitworksinthefollowingscenarios:

a
b
c
numberOfSolutions
xSolution1
xSolution2
Explaination
1
2
1
1
-1
0
For x2+2x+1=0,the

onlysolutionis x=−1
1
0
1
0
0
0
Norealsolutionto x2+1=0
1
-3
-4
2
4
-1
For x2−3x−4=0,the solutionsare x=4and

x=−1
1

3.    Inthefollowingcodefragment:

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 forthesevariables.

4.    Adaiswritingseveralfunctionsthateachacceptastringparameter. Foreachfunctiondescription, decide if the function should accept its parameter as a string, a string*, a string&, or a const string&:

(a)     In FuncA, Ada will read individual characters from the string to make a computation. She will notmutatethestring.

(b)     In FuncB, Ada will mutate the string parameter, but doesn’t want the original string passed to thefunctiontomutate.

(c)     InFuncC,Adawillmutatethestringparameter,andthestringcannotbe null/nullptr.

(d)     In FuncD, Ada does not want to duplicate the string passed to the function, and is prepared to handleanullvalueaswell.

5.    GiventhefollowingC++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) { FA(p2);

}

int main() { int x = 0;

vector<int> v = {1, 2, 3, 4};

FB(v);

cout << v.size() << " " << v[3];

}

(a)     By the time the comment is reached at run time, how many actual vector objects exist in automaticstorage? Identifythem.

(b)     At what point in the program will the parameter p2 be destroyed and removed from memory? Bespeci c.

(c)     Whatistheprintedoutputofthisprogram?

More products