Tải bản đầy đủ (.doc) (12 trang)

Bài tập pascal dạng file

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (118.79 KB, 12 trang )

Làm việc với File trong Pascal
1. M t file v n b n trên đ a có tên là SON.INF ch a đúng m t dòng bao g m hai s t ộ ă ả ĩ ứ ộ ồ ố ự
nhiên n, m đ c vi t cách nhau m t d u cách. Sau đây là m t ví d v file này:4 5. Em ượ ế ộ ấ ộ ụ ề
hãy vi t đo n ch ng trình nh p hai s này t file trên và in k t qu ra màn hình.ế ạ ươ ậ ố ừ ế ả
Var f:text;
m,n:integer;
Begin
Assign(f,'son.inf'); Reset(f);
Readln(f,m,n);
Close(f);
Writeln(m:4,n:4);
Readln;
End.
2. M t file v n b n trên đ a có tên là SOD.INF ch a đúng hai dòng, m i dòng bao g mộ ă ả ĩ ứ ỗ ồ
đúng m t s t nhiên là n, m. Sau đây là m t ví d v file này:ộ ố ự ộ ụ ề
4
5
Em hãy vi t đo n ch ng trình nh p hai s này t file trên và in k t qu ra màn hình.ế ạ ươ ậ ố ừ ế ả
Var f:text;
m,n:integer;
Begin
assign(f,'sod.inf');reset(f);
Readln(f,m);
Readln(f,n);
close(f);
Writeln(m);
Writeln(n);
Readln;
End.
3. M t file v n b n có tên DATA.TXT l u tr s li u c a m t m ng n s và có d ng sau:ộ ă ả ư ữ ố ệ ủ ộ ả ố ạ
- Dòng đ u tiên c a DATA ghi s n.ầ ủ ố


- n dòng ti p theo c a file ghi n s , m i s trên m t dòng.ế ủ ố ỗ ố ộ
Vi t ch ng trình nh p s li u c a dãy trên vào m t m ng và in ra d li u c a m ngế ươ ậ ố ệ ủ ộ ả ữ ệ ủ ả
trên sau khi đã s p l i theo th t t ng d n.ắ ạ ứ ự ă ầ
Var f: text;
n, i, j, jmax,atg,: integer;
a: array[1..100] of integer;
Begin
assign(f, 'data.txt'); reset(f);
Readln(f, n);
For i:=1 to n do Readln(f,a[i]);
close(f);
For i:=1 to n-1 do
Begin
jmax:=i;
For j:=i to n do
If (a[j]>a[jmax]) then j:=jmax;
atg:=a[i];
a[i]:=a[jmax];
a[jmax]:=atg;
End;
For i:=1 to n do Writeln(a[i]);
1
Readln;
End.
4. M t file v n b n có tên DATA.TXT l u tr s li u c a m t m ng n s và có d ng sau:ộ ă ả ư ữ ố ệ ủ ộ ả ố ạ
- Dòng đ u tiên c a DATA ghi s n.ầ ủ ố
- Dòng ti p theo c a file ghi n s , các s cách nhau b i t i thi u m t d u cách.ế ủ ố ố ở ố ể ộ ấ
Vi t ch ng trình nh p s li u c a dãy trên vào m t m ng và in ra d li u c a m ng ế ươ ậ ố ệ ủ ộ ả ữ ệ ủ ả
trên
Var f:text;

n,i:integer;
a:array[1..100] of integer;
Begin
assign(f,'data.txt'); reset(f);
Readln(f,n);
For i:=1 to n do Read(f,a[i]);
For i:=1 to n do Write(a[i]:8);
Readln;
End.
6. Làm bài t ng t bài 3. i m khác bi t là ch file d li u không có dòng đ u tiênươ ự Đ ể ệ ở ỗ ữ ệ ầ
ghi t ng s d li u nh trong bài 3. Ch ng trình ph i t ki m tra và tính s n đó.ổ ố ữ ệ ư ươ ả ự ể ố
Var f:text;
n,i:integer;
a:array[1..100] of integer;
Begin
assign(f,'data.txt'); reset(f);
i:=1;
Repeat
Readln(f,a[i]);
inc(i);
Until seekEof(f);
n:=i-1;
For i:=1 to n do Writeln(a[i]);
Readln;
End.
7. Làm bài t ng t bài 4. i m khác bi t là ch file d li u không có dòng đ u tiênươ ự Đ ể ệ ở ỗ ữ ệ ầ
ghi n, ch ng trình ph i t ki m tra và và tính s đó.ươ ả ự ể ố
Var f:text;
n,i:integer;
a:array[1..100] of integer;

Begin
assign(f,'data.txt'); reset(f);
i:=1;
Repeat
Read(f,a[i]); inc(i);
Until Eoln(f);
n:=i-1;
For i:=1 to n do Write(a[i]:8);
Readln;
End.
8. Cho file v n b n ghi s li u c a m t b ng s N x M và có d ng sau:ă ả ố ệ ủ ộ ả ố ạ
- Dòng đ u tiên ghi hai s N, M cách nhau b i d u cách.ầ ố ở ấ
- N dòng ti p theo ghi s li u c a N hàng, m i dòng bao g m M s cách nhau b i d uế ố ệ ủ ỗ ồ ố ở ấ
cách.
2
Sau đây là ví d m t file nh v y:ụ ộ ư ậ
4 5
3 5 -1 12 10
-1 2 3 6 1
1 4 5 10 -11
2 -1 4 5 7
Vi t ch ng trình nh p d li u t file trên vào m t m ng s N x M.ế ươ ậ ữ ệ ừ ộ ả ố
Var f:text;
n,m,i,j:integer;
a:array[1..100,1..100] of integer;
Begin
assign(f,'data.txt'); reset(f);
Readln(f,n,m);
For i:=1 to n do
Begin

