Anda di halaman 1dari 30

TUGAS 5

SI-5241 MODEL SIMULASI SISTEM TRANSPORTASI

Dosen
Ir. Idwan Santoso, M.Sc., DIC, Ph.D.

Disusun Oleh:
Intan Puspa Wangi
25017028

PROGRAM MAGISTER TEKNIK SIPIL REKAYASA TRANSPORTASI


FAKULTAS TEKNIK SIPIL DAN LINGKUNGAN
INSTITUT TEKNOLOGI BANDUNG
2018
ALGORITMA DAN PROGRAM UNTUK
MENGHITUNG TOTAL DELAY PEDESTRIAN

1. Algoritma Pemecahan Masalah


Pada tugas ini akan dilakukan pembuatan program untuk menghitung total delay dari
sejumlah pedestrian pada lokasi penyeberangan jalan. Algoritma dari program ini adalah
sebagai berikut:

START A

VARIABLE
i=1
IDENTIFICATION

VARIABLE IDENTIFICATION
GENERAL
integer i, j, k, l, m, n, state_x, jumlah_hp, state_hp, ALGORITHM
fhp, hpmin, hpmax, fhpcum, jumlah_hk, state_hk,
fhk, hkmin, hkmax, fhkcum, jumlah_vk, state_vk,
fvk, vkmin, vkmax, fvkcum ALGORITHM B

float T, DR, g1, g2, gacc, r1, r2, r3, r4, r5, r6, TAP, TAB, r1; r2; hp[i]; TAP[i]
D, TD, TAK, fhpcumx, hp, fhkcumx, hk, fvkcumx, vk LOOPING STATEMENT

i=i+1

ALGORITHM C
INITIALIZATION
Update m
INPUT

fhp, hpmin, hpmax, fhk,


hkmin, hkmax, fvk, vkmin,
vkmax ALGORITHM D

Cek g1 g2 gacc;
TAB[i]; D[i]; TD[i]
INITIAL STATEMENT

T[0] = 0; DR[0] = 0; r1[0] = 0; r2[0] = 0; r3[0]


= 0; r4[0] = 0; r5[0] = 0; r6[0] = 0; hp[0] = 0; YES
TAP[0] = 1; TAB[0] = 0; D[0] = 0; TD[0] = 0;
TAK[0] = 10; gacc = 20; m = 1
IF CONDITIONAL

TAP[i] < T

ALGORITHM A

r3; r4; r5; r6; vk[k]; r5; r6; hk[k]; NO


TAK[k]

DR = TD[l] / l

A END

Gambar 1 General Algorithm

2
ALGORITHM A

START

INITIAL STATEMENT

k = 1;

ALGORITHM A1

vk[k]
LOOPING STATEMENT
k=k+1

ALGORITHM A2
hk[k]

TAK[k] = TAK[k-1] + hk[k];

YES

IF CONDITIONAL

TAK[k] < T

NO

END

Gambar 2 Algorithm A

3
ALGORITHM A1

START

INITIAL STATEMENT

Generate r3, r4;


state_vk = 0;
j = 0;

CONDITIONAL
IF CONDITIONAL
STATEMENT
NO
r3[k] < fvkcumx[j]
j=j+1

NO
YES

CONDITIONAL STATEMENT

vk[k] = vkmin[j] + (r4[k] * (vkmax[j]-


vkmin[j]));
state_vk = 1;

IF CONDITIONAL

state_vk = 1

YES

END

Gambar 3 Algorithm A1

4
ALGORITHM A2

START

INITIAL STATEMENT

Generate r5, r6;


state_hk = 0;
j = 0;

CONDITIONAL
IF CONDITIONAL
STATEMENT
NO
r5[k] < fhkcumx[j]
j=j+1

NO
YES

CONDITIONAL STATEMENT

hk[k] = hkmin[j] + (r6[k] * (hkmax[j]-


hkmin[j]));
state_hk = 1;

IF CONDITIONAL

state_hk = 1

YES

END

Gambar 4 Algorithm A2

5
ALGORITHM B

START

INITIAL STATEMENT

T = 0; i = 1;

INITIAL STATEMENT

Generate r1, r2;


l = i; state_hp = 0; j = 0;

CONDITIONAL
IF CONDITIONAL
NO STATEMENT
NO
r1[i] < fhpcumx[j]
j=j+1

YES

CONDITIONAL STATEMENT

