1. Trang chủ
  2. » Giáo án - Bài giảng

FILE 20210225 102106 TAI LIEU ON THI HOC SINH GIOI MON TIN HOC 2020

63 60 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 63
Dung lượng 197,32 KB

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

Nội dung

Trang 1

CHUYÊN Đ S NGUYÊN L N Ề Ố Ớ

1 C ng hai s nguyên l n ộ ố ớ

B ướ c 1: X lí làm sao cho hai s nguyên có chi u dài b ng nhauử ố ề ằ

B ướ c 2: Chuy n t ng kí t trong hai s nguyên l n vào hai m ngể ừ ự ố ớ ả

B ướ c 3: Ti n hành c ng hai m ng ( C ng t ph i sang trái)ế ộ ả ộ ừ ả

For i:=1 to m do Begin

Writeln('Ket qua phep cong la:');

// -Xu li mang ket For i:=2 to m do c[i]:=c[i] mod 10;

For i:=1 to m do Write(c[i]);

B ướ c 2: Chuy n t ng kí t c a hai s b tr và s tr vào 2 m ngể ừ ự ủ ố ị ừ ố ừ ả

B ướ c 3: Ti n hành tr hai m ng ( Tr t ph i sang trái)ế ừ ả ừ ừ ả

Trang 2

While (Pos(' ',st1)<>0) do delete(st1,pos(' ',st1),1);

While (Pos(' ',st2)<>0) do delete(st2,pos(' ',st2),1);

While length(st1)>length(st2) do st2:='0'+st2;

While length(st2)>length(st1) do st1:='0'+st1;

// -Tim so bi tru va tim so

If st1>st2 then Begin

sbt:=st1; st:=st2;dau:='';

End Else Begin sbt:=st2; st:=st1;dau:='-';

End;

// -Thuat

m:=length(sbt);

For i:=1 to m do Begin

// -Xu li mang ket

For i:=2 to m do c[i]:=c[i] mod 10;

For i:=1 to m do Write(c[i]);

Readln;

End.

3 S nguyên l n nhân N ố ớ

B ướ 1: Chuy n t ng kí t c a c ể ừ ự ủ s nguyên l n vào m ng Aố ớ ả

For i:=1 to length(st) do val(st[i], c[i], code);

For i:=2 to length(st) do c[i]:= c[i] mod 10

Bài 4 Nhân hai s nguyên l n: ố ớ

Trang 3

Write('st2=');Readln(st2);

n:=length(st1);m:=length(st2);

// -Đ a vào m ng A[n], B[m] đ tính - ư ả ể

For i:= 1 to n do val(st1[i],a[i],code);

For i:= 1 to m do val(st2[i],b[i],code);

// -Tinh mang ket

C[n+m]:=0;

For i:= n downto 1 do For j:=m downto 1 do c[i+j]:=c[i+j]+a[i]*b[j];

// -Xu li mang ket

For i:=m+n downto 2 do Begin

Bài 5: Nh p m t s nguyên l n và nh p n (0<n<10) In ra màn hình th ậ ộ ố ớ ậ ươ ng và s ố

d c a phép chia s nguyên l n cho n ư ủ ố ớ

if a[i]<n then x:=a[i]*10+a[i+1];

Trang 4

CHUYÊN Đ S LA MÃ Ề Ố Bài 1: Chuy n s La mã sang s h c s 10 ể ố ố ệ ơ ố

For i:=1 to length(so) do

If so[i] in ['a' 'z'] then so[i]:=Upcase(so[i]);

a['I']:=1;A['V']:=5;A['X']:=10;A['L']:=50;A['C']:=100;

A['D']:=500;A['M']:=1000;

m:=a[so[length(so)]];

For i:= length(so) downto 2 do

If a[so[i]]>a[so[i-1]] then m:=m-a[so[i-1]]

CHUYÊN Đ DÃY CON Ề

Bài 1: Dãy con đ n đi u tăng dài nh tơ ệ ấ

Bài 2: Dãy con đan d u dài nh tấ ấ

Bài 3: Dãy con cùng d u dài nh tấ ấ

