首页 > 其他分享 >C语言学习记录(一)

C语言学习记录(一)

时间:2023-02-19 22:34:59浏览次数:41  
标签:语言 记录 程序 C语言 学习 算法 编写 程序设计 4GL

C语言学习记录(一)

一、知识要点(程序设计概述)

1、程序与程序设计语言

  • 概念:程序就是给计算机下一系列指令,使其完成任务。而编写这些指令就是程序设计。
  • 程序设计语言
    • 第一代程序设计语言(1GL):机器语言
      • 以二进制编码形式的机器基本指令集为基础的语言,称为机器语言。
      • 机器语言直接针对计算机硬件,所以速度很快,但是编写起来非常繁琐、复杂,且容易出错,修改困难。
    • 第二代程序设计语言(2GL):汇编语言
      • 人们用与代码指令意思相近的英文缩写词、字母和数字取代二进制码,这种程序语言叫做汇编语言
      • 汇编语言仍是面向机器的语言,还是比较复杂,但是用其编写的程序占内存少,运行速度快
      • 需要汇编程序将汇编符号翻译成机器语言。
    • 第三代程序设计语言(3GL):高级语言
      • 高级语言是一种与人类自然语言相近且不面向机器的程序设计语言。
      • 用高级语言编写的程序叫做源程序,源程序必须被翻译成机器代码后才能运行。
      • 编译方式:先将源程序完全翻译后,再运行。使用比较方便,效率较高。
      • 解释方式:一边翻译源程序一边运行,效率比较低,但是修改很灵活。
      • 早期的高级语言大多是面向过程的,很注重整个程序的执行方向。现在很多都是面向对象,不用在意子程序在程序中的位置。C++就是面向对象的程序设计语言。
    • 第四代程序设计语言(4GL):面向问题语言
      • 建立在面向过程之上,写代码时,只要寥寥几句,就可以让4GL包办了。
      • 4GL应比3GL提高生产率一个数量级以上;4GL只需告知计算机做什么,而不必告诉计算机该怎么做;4GL应有良好的用户界面,简单易学,使用灵活;4GL应具有生命性,不能适用范围太窄。

2、算法概述

  • 概念:为解决一个问题而采取的方法和步骤就叫算法。
    • 程序=数据结构+算法,其中数据结构就是数据的类型和数据的组织形式,是对程序中数据的描述。算法则是对程序中操作步骤的描述。
    • 程序设计的本质就是要将算法转化为计算机程序
  • 算法的表示方法
    • 使用自然语言描述算法:这种方法容易掌握,但有些操作不宜表述清楚,还可能造成歧义。
    • 使用流程图描述算法:传统流程图的一个主要不足就是流程线的用法缺乏规范,容易导致错误。人们设计的N-S流程图由于没有流程线,不能随意转换控制,算法按照从上到下,从左到右的方向执行,具有结构化的特点。
    • 使用伪代码描述算法:伪代码是一种主要采用自然语言,同时采用高级程序语言的基本控制结构来描述算法的执行顺序。虽然伪代码不如流程图直观,但是用它写出的算法容易转化为程序代码。

3、结构化程序设计方案

  • 结构化程序基本控制结构:以模块化设计为中心,将要编写的软件划分为几个相互独立的子模块,每一个模块的功能单纯、明确。
    • 顺序结构:是依次执行的结构,每条指令都必须执行,且只执行一次。
    • 选择(分支)结构:选择结构根据逻辑判断的结果,做不同的处理。
    • 循环结构:在循环结构中,当条件满足时,反复执行某语句,知道条件不满足时为止。
  • 结构化程序设计的原则和步骤
    • 原则
      • 自上而下:设计程序时,先考虑全局,再考虑细节;先考虑全局目标,再考虑局部目标。一开始不要追求太多细节,先从顶层总目标设计,逐步把问题具体化。
      • 逐步细化:对于复杂的问题,要把一些子目标设计成过渡,逐步细化。
      • 模块化:一个复杂的问题必须由许多稍微简单的问题组成。模块化就是把程序要解决的总目标分解成子目标,再进一步分解成具体的小目标,把每个小目标称为一个模块。
      • 限制goto语句的使用
    • 步骤:问题分析→建立数学模型→算法设计→程序编码→测试→建立程序文档(写注释)

