180 likes | 263 Views
第三讲 高级语言与程序设计. 教学目的. 理解计算机、计算机语言、人之间的关系 理解高级程序设计语言在信息系统建立和应用中的作用,角色。 理解高级语言是一种形式语言,及形式语言的特点。 理解算法和算法描述工具,明确计算机程序是算法的程序语言描述结果。 理解程序的基本构成 能够用一种高级语言熟练地编写,并编译运行程序。. 计算机语言. 计算机语言是人和计算机之间的接口 程序设计语言是计算机语言的一种形式,高级程序设计语言是程序语言中最容易被用户学习和使用一种语言类型 计算机语言的分类: 交互式语言 字符类型 菜单类型 图形界面类型 程序语言 机器语言
E N D
教学目的 • 理解计算机、计算机语言、人之间的关系 • 理解高级程序设计语言在信息系统建立和应用中的作用,角色。 • 理解高级语言是一种形式语言,及形式语言的特点。 • 理解算法和算法描述工具,明确计算机程序是算法的程序语言描述结果。 • 理解程序的基本构成 • 能够用一种高级语言熟练地编写,并编译运行程序。
计算机语言 • 计算机语言是人和计算机之间的接口 • 程序设计语言是计算机语言的一种形式,高级程序设计语言是程序语言中最容易被用户学习和使用一种语言类型 • 计算机语言的分类: • 交互式语言 • 字符类型 • 菜单类型 • 图形界面类型 • 程序语言 • 机器语言 • 汇编语言 • 高级语言 • LISP • PL • VFP • VB • Java • C • C++ • 等等()
交互式语言的作用 交互式计算机语言
讨论题目(10分钟) • 通过交互式计算机语言使用计算机这种方式的优缺点
程序语言的作用 计算机程序 说明:计算机程序是用户事先编写好的。通过程序这种方式使用计算机,正好可以弥补通过交互式方式使用计算机的不足。
“计算思维”是什么意思? • “计算思维”就是站在计算机的角度设计解决人类面临的各种问题的方法和步骤。 • 用计算机思维解决问题和用人脑解决问题有什么区别吗?答案应该是:在很多地方有区别(不是完全不同)。 • 例如:5+3+11+13=? • 人算:四八 三十二 • 计算机:存5,存3,算5+3,存8,存11,算8+11,存19,存13,算19+13,存32。 • 在很多时候,将人类解决问题的方法变得完全不“聪明”的时候,就是站在了计算机的角度了。
“计算思维”有什么用? • 用“计算思维”认识问题 • 用“计算思维”考虑解决问题的办法 • 用计算机语言(交互式语言或程序语言)来描述用“计算思维”设计出来的解决问题的方法。结果就是用计算机解决问题的方法。 • 这就是我们学习“计算思维”的目的。
“计算思维”为什么很重要? • 问题常常存在于某个领域之中 • “计算思维”是计算机解决问题的前提 • 计算机工程师一定是具备“计算思维”能力的,但因为他不是领域专家,所以计算机工程师常常连问题是什么都不知道。 • 领域专家对问题的认识一定是很清楚、本质、深刻的,但领域专家如果不具备基本的“计算思维”能力,他可能连这个问题是不是可以交给计算机去解都想不清楚。 • 如果这样的话,该领域的信息化程度就会受到极大地影响。这是我们大家都不愿意看到的事情。 • 让工程师具备一定的领域知识,让领域专家具有一定的“计算思维”能力,这是世界的潮流。在这方面,西南财经大学希望不落人后。
“算法”是什么? • 基于计算思维设计出来的解决问题的方法和步骤就是“计算机算法”,简称:“算法”。 • “算法”可以用“自然语言”来描述。 • “算法”可以用一些专门化的“工具”来描述。 • “算法”还可以用计算机语言来描述。 • 用程序设计语言描述出“算法”的结果是什么呢?这就是“程序”。
高级程序语言语句序列实例 class Test { public static void main(String[] args) { System.out.println(“谢天谢地!你终于来了!"); } }
高级程序语言的特点 • 高级语言是一种形式化的语言(一点都不能错) • 高级语言结构性很强(框架很固定) • 高级语言种类很多(各有各的特点) • 不同种类的高级语言在很多方面都长得很像(很容易学习第二种) • 高级语言很容易学习(比较接近英文文法) • 高级语言特别适合边学边用(知道一点点就可以应用)
程序的基本功能 • 定义数据结构框架,用以保存原始数据、中间结果、最终数据。(主要是指定义:常量、变量、数据类型、数组等) • 数据输入并保存到数据结构框架中。(可以通过:键盘、扫描仪、文件、数据库、网络等输入数据) • 进行数据运算(简单可以是算1+2=?,复杂可以比计算圆周率到小数点后10000位还要复杂1000倍。) • 输出结果数据(字符、图形、图表等形式)
一个程序的实例(计算1+1=2) class A0102 { public static void main(String[] args) { int a=1; int b=1; int c=a+b; System.out.println(c); } }
一个程序的实例(计算n+m=?) import java.util.Scanner; class A0103 { public static void main(String[] args) { int a; int b; int c; Scanner scanner=new Scanner(System.in); a=scanner.nextInt(); b=scanner.nextInt(); c=a+b; System.out.println(c); } }
一个程序的实例(用户界面很重要) import java.util.Scanner; class A0104 { public static void main(String[] args) { int a; int b; int c; System.out.println("请从键盘上输入两个整数,两个数之间用空格隔开,以回车键结束。"); Scanner scanner=new Scanner(System.in); a=scanner.nextInt(); b=scanner.nextInt(); c=a+b; System.out.println(a+"+"+b+"="+c); } }
一个程序的实例(解一元二次方程) import java.util.Scanner;import java.lang.Math.*; public class A0105 {public static void main(String[] args) {float a=0;float b=0;float c=0;float d=0;float x1=0;float x2=0; System.out.println("请输入一元二次方程的三个系数,数与数之间用空格分隔。"); Scanner scanner=new Scanner(System.in); a=scanner.nextFloat();b=scanner.nextFloat();c=scanner.nextFloat(); d=b*b-4*a*c; if (d>0) {x1=(float)(-b+Math.sqrt(d))/(2*a);x2=(float)(-b-Math.sqrt(d))/(2*a); System.out.println("X1=["+x1+"] X2=["+x2+"]");} else {if (d==0) {x1=(float)(-b)/(2*a); System.out.println("x1=x2="+x1);} else {System.out.println("此方程在实数范围内无解!");}}}}
作业 • 阅读教材指定内容 • 编写解决指定问题的程序(3个) • 运行编写的程序