第一章 计算机程序设计基础

合集下载

自考计算机基础与程序设计第一章

自考计算机基础与程序设计第一章

⾃考计算机基础与程序设计第⼀章第⼀章计算机及程序设计基础知识常见考点1.计算机的基本组成2.计算机中数制的转换3.计算机中的编码4.程序设计基础知识重难点串讲⼀、计算机系统组成与⼯作原理计算机的基本结构代表数据流代表控制流(1)冯·诺依曼结构有3条重要的设计思想:①计算机应由运算器、控制器、存储器、输⼊设备和输出设备5⼤部分组成;②以⼆进制的形式表⽰数据和指令;③程序和数据预先存⼊存储器中,使计算机在⼯作中能⾃动地从存储器中取出程序指令。

(2)计算机的⼯作原理指令:是能被计算机识别并执⾏的⼆进制代码,它规定了计算机能完成的某⼀种操作。

⼀条指令通常由如下两个部分组成:①操作码:它是指明该指令要完成的操作。

②操作数:它指操作对象的内容或者所在的单元格地址。

指令系统:某⼀台计算机所能识别的所有指令的集合。

程序:⼀系列指令的有序集合。

历年试题【单选题】在计算机中,指令通常是由( )A.操作码、操作数组成B.源操作数、⽬标操作数组成C.反码、补码组成D.直接寻址、⽬的寻址组成【答案】A 【解析】该题考查的是指令的组成。

教材中没有相关内容。

⼆、计算机系统组成历年试题【单选题】⼀个完整的计算机系统应该包括( )A.主机和外设 B.主机和操作系统C.硬件系统和软件系统 D.系统软件和应⽤软件【答案】C【解析】该题考查的是⼀个完整的计算机系统的组成。

教材(P2)。

1.中央处理器(CPU)是计算机的核⼼部件,由运算器和控制器构成。

运算器⼜称算术逻辑部件,主要功能是完成对数据的算术运算、逻辑运算和逻辑判断等操作。

控制器是整个计算机的指挥中⼼,发出各种控制信号,指挥计算机各部分⼯作。

2.存储器(Memory)⽤来存储程序和数据,存储器可分为两⼤类:内存储器和外存储器(1)内存储器简称内存,可以与CPU直接交换数据,特点是:容量⼩、速度快,但价格贵。

内存⼀般分为ROM和RAM。

ROM:只读存储器,⼀种只能读取数据不能写⼊数据的存储器,断电后,ROM中的信息不会全丢失。

课程设计计算机程序设计

课程设计计算机程序设计

课程设计 计算机程序设计一、课程目标知识目标:1. 让学生理解计算机程序设计的基本概念,掌握至少一种编程语言的基础语法和结构。

2. 使学生了解程序设计的流程,包括需求分析、算法设计、编码、调试等环节。

3. 引导学生掌握程序设计中常用的数据结构和算法。

技能目标:1. 培养学生运用编程语言解决实际问题的能力,具备初步的编程实践技能。

2. 培养学生通过分析问题,设计合适的算法,并使用编程语言实现解决问题的能力。

3. 培养学生运用调试工具,发现并修正程序中错误的能力。

情感态度价值观目标:1. 激发学生对计算机程序设计的兴趣,提高学习积极性。

2. 培养学生具备团队协作精神,能够在编程实践中互相帮助,共同解决问题。

3. 引导学生认识到计算机程序设计在现实生活中的应用价值,树立正确的价值观。

课程性质分析:本课程为计算机程序设计入门课程,旨在让学生掌握编程基础知识和技能,培养学生解决实际问题的能力。

学生特点分析:学生为初中年级,具备一定的逻辑思维能力,对新事物充满好奇,但可能缺乏自律性和持续学习的耐心。

教学要求:1. 理论与实践相结合,注重培养学生的动手实践能力。

2. 教学过程中,关注学生的个体差异,给予个性化指导。

3. 创设有趣的教学情境,激发学生的学习兴趣。

