【文章內(nèi)容簡介】
了它們之間的內(nèi)在聯(lián)系,只要理解了程序框圖與算法語 句的對應(yīng)關(guān)系,把程序框圖轉(zhuǎn)化為算法語句就很容易了 . 變式訓(xùn)練 閱讀下面的程序,你能得出什么結(jié)論? INPUT x IF x< 0 THEN x=x END IF PRINT x END 解: 由程序得出,該程序是輸出 x的絕對值 . 例 2 把前面求解一元二次方程 ax2+bx+c=0 的程序框圖轉(zhuǎn)化為程序 . 解: 由程序框圖可以發(fā)現(xiàn),其中包含著兩個條件結(jié)構(gòu),而且內(nèi)層的條件結(jié)構(gòu)是外層的條件結(jié)構(gòu)的一個分支,所以,可以用 “IF—THEN—ELSE—END IF”來完成轉(zhuǎn)化 . 程序: INPUT “a,b,c=”。a,b,c d=b^24*a*c IF d> =0 THEN p=b/(2*a) q=SQR(d)/(2*a) IF d=0 THEN PRINT “x1=x2=”。p ELSE PRINT “x1,x2=”。p+q,pq END IF ELSE PRINT“No real root” END IF END 例 3 編寫程序,使任意輸入的 3 個整數(shù)按從大到小的順序輸出 . 算法分析: 用 a, b, c 表示輸入的 3 個整數(shù) .為了節(jié)約變量,把它們重新排列后,仍用 a,b, c 表示,并使 a≥b≥: 第一步,輸入 3 個整數(shù) a, b, c. 第二步,將 a 與 b 比較,并把小者賦給 b,大者賦給 a. 第三步,將 a 與 c 比較,并把小者賦給 c,大者賦給 a(此時 a 已是三者中最大的) . 第四步,將 b 與 c 比較,并把小者賦給 c,大者賦給 b(此時 a, b, c 已按從大到小的順序排列好) . 第五步,按順序輸出 a, b, c. 如下圖所示,上述操作步驟可以用程序框圖更直觀地表達(dá)出來 . 根據(jù)程序框圖,寫出相應(yīng)的計算機(jī)程序 . INPUT “a,b,c=”。a,b,c IF b> a THEN t=a a=b b=t END IF IF c> a THEN t=a a=c c=t END IF IF c> b THEN t=b b=c