You are on page 1of 8

NHẬP MÔN LẬP TRÌNH

Lớp: INPR130285_08CLC

Giảng viên: Huỳnh Xuân Phụng

BÀI TẬP VỀ NHÀ SỐ 3

Sinh viên trình bày: Bùi Hà Nhi MSSV: 18110168

Câu 1:

Input Output
0 0
1 0 1
2 0 1 1
3 0 1 1 2
4 0 1 1 2 3
5 0 1 1 2 3 5
a) Viết chi tiết các bước xuất kết quả với N=0, N=3, N=5

Đặt: x 0=1 , x1 =N =1

x i=x i−2+ x i−1; số đầu ra: N+1

N=0: output 1 số : X 0 =0

N=3: output 4 số: X 0=1 , X 1=1 , X 2=X 0 + X 1=1 , X 3=3

N=5: ouput 6 số: X 0=1 , X 1=1 , X 2=X 0 + X 1=1 , X 3=3 , X 3 =3 , X 4=5

b) Viết chi tiết các bước và kết qỉa với N=6:

Với N=6, ta có số đầu ra là: N+1=7


x 0=1 , x1 =N =1

x i=x i−2+ x i−1;

x 0=1 , x1 =N

Kết quả N=6: cho ra 7 số: 0 1 1 2 3 5 8

c) Thuật toán cho tham số N


Nhập N

Đếm từ 0 đến N, gán x=N

Nếu N=0 thì:

Mảng S chiều dài N+1 số

S=[N+1]=[1]

Kết thúc thuật toán

Ngược lại N>0 thì:

Mảng S chiều dài N+1 số

Đếm từ 1 đến N+1, gán i

i=i+1

x=x+i

S=[x+i]

Kết thúc thuật toán.

d) Chuyển đổi thuật toán thành sơ đồ khối


Câu 2:

Input Output
K=0, Hello Hello
K=1, Hello Ifmmp
K=3, Hello Khoor
K=4, Chao Gles
K=0, Chao Chao

a) Viết chi tiết các bước xuất kết quả với mỗi trường hợp

Xét theo bảng chữ cái Alphabet

Với Hello: (chữ cái đầu là H)

K=0: K tăng 0, H vẫn là H => Xuất Hello

K=1: K tăng 1, H tăng lên thành I => Xuất Ifmmp

K=3: K tăng 3, H tăng lên thành I, J rồi thành K => Xuất Khoor

Với Chao: (chữ cái đầu là C)

K=4: K tăng 4, C tăng lên thành D rồi thành E,F rồi thành G => Xuất Gles

K=0: K tăng 0, C vẫn là C => Xuất Chao

b) Viết chi tiết các bước và kết quả với K=6, Chao

Xét theo bảng chữ cái Alphabet

Với Chao: (chữ cái đầu là C)

K=6: K tăng 6, C tăng lên thành D,E,F,G,H rồi thành I => Xuất Ifmmp

c) Biểu diễn tổng quát thuật toán cho tham số K

Nhập chuỗi “Hello”, “Chao”. Gán H=Hello, C=Chao

Nếu là H thì nhập K là các số 0,1,3 (0 và các số lẻ)

Xuất ra các chuỗi tương đương với thứ tự alphabet


Kết thúc thuật toán

Ngược lai: nếu là C thì nhập K là các số 0,4,6,8 (0 và các số chẵn)

Xuất ra các chuỗi tương đương với thứ tự alphabet

Kết thúc thuật toán

d) Chuyển đổi thuật toán thành sơ đồ khối


Câu 3:

Cho các đồng xu loại 1,5,10,20,50

a) Đổi 1 số tiền sang tối thiểu số lượng các đồng xu, xuất ra 3 trường hợp chia

VD: 46= 2.20+1+5

46=4.10+1+5

46=3.10+1+3.5

Nhập số tiền N

Lấy N chia dư cho mệnh giá lớn nhất (loại 50), gọi dư là div1

Được số đồng xu loại 50

Lấy Div1 chia dư tiếp cho mệnh giá loại 20, gọi dư là div2

Được số đồng xu loại 20

Lấy Div2 chia dư tiếp cho mệnh giá loại 10, gọi dư là div3

Được số đồng xu loại 10

Lấy Div3 chia dư tiếp cho mệnh giá loại 5, gọi dư là div4

Được số đồng xu loại 5

Div4 chính là số đồng xu loại 1

b) Thuật toán cho tham số N= tổng số tiền cần đổi

Khai báo mảng: int tiền[s]={1,5,10,20,50}

Nhập N=tổng số tiền cần đổi

Đếm từ 0 đến 5, gán i:

Số đồng xu = N / tiền[i]

Kết thúc thuật toán

Nếu số đồng xu khác (!=) 0


Xuất số đồng dư tiền[i]

Số đồng= số tiền % tiền[i]

Kết thúc thuật toán

c) Chuyển đổi thuật toán thành sơ đồ khối


Câu 4:

Thuật toán sắp xếp chuỗi số theo thứ tự tăng dần

//Giả sử chuỗi a[100] có 100 phần tử là 100 số

Nhập chuỗi a ( tên, số phần tử của chuỗi, đk pt>=0)

Nhập số phần tử n

Nhập từng phần tử: a[0], a[1], a[j], a[i], … , a[n]

Đếm từ 0 đến n-1, gán i=0:

Đếm từ i+1 đến n, gán j=i+1:

Nếu a[i]>a[j] thì: hoán đổi vị trí của a[i] và a[j]

Ngược lại: giữ nguyên vị trí của a[i] và a[j]

Xuất ra chuỗi mới

Kết thúc thuật toán


Câu 5: (đoán ở dạng trung bình: tối đa đoán 10 lần)

Viết thuật toán để dự đoán đúng K với số bước nhỏ nhất có thể.

Cho 1 số nguyên dương bất kỳ N: 1≤N≤1000.

Thuật toán:

Nhập 1 số nguyên K

Gán số bước cần thực hiện để Win: W=1

Đếm từ 0 đến 1000, gán N

So sánh K với N

Nếu K=N: xuất “Win”

Xuất W=1

Kết thúc thuật toán

Ngược lại:

Nếu K>N: Điểm đầu tiên = N

Ngược lại K<N: Điểm cuối = N


Điểm đầu tiên+ Điểm cuối
N= 2

Xuất W

Kết thúc thuật toán

You might also like