程序邏輯與思維(C語言)課件 羅勇 第4、5章 C語言程序中的循環(huán)結(jié)構(gòu)處理、C 語言程序中的數(shù)組應用_第1頁
程序邏輯與思維(C語言)課件 羅勇 第4、5章 C語言程序中的循環(huán)結(jié)構(gòu)處理、C 語言程序中的數(shù)組應用_第2頁
程序邏輯與思維(C語言)課件 羅勇 第4、5章 C語言程序中的循環(huán)結(jié)構(gòu)處理、C 語言程序中的數(shù)組應用_第3頁
程序邏輯與思維(C語言)課件 羅勇 第4、5章 C語言程序中的循環(huán)結(jié)構(gòu)處理、C 語言程序中的數(shù)組應用_第4頁
程序邏輯與思維(C語言)課件 羅勇 第4、5章 C語言程序中的循環(huán)結(jié)構(gòu)處理、C 語言程序中的數(shù)組應用_第5頁
已閱讀5頁,還剩121頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

程序邏輯與思維(c語言)C語言程序中的循環(huán)結(jié)構(gòu)處理第四章產(chǎn)教融合協(xié)同育人項目成果015050這個數(shù)還面熟嗎編寫程序?qū)崿F(xiàn)編寫C語言程序,實現(xiàn)1+2+3+…+100求和。輸入:無。處理:1+2+3+…+100。輸出:1+2+3+…+100=5050。技術(shù)層面掌握for循環(huán)語句的相關(guān)知識。應用for循環(huán)語句實現(xiàn)本任務。課程思政精益求精的工匠精神。目標描述任務確認通過編寫C語言程序,實現(xiàn)1+2+3+…+100求和。輸入:無。處理:1+2+3+…+100。輸出:1+2+3+…+100=5050。(1)程序最終能正確展示輸出1+2+3+…+100之和;(2)掌握C語言代碼的使用規(guī)范(變量命名及注釋說明);(3)程序能正確運行,并具有可擴展性。確認簽字學習活動1——接領(lǐng)任務編寫C語言程序,實現(xiàn)1+2+3+…+100數(shù)相加的和,并輸出結(jié)果。具體分析如下:(1)1到100的所有整數(shù)做相加;(2)完成100次加法運算;(3)讓程序重復100次加法運算就可以得到結(jié)果。學習活動2——分析任務學習活動2——分析任務知識學習:for循環(huán)語句1.語法說明:(1)for循環(huán)語句由3個表達式構(gòu)成,表達式之間使用分號隔開。(2)表達式1:只執(zhí)行一次,用于循環(huán)變量賦初值。(3)表達式2:條件表達式,用于決定是否循環(huán)的條件,如果條件成立則循環(huán);如果條件不成立則結(jié)束循環(huán)。(4)表達式3:記步因子,用于處理循環(huán)變量增量的表達式。學習活動2——分析任務2.for循環(huán)語句執(zhí)行流程程序運行后的結(jié)果為第1次循環(huán):i=1,輸出:1。第2次循環(huán):i=3,輸出:3。第3次循環(huán):i=5,輸出:5。第4次循環(huán):i=7,輸出:7。第5次循環(huán):i=9,輸出:9。執(zhí)行流程如圖4.4所示。 學習活動3——制定方案實現(xiàn)思路(1)定義程序中使用到變量(2個)。1個是循環(huán)變量,另1個是用于存放結(jié)果的變量。(2)利用for循環(huán)語句實現(xiàn)計算。循環(huán)變量初始化為1;循環(huán)條件<=100;記步因子每次+1。在循環(huán)體內(nèi)部實現(xiàn)1~100的整數(shù)相加。(3)輸出計算結(jié)果,程序結(jié)束。實現(xiàn)步驟(1)在CodeBlocks軟件中創(chuàng)建一個新項目,項目名稱為Sum100。(2)在main()中按實現(xiàn)思路編寫程序代碼,實現(xiàn)本任務。實現(xiàn)代碼(1)啟動CodeBlocks軟件,創(chuàng)建一個新的控制臺項目,項目名稱輸入為Sum100。

