版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第三單元
編程的魅力——程序設(shè)計(jì)入門3.1初識程序設(shè)計(jì)3.2設(shè)計(jì)簡單程序目錄
初識程序設(shè)計(jì)3.11.了解算法的基本概念。2.了解計(jì)算機(jī)程序的概念和基本結(jié)構(gòu)。3.會通過分析問題設(shè)計(jì)合理的算法,并對算法進(jìn)行描述。4.了解主流的程序設(shè)計(jì)語言的種類和特點(diǎn)。5.了解Python的基本語法,會編寫簡單的Python程序并調(diào)試運(yùn)行。學(xué)習(xí)目標(biāo)任務(wù)描述張琦是某技師學(xué)院焊接加工專業(yè)的學(xué)生。他從新聞上得知,2023年我國造船完工量、新承接訂單量和手持訂單量三大造船指標(biāo)均大幅增長,占國際市場份額分別為50.2%、66.6%和55%,均位居世界第一。他為我國造船業(yè)取得的巨大成就感到自豪,有意畢業(yè)后進(jìn)入船舶企業(yè)成為一名船舶電焊工。任務(wù)描述老師告訴張琦,要成為一名優(yōu)秀的電焊工,除了掌握較高的操作技能外,還要具備一定的數(shù)字技能,如基本的編程技巧。老師布置了一個(gè)任務(wù),希望張琦用編程來解決。假設(shè)某船舶企業(yè)車間有
N
名船舶電焊工,平均每人每天能完成的任務(wù)量為M,焊接工作的總?cè)蝿?wù)量為
W,理想情況下這些任務(wù)最少能用幾天時(shí)間完成?任務(wù)描述“計(jì)算任務(wù)完成時(shí)間”算法流程圖要想用編程來解決這個(gè)問題,首先我們要給出這個(gè)程序的算法。一個(gè)程序的算法通常用流程圖來表示,本任務(wù)繪制好的流程圖如圖所示。一、算法的概念算法是指按照一定規(guī)則解決某一編程任務(wù)的明確而有限的步驟。對于同一個(gè)編程任務(wù),可以有不同的算法。這就像如果我們要從上海前往北京,可以選擇乘坐飛機(jī)或高鐵,也可以選擇汽車自駕,不同的出行方式花費(fèi)不同的時(shí)間和費(fèi)用。在設(shè)計(jì)算法時(shí),不僅要保證算法的正確,還要考慮算法的質(zhì)量。設(shè)計(jì)相對簡單、運(yùn)算步驟少的算法,運(yùn)行起來速度也會更快。知識儲備二、如何設(shè)計(jì)算法當(dāng)我們接到一個(gè)編程任務(wù)時(shí),首先要對其進(jìn)行分析,明確任務(wù)的具體要求、輸入的數(shù)據(jù)和需要輸出的結(jié)果,再找出一個(gè)適合用計(jì)算機(jī)來求解的適當(dāng)?shù)慕鉀Q方法或策略(即算法)。很多較為簡單的編程任務(wù)可先用數(shù)學(xué)公式或模型準(zhǔn)確地描述出來,然后再根據(jù)數(shù)學(xué)公式或模型來設(shè)計(jì)一個(gè)解決該問題的算法。算法的每個(gè)步驟都要有確定的執(zhí)行順序,能夠被計(jì)算機(jī)理解和執(zhí)行且無二義性。一個(gè)算法可以有0個(gè)或多個(gè)輸入項(xiàng),但至少應(yīng)該有一個(gè)有效的輸出項(xiàng)。如果沒有輸出項(xiàng),算法的處理結(jié)果就無法返回給用戶。三、算法的表示1.自然語言自然語言就是人們?nèi)粘J褂玫恼Z言,可以是漢語、英語或其他語言。用自然語言表示通俗易懂,但文字冗長,容易出現(xiàn)歧義。自然語言表示的含義往往不大嚴(yán)格,要根據(jù)上下文才能判斷其正確含義,描述包含分支和循環(huán)的算法時(shí)也很不方便。因此,除了一些很簡單的問題外,一般不用自然語言描述算法。2.流程圖流程圖是用一些特定的圖形符號加說明來表示各種操作。在實(shí)際編程中,經(jīng)常使用流程圖來描述算法。流程圖常用圖形符號如圖所示。3.偽代碼偽代碼是用介于自然語言和計(jì)算機(jī)語言之間的文字和符號(非圖形符號)來描述算法。流程圖常用圖形符號任務(wù)分析任務(wù)描述在任務(wù)1中張琦已經(jīng)設(shè)計(jì)了“計(jì)算任務(wù)完成時(shí)間”的算法,并繪制了流程圖。接下來他將使用Python程序設(shè)計(jì)語言實(shí)現(xiàn)算法,使之能運(yùn)行并輸出正確結(jié)果。張琦編寫好的程序如下。M=float(input('M='))N=int(input('N='))W=float(input('W='))D=W/(M*N)print('最少天數(shù):',D)一、程序設(shè)計(jì)語言的發(fā)展歷程程序設(shè)計(jì)語言是編寫計(jì)算機(jī)程序的語言。自20世紀(jì)60年代以來,程序設(shè)計(jì)語言經(jīng)歷了從機(jī)器語言、匯編語言到高級語言的發(fā)展過程。知識儲備1.機(jī)器語言計(jì)算機(jī)誕生之初,使用的是機(jī)器語言,它是計(jì)算機(jī)能直接識別和接受的二進(jìn)制代碼。2.匯編語言匯編語言又稱符號語言,是用符號(如一些簡潔的英文字母、符號串)來表示特定指令的程序設(shè)計(jì)語言。3.高級語言高級語言不依賴于具體機(jī)器,更接近于人們習(xí)慣使用的自然語言和數(shù)學(xué)語言。高級語言可分為面向過程和面向?qū)ο髢深?。二、常用高級語言高級語言種類繁多。據(jù)統(tǒng)計(jì),目前世界上公布的高級語言已有上千種之多,但只有很小一部分得到了廣泛應(yīng)用。常用的高級語言包括Fortran、Cobol、Basic、Visual?Basic、C、C++、C#、Java、JavaScript、Python等。前三種語言主要在計(jì)算機(jī)發(fā)展早期使用,后面幾種語言目前正被廣泛使用,見下表。常用高級語言常用高級語言三、Python的基本語法1.程序的基本結(jié)構(gòu)根據(jù)程序執(zhí)行的流程,程序可分為以下3種基本結(jié)構(gòu)。這3種基本結(jié)構(gòu)可以組成各種復(fù)雜的程序。(1)順序結(jié)構(gòu)。順序結(jié)構(gòu)是最簡單的程序結(jié)構(gòu),即按照程序中語句的順序一條一條順序執(zhí)行。(2)選擇結(jié)構(gòu)。選擇結(jié)構(gòu)也稱分支結(jié)構(gòu),在該結(jié)構(gòu)中有條件判斷語句,根據(jù)條件判斷的結(jié)果選擇執(zhí)行不同的程序語句。(3)循環(huán)結(jié)構(gòu)。該結(jié)構(gòu)一般先設(shè)定一個(gè)循環(huán)條件,在滿足循環(huán)條件的情況下反復(fù)執(zhí)行同一組程序語句,直到條件不滿足時(shí)才退出。2.變量和常量(1)變量。變量是程序的基本組成單位,其值在程序運(yùn)行期間可以改變。如在測定實(shí)時(shí)氣溫的程序中,由于氣溫是不斷變化的,我們可以將氣溫值定義為一個(gè)變量,并給變量取一個(gè)名字,稱為變量名。(2)常量。常量是指在程序運(yùn)行過程中始終保持不變的常數(shù)、字符串等。Python中常量的具體類型包括整型常量、浮點(diǎn)型常量、字符型常量和字符串常量。3.運(yùn)算符和表達(dá)式(1)運(yùn)算符。運(yùn)算符也稱操作符,用于執(zhí)行各種運(yùn)算,包括算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符等,見下表。(2)表達(dá)式。表達(dá)式是由常量、變量和函數(shù)通過運(yùn)算符連接起來的有意義的式子。常見運(yùn)算符任務(wù)分析設(shè)計(jì)簡單程序3.21.了解程序設(shè)計(jì)的選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。2.會設(shè)計(jì)使用選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的程序。3.了解函數(shù)的一般概念。4.會設(shè)計(jì)自定義函數(shù)并進(jìn)行調(diào)用。學(xué)習(xí)目標(biāo)任務(wù)描述在智能化家居設(shè)計(jì)中,房間的溫度由計(jì)算機(jī)總控程序自動(dòng)控制。假設(shè)當(dāng)前室溫為t,要設(shè)定房間溫度恒定為22℃。當(dāng)室內(nèi)溫度高于或等于22℃時(shí),空調(diào)自動(dòng)制冷;當(dāng)室內(nèi)溫度低于22℃時(shí),空調(diào)自動(dòng)制熱。設(shè)
m
代表空調(diào)工作模式(“制冷”或“制熱”),請編寫設(shè)定空調(diào)工作模式的程序。任務(wù)描述編寫好的程序如下。t=int(input("t="))ift>=22:
m="制冷"else:
m="制熱"print("當(dāng)前空調(diào)工作模式為:",m)一、條件表達(dá)式條件表達(dá)式是由若干操作數(shù)與操作符(如比較操作符、邏輯操作符等)組合而成的表達(dá)式,表達(dá)式的值一般是邏輯類型的(真值True或假值False)。變量A和B是操作數(shù)(類型可能是整數(shù)、浮點(diǎn)數(shù)等),“>”(大于符號)是比較操作符,整個(gè)表達(dá)式的結(jié)果是邏輯類型(或稱布爾類型),要么是真值True,要么是假值False。條件表達(dá)式通常用在選擇語句或循環(huán)語句中。知識儲備二、選擇語句Python的選擇語句有3種:單分支if語句、雙分支if-else語句和多分支if-elif-else語句。1.單分支if語句單分支if語句的基本語法如下。if<條件表達(dá)式>:
<語句組>此類語句只有在條件成立的時(shí)候需要執(zhí)行代碼;如果條件不成立,則什么都不執(zhí)行。流程圖如圖所示。單分支if語句流程圖2.雙分支if-else語句雙分支if-else語句的基本語法如下。if<條件表達(dá)式>:
<語句組1>else:
<語句組2>此類語句先判斷條件表達(dá)式是否成立,如成立,執(zhí)行語句組1;不成立,執(zhí)行語句組2。雙分支if-else語句流程圖如圖所示。雙分支if-else語句流程圖3.多分支if-elif-else語句多分支if-elif-else語句的基本語法如下。if<條件表達(dá)式1>:
<語句組1>elif<條件表達(dá)式2>:
<語句組2>…elif<條件表達(dá)式n>:
<語句組n>else:
<語句組n+1>多分支if-elif-else語句可用于多分支情況的處理,其流程圖如圖所示。多分支if-elif-else語句流程圖任務(wù)分析任務(wù)描述在我國約1500年前的《孫子算經(jīng)》中,有這樣一道“雞兔同籠”問題:“今有雉(雞)兔同籠,上有三十五頭,下有九十四足,問雉兔各幾何?”請編寫求解“雞兔同籠”問題的計(jì)算機(jī)程序。任務(wù)描述編寫好的程序如下。head=35#雞兔總數(shù)foot=94#雞兔腳總數(shù)n1=2#單只雞腳數(shù)量n2=4#單只兔腳數(shù)量foriin
range(0,head+1):
ifi*n1+(head-i)*n2==foot:
print("雞:"+str(i)+"只,兔:"+str(head-i)+"只")有些人不愿意重復(fù)、機(jī)械地做同一件事情,而這卻是計(jì)算機(jī)最擅長的。在算法中,把這種從某處開始、按照一定條件、反復(fù)執(zhí)行某一處理步驟的過程,叫作循環(huán)結(jié)構(gòu)。對應(yīng)的語句稱為循環(huán)語句。循環(huán)語句的作用是反復(fù)執(zhí)行一段代碼,直到滿足循環(huán)終止條件為止。知識儲備一個(gè)循環(huán)一般包括四部分內(nèi)容。初始化部分:初始化部分用來設(shè)置循環(huán)的一些初始條件。循環(huán)體部分:循環(huán)體即反復(fù)循環(huán)執(zhí)行的那段代碼,可以是一條語句或多條語句,它是循環(huán)語句的核心。循環(huán)條件部分:循環(huán)條件部分通常是一個(gè)條件表達(dá)式(循環(huán)繼續(xù)運(yùn)行的條件)。每一次循環(huán)都要對該表達(dá)式求值,以驗(yàn)證是否滿足循環(huán)條件。如循環(huán)條件滿足,則繼續(xù)循環(huán);否則退出循環(huán)。迭代部分:每執(zhí)行一次循環(huán)一般都要對循環(huán)條件做修改,這樣循環(huán)才有可能結(jié)束。迭代部分負(fù)責(zé)修改循環(huán)條件的工作。它是在當(dāng)前循環(huán)結(jié)束、下一次循環(huán)開始前執(zhí)行的語句,一般包含在循環(huán)體內(nèi)。一、while語句while語句常用于事先不知道循環(huán)次數(shù)的循環(huán),基本語法如下。while<條件表達(dá)式>:
<語句組>二、for語句for語句常用于已知循環(huán)次數(shù)的循環(huán),基本語法如下。for<迭代變量>in<序列>:
<語句組>for語句在執(zhí)行時(shí),先從序列中選擇一個(gè)元素(按順序),然后執(zhí)行后面語句組(循環(huán)體),完成一次循環(huán)后,再從序列中選擇下一個(gè)元素,重復(fù)執(zhí)行循環(huán)體,直到序列里的元素被全部遍歷,循環(huán)結(jié)束。三、跳轉(zhuǎn)語句循環(huán)執(zhí)行過程中如果需要提前結(jié)束循環(huán),可以使用跳轉(zhuǎn)語句。跳轉(zhuǎn)語句主要有break和continue兩種,它們可以改變循環(huán)的流程。當(dāng)break語句在循環(huán)結(jié)構(gòu)中執(zhí)行時(shí),它會忽略后面的代碼塊,立即跳出其所在的循環(huán)結(jié)構(gòu),轉(zhuǎn)而執(zhí)行該循環(huán)結(jié)構(gòu)后面的語句。與break語句不同,當(dāng)continue語句在循環(huán)結(jié)構(gòu)中執(zhí)行時(shí),并不會退出循環(huán)結(jié)構(gòu),而是立即結(jié)束本次循環(huán),重新開始下一輪循環(huán)。也就是說,continue語句會跳過循環(huán)體中在continue語句之后的所有語句,繼續(xù)下一輪循環(huán)。任務(wù)分析任務(wù)描述馮強(qiáng)是某技師學(xué)院數(shù)控加工專業(yè)的一名學(xué)生,目前正在某企業(yè)參加頂崗實(shí)訓(xùn)。師傅告訴馮強(qiáng),企業(yè)正在大力推進(jìn)數(shù)字化轉(zhuǎn)型,新型的數(shù)控機(jī)床由計(jì)算機(jī)軟件控制,加工精度可達(dá)幾個(gè)微米,遠(yuǎn)勝普通機(jī)床,并且自動(dòng)化操作可以確保質(zhì)量的一致性,要充分利用數(shù)控機(jī)床的能力,掌握編程是必須的。任務(wù)描述師傅給馮強(qiáng)安排了一個(gè)編程任務(wù):加工一個(gè)標(biāo)準(zhǔn)尺寸的實(shí)心金屬球,安排5位同學(xué)分別獨(dú)立加工。已知球的標(biāo)準(zhǔn)直徑和5位同學(xué)加工件的度量直徑(加工件有一定的精度誤差),要求按照給定標(biāo)準(zhǔn),判斷各位同學(xué)的加工件是否合格,并輸出合格的件數(shù)。判斷標(biāo)準(zhǔn)是金屬球質(zhì)量的允許誤差范圍(從外界輸入),金屬球的密度已知。任務(wù)描述假設(shè)球的標(biāo)準(zhǔn)直徑為20cm,密度為7.85g/cm3,5位同學(xué)加工件的直徑數(shù)據(jù)放在列表L中(單位為cm)。允許質(zhì)量的誤差范圍從鍵盤輸入(浮點(diǎn)數(shù),單位為克)。L=[20.00093,20.00076,19.99958,19.99858,19.99807]任務(wù)描述要求編寫函數(shù),根據(jù)輸入的誤差范圍判斷給定加工件是否合格,合格返回True,不合格則返回False。主程序接收輸入的質(zhì)量誤差范圍,調(diào)用函數(shù)判斷各個(gè)加工件是否合格,并輸出合格的加工件件數(shù)。編寫好的程序如下。任務(wù)描述importmath#函數(shù)defqualified(d,e):
#d
為某位同學(xué)加工件的直徑數(shù)據(jù)
#e為允許的質(zhì)量誤差范圍
m=7.85#金屬密度
q=20#標(biāo)準(zhǔn)直徑
V=4/3*math.pi*pow(q/2,3)#標(biāo)準(zhǔn)體積任務(wù)描述V1=4/3*math.pi*pow(d/2,3)#實(shí)際體積
g=abs(V-V1)*m#質(zhì)量誤差
ifg<=e:
returnTrue
else:
returnFalse任務(wù)描述#主程序L=[20.00093,20.00076,19.99958,19.99858,19.99807]e=float(input("請輸入質(zhì)量的誤差范圍(克):\n"))print('合格產(chǎn)品的件數(shù)為:')count=0foriinL:
ifqualified(i,e):count+=1print(count)知識儲備一、函數(shù)的概念函數(shù)的英文“function”直譯是“功能”的意思。實(shí)際上,每個(gè)函數(shù)正是用來實(shí)現(xiàn)一個(gè)特定的功能。給函數(shù)取名時(shí)應(yīng)盡量使名字反映其代表的功能。將程序中常用或需要多次實(shí)現(xiàn)的功能編寫為函數(shù),就可以在需要時(shí)調(diào)用。如在計(jì)算中經(jīng)常要用到開平方,如果將開平方寫成一個(gè)函數(shù),一旦用到開平方,即可調(diào)用函數(shù),不必重復(fù)編寫基礎(chǔ)代碼,減少了重復(fù)勞動(dòng),也使程序更加精煉。Python的程序代碼一般從主程序的第一條語句開始執(zhí)行。在主程序中可以調(diào)用函數(shù),一個(gè)函數(shù)又可以調(diào)用另一個(gè)函數(shù)。同一個(gè)函數(shù)可以被一個(gè)或多個(gè)函數(shù)調(diào)用任意次。二、自定義函數(shù)前面已學(xué)過Python的一些函數(shù),如print(?)、int(?)、input(?)等,這些函數(shù)是Python自帶的,可以直接使用,稱為內(nèi)置函數(shù)。還有一類函數(shù)包含在Python的模塊中,要先導(dǎo)入相應(yīng)的模塊,之后才能使用。用戶也可以定義自己的函數(shù),Python自定義函數(shù)的基本語法如下。def<函數(shù)名>(參數(shù)列表):
<函數(shù)體>
return[返回值]return語句用來返回函數(shù)的值。三、自定義函數(shù)的調(diào)用自定義函數(shù)的調(diào)用類似內(nèi)置函數(shù)的調(diào)用,都是通過“函數(shù)名(參數(shù)列表)”形式調(diào)用。如果函數(shù)定義時(shí)有形參,必須在調(diào)用時(shí)提供實(shí)際參數(shù)(實(shí)參)。實(shí)參的個(gè)數(shù)、類型、位置一般要與形參一一對應(yīng)。如果函數(shù)定義時(shí)沒有參數(shù),調(diào)用時(shí)也必須使用空括號。四、模塊的導(dǎo)入和使用Python中的模塊分為內(nèi)置模塊和非內(nèi)置模塊。內(nèi)置模塊是系統(tǒng)自動(dòng)導(dǎo)入的。程序中可以直接使用內(nèi)置模塊里的函數(shù),這些函數(shù)稱為內(nèi)置函數(shù),如print(?)、input(?)、int(?)等都是內(nèi)置函數(shù)。非內(nèi)置模塊通常以文件的形式
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年德州市武城縣人民醫(yī)院合同制醫(yī)師長期招聘12人備考題庫及參考答案詳解1套
- 超硬材料產(chǎn)業(yè)技術(shù)研究院公開招聘第二批科研人員20人備考題庫及完整答案詳解1套
- 2026年廢固體廢物污染波污染易發(fā)區(qū)保護(hù)保險(xiǎn)合同中
- 廣西工藝美術(shù)研究院有限公司所屬企業(yè)絹麻所2025年12月招聘備考題庫及1套完整答案詳解
- 2026年農(nóng)業(yè)量子外爾半金屬農(nóng)業(yè)合同
- 中共東莞市委外事工作委員會辦公室2025年公開招聘編外聘用人員備考題庫及1套完整答案詳解
- 2025年中電科海洋信息技術(shù)研究院有限公司招聘備考題庫及參考答案詳解
- 2025年揚(yáng)州市江都婦幼保健院公開招聘編外合同制專業(yè)技術(shù)人員備考題庫有答案詳解
- 2024年中儲糧集團(tuán)江蘇分公司招聘考試真題
- 壩工課程設(shè)計(jì)心得
- 電子技術(shù)課程設(shè)計(jì)(數(shù)字電子秤)
- 正確認(rèn)識乙酰膽堿
- GB/T 40047-2021個(gè)體防護(hù)裝備運(yùn)動(dòng)眼面部防護(hù)滑雪鏡
- 2023年電大國際法答案
- 前列腺癌根治術(shù)護(hù)理查房
- 數(shù)理統(tǒng)計(jì)(第三版)課后習(xí)題答案
- 2-管道儀表流程圖PID
- 污水的消毒處理課件
- 思想道德與法治課件:第五章 第二節(jié) 吸收借鑒優(yōu)秀道德成果
- 新鄉(xiāng)瑞豐 潤滑油添加劑系列產(chǎn)品技術(shù)改造項(xiàng)目 環(huán)評報(bào)告書
- 高速服務(wù)區(qū)給排水工程施工組織方案
評論
0/150
提交評論