2022年高中物理学习方法经验 .docx
精品_精品资料_个人学高中物理的体会以下是是个人学习物理的体会,和大家共享一下,期望对高中的同学有帮忙、本人比较喜爱学习物理1、 对于力学问题第一要读懂题目,找出题目中对我们有用的信息,读懂题目后,对物体进行受力分析, 这是关键,经过受力分析,问题就会迎刃而解,由于看图比较直观.2、 对于运动学问题第一也是先读懂题目,这很重要,然后分析这是什么运动?如匀速直线运动,匀变速运动.分析完什么运动后要明白整个的运动过程.这很关键,再从题目中找出已知量和要我们求的量,再找对应的物理公式,问题就解决了.*头文件 pl0.h*/#define al 10 /* 符号的最大长度 */#define nmax 14/*number的最大位数 */ #define norw 8 /*关键字个数 */char ch;/* 猎取字符的缓冲区 ,getch 使用 */int cc,ll;/*cc表示当前字符 ch 的位置 */ char line81;/* 读取行缓冲区 */char aal+1;/* 暂时符号 , 多处的字节用于存放0*/ char anumnmax+1;/*暂时符号 ,存放 number*/ char inumnmax+1;/*存放常数 */char wordnorwal;/*保留字 */ char fnameal;/*文件名 */char idal+1;/* 存放标识符或保留字*/ int num;/* 常数 */int err;/ 错误计数器FILE * fin; FILE * fout;FILE * fas;/* 词法分析结果文件 */* 函数执行出错 ,退出程序 */#define getchdo if-1=getch return -1 #define getsymdo if-1=getsym return -1 int getch;/* 读取一行字符 */int getsym;/* 读取一个分词 */可编辑资料 - - - 欢迎下载精品_精品资料_/* 主程序 */*运行环境*/*程序功能要求 :*编制一个读单词过程,源程序为一个文件,读取该文件,识别出各个具有独立意义的单词,*即基本保留字、 标识符、常数、运算符、界符五大类. 并依次输出各个单词的内部编码及单词符号自身值.*单词的内部编码如下:*1.保留字: if 、int 、for 、while 、do 、return 、break 、continue .单词种别码为 1 .*2.标识符:除保留字外的以字母开头,后跟字母、数字的字符序列.单词种别码为2 .*3.常数为无符号整形数.单词种别码为3.*4.运算符包括: +、-、*、/、=.单词种别码为 4.*5.分隔符包括: ,、;、. 单词种别码为 5.*/*各类单词的文法*< 标识符 ><字母 ><字母数字串 >*< 字母数字串 ><字母 ><字母数字串 >|< 数字>< 字母数字串 >| *< 无符号整数 ><数字 >|< 数字>< 无符号整数 >*< 运算符 > + | - | * | / | =*< 界符> , | ; | | | | */*程序输出格式 <单词种别码 >,"< 单词符号 >"*例如对于源程序mainint a, b; a = 10;b = a + 20;输出格式为可编辑资料 - - - 欢迎下载精品_精品资料_2,"main"5,""5,""5,""1,"int"2,"a"5,","2,"b"5,""2,"a"4,"="3,"10"5,""2,"b"4,"="2,"a"4,"+"3,"20"5,""5,""*/ #include<stdio.h> #include<string.h> #include"pl0.h"/* 从文件 fin 中读取一行字符 , 储存到字符缓冲区 line 中*/ int getchifcc=lliffeoffinprintf"program incomplete" return -1;ll=0;可编辑资料 - - - 欢迎下载精品_精品资料_cc=0;ch=' ' whilech.=10ifEOF=fscanffin,"%c",&chlinell=0; break;linell=ch; ll+;ch=linecc; cc+; return 0;/* 读取一个分词 */ int getsymint i,j,k;whilech=' '|ch=10|ch=9/忽视空格 ,换行和 TABgetchdo;ifch>='a'&&ch<='z'/判定是否为关键字或标识符 k=0;doifk<alak=ch;可编辑资料 - - - 欢迎下载精品_精品资料_k+;getchdo;whilech>='a'&&ch<='z'|ch>='0'&&ch<='9' ak=0;ifk>alprintf"error" strcpyid,a;i=0;j=norw-1; do k=i+j/2;ifstrcmpid,wordk<=0j=k-1;ifstrcmpid,wordk>=0i=k+1;whilei<=j;ifi-1>jfprintffas,"1,"%s"n",id;/*分词为关键字 */else fprintffas,"2,"%s"n",id;/*标识符 */else ifch>='0'&&ch<='9'/*判定分词是否为常数 */k=0;num=0;可编辑资料 - - - 欢迎下载精品_精品资料_donum=10*num+ch-'0' anumk=ch;k+;getchdo;whilech>='0'&&ch<='9' fprintffas,"3,"%d" ",num;/*常数 */anumk=0;ifk>nmax/* 常数位数超过规定的最大位数,报错 */strcpyinum,anum;fprintffas," 常数 %s 超出范畴 .",inum;fprintffas,"n"else ifch='+'/*运算符 */fprintffas,"4,"%c"n",ch; getchdo;else ifch='-'fprintffas,"4,"%c"n",ch; getchdo;else ifch='*'fprintffas,"4,"%c"n",ch; getchdo;可编辑资料 - - - 欢迎下载精品_精品资料_else ifch='/'fprintffas,"4,"%c"n",ch; getchdo;else ifch='='fprintffas,"4,"%c"n",ch; getchdo;else ifch=','/*界符 */fprintffas,"5,"%c"n",ch; getchdo;else ifch=''fprintffas,"5,"%c"n",ch; getchdo;else ifch=''fprintffas,"5,"%c"n",ch; getchdo;else ifch=''fprintffas,"5,"%c"n",ch; getchdo;else ifch=''fprintffas,"5,"%c"n",ch;可编辑资料 - - - 欢迎下载精品_精品资料_getchdo;else ifch=''fprintffas,"5,"%c"n",ch; getchdo;else/* 其他字符 */getchdo;return 0;void init/* 初始化 */* 设置保留字名字 ,根据字母次序 ,便于折半查找 */ strcpy&word00,"break"strcpy&word10,"continue"strcpy&word20,"do"strcpy&word30,"for"strcpy&word40,"if"strcpy&word50,"int"strcpy&word60,"return"strcpy&word70,"while"int mainprintf" 请输入源文件名 :"scanf"%s",fname; fin=fopenfname,"r"可编辑资料 - - - 欢迎下载精品_精品资料_iffinfas=fopen"fas.txt","w" init;err=0; cc=ll=0; ch=' 'dogetsymdo;while.feoffin;fclosefas; fclosefin;elseprintf"can't open file."printf" 词法分析结果已储存到文件fas.txtn"return 0;可编辑资料 - - - 欢迎下载