C課件第3章程序設(shè)計初步_第1頁
C課件第3章程序設(shè)計初步_第2頁
C課件第3章程序設(shè)計初步_第3頁
C課件第3章程序設(shè)計初步_第4頁
C課件第3章程序設(shè)計初步_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

算法簡介C語言程序的基本語句數(shù)據(jù)的輸入輸出Begin:第三章程序設(shè)計初步所謂面向過程的程序設(shè)計,是指利用面向過程的語言工具(如Basic、Pascal、Fortran和C語言等)進行程序開發(fā)的各項活動。3.1結(jié)構(gòu)化程序設(shè)計1面向過程的程序設(shè)計優(yōu)點:編程簡單、結(jié)構(gòu)性強、可讀性好,程序執(zhí)行時序特征明顯;遵循這種結(jié)構(gòu)的程序只有一個入口和一個出口。缺點:存在數(shù)據(jù)與程序模塊的分離和程序的可重用性差等問題?;舅枷耄喊岩粋€需要求解的復(fù)雜問題分為若干個模塊來處理,每個模塊處理一個子問題;設(shè)計時遵循自頂向下、逐步細化、模塊化設(shè)計和結(jié)構(gòu)化編碼的原則。3.1結(jié)構(gòu)化程序設(shè)計2.面向?qū)ο蟮某绦蛟O(shè)計面向?qū)ο蟮某绦蛟O(shè)計是一種新的程序設(shè)計范型。它將一些新的理念和結(jié)構(gòu)化程序設(shè)計中好的思想相融合,提供了一種全新的程序設(shè)計方法?;舅枷雽⒁粋€需要求解的問題分解為一系列實體(對象),然后圍繞這些對象建立數(shù)據(jù)和函數(shù);函數(shù)的功能決定了該對象的行為。規(guī)定一個對象的函數(shù)可以訪問另一對象的函數(shù),但一個對象的數(shù)據(jù)不能應(yīng)用于另一對象的函數(shù)中。(即只有屬于該對象的成員函數(shù)才能訪問自己的數(shù)據(jù)成員,從而達到了保護數(shù)據(jù)的目的。)幾個基本概念:三類機制:類、對象、屬性、事件、方法封裝、繼承、多態(tài)算法——解決某一問題所采取的方法和步驟。3.2算法3.2.1算法的概念

⑴有窮性一個算法其操作步驟應(yīng)當(dāng)是有限的;⑵確定性算法中的每一個步驟應(yīng)當(dāng)有確定的意義,不能有二義性;⑶有效性算法中的每一個步驟應(yīng)當(dāng)正確、可行,并且能有效地執(zhí)行;⑷有零個或多個輸入執(zhí)行算法時需要從外界獲取的信息;⑸有一個或多個輸出執(zhí)行算法后應(yīng)當(dāng)?shù)玫秸_的結(jié)果。計算機算法的特性3.2算法3.2.2算法的基本結(jié)構(gòu)順序結(jié)構(gòu)選擇(分支)結(jié)構(gòu)循環(huán)結(jié)構(gòu)3.2算法3.2.3算法的表示1.用自然語言表示算法

——用人們?nèi)粘J褂玫恼Z言和語序來表示算法?!纠?-1】:輸入n個整數(shù),輸出其中最大的數(shù)。

自然語言偽代碼流程圖設(shè)置變量:n代表整數(shù)的個數(shù),num代表參與取值比較的整數(shù),i代表已參與取值比較的整數(shù)個數(shù),max代表n個整數(shù)中的最大數(shù)。步驟1:從鍵盤輸入一個整數(shù)給n(設(shè)n=5),將1=>i;步驟2:從鍵盤輸入一個整數(shù)給num,再將num=>max;步驟3:如果i<n,再從鍵盤輸入一個整數(shù)給num;步驟4:如果num>max,將num=>max,否則max的值為原值;步驟5:i+1=>i,如果i<n,重復(fù)步驟3和步驟4;否則輸出max的值,即輸出n個整數(shù)中的最大數(shù)。用自然語言描述算法如下:2.用偽代碼表示算法

——一種接近于程序設(shè)計語言,但又不受語言語法約束的算法表示法。上例用偽代碼表示:

輸入n個整數(shù),輸出其中最大的數(shù)。inputninputnummax=numi=1whilei<ndoinputnumifnum>maxthenmax=numendifi=i+1enddoprintmax3.2算法3.用流程圖表示算法

——用一些圖框和方向線表示算法的圖形表示法。常用流程圖符號及含義如下:開始max=num,計數(shù)器i=1i<n輸入n和num的值num>maxmax=numi=i+1輸出max結(jié)束輸入數(shù)給num假假真真上例用流程圖表示:3.2算法⒋用N-S流程圖表示算法——用一些基本結(jié)構(gòu)圖框來表示算法的圖形表示法。語句A語句B條件P成立不成立語句A語句B當(dāng)條件P成立時語句語句直到條件P不成立順序結(jié)構(gòu)分支結(jié)構(gòu)循環(huán)結(jié)構(gòu)基本結(jié)構(gòu)圖框及含義如下:輸入n的值,i=1輸入num的值,max=num輸入numnum>max真