hp[i] = hpmin[j] + (r2[i] * (hpmax[j]-


hpmin[j]));
state_hp = 1;

IF CONDITIONAL

state_hp = 1

YES

TAP[i] = TAP[i-1] + hp[i]

END

Gambar 5 Algorithm B

6
ALGORITHM C

START

INITIAL STATEMENT
k=m
state_x = 0

IF CONDITIONAL

TAP[i] < TAK[k]


NO
NO

YES

m=k
state_x = 1
k=k+1

IF CONDITIONAL

state_x = 1

YES

END

Gambar 6 Algorithm C

7
ALGORITHM D

START

INITIAL STATEMENT

k = m; state_x = 0;

g1 = vk[k] * (TAK[k]-TAP[i]) * 1000 / 3600;


g2 = vk[k] * hk[k] * 1000 / 3600;

IF CONDITIONAL
IF CONDITIONAL
NO TAP[i] < TAK[k]
k == m and
gacc < g2
NO

YES YES

IF CONDITIONAL TAB[i] = TAK[k-1];


m = k;
TAP[i] < TAK[k] state_x = 1; k=k+1
and NO
gacc < g1

NO
YES

TAB[i] = TAP[i]; k=k+1


m = k;
state_x = 1;

IF CONDITIONAL

state_x = 1

YES

D[i] = TAB[i] - TAP[i];


TD[i] = TD[i-1] + D[i];

END

Gambar 7 Algorithm D

8
3. Fortran Programming
! MENGHITUNG TOTAL DELAY
PEDESTRIAN program main
implicit none

! IDENTIFIKASI VARIABLE
integer :: i,j,k,l,m,n,jumlah_hp,state_hp,jumlah_hk,state_hk,jumlah_vk,state_vk,state_x
real :: T,DR,g1,g2,gacc
integer, dimension(1:6) :: fhp = (/10,25,38,35,30,28 /)
integer, dimension(1:6) :: hpmin = (/1,5,10,15,20,25/)
integer, dimension(1:6) :: hpmax = (/5,10,15,20,25,30/)
integer, dimension(1:6) :: fhpcum
real, dimension(1:6) :: fhpcumx
integer, dimension(1:5) :: fhk = (/10,20,35,40,25/)
integer, dimension(1:5) :: hkmin = (/1,5,10,15,25/)
integer, dimension(1:5) :: hkmax = (/5,10,15,25,35 /)
integer, dimension(1:5) :: fhkcum
real, dimension(1:5) :: fhkcumx
integer, dimension(1:6) :: fvk = (/10,36,50,30,20,8 /)
integer, dimension(1:6) :: vkmin = (/10,20,30,40,50,60/)
integer, dimension(1:6) :: vkmax = (/20,30,40,50,60,70/)
integer, dimension(1:6) :: fvkcum
real, dimension(1:6) :: fvkcumx
real, dimension(:), allocatable :: r1,r2,r3,r4,r5,r6,hp,hk,vk,TAP,TAB,D,TD,TAK

! INISIALISASI
jumlah_hp =
0 do j=1,6
jumlah_hp = jumlah_hp +
fhp(j) end do

fhpcum(1) = fhp(1)
fhpcumx(1) = fhpcum(1)/jumlah_hp
do j=2,6
fhpcum(j) = fhpcum(j-1)+fhp(j)
fhpcumx(j) = fhpcum(j)/jumlah_hp
end do

jumlah_hk = 0
do j=1,5
jumlah_hk = jumlah_hk +
fhk(j) end do

fhkcum(1) = fhk(1)
fhkcumx(1) =
fhkcum(1)/jumlah_hk do j=2,5
fhkcum(j) = fhkcum(j-1)+fhk(j)
fhkcumx(j) = fhkcum(j)/jumlah_hk
end do

jumlah_vk = 0
do j=1,6
jumlah_vk = jumlah_vk +
fvk(j) end do
fvkcum(1) = fvk(1)
fvkcumx(1) = fvkcum(1)/jumlah_vk
do j=2,6
fvkcum(j) = fvkcum(j-1)+fvk(j)
fvkcumx(j) = fvkcum(j)/jumlah_vk
end do

T =0
DR =0
r1(1) = 0
r2(1) = 0
r3(1) = 0
r4(1) = 0
r5(1) = 0
r6(1) = 0
hp(1) = 1
TAP(1) = 1
TAB(1) = 0
D(1) = 0
TD(1) = 0
TAK(1) = 10

