北师大易语言教程

更新时间:2024-04-09 11:25:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第1单元 程序与程序设计

到目前为止,我们已经有了丰富的使用软件的经验。我们可以很自如的使用文字处理类软件写文章、制作版面精美的报刊;可以使用图片处理软件制作出创意新奇的宣传画;或者用画图软件描绘出自己设计的卡通人物等等;但是无论我们的使用计算机的经验多么丰富,我们一直都是处于一种“使用者”的层面上。一直在使用或者说创造性的使用他人编制好的软件来解决问题。

是否思考过这些软件是如何工作的?如何编写的?我们也能自己写出帮助人们解决问题的“软件”吗?

就让我们也尝试一下“编写”程序,与计算机做更进一步的“交流”。

第1课 理解程序与程序设计

要开始学习编写计算机“程序”了!很兴奋吧!

提到“程序”,你是否能够理解什么是程序?“程序”在计算机系统中具有什么样的意义和价值?

学习目标:

1. 认识计算机组成的逻辑结构; 2. 认识计算机中数据的表示方法; 3.了解什么是程序; 4. 了解什么是程序设计; 5. 了解计算机语言的发展。

学习过程:

一、计算机系统再认识

我们非常清楚的知道一个完整的计算机系统包括“硬件系统”和“软件系统”两大部分。二者是不可分割的,没有软件系统,硬件就是一堆“废物”;没有了硬件,软件也只是无所依托的“符号幽灵”。 1.计算机组成的逻辑结构

就计算机的硬件系统而言,当今计算机的基本结构仍然是冯·诺依曼结构。 冯.诺依曼(Von Neumann)是美籍匈牙利数学家,这位伟大的人物在1946年提出了关于计算机组成和工作方式的基本设想。到现在为止,尽管计算机制造技术已经发生了极大的变化,但是就其体系结构而言,仍然是根据他的设计思想制造的。而冯.诺依曼也因其对计算机领域的卓绝贡献而被称为“计算机之父”。

冯·诺依曼设计思想可以简要地概括为以下三点:

(1)计算机应包括运算器、存储器、控制器、输入和输出设备五大基本部件。 如图1-1所示。

(2)计算机内部应采用二进制(0,1)来表示指令和数据。

(3)将编好的程序送入内存储器中,然后启动计算机工作,计算机勿需操作人员干预,能自动逐条取出指令和执行指令。 

图1-1 计算机的逻辑组成图

冯·诺依曼设计思想最重要之处在于明确地提出了“程序存储”的概念,他的全部设计思想实际上是对“程序存储和程序控制”概念的具体化。

迄今为止,计算机的工作原理仍然采用存储程序和程序控制原理,计算机一系列的工作是根据指令功能控制程序的执行来完成的。 2.计算机中数据的表示方法

由组成计算机硬件电路的特性决定,计算机中的数据由0,1两个二进制数表示。现代计算机不仅处理数值领域的问题,而且处理大量非数值领域的问题。这样一来,必然要引入文字、字母以及某些专用符号,以便表示文字语言、逻辑语言等信息。

那么,一个数字或者一个字符在计算机中具体是如何表示的呢?

目前国际上普遍采用的字符系统是ASCII码(美国国家信息交换标准字符码)。ASCII码规定8个二进制位的最高一位为0,余下的7位可以给出128个编码,表示128个不同的字符。其中95个编码,对应着计算机终端能输入并且可以显示的95个字符,打印机设备也能打印这95个字符,如大小写各26个英文字母,0—9这10个数字符,通用的运算符和标点符号+,-,*,/,>,=,< 等等。另外的33个字符,其编码值为0—31和127,则不对应任何一个可以显示或打印的实际字符,它们被用作控制码,控制计算机某些外围设备的工作特性和某些计算机软件的运行情况。 3.指令、程序和软件

指令是计算机要执行的一种基本操作命令,是对计算机进行程序控制的最小单位。

程序是一组指令序列,并取以文件名,称为程序文件。计算机的工作原理是先将需要执行的程序从外存中读入内存,由CPU负责逐条读取指令,然后再执行,直到遇到结束指令。

软件是指计算机程序及其有关的文档,它可以分为系统软件和应用软件两大类。

系统软件是负责管理、控制、维护、开发计算机的软硬件资源,提供用户一个便利的操作界面和提供编制应用软件的资源环境。其中最主要的是操作系统,其他还有语言处理程序、系统实用程序、各种工具软件等。

操作系统(OS)是对所有软硬件资源进行管理、高度及分配的核心软件,用户操作计算机实际上是通过使用操作系统来进行的,它是所有软件的基础和核心。

应用软件是为解决实际问题而专门编制的程序,如字处理软件(WORD)、辅助设计软件(AutoCAD)、绘图计算软件(几何画板)、计算机维护软件(Norton)、杀毒软件(KV3000)等。

应用软件与系统软件的关系如下图1-2 所示:

图1-2 应用软件与系统软件关系

有人说,软件是看不见和摸不着的。因为软件是思想,规则,逻辑。本身是抽象的,确实不可触及。但软件总是要有载体来存放,要有表达或表现方式,这些使得它们变得形象具体起来。因此,也可以说程序是一组按照一定的逻辑进行组合的指令。 4. 计算机的工作过程 了解了“程序存储”, 再去理解计算机工作过程变得十分容易。如果想叫计算机工作,就得先把程序编出来,然后通过输入设备送到存储器中保存起来, 即程序存储。接下来就是执行程序的问题了。 根据冯.诺依曼的设计,计算机应能自动执行程序,而执行程序归结为逐条执行指令。因此,计算机的工作过程就是执行程序的过程。 二、计算机语言的发展

1. 什么叫计算机语言

在日常生活中,人们要靠语言来交流思想、传递信息。

狭义上,我们讲的语言,汉语、英语、法语,它们有声音,是语言。小鸟之间唧唧喳喳,大概也是鸟类间的语言。但语言却不一定都有声音,如一些肢体动作语言,比如哑语、旗语等等,虽无声,但它们也是语言。

广义上讲,语言是沟通、交流的一种手段。基于此,可以说各种工具也都有自己的语言,当然也包括计算机。

一般地,越复杂的机器,人类与其沟通的语言也越复杂。譬如汽车,想驾驭它,就必须去驾校参加学习,学习各种和它沟通的方法。想一想,开车的时候,驾驶员的确是在和车进行沟通;如果想让汽车向左转,就应该向左转方向盘;想停车就应该踩刹车等等。

同样,要使计算机能够很好地为人类服务,人与计算机之间也要通过一种语言来互相沟通、互相交流,这种“语言”能够表达人类的思想,同时,还能被计算机所识别、接受,这种“语言”就叫做计算机语言。

计算机语言分为三类:机器语言、汇编语言和高级语言。

目前,科学家们正在研究新型电脑语言识别系统,也许将来有一天,人类会实现用自己的语言与电脑直接对话。 2.计算机语言发展简介

计算机语言的演化发展也从最开始的机器语言到汇编语言到各种结构化高级语言(如Pascal,C, C++, BASIC语言),最后到支持面向对象技术的面向对象语言(如Vb、Vc、Delphi、易语言等等)。

(1)计算机语言的发展

