1、第一章 程序设计基础,课程介绍,1、程序设计基础 2、java简介 3、关键字、数据类型和变量 4、运算符 5、选择语句 6、循环语句 7、选择与循环混合程序设计 8、方法,目标,了解软件、程序与计算机语言的关系 了解程序设计 了解程序开发的过程 了解程序开发中常见的错误类型,软件,软件是一系列按照特定顺序组织的计算机数据和指令的集合 一般来讲软件被划分为系统软件、应用软件 计算机是如何认识我们操作者的命令的呢?,程序,程序是计算机要执行的指令的集合,而程序全部都是用我们所掌握的语言来编写的 电脑每做的一次动作,一个步骤,都是按照已经用计算机语言编好的程序来执行的 可见人们要控制计算机一定要通
2、过计算机语言向计算机发出命令,计算机语言的分类,机器语言 机器语言是计算机唯一能接受和执行的语言 汇编语言 汇编语言是用助记符表示指令功能的计算机语言 高级语言 与自然语言相近并为计算机所接受和执行的计算机语言称高级语言,机器语言,机器语言由二进制码组成 每一串二进制码叫做一条指令,一条指令规定了计算机执行的一个动作 一台计算机所能懂得的指令的全体,叫做这个计算机的指令系统 不同型号的计算机的指令系统不同,10100010101001000010100100100100010001010100101010010101010011111101001101010100101010010101001
3、0100101010101010101010010100010000010010001001000010110101010100100110100100010101011010010101010110010101001,进制,十进制 每高一位长10倍 56=5*10+6 二进制 每高一位长2倍 111*2+1,机器语言的特点,编写出来的程序全部由0和1组成 计算机可以直接识别 机器语言对不同型号的计算机来说一般是不同的,所以又被称为面向机器的语言,机器语言的缺点,指令难以记忆,消耗编程人员精力 代码实现复杂,开发周期长 不便于推广,交流,合作 严重地依赖于具体的计算机,可移植性差,重用性差,早
4、期的纸带计算机,汇编语言,为了克服机器语言上述的缺点,人们首先注意到的是可读性,因为它们相对地容易通过抽象而得到改善。于是,很快就出现汇编语言 它是符号化了的机器语言,加入了助记符 用汇编语言编写的程序叫汇编语言源程序,汇编语言,汇编程序,汇编语言编写的代码计算机无法直接识别我们利用汇编程序把汇编源代码翻译成机器语言源代码,这个过程叫做汇编过程,汇编语言的特点,汇编语言比起机器语言在很多方面都有很大的优越性,如编写容易、修改方便、阅读简单、程序清楚等但它仍然是属于面向机器的语言,也就是说,不同的计算机可以有不同的指令集,高级语言,计算机事业的发展,促使人们去寻求一些与人类自然语言相接近且能为计
5、算机所接受的语言 这种与人类自然语言相近的计算机语言称高级语言 高级语言独立于计算机硬件,是面向用户的语言,翻译程序,计算机并不能直接地接受和执行用高级语言编写的源程序,源程序在输入计算机时,通过“翻译程序”翻译成机器语言形式的目标程序,计算机才能识别和执行翻译分成了两种形式 编译 解释,编译,在程序执行之前,用一个专门的过程,把程序翻译成为能够被机器语言的识别文件。 源文件二进制文件运行 如c c+,解释,相当于同声翻译,计算机执行时,读取一句代码翻译成机器语言,然后再执行。 如java c#,程序设计步骤,分析:使用计算机解决具体问题时,要对问题进行充分分析,确定问题是什么。即了解输入(已
6、知数据和条件)和输出(结果的展示)。 设计:确定数据结构(输入数据和输出结果)和算法(解决问题的方法和步骤)。 编制程序:根据定义好的数据结构和算法,编写出程序代码。 调试程序:在计算机上进行程序测试和调整,直至获得预期的结果。,算法,做任何事情的步骤 银行取钱 谈恋爱,简单算法举例,例1 求12345 两种方法:1.最原始的方法S1:先求1*2,得到结果2S2:将S1得到的乘积2再乘以3,得到结果6S3:将6再乘以4,得到24S4:将24再乘以5,得到120,这个就是最后的结果,999个步骤,简单算法举例,2.改进的方法可以设置两个变量S1:1-pS2 : 1-iS3:p*i-pS4:i+1
7、-iS5:i=5返回S3;否则,转换到S6S6 :打印pS7 :结束,练习,有两个瓶子A和B,分别盛放醋和酱油,要求将它们互换 依次询问10个人的年龄,要求将其中年龄最大的人找出来,算法的特性,有穷性 一个算法应包含有限的操作步骤,而不能是无限的 确定性 算法中的每个步骤都应当是确定的,不应该是含糊的 有零个或多个输入 所谓输入是指在执行算法时需要从外界取得必要的信息 有一个或多个输出 算法的目的是为了求解,“解”就是输出 有效性 比如b=0,a/b要避免,描述算法流程图,起止框,处理框,输入输出框,流程线,判断框,连接点,课堂演示,将前面两道算法用流程图表示,算法的意义,算法是帮助我们解决问
8、题的算法是过程不是目的算法应该符合自然的思维,才有利于软件开发过分的追求算法,容易造成思维一味的求新、求奇,注重表面的东西,忽视了对问题本身解决的深入思考,代码的实现,当算法确定后,直接用计算机语言(如java)将算法翻译成计算机能够理解的代码,这个过程就是编程,调试程序,作为软件开发人员,几乎在我们曾经编写的每个程序中,都会出现错误,这并不令人沮丧。在编程过程中,查找错误是工作的一部分。这是在软件业取得成功所必须掌握的技能 程序中最易出现的几种不同类型错误是语法错误、逻辑错误和运行错误,语法错误,这是一个英语的错误语法示意:“Went they store to the”,这个句子不符合英语
9、造句规则 我们人类是可以猜出以上英语句子应该是:“They went to the store”,但是编译器不能猜出一个有语法错误的语句的意思。因此,它会打印出错误信息告诉我们该语句有错误,要求我们去修改错误 解决错误的办法:对语言充分的熟悉,逻辑错误,程序可以通过编译和链接,没有任何编译和链接错误,但并不意味着程序是正确的。计算机程序是逐步完成任务的指令集合。虽然所有的单个语句都正确,但它依然会导致步骤的次序出错 解决错误的办法:做好程序分析与设计,运行时错误,有些错误是在程序运行时出现的。当这些错误发生时,开发者无法对其进行控制。比如说,当我们运行所编写的程序时,你我都不能判断出计算机的存储器空间会不够。当这种情况发生时,程序就不能正常工作 解决办法:调试和软件测试的重要性,总结,计算机语言的分类以及特点 高级语言翻译的两种方式:编译和解释 程序员开发软件的四个步骤:分析、设计、编写、测试 算法的基本概念,算法的简单特性 3种常见的错误,作业,设计如下算法: 求1+2+100 将100以内同时能被3和5整除的数输出 判定2000-2500年中是闰年的年,输出 闰年的条件是: 1.能被4整除,但不能被100整除的年份都是闰年 2.能被400整除的年份是闰年,其它情况都不是闰年,