C语言入门2-程序设计的灵魂—算法及Raptor的应用
一、 什么是算法(5个特性)
算法就是 解决问题的方法和步骤。
算法为解决一个具体问题而采取的确定的 有限的 执行步骤 ,仅指 计算机 能执行的算法。
算法是程序设计的灵魂和核心。
- 1. 算法解决什么问题
算法的五大特性:
(1) 有穷性 算法在执行有限的步骤后自动结束、不会出现无限循环。
(2) 确定性 算法的每一步骤都具有确定的含义,不会出现二义性。
(3) 零个或多个输入 算法可以具有零个或多个输入。
(4) 一个或多个输出 算法至少有一个或多个输出,算法是一定需要输出的。
输出必须要有 ,输入可有可无!!
(5) 可行性。算法的每一步都必须是可行的,每一步都能够通过执行有限次数完成。
二、 算法的三大结构(3个结构)
程序采用自顶向下,逐步求精的方法来完善算法,
- 1. 顺序结构
顺序结构就是按照书写的顺序依次执行,不允许跨越任何一条语句。
- 2. 选择结构
选择结构又称为分支结构,
选择结构就是 根据条件判断是否成立,执行不同的语句段。
- 3. 循环结构
循环结构在有些书籍上也称为重复结构,即反复执行某一部分的操作
三、 算法的表达方式(4种)
- 1. 自然语言描述
自然语言就是人们日常使用的语言,可以是汉语、英语,或其他语言。
用自然语言通俗易懂,但文字冗长,容易出现歧义。
- 2. 流程图描述
流程图是用一些图框来表示各种操作。是算法的图形化表示。
用图形表示算法,直观形象,易于理解。

- 3. NS结构化流程图描述 (不做NS里优缺点考核)
它的最重要的特点就是 完全取消了流程线,这样迫使算法只能从上到下顺序执行,从而避免了算法流程的任意转向,保证了程序的质量。
NS图优点就是形象、直观、节省篇幅,尤其适合于结构化程序的设计。
- 4. 伪码描述 (不做伪码里优缺点考核)
伪码是指介于自然语言和计算机语言之间的一种代码。
它的最大优点是,与计算机语言比较接近,易于转换为计算机程序。
书写无固定格式和规范,比较灵活。
四、 顺序结构的三大构成
顺序结构是按照书写顺序一条一条向下执行,在顺序结构程序中主要包含三类语句,
输入语句赋值语句,及输出语句。
- 1. 赋值语句
赋值语句 是由赋值表达式 加上一个分号构成。 语句都是以分号结尾的。
- 2. 输入语句输出语句
(1)从 计算机 向 外部输出设备 输出数据 称为输出,
从 输入设备 向 计算机 输入数据 称为输入。
(2)C语言本身不提供输入输出语句,输入输出操作是由C函数库中的函数实现的。
(3)一个预编译命令 #include
要用到“stdio.h”文件中提供的信息。文件后缀中的“h”是head的缩写,
#include命令都是放在程序的开头,因此这类文件被称为“头文件”。
- 3. 顺序结构的逻辑先后
设计出正确的算法 是编写正确的计算机程序的前提条件
算法设计—程序的灵魂和核心、
数据结构—程序的肉体。
面向过程的程序本质公式:算法+数据结构=程序。
数据结构指定义待操作数据在计算机 内存中是如何存储和组织的。
选择恰当的数据结构可以提高程序的运行或存储效率。
五、 Visio软件的安装及应用
Office Visio是微软公司推出一款便于IT和商务专业人员就 复杂信息、系统和流程进行可视化处理、分析和交流的软件
- 1. 常用两种线的画法
第一类:动态连接线(这条线只能以直角形式进行弯曲)
第二类:直线-曲线连接线该线只能以度角进行弯曲
- 2. 箭头的选择:一般默认为向下箭头,当然也可以进行选择(如图4)
- 3. 文字的注释:线上写文字一般双击左键进行编辑文字即可。
- 4. 画流程图要遵循流程图规范要求:
(1)各种框必须应用正确
(2)箭头方向正确
(3)文字表述正确
(4)解决问题步骤先后顺序正确
六、 基于流程图仿真的可视化----RAPTOR之让你的流程图飞起来
Raptor是用于 有序 推理的 快速算法 原型工具
下面我们来先说下Raptor的功能及介绍如下:
是一种基于流程图 仿真的 可视化的 程序设计环境
在 最大限度地减少语法要求
帮助你 编写正确的程序指令程序-流程图
逐个执行图形符号
跟踪指令流执行过程
Raptor是一个有向图,也就是必须有开始(Start)和结束(End)。
Raptor软件中 所有的操作 是在main窗口下 start 和 end 中间进行。
共有6种符号,
一个是方框 赋值 (Assignment),
一个是 调用 (Call),
输入 (Input)、
输出 (Output)、
选择 (Selection)
循环 (Loop)。
各个小窗口的功能如下所示:
RAPTOR设计的程序和算法可以直接转换成为C++、C#、Java等高级程序语言,
真的可视化----RAPTOR之再飞一会
1、Raptor中如果要想删除画多了的框,可以在选中的基础上,按“delete”删除。
2、注意在输入输出 提示内容时 ,必须用英文(也就是半角)符号双引号把提示内容括起来。
3、变量是相对于常量而言的,在程序执行过程中其值可以改变的量称为变量。。
4、注:在程序设计中我们用 * 号来代表算术运算中的乘法
5、Set 指的是我们要设置赋值给哪个变量
To 指的是给变量赋的值是谁
6、函数:完成特定功用的模块
求平方根函数sqrt()
常用函数有:
max( ) 最大值函数
min( ) 最小值函数
random 随机值函数
abs( ) 绝对值函数
sqrt()求平方根函数
小恐龙下载地址:https://raptor.martincarlisle.com/

