1. Trang chủ
  2. » Thể loại khác

MOT SO BAI TAP ON 1

13 290 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 13
Dung lượng 241,01 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Xóa hết các ký tự không phải ký tự số trong mỗi chuỗi, loại bỏ kí tự ‘0’ ở đầu mỗi chuỗi nếu có để thu được hai con số Nếu chuỗi rỗng trả về con số 0 - In ra màn hình hai con số thu được

Trang 1

MỘT SỐ BÀI TẬP Bài 1: (6 điểm) ;

Viết chương trình nhập vào 2 dãy số nguyên A, B có n phần tử khác nhau ( n nhập không quá 50) Giá trị của phần tử lớn nhất trong cả 2 dãy không quá 1000 Hãy tạo ra 1 dãy C có kết quả là hòa hai dãy A và B sao cho các phần tử trong C cũng

có giá trị tăng dần ? In kết quả từng dãy ra màn hình.

Vd : ta có A=[2 4 6 9 24 30]

B=[1 4 7 10 15 21]

Kết quả C=[1 2 4 4 6 7 9 10 15 21 24 30]

Bài 2: (7 điểm)

Viết chương trình nhập vào một chuỗi bất kì S sau đó ghi ra file KETQUA.TXT 2 kết quả: chuỗi con gồm các ký tự trong chuỗi S và tổng các giá trị của các ký tự là số trong chuỗi S.

Ví dụ :

S=’A312BC24DE’

S1=ABCDE

Tổng=12

Bài 3: Viết chương trình phân tích một số nguyên dương N ra thành thừa số

nguyên tố

Ví dụ: N=100 thì in ra 2*2*5*5 vì 100=2*2*5*5

N=13 thì in ra 13 vì 13 là số nguyên tố

29/ Nhập vào bàn phím hai chuỗi s1,s2 không quá 255 ký tự gồm ký tự số có lẫn loại ký tự khác Xóa hết các ký tự không phải ký tự số trong mỗi chuỗi, loại bỏ kí

tự ‘0’ ở đầu mỗi chuỗi nếu có để thu được hai con số (Nếu chuỗi rỗng trả về con số 0)

- In ra màn hình hai con số thu được

- In ra màn hình tổng hai con số trên

Ví dụ:

Trang 2

Nhap chuoi thu nhat : ‘abc0123d@4$5]’

Nhap chuoi thu hai: ‘*\def56ab7’

So thu nhat: 12345

So thu hai : 567

Tong : 12912

Bài 4: Số hoàn hảo (6đ)

Số n gọi là số hoàn hảo, nếu như tổng các ước số của n (không kể n) bằng chính

Ví dụ: 28 = 1 + 2 + 4 + 7 + 14 là số hoàn hảo

Viết chương trình (Pascal) cho nhập n nguyên, dương từ bàn phím In ra màn hình :

- Các ước số của n (không kể n)

- Xác định n có phải là số hoàn hảo

- Tất cả các số hoàn hảo trong phạm vi từ 1 n

Bài 5: Cặp số thân thiết (7đ)

Hai số nguyên dương được gọi là thân thiết nếu chúng có cùng ước số nguyên tố lớn nhất

Hãy viết chương trình kiểm tra xem hai số nguyên dương có là cặp số thân thiết hay không?

Dữ liệu vào là hai số nguyên dương a, b (1< a, b < 1010) nhập từ bàn phím

Cặp số gọi là thân thiết nếu tổng ước của a bằng b và tổng ước của b bằng a

var a,b:integer;

function tu(n:integer):integer;

var i,tong:integer;

begin

tong:=0;

for i:=1 to n do if n mod i=0 then tong:=tong+i;

Trang 3

tu:=tong;

end;

begin

readln(a,b);

if (tu(a)=b) and (tu(b)=a) then Write('cap so than thiet') else write('cap so khong than thiet');

readln

end.

Bài 6: Thống kê:

Phòng giáo dục quản lí học sinh các cấp học: Mầm non, tiểu học, THCS Số học sinh quản lí có độ tuổi từ 3 đến 15 tuổi Để phục vụ cho việc báo cáo, phòng giáo dục cần thống kê số học sinh theo từng độ tuổi