问题解答

1、什么是程序设计?——编写指令,然后让计算机执行指令就是程序设计。

2、低级语言和高级语言的主要区别是什么?——低级语言面向机器,编写复杂困难但执行速度快。而高级语言在一定程度上与计算机硬件无关。

3、为什么说算法是程序的灵魂?——算法由数据结构和算法构成,数据结构相当于原材料,而算法则把这些材料组合起来了。

4、结构化程序设计的基本思想是什么?——将一个大程序拆分成一个个独立的子程序,然后再细化编写,直至各个小问题获得解决为止。

标签:语言,记录,程序,C语言,学习,算法,编写,程序设计,4GL
From: https://www.cnblogs.com/dragon-dai/p/17135811.html

相关文章

  • c++学习笔记——模板和IO(一)
    前言本文主要作为本人学习C\C++历程的的一种记录,以期望通过这种方式加深对知识点的记忆,查漏补缺。如有写得不对的地方,欢迎大家批评改正。模板概论模板是泛型编程的基础,......
  • PMP学习笔记《第六章 项目进度管理》
    项目进度管理包括为管理项目按时完成所需的各个过程。项目进度计划(Schedule)说明了项目如何以及何时交付项目范围中定义的产品、服务和成果。创建WBS最底层得到的是工作包,......
  • Linux、Rust、C++学习笔记(day1)
    序言从今天开始以Ubuntu22.04为开发环境,学习Linux、Rust和C++的开发。博文作为个人学习记录和分享,欢迎各位与笔者讨论交流!开发环境搭建我的机器是腾讯云的云服务器。腾......
  • 深度剖析 ZooKeeper 核心原理 学习笔记
    什么是ZooKeeper假设对ZooKeeper中的数据做了变更(比如新增了一台Kafka或者挂掉了一个Kafka节点),这时候ZooKeeper会主动通知其他监听这个数据的客户端,立即告诉其他......
  • 学习
    经过多次尝试,成功打包-i或-icon生成icon -F创建一个绑定的可执行文件-w使用窗口,无控制台 -C使用控制台,无窗口-D创建一个包含可执行文件的单文件夹包(默......
  • 寒假学习总结
    这个作业属于哪个课程班级这个作业要求在哪里作业的要求这个作业的目标对寒假学习的总结寒假学习总结一、回顾在本次寒假的学习当中,收益颇丰,每次作业......
  • 「AcWing学习记录」Dijkstra
    AcWing849.Dijkstra求最短路I原题链接朴素Dijkstra1.dis[1]=0,dis[i]=\(+\infty\)2.for(inti=0;i<n;i++)s:当前已确定最短距离的点t\(\leftarrow\)......
  • 深度学习框架百度飞桨、Facebook pytorch和谷歌 TensorFlow的区别
    百度飞桨、Facebookpytorch和谷歌TensorFlow的区别https://www.zhihu.com/question/449784762/answer/2620586949【window环境】Python安装与深度学习环境(tensorflow)配......
  • SPI学习记录
    SPI学习记录场景采用Netty实现一个RPC框架,对于其中的服务发现机制,我们希望具有较强的扩展性,因此采用SPI机制来实现。首先定义一个SPI注解,所有带有SPI注解的类支持SPI机......
  • 学习ASP.NET Core Blazor编程系列二十六——登录(5)
    学习ASP.NETCoreBlazor编程系列文章之目录学习ASP.NETCoreBlazor编程系列一——综述学习ASP.NETCoreBlazor编程系列二——第一个Blazor应用程序(上)学习A......