(2)打開項目中的main.c文件,進入編輯界面。(3)在main()中按實現(xiàn)思路實現(xiàn)任務,其代碼如下:學習活動4——實施實現(xiàn)實現(xiàn)效果利用for循環(huán)語句實現(xiàn)了求1~100所有整數(shù)和的程序。按制定方案進行任務實現(xiàn),在正確的情況下,任務實現(xiàn)的效果如圖4.5所示。學習活動5——測試驗收驗收結(jié)果驗收評價學習活動5——測試驗收學習活動6——總結(jié)拓展實現(xiàn)效果利用for循環(huán)語句實現(xiàn)了求1~100所有整數(shù)和的程序。技術(shù)層面for循環(huán)語句是實現(xiàn)程序重復執(zhí)行某一段程序塊的方式之一。1.語法2.本任務的代碼學習活動6——總結(jié)拓展學習活動6——總結(jié)拓展課程思政根據(jù)實現(xiàn)的思路,設(shè)計好程序代碼,通過100次重復執(zhí)行,最終達成本任務的目標。在日常生活中,重復就是一種精益求精的表現(xiàn),我國有那么多的大國工匠,他們對自己的工作,就是日復一日,年復一年地重復著,實現(xiàn)從理解到熟悉再到升華的過程。對我們每一個人來說,如果:堅持每天做1分鐘的俯臥撐;堅持每天讀10分鐘的英文;堅持每天寫30分鐘的程序;這就是對自己精益求精的一種表現(xiàn),只要一直堅持下去,一定會有收獲。教學拓展通過本任務的學習與實現(xiàn),同學們初步掌握了for循環(huán)的應用,試著編寫1~10以內(nèi)的整數(shù)相乘。任務小結(jié)(請在此記錄你在本任務中對所學知識的理解與實現(xiàn)本任務的感悟等)。學習活動6——總結(jié)拓展02奇偶數(shù)也好玩目標描述編寫程序?qū)崿F(xiàn)編寫C語言程序?qū)崿F(xiàn)2~100的所有偶數(shù)和。輸入:無處理:2+4+6+…+100輸出:2+4+6+…+100=?技術(shù)層面掌握for循環(huán)語句的相關(guān)知識。掌握程序判斷奇偶數(shù)的方法。應用for循環(huán)語句實現(xiàn)本任務。課程思政善于表達。學習活動1——接領(lǐng)任務任務確認編寫C語言程序?qū)崿F(xiàn)2~100的所有偶數(shù)和。具體要求如下:(1)程序最終能正確展示輸出結(jié)果;(2)掌握C語言代碼的使用規(guī)范(變量命名及注釋說明);(3)程序能正確運行,并具有可擴展性。確認簽字學習活動2——分析任務編寫C語言程序,實現(xiàn)對奇偶數(shù)的判斷,并結(jié)合for循環(huán)完成任務,具體分析如下:(1)偶數(shù)是指能被2整除的數(shù),如0,2,4,6,8,10等。(2)奇數(shù)是指不能被2整除的數(shù),如1,3,5,7,9,11等。學習活動2——分析任務知識學習:程序中奇偶數(shù)的處理在程序中,我們該如何判斷奇偶數(shù)呢?使用取余(%)運算就可以確定某一個數(shù)是不是偶數(shù)。假如要判斷的這個數(shù)是x,那么x%2,如果結(jié)果為0,則說明該數(shù)是偶數(shù),否則為奇數(shù)。學習活動3——制定方案實現(xiàn)思路通過對本任務的分析及相關(guān)知識學習,實現(xiàn)方案如下。方法一:采用取余(%)實現(xiàn)①定義程序中使用的變量(2個)。它們是循環(huán)變量和存放結(jié)果的變量。②編寫for循環(huán),初始化循環(huán)變量,設(shè)置好條件和記步因子。③在循環(huán)體內(nèi)判斷使用取余(%)運算是不是偶數(shù),如果是偶數(shù)則相加。④輸出結(jié)果,程序結(jié)束。學習活動3——制定方案方法二:采用對for循環(huán)記步因子實現(xiàn)①定義程序中使用的變量(2個)。它們是循環(huán)變量和存放結(jié)果的變量。②編寫for循環(huán),初始化循環(huán)變量=0,設(shè)置好條件和記步因子為每次+2。③在循環(huán)體內(nèi)直接求和。④輸出結(jié)果,程序結(jié)束。實現(xiàn)步驟(1)在CodeBlocks軟件中創(chuàng)建一個新項目,項目名稱為oushu100。(2)在main()中按實現(xiàn)思路編寫程序代碼,以實現(xiàn)本任務。學習活動4——實施實現(xiàn)實現(xiàn)代碼(1)打開CodeBlocks軟件,創(chuàng)建一個新的控制臺項目,項目名稱輸入為oushu100。(2)打開項目中的main.c文件,進入編輯界面。(3)在main()中按實現(xiàn)思路完成任務,其代碼如下。方法一:采用取余(%)實現(xiàn)學習活動4——實施實現(xiàn)方法二:采用對for循環(huán)記步因子實現(xiàn)思考:本任務通過上面兩種方法都可以實現(xiàn),請問哪種方法更優(yōu)呢?并說明理由。學習活動5——測試驗收實現(xiàn)效果利用for循環(huán)語句實現(xiàn)了求100以內(nèi)(含100)所有偶數(shù)和的程序。按制定的方案進行任務實現(xiàn),在正確的情況下,任務實現(xiàn)的效果如圖4.6所示(以方法一為例)。學習活動5——測試驗收驗收結(jié)果驗收評價學習活動6——總結(jié)拓展實現(xiàn)效果利用for循環(huán)語句實現(xiàn)了求100以內(nèi)(含100)所有偶數(shù)和的程序。技術(shù)層面如果某一個數(shù)%2(取余)運算如果為0,則說明這個數(shù)是一個偶數(shù)。巧設(shè)for循環(huán)語句的各表達式,以實現(xiàn)不同的目的,如使用兩種方法實現(xiàn)本任務的目標。方法一:循環(huán)變量i初值為1,每循環(huán)一次+1,一直循環(huán)到100。每次循環(huán)都要判斷i%2是否為0。如果為0則求偶數(shù)和,否則(奇數(shù))不求和。方法二:循環(huán)變量i初值為0,每循環(huán)一次+2,一直循環(huán)到100。這樣設(shè)計,則i的值就是0,2,4,6,……,100,所以不用判斷,直接求和。學習活動6——總結(jié)拓展課程思政方法一和方法二都能達成本任務的目標,哪種方法更優(yōu)呢?如果讓你來回答,應該如何表達呢?回答示例參考。各位同學好!老師好!我叫×××,通過小組交流后,我們認為方法二更優(yōu),原因如下。(1)從循環(huán)的次數(shù)來說:方法一共循環(huán)100次,方法二共循環(huán)51次,方法二勝出。(2)從消耗時間來說:方法一每次都要除以2求余,要消耗一定時間,而判斷也要消耗一定的時間。而方法二,不做求余,也不用判斷,直接做加法運算,方法二勝出。綜上所述,我們小組認為方法二更優(yōu)!謝謝大家!學習活動6——總結(jié)拓展教學拓展通過本任務的學習,嘗試利用for循環(huán)語句,編寫實現(xiàn)1!+2!+3!+4!+5!+6!+7!+8!+9!+10!。說明:n!即求n的階乘,如2!=1*2;5!=1*2*3*4*5。任務小結(jié)(請在此記錄你在本任務中對所學知識的理解與實現(xiàn)本任務的感悟等)03怪物在什么時候倒下目標描述編寫程序?qū)崿F(xiàn)編寫C語言程序,實現(xiàn)模擬游戲中“打怪”的過程。設(shè)定怪物生命值(假定),從鍵盤輸入一個整數(shù)作為攻擊力,用怪物生命值減去攻擊力當怪物生命值<=0時,程序結(jié)束。技術(shù)層面掌握while循環(huán)語句的相關(guān)知識。理解死循環(huán)的概念。應用while循環(huán)語句實現(xiàn)本任務。課程思政堅守做人的底線。學習活動1——接領(lǐng)任務任務確認編寫C語言程序,實現(xiàn)模擬游戲中“打怪”的過程。且體要求如下:(1)程序最終能正確展示“打怪”結(jié)果;(2)掌握C語言代碼的使用規(guī)范(變量命名及注釋說明);(3)程序能正確運行,并應具有可擴展性。確認簽字學習活動2——分析任務編寫C語言程序,實現(xiàn)模擬游戲中“打怪”的過程。(1)設(shè)定怪物的生命值,并且該值是固定的。(2)使用循環(huán)來實現(xiàn)攻擊的過程。(3)輸入攻擊值,并用怪物生命值減去攻擊值。(4)條件判斷怪物生命值是否<=0。(5)如果不成立,則繼續(xù)循環(huán)輸入攻擊力“打怪”。(6)如果成立,則結(jié)束循環(huán),顯示“Game

