C语言之程序设计概述

news/2024/11/27 19:30:38/

1.1.1 程序的概念

  1. 程序:算法 + 数据结构 + 程序设计方法 + 语言工具和环境
  2. 数据结构:数据的类型和数据的组织方式
  3. 算法:对数据操作的方法和步骤

1.1.2 程序设计语言的种类

  1. 第一代语言(机器语言):执行效率高、可读性和可移植性低
  2. 第二代语言(汇编语言):可读性增强、可移植性差,执行效率仅此机器语言
  3. 第三代语言(高级语言):相对低级语言执行效率低,可读性和可移植性高
  • 面向过程语言==》C语言
  • 面向对象语言
  1. 第四代语言(非过程化语言):如sql

1.1.3 语言处理系统

  1. 编译型
  2. 解释型
  3. 混合型

1.2.1 算法的概念

  1. 算法:为解决一个问题而采取的方法和步骤,就称为算法
  2. 计算机算法分类:
  • 数值计算算法:科学计算,少量的输入和输出,复杂的运算
  • 非数值计算算法:数据管理,大量的输入和输出,简单的算术和逻辑运算

1.2.2 算法的特性

  1. 有穷性
  2. 确定性
  3. 有效性
  4. 有零个或多个输入
  5. 有一个或多个输出

1.2.3 算法的描述方法

  1. 自然语言:通俗易懂,文字冗长,容易出现“歧义性”
  2. 传统的流程图
    在这里插入图片描述
  3. N-S图
    在这里插入图片描述
  4. 伪代码:用介于自然语言和计算机语言之间的文字和符号来描述算法
if x positive thenprint x
elseprint -x
  1. 计算机语言

1.3 程序设计的过程

  1. 分析问题
  2. 确定数学模型
  3. 算法设计
  4. 程序开发
  5. 运行和测试

主要以结构化程序为例
结构化程序的结果简单清晰,可读性好,模块化强,描述符合人们解决复杂问题的普遍规律,在应用软件开发中发挥了重要作用
在软件设计和实现过程中,提倡采用自顶向下、逐步细化的模块程序设计方法
强调采用单入口、单出口的三种基本控制结构,避免使用GOTO语句


http://www.ppmy.cn/news/19023.html

相关文章

C++:类的构造函数与析构函数

目录 一.前言 二.类的构造函数 1.构造函数基本概念与语法细则 2.编译器默认生成的无参构造函数和自定义构造函数 3.构造函数的特性(可重载) 4.关于构造函数的注意事项 5.构造函数的应用示例: 三.类的拷贝构造函数 1.拷贝构造函数基本概念 2.编译器默认生成…

7.Java判断和循环+面试相关力扣算法题详解

提示: 文章目录前言一、顺序结构二、分支语句(1)if语句(2)switch语句*default的位置和省略:*case穿透*switch新特性*switch和if的第三种格式各自的使用场景三、循环结构1.分类2.for循环3.while循环4.for和while的对比:5.for和while循环的区别:6.练习:四、面试时的两…

深入浅出PyTorch_【01】pytorch基础

#深入浅出PyTorch_【01】pytorch基础 2023.01.23 主要内容就是张量 自动求导 pytorch pytorch为深度学习框架,与Tensorflow为最火的两个框架。开始我们的学习 2.1 张量 张量的英文是Tensor,它是PyTorch里面基础的运算单位,与Numpy的ndarra…

数据结构 最短路径课设(源码+实验报告+视频讲解)(不要钱、用了自取)

XIAN TECHNOLOGICAL UNIVERSITY 课程设计报告 实验课程名称 算法与数据结构 专 业: 班 级: 姓 名: 学 号: 实验学时: 指导…

Ubuntu显示优化 动画

之前从win转到了ubuntu。老大哥问我为啥不直接用Mac。我笑笑没说话。其实就一个字,穷。 使用Ubuntu的过程中有一点小问题,不过平时我主要用来编程,对壁纸,过渡动画这些东西其实并不是很在乎。直到我审美感爆棚的妻子告诉我&#…

【题解】2023牛客寒假算法基础集训营2

目录A. Tokitsukaze and abn (easy)思路B. Tokitsukaze and abn (medium)思路Tokitsukaze and abn (hard)思路D. Tokitsukaze and Energy Tree思路bfsdfsE. Tokitsukaze and Energy Tree思维F. Tokitsukaze and Gold Coins (easy)思路G. Tokitsukaze and Gold Coins (hard)H. T…

为什么会有右值引用?(移动构造、移动赋值)

目录 1、左值引用的缺陷 2、移动构造:解决临时对象的深拷贝 3、拓展:移动赋值 1、左值引用的缺陷 左值引用作为函数参数传递,减少了参数拷贝;但是作为函数返回值,并不适用于所有场景,比如要返回一个临…

使用 Grafana 请求API接口

目的: 使用Grafana 配合JSON API 插件 请求API接口,完成可视化,实现一些简单的请求功能 假设我们想将如下的API接口返回的json数据可视化 这里借用一下 小熊同学的 金融数据接口 用请求如下接口举例 https://api.doctorxiong.club/v1/fund/detail?code000001&startDat…