二十世纪四十年代当计算机刚刚问世的时候,程序员必须手动控制计算机。当时的计算机十分昂贵,想到利用程序设计语言来解决问题的人是德国工程师楚泽(konrad zuse)。几十年后,计算机的价格大幅度下跌,而计算机程序也越来越复杂。也就是说,开发时间已经远比运行时间来得宝贵。于是,新的集成、可视的开发环境越来越流行。它们减少了所付出的时间、金钱。只要轻敲几个键,一整段代码就可以使用了。随着C、Pascal、Fortran等结构化高级语言的诞生,使程序员可以离开机器层次,在更抽象的层次上表达意图。由此诞生的三种重要控制结构(顺序结构、选择结构、循环结构),以及一些基本数据类型都能够很好的开始让程序员以接近问题本质的方式去思考和描述问题。随着程序规模的不断扩大,在60年代末期出现了软件危机,在当时的程序设计模型中都无法克服错误随着代码的扩大而级数般的扩大,以至到了无法控制的地步,这个时候就出现了一种新的思考程序设计方式和程序设计模型-----面向对象程序设计,由此也诞生了一批支持此技术的程序设计语言,比如c++,java,这些语言都以新的观点去看待问题,即问题就是由各种不同属性的对象以及对象之间的消息传递构成。面向对象语言由此必须支持新的程序设计技术。总之,计算机语言是不断发展变化的。

(2)计算机语言的发展现状

目前通用的编程语言有两种形式:汇编语言和高级语言。

汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。用汇编语言所能完成的操作不是一般高级语言所能实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。

高级语言是目前绝大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,编程者也就不需要有太多的计算机硬件专业知识。

高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,如目前流行的vb、vc、foxpro、delphi等,这些语言的语法、命令格式都各不相同。

高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为两类:解释类和编译类。

(3)计算机语言的发展趋势

从计算机诞生至今,计算机自硬件到软件都是以印欧语为母语的人发明的。所以其本身就带有印欧语的语言特征,在硬件上cpu、i/o、存储器的基础结构都体现了印欧语思维状态的“焦点视角”,精确定义,分工明确等特点。计算机语言也遵照硬件的条件,使用分析式的结构方法,严格分类、专有专用,并在其发展脉络中如同他们的语言-常用字量和历史积累词库量极度膨胀。实际上,计算机硬件的发展越来越强调整体功能,计算机语言的问题日益突出。为解决这一矛盾,自六十年代以来相继有500多种计算机语言出现,历经五代,至今仍在变化不已。

汉语没有严格的语法框架,字词可以自由组合、突出功能的整体性语言。在计算机语言问题成为发展瓶颈的今天,汉语言进入计算机程序设计语言行列,已经成为历史的必然。

“易语言”是目前我国自主开发,一种全可视化、全中文的编程工具。我们就选择这一工具作为我们学习编程的载体。

无论选择哪种语言都只是编写程序的工具,而编写程序的思想是一致的。

第2课 认识程序设计工具

程序用计算机语言写成。编程的实质就是用计算机语言来表达解决问题的逻辑。

学习目标:

1. 认识机器、汇编和高级语言; 2. 认识“易语言”的工作环境; 3.了解“易语言”的特点;

4. 了解对象、属性、事件、事件驱动含义; 5. 学会创建对象的方法;

6. 学会打开和运行一个“易”程序。

学习过程:

一、语言和实现语言的工具 1. 机器语言

计算机的机器语言,必须符合计算机的硬件特点。越符合机器的特点的同时也就越不符合人类的特点。

因为,数据在计算机中使用二进制数表示(0、1)。所以,机器语言是用二进制代码表示的。机器语言尽是0和1,那么是不是可以随便写一串0和1就算是程序呢?不是。就像汉语是由汉字组成,可要是说下面这一串汉字:

“程序我学习要写”

肯定看不懂,所以,语言是有规则的。

机器也有自己固定词汇,在机器语言里,称为机器指令,它是计算机的设计者通过计算机的硬件结构赋予计算机的操作功能。

程序是由指令及数据组成。这些指令是一些固定的0和1的组合(不同产商不同型号的机器,其指令又有不同)。

事实上,计算机里的所有数据,无论是一个程序,一篇文稿,一张照片,一首MP3,最终都是0和1。

世界就是这样奇妙。万事万物五彩缤纷,但进了计算机,却只是些0和1的组合。

例:

已知b 等于 1; c等于2; 然后计算 b + c 值,并将该值赋给 a

这样的一个问题,用机器语言写程序(不同机型不一样,这里只是示例) 如下图1-3所示:

10001010 01010101 11000100 00000011 01010101 11000000 10001001 01010101 11001000 图1-3 机器语言程序示例

用机器语言编写程序,编程人员要首先熟记所用计算机的全部指令代码和代码的涵义。编写程序花费的时间往往是实际运行时间的几十倍或几百倍。而且,编出的程序全是些0和1的指令代码,直观性差,还容易出错。现在,除了计算机生产厂家的专业人员外,绝大多数程序员已经不再去学习机器语言了。 2. 汇编语言

10101101 、 10010101,这样的代码即不容易记,也易写错。所以很自然地,出现了用符号来表示这些固定的二进制指令的语言,这就是汇编语言。

对于上面的例子,已知b 等于 1; c等于2; 然后计算 b + c 值,并将该值赋给 a 。 用汇编语言可以写成如图1-4所示的形式:

mov edx,[ebp-0x3c] add edx,[ebp-0x40] mov [ebp-0x38],edx 图1- 4 汇编语言示例 汇编语言仅是机器语言的一种助记符,没有本质的区别。无论是机器还是汇编语言,都不易掌握。

3. 高级语言

汇编语言和机器语言虽然很难记难写,但它们的代码效率高,占用内存少,这相当符合计算机发展之初的存储器昂贵,处理器功能有限等硬件特点。

但随着计算机的硬件飞速发展,功能越来越强大。各种高级语言便接二连三地出现了。

对于上面的例子,用高级语言(以Basic语言为例)可以写成如图1-5的形式:

b=1 c=2 a=b+c 图1- 5 高级语言示例

高级语言“高级”在何处呢?前面我们说过,一门计算机语言“越符合机器的特点,同时也就越不符合人类的特点” 。所以,高级语言就高级在它

总是尽量接近我们人类的自然语言和思维方式。从示例程序是不是很容易看出这一点?

用计算机高级语言写成的代码被语言的实现工具(Pascal ,Basic,c,VC,VB,Delphi,或C++ Builder、易语言等等)转换成计算机能直接识别的机器语言。这就完成了人与机器在程序制定上的最后沟通。

[说一说]

对比同一问题,三种不同语言的写法,说一说你对三种语言的体会和认识。

二、认识易语言工作环境 1. 软件安装

易语言的安装和许多软件的安装没有什么不同。双击易语言的安装文件后,按照提示步骤操作即可。

2. 工作环境

(1)运行易语言后,出现如图1-6所示的易语言启动对话框

是支持在windows下弹出窗口及组件等标准的32位windows程序,也称易程序。

图1- 6 易语言启动对话框

(2)选择“windows窗口程序”项,单击“确定”按钮,打开易语言主界面,如图1-7 所示:

启动窗口:是提供给程序设计者设计人机交互界面的;在这里根据问题的需要;设计者使用组件箱中的工具在窗口上合适的位置创建所需对象。

组件箱:分类列出了易语言常用的组件。

工作夹:包括支持库选择夹、程序选择夹和属性选择夹。支持库选择夹显示了易语言的命令分类、库定义数据类型和库定义常量;程序选择夹中显示了一个程序的资源列表;属性选择夹中列出了组件的属性。

状态夹:显示了提示信息,编译时的输出信息,以及调试时的调用表信息等。

启动窗口

工作夹

组件箱

属性列表

状态夹

图1-7 易语言主界面

3.易语言特点

以问题,已知b 等于 1; c等于2; 然后计算 b + c 值,将该值赋给 a 的并将计算结果显示给用户的易程序为例,如图1-8所示。

