Ch計(jì)算與計(jì)算思維_第1頁(yè)
Ch計(jì)算與計(jì)算思維_第2頁(yè)
Ch計(jì)算與計(jì)算思維_第3頁(yè)
Ch計(jì)算與計(jì)算思維_第4頁(yè)
Ch計(jì)算與計(jì)算思維_第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、計(jì)算與計(jì)算思維計(jì)算與計(jì)算思維1計(jì)算機(jī)計(jì)算機(jī):硬件硬件(1)主存儲(chǔ)器CPU輸入設(shè)備輸出設(shè)備次級(jí)存儲(chǔ)器2計(jì)算機(jī)計(jì)算機(jī):硬件硬件(2) 中央處理器中央處理器(CPU):執(zhí)行執(zhí)行指令指令. 每條指令只能完成簡(jiǎn)單的操作每條指令只能完成簡(jiǎn)單的操作!例如例如:加法,加法, 比較,比較, 將數(shù)據(jù)從一個(gè)內(nèi)存單元移到將數(shù)據(jù)從一個(gè)內(nèi)存單元移到另一單元,另一單元, etc. 存儲(chǔ)器存儲(chǔ)器:存儲(chǔ)信息存儲(chǔ)信息(程序和數(shù)據(jù)程序和數(shù)據(jù)). 主存主存:CPU能直接訪(fǎng)問(wèn),速度快但易失能直接訪(fǎng)問(wèn),速度快但易失. 次級(jí)存儲(chǔ)器次級(jí)存儲(chǔ)器:速度慢但持久速度慢但持久. 輸入輸入/輸出設(shè)備輸出設(shè)備:人機(jī)交互人機(jī)交互3 34 4 4計(jì)算機(jī)計(jì)算

2、機(jī):軟件軟件 計(jì)算機(jī)是信息處理機(jī)器,信息處理過(guò)程計(jì)算機(jī)是信息處理機(jī)器,信息處理過(guò)程由預(yù)定的由預(yù)定的程序程序控制控制 單條指令是做不了什么事情的,需要大量指單條指令是做不了什么事情的,需要大量指令組成一個(gè)逐步執(zhí)行的令組成一個(gè)逐步執(zhí)行的指令序列指令序列程序程序 各種程序統(tǒng)稱(chēng)為計(jì)算機(jī)軟件各種程序統(tǒng)稱(chēng)為計(jì)算機(jī)軟件 沒(méi)有軟件的計(jì)算機(jī)毫無(wú)用處沒(méi)有軟件的計(jì)算機(jī)毫無(wú)用處4計(jì)算計(jì)算 計(jì)算計(jì)算:利用計(jì)算機(jī)執(zhí)行程序來(lái)解決問(wèn)題利用計(jì)算機(jī)執(zhí)行程序來(lái)解決問(wèn)題 不是狹義的數(shù)學(xué)計(jì)算不是狹義的數(shù)學(xué)計(jì)算! 程序使得簡(jiǎn)單指令完成復(fù)雜任務(wù)程序使得簡(jiǎn)單指令完成復(fù)雜任務(wù) 問(wèn)問(wèn):只會(huì)加法的小學(xué)生能完成乘法運(yùn)算任務(wù)嗎只會(huì)加法的小學(xué)生能完成乘

