程序设计基础

news2024/9/24 19:21:45

一、程序

1.什么是程序?

    程序可以看作是对一系列动作的执行过程的描述

    计算机程序是指为了得到某种结果而由计算机等具有信息处理能力的装置执行的代码化指令序列

    程序的几个性质

●  目的性

●  分步性

有限性

●  可操作性

               ●  有序性

2.指令和指令系统

计算机指令是一组符号,它表示人对计算机下达的命令。人通过指令来告诉计算机“做什么”和“怎么做”

计算机所能执行的全部操作指令称为指令系统,不同类型的计算机系统有不同的指令系统。

3.程序设计

   通常计算机处理一个问题(程序设计),需要经过以下步骤

1)分析问题

2)建立数学模型

3)确定算法(算法设计)

4)编写源程序

5)程序调试

6)整理资料

4.结构化程序设计的基本原则

       任何复杂的算法,都可以由顺序结构、选择(分支)结构和循环结构这3种基本结构组成,因此,构造一个解决问题的具体方法和步骤的时候,也仅以这3种基本结构作为“建筑单元”,遵守3种基本结构的规范,基本结构之间可以相互包含,但不允许交叉,不允许从一个结构直接转到另一个结构的内部  

5.模块化程序设计概念

1)自顶向下

2)逐步求精

3)模块化

4)限制使用Go To语句

6.模块化程序设计的原则

1)模块。当把要开发的一个较大规模的软件,依照功能需要,采用一定的方法(例如,结构化方法)划分成一些较小的部分时,这些较小的部分就称为模块,也叫作功能模块。

2)模块化设计。通常把以功能模块为设计对象,用适当的方法和工具对模块的外部(各有关模块之间)与模块内部(各成分之间)的逻辑关系进行确切的描述称为模块化设计。

7.面向对象的程序设计

面向对象的程序设计(Object Oriented ProgrammingOOP

面向对象的程序设计风格中,会将一个问题分解为一些相互关联的子集,每个子集内部都包含了相关的数据和函数。同时,会以某种方式将这些子集分为不同等级,而一个对象就是已定义的某个类型的变量。

传统的结构化分析与设计技术相比,面向对象技术具有许多明显的优点,主要体现在以下3个方面。

1)可重用性

2)可维护性

3)表示方法的一致性

二、算法

1.算法

算法是程序设计的精髓,可以把它定义成在有限步骤内求解某一问题所使用的一组定义明确的规则。在计算机科学中,算法要用计算机算法语言描述,算法代表用计算机解一类问题的精确、有效的方法。通俗点说,就是计算机解题的过程。在这个过程中,无论是形成解题思路还是编写程序,都是在实施某种算法。前者是推理实现的算法,后者是操作实现的算法。 

2.算法的概念

算法是一组有穷的规则,它规定了解决某一特定类型问题的一系列运算,是对解题方案的准确与完整的描述

对算法的学习包括5个方面的内容。

1)设计算法

2)表示算法

3)确认算法

4)分析算法

5)验证算法

3.算法的特征

算法应该具有以下5个重要的特征

1确定性

2可行性

3输入

4输出

5)有穷

4.算法的描述

算法是解题方法的精确描述。描述算法的工具对算法的质量有很大的影响。

1自然语言

        自然语言就是日常使用的语言,可以使用中文,也可以使用英文。用自然语言描述的算法,通俗易懂,但是文字冗长,准确性不好,易于产生歧义性。因此,一般情况下不提倡用自然语言来描述算法。

2伪码

伪码不是一种现实存在的编程语言。使用伪码的目的是为了使被描述的算法可以容易地以任何一种编程语言实现。它可能综合使用多种编程语言中语法、保留字,甚至会用到自然语言。因此,伪代码必须结构清晰,代码简单,可读性好,并且类似自然语言。

3流程图

4N-S结构图

 

三、程序设计的基本控制结构

结构化程序设计提出了顺序结构、选择(分支)结构和循环结构3种基本程序结构。一个程序无论大小都可以由3种基本结构搭建而成。

1.顺序结构

2.选择结构

3.循环结构

四、程序设计语言

