You are on page 1of 5

BÀI TẬP TẦN XUẤT

Câu 3: (3,5 điểm) Tần suất TS.PAS


Cho tập hợp S có N phần tử nguyên dương {s1, s2,…, sN}.
(1 ≤ N ≤ 32000; 0 < si ≤ 32000; 1 ≤ i ≤ N)
Yêu cầu: Hãy liệt kê các phần tử trong S có số lần xuất hiện lớn hơn một lần.
Dữ liệu vào: Cho trong file văn bản TS.INP có cấu trúc như sau:
- Dòng 1: Ghi số nguyên dương N.
- Dòng 2: Ghi N số nguyên dương là giá trị các phần tử của tập hợp S, các số được ghi cách nhau ít
nhất một dấu cách.
Dữ liệu ra: Ghi ra file văn bản TS.OUT trên nhiều dòng, dòng thứ i ghi 2 số s i di, hai số cách nhau một
dấu cách. Trong đó si là phần tử xuất hiện trong S lớn hơn một lần và di tương ứng là số lần si xuất hiện.
Ví dụ:
TS.INP TS.OUT
7 3 2
2 5 5 3 5 3 9 5 3

Câu 2 (4 điểm): Tính tỉ lệ chữ nguyên âm

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

Câu 2: Con số may mắn (5 điểm)


Trong đợt tổ chức học sinh giỏi liên trường. Ban Giám Hiệu trường THPT Thọ Xuân 5
đã họp bàn trao thưởng cho những học sinh đạt điểm cao. Rất nhiều ý kiến về giá trị phần
thưởng và cách trao thưởng. Sau một thời gian họp bàn đi đến thống nhất chọn ra con số may
mắn tương ứng với số tiền thưởng . Để chọn ra con số may mắn BGH yêu cầu mỗi thành viên
lựa chọn một số nguyên dương bất kỳ trong khoảng từ 1 đến 109. Sau đó con số nào được
chọn bởi nhiều người nhất thì sẽ là con số may mắn. Nếu có nhiều con số được chọn nhiều
lần như nhau thì sẽ ưu tiên chọn con số nhỏ hơn. Giả sử số thành viên được tham gia họp bàn
không vượt quá 1000 người. Hãy giúp BGH chọn ra số may mắn.
Dữ liệu vào: file BAI2.INP
-Dòng đầu là số lượng thành viên tham gia họp bàn N (N≤1000).
- Các dòng tiếp theo, mỗi dòng chứa một số ai tương ứng với sự lựa chọn của người thứ i.
Dữ liệu ra: file BAI2.OUTghi số may mắn tìm được.
BAI2.INP BAI2.OUT
5 7
1
99
7
99
7

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);

for i:=1 to n do readln(f,a[i]);


//for i:=1 to n do write(a[i],' '); writeln;
sx(1,n);
//for i:=1 to n do write(a[i],' '); writeln;

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.

Bài 1. (5đ) Số lặp nhiều nhất


Cho một dãy gồm n số nguyên.
Yêu cầu: In ra số được lặp nhiều nhất trong dãy
Dữ liệu: file bai1.inp:
 Dòng 1 ghi số N (1≤N≤105)
 Dòng 2 ghi dãy gồm n số nguyên.
Kết quả: ghi vào file bai1.out:
 1 dòng ghi số được lặp nhiều nhất trong dãy.
Ví dụ:
Bai1.inp Bai1.out
8 25
25 9 1 5 9 25 4 25

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.

Bài 3: Bình chọn qua điện thoại ( 4 điểm)


Trong vòng chung kết cuộc thi “Vietnam Next Top Model” trên VTV3 các thí sinh
được đánh số báo danh là một số nguyên dương có giá trị không vượt quá 1000. Khán giả
xem truyền hình có thể bình chọn cho thí sinh mình yêu thích bằng cách nhắn tin qua điện
thoại di động.
Ban tổ chức nhận được tin nhắn hợp lệ của N khán giả (các khán giả được đánh số từ 1
đến N), khán giả thứ i bình chọn cho thí sinh mang số báo danh ai.
Hãy liệt kê số báo danh của những thí sinh được nhiều khán giả bình chọn nhất theo
thứ tự tăng dần.
Dữ liệu: Vào từ file văn bản VNMODEL.INP
 Dòng đầu tiên ghi số nguyên dương N là số lượng khán giả có tin nhắn bình chọn hợp
lệ (N≤106)
 N dòng tiếp theo, dòng thứ i ghi số nguyên dương ai là số báo danh của thí sinh mà
khán giả thứ i bình chọn.

Kết quả: Ghi ra file văn bản VNMODEL.OUT


Danh sách các thí sinh được nhiều khán giả bình chọn nhất theo thứ tự số báo danh tăng dần
Ví dụ:
VNMODEL.INP VNMODEL.OUT
5 2
3 3
1
3
2
2

You might also like