启动窗口 运行效果

编写代码的窗口

图1-8 易程序示例

(1)体会易程序的特点

? 启动易语言;

? 执行“程序”?“打开”命令,在配套素材的本课文件夹中打开“计算1+2”程序文件。

? 单击工具栏中的“运行”按钮,体会一下程序运行和该程序所做的工作。

我们来分析一下示例程序:

? 界面上只有一个“标签”对象,用来显示计算结果;

? 当执行程序时,系统引发了“__启动窗口_创建完毕”事件,导致该事

件所对应的事件过程被执行;该事件过程作了一个“1+2”的计算,并把计算结果显示在标签中。

? 运行效果,就是我们在界面上看到的,计算结果“3”。 (2)对象的属性

在启动窗口创建了具体对象后,对象以什么样的形像呈现给用户,就像人有不同的名字、相貌各异、着装不同一样,对象也可以根据需要以不同的形象呈现给用户,这些不同的特征就由该对象不同的属性值决定。

设置对象属性的方法有两种,一是在界面设计时,通过属性列表进行设置;二是在代码窗口中通过命令,在程序执行过程中进行设置。

不同的对象有各自独特的属性,但也有相同的属性,如每个对象都需要有名字以便相互区分,且不能重名,一般情况下,我们使用系统默认的名字就可以。

(3)对象的事件

把不同的对象放置在了窗口中,怎样和使用者进行交互呢?

还是从我们使用软件的角度去体会,以安装程序为例,如我们已经完成了一个步骤,想让机器进行下一步;一般情况下,界面上会提供给我们一个“下一步”命令按钮,用鼠标“单击”一下该按钮,程序就开始执行下一步工作了。注意,这个“单击”动作,就是用户和程序作的一个交互,只有用户作了这个动作,程序才会明白你的意图,这也就说该对象能够识别这个动作,在程序设计中把这些对象能够识别的由用户或系统触发的动作称为事件,如我们常常用鼠标左键的“单击”、“双击”、“移动”、“按下”、“抬起”等等动作,或者在键盘上的按键等都是一个具体的事件。

当在某个对象上发生了一个事件后,程序具体会做什么,就是程序设计者根据解决问题的需要,所编写的具体代码,也就是该事件的具体事件过程。

由此,我们可以看出该语言的主要特点是可视化的、面向对象的、事件驱动的。而具体的事件过程该如何编写,也就是如何把我们解决问题的思想用易语言的方式表达出来,是我们今后学习编程的重点内容。

[尝试和探索]

试着解释代码窗口中每一句话的含义。 表1-1 语句含义

语句 含义

b=1 c=2 a=b+c

标签1.标题=到文本

(a)

单元小结

本单元,在学习程序设计之前,理解了程序与程序设计的概念,对计算机系统有了更深刻的认识。简单了解计算机语言的发展历程,体会和认识了机器语言、汇编语言和高级语言的概念。最后,走进程序设计的环境——易语言应用软件,了解了它的工作环境和特点,为进一步学习程序设计打下良好的基础。

本单元知识概念图:

第2单元 程序设计初步

第3课 第一个易程序——基础知识

学习目标:

1. 了解易语言的一般数据类型; 2. 了解什么是常量、变量; 3. 了解程序设计的基本过程;

4. 认识标签对象,并学会对其进行属性设置; 5. 学会使用赋值语句; 6. 学会保存程序文件。

任务:编写一个程序,运行时,显示“欢迎使用易语言编程!”。

任务分析:

这是一个看上去极其简单的问题,但由于我们是第1次接触编程,要完成这个任务,实际上要解决的问题很多。

1. 要学习如何创建一个新的程序; 2. 根据需要进行界面设计; 3. 如何告诉计算机显示一句话; 4. 如何保存程序;

创建、保存、执行程序都是比较简单的操作;而其中的把人类的逻辑思想,表达成符合计算机语言语法规则的表达方式是需要花时间和不断练习才能掌握的。既然都是语言,我们当然可以参考一下学习汉语或英语的方法,要有一定的词汇量,要掌握句法等才能表达。计算机语言的学习也是大同小异的。

知识准备:

一个程序内部应包括两个方面的内容:一是数据的描述;二是操作步骤,即对程序动作的描述。 如:

我们用自然语言描述的问题 “已知b 等于 1; c等于2; 然后计算 b + c 值,并将该值赋给 a ?;用易语言来描述,如图2-1所示:

b 等于 1; c等于2; 计算 b + c 值,并将该值赋给 a b=1 c=2 a=b+c

图2-1 自然语言和易语言对比

1. 数据类型、变量、常量、表达式

从自然语言和高级语言的对比中可以看出,高级语言的描述比较接近人类的自然语言。许多做法也模拟了人类的思维模式和人脑的工作特征。如人类大脑在做计算时,首先要在记住参与计算的两个数,机器也需要先记住这两个数。

(1)变量及变量的命名方式:

计算机的“记忆细胞”就是他的存储器,在程序执行过程中,数据会被放在内存中,为了区分或者说找到数据放在了什么地方,要给该处空间命名,通过名字,就能找到这些具体的数据,这些被命了名的地址空间,称为“变量”。之所以叫变量,是因为程序执行过程中,其值可以发生改变的量。

在易语言中变量名字可以由字母、数字和下划线组成。如a1,b_1 ,abc等,也可以直接使用中文,如变量1、变量2等来命名。

(2)常量

相对于变量,在某个程序的整个过程中其值不变的量就被称为常量。 (3)数据类型

无论常量还是变量都有不同的数据类型,而 “abc”等就是文本型数据;易语言的基本数据类型中,常用的有数值型、逻辑型、文本型等,如 123 、1、2、“李丽”、“88489099”、“123”、True 、 False等。

(4)表达式

而所谓的表达式就是运算符、变量、字符、数字或对象等的组合。表达式可用来执行运算、操作字符或测试数据等等。如b+c ,这里的c,b可以是数值变量,也可以是字符变量。 2. 赋值语句

(1)普通变量的赋值

易语言中如何表达把一个具体数据存放到变量里呢?如图2-1所示的,如“b=1”,这里的b=1和数学里的意义不同,“=”在这里被称为赋值符号,表达的含义是把右侧的值赋给左侧的变量,更直接一点说,就是把赋值符号右侧的值,存储到左侧变量所标明的内存中。这就是易语言中用到的最基本的赋值语句:

赋值语句 格式: 变量=表达式 功能: 把右侧表达式的值赋值给左侧的变量。

如果,赋值语句右侧是一个表达式,如“a=b+c”,要先计算出b+c的值,再将该值赋给变量a。

在书写表达式和计算的时候,和数学的道理是相同的。也就是说只有相同类型的数据才能进行计算,针对于数学计算,运算符也仅仅是形式上不同。

(2)对象属性的赋值

如图2-1 所示,计算完成后,把结果3赋给了变量a,也就是把数据存放在了内存中。在内存中的数据,用户是看不见的。要想让用户看到具体的结果,应该把结果显示在人机交互的界面中;也就是设计时的启动窗口中,一般情况下,我们使用标签对象显示结果。

一个对象有不同的属性,可以用“对象名.属性”来表示,如“标签1.标题”;可以根据需要修改属性的具体值。因此,对象的属性也是个变量。

既可以在设计界面时对属性进行赋值,也可以在程序执行过程中给对象属性赋值。赋值的方法和前面介绍的普通变量赋值相似,相对于对象的属性,可以把用文字、字母、数字等表示的变量叫做简单变量。

