Đọc dữ liệu kiểu nguyên từ một tệp văn
bản có tên fn vào một mảng hai chiều đối xứng.
Tệp có cấu trúc như sau:
- Số đầu tiên ghi số lượng cột (và đồng thời là số lượng
dòng) của mảng.
- Tiếp
đến là các dữ liệu ghi liên tiếp nhau theo nửa tam giác trên tính từ đường chéo chính.
- Các số
cùng dòng cách nhau ít nhất một dấu cách.
Thí dụ: 3 1
2 3 4 6 8
sẽ được bố trí vào mảng 3 ´ 3 như
sau:
1
|
2
|
3
|
2
|
4
|
6
|
3
|
6
|
8
|
Thuật toán
1. Mở tệp.
2. Đọc giá trị đầu tiên vào biến n:
số lượng cột và dòng của ma trận vuông đối xứng.
3. Với mỗi dòng i ta đọc phần
tử trên đường chéo chính của dòng đó a[i, i], sau đó ta đọc các phần tử nằm ở bên phải a[i,
i], tức là a[i, j] với j = i + 1..n rồi lấy đối xứng bằng phép gán a[j,
i]:= a[i, j].
(* Pascal *)
uses crt;
const MN =
100;
var a: array[1..MN,1..MN] of integer;
n: integer; { kich thuoc mang }
Function
Doc(fn: string): Boolean;
var f: text; i, j: integer;
begin
Doc := FALSE;
assign(f,fn);
{$I-}
reset(f); {$I+}
if IORESULT
<> 0 then exit;
read(f,n);
for i := 1 to
n do
begin
read(f,a[i,i]);
for j := i+1
to n do
begin
read(f,a[i,j]); a[j,i]:= a[i,j];
end;
end;
close(f);
Doc:= TRUE;
end;
procedure
Xem(n,m: integer); tự viết
BEGIN
if
Doc('DATA.INP') then Xem(n,n)
else
write('Khong mo duoc tep ');
readln;
END.
Tag: gia sư tin học
Không có nhận xét nào:
Đăng nhận xét