文档库 最新最全的文档下载
当前位置:文档库 › 算法为先的C语言教学模式探讨

算法为先的C语言教学模式探讨

算法为先的C语言教学模式探讨
算法为先的C语言教学模式探讨

算法为先的C语言教学模式探讨

摘要:本文通过分析C语言教学中存在的问题,提出算法学习对学生学习语法和上机操作有着积极的作用,进而阐述算法为先的教学方法,实践证明,该教学方法从根本上调动学生学习C语言的积极性和主动性。

关键词:C语言;算法为先;教学模式

1引言

为适应社会和经济的信息化需要,掌握计算机技术显得尤为重要。C语言以它结构化丰富、灵活性大、可移植性强、效率高等优点,被广大高校作为计算机专业基础课,以及许多非计算机专业学习程序设计的首选课。但是又由于C语言涉及的概念复杂,规则繁多,数据类型和运算符丰富等特点,使许多初学者望而生畏。很多文献致力于研究好的教学方法,帮助学生掌握C语言语法及上机技巧,这在一定程度上改善了教学效果,但是学生的学习热情仍然缺乏积极主动。本文通过分析算法在C语言教学中的重要作用,进一步探讨算法的教学方法,目的是从根本上激发学生的学习热情,降低学习难度。

2C语言教学中常见问题分析

算法设计、基本语法规则、程序调试是C语言教学的核心内容。算法注重解决某一问题采用的方法步骤,语法注重语言规范,用规范的C语言描述的算法必须通过上机调试才能实现,三个核心内容紧密联系。然而在教学环节中,教材内容基于语法体系,通常采用课堂讲语法、上机调程序的教学模式,忽视了算法在教学中的积极作用,殊不知过细的语法知识易使学生失去兴趣,灵活的编辑环境让学生望而却步,学生的学习热情很难调动起来。

2.1语法细节易使学生失去学习兴趣

通常C语言是学生接触的第一门程序设计语言,任何程序主要由数据和操作两部分组成,围绕这一特点,C语言教学内容可归纳为:算法,数据结构,程序结构三部分。算法是编程的指导思路;数据结构是数据的组织形式,可细分为基本数据类型,构造类型,指针类型、位运算;程序结构是操作语句的组织形式,具体包括预处理,函数,顺序结构,选择结构,循环结构。虽然C语言知识结构清晰,但是它是面向过程的编程语言,具有灵活的编程格式及丰富的运算符和函数,如果对语法细节不熟悉,以及相关概念混淆不清,很难编出正确的程序。教师往往投入较多课时,讲解C 语言语法,而繁多的语法细则,不仅使学生难于记忆,而且容易误导学生的编程思路。例如scanf函数的应用:

scanf函数的一般使用形式为:scanf(格式控制,地址表列)。

格式控制是用双撇号括起来的字符串,它包含两种信息:

c语言经典算法

C语言的学习要从基础,100个经典的算法 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? ________________________________________________________________ 程序分析:兔子的规律为数列1,1,2,3,5,8,13,21.... __________________________________________________________________ 程序源代码: main() { long f1,f2; int i; f1=f2=1; for(i=1;i<=20;i++) { printf("%12ld %12ld",f1,f2); if(i%2==0) printf("\n");/*控制输出,每行四个*/ f1=f1+f2;/*前两个月加起来赋值给第三个月*/ f2=f1+f2;/*前两个月加起来赋值给第三个月*/ } } 上题还可用一维数组处理,you try! 题目:判断101-200之间有多少个素数,并输出所有素数。 _________________________________________________________________ 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。 ___________________________________________________________________ 程序源代码: #include "math.h" main() { int m,i,k,h=0,leap=1; printf("\n"); for(m=101;m<=200;m++) { k=sqrt(m+1); for(i=2;i<=k;i++) if(m%i==0) {leap=0;break;} if(leap) {printf("%-4d",m);h++; if(h%10==0) printf("\n"); } leap=1; } printf("\nThe total is %d",h); } 题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。 __________________________________________________________________ 程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 ___________________________________________________________________ 程序源代码:

大一上期C语言实验报告1熟悉实验环境