二、教学内容1. 计算机程序设计基本概念:程序、编程语言、算法、数据结构等。

教材章节:第一章 计算机程序设计概述2. 编程语言基础:Python语言入门,包括变量、数据类型、运算符、表达式、控制结构等。

教材章节:第二章 Python语言基础3. 程序设计流程:需求分析、算法设计、编码、调试与优化。

教材章节:第三章 程序设计流程4. 常用数据结构:列表、元组、字典、集合等。

教材章节:第四章 常用数据结构5. 基本算法:顺序查找、二分查找、冒泡排序、选择排序等。

教材章节:第五章 基本算法6. 编程实践:运用所学知识解决实际问题,如计算器、小游戏等。

教材章节:第六章 编程实践7. 项目实训:分组完成一个综合性的程序设计项目,锻炼学生的综合运用能力。

C语言答案(删减版)

C语言答案(删减版)

C语言答案()第一章C语言程序设计基础习题参考答案1-1 冯·诺依曼体系结构的基本原理:五大构成部分:输入、输出、CPU、控制器、存储器;程序存储、自动执行、逻辑判断功能;二进制的信息表示。

1-6 编辑、编译、链接、执行。

1-7 必须有一个主函数,它是程序执行的起点;一个C语言程序由函数构成;每一条可执行语句都必须由分号结束;函数的代码段必须由花括号对括住。

一个函数中的语句组由声明区和可执行语句区两部分构成。

1-8 三个一缩;每遇到一个结构时均缩格,每结束一个结构时回退;缩格格式必须对齐。

1-9 试给出以下问题的程序设计过程描述:1) 求两个数中之最大者。

#include<stdio.h>int main(void){float fA,fB;clrscr();printf("Please input two values(fA,fB)::"); /*输入要比较的两个数fA,fB*/scanf("%f,%f",&fA,&fB); /*格式化输入fA,fB*/if(fA>=fB) printf("the max is %f",fA);if(fA<fB) printf("the max is %f",fB);return 0;} /*main()函数结束*/2) 求三个数中之最大者。

#include<stdio.h>int main(void){float fA,fB,fC,fMax;printf("Please input three values(fA,fB,fC)::");/*fA,fB,fC是输入的3个数,fMax存放最大值*/scanf("%f,%f,%f",&fA,&fB,&fC);fMax=fA;/*假定fA最大*/if(fMax<fB) fMax=fB;if(fMax<fC) fMax=fC;printf("The max is %f\n",fMax);/*输出最大值*/return 0;} /*main()函数结束*/3) 求1+2+3+…+100,即。

程序设计基础第一章 为什么要学C语言

程序设计基础第一章 为什么要学C语言

是一种高在一个高的级别上 进行编程 但实际上是一种介于高级语言和低级语言之间的语言
历史悠久,战勋卓著 诞生于上世纪70年代初,成熟于80年代 很多重量级软件都是用C写的 上天入地,无所不能 几乎没有不能用C写出来的软件,没有不支持C的系统 很多流行语言、新生语言都借鉴了它的思想、语法
程序设计基础
——C语言
计算机科学与技术系 汪永好 wangyh@ 主楼908室
第1章 为什么要学 C语言
• 程序设计语言的分类
机器语言 (0、1代码组成) 由计算机硬件确定的成串数字,指导计算机执行最基本 的操作 例如: +1300042774 +1400593419 +1200274027
(1)运行VC
(2)新建项目(File—New—Projects)
注:创建project时选择“An empty project”
(3)新建项目中的.c文件( File—New—Files)
(4)在该.c文件中编辑源程序并保存(File—Save)
(5)编译源程序(Build—Compile ***.c)
如何学C语言

注定与C语言为伴的人

C语言易学,但不易真正掌握 多练,多读优秀代码 透过C语言窥探计算机底层原理 掌握最流行的语法形式 了解基本的程序设计思维 通过C语言,更好地了解计算机,了解计算思维

要编程,但不用C语言的人


永远不编程的人