gacc = 20
m =2

! ALGORITMA A
k=2
do while (T<1000)
n=k
r3(k) = rand()
r4(k) = rand()
r5(k) = rand()
r6(k) = rand()

state_vk = 0
j=1
do j=1,6
if (r3(k)<fvkcumx(j)) then
vk(k) = vkmin(j) + (r4(k)*(vkmax(j)-vkmin(j)))
state_vk = 1
stop
end if
if (state_vk==1) then
stop
end if
end do

state_hk = 0
j=1
do j=1,6
if (r5(k)<fhkcumx(j)) then
hk(k) = hkmin(j) + (r6(k)*(hkmax(j)-hkmin(j)))
state_hk = 1
stop
end if
if (state_hk==1) then
stop
end if
end do

TAK(k) = TAK(k-1) + hk(k)

T = TAK(k)
k=k+1
end do

! ALGORITMA B
T=0
i=2
do while (T<1000)
l=i
r1(i) = rand()
r2(i) = rand()

state_hp = 0
j=1
do j=1,6
if (r1(i)<fhpcumx(j)) then
hp(i) = hpmin(j) + (r2(i)*(hpmax(j)-hpmin(j)))
state_hp = 1
stop
end if
if (state_hp==1) then
stop
end if
end do

TAP(i) = TAP(i-1) + hp(i)

! ALGORITMA C
k = m state_x
= 0 do
k=m,1000
if (TAP(i)<TAK(k))
then m = k
state_x =
1 stop
end if
if (state_x==1)
then stop
end if
end do

! ALGORITMA D
k=m
state_x = 0
do k=m,1000
g1 = vk(k) * (TAK(k)-TAP(i)) * 1000 / 3600
g2 = vk(k) * hk(k) * 1000 / 3600
if (k==m) then
if (TAP(i)<TAK(k) .and. (gacc<g1)) then
TAB(i) = TAP(i)
m=k
state_x = 1
stop
end if
else
if (TAP(i)<TAK(k) .and. (gacc<g2)) then
TAB(i) = TAK(k-1)
m=k
state_x = 1
stop
end if
end if
if (state_x==1) then
stop
end if
end do

D(i) = TAB(i) - TAP(i)


TD(i) = TD(i-1) + D(i)

T = TAP(i)
i=i+1
end do

DR = TD(l)/l

! OUTPUT
write(*,*)
"/R1:" do i=1,l
write(*,*) r1(i)
end do
print '(/"")'

write(*,*)
"/R2:" do i=1,l
write(*,*) r2(i)
end do
print '(/"")'

write(*,*)
"/hp:" do i=1,l
write(*,*) hp(i)
end do
print '(/"")'

write(*,*)
"/TAP:" do i=1,l
write(*,*) TAP(i)
end do
print '(/"")'

write(*,*) "/TAB:"
do i=1,l
write(*,*) TAB(i)
end do
print '(/"")'

write(*,*) "/D:"
do i=1,l
write(*,*) D(i)
end do
print '(/"")'

write(*,*) "/TD:"
do i=1,l
write(*,*) TD(i)
end do
print '(/"")'

write(*,*) "/R3:"
do k=1,n
write(*,*) r3(k)
end do
print '(/"")'

write(*,*) "/R4:"
do k=1,n
write(*,*) r4(k)
end do
print '(/"")'

write(*,*) "/R5:"
do k=1,n
write(*,*) r5(k)
end do
print '(/"")'

write(*,*) "/R6:"
do k=1,n
write(*,*) r6(k)
end do
print '(/"")'

write(*,*) "/hk:"
do k=1,n
write(*,*) hk(k)
end do
print '(/"")'

write(*,*) "/vk:"
do k=1,n
write(*,*) vk(k)
end do
print '(/"")'

write(*,*) "/TAK:"
do k=1,n
write(*,*) TAK(k)
end do
print '(/"")'

write(*,*) "/DR:"
write(*,*) DR

end
4. C Programming
/*MENGHITUNG TOTAL DELAY PEDESTRIAN*/
#include<stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{

/*IDENTIFIKASI VARIABLE*/
int i;
int l;

int k;
int n;
int m;

int j;

float g1;
float g2;
float gacc;

float T;
float DR;

float r1[1000];
float r2[1000];
float r3[1000];
float r4[1000];
float r5[1000];
float r6[1000];

