程序設(shè)計(jì)-第二章第2章_第1頁(yè)
程序設(shè)計(jì)-第二章第2章_第2頁(yè)
程序設(shè)計(jì)-第二章第2章_第3頁(yè)
程序設(shè)計(jì)-第二章第2章_第4頁(yè)
程序設(shè)計(jì)-第二章第2章_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余58頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

第二算算法的概算法的表結(jié)構(gòu)化程序設(shè)計(jì)方算法的概簡(jiǎn)單算法舉算法的特怎樣表示一個(gè)算結(jié)構(gòu)化程序設(shè)計(jì)方一個(gè)程序應(yīng)包括兩個(gè)方面的內(nèi)對(duì)數(shù)據(jù)的描述:數(shù)據(jù)結(jié)構(gòu)(data對(duì)操作的描述:算法著名計(jì)算機(jī)科學(xué)提出一著名計(jì)算機(jī)科學(xué)提出一個(gè)公式數(shù)據(jù)結(jié)構(gòu)程數(shù)數(shù)據(jù)結(jié)構(gòu)+算法+程序設(shè)計(jì)方法+語(yǔ)言工2.1法的概廣義地說(shuō),為解決一個(gè)問題而采取2.1法的概廣義地說(shuō),為解決一個(gè)問題而采取的和步驟,就稱為“算法”例n方法1:1+2,+3,+4,一直加到100加99方法2:100+(1+99)+(2+98)+…+(4910049×100 加51算法的概計(jì)算機(jī)算法可分為兩大類別非數(shù)值運(yùn)算:包括的面十分廣泛,最常 2.22.2例2.1:求如果要求1×2×…×1000,則要寫999個(gè)步可以設(shè)兩個(gè)變量:個(gè)變量代表乘數(shù)。不另設(shè)變量存放乘積結(jié)果,而直接將每一步驟的乘積放在被乘數(shù)變量中。設(shè)p為被乘數(shù),i為乘數(shù)。用循環(huán)算法可改寫:S1:使p=1S2:使p×i→pS4:使i的值加1,即i+1 S2:3→iS3:p×i→pS4:i+2→pS5:若i≤11,返回S3。否則,結(jié)束反復(fù)多次執(zhí)行S3,S4,S5等步驟,直到某一時(shí)刻,執(zhí)行S5步驟時(shí)經(jīng)過(guò)例2.2有50個(gè)學(xué)生,要求將他們之中成績(jī)?cè)?0分以上者打印出來(lái)。設(shè)n表示學(xué)號(hào)n1代表第一個(gè)學(xué)生學(xué)號(hào)ni代表第i個(gè)學(xué)生學(xué)號(hào)。用G代表學(xué)生成績(jī),gi代表第i個(gè)學(xué)生成績(jī),算S1:1→S2:如果≥80,則打印ni和giS3:i+1→i變量i作為下標(biāo),用來(lái)控制序號(hào)(第幾個(gè),第幾個(gè)成績(jī))。當(dāng)i超過(guò)50時(shí),表對(duì)50例2.3判定2000~2500年中的每一年是否閏年將結(jié)果輸出1)能被4整除,但不能被100整除的年份都是閏年,如9,4年是閏年;()能被10000整除的年份是閏年。如0,0年是閏年。不符合這兩個(gè)條件的年份不是閏年。設(shè)y為被檢測(cè)的年份,算法可表示如下:S1:2000→S2:若y不能被4整除,則輸出y“不是閏年”。然后轉(zhuǎn)S3:若y能被4整除,不能被100整除,則輸出y“是閏年”,否則輸出“不是閏年”。然后轉(zhuǎn)到S6。S5y“S6:y+1→“其它”包括能被41990)是非閏年。例2.4

12

1

......英文分母(denominator)