成都工业学院·计算机工程学院 《程序设计基础》实验报告 1.实验目的 (1)熟悉C语言运行环境,了解和使用Visual6.0++集成开发环境(2)熟悉Visual6.0++环境的功能键和常用的功能菜单命令 (3)掌握C语言程序的书写格式和C语言程序的结构 (4)掌握C语言上机步骤,以及编辑、编译和运行一个C语言程序的方法 (5)熟悉Visual6.0++环境下的程序调试方法 2.实验内容 (1)按照实验步骤编辑、编译、运行第一个”Hello World”程序(2)利用实验指导中的第二个程序熟悉调试工具,在已知x,y值的情况下,计算出x和y的和、差、积、商,并显示出来(3)编写一个程序,输入a、b、c三个值,输出它们的和与平均值c 3.源程序 (1)#include void main() {printf(”Hello World”);} (2)#include void main() {int x=5,y=2; int s,d,p,q; s=x+y; d=x-y; p=x*y; q=x/y; printf(“和:%d差:%d积%d商:%d“,s,d,p,q);}

(3)#include void main() {int a,b,c.sum; float ave; Printf(“Please enter the a,b,c:”); scanf(“%d%d%d”,&a,&b,&c); sum=a+b+c; ave=(float)sum/3; printf(“sum=%d,ave=%f\n”,sum,ave);} 4.运行结果 (1) (2) (3)输入18、46、69测试得出答案如下

整体语言教学法

整体语言教学法 1.主要特点 ①强调整体。在语言教学中,听、说、读、写是不可分割的整体。 ②语言要和文化、社区相结合,教师要和学生相结合。学习语言的目的是为了满足学生在现实生活中的真实需要,能够进行有意义的人际交流,解决生活中的实际问题,而不是为了学习语言而学习语言。 ③单元以主题为中心O 在一个单元中,所有的学科都围绕着同一主题来进行。主题应激发学生的兴趣,能够将各门科目结合在一起,组成一个完整的教学单元。 2.主要优点 使一个主题概念能够多角度、多层次地反复出现,使学生有机会把过去的知识和经验与今天的学习任务结合起来,使新旧知识在头脑里形成网状记忆、网状联想,使英语学习的质量产生飞跃。注重学生生活和学习有关的练习和活动。可用来培养各种语言能力。 3.主要缺点 个别主题无法把部分学科结合起来,对教师的要求也较高。忽视了拼写教学。 4.整体语言教学的背景与概念 1986年语言学家K. Goodman(凯·古德曼)倡导整体语言教学(whole language approach or integrated whole language approach)。整体语言教学是关于语言、语言学习、语言教学、课程内容和社团学习的一整套教育哲理。这一教育理念对美国、加拿大、新西兰、澳大利亚等国的语言教学产生了巨大影响,同时也引起了全世界教育界的关注。但对于什么是整体语言教学,语言学界至今还没有一种统一的、普遍认可的观点,缺乏一个确切的定义。这是因为整体语言教学不是一个静态的实体,而是随着教学环境的变化和教师教学经验的积累逐渐发展起来的、是促进学生整体学习的一种哲理或方法。 早期的整体语言,即whole language,指的是whole language learning and teaching,也就是把语言作为一个整体来教(leaning and teaching language as a whole)。随着时间的推移,人们在教学中逐渐添加新的内涵,不断完善整体语言教学思想。现在,整体语言教学这一术语可以用来描述合作学习、有学生参与的教学、以学生为中的学习等教学方式,也就是说,它指在教与学的环境中开展与整体语言教学的教育哲理相符合的教学活动。 2.整体语言教学的理论依据 整体语言教学不是一种简单的语言教学方法和技巧,而是关于语言、语言学习、语言教学、教学内容及学习环境的一整套理论原则。其理论基础是语言习得和自然发生的读写能力以及相关学科如心理语言学、认知和发展心理学、社会学、教育学以及人类学等的知识。 Rigg (1991) 指出语言是一个整体,不应当被肢解成语音、词汇、语法、句型。把语言分割成一个个独立的成分,会使语言丧失其完整性。Genesee (1994)也持同样的观点,他强调语言教学应从整体入手,听、说、读、写是语言作为功能结构综合整体的有机组成部分。语言技能不应肢解为听、说、读、写,而应该同时教。Goodman(1990)在研究儿童语言能力发展过程中观察到,儿童对文字和书面语言的知识以及读写能力,并不是等口语能力发展完善以后才开始发展,而是很早就开始与听说能力同时发展的,很早就对书面语言已有一的认识并在一定程度上使用其形式和功能。前苏联心理学家Vygotsky(1978)曾提出这样的结论:语言能力是通过与其他人进行言语交际、思想交流而习得的。儿童不是主要靠模仿学会语言,而是靠置身于真实自然的、丰富的语言环境中习得语言。 3.整体语言教学的原则 整体语言教学主张以下几个原则,只有这些原则得到理解和尊重时,语言学习就比较容

