You are on page 1of 25

Đỗ Nguyễn Hùng Phong-20235395 IT1108 – 20231 – Tuần 17 – Bài TH04 – Mã lớp

732……

ĐẠI HỌC BÁCH KHOA HÀ NỘI


TRƯỜNG CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
KHOA KỸ THUẬT MÁY TÍNH
---------------o0o---------------

BÁO CÁO BÀI THỰC HÀNH 4


HỌC PHẦN: NHẬP MÔN LẬP TRÌNH IT 1108

Họ và tên MSSV
Đỗ Nguyễn Hùng Phong 20235395

TP. HÀ NỘI, THÁNG 1 NĂM 2024

Báo cáo thực hành IT1108 – Nhập môn lập trình


Đỗ Nguyễn Hùng Phong-20235395 IT1108 – 20231 – Tuần 17 – Bài TH04 – Mã lớp
732……
Mục lục

Danh mục hình ảnh

Bài 4.1 Bài code ………………………………………………5

Bài 4.1 Kết quả ……………………………………………….5

Bài 4.2 Bài code ………………………………………………6

Bài 4.2 Kết quả ……………………………………………….7

Bài 4.3 Bài code ………………………………………………8

Bài 4.3 Kết quả ……………………………………………….8

Bài 4.4 Bài code ………………………………………………10

Bài 4.4 Kết quả ……………………………………………….11

Bài 4.5 Bài code ………………………………………………13

Bài 4.5 Kết quả ……………………………………………….14

Bài 4.6 Bài code ………………………………………………15

Bài 4.6 Kết quả ……………………………………………….15

Bài 4.7 Bài code ………………………………………………17

Bài 4.7 Kết quả ……………………………………………….17

Bài 4.8 Bài code ………………………………………………19

Bài 4.8 Kết quả ……………………………………………….20

Bài 4.1 Bài tập về nhà 1 code …………………….……………20

Bài 4.1 Kết quả bài tập về nhà 1………..…………………….21

Bài 4.2 Bài tập về nhà 1 code …………………….……………21

Bài 4.2 Kết quả bài tập về nhà 1………..…………………….22

Bài 4.3 Bài tập về nhà 1 code …………………….……………23


Bài 4.3 Kết quả bài tập về nhà 1………..…………………….23

Báo cáo thực hành IT1108 – Nhập môn lập trình


Đỗ Nguyễn Hùng Phong-20235395 IT1108 – 20231 – Tuần 17 – Bài TH04 – Mã lớp
732……

Báo cáo thực hành IT1108 – Nhập môn lập trình


Đỗ Nguyễn Hùng Phong-20235395 IT1108 – 20231 – Tuần 17 – Bài TH04 – Mã lớp
732……

BÀI THỰC HÀNH SỐ 4

Bài 4.1 Convolution


Đề bài:

Ví dụ: Đầu ra:

Đầu vào: 13 13

44 13 16

4233

Đầu ra: 4331

- Ma trận tích chập I*K, kích thước (M-2)x(N-2) 1004

2104

111

001

111

Báo cáo thực hành IT1108 – Nhập môn lập trình


Đỗ Nguyễn Hùng Phong-20235395 IT1108 – 20231 – Tuần 17 – Bài TH04 – Mã lớp
732……
Hình 1 – Đề bài 4.1
Source code:

Hình 2 - Ảnh code bài 4.1


KẾT QUẢ:

Hình 3 - Ảnh kết quả bài Bài 4.1


Bài 4.2 Xâu con dài nhất
Xâu ký tự X được gọi là xâu con của xâu ký tự Y nếu ta có thể xoá đi một số ký tự trong xâu Y để
được xâu X.

Cho biết hai xâu ký tự A và B chỉ gồm các chữ cái latin và chữ số, hãy tìm xâu ký tự C có độ dài lớn
nhất và là con của cả A và B.

Input - Dòng đầu chứa xâu ký tự A;


- Dòng thứ hau chứa xâu ký tự B.

Giới hạn: Độ dài các xâu A, B không vượt quá 200.

Output: Mộ dòng duy nhất ghi độ dài xâu C tìm được.

Báo cáo thực hành IT1108 – Nhập môn lập trình


Đỗ Nguyễn Hùng Phong-20235395 IT1108 – 20231 – Tuần 17 – Bài TH04 – Mã lớp
732……
Ví dụ

