高中物理學(xué)習(xí)方法經(jīng)驗_第1頁
高中物理學(xué)習(xí)方法經(jīng)驗_第2頁
高中物理學(xué)習(xí)方法經(jīng)驗_第3頁
高中物理學(xué)習(xí)方法經(jīng)驗_第4頁
高中物理學(xué)習(xí)方法經(jīng)驗_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

個人學(xué)高中物理的經(jīng)驗以下是是個人學(xué)習(xí)物理的經(jīng)驗,和大家分享一下,希望對高中的學(xué)生有幫助、本人比較喜歡學(xué)習(xí)物理對于力學(xué)問題首先要讀懂題目,找出題目中對我們有用的信息,讀懂題目后,對物體進(jìn)行受力分析,這是關(guān)鍵,經(jīng)過受力分析,問題就會迎刃而解,因為看圖比較直觀。對于運(yùn)動學(xué)問題首先也是先讀懂題目,這很重要,然后分析這是什么運(yùn)動?如勻速直線運(yùn)動,勻變速運(yùn)動。分析完什么運(yùn)動后要明白整個的運(yùn)動過程。這很關(guān)鍵,再從題目中找出已知量和要我們求的量,再找對應(yīng)的物理公式,問題就解決了。*頭文件pl0.h*/#defineal10/*符號的最大長度*/

#definenmax14/*number的最大位數(shù)*/

#definenorw8/*關(guān)鍵字個數(shù)*/

charch;/*獲取字符的緩沖區(qū),getch使用*/

intcc,ll;/*cc表示當(dāng)前字符(ch)的位置*/

charline[81];/*讀取行緩沖區(qū)*/

chara[al+1];/*臨時符號,多處的字節(jié)用于存放0*/

charanum[nmax+1];/*臨時符號,存放number*/

charinum[nmax+1];/*存放常數(shù)*/

charword[norw][al];/*保留字*/

charfname[al];/*文件名*/

charid[al+1];/*存放標(biāo)識符或保留字*/

intnum;/*常數(shù)*/

interr;//錯誤計數(shù)器

FILE*fin;

FILE*fout;

FILE*fas;/*詞法分析結(jié)果文件*/

/*函數(shù)執(zhí)行出錯,退出程序*/

#definegetchdoif(-1==getch())return-1

#definegetsymdoif(-1==getsym())return-1

intgetch();/*讀取一行字符*/

intgetsym();/*讀取一個分詞*//*主程序*//*

*運(yùn)行環(huán)境:Microsoftvisualc++6.0

*//*

*程序功能要求:

*編制一個讀單詞過程,源程序為一個文件,讀取該文件,識別出各個具有獨立意義的單詞,

*即基本保留字、標(biāo)識符、常數(shù)、運(yùn)算符、界符五大類。并依次輸出各個單詞的內(nèi)部編碼及單詞符號自身值。

*單詞的內(nèi)部編碼如下:

*1.保留字:if、int、for、while、do、return、break、continue;單詞種別碼為1;

*2.標(biāo)識符:除保留字外的以字母開頭,后跟字母、數(shù)字的字符序列;單詞種別碼為2;

*3.常數(shù)為無符號整形數(shù);單詞種別碼為3;

*4.運(yùn)算符包括:+、-、*、/、=;單詞種別碼為4;

*5.分隔符包括:,、;、{、}、(、);單詞種別碼為5。

*//*

*各類單詞的文法

*<標(biāo)識符>→<字母><字母數(shù)字串>

*<字母數(shù)字串>→<字母><字母數(shù)字串>|<數(shù)字><字母數(shù)字串>|ε

*<無符號整數(shù)>→<數(shù)字>|<數(shù)字><無符號整數(shù)>

*<運(yùn)算符>→+|-|*|/|=

*<界符>→,|;|(|)|{|}

*//*

*程序輸出格式(<單詞種別碼>,"<單詞符號>")

*例如對于源程序

main()

{

inta,b;

a=10;

b=a+20;

}

輸出格式為

cc=0;

ch='';

while(ch!=10)

{

if(EOF==fscanf(fin,"%c",&ch))

{

line[ll]=0;

break;

}

line[ll]=ch;

ll++;

}

}

ch=line[cc];

cc++;

return0;

}

/*讀取一個分詞*/