C语言经典算法100例题目

看懂一个程序,分三步:1、流程;2、每个语句的功能;3、试数; 小程序:1、尝试编程去解决他;2、看答案;3、修改程序,不同的输出结果; 4、照答案去敲; 5、调试错误; 6、不看答案,自己把答案敲出来; 7、实在不会就背会。。。。。周而复始,反复的敲。。。。。 【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? ============================================================== 【程序2】 题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高 于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提 成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于 40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于 100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数? ============================================================== 【程序3】 题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?============================================================== 【程序4】 题目:输入某年某月某日,判断这一天是这一年的第几天? ============================================================== 【程序5】 题目:输入三个整数x,y,z,请把这三个数由小到大输出。 ============================================================== 【程序6】 题目:用*号输出字母C的图案。 ============================================================== 【程序7】 题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful! ============================================================== 【程序8】 题目:输出9*9口诀。 ============================================================== 【程序9】 题目:要求输出国际象棋棋盘。 ============================================================== 【程序10】 题目:打印楼梯,同时在楼梯上方打印两个笑脸。 -------------------------------------------------------------------------------- 【程序11】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月 后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? ==============================================================

C语言实验报告参考答案 原

C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述 四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.编写程序: (1) a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 (2)a=160,b=46,c=18,d=170, 编写求(a+b)/(b-c)*(c-d)的程序。 答案: (1) #include main() {

int a,b,c,x,y; a=150; b=20; c=45; x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y); x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } (2) #include main() { int a,b,c,d; float x; a=160; b=46; c=18;

d=170; x=(a+b)/(b-c)*(c-d); printf("(a+b)/(b-c)*(c-d)=%f\n",x); } 3. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b 时,将0赋给c。(提示:用条件运算符) 答案: #include main() { int a,b,c; a=0; b=-10; c= (a>b) ? b:a; printf("c = %d\n",c); } 五、调试和测试结果 1.编译、连接无错,运行后屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 2、(1) 编译、连接无错,运行后屏幕上显示以下结果: a/b的商=7

整体语言教学法

整体语言教学法 整体语言教学法 “整体语言教学法”(Whole Language Approach)的理论首先强调整体。在语言教学中,虽然我们常把语言分成“听、说、读、写”4个部分,但是实质上,语言是包含这 4个部分的不可分割的整体。 Ken Goodman 认为,语言中的词、短语、句子和段落好比一样东西内部的原子和分子。我们可以研究原子和分子的特性,但是,其整体意义总是超过各部分加起来的总和。就好比一张木制桌子,我们可以分析木头中的碳、氢以及其他元素和成份,这对帮助我们加深对木材的认识是有好处的。但是,用木头分子是造不出桌子来的。同样,幼儿在家里学习语言,也不是从零零碎碎的片断开始的,而是从听懂父母用完整的句子传递过来的完整的意思开始,然后为了自身的需要和一定的目的,慢慢学着开口,用语言表达自己的意思。事实证明,幼儿在这种自然环境中把语言当作一个整体来学习,从来都是相当成功的。

整体语言教学法的理论,除了把语言本身看作是个整体以外,还把语言教学的范畴推广到与学生生活有关的其他各个方面。语言教学要和文化、社区相结合,教师要和学生相结合。学习语言的目的是为了满足学生现实生活中的真实需要,为了能够进行有意义的人际交流,解决生活中的实际问题,不是为了学习语言而学习语言。 在口语表达方面,教师大都使用非正式的方法,比如:请学生讲故事,让他们穿上服装、借用道具表演;请学生看图画说故事、复述故事,表演场景;或者先读一首诗歌给学生听,然后请他们把诗扩展成故事。 在阅读方面,整体语言教学法认为阅读的过程是读者先前获得的经验和文字符号相互交流的过程。据此,他们总结出一套三段式阅读教学法。第一,让学生从文章题目和故事的开头提出初步假设,猜测故事的内容和可能会发生的情节。第二,运用先前的知识和经验来构思和推理,验证开头的假设是否成立,先前的猜测是否准确。第三,在深入理解的过程中,不断修正自己的假设。

C语言经典算法100例(1---30)