Bài 4: Dãy con có các ph n t k nhau và gi ng nhau dài nh tầ ử ề ố ấ

Bài 5: Dãy con có t ng b ng Sổ ằ

Bài 6: Dãy con có t ng l n nh tổ ớ ấ

Bài 7: Dãy con k ph n t có t ng l n nh tầ ử ổ ớ ấ

Bài 8: Dãy con dài nh t có t ng chia h t cho Kấ ổ ế

Bài 9:Trò ch i v i băng s ơ ớ ố

Trang 5

( L u ý n u có bao nhiêu dãy con th a đi u ki n thì in ra t t c !)ư ế ỏ ề ệ ấ ả

Bài 10: Dãy con chung dài nh t c a hai dãy ấ ủ

THU T TOÁN Ậ

B ướ c 1: Vi t chế ương trình con ki m tra đi u ki n, ho c chể ề ệ ặ ương trình con tính t ngổ

B ướ c 2: Vi t th t c in dãy k t quế ủ ụ ế ả

B ướ c 3: Duy t m ng đ tìm max ( dài nh t hay t ng l n nh t)ệ ả ể ấ ổ ớ ấ

B ướ c 4: Duy t m ng l i m t l n n a đ truy v t và in k t quệ ả ạ ộ ầ ữ ể ế ế ả

Ví d Bài 1: Dãy con đ n đi u tăng dài nh t ụ ơ ệ ấ

For i:= x to y-1 do

If a[i]>=a[i+1] then ddt:=False;

Writeln;

End;

// -than chuong

trinh -begin clrscr;

write('nhap so phan tu=');readln(n);

for i:=1 to n do begin

If ddt(i,j) then

If (j-i+1)>max then max:=j-i+1;

// -Truy vet de in ket

For i:=1 to n-1 do For j:=i+1 to n do

If ddt(i,j) then

If (j-i+1)=max then inkq(i,j);

readln;

end

Bài 2,3,4: Ch thay th ch ỉ ế ươ ng trình con ki m tra đi u ki n ể ề ệ

Bài 5: Dãy con có t ng b ng S ổ ằ

program TongbangS;

uses crt;

type mang=array[1 100] of longint;

var a:mang;

Trang 6

For i:= x to y do Tong:=tong+a[i];

Writeln;

End;

// -Than chuong

trinh -begin clrscr;

write('nhap so phan tu=');readln(n);

for i:=1 to n do begin

write('a[',i,']=');readln(a[i]);

end;

// -Thuat

For i:=1 to n-1 do For j:=i+1 to n do

If Tong(i,j)=S then inkq(i,j);

For i:= x to y do Tong:=tong+a[i];

Writeln;

End;

// -Than chuong

trinh -begin clrscr;

write('nhap so phan tu=');readln(n);

for i:=1 to n do begin

Trang 7

If Tong(i,j)>max then max:=Tong(I,j);

// -Truy vet de in ket

For i:=1 to n-1 do For j:=i+1 to n do

If Tong(i,j) =max then inkq(i,j);

For i:= x to x+k-1 do Tong:=tong+a[i];

Writeln;

End;

// -Than chuong

trinh -begin clrscr;

write('nhap so phan tu=');readln(n);

for i:=1 to n do begin

If Tong(i)>max then max:=Tong(i);

// -Truy vet de in ket

For i:=1 to n-1 do For j:=i+1 to n do

If Tong(i) =max then inkq(i);

Readln;

End

Bài 8: Dãy con dài nh t có t ng chia h t cho K ấ ổ ế

Trang 8

For i:=x to y do t:=t+a[i];

If t mod k=0 then kt:=True Else kt:=False;

If (j-i+1)>max then max:=j-i+1;

// -Truy vet de in ket

Trang 9

For i:=n downto 1 do

If kt(i,tong div i) then

d) Hãy xóa đi v trí th k trong m ng ( S d ng th t c xóa)ị ứ ả ử ụ ủ ụ

e) Hãy chèn X vào v trí th k trong dãy (dùng th t c chèn)ị ứ ủ ụ