对象的属性赋值 格式: 对象名.属性=表达式的值 功能: 把右侧表达式的值赋给左侧的对象的具体属性。 无论是简单变量还是对象属性,以及具体的表达式运算,都要注意数据类型要匹配;如2-1所示计算的结果是数值3,要放到标签的标题属性中显示给用户,而标签的标题是文本型的,二者的类型是不匹配的不能直接赋值;需要把数值转换成文本才符合易语言的语法规则。

易语言提供了许多命令,如“到文本”命令,就可以完成数值到文本的转换工作。现在,可以把“把变量a的值在标签1的标题中显示出来”,描述成易语言就是:

标签1.标题= 到文本 (a)

操作指南:

一、界面设计

要显示“欢迎学习易语言”,这样的一串文字,可以选择“标签”组件,在窗体上创建一个大小合适的标签对象。

1.新建程序

打开“程序”菜单,执行“新建”命令,建立空白的windows程序。 2.在窗口中创建标签对象

(1)在组件工具箱中,单击选中“标签”组件;

(2)在启动窗口中,按住鼠标左键拖动出合适的大小;

(3)释放鼠标左键,画出具体的标签对象,对象创建以后,可以根据需要调整大小。

选中标

签组件

图2-2创建对象

3. 设置属性

表2-1 设置对象属性

对象名称 属性 标签1 标题

设置方法如图2-3所示

①将左侧工作夹切换到属性选项卡; ②选择组件“标签1”;

③选择标签1的标题属性,清空;

属性值 空

默认状态下显示的内容 设置为空

图2-3 设置标签对象的标题属性值

二、编写代码 1.有效事件

本任务要求,程序一运行,就在启动窗口中显示欢迎词。有效的事件就是程序一执行这一事件,也就是“__启动窗口_创建完毕”事件。 2.事件过程

(1)双击“启动窗口”后,打开代码编写窗口,其默认事件,就是“__启动窗口_创建完毕”事件,如图2-4所示。 程序的开始部分

(2)编写代码

图2-4 打开代码编写窗口

在窗体上显示一句欢迎词“欢迎学习易语言编程!”用易语言描述为:

标签1 .标题=“欢迎学习易语言编程!” 在代码窗口中,书写出来,如图2-5 所示,

用户界面设计

运行界面

代码编写窗口

图2-5 我的第1个易程序

三、保存文件

1. 打开“程序”菜单,执行“保存”命令,打开“保存为”对话框; 2.找到保存文件的文件夹位置,给文件命名为“欢迎”,如图2-6所示,

图2-6 保存文件

3.单击“保存”按钮,完成保存工作。

尝试探索:

1. 说一说易程序的文件扩展名是什么?

2. 为什么本例的赋值语句中没有使用“到文本”命令?

3. 试一试把显示的文字设置成红色,窗体的背景设置成蓝色。

实践任务:

1. 编写一个程序,运行时,显示数字 5678,效果如图2-7a所示。 2. 编写一个程序,运行时,显示数字 666,效果如图2-7b所示

图2-7(a) 示例效果

图2-7(b) 示例效果

第4课 货款计算1—— 顺序结构

【学习目标】

1.了解标签、编辑框组件的基本功用。 2.初步理解顺序结构概念。

3.学会文本和数值转换命令的应用。

【任务】

为售货员编写一个简单的收银程序,以单件商品的结算为例,示例程序界面如图2-8所示。签字笔单价为2元/支,输入购买数量后,单击窗口即可计算出应付款。

图 2-8 程序界面示例

【任务分析】

1.在购买商品时,首先要知道购买数量,因此,在界面上一定要创建一个能够接收数据输入的对象;

2.要使界面清晰、交互性强就要设置适当的提示信息;如示例效果中的“签字笔”、“请付款”等字样; 3.当用户用鼠标单击窗口时,计算机应当先提取到用户输入的购买数量,然后,计算应付款,即“购买数量×价格”,最后,把应付款显示给用户。 4.对于显示出来的计算结果,不希望被用户改动,因此在界面设计选择组件时,要注意这一点;

【知识准备】

1. 编辑框的功能

接收键盘的数据输入,通常选择使用基本组件中的编辑框。输入的内容存储在编辑框的“内容”属性中。编辑框组件只有“内容”属性,没有“标题”属性。 “内容”属性允许在程序运行中由用户直接进行修改,从而实现人机交互。 2.转换命令

在计算中为了保持数据类型的匹配,经常使用转换命令。

(1)到数值():将()内数值型的数据转换为文本型,返回包含于文本内的数值。

格式: 到数值 (待转换的数据)

如:变量1=到数值(编辑框1.内容)或 到数值(编辑框1.内容)*4 (2)到文本():将()内数值型的数据转换为文本型,返回一个文本,代表指定数值、逻辑值或日期时间被转换后的结果。 格式:到文本(待转换的数值) 如:标签1.标题=到文本(5)

【操作指南】

一、界面设计

1.选择组件创建对象

参考示例程序,选择基本组件标签和编辑框,创建如图2-9所示。

_启动窗口

编辑框1

标签1

标签3

标签2

图2-9 界面设计

2、设置属性

(1)属性值参考下表

组件 _启动窗口 标签1 标签2 标签3 编辑框1

注意:

表2-2 属性设置表 属性 属性值 标题 小小“收银员” 标题 签字笔: 字体 楷体、粗体、四号 标题 请付款: 字体 楷体、粗体、四号 标题 空 边框 凹入式 内容 空

凡是以短下划线?_?开头的名称都是具有特定意义的名称。名称为?_启动窗口?的程序窗口,易语言的程序在运行起来后会自动载入并显示,不要更改这个窗口的名称。

(2)设置方法(以设置“标签1”的属性为例) ①将左侧工作夹切换到属性选项卡; ②选择组件“标签1”;

③选择标签1的标题属性,修改文字;

④选择标签1的字体属性,打开字体对话框,修改字体、字形和大小。

图2-10 设置组件标签1的属性

参考如上方法,按照属性值参考表依次设置各对象的属性值。 二、编写代码 1.有效事件

当在编辑框中输入购买数量后,单击“窗口”组件,引发“鼠标左键被按下”事件,此时程序执行该事件过程中的具体计算付款的代码。 (1)按如图2-11所示的方法选择具体事件。

1.选择对象

2.选择 “鼠标左键被按下” 事件

图 2-11选择事件

(2)选择具体事件后,切换到如图2-12所示的界面。

图2-12 选择事件后的界面 图2-13 输入代码后的界面

2、事件过程

当该事件发生时,计算机要做的事情我们已经分析的很清楚。 (1)先提取用户输入的购买数量

(2)然后,计算应付款,即“购买数量×价格”; (3)最后,把应付款显示给用户。

这三步工作,可以用如下的易语言描述给计算机,输入代码后的界面如图2-13所示:

变量1=到数值 (编辑框1.内容) 变量2=变量1× 2 标签3.标题 = 到文本 (变量2)

在输入代码时,如果输入的对象名称在窗口中存在,在输入符号“.”以后,就会自动弹出该对象的属性列表,如图2-14所示,可以直接在列表中选择相应的属性。

图2-14 在浮动菜单中选择属性

三、调试修改程序

单击工具栏上的“运行”按钮

,运行程序。输入不同的值,测试程序的正

确性。如有问题进行相应的修改。

四、保存文件

将程序以文件名“小小收银员”保存到本机自己的文件夹中。

【尝试探索】

互换代码中第1行和第2行的位置;测试一下计算结果是否正确?说一说为什么?

【实践任务】

1.设计一个温度转换程序,输入摄氏温度,可以转换为华氏温度。 转换公式为:F=C*9/5+32(F:代表华氏温度,C:代表摄氏温度) 2.设计一个帮助家长计算电费的程序。(电费0.48元/度) 3.设计一个可以计算并联电阻阻值的程序。