Over!”和總攻擊次數(shù)。學習活動2——分析任務知識學習:while循環(huán)語句1.語法說明:(1)while語句可以實現(xiàn)循環(huán)結(jié)構(gòu)程序,{}內(nèi)就是循環(huán)執(zhí)行的程序代碼;(2)先判斷,再執(zhí)行;(3)如果循環(huán)條件成立,則執(zhí)行循環(huán),否則結(jié)束循環(huán),執(zhí)行循環(huán)后的語句。學習活動2——分析任務2.while循環(huán)語句執(zhí)行流程(見圖4.7)

3.while循環(huán)語句舉例:實現(xiàn)100以內(nèi)的偶數(shù)之和。學習活動2——分析任務4.死循環(huán)死循環(huán)是指永遠不停止的循環(huán),也就是循環(huán)條件永遠為真。真正的死循環(huán)是沒有什么意義的,但我們可以利用這個特性來設(shè)計程序,如不明確真實的循環(huán)次數(shù)時,就可以在循環(huán)中設(shè)定循環(huán)結(jié)束的條件,即只要條件成立時就可結(jié)束死循環(huán)了。在C語言中,循環(huán)條件成立,即是真,使用1來表示。所以將while的循環(huán)條件設(shè)置為1時,就是一個死循環(huán)的設(shè)計。學習活動3——制定方案實現(xiàn)思路(1)定義程序中使用到的變量。3個變量分別為保存怪物的生命值、每次攻擊值和總攻擊次數(shù)。(2)用死循環(huán)的方式實現(xiàn)的攻擊過程。輸入攻擊值,并用怪物生命值減去攻擊值。條件判斷怪物生命值是否<=0。如果不成立,則繼續(xù)循環(huán)。如果成立,則結(jié)束循環(huán),顯示“Game