f) Tìm ki m và thay th : Hãy tìm t t c các c p s c nh nhau có t ng chia h t choế ế ấ ả ặ ố ạ ổ ế

10 và thay th các s này b ng t ng c a chúngế ố ằ ổ ủ

g) Nh p dãy tăng, sai thì nh p l i, nh p -1 thì d ng và tính t ng (b -1)ậ ậ ạ ậ ừ ổ ỏ

h) Nh p dãy n pt, In ra màn hình các s âm tăng d n, các s dậ ố ầ ố ương gi m d nả ầ

s ; ố

Trang 10

For i:=1 to length(st) do

If st[i] in['a' 'z'] then st[i]:=Upcase(st[i]);

For ch:='A' to 'Z' do A[ch]:=0;

For i:= 1 to length(st) do

If st[i] in['A' 'Z'] then A[st[i]]:=A[st[i]]+1;

For i:= 1 to length(st) do

If st[i] in['0' '9'] then A[st[i]]:=A[st[i]]+1;

For ch:='0' to '9' do

If A[ch]<>0 then Writeln(ch,' ->',A[ch]);

Readln;

End.

2. Nh p chu i g m nhi u t ậ ỗ ồ ề ừ: chu n hóa chu i; đ m s tẩ ổ ế ố ừ, in t dài nh t; in t đ iừ ấ ừ ố

x ng trong chu i; in câu đ o có nghĩa;ứ ỗ ả

3. Chu i con: ỗ

a) Chu i con đ i x ng dài nh t; ỗ ố ứ ấ

b) Chu i con g m các ph n t k nhau và gi ng nhau dài nh t;ỗ ồ ầ ử ề ố ấ

c) Ki m tra chu i có k ph n t k nhau và gi ng nhay không, n u có xóa các pt ể ỗ ầ ử ề ố ế

k và gi ng nhau ch gi l i 1 kí tề ố ỉ ữ ạ ự

d) Chu i con chung dài nh t c a hai chu i; ỗ ấ ủ ỗ

e) Ki m tra hai chu i có ph i là hai chu i b n bè hay không ể ỗ ả ỗ ạ

f) Nén và gi i nén chu i ả ỗ

H ƯỚ NG D N GI I Ẫ Ả (T ươ ng t nh dãy con trong m ng 1 chi u) ự ư ả ề a) Chu i con đ i x ng dài nh t: ỗ ố ứ ấ

- Bước 1: Chương trình con ki m tra tính đ i x ng t v trí x đ n y ể ố ứ ừ ị ế

- Bước 2: Th t c in t v trí x đ n v trí y chu i stủ ụ ừ ị ế ị ỗ

- Bước 3: Duy t chu i tìm max ( dài nh t)ệ ỗ ấ

- Bước 4: Duy t chu i truy v t đ in k t quệ ỗ ế ể ế ả

Trang 11

For i:=1 to length(st)-1 do

For j:=i+1 to length(st) do

If dx(i,j) then

If(j-i+1)>max then max:=j-i+1;

// -Truy vet va in ket

For i:=1 to length(st)-1 do

For j:=i+1 to length(st) do

For i:=1 to length(st)-1 do

For j:=i+1 to length(st) do

If kt(i,j) then

If(j-i+1)>max then max:=j-i+1;

Trang 12

// -Truy vet va in ket

For i:=1 to length(st)-1 do

For j:=i+1 to length(st) do

For i:=1 to length(st)-1 do

For j:=i+1 to length(st) do

Trang 13

If dem(i,j)>max then max:=dem(i,j);

// -Truy vet in ket

For i:=1 to length(st1) do

Trang 14

a/ Nh p chu i S1 t bàn phím, nén chu i s1 thành chu i S2 và xu t S2 ra màn hinhậ ỗ ừ ỗ ỗ ấVD: S1: AABCAAAAACCCCBBB ->S2: AABC5A4C3B

b/ T bàn phím nh p chu i S2 dừ ậ ỗ ướ ại d ng đã nén, gi i nén l i chu i S1 ban đ u, xu t k tả ạ ỗ ầ ấ ế

For i:= x to length(st1)-1 do