(a)温度转换

(b)收电费 图2-15 参考示例

(c)求并联电阻

第5课 货款计算2——分支结构1

【学习目标】

1.了解分支结构;

2.初步理解使用分支结构解决问题;

3.掌握“如果”结构分支语句的语法格式、意义和使用; 4.能构建简单的关系表达式; 5.学会命令按钮的使用。

【任务】

商场为了促销,采用的策略是购买签字笔数量超过(不含20支)20支,则签字笔的单价变为1.5元/支。请修改程序“小小收银员”程序,实现这一功能。参考示例如图2-16所示。

图2-16 程序界面示例

【任务分析】

1.根据促销策略,在计算付款时要根据购买的数量来决定签字笔的单价。。假设用户购买的数量为x,依据销售策略 X>20,则单价为1.5元/支,否则单价仍为2元/支。这里我们要解决的问题就是要了解易语言如何描述x>20,又如何实现判断的。

2.按照我们使用应用软件的习惯,执行命令通常使用命令按钮,一般单击命令按钮,通知计算机执行要做得工作,所以可以在界面设计时,添加一个命令按钮。

3.中国人习惯看到具体显示是应该支付多少“元”,所以,在写程序的时候要注意到这些细节,为用户着想。

【知识准备】

1.关系运算符和关系表达式

“购买数量超过20”,很容易把它用数学语言描述为 x>20 ;在易语言中,要把这个意思描述给计算机,与数学的方法也很相似,使用的是关系运算。 (1)关系运算符

关系运算符是对数值或其他值进行操作,并得到逻辑结果的一种运算符。包括:〈、〉、=、〈=、〉=、〈〉。如表2-3所示:

表2-3 关系运算符及其含义 关系运算符 在易语言中的表示 含义

〈 小于 〉 大于 〈= 小于或等于 >= 大于或等于 = 等于 <> 不等于

注意:关系运算符的优先级低于算术运算符(算术运算符是指用来表达任何复杂的数学表达式,如:+、-、*、/等)。

(2)关系表达式

使用关系运算符把两个算术表达式(或字符串表达式)连接起来的式子,被称为关系表达式。关系表达式的值是逻辑值,结果只能为“真”或“假”。如果表达式的条件满足,关系表达式的值为“真”,否则关系表达式的值为“假”。 如 用户购买的数量是35支(x=35),则 x>20 的结果就是“真”。 2.分支结构

在现实生活中,人们常常是根据具体情况作出相应的判断,然后决定做什么事情。如“如果明天天气好,就去公园玩;否则,就留在家里看电视”、“如果用户购买签字笔的数量超过20支,就1.5元一支;否则,2元一支”。这样的判断,在易语言中,通过分支结构告诉计算机。从而实现逻辑判断,赋予计算机“判断”的能力。

2.分支控制流程命令—如果()

根据表达式的值有条件地执行一组语句。语法格式为:

命令参数()为一个条件表达式(或称为关系表达式),值为逻辑型数据,即“真”或“假”。

如果条件表达式的值为真,即条件成立(为真),则程序顺序执行如果()的下一行代码;若条件不成立(为假),则程序跳转到左箭头代码行执行。

例如:

如果标签的标题属性值为空,则显示文本“你好”;否则显示文本信息“再见”。

3.字符串的连接运算

将要显示的字符常量使用英文状态下的双引号引上,可以使用连接符“+”连接。以下两条语句的执行结果相同。

如:标签1.标题=“美丽的祖国”

标签1.标题=“美丽的”+“祖国”

【操作指南】

一、界面设计 1.添加对象

打开“货款计算”程序,调整原对象的位置,添加新“按钮”对象,如图2-17所示。

图2-17 界面设计

2、设置属性

属性值参考下表。

组件 _启动窗口 标签1 标签2 标签3 编辑框1 按钮

表2-4 属性设置表 属性 属性值 标题 小小“收银员” 标题 签字笔: 字体 楷体、粗体、四号 标题 请付款: 字体 楷体、粗体、四号 标题 空 边框 凹入式 内容 空 标题 计算货款

二、编写代码 1. 有效事件

输入购买数量后,单击“计算货款”按钮,引发“按钮”组件的“被单击”事件,此时程序应判断输入的数量是否超过20支,并执行相应的代码。

在事件下拉列表中,选择按钮“被单击”事件,或者双击按钮,切换到“_按钮1_被单击”子程序界面。

2.事件过程

在“_按钮1_被单击”的事件过程中,要通知计算机做如下几件事情: (1)首先,要提取用户输入的数据; (2)判断输入的数据符合什么条件;

(3)依据条件的结果执行相应的语句

代码的输入方法:

(1)按照做事的先后顺序输入相应的语句,首先要提取用户输入的数据。如果,把提取的数据放到变量“变量1”中,则语句描述应为

变量1=到数值(编辑框1.内容)

(2)使用系统的流程控制

对于控制程序结构的,选择语句可以使用系统提供的流程输入。

图2-18 选择如果流程控制

(3)程序代码,如图2-19所示。

图2-19 参考代码

三、调试修改程序

分别输入,15和28 ,按功能键“F8”单步调试,观察和体会“如果()”选择结构的执行过程,体会在“如果()”结构中,条件的意义。

四、保存文件

执行“程序”→“另存为”命令,将该程序换名为“货款计算2”保存起来。

【尝试探索】

易语言还有另一种控制流程“如果真()”命令,请使用系统提供的帮助,了解“如果真()”,并自己尝试修改程序。

【实践任务】

1.写出下表2-5关系表达式的值。

表2-5 计算关系表达式 关系表达式 值 100<90 12+15>=27 2*90=180 “初一”=“初二”

2.根据描述,写出关系表达式。

(1)变量1的值大于56 __________________________________________ (2)变量1的值不等于编辑框1的内容属性值 _______________________ (3)输入到编辑框1的内容是否能被100整除_____________________________ (4)标签1标题属性的值与“程序设计”是否相同__________________________

3. 试一试,看看下面的程序代码错在哪,并提出修改方案。 表2-6 错误代码和修改方案

错误代码 错误原因 如何修改

3.程序设计

某车站行李托运收费标准是:10公斤或10公斤以下,收费2.5元,超过10公斤的行李,按每超过1公斤增加1.5元进行收费。试编写计算托运费的程序。

第6课 购书付费——分支结构2

【学习目标】

1.巩固对选择结构的理解;

2.了解流程图的含义,使用流程图表述问题解决方法; 3.学会取整命令的使用。

【任务】

某学校七年级学生向某出版社邮购50本课外读物,每本书定价为7.5元。

出版社规定:邮购10本以下(包括10本)需另加邮购费3元;邮购10本以上(不包括10本)需另加书价15%的邮购费。在邮局汇款时,每100元汇款需付汇费1元(加1%汇费);汇款不足100元时,按100元汇款。

请设计一个计算所付购书款和汇费的程序。程序界面参考示例如图2-20所示。

图 2-20 程序界面参考示例

【任务分析】

1.问题解决方法的自然语言描述

首先需要先计算出购书所需的费用,然后根据费用,计算出需要交给邮局的汇费。把这个问题再进一步细化,就是:

第一步:判断出购书数量是否大于10本,如果大于10本,则汇款就要在购书总价的基础上加15%;否则,只需要在购书总价上加3元钱。

第二步:计算出购书所需的汇款后,需要要判断汇款是否超过100元,如果超过100元,则每100元加收1元汇费,否则不收汇费。

