Selasa, 03 Juli 2012

Perhitungan Analitik dan Numerik Pada C++

#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
#include <math.h>
#define e 2.718281828
#define g 9.80
#define c 12.5
main()
{
FILE *analitik, *numerik;
double vt, et, cmt, m,vti1, vi;
int i, option;
double t1, t2, dt;
char lagi;
do
{
clrscr();
cout << "\n\nPerhitungan Analitik dan Numerik Falling Parachute";
cout << "\n==================================================\n\n";
cout << "Menu Pilihan\n";
cout << "------------\n\n";
cout << "(1) Perhitungan Analitik\n\n";
cout << "(2) Perhitungan Numerik\n\n";
cout << "Pilihan Anda ? ";
cin >> option;
switch(option)
{
case 1 :
{
analitik = fopen("parachute_analitik.txt", "w+");
cout << "\n\nPerhitungan Analitik Falling Parachute";
cout << "\n======================================\n\n";
cout << "Berapa Nilai massa (m) ? ";
cin >> m;
cout << "\nMasukkan Waktu Awal (t1) ? ";
cin >> t1;
cout << "\nMasukkan Waktu Akhir (t2) ? ";
cin >> t2;
cout << "\nMasukkan Interval Waktu (dt) ? ";
cin >> dt;
printf("\n\t-----------------------------------------------------------\n");
printf("\tIterasi ke-\tt\te(t)\t\tv(t)\n");
printf("\t-----------------------------------------------------------\n\n");
fprintf(analitik, "\n\t-----------------------------------------------------------\n");
fprintf(analitik, "\tIterasi ke-\tt\te(t)\t\tv(t)\n");
fprintf(analitik, "\t-----------------------------------------------------------\n\n");
for (i = t1; i <= t2; i++)
{
cmt = (c * t1)/m;
et = 1 - pow(e,-cmt);
vt = (g*m*et)/c;
printf("\t\t%.d\t%.1f\t%.5f\t\t%.5f\n", i+1, t1, et, vt);
fprintf(analitik,"\t\t%.d\t%.1f\t%.5f\t%.5f\n", i+1, t1,
et, vt);
t1 += dt;
}
printf("\n\t-----------------------------------------------------------\n\n");
fprintf(analitik,"\n\t-----------------------------------------------------------\n\n");
fprintf(analitik,"Dimana\n\nMassa = %.2f\n", m);
fprintf(analitik,"Koefisien c = %.2f\n", c);
fprintf(analitik,"Parameter g = %.2f\n", g);
fclose(analitik);
break;
}
case 2 :
{
vi = 0.0;
t1 = 0;
numerik = fopen("parachute_numerik.txt", "w+");
cout << "\n\nPerhitungan Numerik Falling Parachute";
cout << "\n=====================================\n\n";
cout << "Berapa Nilai massa (m) ? ";
cin >> m;
cout << "\nMasukkan Waktu Awal (t1) ? ";
cin >> t1;
cout << "\nMasukkan Waktu Akhir (t2) ? ";
cin >> t2;
cout << "\nMasukkan Interval Waktu (dt) ? ";
cin >> dt;
printf("\n\t-----------------------------------------------------------\n");
printf("\tIterasi ke-\tt\tv(ti)\t\tv(ti+1)\n");
printf("\t-----------------------------------------------------------\n\n");
fprintf(numerik, "\n\t-----------------------------------------------------------\n");
fprintf(numerik, "\tIterasi ke-\tt\tv(ti)\t\tv(ti+1)\n");
fprintf(numerik, "\t-----------------------------------------------------------\n\n");
for (i = t1; i <= t2; i++)
{
//rumus v(ti+1)= vi + (g - (c*vi)/m)*(ti1+ti)
vti1 = vi + (g - (c*vi)/m) * dt;
printf("\t\t%.d\t%.1f\t%.4f\t\t%.5f\n", i+1, t1, vi,
vti1);
fprintf(numerik,"\t\t%.d\t%.1f\t%.4f\t\t%.5f\n", i+1, t1,
vi, vti1);
vi = vti1;
t1 += dt;
}
printf("\n\t-----------------------------------------------------------\n\n");
fprintf(numerik,"\n\t-----------------------------------------------------------\n\n");
fprintf(numerik,"Dimana\n\nMassa = %.2f\n", m);
fprintf(numerik,"Koefisien c = %.2f\n", c);
fprintf(numerik,"Parameter g = %.2f\n", g);
fclose(numerik);
break;
}
default : cout << "\n\nNo Good, man .......... ";
}
printf("Dimana\n\nMassa = %.2f\n", m);
printf("Koefisien c = %.2f\n", c);
printf("Parameter g = %.2f\n", g);
cout << "\n\nCoba lagi dengan data awal yang berbeda (y/t) ? ";
cin >> lagi;
}while(lagi != 't');
return 0;
}

Tidak ada komentar:

Posting Komentar