•后续学习的需要 •今后工作的需要 •锻炼思维的需要
预编译命令 简单的C语言程序介绍 主函数 main( ) { 函数体开始 (1) C程序由函数构成。 声明部分; (2)一个函数由两部分组成: 执行部分; 函数的首部: } 函数体结束

计算机程序设计基础

计算机程序设计基础

计算机程序设计基础计算机程序设计基础计算机程序设计是计算机科学中的重要课程,其在计算机领域的应用有着广泛的应用。

计算机程序设计基础是一门必修课程,本文将围绕计算机程序设计基础这一主题展开分析。

一、计算机程序设计基础的基本概念计算机程序设计基础包含了计算机程序设计所需的基本知识和基本技能。

在计算机程序设计基础中,程序设计员需要掌握以下知识:1、可计算性:可计算性是计算机程序设计的基础,是指某个函数是否能写出来并被计算机运行。

例如,我们可以编写一个程序来计算两个数之和,但我们不能写一个程序来计算一个数字是否为质数。

2、算法:算法是计算机程序设计的方法论,是编写程序的基本方法。

我们可以从中学习到如何分析问题,如何设计程序。

3、数据结构:数据结构是计算机程序设计的基础,是指数据如何组织和存储。

例如,数组、链表、栈和队列等数据结构都是基础的数据结构。

4、程序设计语言:程序设计语言是程序编写的语言,是程序员与计算机交流的媒介。

例如,C语言、Java语言和Python语言都是流行的程序设计语言。

二、程序设计语言程序设计语言是计算机程序设计中最基本和必不可少的一部分。

它们为程序员提供了一个编写、测试和维护计算机程序的框架。

常见的程序设计语言包括:1、C语言:C语言是一种高效、快速、同时又非常简单易学的程序语言。

它经常被用于操作系统内核和各种嵌入式系统的开发。

2、C++语言:C++语言是C语言的一个扩展,包括类和面向对象编程。

它的应用领域十分广泛,涵盖了操作系统、独立游戏开发、图形界面设计和软件开发等。

3、Java语言:Java语言是一种强大的、多用途的程序设计语言。

它广泛应用于Web开发、桌面应用程序、数据库管理、移动应用程序和游戏开发等领域。

4、Python语言:Python语言是一种被认为是最易学的语言。

它的应用领域非常广泛,涉及Web开发、机器学习、数据分析、自然语言处理、科学计算等领域。

三、程序设计的模块化设计程序设计的模块化设计是程序员在编写某个复杂系统或程序时使用的重要设计工具。

程序设计基础

程序设计基础

程序设计基础
程序设计基础可以理解为计算机编程的基础知识和技能。

它包括了一系列概念、原理、语法和技巧,用于编写计算机程序。

学习程序设计基础通常需要掌握以下内容:
1. 编程语言:选择一门合适的编程语言进行学习,比如C、C++、Python、Java等。

不同的编程语言有不同的特点和用途,初学者可以选择一门容易上手的语言进行学习。

2. 编程概念:了解基本的编程概念,如变量、数据类型、算术运算、逻辑运算、条件
语句、循环语句、函数等。

这些概念是编程的基础,掌握它们可以更好地理解和编写
程序。

3. 数据结构:学习不同的数据结构,如数组、链表、栈、队列、树、图等。

了解数据
结构可以帮助我们更有效地组织和管理数据,提高程序的性能和效率。

4. 算法设计:学习常见的算法设计和分析方法,如递归、分治、动态规划等。

了解算
法可以帮助我们解决实际问题,提供高效的解决方案。

5. 软件工程:学习软件工程的基本原理和方法,如需求分析、设计、编码、测试和维
护等。

了解软件工程可以帮助我们更好地组织和管理程序开发过程,提高程序的质量
和可维护性。

除了上述内容,学习程序设计基础还需要进行实践,通过编写实际的程序来加深理解
和掌握。

可以选择一些简单的编程项目进行练习,逐步提升自己的编程能力。