Over!”和總攻擊次數(shù)。實現(xiàn)步驟(1)在CodeBlocks軟件中創(chuàng)建一個新項目,項目名稱為KillEnemy。(2)在main()中按實現(xiàn)思路編寫程序代碼。學習活動4——實施實現(xiàn)實現(xiàn)代碼(1)打開CodeBlocks軟件,創(chuàng)建一個新的控制臺項目,項目名稱輸入為KillEnemy。(2)打開項目中的main.c文件,進入編輯界面。(3)在main()中按實現(xiàn)思路實現(xiàn)任務,其代碼如下。學習活動5——測試驗收實現(xiàn)效果利用while循環(huán)語句模擬實現(xiàn)游戲中“打怪”的程序,按制定的方案進行任務實現(xiàn),在正確的情況下,任務實現(xiàn)的效果如圖4.8所示。學習活動5——測試驗收驗收結(jié)果驗收評價學習活動6——總結(jié)拓展實現(xiàn)效果利用while循環(huán)語句模擬實現(xiàn)了游戲中“打怪”的程序。技術(shù)層面while循環(huán)語句是實現(xiàn)程序重復執(zhí)行某一段程序塊的方式之一。1.語法學習活動6——總結(jié)拓展2.死循環(huán)死循環(huán)指進入循環(huán)后,永遠不結(jié)束的循環(huán)。真正的死循環(huán)是沒有任何意義的,所以大家在寫循環(huán)程序時,一定注意。但是我們也可以利用死循環(huán)的特性,在循環(huán)中設(shè)定結(jié)束循環(huán)的條件,就可以實現(xiàn)不確定循環(huán)次數(shù)的程序了。學習活動6——總結(jié)拓展課程思政通過本任務的學習,同學們應該明白,再好玩的游戲,也只是一堆“程序代碼”而已。在日常生活中,我們經(jīng)常聽到“游戲人生”這個詞,它的核心是“人生”。因此,我們應該擁有一顆積極向上的心,去努力規(guī)劃,實現(xiàn)美好的人生,而不應該被“游戲”左右。另外,今天我們學習了死循環(huán)的知識,它也是有結(jié)束條件的。那么我們做人更應具有自己的底線。任務小結(jié)(請在此記錄你在本任務中對所學知識的理解與實現(xiàn)本任務的感悟等)04多久才能存夠100元目標描述編寫程序?qū)崿F(xiàn)編寫C語言程序?qū)崿F(xiàn):小麗用多少天才能存夠100元?描述:小麗的媽媽每天給她2.5元,她都會存起來。但是,每當存到第5天或是5的倍數(shù)時,她都會花掉6元,請問經(jīng)過多少天,小麗才能存夠100元?技術(shù)層面掌握do-while循環(huán)語句的相關(guān)知識。應用do-while循環(huán)語句實現(xiàn)本任務。課程思政家國情懷。樹立正確的金錢觀。學習活動1——接領(lǐng)任務任務確認編寫C語言程序,計算存夠100元所需的天數(shù)。具體要求如下:(1)程序最終能正確展示輸出結(jié)果;(2)掌握C語言代碼的使用規(guī)范(變量命名及注釋說明)(3)程序能正確運行,并具有可擴展性。確認簽字學習活動2——分析任務本任務通過編寫C語言程序,計算出小麗多少天能存夠100元。(1)目標金額總數(shù)為100元,初始為0;(2)使用循環(huán)來實現(xiàn)存錢的過程;(3)每循環(huán)一次;(4)存錢總數(shù)+2.5元,存錢天數(shù)+1;(5)條件判存儲總數(shù)>=100;(6)如果不成立,則繼續(xù)循環(huán);(7)如果成立,則結(jié)束循環(huán),并顯示存錢天數(shù)。學習活動2——分析任務知識學習:do-while循環(huán)語句1.語法說明:(1)do-while語句可以實現(xiàn)循環(huán)結(jié)構(gòu)程序,{}內(nèi)就是循環(huán)執(zhí)行的程序代碼;(2)先執(zhí)行一遍循環(huán)操作,再判斷條件。如果符合條件,則循環(huán)繼續(xù)執(zhí)行,否則循環(huán)結(jié)束。學習活動2——分析任務2.do-while循環(huán)語句執(zhí)行流程(見圖4.9)學習活動2——分析任務3.do-while循環(huán)語句舉例實現(xiàn)100以內(nèi)(含100)整數(shù)之和學習活動3——制定方案實現(xiàn)思路通過對本任務的分析及相關(guān)知識學習,制定方案如下:(1)定義程序中使用到的變量(2個)一個變量用于記錄存錢總數(shù);另一個變量用于記錄存錢的天數(shù)。(2)利用循環(huán)實現(xiàn)存錢過程由于不知道要存多少天,才能存夠100元,所以使用死循環(huán)的方法。學習活動3——制定方案每次循環(huán):存錢總數(shù)+2.5元;判斷存錢天數(shù)是不是5的倍數(shù)?如果為是,則存錢總數(shù)-6元;判斷存錢總數(shù)>=100元;如果為是,則顯示結(jié)果,結(jié)束循環(huán),程序結(jié)束;如果為否,則存錢天數(shù)+1,繼續(xù)循環(huán)。實現(xiàn)步驟(1)在CodeBlocks軟件中創(chuàng)建一個新項目,項目名稱為SaveMoney。(2)在main()中按實現(xiàn)思路編寫程序代碼。學習活動4——實施實現(xiàn)實現(xiàn)代碼(1)打開CodeBlocks軟件,創(chuàng)建一個新的控制臺項目,項目名稱輸入為SaveMoney。(2)打開項目中的main.c文件,進入編輯界面。(3)在main()中按實現(xiàn)思路完成任務,其代碼如下。學習活動5——測試驗收實現(xiàn)效果利用do-while循環(huán)語句實現(xiàn)了小麗存錢的程序,任務實現(xiàn)的效果如圖4.10所示。學習活動5——測試驗收驗收結(jié)果驗收評價學習活動6——總結(jié)拓展實現(xiàn)效果利用do-while循環(huán)語句,實現(xiàn)了小麗存錢的程序。技術(shù)層面do-while循環(huán)語句是實現(xiàn)程序重復執(zhí)行某一段程序塊的方式之一。語法:學習活動6——總結(jié)拓展課程思政通過本任務的學習,發(fā)現(xiàn)小麗用74天才能存夠100元。賺錢不易,花錢如流水。在生活中,我們應該學會節(jié)約、不攀比,更不能去借貸。樹立正確的金錢觀。同時,我們也應該以生在中國而自豪,因為國家的強大,給了我們一個更安心的學習環(huán)境。感恩父母及親人,因為有他們做堅強的后盾,才能有這樣的幸福生活。教學拓展試著使用do-while循環(huán)語句實現(xiàn)上一次的“打怪”游戲。任務小結(jié)(請在此記錄你在本任務中對所學知識的理解與實現(xiàn)本任務的感悟等)05一對“孿生兄弟”目標描述目標實現(xiàn)優(yōu)化之前實現(xiàn)的BMI程序,讓它變得更具有交互性。技術(shù)層面掌握循環(huán)中的break語句、continue語句的相關(guān)知識。應用break語句、continue語句解決實際問題。課程思政站在用戶的角度思考問題。學習活動1——接領(lǐng)任務任務確認實現(xiàn)對之前已經(jīng)完成的BMI程序的優(yōu)化。具體要求如下:(1)實現(xiàn)可重復計算任意個人的BMI值;(2)對BMI程序增加詢問功能,讓其變得更具有交互性;(3)掌握C語言代碼的使用規(guī)范(變量命名及注釋說明);(4)程序能正確運行,并具有可擴展性。確認簽字學習活動2——分析任務實現(xiàn)對之前已經(jīng)完成BMI程序的優(yōu)化。(1)根據(jù)計算所得的BMI值進行區(qū)間判斷。①結(jié)論:屬于哪種類型。②建議:給出你的建議。但是,仍存在問題。(2)程序啟動一次只能計算一個人的BMI值,如果要計算20個人的BMI值,就要重復啟動20次程序。(3)程序的交互性差。所以要實現(xiàn)對程序的優(yōu)化。增加詢問功能如下:例如,你還繼續(xù)計算嗎(Y/N)?Y:重新輸入數(shù)據(jù)進行計算。N:退出程序。學習活動2——分析任務知識學習:break語句和continue語句break語句用于結(jié)束循環(huán)。如果在循環(huán)中遇到它,則直接結(jié)束循環(huán),其示例如圖4.11所示。continue語句結(jié)束本次循環(huán),直接進行下一次循環(huán),其示例如圖4.12所示。 學習活動3——制定方案實現(xiàn)思路綜合應用所學的循環(huán)知識,對之前實現(xiàn)的BMI程序進行優(yōu)化,讓其變得更具有交互性。BMI程序的優(yōu)化思路如圖4.13所示。(1)增加循環(huán);(2)增加詢問功能。例如,你還繼續(xù)計算嗎(Y/N)?Y:繼續(xù)循環(huán),重新輸入新數(shù)據(jù)進行計算;N:退出程序?qū)崿F(xiàn)步驟(1)啟動CodeBlocks軟件;(2)打開之前完成的BMI程序;(3)按實現(xiàn)思路編寫代碼。學習活動4——實施實現(xiàn)實現(xiàn)代碼(1)啟動CodeBlocks軟件,打開之前優(yōu)化過的BMI程序。(2)按實現(xiàn)思路進行程序優(yōu)化,其代碼如下。學習活動5——測試驗收實現(xiàn)效果對以前任務實現(xiàn)的BMI程序進行了優(yōu)化,讓其變得更加有交互性,即計算完一個人的BMI值后,詢問是否繼續(xù),如果回答是則繼續(xù);如果回答否則結(jié)束程序。任務實現(xiàn)的效果如圖4.14所示。學習活動5——測試驗收驗收結(jié)果驗收評價學習活動6——總結(jié)拓展實現(xiàn)效果對以前任務實現(xiàn)的BMI程序進行了優(yōu)化,讓其變得更加有交互性,即計算完一個人的BMI值后詢問是否繼續(xù),如果回答是則繼續(xù);如果回答否則結(jié)束程序。技術(shù)層面(1)繼續(xù)完成計算功能(重復執(zhí)行實現(xiàn)計算的代碼),可以采用循環(huán)語句來實現(xiàn)。(2)使用while循環(huán)相對來說要好些。因為用戶繼續(xù)操作的次數(shù)不確定,所以使用while進行死循環(huán),在程序中做結(jié)束判斷。(3)循環(huán)加的位置。(4)詢問功能中根據(jù)判斷,巧妙使用continue語句和break語句實現(xiàn)繼續(xù)計算和結(jié)束程序。學習活動6——總結(jié)拓展課程思政沒有優(yōu)化的BMI程序運行一次只能計算一個人的BMI值,大家試想一下,如果用戶想計算多個人的BMI值,那就得不斷地啟動程序,這樣就會很煩瑣且低效。所以,我們學了循環(huán)語句的知識后,就可以應用這些知識來解決這樣的問題。程序計算完后,詢問是否繼續(xù)計算,如果用戶不計算了,則選擇N;如果用戶還要計算,則選擇Y,這樣是不是感覺很親切呀。所以作為一個程序員來說,在以后的職業(yè)生涯中,應該多站在用戶的角度思考問題,這樣開發(fā)出的產(chǎn)品才可能更適合于用戶。任務小結(jié)(請在此記錄你在本任務中對所學知識的理解與實現(xiàn)本任務的感悟等)感謝觀看,再見!程序邏輯與思維(c語言)產(chǎn)教融合協(xié)同育人項目成果程序邏輯與思維(c語言)C語言程序中的數(shù)組應用第五章產(chǎn)教融合協(xié)同育人項目成果01數(shù)據(jù)的逆序輸出目標實現(xiàn)(1)利用數(shù)組知識實現(xiàn)求某班50名學生某門課程的平均分。輸入:50名學生的成績。輸出:成績的平均分。(2)利用數(shù)組知識實現(xiàn)“數(shù)據(jù)逆序輸出”。輸入:1359768240輸出:0428679531。技術(shù)層面掌握一維數(shù)組的定義及應用。課程思政化繁為簡。敬業(yè)精神。目標描述學習活動1——接領(lǐng)任務任務確認通過編寫C語言程序,分別實現(xiàn)統(tǒng)計班級50名學生的平均分和將一一組數(shù)據(jù)逆序輸出。(1)程序能正確統(tǒng)計,并輸出50名學生成績的平均分;(2)程序能將任意的10個整數(shù)按逆序排序并輸出;(3)掌握C語言代碼的使用規(guī)范性(變量取名及注釋說明);(4)程序能正確運行,并具有可擴展性。確認簽字學習活動2——分析任務本任務實現(xiàn)的內(nèi)容:(1)編程實現(xiàn)統(tǒng)計50名學生的平均分;(2)編程實現(xiàn)任意輸入10個整數(shù)保存到數(shù)組中,然后逆序輸出。統(tǒng)計50名學生成績的平均分。這是一個數(shù)據(jù)集合的處理,上面已經(jīng)介紹使用數(shù)組的方式來實現(xiàn)將變得更加高效。將10個整數(shù)按輸入的順序進行逆序輸出,同時也是使用數(shù)組來實現(xiàn)的最佳選擇。所以,本任務將開啟對數(shù)組的學習與應用,下面就先從認識數(shù)組開始吧。知識學習:C語言的數(shù)組1.數(shù)組的特點(1)名稱:數(shù)組名;(2)容量:存放多少個數(shù)據(jù);(3)元素:數(shù)組中的每一個數(shù)據(jù)(4)下標:訪問數(shù)組中某一個元素的標號,數(shù)組的下標是從0開始的。如下定義了一個A數(shù)組:學習活動2——分析任務2.數(shù)組定義數(shù)組必須先定義,后使用。數(shù)組定義的語法如下:說明:(1)Type:數(shù)據(jù)類型,可以是任意有效的數(shù)據(jù)類型。(2)arrayName:數(shù)組名。(3)arraySize:數(shù)組的大小決定可以存放多少個數(shù)據(jù),必須是一個大于零的整數(shù)常量。學習活動2——分析任務學習活動2——分析任務3.初始化數(shù)組初始化數(shù)組就是給數(shù)組賦初值的過程,有以下兩種方式。(1)逐個初始化數(shù)組。提示:{}內(nèi)值的數(shù)目不能大于在數(shù)組聲明時口內(nèi)指定的元素數(shù)目。(2)省略數(shù)組的大小初始化數(shù)組。提示:如果省略數(shù)組的大小,數(shù)組的大小則為初始化時元素的個數(shù)。由于初始化時元素個數(shù)是6,所以數(shù)組A的元素個數(shù)就是6。4.訪問數(shù)組元素數(shù)組聲明后,就可以對其進行訪問操作了。如下定義了一個A數(shù)組,就可以存放5個整型數(shù)據(jù): 學習活動2——分析任務學習活動3——制定方案實現(xiàn)思路1.利用數(shù)組知識實現(xiàn)某班50名學生某門課程的平均分(1)定義一個能存放50個整數(shù)的一維數(shù)組;(2)使用for循環(huán)進行50次循環(huán);(3)從鍵盤輸入50名學生的成績后,計算總分;(4)循環(huán)結(jié)束后,計算平均分(總分/50);(5)輸出結(jié)果,程序結(jié)束。2.利用數(shù)組知識實現(xiàn)“數(shù)據(jù)逆序輸出”(1)定義一個能存放10個整數(shù)的一維數(shù)組;(2)使用for循環(huán)從鍵盤輸入10個整數(shù);(3)利用for循環(huán)5次交換數(shù)組中的值后,順序輸出;(4)輸出結(jié)果。利用for循環(huán)輸出數(shù)組的結(jié)果(直接將循環(huán)變量從最大值到1進行循環(huán)輸出)。學習活動3——制定方案實現(xiàn)步驟(1)在CodeBlocks軟件中創(chuàng)建兩個新項目:①求平均分的項目名稱為getAVG。②數(shù)據(jù)逆序輸出項目名稱為outArray。(2)分別在各個項目的main()中按實現(xiàn)思路編寫代碼。學習活動3——制定方案學習活動4——實施實現(xiàn)實現(xiàn)代碼1.實現(xiàn)50名學生的平均分(1)打開CodeBlocks軟件,創(chuàng)建一個新的控制臺項目,項目名稱輸入為getAVG。

