吉林大學程序設計基礎教材第四章-循環(huán)程序設計.ppt
《吉林大學程序設計基礎教材第四章-循環(huán)程序設計.ppt》由會員分享,可在線閱讀,更多相關《吉林大學程序設計基礎教材第四章-循環(huán)程序設計.ppt(80頁珍藏版)》請在裝配圖網上搜索。
第四章循環(huán)程序設計 計算平均成績 循環(huán)程序打印99表 多重循環(huán)程序設計實例 4 1計算平均成績 循環(huán)程序 例4 1 某評估單位要對學生的學習情況進行評估 需要計算每個學生的平均學習成績編程序 從終端逐次輸入一個學生n門課程的成績 計算并輸出他的平均成績 方法一 include definen40voidmain void floatsum intk m k 1 sum 0 do printf pleaseinputaachievement scanf d 方法二 include definen40voidmain void floatsum intk m k 1 sum 0 while k n printf pleaceinputaachievement scanf d 循環(huán) Cycle 指程序的某部分被反復的重復執(zhí)行多次循環(huán)程序設計編寫重復執(zhí)行的程序循環(huán)體被重復執(zhí)行的部分分類先判斷條件的循環(huán)后判斷條件的循環(huán) C的三種不同的重復性語句 它們是while語句 先判斷條件的循環(huán) do語句 后判斷條件的循環(huán) for語句 先判斷條件的循環(huán) 需要弄清楚的循環(huán)控制方式是什么 控制條件是什么 重復執(zhí)行部分 稱為 循環(huán)體 是什么 4 1 1后判斷條件的循環(huán) 一般形式doSwhile e 例4 2 計算數(shù)列ak 1 k k 1 的前n項和 include stdio h voidmain intn k floatsum printf pleaseinputn scanf d voidmain intn k floatsum printf pleaseinputn scanf d sum 0 0 k 1 n 3sum 0 0 5 k 2 n 3sum 0 5 0 1667 k 3 n 3sum 0 6667 0 0833 k 4 n 3 例4 3 編程序 輸入一個年份 求該年以后的n個閏年某年 yy 是閏年的條件 yy 4 0 yy 100 0 yy 400 0 PROGRAMfindleapyear include stdio h voidmain intyy n printf pleaseinputbeginyear scanf d 運行結果演示 例4 4 簡單迭代法解方程2X3 0 5X2 X 0 093 0變換X 2X3 0 5X2 0 093若某個X代入右端后 計算結果正好是X 則這個X值就是方程的根 簡單迭代法采用迭代法方法求解x f x 方程的根選定一個x的初值x0 以x0代入右端計算出一個值x1 f x0 若x1等于x0 顯然x0為根 轉向 否則若x1 x0則令x0 x1 轉向 結束 停止計算 g x 0 x f x f x y x f x0 x0 x1 f x1 x x2 可以使用簡單迭代的情況 f x2 f x y x f x1 x2 x1 f x0 x x0 不可以使用簡單迭代的情況 f x2 簡單迭代方法使用條件對于方程x f x 當任意x a b 存在0 L 1 使 f x L 1則方程x f x 在 a b 上有唯一的根x 且對任意初值x0 a b 時迭代序列xk 1 f xk k 0 1 收斂于x 在實際工作中 決大部分計算都是近似計算 只要求X1 X0即 X1 X0 使用條件 include stdio h include math h defineeps1e 6voidmain floatx0 x1 x0 0 0 x1 0 0 do x0 x1 x1 2 x0 x0 x0 0 5 x0 x0 0 093 while fabs x1 x0 eps printf x f n x0 運行結果演示 4 1 2先判斷條件的循環(huán) 一般形式while e S 例4 5 用先判斷條件的循環(huán)改寫例4 1 include definen40voidmain void floatsum intk m k 1 sum 0 while k n printf pleaceinputaachievement scanf d 例4 2 計算數(shù)列的前n項和 例4 6 編程序 按公式求自然對數(shù)底e的近似值由于不能進行無窮項的計算 所以只能進行近似計算 當余項余項計算可利用前后項之間的遞推關系 include stdio h defineeps1e 5voidmain intn floate r e 1 0 n 1 r 1 0 while r eps e e r n n 1 r r n printf e f n e e 1 0 n 1 r 1 0 e 2 0 n 2 r 0 5 e 2 5 n 3 r 0 1667 e 2 6667 n 4 r 0 0417 例4 7 編程序 統(tǒng)計以100為結束符的整數(shù)輸入流中 1 0 1的出現(xiàn)次數(shù)并輸出 include definen100voidmain void inti j k num i 0 j 0 k 0 printf pleaseinputainteger scanf d 運行結果演示 和 4 1 3for語句 e 1 0 n 1 r 1 0 while r eps e e r n n 1 r r n e 1 0 n 1 for r 1 0 r eps r r n e e r n n 1 for語句最經常被用于描述循環(huán)次數(shù)已知循環(huán) sum 0 k 1 while k n sum sum 1 0 k k 1 k sum 0 for k 1 k n k sum sum 1 0 k k 1 一般形式for e1 e2 e3 Se1 初值表達式用于設置該循環(huán)開始的一些初值e2 終值表達式用于控制循環(huán)結束e3 增量表達式用于每次循環(huán)體執(zhí)行后對控制條件的修正 執(zhí)行與PAD圖 例4 8 編程序求向量內積 由終端輸入兩個n維向量X Y 計算其內積XY include stdio h voidmain intn i floatxy xi yi printf pleaseinputn n scanf d 運行結果演示 例4 9 編程序 畫函數(shù)y f x e xsin 2 X 在 0 2 區(qū)間上的圖形 X Y 0 X Y 0 0 x y 40列 1 1 40行 definedx0 05 definedy0 05 definepi3 14159265 definey040 defineendx40voidmain intn i j floatx y x 0 for i 0 i endx i y exp x sin 2 pi x n y0 int y dy for j 0 j n j printf printf n x x dx 運行結果演示 比較兩種while語句 4 2打印99表 多重循環(huán) 11224336944812165510152025661218243036771421283542498816243240485664991827364554637281 123456789 123456789 打印底行 11224336944812165510152025661218243036771421283542498816243240485664991827364554637281 打印前9行 打印第i行 661218243036 991827364554637281 991827364554637281 661218243036 include stdio h voidmain inti j for i 1 i 10 i printf 4d i for j 1 j i j printf 4d i j printf n printf 4c for i 1 i 10 i printf 4d i 運行結果演示 例4 11 打印100以內素數(shù) for i 2 i 100 i 打印i flag flag false for j i 2 j 2 j flag true i j 0 include stdio h voidmain inti j boolflag for i 2 i2 j if i j 0 flag false if flag printf 5d n i 運行結果演示 多重循環(huán)程序編寫要點內外循環(huán)控制條件不要互相沖突for i 2 i 2 i if i j 0 flag false if flag printf 5d n i 4 3程序設計實例 打印數(shù)列求兩數(shù)最大公因數(shù)階乘求和 百錢百雞 問題打印字符方陣 例4 12 打印數(shù)列 編程序 輸出如下序列前50項 該序列的第一項為0第二項為1以后的奇數(shù)項為其前兩項之和偶數(shù)項為其前兩項之差 項數(shù) 1 2 3 4 5 6 7 8 9 0 1 u v 1 w 1 1 u v 0 w 1 0 u v 1 w 0 1 u v 1 w 1 1 u v 2 w include stdio h voidmain intu v w k u 0 v 1 printf 5d n 5d n u v k 3 do if k 2 0 w v u elsew v u printf 12d n w u v v w k k 1 while k 50 運行結果演示 include stdio h voidmain intu v w k intflag u 0 v 1 printf 5d n 5d n u v k 3 flag 1 do w v flag u flag flag printf 5d n w u v v w k k 1 while k 50 運行結果演示 例4 13 求兩數(shù)最大公因數(shù) 編程序 輸入兩個正整數(shù)u v 用歐幾里德輾轉相除法求它們的最大公因數(shù)并輸出歐幾里德輾轉相除法u v R1v R1 R2R1 R2 R3R2 R3 R4 Rn 1 Rn Rn 1 0Rn為正整數(shù)u v的最大公因數(shù) 14 18 14 u v r 18 14 4 u v r 14 4 2 u v r 4 2 0 u v r 2 include stdio h voidmain intu v r printf pleaseinputu v scanf d d 運行結果演示 例4 14 階乘求和 編程序 輸入正整數(shù)N計算r1 r2 rn 并輸出 N r1r2 rn例如N 1234求1 2 3 4 開始 結束 輸入N N 0 r N 10N N 10 S S r 輸出S S 0 r 1 2 3 r r P P 1 u r P P u u u 1 u 1 開始 結束 輸入N N 0 r N 10N N 10 輸出S S 0 P 1 u r P P u u u 1 u 1 include stdio h voidmain intN S P u r printf pleaseinputN scanf d 運行結果演示 例4 15 百錢百雞 問題 雞翁一 值錢五 雞母一 值錢三 雞雛三 值錢一百錢買百雞 問雞翁 母 雛各幾何設買x只公雞 買y只母雞 買z只雞雛5x 3y z 3 100 百錢 x y z 100 百雞 include stdio h intx y z voidmain for x 1 x 20 x for y 1 y 33 y for z 3 z 99 z z 3 if x y z 100 運行結果演示 include stdio h intx y z voidmain for x 1 x 20 x for y 1 y 33 y z 100 x y 求雞雛數(shù)z 百雞if 5 x 3 y z 3 100 運行結果演示 例4 16 打印字符方陣 ABCDEFGHIABCDEFGHIABCDEFGHIABBBCDEFGHIABCDEFGHIABCCCCCDEFGHIABCDEFGHIABCDDDDDDDEFGHIABCDEFGHIABCDEEEEEEEEEFGHIABCDEFGHIABCDEFFFFFFFFFFFGHIABCDEFEFGHIABCDEEEEEEEEEFGHIABCDEDEFGHIABCDDDDDDDEFGHIABCDCDEFGHIABCCCCCDEFGHIABCBCDEFGHIABBBCDEFGHIABABCDEFGHIABCDEFGHIA 打印前6行 打印后5行 x ABCDEFGHIABCDEFGHIABCDEFGHIABBBCDEFGHIABCDEFGHIABCCCCCDEFGHIABCDEFGHIABCDDDDDDDEFGHIABCDEFGHIABCDEEEEEEEEEFGHIABCDEFGHIABCDEFFFFFFFFFFFGHIABCDEFEFGHIABCDEEEEEEEEEFGHIABCDEDEFGHIABCDDDDDDDEFGHIABCDCDEFGHIABCCCCCDEFGHIABCBCDEFGHIABBBCDEFGHIABABCDEFGHIABCDEFGHIA CDEFGHIABDEFGHIABCEFGHIABCD x y ABBBCCCCCDDDDDDD 打印 5 x A 2個空格 打印 2 x A 1個 x 打印 5 x A 2個空格 x CDEFGHIABDEFGHIABCEFGHIABCD x y 打印回車 打印 y 打印 y include stdio h charx y inti voidmain for x A x F x 前六行for y x y I y printf c y for y A y x y printf c y for i 1 i 5 x A 2 i printf for i 1 i 2 x A 1 i printf c x for i 1 i 5 x A 2 i printf for y x 1 y I y printf c y for y A y x y printf c y printf n for x E x A x 后五行for y x y I y printf c y for y A y x 1 y printf c y for i 1 i 5 x A 2 i printf for i 1 i 2 x A 1 i printf c x for i 1 i 5 x A 2 i printf for y x 1 y I y printf c y for y A y x y printf c y printf n 運行結果演示 本章小結 后判斷條件循環(huán)dowhile語句先判斷條件循環(huán)while語句for語句重點使用編寫循環(huán)結構程序解決實際問題 作業(yè) 4 54 134 184 204 284 35- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- 吉林大學 程序設計 基礎 教材 第四 循環(huán)
裝配圖網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
鏈接地址:http://m.italysoccerbets.com/p-6294628.html