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语言中的函数相 ...
随机推荐
- PHP发送邮件功能实现(使用163邮箱)
第一步 我用的是163邮箱发送邮件,做一个尝试,在尝试之前,需要要开启163邮箱的授权码如图所示,请记住您的授权码,将在之后的步骤中用到 第二步 需要下载一个类PHPMailer,我有这个资源已经上传 ...
- 去除文件属性(使用SetFileAttributes API函数)
FILE_ATTRIBUTE_ARCHIVE 文件存档(备份或移动时会对文件做标记).FILE_ATTRIBUTE_ENCRYPTED 加密(对文件来说是内容加密,对目录来说是对将来新建的文件默认为加 ...
- 减少Qt编译时间暨简单Qt裁剪
本站所有文章由本站和原作者保留一切权力,仅在保留本版权信息.原文链接.原文作者的情况下允许转载,转载请勿删改原文内容, 并不得用于商业用途. 谢谢合作.原文链接:减少Qt编译时间暨简单Qt裁剪 编译一 ...
- ansible(二)
一.软件相关模块 1.yum(下载包) 正常操作 yum 与rpm的区别 yum可以解决依赖关系rpm 全称readhat package manager(红帽包管理工具),需要自己解决依赖 yum源 ...
- Redis 学习笔记(篇二):字典
字典 字典又称为符号表.关联数组或映射(map),是一种用于保存键值对(key-value)的数据结构. 那么 C 语言中有没有这样 key-value 型的内置数据结构呢? 答案:没有. 说起键值对 ...
- Redis相关面试题
Reids:单线程+io多路复用机制 Redis与Memcached的区别: 一.memcached值是简单字符串,redis支持hash.set.list等复杂数据类型 二.redis可持久化数据, ...
- React躬行记(5)——React和DOM
React实现了一套与浏览器无关的DOM系统,包括元素渲染.节点查询.事件处理等机制. 一.ReactDOM 自React v0.14开始,官方将与DOM相关的操作从React中剥离,组成单独的rea ...
- 向Rocket.Chat推送消息
Rocket.Chat推送消息 Rocket.Chat是一个开源实时通讯平台, 支持Windows, Mac OS, Linux. 支持聊天, 文件上传, 视频通话, 语音通话功能. 向Rocket. ...
- BFS(五):八数码难题 (POJ 1077)
Eight Description The 15-puzzle has been around for over 100 years; even if you don't know it by tha ...
- 并发编程-concurrent指南-回环栅栏CyclicBarrier
字面意思回环栅栏,通过它可以实现让一组线程等待至某个状态之后再全部同时执行. java.util.concurrent.CyclicBarrier 类是一种同步机制,它能够对处理一些算法的线程实现同步 ...