การกาหนดแบบอาร์เรย์ 1 มิติ
กาหนดผ่านTYPE
Type matrix = array[1..100] of integer;
VAR number:matrix;
หรือ กาหนดตรงผ่าน VAR
VAR number: array[1..100] of integer;
5.
การกาหนดแบบอาร์เรย์ 1 มิติ
– ตัวอย่าง
TYPE matrix = array[1..100] of integer;
letter = array[‘A’..’Z’] of real;
VAR number : matrix; index: integer;
scale : letter;
chindex : ‘A’..’Z’;
การอ่านค่าเก็บไว้ในอาร์เรย์
(* program putasiic code of for i:= 'a' to 'z' do
character a-z into array A b[i] := a[i];
and copy to B*) for i:='z' downto 'a' do
begin writeln(a[i],' and ',b[i]);
for i:= 'a' to 'z' do end.
a[i] := ord(i); หมายเหตุ
ภาษาปาลคาลให้ใช้ b:= a ได้ถ้า
อาร์เรย์ทั้ง2เหมือนกัน
การค้นหาค่าสูงสุดต่าสุด
for i:=1 ton_array do writeln('---------------------------
begin --');
if num[i] > max then writeln('Max is = ',max,'
max := num[i]; Min is = ',min);
if num[i] < min then end;
min := num[i];
end;
การหาความถี่
while num <>-1 do
begin
case num of
1 : score[num] := score[num] + 1;
2 : score[num] := score[num] + 1;
3 : score[num] := score[num] + 1;
else
19.
การหาความถี่
Writeln(' You enter a wrong number.');
end;{end case}
write('Enter number you want to select 1-3 or -1
to end :');
readln (num);
end;{end while}
end;
การค้นหาแบบเส้นตรง
procedure getnum;
var i:integer; code :string[3];
begin
for i:= 1 to max do
begin
write('enter student code: ');
readln(code);
table[i]:= code;
end; end;
การค้นหาแบบเส้นตรง
while code <>'*' do
begin
while (flag = false) and (i <= max) do
begin
if table[i] = code then
flag := true
else
i:= i+1;
end;
27.
การค้นหาแบบเส้นตรง
if flag =true then
begin
flag := false;
writeln('student code ',code,' is found');
end
else
writeln('student code ',code,' is not found');
28.
การค้นหาแบบเส้นตรง
write('enter student code you want to search/ * to end ');
readln(code);
end; {end while}
end;
{main}
begin
getnum;
search_code;
end.
อาร์เรย์ 2 มิติ
•ถ้าต้องการเขียนตัวอักษรให้เต็ม 1 หน้ากระดาษ
สามารถเขียนโปรแกรมดังนี้
for I := 1 to 90 do
for j := 1 to 80 do
page[j] := character;
41.
Read Write ค่าในอาร์เรย์
•เขียนโปรแกรมนาตัวเลขเก็บไว้ใน อาร์เรย์ 2 มิติ
program twodim;
uses wincrt;
const mrow= 4;
mcol= 3;
var table :array[1..4,1..3] of integer;
i,j:integer;
42.
Read Write ค่าในอาร์เรย์
proceduregetnum; begin
begin write('Enter
for I := 1 to 4 do number:');
begin read (table[i,j]);
for j := 1 to 3 do end;
end;
end;
การประมวลผลในอาร์เรย์
{**** init routine ****}
procedure init(row,col:integer);
begin
for i:= 1 to row do
for j:= 1 to col do
table[i,j] := 0;
end;
48.
การประมวลผลในอาร์เรย์
{**** getnum routine ****}
procedure getnum(row,col:integer);
begin
for i:= 1 to row-1 do
begin
49.
การประมวลผลในอาร์เรย์
for j:= 1 to col-1 do
begin
write(i,'.','Enter score for each subject: ');
readln(table[i,j]);
end;
writeln('-------------------------');
end;
end;
50.
การประมวลผลในอาร์เรย์
{**** writeroutine ****}
procedure writenum(row,col:integer) ;
begin
{write column heading}
write('':12);
for i:=1 to col-1 do
write ('sub',i,'':2);
write ('avg');
writeln;
การประมวลผลในอาร์เรย์
{**** compute routine ****}
procedure compute(row,col:integer);
begin
{compute averge for subject}
for i:= 1 to row-1 do
begin
sum := 0;
54.
การประมวลผลในอาร์เรย์
forj:= 1 to col-1 do
begin
sum := sum + table[i,j];
end;
avg_std := sum /(col-1);
table[i,col] := avg_std;
end;
55.
การประมวลผลในอาร์เรย์
{compute averge for students}
for i:= 1 to col-1 do
begin
sum := 0;
for j:= 1 to row-1 do
sum := sum + table[j,i];
avg_sub := sum /(row-1);
table[j+1,i] := avg_sub;
end;
end;
56.
การประมวลผลในอาร์เรย์
{**** main routin****} nstd := nstd +1;
begin nsub := nsub +1;
write('Enter number of init(nstd,nsub);
student and number of getnum(nstd,nsub);
subject: '); compute(nstd,nsub);
readln(nstd,nsub); writenum(nstd,nsub);
end.{end main}