一、     什么是算法(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. Delphi使用android的NDK是通过JNI接口,封装好了,不用自己写本地代码,直接调用

    一.Android平台编程方式:      1.基于Android SDK进行开发的第三方应用都必须使用Java语言(Android的SDK基于Java实现)      2.自从ndk r5发布以后, ...

  2. logstash performance testing

    最近一直在和peformance team的同事做logstash 5.6.2的测试,主要测试两个方面:一方面测试log数据是否能全部被logstash获取与发出去,一方面测试logstash自身的c ...

  3. java关键字-interface

    1:是用关键字interface定义的. 2:接口中包含的成员,最常见的有全局常量.抽象方法. 注意:接口中的成员都有固定的修饰符. 成员变量:public static final 成员方法:pub ...

  4. abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之列表视图(七)

    abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...

  5. Angular2国际化

    使用angular-cli初始化项目: ng new my-project 使用npm安装ngx-translate模块 npm install --save @ngx-translate/core ...

  6. composer使用本地仓库

    { "repositories": { "sms": { "type": "path", "url" ...

  7. spring源码深度解析— IOC 之 默认标签解析(下)

    在spring源码深度解析— IOC 之 默认标签解析(上)中我们已经完成了从xml配置文件到BeanDefinition的转换,转换后的实例是GenericBeanDefinition的实例.本文主 ...

  8. Android之控件学习

    文本域,类似于HTML里的textarea <EditText android:id="@+id/edit_text" android:layout_width=" ...

  9. CSS3之响应式布局及其应用

    使用 Media 属性前需添加兼容移动设备优先代码 <meta name=”viewport”content=”width=device-width,initial-scale=1.0,maxi ...

  10. centos7搭建基于SAMBA的网络存储

    学习目标: 通过本实验理解Linux系统下SAMBA服务器和客户端的配置,实现客户机可自动挂载服务端的共享存储. 操作步骤: 1.  SAMBA服务器搭建 2.  SAMBA客户端配置 参考命令:   ...