Fortran 上機實驗

2021-07-23 16:19:54 字數 3333 閱讀 1023

思路分析:第一題採用塊if語句的巢狀,採用如下格式。第二題採用select case…case..end selcet的形式進行選擇,先進行判斷是否為閏年,再舉出每個月的具體時間,進行累加。

if (…) then

if(…) then

if(…) then

… else if(…) then

… else

… end if

end if

else或者是else if (…) then

if(…) then

… else

… end if

end if

program exam1

implicit none

real n,s

print *,』請輸入』

read *,n

print *,』納稅為 元』

if(n<3500) then

s=0

print 100,s

else if(n<5000) then

s=(n-3500)*0.03

print 100,s

else if(n<8000) then

s=105+(n-5000)*0.1

print 100,s

else if(n<12500) then

s=555+(n-8000)*0.2

print 100,s

else if(n<38500) then

s=1005+(n-12500)*0.25

print 100,s

else if(n<58500) then

s=2775+(n-38500)*0.3

print 100,s

else if(n<83500) then

s=5505+(n-58500)*0.35

print 100,s

else

s=13505+(n-83500)*0.45

print 100,s

100 format (1f10.3)

endif

end program exam1

program shiyan2

implicit none

integer y,m,d,i,j,days

print*,』請輸入年,月,日』

read*,y,m,d

days=d

if (mod(y,100)==0) then

if (mod(y,400)==0) then

j=29

end if

else if (mod(y,4)==0) then

j=29

else

j=28

end if

do i=1,m-1,1

select case (i)

case (11)

days=days+30

case (10)

days=days+31

case (9)

days=days+30

case (8)

days=days+31

case (7)

days=days+31

case (6)

days=days+30

case (5)

days=days+31

case (4)

days=days+30

case (3)

days=days+31

case (2)

days=days+j

case (1)

days=days+31

end select

end do

print*,days

end program shiyan2

program erfenfa

implicit none

real x,x1,x2

real bisect,func

do print*,』輸入x1,x2』

read*,x1,x2

if(func(x1)*func(x2)<0.0) exit

print*,』補正卻的輸入』

enddo

x=bisect(x1,x2)

print 10,』x=』,x

10 format(a,f15.7)

end

real function bisect(x1,x2)

real x1,x2,x,f1,f2,fx

x=(x1+x2)/2.0

fx=func(x)

do while (abs(fx)>1e-6)

f1=func(x1)

if(f1*fx<0) then

x2=x

else

x1=x

end if

x=(x1+x2)/2.0

fx=func(x)

enddo

bisect=x

end

function func(x)

real x

func=x**3-2*x-5

end

program gongyueshu

implicit none

integer m,n,i,r,p

print*,』輸入m,n』

read*,m,n

if(m<=n) then

i=m

m=n

n=i

end if

p=m*n

do while(1)

r=mod(m,n)

if(r==0) exit

m=n

n=r

end do

p=p/(n*1.0)

print*,」公倍數,公約數」,p,n

end program gongyueshu輾轉相除法 相減法 窮舉法 三種求fortran最大公約數的方法

4.最小公倍數=兩整數的乘積÷最大公約數 ,本例利用輾轉相除法來求公約數

有兩整數a和b:

① a%b得餘數c

② 若c=0,則b即為兩數的最大公約數

③ 若c≠0,則a=b,b=c,再回去執行①

例如求27和15的最大公約數過程為:

27÷15 餘1215÷12餘312÷3餘0因此,3即為最大公約數,27*15/3即為最小公倍數

3.第三題採用了呼叫函式的方法,

C 上機實驗

檔名稱 exe1 作 者 張宇恆 完成日期 2016 年 3 月 10 日 版 本 號 v1.0 對任務及求解方法的描述部分 輸入描述 兩個整數a,b 問題描述 求a,b兩數的和及差 程式輸出 a b a b 問題分析 略 演算法設計 略 心得體會 第一次用c 程式設計,中間有些小障礙,但還是克服了...

上機實驗五

data3 1.txt中共包含字元數 d 函式宣告 void input stu s,int n void output stu s,int n void process stu s,int n int main 從文字檔案examinee.txt讀入考生資訊 准考證號,姓名,客觀題得分,操作題得分...

C 上機實驗1 1

一 問題及 檔名稱 qwe.cpp 作 者 柳青雨 完成日期 2016年 03 月 10 日 版 本 號 v1.0 對任務及求解方法的描述部分 求兩數和差 輸入描述 兩個整數 問題描述 求兩數和差 程式輸出 和差 問題分析 略 演算法設計 略 include using namespace std ...