假max=numi=i+1當(dāng)i<n輸出max的值上例用N-S流程圖表示:3.2算法3.3C語言程序的基本語句3.1C語言程序的基本語句

C語言語句分為五類:聲明語句、表達式語句、函數(shù)調(diào)用語句、控制語句、復(fù)合語句、空語句。聲明語句

類型說明符變量名;類型說明符函數(shù)名(參數(shù)列表);inta;charc;intmax(inta,intb);2.表達式語句由一個表達式組成一個語句。

如:++p;/*自增運算表達式加分號構(gòu)成語句*/N+=10;/*復(fù)合賦值表達式加分號構(gòu)成語句*/a+b;/*a+b表達式加分號構(gòu)成語句*/3.函數(shù)調(diào)用語句由一次函數(shù)調(diào)用加上分號“;”組成。形式:函數(shù)名(實參列表);如:printf(“VeryGood!\n”);/*輸出VeryGood!*/max(x,y,z);/*調(diào)用自定義函數(shù)max,求x,y,z中的最大數(shù)*/5.復(fù)合語句:用{}括起來組成的一個語句

如:if(a>b)

{x=0;b=b+1;x=a;}4.空語句:僅由一個分號構(gòu)成的語句6.控制語句:控制程序的流程

如:if…else語句,while語句,return語句等。

如:while(getchar()!='\n')

;

/*空語句*/3.1C語言程序的基本語句1、字符輸出:putchar()函數(shù)格式:

putchar(C);功能:向終端輸出一個字符。C為形式參數(shù),它可以是字符型變量、整型變量,字符型常量或轉(zhuǎn)義字符。3.5數(shù)據(jù)輸入輸出intmain(void){chara;intb;a='b';b=111;putchar(a);putchar(b);putchar('y');putchar('\n'); return0;}例:運用putchar()函數(shù)程序運行結(jié)果:boy“o”的ASCII碼為1112、字符輸入:getchar()函數(shù)格式:

getchar();功能:從終端輸入一個字符。getchar()只能接收一個字符,該字符可賦給字符變量、整型變量或作為表達式的一部分。例:

intmain(void)

{charc;c=gethar();putchar(c); return0;}輸入一個字符,再將該字符輸出功能:通過標(biāo)準(zhǔn)輸出設(shè)備(如顯示器)輸出一組數(shù)據(jù)。輸出形式由“格式控制”字符串規(guī)定。一般形式:

printf(“格式控制字符串”,輸出表列);3.格式輸出函數(shù)printf()格式控制:由雙引號括起來的字符串,用于指定要輸出的數(shù)據(jù)的格式。2)格式說明:用來指定需輸出數(shù)據(jù)的輸出格式的,其形式為:

%[<修飾符>]格式字符

格式字符用以說明輸出數(shù)據(jù)的類型,形式,長度,小數(shù)位數(shù)等。它包括:

1)普通字符:按原樣輸出的字符;

輸出表列:需要輸出的數(shù)據(jù)列表,彼此間用逗號分隔。它可是任意合法的表達式。格式輸出:printf()函數(shù)用于輸出的格式字符格式符功

能形

式d輸出十進制整數(shù)%d、%md、%ld、%mldo以八進制形式輸出整數(shù)%o、%mo、%lox以十六進制形式輸出整數(shù)%x、%mx、%lxu以十進制形式輸出一個無符號的數(shù)%uc輸出一個字符%cs輸出一個字符串%s、%ms、%m.nsf以小數(shù)的形式輸出實數(shù)%f、%m.nf、%lfe以標(biāo)準(zhǔn)指數(shù)的形式輸出實數(shù)%e、%m.neg根據(jù)實數(shù)的大小自動按f或e的形式選擇輸出格式%g格式輸出:printf()函數(shù)用于輸出的修飾符格式輸出:printf()函數(shù)例:格式輸出:printf()函數(shù)printf("a+b=%5.2f",c);附加格式符格式符輸出表列普通字符格式說明符格式控制格式輸出:printf()函數(shù)(1)d格式字符%d:按整型數(shù)據(jù)的實際長度輸出%md:m為指定的輸出長度。如果數(shù)據(jù)位小于m,則左端補以空格;大于m,則按實際位輸出。例:printf(“%4d,%4d”,a,b);

若a=12,b=12345,則輸出12,12345%ld:輸出長整型數(shù)據(jù)。%d的輸出范圍為-32768~32767,輸出超過該范圍的整型數(shù)就會出錯,此時用%ld輸出。其輸出格式和功能與%d相同,如:%8ld格式輸出:printf()函數(shù)(2)o格式字符以八進制數(shù)形式輸出整數(shù),且不帶符號。對于長整數(shù)可用“%lo”輸出。功能同十進制輸出。(3)x格式字符以十六進制數(shù)形式輸出整數(shù),且不帶符號。對于長整數(shù)可用“%lx”輸出。功能同十進制輸出。(4)u格式字符用來輸出unsigned型數(shù)據(jù),即無符號數(shù),輸出十進制數(shù)。用%o,%x輸出負(fù)數(shù)時會發(fā)生錯誤。格式輸出:printf()函數(shù)(5)c格式字符