Yêu cầu: Hãy viết chương trình giúp phòng giáo dục thống kê số lượng học sinh theo từng độ tuổi.

Dữ liệu: Cho từ file văn bản có tên THONGKE.INP có cấu trúc sau:

- Dòng đầu ghi số N (N<10000) là số lượng học sinh mà phòng GD quản lí

- Dòng thứ 2 ghi số N số tương ứng là số tuổi của N học sinh, mỗi số cách nhau

ít nhất một khoảng cách

- Kết quả: Ghi ra file văn bản THONGKE.OUT gồm nhiều dòng, mỗi dòng ghi

2 số: số thứ nhất là độ tuổi, số thứ hai là số lượng học sinh ở độ tuổi đó.

Ví dụ:

13

3 4 12 3 5 13 5 3 12 15 3 8 15

3 4

4 1

5 2

8 1

Trang 4

12 2

13 1

15 2

Bài 3

var a:array[1 100] of integer;

n,i,so:integer;

f1,f2:text;

function ucln(a,b:integer):integer;

begin

while a<>b do

if a>b then a:=a-b else b:=b-a;

ucln:=a;

end;

begin

assign(f1,'d:\input.txt');

reset(f1);

readln(f1,n);

for i:=1 to n do read(f1,a[i]);

so:=a[1];

for i:=2 to n do so:=ucln(so,a[i]); assign(f2,'d:\output.txt');

rewrite(f2);

write(f2,so);

Trang 5

close(f1);

close(f2);

readln

end.

Bài 7: S chính ph ố ươ ng

S chính phố ương là s t nhiên có căn b c hai là 1 s t nhiên, hay nóiố ự ậ ố ự cách khác, s chính phố ương là bình phương (lũy th a b c hai) c a m t từ ậ ủ ộ ự nhiên

Cho s nguyên dố ương N (N<1000) và dãy A g m N s nguyên dồ ố ương a1,a2,

…,an; m i s có giá tr không vỗ ố ị ượt quá 10000

* Yêu c u:ầ

Tìm s lố ượng các s chính phố ương trong dãy A

D li u vào cho trong t p văn b n SCP.INP g m 2 dòngữ ệ ệ ả ồ

+ Dòng đ u tiên ch a s nguyên Nầ ứ ố

+ Dòng th 2 tr đi là các s nguyên dứ ở ố ương bi u di n giá tr c a cácể ễ ị ủ

ph n t trong dãy A, m i giá tr cách nhau 1 kho ng tr ng ho c xu ng dòng.ầ ử ỗ ị ả ắ ặ ố

K t qu ghi trong t p văn b n SCP.OUT là s lế ả ệ ả ố ượng các s chính phố ương trong dãy A

Ví d :ụ

4 9 8 23 16

var n,i,dem:integer;

a:array[1 100] of integer;

f:text;

function ktscp(n:integer):boolean;

begin

if n=sqr(trunc(sqrt(n))) then ktscp:=true else ktscp:=false;

end;

begin

assign(f,'d:\scp.inp');

reset(f);

readln(f,n);

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

dem:=0;

Trang 6

for i:=1 to n do if ktscp(a[i])=true then inc(dem);

assign(f,'d:\scp.out');

rewrite(f);

write(f,dem);

close(f);

readln

end.

Bài 8: C p đôi lí t ặ ưở ng:

Cho dãy s g m N s nguyên dố ồ ố ương F1,F2,…,Fn Xét hai s Fi, Fj trong dãyố (i<>j và 1<=i,j<=n) là m t c p đôi lí tộ ặ ưởng n u chúng có giá tr khác nhau, cóế ị

ít nh t 2 ch s và các ch s c a s h ng này gi ng h t c a s h ng kiaấ ữ ố ữ ố ủ ố ạ ố ệ ủ ố ạ

nh ng khác nhau v th t xu t hi n.ư ề ứ ự ấ ệ

Ví d :ụ

+ 123 và 132 hay 121 và 211 là các c p đôi lí tặ ưởng;

+ 121 và 122 hay 457 và 457 không ph i c p đôi lí tả ặ ưởng

Yêu c u:ầ