(2)打開項目中的main.c文件,進入編輯界面。學習活動4——實施實現(xiàn)2.數(shù)據(jù)逆序輸出(1)打開CodeBlocks軟件,創(chuàng)建一個新的控制臺項目,項目名稱輸入為outAray。(2)打開項目中的main.c文件,進入編輯界面。(3)在main()中按實現(xiàn)思路完成任務,其代碼如下。學習活動5——測試驗收實現(xiàn)效果利用一維數(shù)組的知識,實現(xiàn)求某班50名學生某門課程的平均分,如圖5.3所示。實現(xiàn)數(shù)據(jù)逆序輸出的效果如圖5.4所示。驗收結(jié)果驗收評價學習活動5——測試驗收學習活動6——總結(jié)拓展實現(xiàn)效果利用一維數(shù)組的知識,實現(xiàn)了兩個任務:(1)求某班50名學生某課程的平均分;(2)數(shù)據(jù)的逆序輸出。技術(shù)層面介紹了一維數(shù)組的相關(guān)知識,包括數(shù)組的特點、數(shù)組的定義、數(shù)組的初始化、數(shù)組元素的操作等。學習活動6——總結(jié)拓展課程思政通過本任務的學習,大家對一維數(shù)組的相關(guān)知識有了較全面的認識及理解,希望同學們不斷加強練習,同時也能有更多的思考。(1)化繁為簡求某班50名學生某門課程的平均分,只需要定義一個能存放50個數(shù)據(jù)的數(shù)組(一行代碼)即可,省去了傳統(tǒng)定義50個變量的思路;同時利用一個for循環(huán)完成對50名學生成績的輸入,提高了工作效率。(2)敬業(yè)精神希望同學們要像蜜蜂一樣,敬業(yè)于現(xiàn)在的學業(yè),以及未來將從事的工作。教學拓展利用一維數(shù)組的知識,嘗試使用數(shù)組實現(xiàn)模塊3中任務3的內(nèi)容。任務小結(jié)(請在此記錄你在本任務中對所學知識的理解與實現(xiàn)本任務的感悟等)學習活動6——總結(jié)拓展02找到你的位置,并排到隊伍中去目標描述編寫程序?qū)崿F(xiàn)在一個從小到大排序的有序數(shù)組中插入一個新數(shù),并保證該數(shù)組有序。技術(shù)層面掌握一維數(shù)組的應用。掌握插入新數(shù)據(jù)到現(xiàn)有數(shù)組中的原理。課程思政遵守社會規(guī)則。加強自身修養(yǎng)。學習活動1——接領(lǐng)任務任務確認通過編寫C語言程序,實現(xiàn)在一個從小到大排序的有序數(shù)組中插入一個新數(shù),并保證插入后該數(shù)組依然有序。(1)程序最終能在有序數(shù)組中正確插入數(shù)據(jù),并保證數(shù)組仍然有序;(2)掌握C語言代碼的使用規(guī)范(變量取名及注釋說明);(3)程序能正確運行,并具有可擴展性。確認簽字學習活動2——分析任務編寫C語言程序,實現(xiàn)在一個從小到大排序的有序數(shù)組中插入一個新數(shù)(見圖5.5),并保證插入后該數(shù)組仍然有序,其分析如下:(1)假如在一個具有5個元素的有序數(shù)組中,插入一個新數(shù)據(jù)40;(2)找到新數(shù)據(jù)40應該插入的位置;(3)將該位置開始后的所有數(shù)據(jù)依次往后移位;(4)騰出位置以插入這個新數(shù)據(jù),使其仍是一個有序數(shù)組。學習活動2——分析任務知識學習:有序數(shù)組插入數(shù)據(jù)介紹示例代碼如下:學習活動3——制定方案實現(xiàn)思路(1)定義一個數(shù)組;(2)給數(shù)組賦值,最后一個元素空著;(3)輸入要插入的數(shù);(4)完成數(shù)組的插入。實現(xiàn)步驟(1)在CodeBlocks中創(chuàng)建一個新項目,項目名稱為insertArray。(2)在main()中按實現(xiàn)思路編寫代碼。學習活動4——實施實現(xiàn)實現(xiàn)代碼(1)打開CodeBlocks軟件,創(chuàng)建一個新的控制臺項目,項目名稱輸入為insertArray。(2)打開項目中的main.c文件,進入編輯界面。(3)在main()中按實現(xiàn)思路完成任務,其代碼如下。學習活動5——測試驗收實現(xiàn)效果在一個有序的一維數(shù)組中插入新數(shù)據(jù),并保持該數(shù)組仍有序。按制定的方案進行任務實現(xiàn),在正確的情況下,其效果如圖5.6所示。學習活動5——測試驗收驗收結(jié)果驗收評價學習活動6——總結(jié)拓展實現(xiàn)效果在一個有序的一維數(shù)組中插入新數(shù)據(jù),并保持該數(shù)組仍有序。技術(shù)層面一維數(shù)組插入數(shù)據(jù)的應用與算法。課程思政本任務實現(xiàn)了對一個有序的一維數(shù)組中插入新數(shù)據(jù),并保持該數(shù)組仍有序,要完成本任務的前提是這個數(shù)組必須是有序的。這點同學們在定義數(shù)組時一定要注意,否則實現(xiàn)不了本任務。任務小結(jié)(請在此記錄你在本任務中對所學知識的理解與實現(xiàn)本任務的感悟等)03數(shù)據(jù)就像水泡一樣從下往上冒出來目標描述編寫程序?qū)崿F(xiàn)編寫程序?qū)崿F(xiàn)對保存N個整數(shù)的數(shù)組進行排序,排序指升序/降序。技術(shù)層面利用“冒泡排序法”實現(xiàn)對數(shù)組的排序。掌握“冒泡排序法”的優(yōu)化實現(xiàn)。課程思政勇于探索。勤于思考。學習活動1——接領(lǐng)任務任務確認編寫C語言程序,使用“冒泡排序法”對數(shù)組進行排序。(1)程序最終能正確展示數(shù)組排序后的結(jié)果;(2)使用傳統(tǒng)“冒泡排序法”和優(yōu)化“冒泡排序法”分別實現(xiàn);(3)掌握C語言代碼的使用規(guī)范性(變量取名及注釋說明);(4)程序能正確運行,并具有可擴展性。確認簽字學習活動2——分析任務知識學習:冒泡排序算法1

