Professional Documents
Culture Documents
Cho một văn bản chứa trong một text file. Bạn hãy viết chương trình tính tỉ lệ các nguyên âm có mặt
trong văn bản theo thứ tự của bảng chữ cái. Định nghĩa các nguyên âm là: A, E, I, O, U, Y
Dữ liệu vào: file NGUYENAM.INP gồm nhiều dòng chứa các ký tự của văn bản
Dữ liệu ra: file NGUYENAM.OUT mỗi dòng ghi ký tự và tỷ lệ % (lấy đến 4 chữ số thập phân) của
các nguyên âm. (X:n:4)
Ví dụ:
NGUYENAM.INP NGUYENAM.OUT
ANHEMHOATHUANTHUONGYEUNAMMOIMAYMAN A: 17.6471 %
E: 5.8824 %
I: 2.9412 %
O: 8.8235 %
U: 8.8235 %
Y: 5.8824 %
Bài 1: (5 điểm) Trùng nhau
Cho dãy gồm n số nguyên dương a1, a2, …, a n. Hãy in ra dãy sau khi đã loại bỏ các phần tử giống
nhau. Các phần tử đưa ra là những phần tử xuất hiện đầu tiên trong dãy.
Biết rằng:
- Dữ liệu vào từ tệp Bai4.inp gồm 2 dòng:
Dòng thứ nhất: chứa số nguyên dương n.
Dòng thứ hai: chứa n số nguyên dương a1, a2, …, an với n<=109, ai<=109.
- Kết quả ra ghi vào tệp: Bai4.out dãy sau khi đã loại bỏ các phần tử giống nhau. Ne
Ví dụ:
Bai4.inp Bai4.out
7 23 12 1 0 9
23 23 12 1 1 0 9
BÀI 2:
const fi='bai2.inp';
fii='bai2.out';
nmax=1000;
type data=longint;
var
f,f1:text;
A:array[0..nmax+1] of data;
n,test:data;
procedure sx(l,r : longint ) ;
var i,j,tg,mid : longint;
begin
i := l ; j := r ;
mid := a[(i+j) div 2];
repeat
while a[i] < mid do inc(i);
while a[j] > mid do dec(j);
if i <= j then
begin
tg := a[i] ;
a[i] := a[j] ;
a[j] := tg ;
inc(i); dec(j);
end;
until i > j ;
if i < r then sx(i,r);
if j > l then sx(l,j);
end;
procedure docfile;
var soluong,max,nhat,i,j,x,sl:data;
begin
assign(f,fi); reset(f);assign(f1,fii); rewrite(f1);
readln(f,n);
max:=0; nhat:=0;
for i:=1 to n do
begin
soluong:=0;
for j:=1 to n do if a[i]=a[j] then inc(soluong);
if (soluong > max) then
begin
max:=soluong;
nhat:=a[i];
end;
end;
writeln(f1,nhat);
close(f);close(f1);
end;
begin
docfile;
end.
Câu 1:
var f,g:text;
n,i,j,max:integer;
a,b:array[1..10000] of integer;
begin assign(f,'BAI1.inp'); reset(f);
assign(g,'BAI1.out'); rewrite(g);
readln(f,n);
for i:=1 to n do read (f,a[i]);
fillchar(b,sizeof(b),0);
for i:=1 to n do inc(b[a[i]]);
max:=0;
for i:=1 to 10000 do
if max<b[i] then
begin max:=b[i]; j:=i; end;
write(g,j);
close(f); close(g);
end.