• 0

Mathematical Table Using Squared, Cubed, Square-root, and Cubed Root


Question

I have to create a table exactly like the one in the attachment using squared, cubed, square-root, and cube root. I am having a hard time creating the code and been struggling for hours, can anyone point me towards the right direction or have the code do this? thanks

 

post-507579-0-23039300-1383783580.png

14 answers to this question

Recommended Posts

  • 0

I am pretty new at this but this is all I got so far:

 

#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;

int main()
{

    double x = 0;
    double rows = 0;
    double squared = 0;
    double cubed = 0;
    double squareRoot = 0;
    double cubeRoot = 0;
    int ceiling = 0;
    int floor = 0;

    cout << "Where would you like to start? ";
    cin >> x;
    cout << endl;

    cout << "And how many rows? ";
    cin >> rows;
    cout << endl;

    cout << " x sqrt(x) x^2\n\n x^3\n";

    squared = x*x;
    cubed = x*x*x;
    squareRoot = sqrt (x);
    cubeRoot = pow(x), 1/3;


    return 0;
}

  • 0

here is my updated one, I can't get it to stop looping. I want it to stop at the number of rows when the user enters it

 

#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;

int main()
{

    double number = 0;
    double rows = 0;
    double squared = 0;
    double cubed = 0;
    double squareRoot = 0;
    double cubeRoot = 0;
    int ceiling = 0;
    int floor = 0;

    cout << "Where would you like to start? ";
    cin >> number;
    cout << endl;

    cout << "And how many rows? ";
    cin >> rows;
    cout << endl;
        

    squared = number*number;
    cubed = number*number*number;
    squareRoot = sqrt (number);
    cubeRoot = pow((double)(number),(double)1/3);

    do
    {
    cout << number << "  " << squared << "  " << cubed << "  " << squareRoot << "  " << cubeRoot << "  " << ceiling << "  " << floor << "  " << endl;
    number++, squared++, cubed++, squareRoot++, cubeRoot++, ceiling++, floor++;
    }
    while (number > 0);


    return 0;
}

  • 0

Well obviously it isn't going to stop since you increment 'number' inside the loop and have 'while (number < 0)' as your condition. The instructions say use a for-loop, so use a for-loop.

 

http://code.wikia.com/wiki/For_loop

  • 0

okay I stopped it from looping but is there any suggestions you would suggest for me to revise my code to make it look like the table in the attachment?

 

#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;

int main()
{

    double number = 0;
    double rows = 0;
    double squared = 0;
    double cubed = 0;
    double squareRoot = 0;
    double cubeRoot = 0;
    int ceiling = 0;
    int floor = 0;

    cout << "Where would you like to start? ";
    cin >> number;
    cout << endl;

    cout << "And how many rows? ";
    cin >> rows;
    cout << endl;
        

    squared = number*number;
    cubed = number*number*number;
    squareRoot = sqrt (number);
    cubeRoot = pow((double)(number),(double)1/3);

    do
    {
    cout << number << "  " << squared << "  " << cubed << "  " << squareRoot << "  " << cubeRoot << "  " << ceiling << "  " << floor << "  " << endl;
    ++number, ++squared, ++cubed, ++squareRoot, ++cubeRoot, ++ceiling, ++floor;
    break;
    }
    while (number > 0);


    return 0;
}

  • 0

do
     {
     cout << number << "  " << squared << "  " << cubed << "  " << squareRoot << "  " << cubeRoot << "  " << ceiling << "  " << floor << "  " << endl;
     ++number, ++squared, ++cubed, ++squareRoot, ++cubeRoot, ++ceiling, ++floor;
     [b]break;[/b]
     }
     while (number > 0);
You don't want that (the break) there. It will exit the do...while loop immediately after the first line of output.

Also, the way you've written it you should be decrementing "number" rather than incrementing it, or you could create a second count variable and increment it until it reaches the target number. As it stands it will fail because "number" your starting calculation number so you *should* be using "rows" in the do loop test instead of "number". :)

EDIT: Ugh, sorry, misread. You want to test against rows, but obviously will want to continue incrementing number.

  • 0

okay I just revised this and removed the break, so do you got any suggestions how to revise my code from looping and make my table to look exactly like the one in the attachment?

 

#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;

