一、     什么是算法(5个特性)

算法就是   解决问题的方法和步骤。

算法为解决一个具体问题而采取的确定的  有限的 执行步骤  ,仅指  计算机   能执行的算法。

算法是程序设计的灵魂和核心。

  1. 1.       算法解决什么问题

算法的五大特性:

(1) 有穷性   算法在执行有限的步骤后自动结束、不会出现无限循环。

(2) 确定性   算法的每一步骤都具有确定的含义,不会出现二义性。

(3) 零个或多个输入  算法可以具有零个或多个输入。

(4) 一个或多个输出  算法至少有一个或多个输出,算法是一定需要输出的。

输出必须要有 ,输入可有可无!!

(5) 可行性。算法的每一步都必须是可行的,每一步都能够通过执行有限次数完成。

二、      算法的三大结构(3个结构)

程序采用自顶向下,逐步求精的方法来完善算法,

  1. 1.       顺序结构

顺序结构就是按照书写的顺序依次执行,不允许跨越任何一条语句。

  1. 2.       选择结构

选择结构又称为分支结构,

选择结构就是   根据条件判断是否成立,执行不同的语句段。

  1. 3.        循环结构

循环结构在有些书籍上也称为重复结构,即反复执行某一部分的操作

三、     算法的表达方式(4种)

  1. 1.       自然语言描述

自然语言就是人们日常使用的语言,可以是汉语、英语,或其他语言。

用自然语言通俗易懂,但文字冗长,容易出现歧义。

  1. 2.       流程图描述

流程图是用一些图框来表示各种操作。是算法的图形化表示。

用图形表示算法,直观形象,易于理解。

  1. 3.       NS结构化流程图描述   (不做NS里优缺点考核)

它的最重要的特点就是  完全取消了流程线,这样迫使算法只能从上到下顺序执行,从而避免了算法流程的任意转向,保证了程序的质量。

NS图优点就是形象、直观、节省篇幅,尤其适合于结构化程序的设计。

  1. 4.       伪码描述   (不做伪码里优缺点考核)

伪码是指介于自然语言和计算机语言之间的一种代码。

它的最大优点是,与计算机语言比较接近,易于转换为计算机程序。

书写无固定格式和规范,比较灵活。

四、     顺序结构的三大构成

顺序结构是按照书写顺序一条一条向下执行,在顺序结构程序中主要包含三类语句,

输入语句赋值语句,及输出语句。

  1. 1.       赋值语句

赋值语句  是由赋值表达式  加上一个分号构成。  语句都是以分号结尾的。

  1. 2.       输入语句输出语句

(1)从  计算机    向  外部输出设备   输出数据  称为输出,

从  输入设备 向   计算机        输入数据   称为输入。

(2)C语言本身不提供输入输出语句,输入输出操作是由C函数库中的函数实现的。

(3)一个预编译命令  #include

要用到“stdio.h”文件中提供的信息。文件后缀中的“h”是head的缩写,

#include命令都是放在程序的开头,因此这类文件被称为“头文件”。

  1. 3.       顺序结构的逻辑先后

设计出正确的算法   是编写正确的计算机程序的前提条件

算法设计—程序的灵魂和核心、

数据结构—程序的肉体。

面向过程的程序本质公式:算法+数据结构=程序。

数据结构指定义待操作数据在计算机  内存中是如何存储和组织的。

选择恰当的数据结构可以提高程序的运行或存储效率。

五、          Visio软件的安装及应用

Office Visio是微软公司推出一款便于IT和商务专业人员就 复杂信息、系统和流程进行可视化处理、分析和交流的软件

  1. 1.       常用两种线的画法

第一类:动态连接线(这条线只能以直角形式进行弯曲)