float TAP[1000];
float TAB[1000];
float D[1000];
float TD[1000];
float TAK[1000];

int state_x;

int jumlah_hp;
int state_hp;
int fhp[6] = { 10,25,38,35,30,28};
int hpmin[6] = { 1,5,10,15,20,25};
int hpmax[6] = { 5,10,15,20,25,30};
int fhpcum[6];
float fhpcumx[6];
float hp[1000];

int jumlah_hk;
int state_hk;
int fhk[5] = { 10,20,35,40,25};
int hkmin[5] = { 1,5,10,15,25};
int hkmax[5] = { 5,10,15,25,35};
int fhkcum[5];
float fhkcumx[5];
float hk[1000];

int jumlah_vk;
int state_vk;
int fvk[6] = { 10,36,50,30,20,8};
int vkmin[6] = { 10,20,30,40,50,60};
int vkmax[6] = { 20,30,40,50,60,70};
int fvkcum[6];
float fvkcumx[6];
float vk[1000];

srand(time(NULL));

/*INISIALISASI*/
jumlah_hp = 0;
for (j=0;j<6;j++)
{
jumlah_hp = jumlah_hp + fhp[j];
}
fhpcum[0]= fhp[0];
fhpcumx[0]= (float) fhpcum[0]/jumlah_hp;
for (j=1;j<6;j++)
{
fhpcum[j] = fhpcum[j-1] + fhp[j];
fhpcumx[j] = (float) fhpcum[j]/jumlah_hp;
}

jumlah_hk = 0;
for (j=0;j<5;j++)
{
jumlah_hk = jumlah_hk + fhk[j];
}
fhkcum[0]= fhk[0];
fhkcumx[0]= (float) fhkcum[0]/jumlah_hk;
for (j=1;j<5;j++)
{
fhkcum[j] = fhkcum[j-1] + fhk[j];
fhkcumx[j] = (float) fhkcum[j]/jumlah_hk;
}

jumlah_vk = 0;
for (j=0;j<6;j++)
{
jumlah_vk = jumlah_vk + fvk[j];
}
fvkcum[0]= fvk[0];
fvkcumx[0]= (float) fvkcum[0]/jumlah_vk;
for (j=1;j<6;j++)
{
fvkcum[j] = fvkcum[j-1] + fvk[j];
fvkcumx[j] = (float) fvkcum[j]/jumlah_vk;
}
T = (float) 0;
DR = (float) 0;
r1[0] = (float) 0;
r2[0] = (float) 0;
r3[0] = (float) 0;
r4[0] = (float) 0;
r5[0] = (float) 0;
r6[0] = (float) 0;

hp[0] = (float) 1;
TAP[0] = (float) 1;
TAB[0] = (float) 0;
D[0] = (float) 0;
TD[0] = (float) 0;
TAK[0] = (float) 10;

gacc = (float) 20;


m = 1;

/*ALGORITMA A*/
k = 1; while
(T<1000)
{
n = k;
r3[k] = (float) rand()/RAND_MAX;
r4[k] = (float) rand()/RAND_MAX;
r5[k] = (float) rand()/RAND_MAX;
r6[k] = (float) rand()/RAND_MAX;

state_vk = 0;
j = 0;
do
{
if (r3[k]<fvkcumx[j])
{
vk[k] = (float) (vkmin[j] + (r4[k]*(vkmax[j]-vkmin[j])));
state_vk = 1;
}
else
{
j = j + 1;
}
} while (state_vk!=1);

state_hk = 0;
j = 0;
do
{
if (r5[k]<fhkcumx[j])
{
hk[k] = (float) (hkmin[j] + (r6[k]*(hkmax[j]-hkmin[j])));
state_hk = 1;
}
else
{
j = j + 1;
}
} while (state_hk!=1);

TAK[k] = (float) (TAK[k-1] + hk[k]);

T = (float) TAK[k];
k = k + 1;
}