算法如下:例2.5對(duì)一個(gè)大于或等于3的正整數(shù),判斷判斷一個(gè)數(shù)(3)是否素?cái)?shù)的方法:2到(-1)各個(gè)整數(shù)輪流作為除數(shù),如果都不能被整除,則n為素?cái)?shù)。算法如下 S6:如果i≤n-1,返回S3n“是素?cái)?shù)被2到n/2間整數(shù)除,甚至只需被2n間的2.3一個(gè)算法應(yīng)該具有以下特點(diǎn)有窮性:包含有限的操作步驟解,“解”就是輸出。效地執(zhí)行,并得到確定的結(jié)果。2.4可以用不同的方法表示算法,常用的有自然語(yǔ)傳統(tǒng)結(jié)構(gòu)化流偽代2.4.12.4.1。因此,除了那些很簡(jiǎn)單的問題外,一不用自然語(yǔ)言描述算法2.4.2用 表示算 NationalStandardInstitute)規(guī)定了一些常用的流符號(hào):起止 判斷 處理 輸入/輸出注釋 流向 連接流例2.6將求5!流例2.7將例2.2的算印50名學(xué)生中成績(jī)分,流例2.8將例年的算法 表例2.9將例2.4的算法用12

1

......

例2.10將例2.5判斷素?cái)?shù) 一個(gè)流包括以下幾部分:(3)框內(nèi)外必要的文字說(shuō)傳統(tǒng)流的弊傳統(tǒng)流用流程線各框的執(zhí)行順序,對(duì)流程線的使用沒有嚴(yán)格限制。因轉(zhuǎn)向,使流變得毫無(wú)規(guī)律,閱讀者法的邏輯。如圖:傳統(tǒng)

這種如同亂麻一樣的算法稱為BS型算,意為一碗面條(ABowlofSpaghetti),三種基本結(jié)順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)三種基本結(jié)構(gòu)的圖示順序結(jié) 選擇結(jié)循環(huán)結(jié)構(gòu)的圖示當(dāng)型(While型)循環(huán)結(jié) 直到型(Until型)循三種基本結(jié)構(gòu)的共同特只有一個(gè)只有一個(gè)出口。請(qǐng)注意:一個(gè)菱形判斷。不正確的流程表示徑通過(guò)A

流程內(nèi)的死循由三種基本結(jié)構(gòu)順序組成的算法結(jié)結(jié)構(gòu)化程序 此圖符合基本結(jié)構(gòu)的特結(jié)構(gòu)是一個(gè)一述全部的四個(gè)用N-S1973年學(xué)者I.Nassi和B.Shneiderman提出了一種新的流形式。在這種流N-S流用以下的流符號(hào)

用三種N-S流中的基本框,可以組成復(fù)雜例2.11將例2.1例2.12將例2.2

沒有輸入數(shù)號(hào)和成績(jī)例2.12將例2.2例例例2.14將例2.4的算1

1

......1 出出口出口例2.15將例2.5判別傳統(tǒng)流分析例2.15將例2.5判別傳統(tǒng) 變換為一個(gè)出N-N-:N-S圖表示算法的優(yōu)比文字描述直觀、形象、易于理解;比傳統(tǒng)流緊湊易畫。尤其是它化算法代替,其功能不變。如果一個(gè)算 特點(diǎn):它如同一篇文章上而下地作。它不用圖形符號(hào),因此書寫方便格用處:適用于設(shè)計(jì)過(guò)程中需要反復(fù)修改IFIFxispositiveTHENprintxprint-也可以用漢字偽代碼表示x-也可以中英文混用,如IFprintxprint-例x的絕對(duì)值例2.16求5!。用偽代也可以寫成以下形式2iwhilei≤5{t×ii+1i printtEND{算法結(jié)束

開置i的初值為當(dāng)i<=5,執(zhí)行下面操作使使輸出結(jié)1iwhilei≤50{inputniandgii+1i}11iwhilei≤50{inputniandgii+1i}1iwhilei≤50{ifgi≥80printniandgii+1i}END{算法結(jié)束用偽代碼表示算法識(shí)別流和偽代碼的。只有用計(jì)算機(jī)語(yǔ)用流或偽代碼描述出一個(gè)算法后,還循所用的語(yǔ)言的語(yǔ)則,這是和偽代碼用處:了實(shí)現(xiàn)算法。#include<stdio.h>voidmain(){inti,t;}}2.20將例2.16表示#include<stdio.h>voidmain(){inti,t;}} 一個(gè)結(jié)構(gòu)化程序是用高級(jí)語(yǔ)言表示的結(jié)構(gòu)讀、便于修改和。 復(fù)雜問題的求解過(guò)程階段進(jìn)行,每個(gè)階段自頂向逐步細(xì)模塊化設(shè)計(jì)兩種不同的方兩種不同的方自頂向下,逐步細(xì)化自下而上,逐步積累自頂向下,逐步細(xì)化方法的優(yōu)關(guān)。我們提倡

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論