同时,
阅读相关的编程书籍、在线教程和参与编程社区也是很有帮助的。

C语言第1章计算机的组成与程序设计基础详解

C语言第1章计算机的组成与程序设计基础详解

软件(Software) :概念及分类
软 件 系统软件:用来管理、维护计算机并协调计算 机各部件有效工作的软件。 (核心软件是操作系统) 应用软件:实现具体应用的软件。
软件:相关概念
指令:计算机能够识别并执行的“操作命令” 指令=操作码+操作数 15→A 例: 10110000 00001111 指令系统:计算机能够识别的所有指令的集合。
语言分类 机器语言 汇编语言 高级语言 低级语言
机器语言
是二进制形式表示的程序设计语言,是各种不 同功能的机器指令的集合。
例:10000000 加 10010000 减
机器语言编写的程序可以被计算机硬件识别、 可直接执行。(如:TC.EXE) 特点:与机器相关,程序执行效率高,编写难 度大,不便阅读,调试修改困难,无法移植到 其他计算机。
※不同类型的计算机所识别的指令和指令系统是不 一样的。面向机器,通用性差。
程序:为解决某一问题而设计的一系列指令或语句。 机器语言:计算机能唯一识别并可直接执行的语 言,由二进制数(0或1)排列组合而成。
计算机语言
计算机语言是人与计算机交流的工具 人使用程序设计语言来编制程序(程序设计 )来描述信息处理算法,通过语言处理系统 来生成可执行程序文件。计算机通过程序执 行来实现规定的信息处理
汇编语言
符号化的机器语言,也称符号语言
用助记符来表示机器指令,便于使用和记忆。
例: MOV AL,8 ADD AL,9 特点:
语句与机器指令几乎一一对应 程序可读性优于机器语言程序、其他优缺点仍存在
数据传输 加法计算
汇编语言指令是机器不能直接识别和执行。要经过
翻译程序。
高级语言
算法语言:用户主要考虑解题算法的逻辑和过 程的描述。

《程序设计基础》电子教案

《程序设计基础》电子教案