.原理比較相鄰兩個元素,如果第1個比第2個大,則交換兩個數(shù)(升序),并依次對每一對相鄰元素進行同樣操作,直到最后一對,找出最大的數(shù)放到最后一個元素中。持續(xù)對越來越少的元素重復上面的步驟,直到?jīng)]有任何一對數(shù)字需要比較,如圖5.7所示。 學習活動2——分析任務2.舉例(見圖5.8)學習活動3——制定方案實現(xiàn)思路(1)定義一個能存放10個整數(shù)的一維數(shù)組,并存放10個無序的數(shù)。(2)使用雙重循環(huán)利用“冒泡排序法”進行操作。外循環(huán)決定總共循環(huán)多少趟(總個數(shù)-1),內(nèi)循環(huán)實現(xiàn)兩相鄰數(shù)比較(每趟循環(huán)次數(shù):總個數(shù)-1-當前趟數(shù))。(3)輸出有序數(shù)列。實現(xiàn)步驟(1)在CodeBlocks軟件中創(chuàng)建一個新項目,項目名稱為maoPao。(2)在main()中按實現(xiàn)思路編寫代碼。學習活動4——實施實現(xiàn)實現(xiàn)代碼1.傳統(tǒng)“冒泡排序法”實現(xiàn)對數(shù)組排序的代碼學習活動4——實施實現(xiàn)2.“冒泡排序法”優(yōu)化方法一按照“冒泡排序法”可以實現(xiàn)對數(shù)組的排序。如果在沒有循環(huán)完總趟數(shù)時數(shù)組就已經(jīng)有序了,就沒必要再做后面的比較了,下面就對其進行優(yōu)化。如圖5.9所示,在第2趟時,數(shù)組就已經(jīng)有序,因此就沒必要進行后面的計算了。學習活動4——實施實現(xiàn)3.“冒泡排序法”優(yōu)化方法二優(yōu)化思路:問題的關(guān)鍵在于對數(shù)列有序區(qū)的界定。優(yōu)化后的代碼如下:學習活動5——測試驗收實現(xiàn)效果利用“冒泡排序法”實現(xiàn)對數(shù)組進行排序。按制定方案進行任務實現(xiàn),在正確的情況下,任務實現(xiàn)的效果如圖5.10所示。學習活動5——測試驗收驗收結(jié)果驗收評價學習活動6——總結(jié)拓展實現(xiàn)效果利用“冒泡排序法”實現(xiàn)對數(shù)組進行排序。技術(shù)層面詳細介紹了“冒泡排序法”的算法實現(xiàn)。“冒泡排序法”優(yōu)化一解決了中途數(shù)組已經(jīng)有序;“冒泡排序法”優(yōu)化二解決了有序與無序的邊界,更大地優(yōu)化了算法。學習活動6——總結(jié)拓展課程思政通過本任務的學習,同學們掌握了“冒泡排序法”的相關(guān)知識同時,對“冒泡排序法”又進行了二次優(yōu)化,說明做任何事我們應保持“沒有最好只有更優(yōu)?!钡男膽B(tài),讓自己成為一個勇于探索、勤于思考的人。任務小結(jié)(請在此記錄你在本任務中對所

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論