For j:=1 to m do Read(f,a[i,j]);
Readln(f);
End;
close(f);
For i:=1 to n do
Begin
For j:=1 to m do Write(a[i,j]:8);
Writeln;
End;
Readln;
End.
9. M t file v n b n ghi s li u c a h c sinh có d ng sau:ộ ă ả ố ệ ủ ọ ạ
Nguyen Van Hung 15 G
Bui Quang Than 14 K
Tran Minh Quang 16 G
Le Van Minh 15 T
D li u ghi trong file này có ý ngh a nh sau:ữ ệ ĩ ư
- Dòng đ u tiên ghi đúng m t s n ch s l ng h c sinh trong l p.ầ ộ ố ỉ ố ượ ọ ớ
- n dòng ti p theo m i dòng ghi d li u c a m t h c sinh.ế ỗ ữ ệ ủ ộ ọ
- M i h c sinh đ c ghi các d li u sau:ỗ ọ ượ ữ ệ
H và tên: 20 ký t ;ọ ự Tu i: 3 ký t ; ổ ự X p lo i: 1 ký tế ạ ự
Hãy vi t ch ng trình nh p d li u h c sinh t file trên và đ a vào các m ng d li u ế ươ ậ ữ ệ ọ ừ ư ả ữ ệ
t ng ng, tên file c ng đ c đ c t bàn phím.ươ ứ ũ ượ ọ ừ
Var f: text;
fn: string; {Tên file}
n, i: integer;
ht: array[1..100] of string[20];
t: array[1..100] of string[3];
xl: array[1..100] of char;
Begin

Write('Tên file cần đọc: '); Readln(fn);
assign(f,fn); reset(f);
Readln(f,n);
For i:=1 to n do
Readln(f, ht[i], t[i], xl[i]);
close(f); {kiểm tra}
For i:=1 to n do
Writeln(ht[i],t[i]:4,xl[i]:3);
3
Readln;
End.
10. Làm t ng t bài trên, đi m khác bi t là không có dòng đ u tiên ghi s l ng h c ươ ự ể ệ ầ ố ượ ọ
sinh. Ch ng trình ph i t nh n bi t và tính đ c s n đó.ươ ả ự ậ ế ượ ố
Var f: text;
fn: string; {Tên file}
n, i: integer;
ht: array[1..100] of string[20];
t: array[1..100] of string[3];
xl: array[1..100] of char;
Begin
Write('Tên file cần đọc: ');Readln(fn);
assign(f,fn); reset(f);
i:=1;
While not(eof(f)) do
Begin
Readln(f,ht[i],t[i],xl[i]);
inc(i);
End;
n:=i-1;
close(f); {kiểm tra}

For i:=1 to n do
Writeln(ht[i],t[i]:4,xl[i]:3);
Readln;
End.
11. Th c hi n t t c các thao tác v i các d ng file v n b n nh trong ph n Câu h i, víự ệ ấ ả ớ ạ ă ả ư ầ ỏ
d , bài t p nh ng theo chi u ng c l i, t c là th c hi n các thao tác ghi.ụ ậ ư ề ượ ạ ứ ự ệ
(Bai 1)
Var f:text;
m,n:integer;
Begin
m:=10; n:=4;
assign(f, 'son.inf'); reWrite(f);
Writeln(f, m,' ',n);
close(f);
assign(f, 'son.inf'); reset(f);
Readln(f, m, n);
close(f);
Writeln(m:4, n:4);
Readln;
End.
(Bai 2)
Var f:text;
m,n:integer;
Begin
m:=4; n:=5;
assign(f, 'sod.inf'); reWrite(f);
Writeln(f, m);
Writeln(f, n);
close(f);
assign(f, 'sod.inf'); reset(f);

Readln(f, m); Readln(f, n);
close(f);
4
Writeln(m); Writeln(n);
Readln;
End.
(Bai 3)
Var f:text;
n,i:integer;
a:array[1..100] of integer;
Begin
Write('Nhập số n: ');Readln(n);
Writeln('Nhập dãy n số : ');
For i:=1 to n do
Begin Write('a[',i:2,'] = ');Readln(a[i]); End;
assign(f,'data.txt'); rewrite(f);
Writeln(f,n);
For i:=1 to n do
Begin Writeln(f,a[i]); End;
close(f);
assign(f, 'data.txt'); reset(f);
Readln(f, n);
For i:=1 to n do Readln(f,a[i]);
close(f);
For i:=1 to n do Writeln(a[i]);
Readln;
End.
(Bai 4)
Var f:text;
n,i:integer;

a:array[1..100] of integer;
Begin
Write('Nhập số n: ');Readln(n);
Writeln('Nhập dãy n số: ');
For i:=1 to n do
Begin Write('a[',i:2,'] = ');Readln(a[i]); End;
assign(f,'data.txt'); rewrite(f);
Writeln(f,n);
For i:=1 to n do
Begin Write(f,a[i],' '); End;
Writeln(f);
close(f);
assign(f,'data.txt'); reset(f);
Readln(f,n);
For i:=1 to n do Read(f,a[i]);
close(f);
For i:=1 to n do Writeln(a[i]);
Readln;
End.
(Bai 6)
Var f: text;
n, i: integer;
a: array[1..100] of integer;
Begin
Write('Nhập số n: '); Readln(n);
Writeln('Nhập một dãy số n: ');
assign(f,'data.txt'); rewrite(f);
i:=1;
5

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×