/*ALGORITMA B*/
T = (float) 0;
i = 1;
while (T<1000)
{
l = i;
r1[i] = (float) rand()/RAND_MAX;
r2[i] = (float) rand()/RAND_MAX;

state_hp = 0;
j = 0;
do
{
if (r1[i]<fhpcumx[j])
{
hp[i] = (float) (hpmin[j] + (r2[i]*(hpmax[j]-hpmin[j])));
state_hp = 1;
}
else
{
j = j + 1;
}
} while (state_hp!=1);

TAP[i] = (float) (TAP[i-1] + hp[i]);

/*ALGORITMA C*/
k = m;
state_x = 0;
do
{
if ( TAP[i] < TAK[k] )
{
m = k;
state_x = 1;
}
else
{
k = k + 1;
}
} while (state_x!=1);

/*ALGORITMA D*/
k = m;
state_x = 0;
do
{
g1 = (float) (vk[k] * (TAK[k]-TAP[i]) * 1000 / 3600);
g2 = (float) (vk[k] * hk[k] * 1000 / 3600);
if (k==m)
{
if ((TAP[i]<TAK[k]) && (gacc < g1))
{
TAB[i] = (float) (TAP[i]);
m = k;
state_x = 1;
}
else
{
k = k + 1;
}
}
else
{
if ((TAP[i]<TAK[k]) && (gacc < g2))
{
TAB[i] = (float) (TAK[k-1]);
m = k;
state_x = 1;
}
else
{
k = k + 1;
}
}
} while (state_x!=1);

D[i] = (float) (TAB[i] - TAP[i]);


TD[i] = (float) (TD[i-1] + D[i]);

T = (float) TAP[i];
i = i + 1;
}

DR = (float) TD[l]/l;

/*OUTPUT*/
printf("\n\nR1:");
for (i=0;i<l+1;i++)
{
printf("\n%f",r1[i]);
}

printf("\n\nR2:");
for (i=0;i<l+1;i++)
{
printf("\n%f",r2[i]);
}

printf("\n\nhp:");
for (i=0;i<l+1;i++)
{
printf("\n%f",hp[i]);
}

printf("\n\nTAP:");
for (i=0;i<l+1;i++)
{
printf("\n%f",TAP[i]);
}

printf("\n\nTAB:");
for (i=0;i<l+1;i++)
{
printf("\n%f",TAB[i]);
}

printf("\n\nD:");
for (i=0;i<l+1;i++)
{
printf("\n%f",D[i]);
}

printf("\n\nTD:");
for (i=0;i<l+1;i++)
{
printf("\n%f",TD[i]);
}

printf("\n\nR3:");
for (k=0;k<n+1;k++)
{
printf("\n%f",r3[k]);
}

printf("\n\nR4:");
for (k=0;k<n+1;k++)
{
printf("\n%f",r4[k]);
}

printf("\n\nR5:");
for (k=0;k<n+1;k++)
{
printf("\n%f",r5[k]);
}

printf("\n\nR6:");
for (k=0;k<n+1;k++)
{
printf("\n%f",r6[k]);
}

printf("\n\nhk:");
for (k=0;k<n+1;k++)
{
printf("\n%f",hk[k]);
}

printf("\n\nvk:");
for (k=0;k<n+1;k++)
{
printf("\n%f",vk[k]);
}

printf("\n\nTAK:");
for (k=0;k<n+1;k++)
{
printf("\n%f",TAK[k]);
}

printf("\n\nDR:");
printf("\n%f",DR);

return 0;
}
5. Pascal Programming
(*MENGHITUNG TOTAL DELAY PEDESTRIAN*)
program Delay_Pedestrian_Pascal;
uses crt;

(*IDENTIFIKASI VARIABLE*)
var
i,j,k,l,m,n,jumlah_hp,state_hp,jumlah_hk,state_hk,jumlah_vk,state_vk,state_x : integer;
T,DR,R1,R2,R3,R4,R5,R6,g1,g2,gacc : real;
fhp : array [1..6] of integer = (10,25,38,35,30,28);
hpmin : array [1..6] of real = (1,5,10,15,20,25);
hpmax : array [1..6] of real = (5,10,15,20,25,30);
fhpcum : array [1..6] of integer;
fhpcumx : array [1..6] of real;
fhk : array [1..5] of integer = (10,20,35,40,25);
hkmin : array [1..5] of real = (1,5,10,15,25);
hkmax : array [1..5] of real = (5,10,15,25,35);
fhkcum : array [1..5] of integer;
fhkcumx : array [1..5] of real;
fvk : array [1..6] of integer = (10,36,50,30,20,8);
vkmin : array [1..6] of real = (10,20,30,40,50,60);
vkmax : array [1..6] of real = (20,30,40,50,60,70);
fvkcum : array [1..6] of integer;
fvkcumx : array [1..6] of real;
r1,r2,r3,r4,r5,r6,hp,hk,vk,TAP,TAB,D,TD,TAK : array [1..1000] of real;

