数组·学后有感

小编 2026-07-11 阅读:722 评论:0
** 数组·学后有感 ** 山东农业大学2018级数学类四班 李伟超 2018年12月24日 在之前,通过对顺序、分支、循环、嵌套以及基础知识点的学习,我们已经可以编写...

**

数组·学后有感

**
山东农业大学2018级数学类四班 李伟超 2018年12月24日
在之前,通过对顺序、分支、循环、嵌套以及基础知识点的学习,我们已经可以编写程序来解决各种相当复杂的问题了,但是当需要处理的数据比较多时,仅依靠这些我们还是有些捉襟见肘,即使简单的问题也可能需要比较复杂的程序来处理。数组的引入便能够很好的解决这个棘手的难题。
数组,是一组具有相同类型的变量的集合,它是一种构造数据类型,是用于储存多个相同类型数据的集合。
而在上周我们系统的学习了数组的相关知识体系,并通过相应的练习加深了对数组的理解和掌握程度。以下,是我对学习数组过程中的一些整理和心得:
首先,数组分为一维数组和二维数组;
概念:(i)当数组中每个元素只带有一个下标时,我们称这样的数组为 一维数组。
(ii)当一维数组元素的类型也是一维数组时,便构成了“数组 的数组”,即二维数组。
定义和初始化:
一维数组(定义):类型标识符 数组名[常量表达式] 如int days[12]
一维数组(初始化):类型标识符 数组名[常量表达式]={值1,值2,值3···}如int days[12]={31,28,31,30,31,30,31,31,30,31,30,31};

二维数组(定义):数据类型 数组名[常量表达式1][常量表达式2] 如int days[2][12]
二维数组(初始化):二维数组的初始化和一维数组类似。如int days[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};

引用:通过给出的数组名称和这个元素在数组中的位置编号(即下标),程序可以引用这个数组中的任何一个元素。
一维数组元素的引用格式:数组名[下标]
二维数组元素的引用格式:数组名[下标][下标]
接下来我们通过一个实例来加深对数组的认识和了解。
以“细菌的繁殖与扩散”为例:

描述
在边长为9的正方形培养皿中,正中心位置有m个细菌。假设细菌的寿命仅一天,但每天可繁殖10个后代,而且这10个后代,有两个分布在原来的单元格中,其余的均匀分布在其四周相邻的八个单元格中。求经过n(1≤n≤4)天后,细菌在培养皿中的分布情况。
输入 输入为两个整数,第一个整数m表示中心位置细菌的个数(2 ≤ m ≤ 30),第二个整数n表示经过的天数(1 ≤ n ≤ 4)。 输出
输出九行九列整数矩阵,每行的整数之间用空格分隔。整个矩阵代表n天后细菌在培养皿上的分布情况。

放在以前我们尚未接触数组这个概念时,解决这种类似矩阵的问题对于我们来说会相当棘手。而现在,我们就可以通过定义和引用二维数组的方式对这类为题加以处理。下面是代码:

#include <iostream>
using namespace std;
int a[20][20],b[20][20];    //通过这个二维数组实现对矩阵的刻画
int main()
{ 
int m,n;
cin>>m>>n; 
a[5][5]=m;    
for(int k=1;k<=n;k++) 
{ 
for(int i=1;i<=9;i++)     
{ 
for(int j=1;j<=9;j++) 
{ 
b[i][j]=a[i][j]*2+a[i-1][j-1]+a[i][j-1]+a[i-1][j]+a[i][j+1]+a[i+1][j]+a[i+1][j+1]+a[i-1][j+1]+a[i+1][j-1]; 
} 
} 
for(int i=1;i<=9;i++)
{ 
        for(int j=1;j<=9;j++) 
       { 
            a[i][j]=b[i][j];     
            b[i][j]=0;     
       } 
}
} 
for(int i=1;i<=9;i++) 
{ 
for(int j=1;j<=9;j++)     
{ 
cout<<a[i][j]<<\" \";     
}     
       cout<<endl; 
} 
return 0;
}