如何计算有几个100元呢?

方法有很多,最简单的是汇款除以100,如果能够整除,所得结果就是要交的汇费,否则,只取整数部分,小数部分免去不考虑。 2. 问题解决方法的流程图描述

当我们用自然语言描述一个相对复杂的问题解决方法时,看上去不够直观。如图2-21所示,用流程图描述的是同一个问题解决方法。流程图要直观、清晰的多,在问题分析时,我们经常使用流程来理清思路,描述想法。

开始 输入邮购数量 否 邮购数量是否超过10本 是 计算汇款(书价加3元),并显示 计算汇款(书价加15%),并显示 汇款除以100并取整,将值存入汇费变量 汇费变量是否为0 否 显示需交的汇费 是 显示信息“不交汇费” 结束

图 2-21 算法的流程图描述

【知识准备】

1.流程图

流程图就是用简单的几何图形、流程线和一些必要的文字说明来描述任务完成的过程。用流程图表示算法,直观、形象、容易理解。

流程图中常用的几何图形和流程线的含义如下表:

框图 表2-7 框图的描述含义

含义

起止框,表示算法的开始和结束。 输入和输出框,表示数据的输入和输出操作 判断框,表示根据条件进行判断,选择不同的出口

处理框,表示对数据进行处理和操作 流程线,表示程序的走向 连结点,表示流程间的相互连接

2.取整命令

功能:返回一个小数的整数部分。如果给定小数为负数,则本命令返回小于或等于该小数的第一个负整数。

格式:取整(欲取整的小数) 例如,通过取整命令,取整(7.8),将 7.8 转换成 7,取整(-7.8)将 -7.8 转换成 -8。

【操作指南】

一、界面设计 1.选择组件

(1)用户要输入购买的图书的数量,需要在界面上,提供编辑框对象; (2)程序的提示信息、显示汇款和汇费都不需要用户修改,可以使用标签对象; (3)执行计算、判断等操作,使用按钮对象。 参考界面如图2-22所示。

图2-22 (a) 界面设计 图2-22(b) 设置属性后

2.设置属性

属性值参考下表2-8。

表 2-8 属性设置表

组件 属性 属性值 _启动窗口 标题 邮购课外读物 标签1 标题 邮购本书 标签2 标题 购书汇款 标签3 标题 需付汇费

标题 空

标签4

边框 凹入式

标签5

背景颜色 白色

编辑框1 内容 空 按钮 标题 计算付费

二、编写代码 1.有效事件

用户通过单击“计算付费”对象,来引发计算过程被执行,所以,有效事件是“_按钮1_被单击”事件。

在对象列表中选择“按钮1”,在事件下拉列表中选择“被单击”事件。

2.事件过程

(1)插入局部变量

如果,设计好了需要使用几个简单变量,可以先进行变量定义。只在本事件过程中使用的变量,可以将其定义为局部变量。 ①执行“插入”→“局部变量”命令;

②输入变量名称和数据类型,也可以从数据类型的浮动菜单中选择,如图2-23所示。

图 2-23 插入局部变量-汇费变量

(2)程序参考代码

图2-24 参考代码

三、调试修改程序

运行程序,输入不同的值如8,45,验证程序的正确性。如图2-25所示。

结果1

图2-25 程序运行结果图

结果2

四、保存文件

以“邮购计算”为名,保存程序。

【尝试探索】

1.如果将变量插入到“__启动窗口_创建完毕”子过程中,程序还能不能正常运行?为什么?

2. 如果程序运行时,出现这样的提示信息“错误(10006): 指定变量名称“汇费变量”未找到”,造成这种错误是什么原因,如何修改?

3. 说一说:一个班有五十个同学,假如你是班长负责这次邮购课外读物,你选

择一次购买50本还是每次买十本,分五次购买,为什么? 4. 如果我们想简化程序代码,请试一试如何实现。

【实践任务】

1.用流程图描述算法。

北京已经取得了2008奥运会主办权。回忆一下国际奥委会对遴选出的五个城市进行投票表决的操作程序:首先进行第一轮投票,如果有一个城市得票超过一半,那么这个城市取得主办权;如果没有一个城市得票超过一半,那么将其中得票最少的城市淘汰;然后重复上述过程,直到选出一个城市为止。你能利用流程图叙述上述过程吗?

2.程序设计

(1)设计一个计算任意一元二次方程根的程序(ax2+bx+c=0)。

提示:

①用户可以通过键盘输入系数a、b及常数项c; ②如果b2-4ac<0,则显示提示信息“无实根”。

③在易语言的“支持库”的“算术运算”类中可以找到“求平方根”命令。

(2)设计一个可以判断大小的程序,要求,输入三个数,显示其中最小的。 (3)设计判断密码的程序,依据用户输入的密码的正确与否,显示相应的判断信息。

提示:

①用户输入的密码用“*”显示(设置方法:将编辑框的输入方式属性改为“密码输入”,在“密码遮盖字符”属性出输入“*”);

②用于比较的密码字符可以直接编写在程序代码中。

第7课 数列求和——循环结构1

【学习目标】

1.初步理解循环结构的功能; 2.准确地定义数据类型;

3.初步掌握循环控制流程“变量循环首”命令的用法;

【任务】

设计一个计算数列1,2,3,?,n的和值的程序。程序参考界面如图2-26所示。

图 2-26 程序界面示例

【任务分析】

对于任务中的求和计算,人们最最直接的计算方法就是从左至右一项一项的相加。

例如,要计算1+2+3+4+5,计算过程应该是:

这样的计算过程虽然简单,但却很繁琐,也容易出错;人们为了解决这样的问题,总结和发明出很多的计算方法,如等差数列的求和公式,运用公式可以很轻松的解决这类的计算问题。

计算机是在人的意志下工作,我们当然可以直接把公式表达给它,但有些时候,我们也要充分的利用计算机本身的特点,比如它的计算速度,它工作得耐心(即便总是计算1+1,也不知道“烦”),它的计算准确性等等。

这个任务,我们就可以不使用公式,而直接利用计算机和计算机语言的特点来解决。

从示例的计算过程中,可以用下面的代码实现计算要求:

累加变量=0

变量1=1 累加变量=累加变量+1 变量2=变量1+2 累加变量=累加变量+2 变量3=变量2+3 累加变量=累加变量+3 变量4=变量3+4 累加变量=累加变量+4 变量5=变量4+5 累加变量=累加变量+5 ……

执行如上程序可以得到累加的和,但是,我们会发现输入和编辑的工作量会很大,做的工作却很相似,比较繁琐。这仅是当n=5时,如果n=100,甚至n=1000时,怎么办呢?

细心观察如上语句就会发现:“新的部分和”总是等于“前一个部分和”再加上“新的项”。而“新的项”总是等于“前一项”加上“1”。这样的计算反复进行,直到把最后一项加进来,得到最终结果为止。

累加变量=累加变量+加数变量 加数变量=加数变量+1 该问题的处理过程可以用2-27 所示的流程图直观表示:

输入n的值 累加变量=0,加数变量=1 是 加数变量是否超过输入的数值n 否 累加变量=累加变量+加数变量 加数变量=加数变量+1 输出累加的和 图2-27 累加和算法的流程图

【知识准备】

1.循环结构

循环结构是程序设计的另一种基本结构,当需要计算机重复做某些事情时,可以使用循环语句来控制实现,程序的执行发生了自下而上的重复,某一程序段将重复执行。

循环结构是为了解决那些反复处理相似的过程而设计的,利用循环语句简化了代码,一方面避免了程序员输入大量语句的繁复劳动,另一方面,使程序结构简单、清晰、易读。