《程序设计基础》电子教案第一章:计算机程序设计概述1.1 教学目标了解计算机程序设计的概念和意义掌握程序设计的基本原则和步骤理解编程语言的分类和特点1.2 教学内容计算机程序设计的定义和作用程序设计的基本原则和步骤(分析、设计、编码、测试、维护)常见编程语言的分类和特点(例如:高级语言、低级语言、脚本语言)1.3 教学方法讲授法:讲解程序设计的概念和原理案例分析法:分析典型程序设计案例互动教学法:引导学生提问和讨论1.4 教学评价课堂问答:检查学生对程序设计概念的理解课后作业:编写简单的程序,巩固所学知识第二章:C语言基础2.1 教学目标掌握C语言的基本语法和数据类型学会使用C语言进行程序设计理解C语言的特点和优势2.2 教学内容C语言的基本语法和规则(例如:变量、常量、运算符、表达式)C语言的数据类型(整型、浮点型、字符型、布尔型)C语言的控制语句(顺序、选择、循环)2.3 教学方法讲授法:讲解C语言的基本语法和规则编程实践法:让学生动手编写C语言程序案例分析法:分析典型C语言程序案例2.4 教学评价课堂问答:检查学生对C语言基础知识的掌握课后作业:编写C语言程序,巩固所学知识第三章:算法和逻辑结构3.1 教学目标理解算法的基本概念和特点掌握常用的算法设计和分析方法学会使用逻辑结构表示算法3.2 教学内容算法的定义和特点(精确性、有穷性、可行性)算法设计方法(列举法、递推法、分治法、动态规划法)逻辑结构表示算法(顺序结构、选择结构、循环结构)3.3 教学方法讲授法:讲解算法的基本概念和特点案例分析法:分析典型算法案例编程实践法:让学生动手实现算法3.4 教学评价课堂问答:检查学生对算法概念的理解课后作业:实现简单的算法,巩固所学知识第四章:数据结构基础4.1 教学目标理解数据结构的概念和重要性掌握常用的数据结构及其应用学会使用编程语言实现基本数据结构4.2 教学内容数据结构的定义和分类(线性结构、非线性结构)线性表(顺序表、链表)栈和队列(栈的定义和应用、队列的定义和应用)树和图(树的基本概念、图的基本概念)4.3 教学方法讲授法:讲解数据结构的基本概念和原理编程实践法:让学生动手实现基本数据结构案例分析法:分析典型数据结构应用案例4.4 教学评价课堂问答:检查学生对数据结构概念的理解课后作业:实现基本数据结构,巩固所学知识第五章:C语言高级编程5.1 教学目标掌握C语言的高级编程技术学会使用函数、指针和数组理解C语言的面向对象编程思想5.2 教学内容函数的定义和声明(函数的参数、返回值)指针的基本概念和应用(指针的声明、指针的运算、指针数组)数组的基本概念和应用(一维数组、多维数组)面向对象编程(类、对象、封装、继承、多态)5.3 教学方法讲授法:讲解C语言高级编程技术的基本概念编程实践法:让学生动手实现高级编程技术案例分析法:分析典型高级编程技术应用案例5.4 教学评价课堂问答:检查学生对C语言高级编程技术的理解课后作业:实现高级编程技术,巩固所学知识第六章:软件开发方法和工具6.1 教学目标理解软件开发过程和原则掌握常用的软件开发方法和工具学会使用版本控制系统6.2 教学内容软件开发过程(需求分析、设计、编码、测试、维护)软件开发方法(面向过程、面向对象、敏捷开发)常用的软件开发工具(集成开发环境、版本控制系统、调试工具)6.3 教学方法讲授法:讲解软件开发过程和原则案例分析法:分析典型软件开发案例实践操作法:让学生动手使用开发工具6.4 教学评价课堂问答:检查学生对软件开发方法的理解课后作业:使用开发工具完成小项目,巩固所学知识第七章:项目管理和团队协作7.1 教学目标理解项目管理的基本概念和方法掌握项目计划的制定和执行学会团队协作和沟通技巧7.2 教学内容项目管理的基本概念和方法(项目生命周期、工作分解结构、甘特图)项目计划的制定和执行(任务分配、时间管理、资源调度)团队协作和沟通技巧(团队建设、冲突解决、会议管理)7.3 教学方法讲授法:讲解项目管理的基本概念和方法角色扮演法:模拟项目管理和团队协作场景小组讨论法:让学生分组讨论和实践团队协作7.4 教学评价课堂问答:检查学生对项目管理概念的理解小组项目:评估学生在项目管理和团队协作中的表现第八章:数据库基础8.1 教学目标理解数据库的基本概念和原理掌握关系型数据库的设计和操作学会使用SQL语言进行数据查询和管理8.2 教学内容数据库的基本概念和原理(数据模型、关系型数据库、数据库管理系统)关系型数据库的设计(表的设计、索引的使用)SQL语言的基本操作(数据查询、数据更新、数据删除、数据完整性约束)8.3 教学方法讲授法:讲解数据库的基本概念和原理编程实践法:让学生动手使用SQL语言进行数据操作案例分析法:分析典型数据库应用案例8.4 教学评价课堂问答:检查学生对数据库概念的理解课后作业:使用SQL语言完成数据操作,巩固所学知识第九章:网络安全基础9.1 教学目标理解网络安全的重要性和挑战掌握常用的网络安全技术和策略学会分析和防范网络安全风险9.2 教学内容网络安全的基本概念和威胁(信息加密、认证、篡改、泄露)常用的网络安全技术(防火墙、入侵检测系统、VPN、加密算法)网络安全策略和最佳实践(访问控制、安全审计、漏洞管理)9.3 教学方法讲授法:讲解网络安全的基本概念和技术案例分析法:分析网络安全事件和案例实践操作法:让学生动手配置网络安全设备9.4 教学评价课堂问答:检查学生对网络安全概念的理解实验报告:评估学生在网络安全实践中的表现第十章:软件测试和维护10.1 教学目标理解软件测试的目的和重要性掌握常用的软件测试方法和技巧学会软件维护和升级策略10.2 教学内容软件测试的基本概念和目标(验证和验证、静态测试、动态测试)常用的软件测试方法和技巧(黑盒测试、白盒测试、灰盒测试、自动化测试)软件维护和升级策略(修改策略、版本控制、兼容性测试)10.3 教学方法讲授法:讲解软件测试的基本概念和方法案例分析法:分析典型软件测试案例实践操作法:让学生动手进行软件测试10.4 教学评价课堂问答:检查学生对软件测试概念的理解课后作业:完成软件测试实践,巩固所学知识重点和难点解析重点环节1:程序设计的基本原则和步骤补充说明:程序设计原则如模块化、抽象化、逐步求精等,是提高程序质量的关键。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机程序设计基础1.1 编程语言及其发展1.1.1 计算机编程语言所谓计算机程序,是计算机所执行的一系列指令的集合,通过这些指令集合,计算机可以实现数值计算、信息处理、信息显示等功能。