Input #1

abc1def2ghi3 abcdefghi123

Output #1

10

Hình 4 - Đề bài 4.2


Source code:

Hình 5 - Ảnh code bài 4.2.


Kết quả:

Báo cáo thực hành IT1108 – Nhập môn lập trình


Đỗ Nguyễn Hùng Phong-20235395 IT1108 – 20231 – Tuần 17 – Bài TH04 – Mã lớp
732……

Hình 6 - Ảnh kết quả bài 4.2


Bài 4.3 Khớp xâu
Description
Bạn được cho hai xâu ký tự s và t chỉ gồm các chữ cái Latinh thường (‘a’, …, ’z’). hãy liệt kê tất cả các
vị trí trên xâu s mà xâu t xuất hiện.

Input -Dòng đầu chứa xâu s;


- Dòng thứ hai chứa xâu t.
Giới hạn:

 1≤|s|,|t|≤2000;|t|≤|s|.

Output

 Ghi trên một dòng các vị trí xuất hiện của xâu t trong xâu s (chỉ số của ký tự đầu tiên
trong xâu là 1, các vị trí được liệt kê theo thứ tự tăng dần, hai số liên tiếp được ghi cách
nhau một dấu cách).

 Nếu xâu con không xuất hiện trong xâu cha thì in ra màn hình: -1

Hình 7 - Đề bài 4.3

Báo cáo thực hành IT1108 – Nhập môn lập trình


Đỗ Nguyễn Hùng Phong-20235395 IT1108 – 20231 – Tuần 17 – Bài TH04 – Mã lớp
732……
Source code:

Hình 8 - Code bài 4.3


Kết quả:

Hình 9 - Kết quả bài 4.3

Báo cáo thực hành IT1108 – Nhập môn lập trình


Đỗ Nguyễn Hùng Phong-20235395 IT1108 – 20231 – Tuần 17 – Bài TH04 – Mã lớp
732……

Bài 4.4 Phân tích logfile


Đề bài:
Giả sử ta có logfile của một hệ thống giám sát GPS như sau:

9/19/2023 8:55:51 PM-1167

