日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

計(jì)算思維與循環(huán)結(jié)構(gòu)

 zhuxrgf 2021-11-23

計(jì)算思維與循環(huán)結(jié)構(gòu)

原創(chuàng)2021-11-13 19:44·金教員

在日常生活中或是在程序處理的問題中常常遇到需要重復(fù)處理的問題。如

  • 要想計(jì)算機(jī)輸入全班50個(gè)學(xué)生的成績
  • 分別統(tǒng)計(jì)全班50個(gè)學(xué)生的平均成績
  • 求30個(gè)整數(shù)之和
  • 教師檢查30個(gè)學(xué)生的成績是否及格

大多數(shù)的應(yīng)用程序都會(huì)包含循環(huán)結(jié)構(gòu)。循環(huán)結(jié)構(gòu)和順序結(jié)構(gòu)、選擇結(jié)構(gòu)是結(jié)構(gòu)化程序設(shè)計(jì)的三種基本結(jié)構(gòu),它們是各種復(fù)雜程序的基本構(gòu)造單元。

一、while循環(huán)語句

(一)為什么要用循環(huán)

1.用選擇結(jié)構(gòu)求整數(shù)數(shù)位

人vs計(jì)算機(jī)

相比人類文字能力強(qiáng),計(jì)算機(jī)對(duì)數(shù)字的計(jì)算能力強(qiáng),可重復(fù)執(zhí)行相同操作。比如369是3位,人眼睛一看就知道了。而計(jì)算機(jī)本質(zhì)是沒有生命的物體,沒有人類給予指令它什么也做不了,無法像人一眼看出是幾位數(shù)。那怎么讓計(jì)算機(jī)來判斷數(shù)位呢?

人的方式:眼睛一看就知道了。

計(jì)算機(jī)的方式:判斷數(shù)的范圍來決定它位數(shù)。

369屬于區(qū)間[100,999],所以369是3位。

例1:運(yùn)用上一章選擇結(jié)構(gòu),判斷4位數(shù)及以下正整數(shù)的數(shù)位。

問題分析:判斷4位數(shù)以下正整數(shù)的數(shù)位,運(yùn)用選擇結(jié)構(gòu)進(jìn)行判斷。判斷輸入的一個(gè)4位數(shù)及以下的正整數(shù)是1位、2位、3位還是4位?

模式識(shí)別:1位數(shù)屬于區(qū)間[0,9],2位數(shù)屬于區(qū)間[10,99],3位數(shù)屬于區(qū)間[100,999],4位數(shù)屬于區(qū)間[1000,9999]。用if語句嵌套結(jié)構(gòu)進(jìn)行判斷。

模型歸納:定義整型變量x,n分別用于存儲(chǔ)待判斷的整數(shù)和整數(shù)的位數(shù)。通過if選擇嵌套,判斷x為幾位數(shù)。

程序?qū)崿F(xiàn):

#include<stdio.h> Int main(){ Int x; Int n=1; Scanf('%d',&c); If(x>999){ n=4; }else if(x>99){ n=3;}else if(x>9){ n=2; }else if(x>0){ n=1; } Printf('%d\n',n); Return 0; }

如此可以判斷5位數(shù)、6位數(shù)、7位數(shù)、8位數(shù)…分別要用到4、5、6、7個(gè)else if.細(xì)細(xì)分析,數(shù)值越大,if選擇結(jié)構(gòu)越臃腫。那有沒有其他的方案呢?

(二)運(yùn)用循環(huán)求整數(shù)數(shù)位

當(dāng)整數(shù)非常大如12394958394382938503285時(shí),通過數(shù)數(shù)來確定位數(shù)。

人的方式:從左往右數(shù),一次劃掉一個(gè)數(shù)字。

計(jì)算機(jī)的方式:從右邊開始劃,去掉最右邊的數(shù),不斷地劃,直到?jīng)]數(shù)可以劃,每劃一次計(jì)數(shù)加1。這是一個(gè)重復(fù)執(zhí)行的過程,運(yùn)用到循環(huán)結(jié)構(gòu)。

