C语言之程序设计概述

news2024/9/23 19:24:11

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 then
	print x
else
	print -x
  1. 计算机语言

1.3 程序设计的过程

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/176648.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Leetcode每日一题】35.搜素插入位置|二分查找数组下标

🌱博主简介:大一计科生,努力学习Java中!热爱写博客~预备程序媛 📜所属专栏:LeetCode每日一题–进击大厂 ✈往期博文回顾: 【JavaSE】保姆级教程|1万字10张图学会类与对象–建议收藏 🕵️‍♂️近期目标&…

【题解】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…

高效团队的gitlab flow最佳实践

当前git是大部分开发团队的首选版本管理工具,一个好的流程规范可以让大家有效地合作,像流水线一样有条不紊地进行团队协作。 业界包含三种flow: Git flowGithub flowGitlab flow 下面我们先来分析,然后再基于gitlab flow来设计一…

19、Javaweb案例-登录功能

项目导入 选择travel项目的pom.xml文件,点击ok,完成项目导入。需要等待一小会,项目初始化完成。 启动项目 方式一: 方式二:配置maven快捷启动 技术选型 Web层 Servlet:前端控制器html:视图Fi…

【c语言】数据结构-顺序表

主页:114514的代码大冒险 qq:2188956112(欢迎小伙伴呀hi✿(。◕ᴗ◕。)✿ ) Gitee:庄嘉豪 (zhuang-jiahaoxxx) - Gitee.com 文章目录 目录 文章目录 前言 一、顺序表是什么? 二、项目功能的逐一实现(基本&a…

Python-Flask-2023.1.22

1、WSGIweb server gateway interface一个框架定义的简单通用的接口Web服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI)是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口。flask框架内有默认的…

手写vue及源码解析一 rollup环境的搭建

开篇 都手写源码了,那就顺便分析一下源码吧。 rollup环境的搭建 作为了解就行。需要使用rollup来编译我们自己手写的vue代码。 需要安装rollup,rollup的babel插件,以及babel核心和babel预设(可以理解为初始化模板)。 mkdir vu…

Java变量定义时候的注意事项

常量定义的基本注意事项 在JAVA语言中,主要利用final关键字,(在Java类中灵活使用static关键字)来定义常量。 当常量被设定后,一般情况下就不允许在进行更改了,如可以利用以下的形式来定义常量:…

仿写Dubbo-Java Socket

概念 socket 被翻译为“套接字”,socket是计算机之间进行通信的一种方式。通过socket可以实现端(端口)到端通信。Java的java.net包中提供了进行socket通信的类。主要使用ServerSocket和Socket类实现通信。 ServerSocket 服务端应用使用java.net.ServerSocket类来获取…

Node.js 操作MongoDB (Mongoose) 数据库

在讲Node.js通过使用mongoose模块来操作MongoDB数据库之前首先是关于MongoDB数据库的安装和MongoDB服务以及对MongoDB命令行的操作和可视化工具MongoDBCompass的一个基本使用;那么在这里已经准备好了关于MongoDB数据库的内容了: MongoDB数据库安装详细 &…

学习shell与shell编程

Linux配置文件都是以ASCII的纯文本形式存在。 为什么学习vi 1)UnixLike系统都会内置vi文本编辑器,其他的文本编辑器则不一定存在 2)许多软件的编辑接口都会主动调用vi 3)vi具有程序编辑的能力,可以主动以字体颜色辨别语法的正确性 4)程序简单&#…

06-jquery函数

2.6函数 .6.1第一组函数 1 val():操作dom函数的value值 val():没有参数,获取dom数组中第一个dom对象的value值。 val(参数):有参数,给dom数组中所有dom对象的value属性赋值。 2 text():操作标签文本内容,…

springCloud集成elk+filebeat+kafka+zipkin实现多个服务日志链路追踪聚合到es

一、目的 如今2023了,大多数javaweb架构都是springboot微服务,一个前端功能请求后台可能是多个不同的服务共同协做完成的。例如用户下单功能,js转发到后台网关gateway服务,然后到鉴权spring-sercurity服务,然后到业务…

【实操案例十一】使用try-except手动捕获异常 实例代码及运行效果图!

任务一&#xff1a; 编写程序输入学员成绩 异常捕获忘了的同学&#xff0c;可以参考这个&#xff1a;Bug的常见类型及异常处理机制 # 任务一&#xff1a; 编写程序输入学员成绩iint(input(请输入学员成绩&#xff1a;)) if 0<i<100:print(i) else:raise Exception(分数…

产品设计-基础控件-信息输入控件

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 产品设计-基础控件-信息输入控件1.1.文本框一、1.1.11.1.2、占位符文本1.1.3 输入框1.1.4 帮助文本1.1.5 初始默认值1.1.6 输入文本1.1.7 跟踪图标1.1.8 格式化标记1.2 单选按…

java枚举类2023028

一个类的对象是有限而且固定的&#xff0c;比如季节类&#xff0c; 它只有4个对象&#xff1b;再比如行星类&#xff0c;目前只有8个对象。这种实例有限而且固定的类&#xff0c;在Java里被称为枚举类。在早期代码中&#xff0c;可能会直接使用简单的静态常量来表示枚&#xff…

设计模式 - 六大设计原则之OCP(开闭原则)

文章目录概述Case接口定义接口实现Bad ImplBetter Impl概述 Open-Close Principle 在面向对象编程领域中&#xff0c;开闭原则规定软件中的类、对象、模块和函数对扩展应该是开放的&#xff0c;但对修改是封闭的。 这意味着 应该用抽象定义结构&#xff0c;用具体实现扩展细节…

使用 AJAX+JSON 实现用户查询/添加功能

实现用户查询/添加功能1. 查询功能准备selectAllServlet&#xff1a;brand.html&#xff1a;2. 添加功能addBrand.html&#xff1a;表单&#xff1a;<script&#xff1a;addServlet&#xff1a;1. 查询功能 需求&#xff1a;在onload&#xff08;页面加载完成&#xff09;事…

SSM项目实战【从 0 到 1】:个人博客

文章目录前言一、项目简介二、项目技术栈三、准备工作1、Spring Boot 项目创建2、mybatis 配置3、数据库创建四、基本框架搭建1、实体层&#xff08;model&#xff09;2、控制器层&#xff08;controller&#xff09;3、服务层&#xff08;service&#xff09;4、持久层&#x…

Liunx相关服务无法启动,带你一步一步找出问题和解决问题

liunx服务无法开启的原因有各种各样&#xff0c;首先我们需要找到我们究竟是为什么不能能够开启这个服务&#xff0c;这里我们先要去考虑到的一个非常重要的问题就是我们的防火墙有没有启动&#xff0c;防火墙有没有把我们的要开启相关服务的端口给封禁掉。这个是无论如何都要第…