Cho bi t N và dãy s F1, F2, , Fn Hãy xác đ nh s c p đôi lý tế ố ị ố ặ ưởng trong dãy

đã cho

D li u vào cho trong t p văn b n capdoi.inpữ ệ ệ ả

- Dòng đ u tiên là s N (N<=50000)ầ ố

- Các dòng ti p theo ghi các giá tr c a dãy s (ch g m các s <1000) Cácế ị ủ ố ỉ ồ ố

s cách nhau kho ng tr ng ho c xu ng dòng.ố ả ắ ặ ố

K t qu ghi vào t p văn b n capdoi.out, ghi s c p đôi lí tế ả ệ ả ố ặ ưởng trong dãy đã cho

Ví dụ :

3 9 23 124 121 112 211 132 32 133

Gi i thu t:ả ậ

Vi t chế ương trình con ki m traể

S p x p 2 xâu s tăng d nắ ế ố ầ

N u 2 xâu b ng nhau thì c p s lí tế ằ ặ ố ưởng

Chương trình chính

Duy t m ng gi ng s p x pệ ả ố ắ ế

G i chọ ương trình con ki m tra c p s lí tể ặ ố ưởng

var a:array[1 100] of string;

n,i,j,dem:integer;

Trang 7

function kt(s1,s2:string):boolean;

var tam:char;

i,j:integer;

begin

for i:=1 to length(s1)-1 do

for j:=i+1 to length(s1) do if s1[i]>s1[j] then

begin

tam:=s1[i];

s1[i]:=s1[j];

s1[j]:=tam;

end;

for i:=1 to length(s2)-1 do

for j:=i+1 to length(s2) do if s2[i]>s2[j] then

begin

tam:=s2[i];

s2[i]:=s2[j];

s2[j]:=tam;

end;

if s1=s2 then kt:=true else kt:=false;

end;

begin

write('Nhap n:');readln(n);

for i:=1 to n do

begin

write('nhap phan tu thu i:');

readln(a[i]);

end;

dem:=0;

for i:=1 to n-1 do

for j:=i+1 to n do if (a[i]<>a[j]) and (kt(a[i],a[j])=true) then inc(dem); write(dem);

readln

end.

Trang 8

Bài 9: Đ nh lí 6174 ị

Dãy 6174 đ ượ ạ c t o theo cách sau:

- S h ng đ u tiên c a dãy là s nguyên dố ạ ầ ủ ố ương n1 g m 4 ch s (b nồ ữ ố ố

ch s c a s h ng đ u tiên này không đ ng th i b ng nhauữ ố ủ ố ạ ầ ồ ờ ằ

- Hai s m i (a1 và b1) đố ớ ượ ạc t o thành t s đ u tiên c a dãy S thừ ố ầ ủ ố ứ

nh t a1 có đấ ược b ng cách s p x p các ch s c a n1 theo th t gi mằ ắ ế ữ ố ủ ứ ự ả

d n và s th nhì b1 có đầ ố ứ ược b ng cách s p x p các ch s c a n1 theoằ ắ ế ữ ố ủ

th t tăng d nứ ự ầ

- S th nhì n2 c a dãy là hi u a1-b2ố ứ ủ ệ

- Ti p t c, hai s a2,b2 đế ụ ố ượ ạc t o thành t n2 từ ương t nh cách t oự ư ạ a1,b1 và s th ba n3 c a dãy là hi u a2-b2 và c th ti p t cố ứ ủ ệ ứ ế ế ụ

- Ch s 0 đ u s ( v trí th nh t tính t bên trái) v n có nghĩaữ ố ở ầ ố ị ứ ấ ừ ẫ

- D ng th c hi n phép tính tr khi k t qu v a b ng giá tr 6174ừ ự ệ ừ ế ả ừ ằ ị

Đ nh lí 6174 phát bi u r ng s h ng cu i c a dãy s xây d ng nh trênị ể ằ ố ạ ố ủ ố ự ư luôn là s 6174ố

Ví d :ụ

Xét dãy s h ng đ u tiên (n1) là 7815 ố ạ ầ Ta có

7731-1377=6354 (n3) 6543-3456=3087 (n4) 8730-0378=8352 (n5) 8532-2358 =6174 (n6) Yêu c u:ầ

Cho s nguyên dố ương n1 Xác đ nh s l n th c hi n phép toán tr đ th cị ố ầ ự ệ ừ ể ự

hi n k t qu cu i cùng theo đ nh lí 6174 nh ví d trên.ệ ế ả ố ị ư ụ

D li u vào cho trong t p văn b n dl6174.inp g m 1 dòng ch a s nguyênữ ệ ệ ả ồ ứ ố

dương n1

K t qu ghi vào t p văn b n dl6174.out ghi s l n th c hi n phép toán trế ả ệ ả ố ầ ự ệ ừ

Ví dụ

Gi i thu t ả ậ

Vi t ch ế ươ ng trình con

- Hàm s p x p tăng d n c a 1 xâu s , sau đó tr v giá tr s ắ ế ầ ủ ố ả ề ị ố

- Hàm s p x p gi m d n c a 1 xâu s , sau đó tr v giá tr s ắ ế ả ầ ủ ố ả ề ị ố

Ch ươ ng trình chính:

- Cho bi n dem:=0; ế

- Trong khi s<>’6174’ thì làm

+ kq:=sxgd-sxtd;

Trang 9

+ Tr bi n k t qu thành chu i ( str(kq,chuso) ) ả ế ế ả ỗ + Gán l i chu s là chuso ạ ỗ

+ Tăng bi n dem ế

var s,s1,chu,chuso:string;

dem,kq:longint;

f:text;

function sxtd(s:string):longint;

var i,j:integer;

x,c:longint;

tam:char;

begin

for i:=1 to length(s)-1 do

for j:=i+1 to length(s) do if s[i]>s[j] then

begin

tam:=s[i];

s[i]:=s[j];

s[j]:=tam;

end;

val(s,x,c);

sxtd:=x;

end;

function sxgd(s:string):longint;

var i,j:integer;

tam:char;

x,c:longint;

begin

for i:=1 to length(s)-1 do

for j:=i+1 to length(s) do if s[i]<s[j] then

begin

tam:=s[i];

s[i]:=s[j];

s[j]:=tam;

end;

val(s,x,c);

sxgd:=x;

end;

begin

Trang 10

assign(f,'d:\DL6174.INP');

reset(f);

readln(f,s);

dem:=0;

while s<>'6174' do

begin

kq:=sxgd(s)-sxtd(s);

str(kq,chuso);

s:=chuso;

inc(dem);

end;

assign(f,'d:\dl6174.out');

rewrite(f);

write(f,dem);

close(f);

readln

end.

Bài 10: Mật khẩu

Cu Tí thường xuyên tham gia thi lập trình trên mạng Vì đạt được thành tích cao nên Tí được gửi tặng một phần mềm diệt virus Nhà sản xuất phần mềm cung cấp cho Tí một mã số là một số nguyên dương N có không quá 255 chữ số Để cài đặt được phần mềm, Tí phải nhập vào mật khẩu của phần mềm Mật khẩu là một số nguyên dương M được tạo ra bằng cách tính tổng giá trị các chữ số của N

Yêu cầu: Hãy tìm số nguyên dương M.

Dữ liệu vào: Cho trong file văn bản MK.INP có cấu trúc như sau:

- Dòng 1: Ghi số nguyên dương N.

Dữ liệu ra: Ghi ra file văn bản MK.OUT theo cấu trúc như sau:

- Dòng 1: Ghi số nguyên dương M tìm được.

Ví dụ:

var f1,f2:text;

i,x,mk:integer;

s:string;

begin

assign(f1,'d:\input.txt');

reset(f1);

readln(f1,s);

Trang 11

for i:=1 to length(s) do

begin

val(s[i],x);

mk:=mk+x;

end;

assign(f2,'d:\output.txt');

rewrite(f2);

write(f2,mk);

close(f1);

close(f2);

readln

end.

Bài 12: Số siêu nguyên tố File bài làm: SNT.PAS

Tại Vương quốc Byte xinh đẹp, mỗi người luôn chọn cho mình một con số, theo họ số nguyên tố là số mang lại sự may mắn và ai tìm được một số siêu nguyên tố còn may mắn hơn nữa Số siêu nguyên tố là một số nguyên tố mà khi bỏ 1 số tùy ý các chữ số bên phải của nó thì phần còn lại vẫn là 1 số nguyên tố Số 2333 là 1 số siêu nguyên tố vì 2333 là một số nguyên tố và 233, 23, 2 cũng là các số nguyên tố.

Dữ liệu vào: SNT.INP Chứa một số nguyên dương n (n ≤ 109 )

Dữ liệu ra: SNT.OUT Nếu N là siêu nguyên tố ghi giá trị 1, ngược lại ghi giá trị 0

Ví dụ:

Bài 13: ƯỚC SỐ NGUYÊN TỐ

Bài 11:

Trang 12

- Khái niệm:

+ Số nguyên b (b<>0) gọi là ước số của số nguyên a, nếu a chia hết cho b.

+ Số tự nhiên n ( n>1) gọi là số nguyên tố nếu số n chỉ có ước số là 1 và chính nó.

- Yêu cầu: Nhập số tự nhiên n từ bàn phím ( 0<n<10000) Xuất ra màn hình:

a) Các ước số là số tự nhiên của n.

