我的上一个竞聘时提问的万能回答谁能给我解答一下啊?????

pascal培训教程(十三)一维数组
pascal培训教程(十三)
数组类型的定义格式:
type 类型标识符=array[下标类型1,下标类型2…,下标类型]of 元素类型;
type 类型标识符=array[下标类型] of 基类型;
type score=array[1..50,1..4];
下标类型必须是有序的,可以是整型、字符型、布尔类型、枚举类型、子界类型等;下标类型也应该是有界的。
定义了数组类型后就可以定义数组变量了
data=array[1..100]
other=array[-50..50];
也可以结合起来定义:
var student:array[1..50,1..4]
y:array[1..100]&
数组的下标可以是一个表达式,但表达式的值不能超过下标的表示范围。
一维数组的定义及数据元素的引用
一维数组指的是只有一个下标的数组,一般用于线性批量数据的组织。
type 类型标识符=array[下标类型] of 元素类型;
var 数组名:类型标识符;
var 数组名:array[下标类型] of 元素类型;
例:定义如下数组:
1、表示20种商品的价格;
2、表示30件邮件的安全邮递情况;
3、统计50个学生在一次考试中各分数(满分100,最低60)的分布情况;
4、统计一篇文章中各字母出现的频率(所有字母均小写);
price:array[1..20]
mail:array[1..30]
score:array[60..100]
munber:array['a'..'z']
一维数组的操作:
数组的赋值、输入、输出:
(1)将一维数组作为一个整体进行操作:
&var a,b:array[1..50]
可以用整体赋值语句a:=b将数组b的所有元素赋给数组a,但要求两个数组的类型是一致的
Pascal还可以用下面的方式既说明了数组类型,又给数组赋了初值:
const c:array[1..10] of
integer=(2,4,6,8,10,1,3,5,7,9),就相当于c[1]:=2,c[2]:=4…c[10]:=9。
例:按顺序读入十个数,然后按逆序输入
var a:array[1..10]
& write('ten data:');
& for i:=1 to 10 do read(a[i]);
& write('revers:');
& for i:=10 downto 1 do write(a[i]:3);
计算并输出s=∑xiyi(i:=1 to
10),其中xi的值为1,3,5,……17,19;yi的值为21,22,23……29,30。
& x,y:array[1..10]
& for i:=1 to 10 do
x[i]:=2*i-1;y[i]:=20+i;s:=s+x[i]*y[i];
& writeln('s=',s);
&例:将数组中第一元素移到最后,其余数据依次住前平移一个位置。
program p85;
const n=10;
& a:array[1..n]
& write('read',n,'integers');
& for i:=1 to n do readln(a[i]);
& temp:=a[1];
& for i:=1 to n-1 do a[i]:=a[i+1];
& for i:=1 to n do write(a[i]:3);
例:对于数组a,输入一个测试数据x,如果x存在于数组a,则把元素x从数组中删除,否则插在相应位置,要求数组仍然有序。
program p86;
const n=10;
& a:array[1..n+1]
& x,i,temp,k:
& writeln('read array of a:');
& for i:=1 to n do readln(a[i]);
& writeln('input x:');
& readln(x);
& a[n+1]:=x;
& while a[i]&x do i:=i+1;
& if i=n+1 then
writeln ('Not found!');
for k:=1 to n+1 do write(a[k]:3);
if a[i]=x then
&&&&&&&&&&
writeln('Delete...');
&&&&&&&&&&
for k:=i to n-1 do a[k]:=a[k+1];
&&&&&&&&&&
for k:=1 to n-1 do write(a[k]:3);
&&&&&&&&&&
&&&&&&&&&&&&
writeln('Insert!');
&&&&&&&&&&&&
for k:=i to n do a[i+1]:=a[i];
&&&&&&&&&&&&
&&&&&&&&&&&&
for k:=1 to n+1 do write(a[k]:3);
&&&&&&&&&&
例:从键盘输入10个数,将它们按照从小到大的顺序排列。
思路:冒泡排序的过程如下:
先将一组数放在数组a中,先用a[1]和其他各个元素比较,如果比它小则进行交换,一直比到a[n],这样a[1]中放的是最小数,然后a[2]和后面各个数比,凡比它小的进行交换,依次类推。对于数组a,第一遍需要进行n-1次比较,第二遍需要进行n-2次比较,当扫描到n-1次时,只要进行一次比较a[n-1]和a[n]的大小就行。所以只要用外循环控制n-1次比较,用内循环控制在剩下的数中找最小数即可。
program p88;
const n=10;
& a:array[1..n]
& i,j,temp:
& for i:=1 to n do a[i]:=random(100);
& for i:=1 to n do write(a[i]:3);
& for i:=1 to n-1 do
&&& for j:=i+1
if a[i]&a[j] then
temp:=a[i];
a[i]:=a[j];
& writeln('Result');
& for i:=1 to n do write(a[i]:3);
&例:将一个十进制数转化成二进制数
program p89;
var bin:array[1..50] of 0..1;
&&& write('Input
readln(x);
&&& for i:=0 to
50 do bin[i]:=0;
bin[k]:=x mod 2;
x:=x div 2;
write('Bonary:');
&&& for i:=k-1
downto 0 do write(bin[i]);
例:圆盘找数,找出4个相邻的数,使其相加之和为最大的是哪四个数,相加之和为最小的是哪四个数。
将数组的下标设为0~19,则,s:=a[i]+a[(i+1)mod 20]+a[(i+2)mod 20]+a[(i+3)mod
program p90;
var a:array[0..19]
i,s,smax,smin,imax,imin:
& write('20 number:');
& for i:=0 to 19 do readln(a[i]);
& for i:=0 to 17 do
s:=a[i]+a[(i+1)mod 20]+a[(i+2)mod 20]+a[(i+3)mod 20];
if s&smax then
smax:=s;imax:=i;
if s&smin then
smin:=s;imin:=i;
& write('Max=');
& write(a[imax]);
& for i:=1 to 3 do write('+',a[(imax+i)mod
& write('=',smax);
& writeln('From',imax+1);
& write('min=');
& write(a[imin]);
& for i:=1 to 3 do write('+',a[(imin+i)mod
& write('=',smin);
& writeln('From',imin+1);
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。Pascal数组-Array
当前位置:
>> Pascal数组-Array
Pascal数组-Array
Pascal数组-Array实例代码实例教程
编程语言提供了一种数据结构被称作阵列,它可以存储一个固定大小的相同类型的元素的有序集合。一个阵列被用来存储数据的集合,但它往往是更为有用认为一个数组的相同类型的变量作为一个集合;
相反的声明单个变量,如用number1,number2,...,number100,你声明一个数组变量,如数字和使用数字[1],[2],...,[100]代表独立的变量。一个特定的数组中的元素的索引访问;
所有的数组由连续的存储单元。的最低地址对应于所述第一元件和到最后一个元素的最高地址;
请注意,如果你想有一个C风格的数组,从索引0开始,你只需要启动该指数为0,而不是1;
要声明一个数组,在Pascal语言中,程序员可以声明的类型,然后创建该数组变量或直接声明数组变量。
一维数组的类型声明的一般形式是:
array-identifier = array[index-type] of element-type;
array-identifier&表示数组类型的名称。
index-type&指定数组的下标,它可以是任何标量数据类型,除了真正
element-type&指定将要存储的值的类型
vector = array [ 1..25] of real; var velocity: vector;
现在速度是一个变量,数组,向量类型,这是足以容纳25个实数。
指数从0开始的数组,该声明将是:
vector = array [ 0..24] of real; var velocity: vector;
类型的数组下标
在Pascal语言中,数组下标可以是任何标量类型,如整型,布尔型,枚举或子范围,除了真实。数组下标可以有负值。
temperature = array [-10 .. 50]
day_temp, night_temp:
让我们来下标是另外一个例子是字符类型:
ch_array = array[char] of 1..26;
alphabet: ch_
标可以枚举类型:
color = ( red, black, blue, silver, beige);
car_color = array of [color]
car_body: car_
初始化数组
在Pascal语言中,数组的初始化通过转让,可以通过指定一个特定的下标或使用for-do循环。
ch_array = array[char] of 1..26;
alphabet: ch_
for c:= 'A' to 'Z' do
alphabet[c] := ord[m];
(* the ord() function returns the ordinal values *)
访问数组元素
被访问的元素的索引数组名。这样做是阵列的名称后,通过放置在方括号内的元素的索引。例如:
a: integer; a: = alphabet['A'];
上面的语句将第一个元素的数组字母,并分配给变量a的值。
下面是一个例子,可以使用上面提到的所有三个概念,即。声明,赋值和访问数组:
program exA
n: array [1..10]
(* n is an array of 10 integers *)
(* initialize elements of array n to 0 *)
for i := 1 to 10 do
n[ i ] := i + 100;
(* set element at location i to i + 100 *)
(* output each array element's value *)
for j:= 1 to 10 do
writeln('Element[', j, '] = ', n[j] );
上面的代码编译和执行时,它会产生以下结果:
Element[1] = 101
Element[2] = 102
Element[3] = 103
Element[4] = 104
Element[5] = 105
Element[6] = 106
Element[7] = 107
Element[8] = 108
Element[9] = 109
Element[10] = 110
Pascal阵列详情
数组是很重要Pascal,应该需要很多更详细。有以下几个重要概念相关的Pascal程序员应该清楚的阵列:
Pascal支持多维数组。多维阵列的最简单形式是两维阵列。
在这种类型的阵列的初始长度是零。实际数组的长度必须设置的标准定长函数。
这些阵列是位包装,即,每一个字符或真值被存储在连续的字节,而不是使用一个存储单元,通常是一个字(4字节或更多)。
可以传递给子程序的一个指针数组指定数组的名称,没有一个索引(下标)。君,已阅读到文档的结尾了呢~~
pascal一维数组
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
pascal一维数组
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口

我要回帖

更多关于 提问技能 的文章

 

随机推荐