2008-02-18 18:48 【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。 2.程序源代码: main() { int i,j,k; printf("\n"); for(i=1;i<5;i++) /*以下为三重循环*/ for(j=1;j<5;j++) for (k=1;k<5;k++) { if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/ printf("%d,%d,%d\n",i,j,k); } } ============================================================== 【程序2】 题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高 于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提 成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于 40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于 100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数? 1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 2.程序源代码: main() { long int i; int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; scanf("%ld",&i); bonus1=100000*0.1;bonus2=bonus1+100000*0.75; bonus4=bonus2+200000*0.5; bonus6=bonus4+200000*0.3; bonus10=bonus6+400000*0.15; if(i<=100000)

C语言实验报告参考答案

长沙理工大学2010C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述 四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include<> main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.改错题(将正确程序写在指定位置) 正确的程序为: #include <> main() { printf("商品名称价格\n"); printf("TCL电视机¥7600\n"); printf("美的空调¥2000\n"); printf("SunRose键盘¥\n"); } 2.编写程序: a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 答案: #include<> main() { int a,b,c,x,y; a=150; b=20; c=45;

x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y); x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } 4. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a赋给c。(提示:用条件运算符) 答案: #include<> main() { int a,b,c; a=0; b=-10; c= (a>b) ? b:a; printf("c = %d\n",c); } 五、调试和测试结果 1.编译、连接无错,运行后屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 3、编译、连接无错,运行后屏幕上显示以下结果: a/b的商=7 a/c的商=3 a/b的余数=10 a/c的余数=15 4. 编译、连接无错,运行后屏幕上显示以下结果: c =-10 实验二顺序结构程序设计 四、程序清单 1.键盘输入与屏幕输出练习 问题1 D 。 问题2 改printf("%c,%c,%d\n",a,b,c);这条语句

2010C语言实验报告参考答案

2010C语言实验报告参考答案

长沙理工大学2010C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.改错题(将正确程序写在指定位置) 正确的程序为: #include main() {

printf("商品名称价格\n"); printf("TCL电视机¥7600\n"); printf("美的空调¥2000\n"); printf("SunRose键盘¥50.5\n"); } 2.编写程序: a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 答案: #include main() { int a,b,c,x,y; a=150; b=20; c=45; x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y);

x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } 4. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a赋给c。(提示:用条件运算符) 答案: #include main() { int a,b,c; a=0; b=-10; c= (a>b) ? b:a;

线性方程组的数值算法C语言实现(附代码)

线性方程组AX=B 的数值计算方法实验 一、 实验描述: 随着科学技术的发展,线性代数作为高等数学的一个重要组成部分, 在科学实践中得到广泛的应用。本实验的通过C 语言的算法设计以及编程,来实现高斯消元法、三角分解法和解线性方程组的迭代法(雅可比迭代法和高斯-赛德尔迭代法),对指定方程组进行求解。 二、 实验原理: 1、高斯消去法: 运用高斯消去法解方程组,通常会用到初等变换,以此来得到与原系数矩阵等价的系数矩阵,达到消元的目的。初等变换有三种:(a)、(交换变换)对调方程组两行;(b)、用非零常数乘以方程组的某一行;(c)、将方程组的某一行乘以一个非零常数,再加到另一行。 通常利用(c),即用一个方程乘以一个常数,再减去另一个方程来置换另一个方程。在方程组的增广矩阵中用类似的变换,可以化简系数矩阵,求出其中一个解,然后利用回代法,就可以解出所有的解。 2、选主元: 若在解方程组过程中,系数矩阵上的对角元素为零的话,会导致解出的结果不正确。所以在解方程组过程中要避免此种情况的出现,这就需要选择行的判定条件。经过行变换,使矩阵对角元素均不为零。这个过程称为选主元。选主元分平凡选主元和偏序选主元两种。平凡选主元: 如果()0p pp a ≠,不交换行;如果()0p pp a =,寻找第p 行下满足() 0p pp a ≠的第一 行,设行数为k ,然后交换第k 行和第p 行。这样新主元就是非零主元。偏序选主元:为了减小误差的传播,偏序选主元策略首先检查位于主对角线或主对角线下方第p 列的所有元素,确定行k ,它的元素绝对值最大。然后如果k p >,则交换第k 行和第p 行。通常用偏序选主元,可以减小计算误差。 3、三角分解法: 由于求解上三角或下三角线性方程组很容易所以在解线性方程组时,可将系数矩阵分解为下三角矩阵和上三角矩阵。其中下三角矩阵的主对角线为1,上三角矩阵的对角线元素非零。有如下定理: 如果非奇异矩阵A 可表示为下三角矩阵L 和上三角矩阵U 的乘积: A LU = (1) 则A 存在一个三角分解。而且,L 的对角线元素为1,U 的对角线元素非零。得到L 和U 后,可通过以下步骤得到X : (1)、利用前向替换法对方程组LY B =求解Y 。 (2)、利用回代法对方程组UX Y =求解X 。 4、雅可比迭代:

