05数组与字符串.docx
- 文档编号:7152595
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:10
- 大小:20.08KB
05数组与字符串.docx
《05数组与字符串.docx》由会员分享,可在线阅读,更多相关《05数组与字符串.docx(10页珍藏版)》请在冰豆网上搜索。
05数组与字符串
第五章 数组(结构类型一)
5.1一维数组
〖语法分析〗
在编程时用到一批类型相同的数据,为了处理上的方便,通常以数组的形式来定义这一批数据。
1、数组的定义格式:
Var
a:
array[1..10]ofinteger;
其中:
a是这一批数据的名称,称为数组名;array、of是定义数组的保留字;中括号中的数字是数据编号的下限和上限,同时也说明了数据的个数(上限-下限);最后一个是数据的基类型,如integer,char,real,boolean。
2、数组元素的输入:
数组名代表的并不是一个变量,而是一批变量,因而,不能直接整个数组读入,而是要逐个数组元素读入,通常用循环结构来完成这一功能。
下面是几个常用输入数组元素的例子:
fori:
=1to10doread(a[i]);
{从键盘读入数组元素的值;最常用的方法}
fori:
=1to10doa[i]:
=i;
{数组元素a[1]到a[10]的值分别为1到10;数据赋初值}
fori:
=1to10doa[i]:
=0;
{数组元素清0;最常用的数据初始化的方法}
fori:
=1to10doa[i]:
=random(100);
{随机产生10个100以内的数,赋给各数组元素}
3、数组元素的输出:
和数组元素的输入相同,数组元素的输出也不能由一个write语句直接完成。
同样要逐个数组元素输出。
通常也用循环结构来完成这一功能:
fori:
=1to10dowrite(a[i],'');{————数组元素之间用空格分隔}
writeln;
4、数组的应用:
例1:
从键盘输入10个数,将这10个数逆序输出,并求这10个数的和,输出这个和。
programp1;
var
a:
array[1..10]ofinteger;
i,s:
integer;
begin
fori:
=1to10doread(a[i]);
fori:
=10downto1dowrite(a[i],'');
writeln;
s:
=0;
fori:
=1to10dos:
=s+a[i];
writeln('s=',s);
end.
例2:
输入10个整数,把这10个数按从小到大的顺序排序。
(一)〔冒泡法排序〕算法描述:
1、从a[1]到a[10]把相邻的两个数两两比较;
2、在每次进行比较过程中,若前一个数比后一个数大,则对调两个数。
以5个数为例:
75386{7和5比较,7>5,进行对调;}
57386{7和3比较,7>3,进行对调;}
53786{7和8比较,7<8,不进行对调;}
53786{8和6比较,8>6,进行对调;}
53768
Programsample;
Constn=10;
Var
a:
array[1..n]ofinteger;
i,j:
integer;
begin
fori:
=1tondo
read(a[i]);
readln;
fori:
=1ton-1do
forj:
=1ton-ido
ifa[j]>a[j+1]then
begint:
=a[j];a[j]:
=a[j+1];a[j+1]:
=t;end;
forI:
=1to10do
write(a[i]:
5);
readln;
end;
〔二〕〔选择法排序〕算法描述:
1、先假设a[1]中的数最小,记下此最小数的位置p=1;
2、依次把a[p]和a[i](i从2变化到10)进行比较,每次比较时,若a[i]中的数比a[p]中的数小,则把i的值赋给p,使p总是指向当前所扫视过的数中最小数的位置。
3、把a[p]和a[1]中的数对调,最小数就放在a[1]中了。
Programno;
Constn=10;
Var
a:
array[1..n]ofinteger;
i,j,p,t:
integer;
Begin
fori:
=1tondo
read(a[i]);
readln;
fori:
=1ton-1do
begin
p:
=i;
forj:
=i+1to10do
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 05 数组 字符串