1.机器语言

        二进制代码形式组成的规定计算机动作的符号叫作计算机指令,这些指令的集合就是机器语言

        机器语言与计算机硬件关系密切。由于机器语言是计算机硬件唯一可以直接识别和执行的语言,因而机器语言执行速度最快。同时使用机器语言又是十分痛苦的,因为组成机器语言的符号全部都是“0”和“1”,所以在使用时特别烦琐、费时,特别是在程序有错需要修改时,更是如此。而且,由于每台计算机的指令系统往往各不相同,所以在一台计算机上执行的程序,要想在另一台计算机上执行,必须另编程序,造成了工作的重复。

2.汇编语言

        汇编语言中,用“助记符”代替操作码,用“地址符号”或“标号”代替地址码,也就是用“符号”代替了机器语言的二进制码,所以汇编语言也被称为符号语言

        汇编语言编制的程序输入计算机后,计算机不能像用机器语言编写的程序一样直接被识别和执行,必须通过预先放入计算机中的“汇编程序”的加工和翻译,才能变成能够被计算机识别和处理的二进制代码程序。这种起翻译作用的程序叫作汇编程序。

3.高级语言

        接近数学语言或自然语言,同时又不依赖于计算机硬件,编出的程序能在所有机器上通用的语言。

        高级语言编写程序的过程称为编码,编写出来的这些程序叫源代码(或源程序)

        高级语言编写的程序需要被翻译成目标代码,即机器语言才能被计算机执行,通常将高级语言翻译为机器语言的方式有两种:解释方式和编译方式

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

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

相关文章

Splasthop 安全远程访问帮助企业对抗 Cobalt Strike 载荷网络攻击

