从问题到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. 可以用命令行控制eclipse断点增加删除、远程调试创建与启动的插件

    java # 创建断点(支持条件断点) curl -X PUT -H "Content-Type:application/json" --data '{"language ...

  2. 【算法•日更•第四十二期】离散傅里叶变换(DFT)

    ▎前言 小编相当的菜,这篇博客难度稍高,所以有些可能不会带有证明,博客中更多的是定义. 我们将要学到的东西: 复数 暴力多项式乘法 DFT 当然,小编之前就已经写过一篇博客了,主要讲的就是基础多项式, ...

  3. Android PopupWindow显示之后所在的Activity结束的时候出现短暂黑屏问题

    在当前Activity弹出PopuoWindow后,点击取消弹窗,然后结束当前Activity时会出现短暂黑屏现象.这是由于设置背景透明度时候造成的. //设置添加屏幕的背景透明度 public vo ...

  4. 虚拟化技术之kvm虚拟机创建工具qemu-kvm

    在前边的博客中我们介绍了如何创建kvm虚拟机,以及一些常用的工具的介绍和使用,今天我们来了解下kvm原始工具qemu-kvm:为什么说qemu-kvm是一个原始的工具呢,如果你用kvm虚拟机,心细的你 ...

  5. [转]camera教程

    camera教程 Lens一般由几片透镜组成透镜结构,按材质可分为塑胶透镜(plastic)或玻璃透镜(glass),玻璃镜片比树脂镜片贵.塑胶透镜其实是树脂镜片,透光率和感光性等光学指标比不上镀膜镜 ...

  6. 区块链入门到实战(32)之Solidity – 代码注释

    Solidity 支持c风格和c++风格的注释. //之后到行尾的文本,都被看作注释,编译器忽略此内容 /* 与 */ 之间的文本被看作注释, 编译器忽略此内容 示例 注释示例. function g ...

  7. Nginx反向代理的使用

    一.Nginx的基本命令 nginx:启动 nginx nginx -t :测试配置文件是否有语法错误 nginx -s reopen:重启Nginx nginx -s reload:重新加载Ngin ...

  8. Asp.Net Core Swagger 接口分组(支持接口一对多暴露)

    开始之前,先介绍下swagger常用方法. services.AddSwaggerGen    //添加swagger中间件 c.SwaggerDoc  //配置swagger文档,也就是右上角的下拉 ...

  9. 用aop去解决事物问题(tx)记录学习之aop1.2

    上一个文章我们了解了什么事aop,以及aop的使用方法,主要是把自己想要加入的通知(advice)加入到我们的方法里, 比如上一章我们说的事把myadvice类中的before方法织入到userser ...

  10. PJSIP 机器人

    摘要: 最近再研究PJSIP,有一个需求,再适当的时候,需要给远程客户端放音,比如:播放一段广告.或者一段音乐.需要采用API来实现. 正文: 最近想用PJSIP做一个机器人,想法比较简单就是获取客户 ...