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

  • Context: C/C++ 
  • Thread starter Thread starter physics=world
  • Start date Start date
  • Tags Tags
    C++ Code
Click For Summary
SUMMARY

The discussion focuses on modifying C++ code to initiate time calculations from zero instead of a user-defined total time. The user initially sets the variable "t" based on input, which leads to incorrect calculations. The solution involves introducing a new variable, "tstep," initialized to zero, and incrementing it by the step size instead of decrementing "t." This adjustment ensures that calculations for velocity and distance start from zero and progress to the total time specified by the user.

PREREQUISITES
  • Understanding of C++ syntax and structure
  • Familiarity with basic physics concepts, particularly kinematics
  • Knowledge of variable manipulation and control flow in programming
  • Experience with input/output operations in C++
NEXT STEPS
  • Implement the suggested changes by creating a new variable "tstep" in the C++ code
  • Research C++ data types and their implications on calculations
  • Explore the use of loops and conditionals in C++ for iterative calculations
  • Study the physics of motion to better understand the implications of the calculations
USEFUL FOR

C++ developers, physics students, and anyone interested in programming simulations of motion and time calculations.

physics=world
Messages
109
Reaction score
0
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
int main()
{
count << "Enter the total time: ";
double t;
cin >> t;

count << "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

count << "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! :)
 

Similar threads

  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 13 ·
Replies
13
Views
3K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 9 ·
Replies
9
Views
4K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 6 ·
Replies
6
Views
2K
Replies
1
Views
4K