(*INISIALISASI*)
begin
Randomize;

jumlah_hp := 0;
for j:=1 to 6 do
begin
jumlah_hp := jumlah_hp + fhp[j];
end
fhpcum[1] := fhp[1];
fhpcumx[1] := fhpcum[1]/jumlah_hp;
for j:=1 to 6 do
begin
fhpcum[j] := fhpcum[j-1] + fhp[j];
fhpcumx[j] := fhpcum[j]/jumlah_hp;
end

jumlah_hk := 0;
for j:=1 to 5 do
begin
jumlah_hk := jumlah_hk + fhk[j];
end
fhkcum[1] := fhk[1];
fhkcumx[1] := fhkcum[1]/jumlah_hk;
for j:=1 to 5 do
begin
fhkcum[j] := fhkcum[j-1] + fhk[j];
fhkcumx[j] := fhkcum[j]/jumlah_hk;
end

jumlah_vk := 0;
for j:=1 to 6 do
begin
jumlah_vk := jumlah_vk + fvk[j];
end
fvkcum[1] := fvk[1];
fvkcumx[1] := fvkcum[1]/jumlah_vk;
for j:=1 to 6 do
begin
fvkcum[j] := fvkcum[j-1] + fvk[j];
fvkcumx[j] := fvkcum[j]/jumlah_vk;
end

T := 0;
DR := 0;
r1[1] := 0;
r2[1] := 0;
r3[1] := 0;
r4[1] := 0;
r5[1] := 0;
r6[1] := 0;
hp[1] := 1;
TAP[1] := 1;
TAB[1] := 0;
D[1] := 0;
TD[1] := 0;
TAK[1] := 10;

gacc := 20;
m := 2;

(*ALGORITMA A*)
k := 2;
while T<1000 do
begin
n := k;
R3 := random(1000000);
r3[k] := R3/1000000;
R4 := random(1000000);
r4[k] := R4/1000000;
R5 := random(1000000);
r5[k] := R5/1000000;
R6 := random(1000000);
r6[k] := R6/1000000;
end;

state_vk := 0;
j := 1;
repeat
if (r3[k]<fvkcumx[j]) then
vk[k] := vkmin[j] + (r4[k]*(vkmax[j]-vkmin[j]));
state_vk := 1;
else
j := j + 1;
end
until state_vk = 1;

state_hk := 0;
j := 1;
repeat
if (r5[k]<fhkcumx[j]) then
hk[k] := hkmin[j] + (r6[k]*(hkmax[j]-hkmin[j]));
state_hk := 1;
else
j := j + 1;
end
until state_hk = 1;

TAK[k] := (TAK[k-1] + hk[k]);

T := TAK[k];
k := k + 1;
end

(*ALGORITMA B*)
T := 0;
i := 2;
while T<1000 do
begin
l := i;
R1 := random(1000000);
r1[i] := R1/1000000;
R2 := random(1000000);
r2[i] := R2/1000000;

state_hp := 0;
j := 1;
repeat
if (r1[i]<fhpcumx[j]) then
hp[i] := hpmin[j] + (r2[i]*(hpmax[j]-hpmin[j]));
state_hp := 1;
else
j := j + 1;
end
until state_hp = 1;

TAP[i] := (TAP[i-1] + hp[i]);

(*ALGORITMA C*)
k := m;
state_x := 0;
repeat
if (TAP[i] < TAK[k]) then
m := k;
state_x := 1;
else
k := k + 1;
end
until state_x = 1;

(*ALGORITMA D*)
k := m;
state_x := 0;
repeat
g1 := (vk[k] * (TAK[k]-TAP[i]) * 1000 / 3600);
g2 := (vk[k] * hk[k] * 1000 / 3600);
if (k==m) then
if ((TAP[i]<TAK[k]) and (gacc < g1)) then
TAB[i] := (TAP[i]);
m := k;
state_x := 1;
else
k := k + 1;
end
else
if ((TAP[i]<TAK[k]) and (gacc < g2)) then
TAB[i] := (TAK[k-1]);
m := k;
state_x := 1;
else
k := k + 1;
end
end
until state_x = 1;

D[i] := TAB[i] - TAP[i];


TD[i] := TD[i-1] + D[i];

T := TAP[i];
i := i + 1;