一個整數(shù),如果在0~255之間,也可用字符形式輸出,系統(tǒng)會將該整數(shù)轉(zhuǎn)換成相對應(yīng)的ASCII碼字符;同時,一字符也可以用整數(shù)形式輸出。例:charc=‘a(chǎn)’;printf(“%c”,c);用來輸出一個字符。inta=65;printf(“%c”,a);intc=‘A’;printf(“%d”,c);輸出A輸出65如:printf(“%3c”,c),則輸出c格式字符也可以指定輸出字?jǐn)?shù)寬度A格式輸出:printf()函數(shù)(6)s格式字符%s:用來輸出一個字符串例:printf(“%s”,“Hello!”);輸出Hello!,不包括“”%ms:輸出的字符串占m列。如果字符串長度小于m,則左端補以空格;長度大于m,則輸出整個字符串。%-ms:如果串長小于m,則字符串向左靠,右補空格,其余同上。%m.ns:輸出的字符串占m列,但只取字符串中左端n個字符,這n個字符輸出在m列的右側(cè),左端補空格。%-m.ns:其他意義同%m.ns,右補空格。例:printf(“%3s”,“Hello!”);輸出Hello!

printf(“%7s”,“Hello!”);輸出Hello!格式輸出:printf()函數(shù)(7)f格式字符%f:不指定字段寬度,整數(shù)部分全部輸出,小數(shù)部分輸出6位。%m.nf:指定輸出數(shù)據(jù)占m列,其中有n位小數(shù)。若數(shù)值長度小于m,則左端補以空格。%-m.nf:功能同上,右端補以空格。(8)e格式字符%e:不指定字段寬度,系統(tǒng)自動給出6位小數(shù),指數(shù)部分占4位。其中“e”占1位,指數(shù)符號占1位,指數(shù)占2位。格式輸出:printf()函數(shù)例:printf(“%e”,123.456);輸出:1.234560e+026位小數(shù)部分4位指數(shù)部分%m.ne,%-m.ne,%me

:中m,-的意義和前相同,n是指數(shù)據(jù)的小數(shù)部分輸出的位數(shù)。(9)g格式字符

用來輸出實數(shù),根據(jù)數(shù)值大小,自動選f或e格式,且不輸出無意義的零。格式輸出:printf()函數(shù)#include<stdio.h>voidmain(){inta=1234;floatf1=12.34567,f2=678.9;printf("1)%d,%6d,%-6d,%2d;\n",a,a,a,a);printf("2)%f,%10.4f,%3.2f;\n",f1,f1,f1);printf("3)%e,%e;\n",f1,f2);printf("4)%8e,%14e;\n",f1,f1);printf("5)%10.7e,%10.3e;\n",f1,f1);}實例:程序運行結(jié)果:1)1234,1234,1234,1234;2)12.345670,12.3457,12.35;3)1.23457e+01,6.78900e+02;4)1.23457e+01,1.23457e+01;5)1.234567e+01,1.23e+01;功能:從終端輸入任何類型的多個數(shù)據(jù)

格式:scanf("格式控制",地址表列);格式控制:由雙引號括起來的字符串,用于指定要輸入的數(shù)據(jù)的格式。1)普通字符:按原樣輸入的字符;

2)格式說明:用來指定需輸入數(shù)據(jù)的輸入格式的,其形式為:

%[<修飾符>]格式字符4.格式輸入:scanf()函數(shù)地址表列:由若干個變量地址組成的表列。地址是由”&”運算得到的。“&”是取址運算符,單目運算符,右結(jié)合性。用于輸入的修飾符4.格式輸入:scanf()函數(shù)用于輸入的格式字符4.格式輸入:scanf()函數(shù)格式輸入的使用與注意:輸入數(shù)據(jù)時采用的分隔符應(yīng)與格式控制中的分隔符一致。例1:

scanf("%d%f%d",&a,&b,&c);

格式符中無普通字符時,可用空格、Tab鍵、回車鍵作分隔符。如:123.45678↙或12(Tab)3.45(Tab)678例2:

scanf("%d,%f,%d",&a,&b,&c);

必須采用格式:12,3.45,678↙例3:

scanf("a=%d,b=%d",&a,&b);

必須采用格式:a=12,b=345↙4.格式輸入:scanf()函數(shù)無符號數(shù)可用%d、%o、%x

格式輸入。輸入格式符帶有*:表示該數(shù)據(jù)不賦值。

例:scanf("%d%*d%d",&a,&c);

鍵入:1234567

則a=12,c=567,34未賦值。數(shù)據(jù)輸入時不可規(guī)定精度,但可確定寬度。

例:scanf(”%3f%3c”,&a,&b);

合法。

例:scanf(”%3.2f%3c”,&a,&b);

非法。4.格式輸入:scanf()函數(shù)用c格式符輸入字符時,空格、轉(zhuǎn)義字符均為有效字符。

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論