If st1[i]=st1[i+1] then d:=d+1 Else Break;

While i<=length(st) do Begin

If dem(i)=1 then Write(st[i]) Else

If dem(i)=2 then Write(st[i],st[i]) Else

If dem(i)>2 then Write(dem(i),st[i+1]);

If Not(st[i] in['0' '9']) then Write(st[i]);

If (st[i] in['3' '9'])and (Not(st[i+1] in['0' '9'])) then Begin

Writeln('Chuoi sau khi nen la: ');nen(st1);

Write('Nhap chuoi can giai nen:');Readln(st2);

Writeln('Chuoi sau khi giai nen la: ');giainen(st2);

Trang 15

66

67 68

69

70 71

72 73

74

J I

K L

M N

For i:=1 to length(st) do

If st[i]<>' ' then st[i]:=char(((ord(st[i])-65+k)mod 26)+65);

Write('Chuoi sau khi ma hoa la: ',st);

End;

Procedure giaima(st:string);

Var i:longint;

Begin

For i:=1 to length(st) do st[i]:=char((((ord(st[i])-65-k)+26)mod 26)+65);

Write('Chuoi sau khi giai ma la: ',st);

End;

Begin

Write('Nhap chuoi:');readln(st);

Trang 16

t Nh p n,m ki m tra n,m có ph i là c p s nguyên t t ố ậ ể ả ặ ố ố ươ ng đ ườ ng hay không ?

Trang 17

End Else i:=i+1;

If ( so1 mod d[i]<>0) then ok2:=False;

If ok1 and ok2 then ok:=True Else ok:=False;

If ok then Writeln('NTTD') Else Writeln('Khong !');

Trang 18

Ví d : 6 là ph n nguyên t vì 6 có 4 ụ ả ố ước, các s t 1 đ n 5 không có s nào nhi u h n 4 ố ừ ế ố ề ơc

Trang 20

If a mod b=0 then Writeln('PS khi rut gon la: ',dau,a div b) Else

Writeln('PS khi rut gon la:',dau,a div ucln(a,b),'/',b div ucln(a,b));

Readln;

End.

Bài 12: N u N<5 thì s ch s 0 t n cùng b ng 0, ngế ố ữ ố ậ ằ ượ ạc l i thì s ch s không t n cùngố ữ ố ậ

b ng: (n div 5)+ S ch s 0 tân cùng c a (n div 5)ằ ố ữ ố ủ

Bài 13: S thú v là s nguyên t và đ o ngố ị ố ố ả ượ ủc c a nó cũng là s nguyên tố ố

Bài 14: S song đ i x ng là s đ i x ng và bi u di n nh phân c a nó cũng là s đ i ố ố ứ ố ố ứ ể ễ ị ủ ố ố

For i:=1 to length(st) div 2 do

If st[i]<>st[length(st)-i+1] then dx:=False;

Trang 21

If n<2 then kt:=false Else

For i:=2 to trunc(sqrt(n)) do

If n mod i=0 then

Trang 22

For i:=2 to trunc(sqrt(n)) do

If (n mod i=0) then

Write('nhap so chu so sieu nguyen to: ');readln(n);

For i:=1 to 4 do try(a[i]);Writeln;

Write('Co ',d,' so sieu nguyen to');

Readln;

End.

CHUYÊN Đ PHÂN TÍCH S Ề Ố 1) Phân tích m t s thành t ng ộ ố ổ

a) Phân tích m t s thành t ng c a hai s nguyên tộ ố ổ ủ ố ố

b) Phân tích m t s thành t ng c a ba s nguyên tộ ố ổ ủ ố ố

c) Phân tích m t s thành t ng c a các s t nhiên liên ti pộ ố ổ ủ ố ự ế

d) Phân tích m t s thành t ng c a các s FBNX đôi m t khác nhauộ ố ổ ủ ố ộ

2) Phân tích m t s thành tích ộ ố

a) Phân tích m t s thành tích các th a s nguyên t d ng nhânộ ố ừ ố ố ạ