C语言入门2-程序设计的灵魂—算法及Raptor的应用的更多相关文章
- C语言入门100题,考算法的居多
入门题,考算法的居多,共同学习! 1. 编程,统计在所输入的50个实数中有多少个正数.多少个负数.多少个零. 2. 编程,计算并输出方程X2+Y2=1989的所有整数解. 3. 编程,输入一个10进制 ...
- c语言入门教程 / c语言入门经典书籍
用C语言开始编写代码初级:C语言入门必备(以下两本书任选一本即可) C语言是作为从事实际编程工作的程序员的一种工具而出现的,本阶段的学习最主要的目的就是尽快掌握如何用c语言编写程序的技能.对c语言的数 ...
- 【转】c语言入门教程 / c语言入门经典书籍
用C语言开始编写代码 初级:C语言入门必备 (以下两本书任选一本即可) C语言是作为从事实际编程工作的程序员的一种工具而出现的,本阶段的学习最主要的目的就是尽快掌握如何用c语言编写程序的技能.对c语言 ...
- 【南阳OJ分类之语言入门】80题题目+AC代码汇总
小技巧:本文之前由csdn自动生成了一个目录,不必下拉一个一个去找,可通过目录标题直接定位. 本文转载自本人的csdn博客,复制过来的,排版就不弄了,欢迎转载. 声明: 题目部分皆为南阳OJ题目. 代 ...
- C语言入门经典书目推荐--转
国内良莠不齐的C语言教程数不胜数,同名如"C程序设计""C语言程序设计""C语言程序设计教程"的都多如牛毛,这些不知名的就不予考虑了,要看就 ...
- 踢爆IT劣书出版黑幕——由清华大学出版社之《C语言入门很简单》想到的(1)
1.前言与作者 首先声明,我是由于非常偶然的机会获得<C语言入门很简单>这本书的,绝对不是买的.买这种书实在丢不起那人. 去年这书刚出版时,在CU论坛举行试读推广,我当时随口说了几句(没说 ...
- Atitit.软件中见算法 程序设计五大种类算法
Atitit.软件中见算法 程序设计五大种类算法 1. 算法的定义1 2. 算法的复杂度1 2.1. Algo cate2 3. 分治法2 4. 动态规划法2 5. 贪心算法3 6. 回溯法3 7. ...
- 我为什么反对推荐新人编程C/C++语言入门?
虽然我接触编程以及计算机时间比较早,但是正式打算转入程序员这个行当差不多是大学第四年的事情 从03年接触计算机,07年开始接触计算机编程, 期间接触过的技术包括 缓冲区溢出(看高手写的shellcod ...
- C语言入门(7)——自定义函数
C源程序是由函数组成的.虽然在C语言入门系列前面几篇的程序中大都只有一个主函数main(),但实用程序往往由多个函数组成.函数是C源程序的基本模块,通过对函数模块的调用实现特定的功能.C语言中的函数相 ...
随机推荐
- delphi xe5 中TMemo控件的应用——for android
TMemo中的两个方法: TMemo.Lines.Add(stringxxx);意思是向TMemo中增加字符串stringxxx: TMemo.Lines.Text :=stringxxx,意思是清空 ...
- Hadoop 3、Hadoop 分布式存储系统 HDFS(好多彩色图)
HDFS是Hadoop Distribute File System 的简称,也就是Hadoop的一个分布式文件系统. 一.HDFS的优缺点 1.HDFS优点: a.高容错性 .数据保存多个副本 .数 ...
- <iOS小技巧> 返回上级目录操作Goback()方法
Goback()方法功能:返回上一级界面,通过判断 popViewControllerAnimated 类型是否为空,来判断是present还是pop出来,然后直接做了releaseSelf操作: - ...
- 一个基于jQuery写的弹窗效果(附源码)
最近项目中频繁遇到需要弹出窗口的功能,一直使用浏览器默认的Alert和Confirm弹窗,感觉视觉效果不是那么好,而从网上下载的话又找不到合适的,找到的话有些也是十分臃肿,有时候感觉学习配置的功夫自己 ...
- VS让人纠结的Release和网站一键发布
这篇文章不是讲什么知识点,而是开发过程中遇到的问题,一:希望博友看到后知道的给解释一下:二:自己记录一下,下次有时间好好研究一下. 说实话这个问题已经反反复复好几次了,每次都解决不了,都是已另一种方式 ...
- 04-MySQL中的数据类型
1 整体说明MYsql的数据类型#1. 数字: 整型:tinyint int bigint 小数: float :在位数比较短的情况下不精准 double ...
- git push 时 failed to push some refs 的解决方案
我们在利用 GIt 上传代码的时候,往往会遇到这样一个问题,导致我们的代码没有办法正常上传到仓库中 造成这个问题的原因其实很简单,就是因为远程仓库和本地库不一致. 基于这样的一个问题,解决办法自然也就 ...
- MyBatis 源码分析
MyBatis 运行过程 传统的 JDBC 编程查询数据库的代码和过程总结. 加载驱动. 创建连接,Connection 对象. 根据 Connection 创建 Statement 或者 Prepa ...
- Python初探-基础篇
python和其他语言其实是相似的,如果你会了另一门语言,那学习这个语言,会很快上手 1.mac下自带的有python,版本为2.7.0(可以用home brew python3 安装最新版本的pyt ...
- mysql产生死锁
select * from information_schema.innodb_trx; kill 对应线程ID show PROCESSLIST;