end

DR := TD[l]/l;

(*OUTPUT*)
writeln('R1:');
writeln('');
for i:=1 to l do
begin
writeln(r1[i]);
writeln('');
end

writeln('R2:');
writeln('');
for i:=1 to l do
begin
writeln(r2[i]);
writeln('');
end

writeln('hp:');
writeln('');
for i:=1 to l do
begin
writeln(hp[i]);
writeln('');
end

writeln('TAP:');
writeln('');
for i:=1 to l do
begin
writeln(TAP[i]);
writeln('');
end

writeln('TAB:');
writeln('');
for i:=1 to l do
begin
writeln(TAB[i]);
writeln('');
end

writeln('D:');
writeln('');
for i:=1 to l do
begin
writeln(D[i]);
writeln('');
end

writeln('TD:');
writeln('');
for i:=1 to l do
begin
writeln(TD[i]);
writeln('');
end

writeln('R3:');
writeln('');
for k:=1 to n do
begin
writeln(r3[k]);
writeln('');
end

writeln('R4:');
writeln('');
for k:=1 to n do
begin
writeln(r4[k]);
writeln('');
end
writeln('R5:');
writeln('');
for k:=1 to n do
begin
writeln(r5[k]);
writeln('');
end

writeln('R6:');
writeln('');
for k:=1 to n do
begin
writeln(r6[k]);
writeln('');
end

writeln('hk:');
writeln('');
for k:=1 to n do
begin
writeln(hk[k]);
writeln('');
end

writeln('vk:');
writeln('');
for k:=1 to n do
begin
writeln(vk[k]);
writeln('');
end

writeln('TAK:');
writeln('');
for k:=1 to n do
begin
writeln(TAK[k]);
writeln('');
end

writeln('DR:');
writeln(DR);