{"imei":"480009139815271","receivedTime":"2023/09/19
13:56:57","longitude":0,"latitude":0,"gpsSpeed":0}

9/19/2023 8:56:52 PM-1169

{"imei":"480009139815271","receivedTime":"2023/09/19
13:57:03","longitude":0,"latitude":0,"gpsSpeed":0}

9/19/2023 8:56:02 PM-1169

{"imei":"480009139815271","receivedTime":"2023/09/19
13:57:08","longitude":0,"latitude":0,"gpsSpeed":0}

9/19/2023 8:57:03 PM-1169

{"imei":"480009139815271","receivedTime":"2023/09/19
13:57:14","longitude":0,"latitude":0,"gpsSpeed":0}

9/19/2023 8:56:13 PM-1166

{"imei":"480009139815271","receivedTime":"2023/09/19
13:57:19","longitude":105.632789,"latitude":21.101567,"gpsSpeed":0}

Trong đó số 5 đầu tiên là số bản ghi có trong file log; các dòng tiếp theo là chứa thông tin các bản
ghi, mỗi bản ghi thể hiện trên 2 dòng: dòng đầu ghi thời điểm máy chủ nhận được thông tin, dòng
thứ hai chứa thông tin chia tiết của bản tin.

Hãy viết chương trình in ra thời điểm đầu tiên tọa độ longitude != 0 và latitude != 0.

Đầu vào:

- Dòng đầu tiên chứa số bản ghi: N (0 < N < 100)

- Các dòng tiếp theo chứa dữ liệu của các bản ghi log (mỗi bản ghi 2 dòng), chiều dài của chi tiết
bản ghi không quá 256 ký tự

Đầu ra:

- Xâu ký tự: hiển thị thời điểm máy chủ nhận được thông tin mà 2 trường latitude và longitude khác
0

Báo cáo thực hành IT1108 – Nhập môn lập trình


Đỗ Nguyễn Hùng Phong-20235395 IT1108 – 20231 – Tuần 17 – Bài TH04 – Mã lớp
732……
Ví dụ: với dữ liệu như ở trong mô tả đầu bài thì đầu ra đúng là: 9/19/2023 8:56:13 PM-1166 (in
đúng nội dung đọc được ở dòng thứ nhất của bản ghi)

- Nếu không tìm được thời điểm nào cả 2 tọa độ longtitude và latitude đều khác 0 thì in ra:
01/01/1970 00:00:00 AM

- Nếu định dạng của log không đúng (không có trường longitude hoặc latitude) thì cũng in ra:
01/01/1970 00:00:00 AM

Hình 10 - Đề bài phân tích logfile


Source code:

Hình 11 - Code bài phân tích logfile

Báo cáo thực hành IT1108 – Nhập môn lập trình


Đỗ Nguyễn Hùng Phong-20235395 IT1108 – 20231 – Tuần 17 – Bài TH04 – Mã lớp
732……

Hình 12 - Kết quả bài phân tích loglife

Bài 4.5 Tìm và lưu chuỗi

Đề bài:
Một cơ sở dữ liệu gồm tập các xâu ký tự k1, k2, ..., kn với (1<=n<=100000); thực hiện 2 thao tác sau
đây:

· find k: tìm xâu k trong tập xâu ký tự trên, nếu tìm được trả về 1, không tìm được trả về 0

· insert k: chèn thêm xâu k vào tập xâu đang có, nếu chèn được trả về 1 (xâu k chưa tồn tại trong tập
xâu đầu vào), ngược lại trả về 0 (xâu k đã có trong tập xâu đầu vào)

Kích thuốc của 1 xâu không quá 50 ký tự

Đầu vào

Hai khối dữ liệu: khối thứ nhất chứa các xâu đầu vào, mỗi xâu nằm trên 1 dòng; kết thúc khối thứ
nhất là chuỗi ###

khối thứ 2 chứa các thao tác cần thực hiện (mỗi thao tác trên 1 dòng); kết thúc khối thứ 2 là chuỗi
#####

Số thao tác tối đa là 100000.

Output

Các dòng chứa các số 1 hoặc 0 tương ứng với kết quả thực hiện các action

Ví dụ:

Input

computer

university

school

technology

Báo cáo thực hành IT1108 – Nhập môn lập trình


Đỗ Nguyễn Hùng Phong-20235395 IT1108 – 20231 – Tuần 17 – Bài TH04 – Mã lớp
732……
phone

find school

find book

insert book

find algorithm

find book

insert book

***

Output

Hình 13 - Đề bài tìm và lưu chuỗi:

Báo cáo thực hành IT1108 – Nhập môn lập trình


Đỗ Nguyễn Hùng Phong-20235395 IT1108 – 20231 – Tuần 17 – Bài TH04 – Mã lớp
732……

Báo cáo thực hành IT1108 – Nhập môn lập trình


Đỗ Nguyễn Hùng Phong-20235395 IT1108 – 20231 – Tuần 17 – Bài TH04 – Mã lớp
732……

Hình 14 - Code bài tìm và lưu chuỗi

Báo cáo thực hành IT1108 – Nhập môn lập trình


Đỗ Nguyễn Hùng Phong-20235395 IT1108 – 20231 – Tuần 17 – Bài TH04 – Mã lớp
732……
Kết quả:

Hình 15 - Kết quả bài tìm và lưu chuỗi


Bài 4.6 Sắp xếp mảng xâu
Đề bài:
Viết chương trình sắp xếp mảng các xâu ký tự, mỗi xâu có độ dài không quá 128 ký tự, mảng có tối
đa 1000 xâu.

Đầu vào:

- Dòng đầu tiên chứa số xâu ký tự

- Các dòng tiếp theo chứa lần lượt các xâu ký tự (các xâu thỏa mãn không chứa dấu cách)

Đầu ra:

- In ra màn hình các xâu ký tự sau khi đã sắp xếp theo thứ tự alphabet, mỗi xâu trên một dòng

Ví dụ

Đầu vào 3

bac

abc

ade

Đầu ra:

abc

ade

bac

SOUND CODE

Báo cáo thực hành IT1108 – Nhập môn lập trình


Đỗ Nguyễn Hùng Phong-20235395 IT1108 – 20231 – Tuần 17 – Bài TH04 – Mã lớp
732……

KẾT QUẢ

Bài 4.7 Chuỗi tầng xoáy trôn ốc

Chuỗi tăng xoáy trôn ốc là chuỗi có định dạng như sau:

Báo cáo thực hành IT1108 – Nhập môn lập trình


Đỗ Nguyễn Hùng Phong-20235395 IT1108 – 20231 – Tuần 17 – Bài TH04 – Mã lớp
732……
Viết chương trình cho phép nhập vào 1 xâu ký tự và trả ra xây ký tự đó có phải là dạng xoáy trôn ốc
hay không.

Đầu vào:

- Xâu ký tự: kích thước không quá 256 ký tự

Đầu ra:

- Nếu xâu là xoáy trôn ốc: in ra "TRUE"

- Nếu xâu không phải xoáy trôn ốc: in ra "FALSE"

Ví dụ 1:

Đầu vào: adjourned

Đầu ra: TRUE

Ví dụ 2:

Đầu vào: settled

Đầu ra: FALSE

LƯU Ý: các bài hardcode chỉ trả về TRUE hoặc FALSE sẽ không được tính điểm

Hình 16 - Đề bài chuỗi xoáy ốc


Source code:

Báo cáo thực hành IT1108 – Nhập môn lập trình


Đỗ Nguyễn Hùng Phong-20235395 IT1108 – 20231 – Tuần 17 – Bài TH04 – Mã lớp
732……

Hình 17 - Code bài chuỗi xoáy ốc


Kết quả:

Hình 18 - Kết quả bài chuỗi xoáy ốc


Bài 4.8 Cấp phát động
Đề bài:

Báo cáo thực hành IT1108 – Nhập môn lập trình


Đỗ Nguyễn Hùng Phong-20235395 IT1108 – 20231 – Tuần 17 – Bài TH04 – Mã lớp
732……

Hình 19 - Đề bài cấp phát động


Source code:

Hình 20 - Code bài cấp phát động

Báo cáo thực hành IT1108 – Nhập môn lập trình


Đỗ Nguyễn Hùng Phong-20235395 IT1108 – 20231 – Tuần 17 – Bài TH04 – Mã lớp
732……
Kết quả:

Hình 21 - Kết quả bài cấp phát động

BÀI TẬP VỀ NHÀ


Bài tập về nhà 4.1. Dãy các xâu ký tự, mỗi xâu có độ dài không quá 30 ký tự.
- Nhập vào một mảng xâu có n bản ghi, Kiểm tra nếu xâu rỗng thì yêu cầu nhập lại.
- In ra mảng xâu vừa nhập được sắp xếp theo ABC.
- Tìm kiếm một xâu bất kỳ nhập vào và thông báo có hoặc không trong mảng xâu
vừa nhập.

Báo cáo thực hành IT1108 – Nhập môn lập trình


Đỗ Nguyễn Hùng Phong-20235395 IT1108 – 20231 – Tuần 17 – Bài TH04 – Mã lớp
732……

2222222222222

Ket qua

Báo cáo thực hành IT1108 – Nhập môn lập trình


Đỗ Nguyễn Hùng Phong-20235395 IT1108 – 20231 – Tuần 17 – Bài TH04 – Mã lớp
732……

Bài tập về nhà 4.2 Sử dụng con trỏ, viết chương trình sau
- Nhập, Xuất các phần tử của mảng số thực với n phần tử. (n>10).
- Sắp xếp tăng dần, giảm dần, in ra kết quả mảng tăng dần, giảm dần
- Xuất ra tổng các phần tử dương, tổng các phần tử âm của mảng
- Xuất ra các phần tử >(<) một số x nhập vào từ bàn phím.

Báo cáo thực hành IT1108 – Nhập môn lập trình


Đỗ Nguyễn Hùng Phong-20235395 IT1108 – 20231 – Tuần 17 – Bài TH04 – Mã lớp
732……

Bài tập về nhà 4.3. Bài tập tổng hợp.


Làm bài tập tổng hợp chọn các bài từ 4.1 đến 4.8 và Bài tập về nhà.

Báo cáo thực hành IT1108 – Nhập môn lập trình


Đỗ Nguyễn Hùng Phong-20235395 IT1108 – 20231 – Tuần 17 – Bài TH04 – Mã lớp
732……

Báo cáo thực hành IT1108 – Nhập môn lập trình


Đỗ Nguyễn Hùng Phong-20235395 IT1108 – 20231 – Tuần 17 – Bài TH04 – Mã lớp
732……

Báo cáo thực hành IT1108 – Nhập môn lập trình

You might also like