在易语言中,循环语句有多种格式,在知道循环的初值和终值的情况下,使用变量循环首语句。 2.“变量循环首”命令

格式:变量循环首(变量起始值,变量目标值,变量递增值,[循环变量])

各参数的含义:

变量起始值:必需的;整数型,初始值为“1”。定义循环变量的起始数值。

变量目标值:必需的;整数型。定义循环变量的目标数值,在循环首部如果发现变量值已超出此目标值时将跳出循环。

变量递增值:必需的;整数型,初始值为“1”。每次执行到循环尾部时都将把此值加上循环变量然后再赋值给循环变量,此值可为正数或负数,如为正数则递增,为负数则递减。

循环变量:可选的;整数型,参数数据只能提供变量。本数值型变量将用作控制循环执行次数,在循环尾部将自动递增或递减该变量内的数值。循环变量是记录变量起始值向变量目标值每次递增后的数值。如果被省略,命令将自动使用内部临时变量。

执行过程:

(1)用变量起始值的值初始化循环变量,即循环刚开始时循环变量的值; (2)判断循环变量是否超越终值,如果超越则执行第(6)步,否则执行第(3)步

(3)执行循环体内的语句

(4)循环变量加上步长再赋值给循环变量 (5)重复执行第(2)步

(6)离开循环,继续执行循环语句后面的其他语句 注意:

(1)循环变量是否超越终值的意思有两种,如果步长为正数,则超越的意思为大于;如果步长为负数,则超越的意思是小于。

(2)步长的值可以是正数,也可以是负数,如果步长为1,则可以省略不写。

例:在编辑框1中显示1-10的10个自然数。 .变量循环首 (1, 10, 1, 循环变量)

编辑框1.内容 = 编辑框1.内容 + 到文本 (循环变量) .变量循环尾 ()

【操作指南】

一、界面设计

1. 选择组件创建对象

(1)用户要输入n的值,需添加一个编辑框对象;

(2)程序的提示信息和最终的累加和,可以使用标签对象; (3)执行累加操作,可以使用按钮。 程序界面参考,如图2-28(a)所示。

图2-28(a) 界面设计 图2-28(b) 设置属性后

2.设置属性

属性值参考下表。

组件 _启动窗口 标签1 标签2 标签3 标签4 编辑框1 按钮

二、编写代码

表 2-9 属性设置表 属性 属性值 标题 求1+2+3+...+n的和? 标题 计算1+2+3+...+n的和 字体 楷体,粗体,四号 标题 输入n的值 标题 计算结果 标题 空 边框 凹入式 内容 空 标题 计算

1.有效事件

程序运行时,用户通过单击“按钮”对象,执行计算。所以,选择“按钮” 的“被单击”事件,切换到“_按钮1_被单击”子程序界面。

2.事件过程

(1)插入局部变量

根据程序需要,插入局部变量:终值变量、循环变量、累加变量、加数变量等,其数据类型设置为整型。

(2)程序代码

终值变量 = 到数值 (编辑框1.内容) ’循环的终止变量为输入的n的值 累加变量 = 0 ’部分和的初值 加数变量 = 1 ’ 第一个加数 .变量循环首 (1, 终值变量, 1, 循环变量) 累加变量 = 累加变量 + 加数变量 ’部分和加上加数 加数变量 = 加数变量 + 1 ’加数加1,不断增大 .变量循环尾 () 标签4.标题 = 到文本 (累加变量) ’显示累加结果 提示:变量循环首命令可以直接输入,也可以通过使用插入相应的控制流程实现。

思考:

①累加变量的初值为什么赋为0?可以是其它数值吗?

②能不能把“累加变量=0”这条语句,放置在循环体内,为什么?

三、调试修改程序

运行程序,输入不同的值,验证程序的正确性。如图2-29所示。

结果

图2-29 程序运行结果

四、保存文件

以“数列求和”为名,保存程序。

结果

【尝试探索】

1.如果去掉程序中的循环变量对程序是否有影响? 2.如果去掉加数变量,能否修改程序并实现相同的功能?循环变量在程序中的变化是什么?

输入下面的代码,观察运行结果。

终值变量 = 到数值 (编辑框1.内容) ’循环的终止变量为输入的n的值 累加变量 = 0 ’部分和的初值 .变量循环首 (1, 终值变量, 1, 循环变量) 累加变量 = 累加变量 + 循环变量 ’部分和加上加数 .变量循环尾 () 标签4.标题 = 到文本 (累加变量) ’显示累加结果

【实践任务】

1.修改本课的程序,计算1000以内奇数的和。 2.编程计算1×2×3×?×n的值(0

如图2-30所示将自然数从小到大沿三角形的边成螺旋状,排列起来,2在第一个拐弯处,4在第2个拐弯处,7在第三个拐弯处,?? 请设计一个程序,可以计算任意一个拐点处的值是多少。

图2-30

第8课 棋盘中的麦粒——循环结构2

【学习目标】

1.进一步理解循环结构的功能;

2.掌握循环控制流程“变量循环首”命令的用法; 3.认识“求次方”命令。

【任务】

在印度有一个古老的传说:

舍罕王打算奖赏国际象棋的发明人——宰相西萨〃班〃达依尔。国王问他想要什么,他对国王说:?陛下,请您在这张棋盘的第1个小格里,赏给我1粒麦子,在第2个小格里给2粒,第3小格给4粒,以后每一小格都比前一小格加一倍。请您把这样摆满棋盘上所有的64格的麦粒,都赏给您的仆人吧!?国王觉得这要求太容易满足了,就命令给他这些麦粒。当人们把一袋一袋的麦子搬来开始计数时,国王才发现:就是把全印度甚至全世界的麦粒全拿来,也满足不了那位宰相的要求。

那么,宰相要求得到的麦粒到底有多少呢?设计一个程序帮这位国王算一算。程序参考界面如图2-31所示。

图2-31 程序界面示例

【任务分析】

1.找规律

通过分析题目,可以看出,从第二格开始,麦粒数都是2的倍数,而且每增加一格,麦粒数就是上一格的2倍。

第1格:1粒 1=1=20 第2格:2粒 2=1*2=21 第3格:4粒 4=1*2*2=22 第4格:8粒 8=1*2*2*2=23 第5格:16粒 16=1*2*2*2*2=24) ??

第64格:?= 263

从变化规律可以看出,第n格的麦粒数,就是2(n-1)粒, 而我们要计算的

就是所有格子中麦粒的总数。求20+21+22+23+…+263的和?

如果从左至右,一项项相加,也就是反复计算:

麦粒数=麦粒数+当前格子里的麦粒数 2.计算方法可以用图2-32 所示的流程图直观表示:

麦粒数=0,变量初值=1 是 加数变量是否超过输入的数值64 否 麦粒数=麦粒数+当前格子里的麦粒数 格子数=格子数+1 输出总麦粒数 图2-32 求麦粒数算法的流程图

【知识准备】 1.“求次方”命令

功能:返回指定数值的指定次方。

格式:求次方(欲求次方数值,次方数) 参数含义:

欲求次方数值:指定欲求其某次方的数值。 次方数:指定对欲求次方数值的运算指数。

举例:

变量1=求次方(3,4),计算的是34,变量1的值为81。

2.数据类型

每一个变量除了有变量名外,还必须有数据类型,即确定变量能够存储的

