1.求2~100之间的素数
program example718
Integer::n,count = 0
Logical flag
write(*,*) "the number of prime is :"
do n=2,100
flag = .True.
do i=2,int(n**0.5)
if(Mod(n,i)==0)then
Flag = .False.
Exit
end if
end do
if (Flag)then
count = count + 1
write(*,*)n
if (mod(count,10)==0)then
write(*,*)
end if
end if
end do
write(*,*),count
read(*,*)
end program
2.求转置矩阵(不必是方阵)
program example8_2
implicit none
integer,parameter::m=2,n=2
real A(m,n)
integer i,j
write(*,*),"Enter the matrix:"
do i=1,m
read(*,*)(A(i,j),j=1,n)
end do
write(*,*),"after transverse:"
do j=1,n
write(*,*)(A(i,j),i=1,m)
end do
read(*,*)
end program
3f.Where语句(期末捞人,不及格的加十分)
program example8_3
implicit none
integer,parameter::n=10
character*10 grade(n)
integer score(n)
DATA score/55,49,65,70,44,23,34,77,54,49/
Where(score<60)score = score + 10
Where(score>100)score = 100
Where(score<60)
grade = "F"
elsewhere(score<70)
grade = "C"
elsewhere(score<90)
grade = "B"
elsewhere
grade = "A"
endwhere
write(*,*) score
write(*,*) grade
read(*,*)
end program
4.Forall语句(某种程度上像是lambda语句)
program example8_4
implicit none
integer,parameter::n=3
integer,parameter::m=4
real f(m,n)
real x(m)
real y(n)
integer i,j
Forall(i=1:m) x(i) = 0.2*i+0.5
Forall(j=1:n) y(j) = 3*j-j**2
Forall(i=1:m,j=1:n) f(i,j) = exp(x(i)*x(j))-i-j
do i=1,m
write(*,*),(f(i,j),j=1,n)
end do
read(*,*)
end program
5.高斯消元法