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使用android的NDK是通过JNI接口,封装好了,不用自己写本地代码,直接调用
一.Android平台编程方式: 1.基于Android SDK进行开发的第三方应用都必须使用Java语言(Android的SDK基于Java实现) 2.自从ndk r5发布以后, ...
- logstash performance testing
最近一直在和peformance team的同事做logstash 5.6.2的测试,主要测试两个方面:一方面测试log数据是否能全部被logstash获取与发出去,一方面测试logstash自身的c ...
- java关键字-interface
1:是用关键字interface定义的. 2:接口中包含的成员,最常见的有全局常量.抽象方法. 注意:接口中的成员都有固定的修饰符. 成员变量:public static final 成员方法:pub ...
- abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之列表视图(七)
abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...
- Angular2国际化
使用angular-cli初始化项目: ng new my-project 使用npm安装ngx-translate模块 npm install --save @ngx-translate/core ...
- composer使用本地仓库
{ "repositories": { "sms": { "type": "path", "url" ...
- spring源码深度解析— IOC 之 默认标签解析(下)
在spring源码深度解析— IOC 之 默认标签解析(上)中我们已经完成了从xml配置文件到BeanDefinition的转换,转换后的实例是GenericBeanDefinition的实例.本文主 ...
- Android之控件学习
文本域,类似于HTML里的textarea <EditText android:id="@+id/edit_text" android:layout_width=" ...
- CSS3之响应式布局及其应用
使用 Media 属性前需添加兼容移动设备优先代码 <meta name=”viewport”content=”width=device-width,initial-scale=1.0,maxi ...
- centos7搭建基于SAMBA的网络存储
学习目标: 通过本实验理解Linux系统下SAMBA服务器和客户端的配置,实现客户机可自动挂载服务端的共享存储. 操作步骤: 1. SAMBA服务器搭建 2. SAMBA客户端配置 参考命令: ...