一、背景 根据 FreeBuf(标题为:潜藏系统2个月未被发现,新型网络攻击瞄准中国高价值目标)和 The Hacker News(标题为:New Cyberattack Targets Chinese-Speaking Businesses with Cobalt Strike Payloads&a…

农产品自主供销系统小程序的设计

管理员账户功能包括:系统首页,个人中心,农产品管理,资讯信息管理,订单管理,资讯回复管理 微信端账号功能包括:系统首页,农产品,购物车,我的 开发系统&#…

接口自动化测试学习 —— Mock服务实现

1.Mock实现原理和实现机制 在某些时候,后端在开发接口的时候,处理逻辑非常复杂,在测试的时候,后端在未完成接口的情况下该如何去测试呢? 我们需要测试,但是有些请求又需要修改一下参数,或者改变…

说明书keithley2420吉时利2410数字源表

说明书keithley2420吉时利2410数字源表 产品概述 Keithley 2420 高压源表是一款 60W 仪器,设计用于提供和测量 5V(源)和 1V(测量)至 60V 的电压和 100pA 至 3A 的电流。2420 型的生产测试应用包括必须在更高电流水平下…

微信和苹果叫板的资本

这两天,关于苹果用户还能不能使用微信这么一个新闻炒得沸沸扬扬的。其实,在很多年前我就说过,腾讯和苹果必有一战。那么这一战到了今天终于到来了。 原因其实也很简单。这个事件的背后,并不是简单的腾讯和苹果彼此之间抽成争夺的问…

pr瘦脸怎么操作?

相信大家平时在拍摄自己的日常生活的时候,通常为了保证视频的清晰度往往都会选择原相机进行拍摄,原相机拍摄自然就会清清楚楚的将我们的真实展现出来,特别是脸部肥大~那么,这么大的一张脸这么可以瘦下去呢?其实使用PR软…

glsl着色器学习(五)

接下来是创建buffer,设置顶点位置,法线,顶点索引等。 const cubeVertexPositions new Float32Array([1, 1, -1,1, 1, 1, 1, -1, 1, 1, -1, -1,-1, 1, 1, -1, 1, -1,-1, -1, -1,-1, -1, 1,-1, 1, 1,1, 1, 1,1, 1, -1,-1, 1, -1,-1, -1, -1,1…

2024.9.3C++

自行实现Mystring类 #include <iostream> #include <cstring> using namespace std;class mystring { public:mystring(){len 0;str nullptr;}mystring(const char* s){len strlen(s);str new char[len 1];strcpy(str, s);}mystring(const mystring& othe…

短时相关+FFT捕获方法的MATLAB仿真

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 短时相关FFT捕获方法的MATLAB仿真 前言短时相关FFT捕获相关原理1、频偏引起的相关损失2、扇贝损失 MATLAB程序获取完整程序 前言 对于算法类的工程&#xff0c;FPGA设计&…

pandas数据处理库使用

文章目录 链接: [原文章链接](https://mp.weixin.qq.com/s?__bizMzkzNjI3ODkyNQ&tempkeyMTI4Nl8zM3FHVFU1NDRDL0p2SkplRTVidmhiNmh1ZWF3YXkwY3VYZlZNaWx0MXowdThFbVRUVEFEdEs5YlU2SUJLcmtXTHZpbnFmR2V6SG1rbGJyd01zYnRkdURWa1ZvNGtIU1piWDd5RFA4OUxkNmlaVmZ1QVpEd2tWR25IR…

MySQL常用窗口函数总和

在 MySQL 中&#xff0c;窗口函数是一类用于在查询结果集中计算值的函数&#xff0c;允许用户根据数据行进行聚合或排序操作&#xff0c;同时保留行的详细信息。窗口函数在分析数据时非常有用&#xff0c;因为它们允许您在不缩小结果集的情况下对数据进行复杂的计算。 常见的窗…

【文献及模型、制图分享】县域城乡融合发展对乡村旅游地实现共同富裕的影响机制——以长三角地区60个典型县为例

文献介绍 乡村旅游地是推动城乡融合、实现共同富裕的关键区域&#xff0c;精准把握县域城乡融合发展多维特征&#xff0c;系统解析其促进乡村旅游地共同富裕的机制&#xff0c;有助于丰富新时代城乡共富理论体系。基于共生理论&#xff0c;构建“共生单元—共生环境—共生结果…

linux~~目录结构远程登录教程(xshell+xftp)

目录 1.目录结构 2.远程登录xshell 2.1所需工具 2.2了解虚拟机IP 2.3查看是否正常连接 2.4xshell进行连接 3.文件传输xftp7 3.1xftp6安装 3.2相关设置 3.3效果展示 3.4文件之间的传输过程 1.目录结构 bin目录里面主要存放这个我们经常使用的指令&#xff0c;例如这个…

PointNet++改进策略 :模块改进 | PAConv,位置自适应卷积提升精度

题目&#xff1a;PAConv: Position Adaptive Convolution with Dynamic Kernel Assembling on Point Clouds来源&#xff1a;CVPR2021机构&#xff1a;香港大学论文&#xff1a;https://arxiv.org/abs/2103.14635代码&#xff1a;https://github.com/CVMI-Lab/PAConv 前言 PA…

从八股文到奇怪的缓存一致性问题

本文是最近看阿里云开发者的一遍奇怪的缓存一致性问题的总结与心得&#xff0c;原文放在文章末尾 缓存穿透、缓存击穿、缓存雪崩 缓存穿透、缓存击穿和缓存雪崩都是系统中可能遇到的问题&#xff0c;特别在高并发场景下。 缓存穿透 与后两者不同&#xff0c;缓存穿透是查询不…

10.10 层次化网络模型和综合布线系统

层次化网络模型 综合布线系统 真题

前端登录鉴权——以若依Ruoyi前后端分离项目为例解读

权限模型 Ruoyi框架学习——权限管理_若依框架权限-CSDN博客 用户-角色-菜单&#xff08;User-Role-Menu&#xff09;模型是一种常用于权限管理的设计模式&#xff0c;用于实现系统中的用户权限控制。该模型主要包含以下几个要素&#xff1a; 用户&#xff08;User&#xff09;…

基于微信的热门景点推荐小程序的设计与实现(论文+源码)_kaic

摘 要 近些年来互联网迅速发展人们生活水平也稳步提升&#xff0c;人们也越来越热衷于旅游来提高生活品质。互联网的应用与发展也使得人们获取旅游信息的方法也更加丰富&#xff0c;以前的景点推荐系统现在已经不足以满足用户的要求了&#xff0c;也不能满足不同用户自身的个…

Leetcode—72. 编辑距离【中等】

2024每日刷题&#xff08;158&#xff09; Leetcode—72. 编辑距离 动态规划算法思想 实现代码 class Solution { public:int minDistance(string word1, string word2) {const int m word1.length();const int n word2.length();vector<vector<int>> dp(n 1,…

Multi-Mode DOA Estimation AND Relax Super Resolution DOA

之前看到加特兰的新品发布会上&#xff0c;PPT写的一些算法信号处理流程图&#xff0c;这里记录学习一下自己的思考&#xff1a; 原始数据采样数据预处理距离维FFT通道间DDMA数据分离非相干累计RV-MAP coarse-cfar fine CFAR(multi-Mode DOA Estimation): 舱内的CPD信号处理流…