哈工大(威海)c语言实验报告册答案

实验1简单判定性问题求解 一、实验学时 完成本实验需4学时。 二、实验目的 1、阅读程序题 (1)掌握C语言数据类型,熟悉如何定义一个整型、字符型的变量,以及对它们赋值的方法; (2)掌握不同的类型数据之间赋值的规律; (3)掌握数据在内存中的存储方式; (4)学会输入、输出函数的基本格式和使用方法; (5)学会使用有关算术运算符、逻辑运算符、关系运算符,以及包含这些运算符的表达式。 2、编程题 (1)如何运用if-else判定性结构进行程序设计; (2)如何运用switch判定性结构进行程序设计。 3、调试题 (1)熟悉C程序的编辑、编译、连接和运行的过程。 三、实验指导 为了达到最佳的实验效果,以下提供几条适于编程的指导意见,可供参考。 1、阅读程序题应先运用自己在课堂所学的知识,推导出结果,在上机时输入计算机,印证自己推导的结果,注意观察数据在内存中的存储方式、含不同种运算符表达式的输出结果。 2、编程题必须首先画出流程图,并反复思考判断程序设计的正确性,完成程序的设计。要注意简单判定性问题的结构选择。 3、调试题应明确程序的调试、测试是一项非常烦琐的工作,也是非常重要的工作。对于初学者来说应该建立良好的习惯,在调试程序的时候,应该尽可能考虑到程序运行时各种可能情况。