在运用二维数组的基础之上,我们通过相应的循环和对问题规律的描述,就能够实现出满足题意的理想效果。
应用:
通过上述的例子我们会知道通过数组我们可以模拟矩阵,来将高等代数中对应的一系列变换(由于矩阵行列式的阶数过高,人为计算相应困难)通过编程代码的方式加以实现;同时运用数组也能够帮助我们有效的处理大批量的具有相同性质的数据。
学习感悟:
数组虽然概念理解上不存在困难之处,但是由于对应数组能够解决的问题要求复杂多样,使得我们在实际编程的过程中难以一下子描述清楚,例如本次OJ作业中的变幻的矩阵,反反复复,蛇形填充数组等题,这需要我们在充分掌握的基础之上认真审题,一点一点摸清规律,合理定义数组,合理运用循环,把题目所要求的清晰符合逻辑的表达出来。这个过程并不轻松,我就在这里栽了不少跟头,保持耐心,相信过程,运用数组是一个从生到熟的过程,这不可能一笔带过,反复的专研和思考会给你想要的答案。
That’s all , thank you!

版权声明

本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。

上一篇:Linux乱码问题解决 下一篇:Docker
热门文章
  • Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering

    Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering
    Problem Statement 我们考虑一个具有马尔可夫性质、非线性、非高斯的状态空间模型(State Space Model):对于一个时间序列上的观测结果{yt,t∈N}\\{ y_t , t \\in N \\}{yt​,t∈N},我们认为每个观测结果yty_tyt​的生成依赖于一个无法直接观察的隐变量xt∈{xt,t∈N}x_t \\in \\{x_t , t \\in N \\}xt​∈{xt​,t∈N},即:p(...
  • 机房智能化温湿度解决方式之POE供电以太网温湿度传感器

    机房智能化温湿度解决方式之POE供电以太网温湿度传感器
    机房智能化温湿度解决方式之POE供电以太网温湿度传感器 北京盈创力和电子科技有限公司 智能型TCP网口温湿度记录仪 北京IP网络温湿度记录仪厂家,北京盈创力和 北京智能型TCP网口温湿度记录仪IP网络温湿度记录仪是一种新型的基于TCP/IP协议双绞线以太网标准温湿度采集模块,利用它可以实现现场温度值、相对湿度值的采集,同时利用其自身的RJ45通信接口可以方便地和机房监控主机或交换机集线器进行联网。 工作于-40℃~85℃工业级带...
  • Hive 系统函数及示例

    Hive 系统函数及示例
    查看所有系统函数 show functions; 函数分类 内置函数【系统函数】 数学函数: floor、round、ceil、cos、log2等 字符串函数: length、reverse、trim、lower、get_json_object、repeat等 收集函数: size 转换函数: cast 日期函数: year、month、datediff、date、date_add等 条件函数: coalesce、case…w...
  • CSRF的原理和防范措施

    CSRF的原理和防范措施
    a)攻击原理:i.用户C访问正常网站A时进行登录,浏览器保存A的cookieii.用户C再访问攻击网站B,网站B上有某个隐藏的链接或者图片标签会自动请求网站A的URL地址,例如表单提交,传指定的参数iii.而攻击网站B在访问网站A的时候,浏览器会自动带上网站A的cookieiv.所以网站A在接收到请求之后可判断当前用户是登录状态,所以...
  • HTTP状态保持的原理

    HTTP状态保持的原理
    a)在用户登录之后,浏览器返回响应的时候会在响应中添加上cookieb)浏览器接收到cookie之后会自动保存c)当用户再次请求同一服务器中的其他网页的时候,浏览器会自动带上之前保存的cookied)服务接收到请求之后可以请 request 对象中取到cookie 判断当前用户是否登录  Http是无状态的,就是连接时数据互通,关闭后...
标签列表