计算机系统采用电信号表示其内部的所有信息,而每个电信号往往采用通、断两个状态表示,因而,计算机内的所有信息均采用二进制格式保存,无论是执行指令、需要处理的数据,还是显示的文字符号。

例如,文字处理时,在屏幕某个位置显示字母“A”,实际是将65这个数据的二进制格式送给了显卡,则由显卡根据65对应的字母A的点阵特征,输出视频信号给显示器,从而在显示器的某个位置“画”出字母“A”。

从第一台电子计算机开始,就采用二进制格式存储计算机指令,这种格式的指令称为机器语言,是CPU唯一能够识别的内容。

例如,将数18送给普通微机CPU内部的某个寄存器BX(寄存器是CPU内部用于存放数据的单元),其机器语言格式如下:10111011 00010010 00000000这样以若干0和1组成的指令不利于记忆,一般人往往无法记住CPU某个指令的二进制格式,为此,引入了助记符的概念,即采用便于记忆的英文单词或其缩写格式代表相应的机器语言,如,对上面的机器语言,采用下面格式表示:MOV BX,18用“MOV”这样的缩写表示传送数据,一般程序员只要了解代表指令的这样助记符,就可以编写程序。

但是,这样书写的计算机程序,计算机的CPU是没法识别的,为此需要把助记符格式的程序翻译成对应的机器语言,这个过程称为编译(Compile),是由专门的工具实现的,如微软公司提供的MASM工具就可以进行编译工作。

采用助记符格式的编程语言,称为汇编语言,所有的CPU系统都具有自己的汇编语言。

汇编语言虽然解决了程序设计的基本问题(不需要记忆那些0、1的组合),但仍然存在如下问题:汇编语言需要程序员了解CPU的结构和基本工作原理。

如果需要计算18+20的结果,必须先将参与计算的一个数送到计算机内部的某个寄存器中(如上面的BX寄存器),然后才能执行加法指令,加的结果还需要再送回内存的某个区域,以便CPU进行下一步的计算。

程序员必须知道CPU内部有哪些寄存器,其中又有哪些寄存器能够用于存放参与计算的数据。

上面的例子用汇编书写如下:MOV BX,18ADD BX,20MOV [1000],BX对编程人员来说,仅仅需要确定让CPU计算加法,不想了解其细节。

基于这样的目的,发明了各种高级编程语言,如Fortran、Basic、C等,它们均采用符合人类自然描述语言的语法书写计算机程序,如Basic语言实现上述计算的格式如下:A=10+20高级语言简化了程序设计的难度,程序员不必了解细节,编写的程序由专门的编译工具转换成机器语言。

正是这些高级语言的产生,才使得计算机编程能够推广开来。