b) Phân tích m t s thành tích các th a s nguyên t d ng lũy th aộ ố ừ ố ố ạ ừ

c) Tìm s nh h n N sao cho khi phân tích ra th a s nguyên t có nhi u nhân t ố ỏ ơ ừ ố ố ề ử

If n<2 then kt:=False Else

For i:=2 to trunc(sqrt(n)) do

If n mod i=0 then

Trang 23

If n<6 then Writeln('Khong the phan tich') Else

For i:=1 to n div 3 do

If kt(i) then

For j:=i to (n-i) div 2 do

If kt(j) and kt(n-i-j) then Writeln(n,'=',i,'+',j,'+',n-i-j);

For i:=x to y do t:=t+i;

For i:= x to y-1 do Write(i,'+');

Writeln(y);

End;

Begin Write('n=');Readln(n);

ok:=True;

For i:=1 to n-1 do For j:=i+1 to n do

If tong(i,j)=n then Begin

For i:=3 to 60 do a[i]:=a[i-1]+a[i-2];

For i:= 60 downto 1 do

Trang 24

For i:=1 to m do b[i]:=True;

For i:=1 to m-1 do If (a[i]=a[i+1] ) then b[i+1]:=False;

// -Duy t m ng và in k t qu - ệ ả ế ả

For i:=1 to m do

Trang 25

If b[i] then Write(a[i],'^',dem(a[i]),'.');

Readln;

end

c) Tìm s nh h n N mà sau khi phân tích ra th a s nguyên t có nhi u nhân t ố ỏ ơ ừ ố ố ề ử

nh t ấ ( Ho c tìm s nh h n N mà có nhi u ặ ố ỏ ơ ề ước nguyên t nh t)ố ấ

B ướ c 1: CTC đ m s ế ố ước nguyên t c a m t s Nố ủ ộ ố

B ướ c 2: Th t c phân tích m t s N ra th a s nguyên tủ ụ ộ ố ừ ố ố

B ướ c 3: Tìm max ( s ố ước nguyên t nhi u nh t trong các s t 1 đ n n)ố ề ấ ố ừ ế

B ướ c 4: Truy v t và in k t qu ( phân tích)ế ế ả

For i:= 1 to n-1 do If dem(i)>max then max:=dem(i);

For i:=1 to n do If dem(i)=max then phantich(i);

Readln;

end.

Nh n xét: ậ Các s nh h n N có nhi u ố ỏ ơ ề ước nh t đ u có d ng 2ấ ề ạ x ho c 2ặ x-1.3

Nh v y bài toán thành: Tìm x l n nh t sao cho 2ư ậ ớ ấ x <N ho c 2ặ x-1.3<N

Bài toán tr nên r t đ n gi n !ở ấ ơ ả

Trang 27

For i:=1 to n do b[i]:=True;

Write('Hoan vi thu ',k,' la: ');

Try(1);

Readln;

End.

Bài 3: K là m t trong các hoán v c a N H i K là hoán v th m yộ ị ủ ỏ ị ứ ấ

{K la mot trong so hoan vi cua n, nhap k, hoi k la hoan vi thu may}

Trang 28

Write('nhap hoan vi k=');Readln(k);

For i:=1 to n do b[i]:=True;

Bài 5 ng d ng c a dãy nh phân có đ dài n Ứ ụ ủ ị ộ

Bài 5.1 Cho t p h p A={1, 2, 3, ….n} (n<9) Hãy li t kê t t c các t p h p con c a ậ ợ ệ ấ ả ậ ợ ủA

Trang 29

Hãy vi t chế ương trình đ i t gi y b c có m nh giá n (Vi t Nam đ ng) ra ba lo i gi yổ ờ ấ ạ ệ ệ ồ ạ ấ

b c có m nh giá 500, 200, 100 (Vi t Nam đ ng) sao cho s t g y b c ph i s d ng là ít ạ ệ ệ ồ ố ờ ấ ạ ả ử ụ

nh t (n đấ ược nh p t bàn phím).ậ ừ

2 Bài toán đóng gói g o ạ

Trang 30

