// PROGRAM free_fall #include "TrueBASIC.h" int main(); void initial(); void Euler(); void print_table(); int nshow; double a; double dt; double g; double t; double v; double y; int main() { int counter; initial(); print_table(); counter = 0; while(y >= 0) { Euler(); if((++counter % nshow) == 0) print_table(); } print_table(); GWquit(); return 0; } void initial() { t = 0; y = 10; v = 0; g = 9.8; a = -g; dt = 0.01; } void Euler() { y += v*dt; a = -g; v += a*dt; t += dt; } void print_table() { char Stmp1_[_LBUFF_]; if(t == 0) { printf("number of time steps between output = "); fgets(Stmp1_, _LBUFF_, stdin); sscanf(Stmp1_, "%d", &nshow); printf("\n time (s) y (m) velocity (m/s) accel (m/s*s)\n\n"); } printf("%12f %12f %12f %12f\n", t, y, v, a); }