int main()
{

    double number = 0;
    double rows = 0;
    double squared = 0;
    double cubed = 0;
    double squareRoot = 0;
    double cubeRoot = 0;
    int ceiling = 0;
    int floor = 0;

    while (number <= 0)
    {

    cout << "Where would you like to start? ";
    cin >> number;
    cout << endl;
    }

    cout << "And how many rows? ";
    cin >> rows;
    cout << endl;


    squared = number*number;
    cubed = number*number*number;
    squareRoot = sqrt (number);
    cubeRoot = pow((double)(number),(double)1/3);

    do
    {
    cout << number << setw(5) << squared << setw(5) << cubed << setw(5) << squareRoot << setw(5) << cubeRoot << setw(5) << ceiling << setw(5) << floor << setw(5);
    ++number, ++squared, ++cubed, ++squareRoot, ++cubeRoot, ++ceiling, ++floor;
    }
    while (number > 0);


    return 0;
}

  • 0

You could use tabs instead of spaces. I think it's "\t" in C?

You still need to fix your while statement, too. Unless you enter a negative starting number it will always be greater than zero. Plus, you're outputting your rows in the loop so you need to be testing against that variable.

for (int rowCount = 0; rowCount < rows; rowCount++)

{

...code...

}

  • 0

is that the correct place where I place the " (int rowCount = 0; rowCount < rows; rowCount++) " ? I placed it before the "do", but it still loops

 

#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;

int main()
{

    double number = 0;
    double rows = 0;
    double squared = 0;
    double cubed = 0;
    double squareRoot = 0;
    double cubeRoot = 0;
    int ceiling = 0;
    int floor = 0;


    {

    cout << "Where would you like to start? ";
    cin >> number;
    cout << endl;
    }

    cout << "And how many rows? ";
    cin >> rows;
    cout << endl;


    squared = number*number;
    cubed = number*number*number;
    squareRoot = sqrt (number);
    cubeRoot = pow((double)(number),(double)1/3);

    for (int rowCount = 0; rowCount < rows; rowCount++)

    do
    {
    cout << number << setw(5) << squared << setw(5) << cubed << setw(5) << squareRoot << setw(5) << cubeRoot << setw(5) << ceiling << setw(5) << floor << setw(5);
    ++number, ++squared, ++cubed, ++squareRoot, ++cubeRoot, ++ceiling, ++floor;

    }
    while (number > 0);


    return 0;
}

  • 0

No, it should replace the do...while construct. The assignment you posted said to use a for... loop.

     for (int rowCount = 0; rowCount < rows; rowCount++)
     {
     cout << number << setw(5) << squared << setw(5) << cubed << setw(5) << squareRoot << setw(5) << cubeRoot << setw(5) << ceiling << setw(5) << floor << setw(5);
     ++number, ++squared, ++cubed, ++squareRoot, ++cubeRoot, ++ceiling, ++floor;

     }
  

     return 0;
 }
  • 0

thank you for helping to make the program to stop the loop but my values still display diagonally and not evenly line up like a regular table should. it looks really random and values are located everywhere:

 

#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;

int main()
{

    double number = 0;
    double rows = 0;
    double squared = 0;
    double cubed = 0;
    double squareRoot = 0;
    double cubeRoot = 0;
    int ceiling = 0;
    int floor = 0;


    {

    cout << "Where would you like to start? ";
    cin >> number;
    cout << endl;
    }

    cout << "And how many rows? ";
    cin >> rows;
    cout << endl;


    squared = number*number;
    cubed = pow(number, 3.0);
    squareRoot = sqrt (number);
    cubeRoot = pow(number, 1/3);

    for (int rowCount = 0; rowCount < rows; rowCount++)
     {
     cout << number << setw(5) << squared << setw(5) << cubed << setw(5) << squareRoot << setw(5) << cubeRoot << setw(5) << ceiling << setw(5) << floor << setw(5);
     ++number, ++squared, ++cubed, ++squareRoot, ++cubeRoot, ++ceiling, ++floor;

     }
 

     return 0;
 }
 

  • 0

I tried adding the the titles for my table but they still look very uneven looking:

 

#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;