四、实验内容 1、阅读程序题 (1)main( ) { /*定义字符型变量*/ char c1,c2; /*向字符变量赋以整数*/ c1=97; c2=98; printf("%c %c\n",c1,c2); /*以字符形式输出*/ printf("%d %d\n",c1,c2); /*以整数形式输出*/ } 思考:可否改成int c1,c2;输出结果是?相同 (2)main() { int a=7,b=5; printf("%d\n",b=b/a); } 思考:若将printf语句中%d变为%f,可否输出分式的值?可以(3)main() { int a=9; a+=a-=a+a; /*包含复合的赋值运算符的赋值表达式*/ printf("%d\n",a); } 思考:赋值表达式a+=a-=a+a的求解步骤? 第一步:a=a-(a+a)=-9 第二步a=a+a=18 (4)main() { int k=-1; printf("%d,%u\n",k,k);

语言教学法流派

第二语言教学法主要流派 认知派:强调自觉掌握经验派:强调习惯养成 人本派:强调情感因素功能派:强调交际运用 语法翻译法:以语法知识为纲,依靠母语,通过翻译手段,主要培养二语读写能力。 时间:18世纪末19世纪初 别称:又叫“传统法”、“古典法” 代表人物:德国语言学家奥伦多夫 语言学基础:历史比较语言学 心理学基础:德国官能心理学(德国哲学家沃尔夫创立) 主要特点: 1、以理解目的语的书面语,阅读能力和写作能力,发展智力为主,不重视口 语和听力(重读写,轻听说) 2、以系统语法知识为纲,采用演绎法,通过翻译练习巩固 3、词汇是课文内容,用对译生词表进行教学,句子是讲授与练习的基本单位 4、用母语教学,翻译是主要的教学手段,练习手段和评测手段 5、强调学习规范的书面语,阅读文学名著 优势与不足: 1、语法翻译法是二语教学史上第一个完整的教学法体系,体现理性派教学法 特点 2、历史悠久具有很强的生命力,对我国对外汉语教学特别是精读课有较大影

响 3、忽视口语教学与语音教学,缺乏听说能力训练 4、过分依赖母语和翻译手段 5、过分重视语法知识的教学,死记硬背语法规则 6、教学内容枯燥无味或者过深过难 7、不利于语言交际能力的培养 直接法:主张口语教学为基础,按照幼儿习得母语的过程,用目的语直接与客观事物相联系而不依赖母语,不用翻译 时间:19世纪末20世纪初 别称:改革法、自然法 代表人物:早期代表人物菲埃托《语言教学必须彻底改革》、德国教育学家贝力子、创造“系列法“的法国语言学家古安, 典型教材:英国艾克斯利的《基础英语》 语言学基础:语言观认为语言是习惯,语言的运用靠感觉和记忆 心理学基础:联想主义心理学 主要特点: 1、目的语与事物直接联系,教学中排除母语,排除翻译,采用直观手用目的 语学习目的语,课堂教学采用扮演角色或演戏方式 2、不是先学习语法规则,而是靠直接感知,以模仿、操练、记忆为主形成的 自动的习惯,在一定阶段做一个总结 3、以口语教学为基础,先听说后读写,认为口语第一性符合自然途径,重视

C语言实验报告参考源代码

实验5三种基本结构的综合应用 4.一个素数(设为p)依次从最高位去掉一位,二位,三位,……,若得到的各数仍都是素数(注:除1和它本身外,不能被其它整数整除的正整数称为素数,1不是素数,2是素数),且数p的各位数字均不为零,则称该数p为逆向超级素数。例如,617,17,7都是素数,因此617是逆向超级素数,尽管503,03,3都是素数,但它不是逆向超级素数,因为它包含有零。试求[100,999]之内的所有逆向超级素数的个数。 #include "stdio.h" main() {int i,j,k,m,p,q,n=0; for(i=100;i<=999;i++) {for(j=2;j=i) /*三位数是素数时*/ {k=i%100; /*去掉百位数字*/ if(k>=10) /*十位数字不是0时*/ {for(m=2;m=k) /*两位数是素数时*/ {p=i%10; /*p为个位数字*/ for(q=2;q=p)n++;}}}} printf("%d\n",n);} Key:57 5.求[2,400]中相差为10的相邻素数对的对数。 #include "stdio.h" main() {int i,j,k,m,p,q,n=0; for(i=2;i<=400;i++) {for(j=2;j=i) /*i是素数时*/ {for(k=i+1;k=k)break;} /*k是素数时终止if语句的外层循环*/ if(k>=i+10) /*[i+1,i+9]不是素数时*/ {for(q=2;q

全语言学习法与自然拼音法

全语言学习法与自然拼音法 Phonics,自然拼音教学法,早在19世纪已然成形。然因其与“全语言教学法”在理念上的种种冲突,历经风风雨雨,起起伏伏,始终受到争议。英美教育界屡次掀起“全语言”(Whole Language Aproach)的风潮,将Phonics驱逐出学校教育体系。然而没有了Phonics,教师们发现教学生读写成了无法克服的难题,大量美国学生到了高中毕业竟然还不具备拼写的能力。近二十年来,Phonics重返英语教学的圣殿,但“全语言”和“Phonics”之争依然战火不断,其间所隐含的是语言教学中不同信仰的矛盾:崇尚自然还是遵循规则? 好在中国人的信仰是“鱼与熊掌,可以兼得之”。无论“全语言”还是“Phonics”都是中国现有的主流英语教学中所缺乏的,都可以为我所用。 “全语言”始终是母语式教学的真谛。原因很简单:语言原本就是为交流的需要而自然形成的,而全语言教学法,强调在合适的情景中自然地学习完整的语言,将语言作为习惯来培养,反对语法和规则的束缚,正是符合语言本质的教学方法。仔细回想,其实每个人学母语的时候都在自觉或不自觉地使用“全语言”的方法,想到什么说什么,没有人会边说边思考是否符合语法规则。 那么,在我们的英语教学中具体怎样运用呢?譬如,当你把苹果递给孩子的时候说“Here you are.”不需要解释这是哪三个单词构成的,

这三个单词组合在一起为什么表达这样一个意思。“Here you are”就是一个整体,教师和家长在教学中设计情景,让孩子在递东西的时候就直觉地反应出这整句话来。因此这种方法又称为“整体式教学法”。 全语言的教学需要经过四个阶段:听(从外界吸收语言信息)——理解(在具体的情境中猜测到某句话表达的意思)——模仿(不经分析整体吸收)——移用(在类似的情境中把听到的语言说出来)。比如,在教授“Have a glass of milk”这句话时,教师会一边做动作,一边重复这句话。孩子听到这句话,结合老师的动作猜测出这句话的意思。然后在游戏中,自己拿起一杯牛奶来喝(或是拿画着牛奶杯的图片做喝的姿势),一边喝,一边模仿老师把整句话说出来。当孩子们可以熟练的说出这句话之后,教师可以做替换游戏,引导孩子把“milk”替换成其他熟悉的事物,如“Have a glass of water”,“Have a glass of juice”等等,培养他们移用的能力和创造力。在这个过程完成之后,孩子们在生活中遇到同样的情境或做同样的动作时,就能自然地把对应的整句话说出来。需要注意的是,“Have a glass of milk”应被作为一个整体来教,之后的移用也只是在这个整体结构下的词语替换。 那么,非“全语言”的方法,即中国学校里常用的语法分解的教学方法又会是怎样呢?它要经过七个过程:解构(将整句话分解为多个单词)——解释(单词的意思)——分析(单词在组合中的顺序及语法)——记忆(单词的意思)——理解(单词组合的顺序)——重组(将零散的单词按语法规则重新组合成句子)——表达(把句子说出来)。再

C语言经典算法大全

C语言经典算法大全 老掉牙 河内塔 费式数列 巴斯卡三角形 三色棋 老鼠走迷官(一) 老鼠走迷官(二) 骑士走棋盘 八个皇后 八枚银币 生命游戏 字串核对 双色、三色河内塔 背包问题(Knapsack Problem) 数、运算 蒙地卡罗法求PI Eratosthenes筛选求质数 超长整数运算(大数运算) 长PI 最大公因数、最小公倍数、因式分解 完美数 阿姆斯壮数 最大访客数 中序式转后序式(前序式) 后序式的运算 关于赌博 洗扑克牌(乱数排列) Craps赌博游戏 约瑟夫问题(Josephus Problem) 集合问题 排列组合 格雷码(Gray Code) 产生可能的集合

m元素集合的n个元素子集 数字拆解 排序 得分排行 选择、插入、气泡排序 Shell 排序法- 改良的插入排序Shaker 排序法- 改良的气泡排序Heap 排序法- 改良的选择排序快速排序法(一) 快速排序法(二) 快速排序法(三) 合并排序法 基数排序法 搜寻 循序搜寻法(使用卫兵) 二分搜寻法(搜寻原则的代表)插补搜寻法 费氏搜寻法 矩阵 稀疏矩阵 多维矩阵转一维矩阵 上三角、下三角、对称矩阵 奇数魔方阵 4N 魔方阵 2(2N+1) 魔方阵

1.河内之塔 说明河内之塔(Towers of Hanoi)是法国人M.Claus(Lucas)于1883年从泰国带至法国的,河内为越 战时北越的首都,即现在的胡志明市;1883年法国数学家Edouard Lucas曾提及这个故事,据说创世纪时Benares有一座波罗教塔,是由三支钻石棒(Pag)所支撑,开始时神在第一根棒上放置64个由上至下依由小至大排列的金盘(Disc),并命令僧侣将所有的金盘从第一根石棒移至第三根石棒,且搬运过程中遵守大盘子在小盘子之下的原则,若每日仅搬一个盘子,则当盘子全数搬运完毕之时,此塔将毁损,而也就是世界末日来临之时。 解法如果柱子标为ABC,要由A搬至C,在只有一个盘子时,就将它直接搬至C,当有两个盘 子,就将B当作辅助柱。如果盘数超过2个,将第三个以下的盘子遮起来,就很简单了,每次处理两个盘子,也就是:A->B、A ->C、B->C这三个步骤,而被遮住的部份,其实就是进入程式的递回处理。事实上,若有n个盘子,则移动完毕所需之次数为2^n - 1,所以当盘数为64时,则所需次数为:264- 1 = 18446744073709551615为5.05390248594782e+16年,也就是约5000世纪,如果对这数字没什幺概念,就假设每秒钟搬一个盘子好了,也要约5850亿年左右。 #include void hanoi(int n, char A, char B, char C) { if(n == 1) { printf("Move sheet %d from %c to %c\n", n, A, C); } else { hanoi(n-1, A, C, B); printf("Move sheet %d from %c to %c\n", n, A, C); hanoi(n-1, B, A, C); } } int main() { int n; printf("请输入盘数:"); scanf("%d", &n); hanoi(n, 'A', 'B', 'C'); return 0; }

c语言经典算法100例

60.题目:古典问题:有一对兔子,从出生后第3个月 起每个月都生一对兔子,小兔 子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总 数 为多少? _________________________________________________________________ _ 程序分析:兔子的规律为数列1,1,2,3,5,8,13,21.... _________________________________________________________________ __ 程序源代码: main() { long f1,f2; int i; f1=f2=1; for(i=1;i<=20;i++) { printf("%12ld %12ld",f1,f2); if(i%2==0) printf("\n");/*控制输出,每行四个*/

f1=f1+f2;/*前两个月加起来赋值给第三个月*/ f2=f1+f2;/*前两个月加起来赋值给第三个月*/ } } 上题还可用一维数组处理,you try! 61.题目:判断101-200之间有多少个素数,并输出所有素数。 _________________________________________________________________ _ 1 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被 整 除,则表明此数不是素数,反之是素数。 _________________________________________________________________ __ 程序源代码: #include "math.h" main() { int m,i,k,h=0,leap=1;

C语言实验报告参考答案

《C语言程序设计》 实 验 手 册

《C语言程序设计》实验课程简介 课程名称:C语言程序设计实验 课程性质:专业必修课 课程属性:专业必修课 学时学分:学时32 学分1 开课实验室:软件实验室 面向专业:网络工程、软件工程、计算机科学与技术 一、课程的任务和基本要求 C语言程序设计实验是面向计算机相关专业学生开设的《C语言程序设计》实验课,是配合《C语言程序设计》课程而开设的实验性教育环节。本课程的主要任务是让学生充分掌握C 语言程序设计的基本概念、各种数据类型的使用技巧、模块化程序设计的方法等。C语言程序设计实验对课程中所涉及的知识进行验证,同时也是学生很好地学习课程的辅助手段。通过C语言上机实验的教学活动,使学生真正全面掌握C语言的基础知识,培养和提高学生的程序开发能力。 二、实验项目 【实验一】最简单的C程序---顺序程序设计 【实验二】逻辑运算和判断选取控制 【实验三】循环结构程序设计(一) 【实验四】循环结构程序设计(二) 【实验五】函数 【实验六】数组(一) 【实验七】数组(二) 【实验八】指针 【实验九】结构体、共用体和文件 【实验十】C程序综合性实验 三、有关说明 1、与其它课程和教学环节的联系: 先修课程:计算机文化 后续课程:面向对象程序设计、Java程序设计、数据结构、软件工程 2、教材和主要参考书目: (1)教材: 《C程序设计习题解答与上机指导》,谭浩强吴伟民著,北京:清华大学出版社,2003年。(2)主要参考书目: 《C语言程序设计》谭浩强主编,清华大学出版社,2003年。

三、实验内容 实验一最简单的C程序---顺序程序设计 (验证性实验 2学时) (一)、实验目的 1.熟悉win-tc程序运行环境 2.掌握运行一个C程序的步骤,理解并学会C程序的编辑、编译、链接方法 3.掌握C语言中使用最多的一种语句——赋值语句 4.掌握数据的输入输出方法,能正确使用各种格式控制符 (二)、实验内容 1.写出下列程序的运行结果 (1)#include void main() { printf(“*****************\n”); printf(“This is a c program. \n”); printf(“****************\n”); } 运行结果及分析:运行结果为: Printf函数语句表示输出引号内的字符串,最后的\n表示换行, 将程序中的\n去掉后,运行结果及分析:运行结果为: 去掉\n后不换行连续显示 (2)#include void main() { int a=100,b=20,sum,sb; sum=a+b; sb=a/b; printf("sum=%d,sb=%d",sum,sb); } 运行结果及分析: sum=100+20=120;sb=100/20=5. (3)#include void main( )

C语言必背18个经典程序

C语言必背18个经典程序 (总10页) -CAL-FENGHAI.-(YICAI)-Company One1 -CAL-本页仅作为文档封面,使用请直接删除

C语言必背18个经典程序 1、/*输出9*9口诀。共9行9列,i控制行,j控制列。*/ #include "stdio.h" main() {int i,j,result; for (i=1;i<10;i++) { for(j=1;j<10;j++) { result=i*j; printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/ } printf("\n");/*每一行后换行*/ } system("pause"); } 2、/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 兔子的规律为数列1,1,2,3,5,8,13,21....*/ main() { long f1,f2; int i; f1=f2=1; for(i=1;i<=20;i++) { printf("%12ld %12ld",f1,f2); if(i%2==0) printf("\n");/*控制输出,每行四个*/ f1=f1+f2; /*前两个月加起来赋值给第三个月*/ f2=f1+f2; /*前两个月加起来赋值给第三个月*/ } } 3、/*判断101-200之间有多少个素数,并输出所有素数及素数的个数。 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。*/ #include "math.h" main() { int m,i,k,h=0,leap=1; printf("\n"); for(m=101;m<=200;m++) { k=sqrt(m); for(i=2;i<=k;i++)

相关文档