《2022年高中物理学习方法经验 .pdf》由会员分享,可在线阅读,更多相关《2022年高中物理学习方法经验 .pdf(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、个人学高中物理的经验以下是是个人学习物理的经验,和大家分享一下,希望对高中的学生有帮助、本人比较喜欢学习物理1、 对于力学问题首先要读懂题目,找出题目中对我们有用的信息,读懂题目后,对物体进行受力分析,这是关键,经过受力分析,问题就会迎刃而解,因为看图比较直观。2、 对于运动学问题首先也是先读懂题目,这很重要,然后分析这是什么运动?如匀速直线运动,匀变速运动。分析完什么运动后要明白整个的运动过程。这很关键,再从题目中找出已知量和要我们求的量,再找对应的物理公式,问题就解决了。*头文件 pl0.h*/#define al 10 /*符号的最大长度 */#define nmax 14/*numbe
2、r 的最大位数 */ #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
3、 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 页,共 9 页/*主程序 */* *运行环境
4、*/* *程序功能要求 : *编制一个读单词过程,源程序为一个文件,读取该文件,识别出各个具有独立意义的单词,*即基本保留字、 标识符、常数、运算符、界符五大类。 并依次输出各个单词的内部编码及单词符号自身值。*单词的内部编码如下:*1.保留字: if、int、for、while 、do、return 、break 、continue ;单词种别码为1;*2.标识符:除保留字外的以字母开头,后跟字母、数字的字符序列;单词种别码为2;*3.常数为无符号整形数;单词种别码为3;*4.运算符包括: +、-、*、/、=;单词种别码为4;*5.分隔符包括: ,、;、(、); 单词种别码为5。*/* *各
5、类单词的文法* *| *| * + | - | * | / | = * , | ; | ( | ) | | */* *程序输出格式 (,) *例如对于源程序main() int a, b; a = 10; b = a + 20; 输出格式为精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 9 页(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,) *
6、/ #include #include #includepl0.h/*从文件 fin 中读取一行字符,保存到字符缓冲区line 中*/ int getch() if(cc=ll) if(feof(fin) printf(program incomplete); return -1; ll=0; 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 9 页cc=0; ch= ; while(ch!=10) if(EOF=fscanf(fin,%c,&ch) linell=0; break; linell=ch; ll+; ch=linecc;
7、cc+; return 0; /*读取一个分词 */ int getsym() int i,j,k;while(ch= |ch=10|ch=9)/忽略空格 ,换行和 TAB getchdo; if(ch=a&ch=z)/判断是否为关键字或标识符 k=0;do if(k=a&ch=0&chal)printf(error); strcpy(id,a); i=0; j=norw-1; do k=(i+j)/2; if(strcmp(id,wordk)=0) i=k+1; while(ij) fprintf(fas,(1,%s)n,id);/*分词为关键字 */ else fprintf(fas,(2
8、,%s)n,id);/*标识符 */ else if(ch=0&ch=0&chnmax)/* 常数位数超过规定的最大位数,报错 */ strcpy(inum,anum); fprintf(fas, 常数 %s 超出范围 !,inum); fprintf(fas,n); else if(ch=+)/* 运算符 */ fprintf(fas,(4,%c)n,ch); getchdo; else if(ch=-) fprintf(fas,(4,%c)n,ch); getchdo; else if(ch=*) fprintf(fas,(4,%c)n,ch); getchdo; 精选学习资料 - - -
9、 - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 9 页 else if(ch=/) fprintf(fas,(4,%c)n,ch); getchdo; else if(ch=) fprintf(fas,(4,%c)n,ch); getchdo; else if(ch=,)/* 界符 */ fprintf(fas,(5,%c)n,ch); getchdo; else if(ch=;) fprintf(fas,(5,%c)n,ch); getchdo; else if(ch=) fprintf(fas,(5,%c)n,ch); getchdo; else if(c
10、h=) fprintf(fas,(5,%c)n,ch); getchdo; else if(ch=() fprintf(fas,(5,%c)n,ch); 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 9 页getchdo; else if(ch=) fprintf(fas,(5,%c)n,ch); getchdo; else/* 其他字符 */ getchdo; return 0; void init()/* 初始化 */ /*设置保留字名字 ,按照字母顺序 ,便于折半查找 */ strcpy(&(word00),break); st
11、rcpy(&(word10),continue); strcpy(&(word20),do); strcpy(&(word30),for); strcpy(&(word40),if); strcpy(&(word50),int); strcpy(&(word60),return); strcpy(&(word70),while); int main() printf( 请输入源文件名 :); scanf(%s,fname); fin=fopen(fname,r); 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 9 页if(fin) fas=fopen(fas.txt,w); init(); err=0; cc=ll=0; ch= ; do getsymdo; while(!feof(fin); fclose(fas); fclose(fin); else printf(cant open file!); printf( 词法分析结果已保存到文件fas.txtn); return 0; 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 9 页,共 9 页
限制150内