3、法運(yùn)算任務(wù)嗎? 答答:能能!關(guān)鍵是編寫(xiě)合適的程序關(guān)鍵是編寫(xiě)合適的程序 在紙上寫(xiě)下0,記住結(jié)果; 給所記結(jié)果加上第1個(gè)n,記住結(jié)果; 給所記結(jié)果加上第2個(gè)n,記住結(jié)果; 給所記結(jié)果加上第m個(gè)n,記住結(jié)果; 報(bào)告結(jié)果(即mn)5 5通用計(jì)算機(jī)通用計(jì)算機(jī) 計(jì)算機(jī)執(zhí)行一個(gè)程序即可實(shí)現(xiàn)一個(gè)功能計(jì)算機(jī)執(zhí)行一個(gè)程序即可實(shí)現(xiàn)一個(gè)功能;換著執(zhí)行不同的程序即可實(shí)現(xiàn)不同的功換著執(zhí)行不同的程序即可實(shí)現(xiàn)不同的功能能. 通用計(jì)算機(jī)通用計(jì)算機(jī):可以加載不同的程序來(lái)執(zhí)行可以加載不同的程序來(lái)執(zhí)行. 與一些電器的比較與一些電器的比較:電視機(jī)功能單一,洗衣電視機(jī)功能單一,洗衣機(jī)則功能較多機(jī)則功能較多(可加載多種洗滌程序可加載多種洗

4、滌程序),現(xiàn)在,現(xiàn)在的手機(jī)則功能更多,基本上就是計(jì)算機(jī)的手機(jī)則功能更多,基本上就是計(jì)算機(jī).6計(jì)算機(jī)科學(xué)計(jì)算機(jī)科學(xué) 并非研究計(jì)算機(jī)并非研究計(jì)算機(jī)! 計(jì)算機(jī)之于計(jì)算機(jī)科學(xué)家正如望遠(yuǎn)鏡之于天計(jì)算機(jī)之于計(jì)算機(jī)科學(xué)家正如望遠(yuǎn)鏡之于天文學(xué)家文學(xué)家. (E. W. Dijkstra) CS研究計(jì)算的基礎(chǔ),實(shí)現(xiàn)與應(yīng)用研究計(jì)算的基礎(chǔ),實(shí)現(xiàn)與應(yīng)用. 例如,例如,CS的一個(gè)基本問(wèn)題的一個(gè)基本問(wèn)題:什么是可計(jì)算的什么是可計(jì)算的? 本課程的學(xué)習(xí)目標(biāo)本課程的學(xué)習(xí)目標(biāo):像計(jì)算機(jī)科學(xué)家一樣像計(jì)算機(jī)科學(xué)家一樣思考思考.7 7程序設(shè)計(jì)程序設(shè)計(jì) 計(jì)算的關(guān)鍵是程序設(shè)計(jì)計(jì)算的關(guān)鍵是程序設(shè)計(jì)(編程編程). 給定一個(gè)問(wèn)題,利用計(jì)算機(jī)支持的

5、簡(jiǎn)單操作給定一個(gè)問(wèn)題,利用計(jì)算機(jī)支持的簡(jiǎn)單操作,設(shè)計(jì)出一個(gè)操作步驟的序列,計(jì)算機(jī)執(zhí)行,設(shè)計(jì)出一個(gè)操作步驟的序列,計(jì)算機(jī)執(zhí)行這個(gè)序列從而解決問(wèn)題這個(gè)序列從而解決問(wèn)題. 學(xué)習(xí)程序設(shè)計(jì)的好處學(xué)習(xí)程序設(shè)計(jì)的好處: 做計(jì)算機(jī)的主人做計(jì)算機(jī)的主人 提高問(wèn)題求解能力提高問(wèn)題求解能力 本身是很有樂(lè)趣的智力活動(dòng)本身是很有樂(lè)趣的智力活動(dòng)8 8程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)語(yǔ)言 問(wèn)問(wèn):用什么語(yǔ)言告訴計(jì)算機(jī)做什么用什么語(yǔ)言告訴計(jì)算機(jī)做什么? 答答:用精確無(wú)歧義的程序設(shè)計(jì)語(yǔ)言用精確無(wú)歧義的程序設(shè)計(jì)語(yǔ)言. 精確的語(yǔ)法和語(yǔ)義精確的語(yǔ)法和語(yǔ)義 I saw the man in the park with the telescope.