数据的种类。 变量类型 表 2-10 常用变量类型及其说明 说明 短整数型 用16位(2个字节),表示范围为-32768到32767之间的整数 用32位(4个字节),表示范围为-2,147,483,648 到 2,147,483,647 之间的整数 用64位(8个字节),表示范围为-9,223,372,036,854,775,808 长整数型 到 9,223,372,036,854,775,807之间的整数 用32位(4个字节),表示范围为-3.402823×1038到3.402823小数型 ×1038之间的实数 双精度小用64位(8个字节),表示范围为-1.79769313486232×10308到数型 1.79769313486232×10308之间的实数 整数型 文本型 逻辑型 用作记录一段文本,文本由以字节 0 结束的一系列字符组成。 用32位(4个字节)表示逻辑值。逻辑值有两个,分别为真或假,其对应的英文常量名称为“true”和“false”。 【操作指南】

一、界面设计

1.选择组件创建对象

(1)程序的提示信息和最终麦粒数显示,可以使用标签对象; (2)执行累加操作,可以使用按钮。 程序参考界面如图2-33(a)所示。

2.设置属性

属性值参考下表。

对象 _启动窗口 标签1

图2-33(a) 界面设计 图 2-33(b)设置属性后

表 2-11 属性设置表 属性 属性值 标题 棋盘上的麦粒 标题 麦子数

标签2 按钮

标题 边框 标题 空

凹入式 计算

二、编写代码 1.有效事件

运行程序后,用户通过单击“按钮”对象,执行计算功能;所以“_按钮1_被单击”是有效事件,针对其事件过程编写代码。

2.事件过程

(1)定义局部变量

根据需要定义局部变量,“麦粒数”为“双精度小数型”、“循环变量”为“整数型”。

(2)程序代码

麦粒数 = 0 .变量循环首 (1, 64, 1, 循环变量) 麦粒数 = 麦粒数 + 求次方 (2, 循环变量-1) .变量循环尾 () 标签2.标题 = 到文本 (麦粒数) 思考:该程序执行完后,循环变量的值是多少?

三、调试修改程序

按F8功能键,单步调试程序,注意观察和体会循环结构的执行过程。

四、保存文件

以文件名“棋盘上的麦粒”为名,保存程序。

【尝试探索】

借助于“易语言知识库”,试用“判断循环首”命令改写程序。

【实践任务】

1.印度的古老传说:

在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针。印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片金片,这就是所谓梵塔。不论白天黑夜,总有一个僧侣在按照下面的法则移动这些金片:一次只移动一片,不管在哪根针上,小片必须在大片上面。当所有的金片都从梵天穿好的那根针上移到另外一根针上时,世界就将在一声霹雳中消灭,梵塔、庙宇和众生都将同归于尽。 请设计一个程序计算需要移动多少次?

2.1202年,意大利数学家斐波那契(Fibonacci)出版了他的《算盘全书》。他在书中提出了一个关于兔子繁殖的问题: 如果一对兔子每月能生一对小兔(一雄一雌),而每对小兔在牠出生后的第三个月里,又能开始生一对小兔,请设计一个程序计算,在假定在不发生死亡的情况下,由一对出生的小兔开始,50个月后会有多少对兔子?

单元小结

本单元,学习了程序设计的三种基本结构:顺序结构、分支结构和循环结构。作为程序设计基础,我们在学习这三种结构的过程中,学习了如何定义变量,如何对变量及属性进行赋值,如何应用易语言中的控制流程等等。同时,还学会了几个基本组件和实现相关功能的命令的使用。 本单元概念图:

第3单元 简单的应用

第9课 画同心圆

【学习目标】

1.掌握循环控制流程“计次循环”命令的用法; 2.初步了解画板组件的功能;

3.初步学会画图的方法(画点、画线、画矩形、画圆); 4.学会使用颜色常量。

【任务】

设计一个程序。在窗体上单击鼠标,以窗体的中心为圆心,画10个间距为10、颜色为红色的同心圆,最小圆的半径为10,绘图单位是象素点。

【任务分析】

这个任务看上去简单,画同心圆,但却有许多知识点需要解决。 1.坐标系问题

在平面上画图必须要了解坐标系,计算机屏幕的坐标系和我们数学熟悉的二维坐标系一样吗?单位是什么样的? 2. 画圆命令

画圆的命令是什么?颜色如何表达? 3.多个圆可以使用循环结构进行控制

同心圆的特点是中心点相同,而半径有差别;只要确定了中心点位置以及半径的变化规律,画法应该是相同的,因此,可以使用循环结构来控制画10个,或者100个圆。如图3-1所示:

画板

第三个圆的左上角坐标 第二个圆的左上角坐标 第一个圆的左上角坐标

变化间距 第一个圆的左上角坐标 第二个圆的左上角坐标 第三个圆的左上角坐标

图 3-1 同心圆示意图

从图中可以总结出变化的规律:

横坐标1 = 横坐标1 - 半径间距 纵坐标1 = 纵坐标1 - 半径间距 横坐标2 = 横坐标2 + 半径间距 纵坐标2 = 纵坐标2 + 半径间距

【知识准备】

1.画板及画板组件的方法

(1)画板组件

画板组件是一个类似于窗口的容器型窗口组件,可以在该组件上添加其他组件。

组件内部的命令或过程称为组件的方法,画板组件包括一些画图的方法。 (2)画椭圆方法

画椭圆:在画板上画椭圆。 格式:

画板.画椭圆(左上角横坐标,左上角纵坐标,右下角横坐标,右下角纵坐标)

举例:画板1.画椭圆(100,100,150,150)

2.画板坐标系

易语言中,若要完成画图,需要在窗体上放置一个画板对象,在画板上进行画图。画板的坐标系,如图3-2所示,左上角是坐标原点(0,0),水平向右横轴正方向,竖直向下纵轴正方向。

圆是椭圆的特例,在画板上画圆要使用画椭圆方法,如图3-2所示。只有当“右下角纵坐标-左上角纵坐标=右下角横坐标-左上角横坐标”时,画出的图形是圆形。

(0,0) (左上角横坐标,左上角纵坐标) X Y (右下角横坐标,右下角纵坐标) 图 3-2 坐标系示意图

3.确定圆心位置

圆心位置在画板中心,用画板的宽度和高度分别除以2可以得到画板中心

的横纵坐标。

中心的横坐标=画板的宽度/2 中心的纵坐标=画板的高度/2 4.计次循环

功能:把循环体内的命令重复执行指定的次数。

格式:计次循环首(循环次数,[已循环次数记录变量]) 参数及其含义:

循环次数:整数型,本数值指定执行计次循环体内所有命令的次数,必须大于等于零。

已循环次数记录变量:整数型,参数数据只能提供变量。用作记录循环被执行过的次数(从 1 开始),程序可以直接取用此变量中的值。

例,显示10以内的整数的程序:

.计次循环首 (10, 循环次数变量) 显示编辑框.内容 = 显示编辑框.内容 + 到文本 (循环次数变量) + “;” .计次循环尾 () 5.设置画笔颜色

在画图之前可以通过要设置画板的画笔颜色属性,来确定用什么颜色画图。 颜色的表示可以使用颜色常量。(通过常量表查看有哪些颜色常量)。 如:画板1.画笔颜色=#红色

【操作指南】

一、界面设计

1.选择组件创建对象

在窗口上添加画板组件作为画图的“纸”,并将画板调整到合适大小。 2.设置属性

属性值参考下表。

表 3-1 属性设置表

对象 属性 属性值 _启动窗口 标题 在画板中心画10个同心圆

边框 镜框式

画板1

画板背景色 白色

二、编写代码 1.有效事件

当用户在“画板”上,单击鼠标左键时,引发该对象的“鼠标左键被按下”事件,在该事件过程中完成,画图工作。

本文来源:https://www.bwwdw.com/article/8v7r.html

Top