C/C++ How Should I Modify My C++ Code to Start Time Calculation from Zero?

  • Thread starter Thread starter physics=world
  • Start date Start date
  • Tags Tags
    C++ Code
AI Thread Summary
The discussion revolves around a C++ program designed to calculate the distance and velocity of an object under the influence of gravity over a specified total time, using a defined step size. The user inputs the total time and step size, but the issue arises from the program starting calculations from the user-defined total time instead of zero. A suggestion is made to introduce a new variable, "tstep," initialized to zero, which would increment by the step size instead of decrementing the total time. This adjustment allows the program to correctly simulate the motion from zero time to the specified total time. The participants clarify that the original variable "t" should not be used for calculations but rather as a fixed input for total time. The conversation concludes with appreciation for the guidance provided.
physics=world
Messages
109
Reaction score
0
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
int main()
{
cout << "Enter the total time: ";
double t;
cin >> t;

cout << "Enter the step-size: ";
double step;
cin >> step;

double steps = ceil(t/step);

const double a = 9.806; // accel. due to gravity // m/(sec^2)

for (int count = 0; count <= steps; count++) {


double v = (a*t); // calculation for velocity

const double half = 0.5;
double x = (half)*(a)*(pow(t, 2)); // calculation for distance

cout << "t: " << setprecision(4) << fixed << t << "\tx: " << x << "\tv: " << v << endl;

t -= step;
}

return 0;This is the result I'm getting:

Enter the total time: 0.1
Enter the step-size: 0.01
t: 0.1000 x: 0.0490 v: 0.9806
t: 0.0900 x: 0.0397 v: 0.8825
t: 0.0800 x: 0.0314 v: 0.7845
t: 0.0700 x: 0.0240 v: 0.6864
t: 0.0600 x: 0.0177 v: 0.5884
t: 0.0500 x: 0.0123 v: 0.4903
t: 0.0400 x: 0.0078 v: 0.3922
t: 0.0300 x: 0.0044 v: 0.2942
t: 0.0200 x: 0.0020 v: 0.1961
t: 0.0100 x: 0.0005 v: 0.0981
t: 0.0000 x: 0.0000 v: 0.0000

___________________________________

What I am trying to do is to begin from zero and work my way down to 0.1000.
I still need to enter 0.1 for the total time (which is variable "t" in the code).

How would I code it in order to make it begin from zero?
 
Technology news on Phys.org
Hey physics=world.

You are setting your t as what you input. Instead what you should do is use another variable (say tstep), set it equal to zero and then instead of using t -= step you use tstep += step.

Take a look at your code again to see what's happening.
 
chiro said:
Hey physics=world.

You are setting your t as what you input. Instead what you should do is use another variable (say tstep), set it equal to zero and then instead of using t -= step you use tstep += step.

Take a look at your code again to see what's happening.

Are you saying get rid of my input "t"?
 
physics=world said:
Are you saying get rid of my input "t"?

I see what your talking about. The "t" in both equation is not suppose to be the value taken from the user.
Thanks for helping me! :)
 
Thread 'Is this public key encryption?'
I've tried to intuit public key encryption but never quite managed. But this seems to wrap it up in a bow. This seems to be a very elegant way of transmitting a message publicly that only the sender and receiver can decipher. Is this how PKE works? No, it cant be. In the above case, the requester knows the target's "secret" key - because they have his ID, and therefore knows his birthdate.

Similar threads

Back
Top