int main()
{

    double number = 0;
    double rows = 0;
    double squared = 0;
    double cubed = 0;
    double squareRoot = 0;
    double cubeRoot = 0;
    int ceiling = 0;
    int floor = 0;


    {

    cout << "Where would you like to start? ";
    cin >> number;
    cout << endl;
    }

    cout << "And how many rows? ";
    cin >> rows;
    cout << endl;


    squared = number*number;
    cubed = pow(number, 3.0);
    squareRoot = sqrt (number);
    cubeRoot = pow(number, 1/3);

    cout << "Number" << setw(6) << "Squared" << setw(6) << "Cubed" << setw(6) << "SquareRoot" << setw(6) << "CubeRoot" << setw(6) << "Ceiling" << setw(6) << "Floor" << setw(6);

    for (int rowCount = 0; rowCount < rows; rowCount++)
    {
     cout << number << setw(6) << squared << setw(6) << cubed << setw(6) << squareRoot << setw(6) << cubeRoot << setw(6) << ceiling << setw(6) << floor << setw(6);
     ++number, ++squared, ++cubed, ++squareRoot, ++cubeRoot, ++ceiling, ++floor;

     }
 

     return 0;
 }
 

  • 0

How about you worry about logic first.

 

You need a for loop, right?

You don't even need to be storing them into variables.

This whole thing could be real simple.

 

Your only inputs come from the user, and there are only 2.

So.... the pseudocode logic then becomes:

 

// Get starting point n (double)

// Get number of rows (integer)

// Print header

// For each row, print the set of values for the row of data, incrementing n by 0.1 in the process

 

Your for-loop would then look like:

    for (int intRow = 0; intRow < intRows; intRow++)
    {

         // Output formatted n

         cout << n

 

         // Output formatted squared

         cout << n*n

 

         // Output formatted cubed

         cout << n*n*n

 

         // etc...

 

         // increment n by 0.1

         n += 0.1

     }

 

The point of the exercise is to understand the LOGIC, not to worry a ton about the formatting.

Does the LOGIC make more sense to you?

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • highly doubt that, he's giving away his wealth, he's been doing it for years now
    • Might be just about usable in about 5 years.
    • New Outlook for Windows gets a major boost with June 2025 Update by Pradeep Viswanathan Despite widespread criticism, Microsoft has remained focused on replacing the classic Outlook for Windows with the new web-based Outlook app for everyone. Every month, Microsoft releases updates to the new Outlook app based on user feedback. Today, Microsoft released the June 2025 update for Outlook for Windows with several improvements, including some of the most requested features by Outlook users. With this latest update, Microsoft has improved support for .pst (Outlook Data File) files. You can now reply to and forward emails in a stored .pst file. Microsoft is also working on further improving support for .pst files in the new Outlook for Windows. If you're using the new Outlook app with your personal Microsoft account that has access to Copilot Pro or AI credits through a Microsoft 365 Personal or Family subscription, Copilot features will now be available even for other personal email accounts configured in the Outlook app. This Copilot sharing feature works with email addresses such as Outlook.com, Hotmail.com, Live.com, MSN.com, and third-party providers like Gmail, Yahoo, and iCloud. Microsoft has also added the ability to easily move emails between personal accounts. This feature is disabled by default for enterprise users, but admins can enable it if needed. With this update, Microsoft has increased the default mail sync window in offline mode from 7 days to 30 days. Additionally, you can now access search folders and cancel an email after selecting Send in offline mode. This new update also brings email coaching support through Copilot. Copilot can now suggest adjustments to tone, clarity, and reader sentiment before you hit Send. If you are annoyed with Copilot, you can now disable Copilot completely by going to the Copilot > Copilot control page in the Settings window. In this release, Microsoft has added the ability to add shared folders to your Favorites, making it easier to access content directly from the Favorites list. Finally, an "External" tag will be added to external contact suggestions that appear in the dropdown menu when entering contacts in the email compose form, helping you distinguish between your organization's and external contacts.
    • "give" I believe he will give loans and drown the countries in debt
  • Recent Achievements

    • Week One Done
      Adam Todd earned a badge
      Week One Done
    • Contributor
      Ed B went up a rank
      Contributor
    • One Month Later
      moporcho earned a badge
      One Month Later
    • One Month Later
      Parotel earned a badge
      One Month Later
    • Reacting Well
      Cryptecks earned a badge
      Reacting Well
  • Popular Contributors

    1. 1
      +primortal
      210
    2. 2
      snowy owl
      156
    3. 3
      ATLien_0
      134
    4. 4
      Xenon
      120
    5. 5
      +FloatingFatMan
      113
  • Tell a friend

    Love Neowin? Tell a friend!