b) Các ước số là số nguyên tố của n, nếu không có ước số nguyên tố xuất ra

số 0.

. - Ví dụ:

12 - Cac uoc la: 1 2 3 4 6 12

- Cac uoc nguyen to: 2 3

Bài 14 : TÌM MẬT KHẨU

Việc bảo vệ máy tính để hạn chế người khác thâm nhập là một vấn đề đặt ra cho mọi nguời sử dụng máy tính Để tăng tính an toàn trong lưu trữ, một nguời đã quyết định giấu mật khẩu truy cập máy tính của mình vào một xâu S với một qui ước sao cho khi cần anh ta có thể lấy lại được mật khẩu từ S Là một người yêu thích số học anh ta chọn mật khẩu P là một số tự nhiên và mã hóa P = P1 + P2 + … +Pi với (Pi là số nguyên, 0<=Pi<=9, 0<i<200) đem dấu các số Pi vào một xâu ký tự S.

Chẳng hạn xâu S=’mat #223 ma 678 @’ chứa mật khẩu là 28 vì P=2+2+3+6+7+8

- Yêu cầu: Cho một xâu ký tự S chiều dài không quá 255 ký tự Tìm mật khẩu P

đã dấu trong xâu S biết P có giá trị nhỏ hơn 1000

- Dữ liệu vào: Từ tệp văn bản PWORD.INP gồm 1 dòng duy nhất là xâu S

- Kết quả: Ghi vào tệp văn bản PWORD.OUT chứa số P tìm được.

- Ví dụ:

Bài 5 TIN NHẮN SMS

Trang 13

Trong dịp hè, một công ty viễn thông dự kiến cải tiến cách tính cước tin nhắn SMS trên các thiết bị di động, bằng cách tính cước trên số lượng các kí tự trong tin nhắn, mỗi

kí tự có giá là 10 đồng Nhằm thu hút khách hàng và đảm bảo doanh thu, công ty đưa ra chính sách khuyến mãi:

- Không tính tiền các kí tự xuất hiện lần thứ hai trở lên trong tin nhắn (các kí tự giống nhau chỉ tính 1 lần), không phân biệt kí tự hoa và kí tự thường.

- Tin nhắn có độ dài không quá 255 kí tự, chỉ gồm các kí tự trong bảng chữ cái Tiếng Anh và kí tự trắng.

Em hãy giúp công ty tính cước tin nhắn SMS trong đợt khuyến mãi này.

Yêu cầu: Nhập một tin nhắn từ bàn phím Tính tiền khách hàng phải trả trong đợt

khuyến mãi Xuất kết quả ra màn hình.

Ví dụ: (Kí hiệu  thay thế kí tự trắng)

Nhap noi dung tin nhan: AnhBaA So tien la: 50 Tin nhắn có độ dài là 8,

nhưng có 3 kí tự khuyến mãi (1 kí tự trắng và 2 kí tự A).

Số kí tự tính tiền: 8-3=5

Số tiền là: 5x10=50 đồng.

 Gợi ý: Xóa trùng lấy length(s)*10

Ngày đăng: 25/08/2019, 10:58

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w