Question: /******************************************************************************** * vDIAMONDS * author(s): * adapted from: array version from class * other citations: * * goal: Output a diamond of user determined size

 /******************************************************************************** * vDIAMONDS * author(s): * adapted from: array version from

/******************************************************************************** * vDIAMONDS * author(s): * adapted from: array version from class * other citations: * * goal: Output a diamond of user determined size must use a 2D vector. * example: for input of 5 * for an input of 6 /\ * *** //\\ * ***** ///\\\ * *** \\\/// * * \\// * \/ * overview:(1) ... ********************************************************************************/

#include using namespace std;

int main() { const int MAX_WIDTH = 80; const char BACKGRND_CHAR = '.'; const char ODD_CHAR = "*"; return 0; } // end main()

Taking size input from the user, draw a diamond with square dimensions (i.e. width = height). Part of the requirement is to populate a two-dimensional vector, and then output the vector to the screen. If the given width is odd, the diamond should be drawn with stars (the " character) and if the diamond is even, it should be drawn with forward and backward slashes (the " \ " and "/" characters). The background should be periods (rather than spaces) so they will show up clearly. So for example, entering 11 would give the left diamond below, and the right-hand diamond is from the input 12. Note that the template has constants for two of the characters - you should add constants for the other two. Additionally there is a constant for the maximum width. If the user enters bad data the program should output: The size must be between 1 and 80 . where 80 is the value of the constant MAX_WIDTH. It might be helpful to know that pre-filling a vector, such as vector>diamond{{1,b,c},{2,b,c},{3,b,c}}; will only work if the compiler supports C++11 or higher. And though the 11 refers to 2011 , a surprising number of compilers are still not caught up. Without a C++11 compiler, it's probably best to declare the 2D vector, giving only the row size. Then step through the rows and create the columns. Initialization can happen at the same time. Another requirements is that, as when we finished the array version, two functions must be created. One will print a row and the other will fill a row. But only one row at a time may be passed up, and it should be a parameter not a return value. So, in the same way we approached the array, a 2D vector will be created, populated by calling functions that take a 1D vector

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!