博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
程序设计基础知识
阅读量:7217 次
发布时间:2019-06-29

本文共 2678 字,大约阅读时间需要 8 分钟。

软件和程序是相辅相成的。程序可以看做是软件的子集。换句话说,软件就是由一个一个程序组成的。程序又是由一条一条的代码组成的。

 

扩展:

有一个计算机科学家沃斯提供了一个公式:程序 = 数据结构 + 算法

 

计算机语言

一说到计算机语言,首先会想到自然语言。自然语言就是用于人与人之间进行沟通的。计算机语言就是用于人与计算机之间进行沟通。

 

计算机语言的发展史

 

计算机语言是从20世纪40年代开始出现,大致可以分为3个阶段

 

第一阶段:机器语言

第二阶段:汇编语言

第三阶段:高级语言

 

机器语言:最早的机器语言最大的特点就是由01组成。之所以只有01,是因为要使用这两个数字来模拟电子元件的通电和不通电的状态,从而向计算机发送命令。

 

汇编语言:汇编语言从一定程度来讲就是机器语言的一种助记符。使用助记符以后可以一定程度上帮助人类明白代码的含义。

 

 

高级语言:高级语言更加接近于我们的自然语言。

高级语言又可以分为两个大类:一个叫做面向过程,另一个叫做面向对象

所谓面向过程,就是在编写代码的时候,需要向机器一样考虑每一个步骤。程序的设计是自顶向下,一步一步执行。

所谓面向对象,就是更加接近于人类的思考模式。只需要考虑我们做一个事情的时候需要哪些东西,而不需要考虑具体的步骤