6、有不同層次的程序設(shè)計(jì)語(yǔ)言有不同層次的程序設(shè)計(jì)語(yǔ)言 計(jì)算機(jī)的計(jì)算機(jī)的母語(yǔ)母語(yǔ):機(jī)器語(yǔ)言機(jī)器語(yǔ)言例如例如: 0000010000000001.是是Intel8086能理解的一條指令能理解的一條指令. 將機(jī)器語(yǔ)言用將機(jī)器語(yǔ)言用助憶符助憶符表示表示:匯編語(yǔ)言匯編語(yǔ)言上例即上例即: ADD AL,1.需要需要匯編器匯編器處理后機(jī)器才懂處理后機(jī)器才懂. 適合人用的語(yǔ)言適合人用的語(yǔ)言:高級(jí)語(yǔ)言高級(jí)語(yǔ)言如如: x = y + 1. 需要需要編譯器編譯器或或解釋器解釋器翻譯后機(jī)器才懂翻譯后機(jī)器才懂.9 9程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)語(yǔ)言 程序設(shè)計(jì)語(yǔ)言不一樣導(dǎo)致程序設(shè)計(jì)語(yǔ)言不一樣導(dǎo)致語(yǔ)法不一樣,語(yǔ)法不一樣, 但解題思路、

7、但解題思路、思維方式思維方式是是一樣的一樣的10import math # Makes the math library available.def main(): print This program finds the real solutions to a quadratic print a, b, c = input(Please enter the coefficients (a, b, c): ) delt=b*b-4*a*c if delt=0: discRoot = math.sqrt(delt) root1 = (-b + discRoot) / (2 * a) root2

8、= (-b - discRoot) / (2 * a) print print The solutions are:, root1, root2 else: print print delt0,no root. printmain()int main() float a, b, c, x1, x2, dlt; cout “input 3 parameters:”; cout a ; cout b ; cout c ; dlt = b* b 4 * a * c; if (dlt = 0) x1 = (-b + sqrt(dlt) / 2 / a; x2 = (-b - sqrt(dlt) / 2

9、 / a; cout x1 x2; else cout print Hello, World!Hello, World! 本課程的教學(xué)中常用交互方式演示新語(yǔ)句本課程的教學(xué)中常用交互方式演示新語(yǔ)句 實(shí)際上很少用交互方式執(zhí)行程序?qū)嶋H上很少用交互方式執(zhí)行程序 多次執(zhí)行同一程序需要多次輸入程序多次執(zhí)行同一程序需要多次輸入程序 多行語(yǔ)句無(wú)法一次性執(zhí)行多行語(yǔ)句無(wú)法一次性執(zhí)行3030第一個(gè)程序第一個(gè)程序:HelloWorld 程序文件程序文件 將語(yǔ)句保存在純文本文件將語(yǔ)句保存在純文本文件hello.py中中 四種執(zhí)行方式四種執(zhí)行方式在在IDLE中用中用Run Module菜單執(zhí)行菜單執(zhí)行雙擊雙擊hello.

10、py文件圖標(biāo)文件圖標(biāo) import hello C:Python27 python hello.py31print Hello, World! 31程序?qū)嵗绦驅(qū)嵗?convert.py# A program to convert Celsius temps to Fahrenheit# by: Susan Computewelldef main(): celsius = input(What is the Celsius temperature? ) fahrenheit = (9.0/5.0) * celsius + 32 print The temperature is ,fahrenh

11、eit, degrees Fahrenheit.main()32程序構(gòu)件程序構(gòu)件:數(shù)據(jù)數(shù)據(jù) 數(shù)據(jù)是被處理的信息數(shù)據(jù)是被處理的信息 有不同類(lèi)型的數(shù)據(jù)有不同類(lèi)型的數(shù)據(jù) 字符串?dāng)?shù)據(jù)字符串?dāng)?shù)據(jù) print Hello, World! 數(shù)值數(shù)據(jù)數(shù)值數(shù)據(jù) print 3.14153333程序構(gòu)件程序構(gòu)件:變量變量 和數(shù)學(xué)類(lèi)似和數(shù)學(xué)類(lèi)似:用一個(gè)名字表示可變的數(shù)據(jù)用一個(gè)名字表示可變的數(shù)據(jù) 數(shù)學(xué)中多用單字母,程序中多用單詞數(shù)學(xué)中多用單字母,程序中多用單詞/詞組詞組 標(biāo)識(shí)符標(biāo)識(shí)符:Python命名命名 以字母或下劃線(xiàn)開(kāi)頭,后跟以字母或下劃線(xiàn)開(kāi)頭,后跟0個(gè)或多個(gè)字母?jìng)€(gè)或多個(gè)字母,數(shù)字,下劃線(xiàn),數(shù)字,下劃線(xiàn).區(qū)分大小