intgetsym()

{

inti,j,k;while(ch==''||ch==10||ch==9)//忽略空格,換行和TAB

{

getchdo;

}

if(ch>='a'&&ch<='z')//判斷是否為關(guān)鍵字或標(biāo)識符

{

k=0;do{

if(k<al){

a[k]=ch;

k++;

}

getchdo;

}while(ch>='a'&&ch<='z'||ch>='0'&&ch<='9');

a[k]=0;

if(k>al)printf("error");

strcpy(id,a);

i=0;

j=norw-1;

do{

k=(i+j)/2;

if(strcmp(id,word[k])<=0)

{j=k-1;

}

if(strcmp(id,word[k])>=0)

{

i=k+1;

}

}while(i<=j);

if(i-1>j)

{fprintf(fas,"(1,\"%s\")\n",id);/*分詞為關(guān)鍵字*/

}

else{fprintf(fas,"(2,\"%s\")\n",id);/*標(biāo)識符*/}

}

elseif(ch>='0'&&ch<='9')/*判斷分詞是否為常數(shù)*/

{

k=0;

num=0;

do{

num=10*num+ch-'0';

anum[k]=ch;

k++;

getchdo;

}while(ch>='0'&&ch<='9');

fprintf(fas,"(3,\"%d\")",num);/*常數(shù)*/

anum[k]=0;

if(k>nmax)/*常數(shù)位數(shù)超過規(guī)定的最大位數(shù),報錯*/

{

strcpy(inum,anum);

fprintf(fas,"常數(shù)%s超出范圍!",inum);

}

fprintf(fas,"\n");

}

elseif(ch=='+')/*運(yùn)算符*/

{

fprintf(fas,"(4,\"%c\")\n",ch);

getchdo;

}

elseif(ch=='-')

{

fprintf(fas,"(4,\"%c\")\n",ch);

getchdo;

}

elseif(ch=='*')

{

fprintf(fas,"(4,\"%c\")\n",ch);

getchdo;

}

elseif(ch=='/')

{

fprintf(fas,"(4,\"%c\")\n",ch);

getchdo;

}

elseif(ch=='=')

{

fprintf(fas,"(4,\"%c\")\n",ch);

getchdo;

}

elseif(ch==',')/*界符*/

{

fprintf(fas,"(5,\"%c\")\n",ch);

getchdo;

}

elseif(ch==';')

{

fprintf(fas,"(5,\"%c\")\n",ch);

getchdo;

}

elseif(ch=='{')

{

fprintf(fas,"(5,\"%c\")\n",ch);

getchdo;

}

elseif(ch=='}')

{

fprintf(fas,"(5,\"%c\")\n",ch);

getchdo;

}

elseif(ch=='(')

{

fprintf(fas,"(5,\"%c\")\n",ch);

getchdo;

}

elseif(ch==')')

{

fprintf(fas,"(5,\"%c\")\n",ch);

getchdo;

}

else{/*其他字符*/

getchdo;

}

return0;

}

voidinit()/*初始化*/

{

/*設(shè)置保留字名字,按照字母順序,便于折半查找*/

strcpy(&(word[0][0]),"break");

strcpy(&(word[1][0]),"continue");

strcpy(&(word[2][0]),"do");

strcpy(&(word[3][0]),"for");

strcpy(&(word[4][0]),"if");

strcpy(&(word[5][0]),"int");

strcpy(&(word[6][0]),"return");

strcpy(&(word[7][0]),"while");

}

intmain()

{

printf("請輸入源文件名:");

scanf("%s",fname);

fin=fopen(fname,"r");

if(fin)

{

fas=fopen("fa

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論