******************************************************
Gửi bài làm về địa chỉ:
tinhocngoquyen@hotmail.com
*****************************************************
Bài 1: (tanxuat.pas)
Nhập dãy a gồm n số nguyên
hãy đếm số lần xuất hiện của các phần tử trong dãy:
input: vào từ file tanxuat.inp gồm
-Dòng đầu: chứa số nguyên n (0<n<=1000000)
-Dòng sau: Chứa n số nguyên trong dãy. Các số cách nhau 1 kí tự trắng (0<ai<10000000)
output: Xuất ra file tanxuat.out gồm
-Nhiều dòng mỗi dòng in ra số lần xuất hiện của các phần tử trong dãy. Xem ví dụ để biết cách in
ví dụ:
input
|
output
|
8
9 5 9 5 2 5 8 1
|
1 xua hien 1
2 xuat hien 1
5 xuat hien 3
8 xuat hien 1
9 xuat hien 2
|
#: Số phần tử khác nhau
Bài 2: chensapxep.pas
Cho dãy a gồm n số nguyên đã được sắp xếp tăng dần. Nhập số nguyên x. Hãy chèn x vào dãy a sao cho dãy a không thay đổi thứ tự đã sắp xếp
input: vào từ file chensapxep.inp gồm
-Dòng đầu: chứa số nguyên n và x (0<n<=1000000)
-Dòng sau: Chứa n số nguyên trong dãy. Các số cách nhau 1 kí tự trắng (0<x, ai<10000000)
output: Xuất ra file chensapxep.out gồm
-Dòng đầu: in dòng chữ: day sau khi chen:
-Dòng sau: là dãy sau khi đã chèn x vào. Xem ví dụ để biết cách in
ví dụ:
input
|
output
|
7 12
10 17 18 100 200 300 339
|
day sau khi chen:
10 12 17 18 100 200 300 339 |
Bài 3( Đề thi Hsg CM-2018-2019)Con số may mắn (mayman.pas)
Trường THCS
XYZ tổ chức giải bóng đá mini mừng Đảng, mừng Xuân 2019. Các lớp trong trường rất
hào hứng tham gia giải nên giải bóng đá mini của trường đã thành công tốt đẹp. Tại
buổi lễ trao giải có N cầu thủ tham dự, ngoài giải thưởng dành cho các cá nhân
và tập thể lớp thì ban tổ chức có tổ chức tặng quà Tết cho các cầu thủ có “số
may mắn”. Đầu tiên ban tổ chức yêu cầu các cầu thủ tự tìm cho mình một số cuối
cùng dựa trên số áo của mình đang mặc (số
cuối cùng được xác định là tổng các chữ số của số đó, sau đó lại tính tổng các
chữ số của số mới tạo được cho đến khi chỉ còn một chữ số duy nhất). Sau đó
ban tổ chức đưa ra một số nguyên M gọi là số may mắn, cầu thủ có cuối cùng
trùng với số may mắn mà ban tổ chức đưa ra sẽ nhận được quà.
Ví dụ: Số áo cầu thủ là 79 thì số cuối cùng được tạo ra là 7 (79 ® 16 ® 7).
Yêu cầu: Viết
chương trình đếm số cầu thủ nhận được quà may mắn của ban tổ chức.
Input: Được nhập vào từ file mayman.inp
gồm
-Dòng
1: ghi số nguyên dương N là số lượng cầu thủ tham dự (0<N<=500) và số
nguyên dương M là số may mắn mà ban tổ chức đưa ra (0<M<10). Hai số cách
nhau một kí tự trắng
-N
dòng sau mỗi dòng ghi một số nguyên dương tương ứng với số áo của cầu thủ (Mỗi
số không vượt quá 10000)
Output: Ghi vào file mayman.out
gồm 1 dòng ghi số lượng cầu thủ nhận được quà.
Ví dụ:
mayman.inp
|
mayman.out
|
Giải thích
|
7 3
2
3
8
12
30
18
3
|
4
|
Có 7 cầu thủ tham dự, con số may mắn là số 3 nên
các cầu thủ mang số áo 3, 12, 30 được quà và số lượng cầu thủ nhận được quà
là 4.
(Do có nhiều đội tham dự nên có thể trùng lặp
số áo giữa các cầu thủ tham dự)
|
Bài 4:Tính toán cơ bản (tinhtoan.pas)
Cho hai số nguyên và phép tính cần thực hiện.
Hãy viết chương trình tính và in ra kết quả của phép tính tương ứng giữa hai số
đó
Nếu là “+” in kết quả là tổng
Nếu là “-” in kết quả là hiệu
Nếu là “*” in kết quả là tích
Nếu là “/” in kết quả là thương
Dữ liệu vào từ file tinhtoan.inp gồm
hai dòng:
-Dòng 1 ghi hai số nguyên, mỗi số
cách nhau một khoảng trắng (giá trị mỗi số <=106)
-Dòng
2 ghi phép tính cần thực hiện là + hoặc – hoặc * hoặc /
Dữ liệu xuất ghi ra file tinhtoan.out
gồm: một dòng ghi kết quả phép tính (nếu là phép chia kết quả làm tròn lấy 2 chữ
số thập phân)
tinhtoan.inp
|
tinhtoan.out
|
8 12
+
|
20
|
339 9
/
|
37.67
|
Bài 5: Xếp gạch XEPGACH (xepgach.pas)
Minh rất thích trò chơi xếp các chiếc hộp có hình viên gạch.
Minh đặt các viên gạch chồng lên nhau và xây thành nhiều chồng có độ cao khác
nhau. Minh khoe với chị rằng “Chị trông, em đã xây được một bức tường”. Chị
Minh trả lời: “Em phải xếp các viên gạch có độ cao giống nhau mới được gọi là
một bức tường”. Sau khi nghe chị nó như vậy, nó cân nhắc một tí và cho rằng ý
kiến đó là đúng. Vì vậy em bắt đầu tiến hành sắp xếp lại các chồng gạch lần
lượt từng chiếc một cho đến khi hoàn thành công việc. Khi công việc đã hoàn
tất. Minh mệt lả và muốn có bạn nào giúp Minh di chuyển các viên gạch với số
lần ít nhất.
Yêu cầu: đưa ra
số lần di chuyển ít nhất của các viên gạch sao cho từ các chồng gạch có độ cao
khác nhau trở thành các chồng gạch có độ cao bằng nhau; lần lượt từng viên một
cho đến khi hoàn thành công việc.
Dữ liệu vào: xepgach.inp
·
Dòng đầu tiên là số chồng gạch n (1≤ n ≤ 50)
·
Dòng tiếp theo lần lượt là các số nguyên hi,
độ cao của chồng gạch thứ i. (1≤ hi ≤ 100, i = 1 .. n).
Dữ liệu ra: xepgach.out
Một
số nguyên dương duy nhất là số lần di chuyển các viên gạch ít nhất. Nếu không
thể xếp được thì ghi -1
Ví dụ
Input
|
Output
|
Giải thích
|
6
5 2 4 1 7 5
|
5
|
Bài 6: Đếm số 0 (so0.pas)
Cho trước 2 số nguyên m
và n. Hãy đếm số lượng số 0 có trong
dãy số nguyên bắt đầu từ m cho
đến n.
Dữ liệu vào: so0.inp gồm
1 dòng chứa 2 số nguyên m và n, m ≤ n
≤ 106
Dữ liệu ra: so0.out gồm 1
dòng chứa số lượng số 0 tìm được.
Ví dụ:
Input
|
Output
|
100 103
|
5
|
Giải thích: 100,101,102,103 có tất cả 5 số 0
Bài 8: SỐ TRÂU (sotrau.pas)
x con trâu, y bó cỏ
Trâu đứng ăn năm, Trâu nằm ăn ba, lụ khụ Trâu già ba con một bó
. Hỏi số Trâu mỗi loại
Dữ liệu vào: sotrau.inp gồm 1 dòng chứa 2 số nguyên x và y(0< x ,y ≤ 106
Dữ liệu ra: sotrau.out ghi 3 số nguyên lần lượt là Trâu đứng, trâu nằm, trâu già. Nếu có nhiều đáp án thì mỗi đáp án trên một dòng, nếu không có nghiệm ghi -1
Ví dụ:
Input
|
Output
|
100 100
|
4, 18 78
8 11 81 12 4 84 |
Bài 9:Tổng bé nhất SUMMIN
Cho dãy số
nguyên a = (a1, a2, ... , an)
Yêu cầu tìm 2 số nguyên liên tiếp trong dãy a: ap,
ap+1 có giá trị tuyệt đối của tổng là bé nhất.
Dữ liệu
vào: gồm 2 dòng summin.inp
• Dòng 1: Chứa số nguyên N (2 ≤ n ≤
10000)
• Dòng 2: Chứa n số a1, a2, ... , an theo đúng thứ tự cách nhau một dấu cách (|ai|
≤ 10000).
Dữ liệu ra:
summin.out
• Dòng 1: Ghi tổng tìm được
• Dòng 2: Ghi hai vị trí p và p+1 nhỏ
nhất.
ví dụ:
Bài 10: Ngựa truyền tin HORSE.PAS
Tin tức tình báo thu được cho thấy quân địch sắp mở cuộc tấn
công quy mô. Trạm tiền đồn biên giới cử người phóng ngựa về thủ đô báo cáo tình
hình và xin tiếp viện. Giữa tram tiền đồn và thủ đô có bố trí N trạm, các trạm ngựa
cách đều nhau, ở đó lính cờ (người cầm cờ hiệu đưa tin) có quyền trao đổi ngựa
mới trong trạm. Ngựa của trạm i có thể phi tới trạm kế tiếp sau thời gian T[i]
giờ. Mỗi con ngựa đều đủ khỏe để có thể đi một mạch tới tận thủ đô.
Yêu cầu: Hãy xác địn khoảng thời gian ngắn nhất tin tức tình báo được đưa về tới thủ đô.
Dữ liệu vào horse.inp
- Dòng đầu là số nguyên N (N ≤ 106)
- Dòng 2 là n số nguyên T[i].
Dữ liệu ra: horse.out gồm 1 dòng duy nhất là giá trị cần tìm
Bài 11:Lỗ hổng chữ số LOHONG
Lớp của Bờm
tuy không phải là lớp chuyên nhưng phong trào học Toán – Tin rất sôi động. Thầy
giáo của Bờm rất tâm huyết, luôn tìm các bài toán hay, mới, lạ, đặc biệt là bài
toán quy luật để dạy trò. Một hôm, thầy giáo đến lớp thật sớm trước tiết
toán, viết lên bảng một dãy có quy luật sau:
42 à 1, 1337 à 0, 669 à 3, 1882 à 4, 688 à 5, 12345 à 1, 123 à 0, 456 à 2, 789 à 3. Và thầy đố cả lớp rằng: 45678 à ?
Bằng một
cái đầu rất nhạy bén Toán Tin, nhất là những bài toán Tin logic, Bờm đã kiếm
được lời giải trên … Google ngay khi về đến nhà. Chật vật một hồi, cậu đã tìm
ra quy luật của bài toán: chuyển số “lỗ hổng” trong các chữ số của số đã cho và
biểu diễn chúng (không có chữ số 0 ở đầu). Chữ số 1, 2, 3, 5 và 7 không có lỗ
hổng nào; các chữ số 0, 4, 6, 9 có một “lỗ hổng” và đặc biệt chữ số 8 có đến 2
lỗ hổng. Hôm sau Bờm rất tự tin mở rộng bài toán bằng cách thêm vào một vài số
nữa đến đố bạn các lớp bên cạnh. Bạn đọc hãy giúp các bạn ấy giải bài này để
Bờm không được dịp “kiêu” nhé.
Dữ liệu vào
: -gồm một số nguyên duy nhất n (1 <= n <=1000000)
Dữ liệu ra:
In ra màn hình một số nguyên duy nhất là số lỗ hổng của số đã cho
Bài 12: Xe
điện TRAM
Nước Anh có đúng một đường xe điện. Có n trạm dừng, đánh số từ 1
đến n theo thứ tự di chuyển của xe.
Tại trạm thứ i có ai hành khách xuống xe, sau
đó có bi hành khách lên
xe. Xe không có ai trước khi nó đến trạm đầu tiên và khi đến trạm cuối cùng tất
cả các hành khách đều xuống xe.
Nhiệm vụ của bạn là tính sức chứa tối thiểu của xe để bất cứ
thời điểm nào số lượng người bên trong xe không bao giờ vượt quá sức chứa này.
Lưu ý rằng ở mỗi trạm dừng tất cả các hành khách trên xe xuống trước rồi các
hành khách ở dưới mới lên xe.
Input
·
Dòng đầu tiên chứa một số duy nhất n - số lượng các trạm dừng của xe điện. (2 ≤ n ≤ 1000)
·
n dòng
tiếp theo, mỗi có chứa hai số nguyên ai
và bi (0 ≤ ai, bi ≤ 1000) - số lượng hành khách
xuống xe và lên xe tại trạm thứ i.
Theo đề bài ta có a1 = bn
= 0. (Trạm đầu không ai xuống, trạm cuối không ai lên nữa)
Output: In một số nguyên duy nhất biểu thị sức chứa
tối thiểu của xe điện.
ví dụ:
Bài 13:
Lớp chuyên Tin học đi tham quan du lịch ở núi Sơn Tinh. Trong lớp có n học sinh, các học
sinh được đánh số thứ tự từ 1 đến n. Cả
lớp quyết định lên đỉnh núi bằng cáp treo nhưng cabin cáp treo chỉ cho phép
ngồi tối đa 2 người và tổng cân nặng không vượt quá m. Hỏi có bao nhiêu cách
xếp hai học sinh khác nhau vào cabin cáp treo
Input: capin.inp gồm:
Dòng đầu: số nguyên n và m (0<n<500, 0<m<=120)
Dòng sau: là cân nặng của n học sinh trong lớp. số thứ i là cân nặng của
bạn thứ i và mỗi số không vượt quá 100
Output: capin.out
-ghi số nguyên là số cách xếp
Ví dụ
|
var
Trả lờiXóaa:array[1..1000]of longint;
i,x,k,n:longint;
begin
write('nhap n=');readln(n);
for i:=1 to n do
begin
write('a[',i,']=');
readln(a[i]);
end;
write('nhap x=');readln(x);
k:=1;
for i:=1 to n do
if (a[i] < x) then
k:=k+1;
for i:=n downto k do
a[i+1]:=a[i];
a[k]:=x;
n:=n+1;
writeln('day so sau khi chen:');
for i:=1 to n do
write(a[i],' ');
readln;
end.
Chuẩn. 10đ
Xóauses crt;
Trả lờiXóavar a,b:array[1..1000]of longint;
n,i,j,s,d,m,e,p:longint;
begin
readln(n);
readln(m);
for i:=1 to n do
readln(a[i]);
for i:=1 to n do
begin
if (a[i]<10)and(a[i]=m) then d:=d+1;
if (a[i]>=10) then
while a[i]<>0 do
begin
j:=a[i] mod 10;
a[i]:=a[i] div 10;
s:=s+j;
end;
if (s=m)and(s<10) then
begin
s:=0;
d:=d+1;
end
end;
writeln(d);
readln
end.
jh
XóaTính toán cơ bản (tinhtoan.pas)
Trả lờiXóavar
a,b:longint;
n:string;
s:real;
begin
read(a);
write(' ');
readln(b);
readln(n);
if n='+' then
writeln(a+b)
else
if n='-' then
writeln(a-b)
else
if n='*' then
writeln(a*b)
else
if n='/' then
writeln(a/b:0:2)
else
writeln('Phep tinh khong hop le');
readln;
end.