readkey;
end.
i hp TAP TAB D TD
0 1.000000 1.000000 0.000000 0.000000 0.000000
1 29.378185 30.378185 30.378185 0.000000 0.000000
2 14.209418 44.587605 44.587605 0.000000 0.000000
3 14.931181 59.518784 59.518784 0.000000 0.000000
4 29.888760 89.407547 89.407547 0.000000 0.000000
5 15.369732 104.777283 104.777283 0.000000 0.000000
6 9.833674 114.610954 114.610954 0.000000 0.000000
7 7.474288 122.085243 122.085243 0.000000 0.000000
8 14.874416 136.959656 136.959656 0.000000 0.000000
9 27.003540 163.963196 163.963196 0.000000 0.000000
10 21.417280 185.380478 185.380478 0.000000 0.000000
11 27.790308 213.170792 213.170792 0.000000 0.000000
12 24.548174 237.718964 237.718964 0.000000 0.000000
13 5.923948 243.642914 243.642914 0.000000 0.000000
14 21.926786 265.569702 265.569702 0.000000 0.000000
15 21.051973 286.621674 286.621674 0.000000 0.000000
16 16.754356 303.376038 303.376038 0.000000 0.000000
17 14.333018 317.709045 317.709045 0.000000 0.000000
18 25.593584 343.302643 343.302643 0.000000 0.000000
19 10.069429 353.372070 353.372070 0.000000 0.000000
20 24.323709 377.695770 377.695770 0.000000 0.000000
21 10.556047 388.251831 388.251831 0.000000 0.000000
22 18.012177 406.264008 406.264008 0.000000 0.000000
23 16.169165 422.433167 422.433167 0.000000 0.000000
24 27.982574 450.415741 450.415741 0.000000 0.000000
25 20.233925 470.649658 470.649658 0.000000 0.000000
26 11.862392 482.512054 482.512054 0.000000 0.000000
27 10.697500 493.209564 493.209564 0.000000 0.000000
28 19.888912 513.098450 513.098450 0.000000 0.000000
29 3.511185 516.609619 516.609619 0.000000 0.000000
30 8.257545 524.867188 524.867188 0.000000 0.000000
31 12.150182 537.017395 537.017395 0.000000 0.000000
32 7.791833 544.809204 544.809204 0.000000 0.000000
33 25.615864 570.425049 570.425049 0.000000 0.000000
34 13.716849 584.141907 586.098633 1.956726 1.956726
35 18.925749 603.067627 603.067627 0.000000 1.956726
36 24.817499 627.885132 627.885132 0.000000 1.956726
37 18.649097 646.534241 646.534241 0.000000 1.956726
38 7.762688 654.296936 655.272156 0.975220 2.931946
39 27.704550 682.001465 682.001465 0.000000 2.931946
40 29.878078 711.879517 711.879517 0.000000 2.931946
41 11.553545 723.433044 723.433044 0.000000 2.931946
42 16.144138 739.577209 739.577209 0.000000 2.931946
43 27.452620 767.029846 767.029846 0.000000 2.931946
44 8.708304 775.738159 775.738159 0.000000 2.931946
45 16.291239 792.029419 792.029419 0.000000 2.931946
46 19.684134 811.713562 811.713562 0.000000 2.931946
47 14.051027 825.764587 826.670410 0.905823 3.837769
48 15.524766 841.289368 841.289368 0.000000 3.837769
49 12.412946 853.702332 853.702332 0.000000 3.837769
50 13.751183 867.453491 867.453491 0.000000 3.837769
51 20.548876 888.002380 888.002380 0.000000 3.837769
52 5.311289 893.313660 893.313660 0.000000 3.837769
53 12.623981 905.937622 905.937622 0.000000 3.837769
54 13.359173 919.296814 919.296814 0.000000 3.837769
55 23.043459 942.340271 942.340271 0.000000 3.837769
56 16.728874 959.069153 959.069153 0.000000 3.837769
57 8.976104 968.045227 970.161255 2.116028 5.953796
58 23.888210 991.933411 991.933411 0.000000 5.953796
59 17.182837 1009.116272 1009.116272 0.000000 5.953796
DR 0.100912
k hk vk TAK
0 0.000000 0.000000 10.000000
1 4.320169 33.645741 14.320169
2 3.868007 26.684469 18.188177
3 19.444715 26.216619 37.632893
4 10.226142 22.320932 47.859035
5 15.031434 54.518570 62.890469
6 13.744926 28.712118 76.635391
7 18.141575 34.301582 94.776962
8 32.994324 45.538803 127.771286
9 14.068270 46.180912 141.839554
10 20.400249 41.507919 162.239807
11 30.853146 36.768394 193.092957
12 27.684408 26.108280 220.777359
13 3.020081 41.055939 223.797440
14 4.774407 42.618183 228.571854
15 3.040956 26.049685 231.612808
16 25.176397 32.365185 256.789215
17 14.973449 25.649891 271.762665
18 28.931395 30.232246 300.694061
19 11.638233 46.786095 312.332306
20 30.049288 61.416058 342.381592
21 29.988251 36.799217 372.369843
22 3.109195 39.435101 375.479034
23 23.875698 32.074650 399.354736
24 22.058321 25.386517 421.413055
25 10.787683 47.924129 432.200745
26 9.073458 58.455460 441.274200
27 11.381420 49.719841 452.655609
28 22.383953 37.671436 475.039551
29 21.596882 35.275734 496.636444
30 26.790216 44.916836 523.426636
31 7.207404 58.482620 530.634033
32 19.882656 59.185459 550.516663
33 14.339732 54.187752 564.856384
34 21.242256 22.087770 586.098633
35 9.085818 34.331188 595.184448
36 27.336802 34.612568 622.521240
37 12.219153 15.325786 634.740417
38 4.436262 25.130772 639.176697
39 9.743187 36.691490 648.919861
40 6.352275 68.656578 655.272156
41 19.727623 20.937529 674.999756
42 9.613026 37.353130 684.612793
43 5.587634 34.695580 690.200439
44 12.684713 42.290718 702.885132
45 15.888699 21.102329 718.773804
46 33.088017 36.455887 751.861816
47 4.867428 43.433029 756.729248
48 17.391430 49.007843 774.120667
49 26.001923 39.982605 800.122559
50 15.918607 50.786156 816.041138
51 10.629292 20.199896 826.670410
52 12.378002 51.069675 839.048401
53 21.135746 32.070988 860.184143
54 12.754906 55.584278 872.939026
55 14.176306 30.749840 887.115356
56 23.624226 35.759148 910.739563
57 13.298441 38.444168 924.038025
58 22.954039 49.235817 946.992065
59 3.287790 45.543991 950.279846
60 5.791345 41.626331 956.071167
61 14.090091 33.009125 970.161255
62 4.558092 29.520554 974.719360
63 3.696982 45.999023 978.416321
64 33.894924 54.742882 1012.311218

Anda mungkin juga menyukai