注意計(jì)算機(jī)自己不會(huì)劃劃數(shù),但是可以按照人的指令來操作。運(yùn)用數(shù)學(xué)知識(shí)知,將整數(shù)整除10便可減少一位,并且是減少右邊的一位。

試試代碼:

Int x;
Int n=0;//計(jì)數(shù)器,表示整數(shù)的位數(shù)
Scanf('%d',&x);
n  
x/1=10;
If(x>0){
n  ;
x/10;
If(x>0){
n  ;
x/10;
If(x>0){
n  ;
x/10;
If(x>0){
n  ;
x/10;
if
…)}
}
Printf('%d\n',n);

用前面學(xué)習(xí)的語法和算法知識(shí)試試這代碼,相同代碼重復(fù)出現(xiàn),每劃掉一位數(shù),就執(zhí)行相同的整除代碼。針對(duì)這種特點(diǎn),用循環(huán)結(jié)構(gòu)寫成代碼為:

int x; Int n=0;//計(jì)數(shù)器,表示整數(shù)的位數(shù) Scanf('%d',&x); n x/1=10; while(x>0){ n ; x/10; } Printf('%d\n',n);

分析代碼結(jié)構(gòu):

1.用戶輸入x;

2.初始化n為0;

3.x=x/10,去掉個(gè)位;

4.n ;

5.如果x>0,回到3;

6.否則n就是結(jié)果。

用while語句可實(shí)現(xiàn)這個(gè)循環(huán)結(jié)構(gòu)。

(三)while語句

while語句一般形式如下:

while(表達(dá)式)語句

其中“語句”就是循環(huán)體。循環(huán)體可以是一個(gè)語句,還可以是復(fù)合語句。

“表達(dá)式”也稱為循環(huán)條件表達(dá)式。當(dāng)表達(dá)式值為“真”時(shí),就執(zhí)行循環(huán)體育局;為“假”時(shí)就不執(zhí)行循環(huán)體語句。

while語句可簡單的幾位:只要當(dāng)循環(huán)條件表達(dá)式為真(即給定的條件成立),就執(zhí)行循環(huán)體語句。

通過下面的例子,來看怎樣利用while語句進(jìn)行循環(huán)設(shè)計(jì)

例求1 2 3 … 100

問題分析:累加求和并輸出。

模式識(shí)別:從左往右求和,每一次求和為下一次的一個(gè)加數(shù),另一個(gè)加數(shù)規(guī)律變化,這里是每次加1。

模式歸納:定義整型變量sum、i分別表示和和一個(gè)加數(shù),初始化為sum=0,i=1

Sum=sum I

i=i 1

運(yùn)用循環(huán)控制結(jié)構(gòu),i<=100,輸出sum即為累加和。

程序?qū)崿F(xiàn):

#include <stdio.h>
int main()
{
int i=1,sum=0;
while (i<=100)
{ sum=sum i;
i  ;
}
printf('sum=%d\n',sum);
return 0;
}

其中i 不能丟,否則循環(huán)永不結(jié)束。

運(yùn)行結(jié)果:

計(jì)算思維與循環(huán)結(jié)構(gòu)

注意:while語句中要有是循環(huán)結(jié)束的語句。

二、do…while語句

do---while語句的特點(diǎn):先無條件地執(zhí)行循環(huán)體,然后判斷循環(huán)條件是否成立

do---while語句的一般形式為:

do

語句

while (表達(dá)式);

注意do…while();后面的分號(hào)要加上,否則語法錯(cuò)誤。

其流程圖為:

計(jì)算思維與循環(huán)結(jié)構(gòu)

用do…while語句改寫上例代碼為:

#include <stdio.h> int main() { int i=1,sum=0; do { sum=sum i; i ; }while(i<=100); printf('sum=%d\n',sum); return 0; }

while與do...while的區(qū)別

Do…while語句不論表達(dá)式是否成立均要先執(zhí)行一次。相比while語句只有當(dāng)表達(dá)式為真才執(zhí)行,否則一次也不執(zhí)行。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多