常见的高级编程语言包括:* DOS应用程序:Fortran、Basic、Pascal、C* Windows应用程序:Visual C++、Visual Basic、Delphi、C++ Builder、Java 编程语言除了进行简单的加、减、乘、除计算外,有时还需要进行更复杂的科学计算,如三角、指数、对数等函数计算,而CPU并没有与这些函数对应的指令,只能采取一些近似的数值算法。

这些数值算法并非每个编程人员都清楚,因而每个编程语言都提供了这些函数的通用算法,并以库函数的形式提供给程序员,程序员编程时,只需要简单地调用这些标准函数即可,如Visual Basic采用sin(x)进行正弦函数计算。

当编译工具把程序员编写的高级语言程序(称为源程序)编译成机器语言时,遇到其中的函数,并不能转换成机器语言。

这样编译的程序称为目标程序,以.obj为后缀。

不管是什么编程语言,编译后的目标程序都是统一的机器格式。

为了产生真正可以运行的程序,还需要将编译好的目标程序与编程语言提供的库文件中某些函数的指令连接在一起。

这个步骤称为链接(Link),只有经过链接的程序才能产生可执行的.exe文件。

所有语言的编程步骤如下:编辑(编写源程序)、编译(转换成目标程序)、链接(生成可执行程序)需要说明的是,不同语言编译的方式不同。

有的语言是先将所有程序代码一起编译成机器语言,再链接生成可执行文件,如C语言、Pascal语言,这种语言称为编译型语言,最后以可执行的exe文件运行;有的语言则可以边编译边执行,如Basic语言、Java语言,这种语言称为解释型语言;也有些语言既提供编译运行的方式,也提供解释运行的方式,如Visual Basic,在调试程序时可以采用解释型,一旦调试完成,则采用编译型,将源程序编译成可执行的exe文件。

编译型语言的程序执行速度比解释型语言的程序执行速度快。

编程语言种类很多,初学者究竟应该选择哪种语言?在常用的Windows应用程序编程语言中,Visual Basic难度最小,功能也最弱,而Visual C++难度最大,功能也最强大。

如果只希望编写简单初级程序,尽量选择Visual Basic,如果需要编写功能强大的程序,特别是需要与计算机硬件打交道的程序,则选择Visual C++。

其实,语言本身的语法都比较简单,掌握起来也不难。

Visual Basic将Windows应用程序设计的许多细节都隐藏起来了,程序员不需要了解其细节,只要依照其语法编程即可。

而采用Visual C++语言编程,必须了解Windows程序设计的细节,以及封装这些细节的几百个类(即微软基本类库MFC),而这正是Visual C++学习的难点。

虽然Visual Basic隐藏了许多细节,但了解掌握Windows程序设计的细节对学好Visual Basic也有很大的帮助,还可以应用这些细节编写出功能强大的应用程序。

本章也将以一定的篇幅介绍Windows程序设计的特点,更多的细节可以参考有关Windows程序设计的书籍。

1.1.2 编程语言涉及的主要内容各种编程语言的语法不同,但都涉及以下内容:变量定义、赋值语句、条件语句、循环语句、结构与类等一、变量与类型程序设计过程中,往往涉及到大量的数据,这些数据一般都存放在存储器中(主要是内存中)。

所谓变量定义,就是在内存中申请一个区域保存某个数据。

内存以8位二进制为单元保存信息,这样一个单元称为字节(Byte),实际申请内存时,可能需要一个或多个字节单元,申请的内存单元数量越多,可以保存的数据也越大。

变量的类型就是申请内存时的单元数量以及数据存放在这些单元中的格式。

编程语言往往都提供一些变量类型存放:整数、小数和字符。

其中整数的存放可以申请的内存单元一般为1个、2个、4个、8个;小数的存放可以申请的内存单元一般为4个和8个;而字符的存放一般为1个和2个。

以Visual Basic6.0为例,整数类型分成:字节型(Byte)、整型(Integer,占2个单元)、长整型(Long,占4个单元);小数类型分成:单精度(Single,4个单元)、双精度(Double,8个单元);字符类型为String。