12、寫(xiě)字母區(qū)分大小寫(xiě)字母.合法合法: x xYz x_123 _ _ _w3非法非法: 3q x-123 first name 良好的命名風(fēng)格良好的命名風(fēng)格:有意義,風(fēng)格一致有意義,風(fēng)格一致3434程序構(gòu)件程序構(gòu)件:變量變量35 保留字保留字程序構(gòu)件程序構(gòu)件:表達(dá)式表達(dá)式 表達(dá)式表達(dá)式:能計(jì)算出一個(gè)值能計(jì)算出一個(gè)值. 字面值字面值: 3.14, “hello” 變量變量 數(shù)據(jù)數(shù)據(jù)+運(yùn)算符運(yùn)算符(如如 ) 2+3*4-5 運(yùn)算符運(yùn)算符 不同類(lèi)型的數(shù)據(jù)有不同運(yùn)算不同類(lèi)型的數(shù)據(jù)有不同運(yùn)算 運(yùn)算符有優(yōu)先級(jí)運(yùn)算符有優(yōu)先級(jí) 良好編程風(fēng)格良好編程風(fēng)格:用空格,括號(hào)增加表達(dá)式的可用空格,括號(hào)增加表達(dá)式的可讀性讀性

13、.3636程序構(gòu)件程序構(gòu)件:語(yǔ)句語(yǔ)句 輸出語(yǔ)句輸出語(yǔ)句 我們用語(yǔ)句模板來(lái)給出正確用法我們用語(yǔ)句模板來(lái)給出正確用法print print ,. 賦值語(yǔ)句賦值語(yǔ)句 x = 3.14 print x * 103737程序構(gòu)件程序構(gòu)件:函數(shù)函數(shù)多條語(yǔ)句構(gòu)成一個(gè)整體,并命名多條語(yǔ)句構(gòu)成一個(gè)整體,并命名 def greet(): print Hello! print Goodbye!第一第一個(gè)語(yǔ)句個(gè)語(yǔ)句定義了一個(gè)函數(shù),函數(shù)名定義了一個(gè)函數(shù),函數(shù)名greet后面的語(yǔ)句后面的語(yǔ)句稱(chēng)稱(chēng)為函數(shù)體為函數(shù)體最后空行最后空行 (hit enter twice) 表示表示greet函數(shù)結(jié)束函數(shù)結(jié)束 greet()Hello!Goodbye! 習(xí)慣上為程序定義一個(gè)主函數(shù)習(xí)慣上為程序定義一個(gè)主函數(shù)main3838程序構(gòu)件程序構(gòu)件:注釋注釋 程序中可以使用注釋?zhuān)糜诮忉屪兞坑贸绦蛑锌梢允褂米⑨專(zhuān)糜诮忉屪兞坑猛荆瘮?shù)功能等等信息途,函數(shù)功能等等信息.# Author: John# Version: 1.0def main(): . 注釋是給人看的,對(duì)程序執(zhí)行沒(méi)有作用注釋是給人看的,對(duì)程序執(zhí)行沒(méi)有作用,被編譯器,被編譯器/解釋器忽略解釋器忽略. 良好的編程風(fēng)格良好的編程風(fēng)格:多用注釋多用注釋! 3939程序?qū)嵗绦驅(qū)嵗?convert.py# A program to convert C

溫馨提示

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

評(píng)論

0/150

提交評(píng)論