Tệp và thao tác với tệp

Bạn chưa đăng nhập. Vui lòng đăng nhập để hỏi bài
Anh Nguyen

bài 1

Dữ liệu vào lấy từ tệp văn bản mangmin.inp gồm hai dòng:

-dòng 1: số phần tử n

-dòng 2: dãy số a1, a2, ... an mỗi số cách nhau 1 dấu cách

Kết quả ra ghi ra tệp văn bản mangmin.out: giá trị của phần tử min và chỉ số của phần tử min

bài 2

Dữ liệu vào lấy từ tệp vb mangchan.inp gồm 2 động

- dòng 1: số phần tử n

- dòng 2: dãy số a1 a2 ... an mỗi số cách nhau 1 dấu cách

Kq ra ghi ra tệp văn bản mangchan.out: tổng các phần tử chẵn

bài 3

Viết chương trình tách xâu s có sử dụng tệp

-Xâu s1 gồm toàn bộ các ký tự là chữ số có trong xâu s

-Xâu s2 gồm toàn bộ các ký tự là chữ cái thường có trong xâu s

-Xâu s3 gồm toàn bộ các ký tự là chữ in hoa có trong xâu s

-xâu s4 gồm toàn bộ các ký tự là các các kí tự đặc biệt có trong xâu s

Dữ liệu vào đọc từ tệp tachxau.inp: xâu s

Dữ liệu ra ghi vào tệp tachxau.out: 4 xâu ghi trên 4 dòng

bài 4

Viết chương trình sử dụng tệp đếm từ trong xâu s

Dữ liệu vào đọc từ tệp demtu.inp: xâu s

Dữ liệu ra ghi vào tệp demtu.out: số tự trong xâu s

Xét trường hợp có 2 dấu cách liên tiếp; dấu cách đầu, cuối (làm trong một chương trình)

Em cảm ơn <3

Nguyễn Lê Phước Thịnh
15 tháng 5 2020 lúc 13:05

Bài 1:

const fi='mangmin.inp';

fo='mangmin.out';

var f1,f2:text;

a,vt:array[1..100]of integer;

n,i,dem:integer;

begin

assign(f1,fi); reset(f1);

assign(f2,fo); rewrite(f2);

readln(f1,n);

for i:=1 to n do

read(f1,a[i]);

min:=a[1];

for i:=1 to n do

if min>a[i] then min:=a[i];

dem:=0;

for i:=1 to n do

if min=a[i] then

begin

inc(dem);

vt[dem]:=i;

end;

writeln(f2,'Gia tri nho nhat la: ',min);

writeln(f2,'Vi tri cua gia tri nho nhat la: ');

for i:=1 to dem do

write(f2,vt[i]:4);

close(f1);

close(f2);

end.

Bài 2:

const fi='mangchan.inp';

fo='mangchan.out';

var f1,f2:text;

a:array[1..100]of integer;

n,i,t:integer;

begin

assign(f1,fi); reset(f1);

assign(f2,fo); rewrite(f2);

readln(f1,n);

for i:=1 to n do

read(f1,a[i]);

t:=0;

for i:=1 to n do

if a[i] mod 2=0 then t:=t+a[i];

writeln(f2,t);

close(f1);

close(f2);

end.

Bài 3:

const fi='tachxau.inp';
fo='tachxau.out';
var f1,f2:text;
s,s1,s2,s3,s4:string;
i,d:integer;
j,k,l:char;
begin
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
readln(f1,s);
d:=length(s);
s1:='';
for i:=1 to d do
if s[i] in ['0'..'9'] then s1:=s1+s[i];
writeln(f2,'Xau S1 la: ',s1);
s2:='';
for i:=1 to d do
if s[i] in ['a'..'z'] then s2:=s2+s[i];
writeln(f2,'Xau S2 la: ',s2);
s3:='';
for i:=1 to d do
if s[i] in ['A'..'Z'] then s3:=s3+s[i];
writeln(f2,'Xau S3 la: ',s3);
close(f1);
close(f2);
end.

Bài 4:

const fi='demtu.inp';
fo='demtu.out';
var s:string;
i,d,dem:integer;
kt:boolean;
f1,f2:text;
begin
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
readln(f1,s);
d:=length(s);
i:=0;
while i<=d do
begin
inc(i);
if ((i=1) and (s[i]=' ')) then
repeat
kt:=false;
if (s[i]=' ') then
begin
delete(s,i,1);
d:=length(s);
end
else kt:=true;
until (kt=true) or (i+1>d)
else repeat
kt:=false;
if (s[i]=' ') and (s[i+1]=' ') then
begin
delete(s,i,1);
d:=length(s);
end
else kt:=true;
until (kt=true) or (i+1>d);
d:=length(s);
end;
while s[d]=' ' do
begin
delete(s,d,1);
d:=length(s);
end;
dem:=0;
for i:=1 to d do
if s[i]=' ' then dem:=dem+1;
writeln(f2,dem+1);
close(f1);
close(f2);
end.