每一种类型表示的数据范围一定,在定义时一定要了解数据的范围,再选择合适的类型。

例如:Visual Basic6.0的字节型(Byte)可以保存0到255的数据,如果把256赋给它,则保存不下,运行程序时就会提示出错。

不同的编程语言,各种类型需要的内存单元数量和表示的数据范围不同,例如整数Integer,Visual Basic6.0采用两个内存单元,表示数据范围为-32768(2的15次方)到32767;而Visual 则采用四个内存单元,表示数据范围为-2147483648(2的31次方)到2147483647。

计算机保存正整数比较容易,采用其二进制格式即可,负整数则需要采用特殊的补码格式保存,对于n位的负整数,其表示范围为。

小数的存放则比较麻烦,一般采用浮点格式,即把小数表示为指数和尾数的格式分别保存,单精度和双精度小数的表示范围大约为和,它们的有效位数分别为7位和15位。

例如,Visual Basic6.0将某个变量定义成单精度(Single),则数据100000.01保存时,最后的1不能存放,实际保存为1000000.0。

在处理小数时一定注意这样的问题。

小数保存时,先转换成对应的二进制格式,再按照指数和尾数格式存放。

并非所有的十进制小数都能准确地转换成相应的二进制格式,如十进制小数0.1表示成二进制(乘2取整法,即每次乘以2,将整数部分提出,保留小数部分继续乘以2,直到结果为1),为无限循环,如果保存为单精度,则保存从1向后的23位二进制(单精度格式共4个单元32位,其中1位表示正负,8位表示指数,23位表示尾数)。

绝大多数小数都是保存的近似值。

对于同一类型的一批数据,可以采用数组形式进行定义,这样就可以使用循环结构进行处理。

程序执行时,可以申请的内存区域有三处:程序中定义的数据段。

每个应用程序保存其特定数据的区域,在应用程序进入内存开始运行时,就已经确定了其位置和大小。

其中保存什么样的数据,每个数据存放在哪儿,都是固定的。

这段内存在应用程序执行的整个过程中都是有效的,任何别的应用程序都不能占用它,只有应用程序结束后才可以释放它们再分配给其它应用程序。

只要在这个区域定义的变量,在整个应用程序执行过程中都有效,这样的变量称为全局变量。

实际上,应用程序在开始执行时,就是按照全局变量的定义情况来分配数据段的。

另外,子程序或函数中定义的静态变量也是在数据段内申请内存,因而它们在子程序或函数结束后数据仍然有效。

静态变量与全局变量的区别在于静态变量只能由某个子程序或函数访问,而全局变量可以由所有的子程序和函数访问。

程序中定义的堆栈段(Stack)。

每个应用程序保存其临时数据的区域,该区域的位置和大小也是确定的,但程序开始运行时并不确定其中保存什么数据。

在应用程序运行过程中,根据需要把特定数据保存在其中。

保存在这里的数据按照先进后出的方式管理,在不同的时刻,其中的数据代表的含义不同。

定义在这里的变量称为局部变量,只在某个特定范围内有效。

一般,在子程序或函数内部定义的普通变量都是定义在堆栈中的,进入子程序时申请堆栈中的内存存放这些变量,数据有效,一旦子程序运行结束,系统自动释放这些内存,则数据无效。

当前系统剩余的内存。

应用程序执行时根据需要从系统剩余内存申请,这种内存往往称为堆(Heap),只要系统还有空闲内存,就可以申请。

数据段和堆栈段的大小是固定的,而堆内存则不固定。

需要注意的,从堆中申请内存后,系统以后能够再次申请的内存数量就减少,随着堆内存申请增多,系统内存越来越少,最终导致使用硬盘代替内存,降低执行速度,甚至有可能导致系统崩溃。

有时候,计算机系统感染病毒后,病毒程序不断申请内存,导致堆中可以申请的内存越来越少,可以明显感觉到程序执行速度变慢,甚至很长时间没有反应,就像死机一样。

相关文档
最新文档