M t nhà máy xây xát c n đóng gói gao vào các lo i bao 100 kg, 50 kg, 20 kg, 10 kg, ộ ầ ạ

5 kg V i m i 1o i bao ch đớ ỗ ạ ỉ ược đóng gói khi đ s lủ ố ượng quy đ nh cho 1o i bao đó Tuy ị ạnhiên công ty s n xu t các lo i bao thì cung c p s lả ấ ạ ấ ố ượng bao theo t ng đ t v i s lừ ợ ớ ố ượng

t ng lo i khác nhau.ừ ạ

Yêu c u: V i kh i lầ ớ ố ượng g o va s lạ ố ượng bao c a t ng lo i cho trủ ừ ạ ước, hãy tìm m t ộ

phương án đóng gói sao cho s lố ượng g o th a không đạ ừ ược đóng gói (n u có) là ít nh t.ế ấ

3 Bài toán tr ti n đi n ả ề ệ

Vi t chế ương trình pascal tính ti n đi n c a h gia đình A v i s kW đi n tiêu th là ề ệ ủ ộ ớ ố ệ ụN.?

Bi t r ng giá đi n đế ằ ệ ược tính nh sau:ư

1-50 kW: 1670đ/kW

51-100 kW : 1780đ/kW

101 tr đi: 2600đ/kWở

4 Bài toán tr ti n taxi ả ề

Vi t chế ương trình tính ti n cề ước TAXI Bi t r ng:ế ằ

Hãy xác đ nh s phòng 2 chị ố ổ a2 và s phòng 3 chổ a3 c n thuê.

6 Nh p vào m t s nh h n 1000 Hãy đ c s đó ra màn hình ậ ộ ố ỏ ơ ọ ố

7 Hãy nh p vào m t năm d ậ ộ ươ ng l ch, hãy đ i sang năm âm l ch ị ổ ị

8 Bài toán ng ườ i khách mua hàng

Khách th 1 m t t1 phút đ ph c vuứ ấ ể ụ

Khách th 2 m t t2 phút đ ph c vứ ấ ể ụ ụ

………

Khách th N m t tứ ấ n phút đ ph c vể ụ ụ

a) H i ngỏ ười khách nào có th i gian ph c v nhanh nh t, là bao lâu ?ờ ụ ụ ấ

b) V y ngậ ười khách th K ph i đ i bao lâu m i đứ ả ợ ớ ược ph c v mua hàng ?ụ ụ

9 Bài toán chú công an trong Pascal

Không quá 100 công an tham gia chi n d ch truy quét t i ph m, chia thành không ế ị ộ ạquá 26 đ i, M i đ i kí hi u là ch cái in thộ ỗ ộ ệ ữ ường az, các đ i khác nhau có đánh ộ

d u khác nhau, chi n sĩ công an đ i nào thì đánh kí hi u đ i đó Các kí hi u này ấ ế ộ ệ ộ ệghép thành chu i st, nh p chu i st, Tính s đ i và s lỗ ậ ỗ ố ộ ố ượng chi n sĩ trong m i ế ỗ

đ i ( Chu i, tu n su t)ộ ỗ ầ ấ

10 Mario hái n m ấ

Trong m t dãy các cây n m ( có n cây n m) có kh i lộ ấ ấ ố ượng khác nhau

Mario ph i ch n liên t c k cây n m đ t ng kh i lả ọ ụ ấ ể ổ ố ượng g n 100 nh tầ ấ

Trang 31

If abs(tong(i,j)-100)<min then min:=abs(tong(i,j)-100);

// Truy vet va in day ket

Var tram:Array[0 9] of String =(' ','mot tram','hai tram','ba tram','bon tram','nam

tram','sau tram','bay tram','tam tram','chin tram');

chuc:Array[0 9] of String=('le ','muoi','hai muoi','ba muoi','bon muoi','nam muoi','sau

muoi','bay muoi','tam muoi','chin muoi');

donvi:Array[0 9] of String =(' ','mo`t','hai','ba','bon','lam','sau','bay','tam','chin');

Ngày đăng: 22/03/2021, 16:01

TỪ KHÓA LIÊN QUAN

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

w