高级语言可以以1980年为一个分界点。80年之前,基本上都是面向过程的语言(C语言),80年之后就基本都是面向对象的语言(JavaC#PHPRuby

 

翻译程序

为什么需要翻译程序:因为计算只能识别机器语言,但是我们书写程序的时候,使用的是高级语言。这个时候就需要将高级语言翻译成机器语言。

翻译的方式有两种:一种是编译,一种是解释

根据翻译的方式我们的计算机语言又可以进行分类:静态语言和动态语言

编译器:一次性将整个程序转换为二进制代码,这个有点类似于将外语书翻译成中文

解释器:进行逐行的翻译。这个有点类似于同声传译。

 

编译器编译程序的速度更快。解释器解释语言的时候更加灵活。

静态语言:Java  C#

动态语言:JavaScript  PHP  Ruby

 

程序设计的步骤

 

分析问题

在进行程序开发之前,首先需要对问题进行分析,其实就是分析用户的需求

 

确定数据结构和算法

建立数学模型

 

开始进行程序的编制

就是敲代码来实现功能

 

软件的调试和测试

一步一步解决程序里面的bug,直到获取预期的结构。其实我们的程序一定程度来讲不是写出来的,而是调出来

 

常见的程序相关的错误类型

 

语法错误:编写的代码不符合语言的语法规则,这样的代码是无法通过编译的

逻辑错误:编写的代码符合语法规则,但是逻辑有问题,导致不能得到预期的结果

运行错误:这其实就是算法除了问题。这个时候就应该重新修改自己的算法。

开发错误:整个程序设计的时候偏离了用户的需求,导致开发方向错误

 

算法

从广义上来讲,算法就是解决某一个问题的方法和步骤

如果要将算法进行分类,那么可以分为两大类:数值型运算算法 非数值型运算算法

数值型运算算法:就是指最终会得到一个数字的结果。

非数值型运算算法:例如搜索等事务相关的处理

 

算法的特征

  1. 1.有穷性:就是指一个算法的步骤应该是有限的
  2. 2.确定性:算法里面的每一个步骤都应该是确定的,并且是有具体含义的,不能模棱两可
  3. 3.有零个或者多个输入:根据算法的不同,有一些算法是可以有输入的
  4. 4.有一个或者多个输出:设计算法就是为了解决问题,因此每一个算法都应该有一个或者多个输出
  5. 5.有效性:算法中的每一个步骤都应该是能够有效执行的,并且能够得到结果

 

算法的表示方式

 

为了让其他人也可以明白自己的算法,所以一般我们会把算法用一些方式表现出来。自然语言表示法,流程图,伪代码,N-S表示法

 

自然语言表示法:所谓自然语言表示法,就是指使用人类日常生活中所使用的语言将算法表示出来,例如:汉语,英语

例:交换墨水瓶

第一步:将黑墨水瓶里面的黑墨水倒入空瓶

第二步:将蓝墨水倒入空的黑墨水瓶

第三步:将空瓶里面的黑墨水倒入空的蓝瓶里面

第四步:完成交换

 

伪代码表示法:这是一种介于自然语言和计算机语言之间的一种方式

例:交换墨水瓶

第一步:A黑墨水瓶  B蓝色墨水瓶 C空瓶

第二步:AC

第三步:BA

第四步:CB

第五步:完成交换

 

伪代码练习:1+2+3+4+...+1000

第一步:n = 1

第二步:m = 2

第三步:n = n + m

第四步:m = m + 1

第五步:判断m是否小于等于1000,如果是,跳回第三步,如果不是,继续下一步

第六步:输出结果

 

  1. 2. 1 + 3 + 5 + 7 +...+99

第一步:n = 1

第二步:m = 3

第三步:n = n + m

第四步:m = m + 2

第五步:判断m是否小于等于99,如果是,跳回第三步,如果不是,继续下一步

第六步:输出结果

 

  1. 3.打印1-1000以内,能够被5整除,或者能被6整除的数字

第一步:n = 1

第二步:n % 5 == 0 如果能,跳到第六步,如果不能,执行下一步

第三步:n % 6 == 0 如果能,跳到第六步,如果不能,执行下一步

第四步:n = n + 1

第五步:判断n是否小于等于1000,如果是,跳回第二步,如果不是,跳到第七步

第六步:输出n

第七步:结束

 

  1. 4.安全数的报数游戏:找出1-60以内能够被7整除或者尾数为7的数

第一步:n = 1

第二步:n % 7 == 0 如果能,跳到第六步,如果不能,执行下一步

第三步:n % 10 == 7 如果能,跳到第六步,如果不能,执行下一步

第四步:n = n + 1

第五步:判断n是否小于等于60,如果是,跳回第二步,如果不是,跳到第七步

第六步:输出n

第七步:结束

 

流程图表示法:又被称之为框图。使用一系列图形和流程线以及少量的文字说明来进行算法的表示。特点:更加形象易懂。

 

 

图形符号

符号名称

作用

流程线

 椭圆形

起始框

终止框

表示程序的开始和结束

起始框:只有一个出口,没有入口

终止框:只有一个入口,没有出口

 平行四边形

输入框

输出框

顾名思义,代表输入和输出

只有一个入口,一个出口

 矩形

处理框

表明程序的处理和操作

只有一个入口和一个出口

 菱形

判断框

对判断结果进行两种情况的流向

一个入口,两个出口

 箭头

流程线

代表程序的流向,用于将上面的符号把它串起来

 

 

转载于:https://www.cnblogs.com/lwww/p/7965913.html

你可能感兴趣的文章
设置MySQL数据库超时
查看>>
一致性hash算法
查看>>
lua + redis 的去重队列
查看>>
web负载均衡(ipvsadm)(未成)
查看>>
抓取存储quota超过80%的users
查看>>
C语言经典算法100例
查看>>
速成CAD版本转换的教程
查看>>
CAD文件图纸过大,该怎么解决?
查看>>
Spring aop 切不进去原因。。
查看>>
PHP获取客户端IP
查看>>
php开发APP接口-封装通信接口改进版
查看>>
Android系统性能演变历程
查看>>
OSChina 周三乱弹 —— 打醒精神去瞌睡
查看>>
SSH 密钥登录linux
查看>>
你必须掌握的 21 个 Java 核心技术!
查看>>
告诉你WHT中文站是什么?
查看>>
4、Juniper SSG520 PPTP映射到ROS后MAC无法连接解决方法
查看>>
利用批处理文件来建立一个记录3389登陆者信息
查看>>
Linux 系统下双机HA的实现
查看>>
02_swarm mode key concepts
查看>>