从问题到C语言程序设计

1.1计算机的问题求解方法

程序设计面向的问题

  1. 什么问题可以用程序的方法解决?

    • 打印九九乘法表

    • 图形变换

    • 文件压缩问题

    • .......

    • 一切可计算的问题

  2. 如何解决?

    1. 确定问题可计算

    2. 建立问题的数学模型

    3. 设计算法和数据结构

    4. 选择合适的计算机语言编写程序

    5. 调试运行程序分析结果

关于计算

  1. 什么是计算

    • 基于规则符号集合的变换过程,有限的步骤

  2. 可计算和不可计算

    • 可计算:输入与输出是明确的

    • 不可计算:旅行家问题

    • 理论上可计算的问题,实际上不一定有解

  3. 计算的复杂性

    • 时间复杂度:受问题规模影响(如:梅森素数)

    • 空间复杂度(不讨论)

关于算法

  1. 什么是算法

    • 有穷规则的集合,规则规定了解决某一特定类型的问题的运算序列(是解决问题的有限步骤)

  2. 算法的特征

    • 有穷性:有限步骤

    • 确定性:含义确切

    • 有效性:有效执行

    • 有零个或多个输入

    • 有一个或多个输出

  3. 算法描述方法:

    • 自然语言

    • 程序语言

    • 流程图----->传统方法

    • N-S图------->结构化程序设计方法(待补充

    • PAD图

    • 伪代码------>随意但不严谨的方法

  4. 算法优化:

    • 减少判断次数

  • 无效输出减少

  1. 总结:

    • 算法是解题步骤,设计取决于人的创造

    • 实际问题需要首先分析----抽象----建模,才能设计算法

    • 算法的5个特征,设计时必须满足

    • 基于计算机的问题求解和数学方法有很大不同

    • 算法需要用工程化的方法表达

    • 算法有很大的优化空间

结构化程序设计方法

  • 自顶向下,逐步求精

  • 单入口单出口

  1. 什么是好程序

    • 可读性好

    • 效率高

  2. 写好一个程序

    • 三个基本结构构成(顺序,选择,循环待补充

    • 不用GOTO语句(原则不用,适当使用)

  3. 良好的程序设计代码特点:

    • 正确性----正确实现功能

    • 易读性----易于阅读和理解,便于调试、修改和扩充

    • 健壮性----算法对交互和环境的反应或处理能力

    • 高效率----所需时空都小

  4. 良好的程序设计风格

    • 源程序文档化

    • 数据说明标准化

    • 语句规范化

    • 输入输出格式化

总结

  • 过程:问题---->程序---->指令序列---->结果

  • 从问题到程序---->抽象、建模+程序设计

  • 抽象、建模=可计算+计算复杂性

  • 程序设计=数据结构+算法+方法

  • 算法=问题分析+算法表达+程序实现

  • 程序实现=语言+环境

C语言01的更多相关文章

  1. c语言01次作业--分支,顺序结构

    C语言--第01次作业 1.1思维导图 1.2本章学习体会及代码量学习体会 1.2.1学习体会 本章学习让我体会良多.首先,不得不承认自己是一个非常马虎的人.常见的问题就是输出格式上常因为没有与题目要 ...

  2. C语言 01 形参实参

    之前的都在印象笔记记录 continue 结束本轮循环体,进入下一次循环.break 直接结束整个while循环 形参:定时函数时函数名后面中的参数实参:调用函数时传入的具体数据基本数据类型作为形参, ...

  3. C语言-01基础语法

    1)         总结常见文件的拓展名 .c 是C语言源文件,在编写代码的时候创建 .o 是目标文件,在编译成功的时候产生 .out 是可执行文件,在链接成功的时候产生 2)         总结 ...

  4. 重学C语言---01概述

    1.什么是C语言 C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点.计算机语言是从第二次世界大战以后,经历了戏剧性的发展过程.从机器语言到汇编语言和高级语言.C语言是与硬件 ...

  5. C语言 · 01背包

    最近老碰到DP问题,没整过,在网上有不少资料,转载此篇自:http://blog.csdn.net/libin56842/article/details/9338841 有N件物品和一个容量为V的背包 ...

  6. c语言-01背包问题

    01背包问题 问题:有N件物品和一个容量为V的背包.第i件物品的费用是c[i],价值是w[i].求解将哪些物品装入背包可使价值总和最大. 分析: 这是最基础的背包问题,特点是:每种物品仅有一件,可以选 ...

  7. OC语言-01类和对象

    // cc 文件名.m -framework Foundation 编译链接 #import <Foundation/Foundation.h> //枚举性别 typedef enum{ ...

  8. 算法实现c语言--01

    打印九九乘法表 #include<stdio.h> #include<stdlib.h> int main() { , j = ; ; i <= ; i++) { ; j ...

  9. Django之模板语言(三)------>自定义filter

    1.自定义filter: 1.在app01下面新建一个templatetags的python package包. 如果没有app01的话,可以通过命令行在manage中进行创建:python mana ...

随机推荐

  1. Vue管理系统前端系列一vue-cli4.x 初始化项目

    目录 项目介绍 技术基础 开发环境 安装工具 快速原型开发 创建项目 配置相关说明 目录结构 项目介绍 lion-ui 是一个基于 RBAC 的管理系统前端项目,采用 vue 和 element-ui ...

  2. 第7章 Spark SQL 的运行原理(了解)

    第7章 Spark SQL 的运行原理(了解) 7.1 Spark SQL运行架构 Spark SQL对SQL语句的处理和关系型数据库类似,即词法/语法解析.绑定.优化.执行.Spark SQL会先将 ...

  3. Vue DevTools 安装应用

    1.https: //github.com/vuejs/vue-devtools  从这上面下载Vue DevTools: 2.npm install(cnpm install) && ...

  4. 设置Anaconda启动jupyter的默认目录

    要解决的问题:安装好Anaconda后打开jupyter总是会自动跳到c:下的用户目录,通过以下方法可以修改其默认打开的目录 吐槽:竟然没有设置默认打开目录的选项,只能通过修改配置文件完成,让人不爽. ...

  5. 迷上我成真恋爱学心理学挽回她PDF文档资料完整版情感技巧脱单教程

    迷上我成真恋爱学心理学挽回她PDF文档资料完整版情感技巧脱单教程 成真迷上我偷听女人心挽回她课程 百度网盘迷上我教程pdf地址 百度网盘挽回她教程pdf+视频的地址 备用地址淘宝百度网盘发货地址 百度 ...

  6. 调试 Ingress Nginx

    由于 Ingress Nginx 是最受欢迎的 Ingress 控制器,因此接下来我们将介绍一些有关调试 ingress-nginx 的技巧. 调试 Ingress Nginx Ingress-ngi ...

  7. 最强云硬盘来了,让AI模型迭代从1周缩短到1天

    摘要:华为云擎天架构+ Flash-Native存储引擎+低时延CurreNET,数据存储和处理还有啥担心的? 虽然我们已经进入大数据时代,但多数企业数据利用率只有10%,数据的价值没有得到充分释放. ...

  8. MyEclipse2017 安装MAVEN插件办法

    笔者辛苦所写,如要留用,请标明出处,谢谢 —————————————————————————————————————————————————————— 笔者由于用到的项目使用到MAVEN,为了以后搭建 ...

  9. Vue.use() 不一样的发现

    1.Vue.use()首先是可以接受一个函数 var a = function () { console.log(a)}Vue.use(a) // 没有问题会输出a 2.当这个a上面有install属 ...

  10. Oracle 11G R2安装说明 -九五小庞

    教程版本Oracle 11.2.0.1.0