• 学习C程序设计(一)第一节总览


    1.程序设计面向的问题

    一切可计算问题都可以用程序的方法解决。ps:这样程序与计算有关了

    1.1程序设计的五个步骤:

    a.确定问题可以计算;(问题是可计算)

    b.建立问题的数学模型;(不懂)

    c.设计算法和数据结构;(好奇啊)

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

    e.调试运行程序分析结果。

    1.2学习程序设计的目的

    a.培养基于计算机进行计算思维的意识;

    b.培养用计算机语言求解问题的能力;

    2.关于计算

    计算机就是一个数据加工厂,如何加工便是通过计算完成的。

    2.1什么是计算

    程序设计就是依据问题来选择我们要进行的计算。

    计算是基于规则的符号集合的变换过程。

    详细的解释是:从一个按规则组织的符号集合开始,再按照既定的规则一步步地改变这些符号集合,经过有限步骤之后得到一个确定的结果。

    2.2可计算与不可计算

    如果输入参数与输出参数是对应关系是明确的,则说明这个问题是可计算的。

    也有不可计算的问题,比如(图灵机停机问题,旅行家问题……)

    计算机只能完成可计算问题

    2.3计算复杂性

    衡量计算的复杂性,从时间复杂度和空间复杂度两个方面。

    计算机只适合可计算并且有限步骤能够结束的计算

    所以,实际问题中比较复杂的问题要分解,分解到计算机可有限步骤内完成的程度

    3.关于算法

    3.1什么是算法

    是有穷规则的集合,规则规定了解决某一特定类型问题的运算序列。PS:计算的方法,哈哈

    运算序列是解决问题的有限步骤

    对实际问题的抽象和形式化表达,或者对复杂问题要分解;

    一般问题:分析--抽象--建立模型

    事例(两杯水交换问题)

    3.2算法的特性

    算法是人的思维,不是计算机的思维

    a.有穷性:有限步骤

    b.确定性:含义确切,不要有二义性

    c.有效性:比如不要0除什么

    d.输入:有时候可以没有,但很少

    e.输出:必须要有输出。

    事例(三个套娃),人排序套娃和计算机排序套娃是思维不一样的,计算机得每个都要比。这样可以引出对算法的描述问题

    3.3算法的表示方法

    算法的描述问题是程序设计中非常重要的方面

    算法的描述方法有六种,分别是自然语言、程序语言、伪代码、流程图、N-S图和PAD图

    通常描述算法的方式有两种,一种是流程图,另一种是N-S图。

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

    3.3.1流程图

    流程图算是比较好的。PS:老大之前也这样说过,他有不少经验,所以建议画流程图

    流程图通用的符号有,起止框,输入输出框,处理框,判断框,注释框和流程限,还有连接线。PS:没有遇到过连接线啊!

    3.3.2画流程图

    任何程序的三部曲:输入--处理--输出,而且还必须有开始和结束,所以,开始--输入--处理--输出--结束。往往处理框的内容是最多,而且要分解

    3.3.3一定要画流程图

    流程图即使算法的设计,正确的表达算法。对于复杂问题,不可能拿上代码就写程序。PS:这点对我来说,很有启示,一定要画流程图,在写代码之前,无论是什么问题

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

    实际问题需要首先分析--抽象--建模,才能有设计算计,那么抽象和建模怎么理解呢?问题一

    3.4算法的优化

    算法有很大的优化空间,而优化体现了人的聪明才智。

    4.结构化程序设计方法

    什么是好的程序,第一是可读性好,第二是效率高,这里着重说第一点,毕竟排得第一。

    4.1可读性好

    让别人看得清晰,过段时间便于读懂,而且容易扩展。

    4.2如何做到可读性好

    用三种基本结构、取消goto和结构化设计方法。

    任何简单或复杂的算法都可以由顺序结构、选择结构和循环结构这三种基本结构组合而成,每一种结构都是一个入口和一个出口,即单入口单出口。

    程序设计方法:

    要自顶而下,逐步求精(一步一步分解)

    上面的三个结构,然后结构都是独立存在,任何结构只能有一个输入和一个输出,这要好好理解

    尤其是对复杂问题分解的时候,要分解分解再分解,细化到程序可以执行的程序,然后每一步的分解都能用三种基本结构去描述

    5总结

    用计算机求解问题的一般方法

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

    从问题到程序,应该是先对实际问题抽象、建模,然后再是程序设计。

    回答问题一,抽象、建模=可计算+计算复杂性

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

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

    程序实现=语言+环境

    如果想真正使用计算机,就需要学习程序设计;程序设计的结果最终是需要计算机语言来实现的

    ==============================================================================================================================

    问题二:为啥cpu对判断和赋值的运行不同?要看那本教材?

  • 相关阅读:
    Android外部SD卡的读取
    TableLayout(表格布局)
    Android中Adapter之BaseAdapter使用
    Android中Spinner下拉列表(使用ArrayAdapter和自定义Adapter实现) .
    html5新增及废除属性
    Android Studio运行程序出现Session ‘app’: Error Launching activity 解决办法
    Android的面孔_Actiyity
    初步理解类和对象
    zabbix(2)使用指南
    zabbix(1)基础知识
  • 原文地址:https://www.cnblogs.com/158-186/p/9174546.html
Copyright © 2020-2023  润新知