第二类:直线-曲线连接线该线只能以度角进行弯曲

  1. 2.       箭头的选择:一般默认为向下箭头,当然也可以进行选择(如图4)
  2. 3.       文字的注释:线上写文字一般双击左键进行编辑文字即可。
  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的应用的更多相关文章

  1. C语言入门100题,考算法的居多

    入门题,考算法的居多,共同学习! 1. 编程,统计在所输入的50个实数中有多少个正数.多少个负数.多少个零. 2. 编程,计算并输出方程X2+Y2=1989的所有整数解. 3. 编程,输入一个10进制 ...

  2. c语言入门教程 / c语言入门经典书籍

    用C语言开始编写代码初级:C语言入门必备(以下两本书任选一本即可) C语言是作为从事实际编程工作的程序员的一种工具而出现的,本阶段的学习最主要的目的就是尽快掌握如何用c语言编写程序的技能.对c语言的数 ...

  3. 【转】c语言入门教程 / c语言入门经典书籍

    用C语言开始编写代码 初级:C语言入门必备 (以下两本书任选一本即可) C语言是作为从事实际编程工作的程序员的一种工具而出现的,本阶段的学习最主要的目的就是尽快掌握如何用c语言编写程序的技能.对c语言 ...

  4. 【南阳OJ分类之语言入门】80题题目+AC代码汇总

    小技巧:本文之前由csdn自动生成了一个目录,不必下拉一个一个去找,可通过目录标题直接定位. 本文转载自本人的csdn博客,复制过来的,排版就不弄了,欢迎转载. 声明: 题目部分皆为南阳OJ题目. 代 ...

  5. C语言入门经典书目推荐--转

    国内良莠不齐的C语言教程数不胜数,同名如"C程序设计""C语言程序设计""C语言程序设计教程"的都多如牛毛,这些不知名的就不予考虑了,要看就 ...

  6. 踢爆IT劣书出版黑幕——由清华大学出版社之《C语言入门很简单》想到的(1)

    1.前言与作者 首先声明,我是由于非常偶然的机会获得<C语言入门很简单>这本书的,绝对不是买的.买这种书实在丢不起那人. 去年这书刚出版时,在CU论坛举行试读推广,我当时随口说了几句(没说 ...

  7. Atitit.软件中见算法 程序设计五大种类算法

    Atitit.软件中见算法 程序设计五大种类算法 1. 算法的定义1 2. 算法的复杂度1 2.1. Algo cate2 3. 分治法2 4. 动态规划法2 5. 贪心算法3 6. 回溯法3 7. ...

  8. 我为什么反对推荐新人编程C/C++语言入门?

    虽然我接触编程以及计算机时间比较早,但是正式打算转入程序员这个行当差不多是大学第四年的事情 从03年接触计算机,07年开始接触计算机编程, 期间接触过的技术包括 缓冲区溢出(看高手写的shellcod ...

  9. C语言入门(7)——自定义函数

    C源程序是由函数组成的.虽然在C语言入门系列前面几篇的程序中大都只有一个主函数main(),但实用程序往往由多个函数组成.函数是C源程序的基本模块,通过对函数模块的调用实现特定的功能.C语言中的函数相 ...

随机推荐

  1. Zookeeper 部署Zookeeper仲裁模式集群

    部署Zookeeper仲裁模式集群 本例在一台服务器上部署3个zk服务:z1.z2.z3. 1.下载Zookeeper https://zookeeper.apache.org/ 2.解压缩 .tar ...

  2. 一个类的实例化对象所占空间的大小(对象大小= vptr(可能不止一个) + 所有非静态数据成员大小 + Aligin字节大小(依赖于不同的编译器))

    注意不要说类的大小,是类的对象的大小. 首先,类的大小是什么?确切的说,类只是一个类型定义,它是没有大小可言的. 用sizeof运算符对一个类型名操作,得到的是具有该类型实体的大小. 如果 Class ...

  3. Delphi中Menu设置Images属性后快捷按键下划线被隐藏解决方法

    现象:MainMenu设置Images属性后,看不到快捷按键的下划线,如:新建(&N) 分析:VCL中Menus.pas单元的代码,看到如下语句procedure TMenuItem.Adva ...

  4. QTableWidget简单应用之文件浏览器

     实现下面这个简单的文件浏览功能,常用的QTableWidget设置都用到了.  基本设置 ui->tableWidget->setColumnCount(5); //设置表格列数 ui- ...

  5. 新玩法,CentOS7中LVM通过扩展逻辑卷扩展swap空间

    在我们日常运维工作中,偶尔也会遇到需要扩展swap空间的操作.扩展swap空间的方法很多,现在让我们一起来探讨一下,在LVM下扩展swap空间的方法. 1.查看一下卷组,是否还有空闲空间能用于扩展sw ...

  6. jquery 之load post get

    load() 方法从服务器加载数据,并把返回的数据放入被选元素中 load(url,data,fun(responseTxt ,responseTxt,xhr ){}) 必需的 URL 参数规定您希望 ...

  7. 大数据基础之Kafka(1)简介、安装及使用

    kafka2.0 http://kafka.apache.org 一 简介 Kafka® is used for building real-time data pipelines and strea ...

  8. Linux实战型企业运维工程师试题

    1.如何通过Linux配置一个局域网或者IDC机房上网网关,请给出步骤及命令?答:上网网关配置(1)开启内核转发:sed -i 's#net.ipv4.ip_forward = 0#net.ipv4. ...

  9. 分布式数据库中间件 MyCat 搞起来!

    关于 MyCat 的铺垫文章已经写了三篇了: MySQL 只能做小项目?松哥要说几句公道话! 北冥有 Data,其名为鲲,鲲之大,一个 MySQL 放不下! What?Tomcat 竟然也算中间件? ...

  10. Tomcat常见问题[内存溢出,虚拟目录配置等](一)

    一.Tomcat内存溢出的解决方法 内存溢出一般有如下三种常见的原因: OutOfMemoryError: Java heap space OutOfMemoryError: PermGen spac ...