1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| program PrgRamp
!dfinnition des variables
implicit none
real h,hh,g,t,a,b,n
real, DIMENSION(1:100000)::mm
real, DIMENSION(1:100000)::r
real, DIMENSION(1:100000)::u
real, DIMENSION(1:100000)::k
! interval de variation du parametre de controle
integer i,v
print*,' '
print*,' '
print*,' '
print*,' '
print*,'GOD IS LOVE, BE PATIENT ......... FER ..........'
!fichier dans lesquels seront crit les donnes
open (50,file='C:\test\b50.dat')
open (51,file='C:\test\b51.dat')
! ==== Affectation des variables =====
a=0
b=1
h=1e-7 ! part d'chantionnage
hh=1
t = 400e-6 ! prioide du signal ramp
g=0
k(0)=1
v=1
i=0
u(0)=h
u(1)=2*h
!boule do while, dans cette boucle je reprsente la fonction ramp avec pour valeur maximale 8.2 et valeur minimale 3.8
do while(hh.ne.0)
mm(v)=u(v) ! ici je stoke les diffrentes valeurs de l'echantion dans la variable mm
r(v)=0.011e6*(u(v)-g*t)+3.8
if (r(v).ge.8.2) then
g=g+1
r(v)=0.011e6*(u(v)-g*t)+3.8
else
r(v)=0.011e6*(u(v)-g*t)+3.8
endif
write(51,*)mm(v),r(v),i
print*,r,u
u(v)=u(v-1)+h ! je stoke dans u la valeur prcdente de u plus le part.
v=v+1
i=i+1
hh =modulo(k(0),u(v)) ! je divise k(0)=1 par u(v) et le reste est comparait
zro, donc lorsque le reste sera gale
0 la boucle s'arretera.
end do
close(50)
close(51)
end |