1. Trang chủ
  2. » Luận Văn - Báo Cáo

Chương trình thực hiện các phép toán trên bit

25 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Chương Trình Thực Hiện Các Phép Toán Trên Bit
Tác giả Dương Tuấn Kiệt, Trương Văn Đức Quy, Lâm Trần Phú Hào, Nguyễn Hòa Thành
Người hướng dẫn GVC. Ths. Nguyễn Thị Bích Linh
Trường học Trường Đại Học Đồng Tháp
Chuyên ngành Khoa Học Máy Tính
Thể loại Báo Cáo Tổng Kết
Năm xuất bản 2023
Thành phố Đồng Tháp
Định dạng
Số trang 25
Dung lượng 3,02 MB

Nội dung

15 Tóm lại, việc thực hiện chương trình thực hiện các phép toán trên BIT đã giúp tôi nâng cao kiến thức và kỹ năng về lập trình cũng như làm việc nhóm, từ đó giúp tôi phát triển bbn thân

Trang 2

LỚP: Công Nghệ Thông Tin 22A

GI<NG VIÊN HƯỚNG D>N: GVC Ths NGUYAN THB THCY LINH

Trang 3

DANH SÁNH SINH VIÊN NHÓM 10

ĐT:0816947380E-mail:

duongtuankiet20042020@gmail.com

Bbng phân công công viê dc:

OR, NOT, XOR trên bit

Dương Tuấn Kiệt

i

Trang 4

ĐÁNH GIÁ CỦA GIẢNG VIÊN HƯỚNG DẪN

*Chú ý: Sai mẫu sẽ không chấm điểm, nộp trể hạn bị trừ 0.5 điểm/1ngày

2.1 Nêu được kết qub chính đạt

Ngày nộp: ……….

Người nộp

<HỌ TÊN>

Trang 5

MỤC LỤC

1 MỞ ĐẦU: 1

2 NỘI DUNG ĐỀ TÀI 1

2.1 Đặt vấn đề (Phát biểu bài toán, gibi thuật) 1

2.1.1: Nhập vào hai số nhị phân cần tính toán 1

2.1.2: Thực hiện các phép toán: 1

2.1.3: In ra kết quả của phép tính 2

2.2 Phương pháp gibi quyết vấn đề (trình bày ý tưởng bằng lời) 2

2.3 Thiết kế và cài đă dt thuật toán (Vẽ sơ đồ chức năng tổng thể và phân rã các macro/chương trình con, sơ đồ thuật toán các chương trình con/thủ tục) 2

2.3.1: Sơ đồ chức năng tổng thể 2

2.3.2: Sơ đồ thuật toán các chương trình con/thủ tục 3

2.3.2.1: Nhập số nhị phân 3

2.3.2.2: Phép "AND" 3

2.3.2.3: Phép "OR" 3

2.3.2.4: Phép "NOT" 3

2.3.2.5: Phép "XOR" 3

2.3.2.6: In ra kết qub 3

2.4 Ví dụ minh họa cho gibi thuật 3

2.5 Đánh giá (gibi thuật) 6

2.5.1: Ưu điểm: 6

2.5.2: Nhược điểm: 6

2.5.3: Tổng kết: 6

2.6 Gibi bài tập minh họa 6

2.7 Giới thiệu DEMO và hướng dẫn sử dụng (chụp hình giao diện và giới thiệu từng bước sử dụng, gibi thích kết qub chạy trình) 7

2.7.1: Giới thiệu DEMO 7

2.7.2: 7

iii

Trang 6

Hình 2.7.2.1) Mở file cài đặt Dev C++ 8

Hình 2.7.2.2) Bấm Agree 9

Hình 2.7.2.3) Bấm Next 10

Hình 2.7.2.4) Chọn nơi cài đặt Dev C++ và bấm Install 11

Hình 2.7.2.5) chọn finish 12

Hình 2.7.2.6) giao diện chương trình 13

Hình 2.7.2.7) các chức năng 14

Hình 2.7.2.8) kết qub hiển thị ra màn hình 15

2.8 Nhận xét và bình luận, đề xuất: 15

3 KẾT LUẬN 15

3.1 Kết qub đạt được (về lý thuyết, kỹ năng thực hành/viết Demo, kỹ năng làm việc nhóm): 15

Tóm lại, việc thực hiện chương trình thực hiện các phép toán trên BIT đã giúp tôi nâng cao kiến thức và kỹ năng về lập trình cũng như làm việc nhóm, từ đó giúp tôi phát triển bbn thân và tăng cường sự tự tin trong việc thực hiện các dự án trong tương lai 16

3.2 Hạn chế 16

3.3 Hướng phát triển 16

TÀI LIỆU THAM KHẢO: 18

Trang 7

1 MỞ ĐẦU:

 Đây là một chủ đề quan trọng vì các phép toán trên BIT được sử dụng rộngrãi trong mã hóa, truyền thông, tối ưu bộ nhớ và các ứng dụng khác trongngành công nghiệp và khoa học kỹ thuật Ngoài ra, việc viết chương trìnhthực hiện các phép toán trên BIT sẽ giúp người dùng có thêm kỹ năng lậptrình và hiểu sâu hơn về cách thức hoạt động của máy tính

 Lý do vì đây là một chủ đề trong lĩnh vực Tin học và Toán học.Chương trình này sẽ giúp người dùng tính toán các phép toán cơ bbntrên các số trong hệ thống số nhị phân (BIT) như AND, OR, XOR vàcác phép dịch bit

2 NỘI DUNG ĐỀ TÀI

2.1 Đặt vấn đề (Phát biểu bài toán, giải thuật)

Phát biểu bài toán: Viết một chương trình trên máy tính để thực hiện các phép toán cơ

bbn trên các số trong hệ thống số nhị phân (BIT) như AND, OR, XOR và các phép dịchbit, giúp người dùng có thể thực hiện các phép toán trên BIT một cách dễ dàng và chínhxác

 OR: Thực hiện phép toán "OR" giữa hai số Các bit trong kết qub sẽ được đặt là

"1" nếu có ít nhất một bit tương ứng trong hai số là "1"

 XOR: Thực hiện phép toán "XOR" giữa hai số Các bit trong kết qub sẽ được đặt là

"1" nếu có một trong hai bit tương ứng trong hai số là "1", nhưng không đồng thời

cb hai đều là "1"

 Dịch bit: Thực hiện phép toán dịch trái hoặc dịch phbi các bit trong một số nhịphân Trong đó, phép dịch trái sẽ giúp các bit của số bị dịch sang trái một số vị trínhất định, bằng cách thêm các bit "0" ở cuối số, và phép dịch phbi sẽ giúp các bitcủa số bị dịch sang phbi một số vị trí nhất định, bằng cách thêm các bit "0" hoặc

"1" ở đầu số

1

Trang 8

2.1.3: In ra kết quả của phép tính.

2.2 Phương pháp giải quyết vấn đề (trình bày ý tưởng bằng lời)

Để giải quyết bài toán "Chương trình thực hiện các phép toán trên BIT", chúng ta

có thể sử dụng một số phương pháp sau đây:

1 Sử dụng các thư viện và công cụ hỗ trợ: Các thư viện và công cụ hỗ trợ nhưBitwise Operators trong ngôn ngữ lập trình C++ hay Visual Studio CodeExtensions có thể giúp chúng ta thực hiện các phép toán trên BIT một cách dễdàng và nhanh chóng

2 Thực hiện các phép toán thủ công: Nếu không sử dụng các thư viện và công cụ hỗtrợ, chúng ta có thể thực hiện các phép toán trên BIT bằng cách sử dụng các phéptoán logic cơ bbn như AND, OR, XOR và các phép dịch bit

3 Sử dụng các kỹ thuật tối ưu hoá: Các kỹ thuật tối ưu hoá như Bit Masking hay BitShifting có thể giúp tăng tốc quá trình thực hiện các phép toán trên BIT lên đángkể

Với mỗi phương pháp, chúng ta có thể sử dụng các ngôn ngữ lập trình phổ biến như C++,Java, Python hay JavaScript để xây dựng chương trình thực hiện các phép toán trên BIT.Bằng cách sử dụng các phương pháp này, chúng ta có thể tạo ra những chương trình cótính ứng dụng cao, giúp qubn lý và xử lý các số nhị phân nhanh chóng và chính xác trongcác dự án lập trình của mình

2.3 Thiết kế và cài đă }t thuật toán (Vẽ sơ đồ chức năng tổng thể và phân rã các macro/chương trình con, sơ đồ thuật toán các chương trình con/thủ tục)

Trang 9

2.3.2: Sơ đồ thuật toán các chương trình con/thủ tục 2.3.2.1: Nhập số nhị phân

 Nhập vào số nhị phân Kiểm tra số vừa nhập + Nếu không phbi số nhị phân, yêu cầu nhập lại + Nếu là số nhị phân, lưu số này vào biến

 In ra kết qub tính toán của các phép toán

2.4 Ví dụ minh họa cho giải thuật

Trang 11

cout<<"Nhap vao mot so: ";

cout<<"Xin Chao Cac Ban! \ n";

cout<<"Nhom 10 gom 4 thanh vien:\n";

cout<<"Duong Tuan Kiet, 0022410015\n";

cout<<"Truong Van Duc Quy,0022410065\n";

cout<<"Lam Tran Phu Hao,0022410549\n";

cout<<"Nguyen Hoa Thanh,0018410669\n";

cout<<"Chuong Trinh Thuc Hien Cac Phep Toan Tren Bit\n";cout<<"Noi Dung La:\n";

5

Trang 12

cout<<"2 Mo ta phep toan OR:\n";cout<<"3 Mo ta phep toan XOR:\n";cout<<"4 Mo ta phep toan NOT:\n";cout<<"10 Thoat chuong trinh:\n";cout<<"Chon chuc nang:\n ";

cout<<"Cam on Cac Ban, Hen Gap Lai.\n";cin>>n;

Trang 13

2.5 Đánh giá (giải thuật)

 Hàm kiểm tra số nhị phân giúp đbm bbo đầu vào là số nhị phân hợp lệ

 Chương trình sử dụng đúng các toán tử nhị phân (AND, OR, NOT, XOR) đểthực hiện các phép toán, giúp tiết kiệm thời gian tính toán

2.5.2: Nhược điểm:

 Chương trình chỉ hỗ trợ tính toán trên số nhị phân đến 32 bit, nếu muốn tínhtoán trên số nhị phân lớn hơn cần phbi sửa đổi code để hỗ trợ số nhị phân lớnhơn

 Chương trình chỉ hỗ trợ tính toán trên số nguyên không âm, nếu muốn tínhtoán trên số thực cần phbi sửa đổi code để hỗ trợ số thực

2.5.3: Tổng kết:

 Gibi thuật Chương trình thực hiện các phép toán trên BIT là một gibi thuậtđơn gibn nhưng rất hữu ích trong lĩnh vực máy tính và lập trình như xử lýhình bnh, âm thanh, mã hóa dữ liệu Chương trình thực hiện tính toán các

7

Trang 14

phép toán trên BIT một cách chính xác và hiệu qub, giúp đơn gibn hóa quátrình tính toán và cbi thiện hiệu suất của chương trình.

2.6 Giải bài tập minh họa

2.7.1: Giới thiệu DEMO

Chương trình này cho phép người dùng nhập vào hai số nhị phân và loại

phép toán cần tính (AND, OR, NOT, XOR) để thực hiện phép tính tương ứng

Trang 15

Hình 2.7.2.1) Mở file cài đặt Dev C++

Bước 2: Cửa sổ License Agreement hiện lên, bấm Agree.

9

Trang 16

Hình 2.7.2.2) Bấm Agree Bước 3: Ở cửa sổ Choose Components , tiếp tục bấm Next

Trang 17

Hình 2.7.2.3) Bấm Next Bước 4: Bấm Browse để chọn nơi cài đặt Dev C++ (nếu cần) và

bấm Install để tiến hành cài đặt

11

Trang 18

Hình 2.7.2.4) Chọn nơi cài đặt Dev C++ và bấm Install Bước 5: Bấm Finish để hoàn thành cài đặt

Trang 19

Hình 2.7.2.5) chọn finish

Hướng dẫn sử dụng:

Bước 1: Mở chương trình Dev-c++

Bước 2: nhấn tổ hợp phím Fn+F11 (F11) hoặc chọn vào Execute rồi nhấn chọn Compile & run

Trang 20

Bước 4: Chương trình sẽ thực hiện phép tính và hiển thị kết qub.

Gibi thích kết qub chạy chương trình:

 khi chạy chương trình thì người dùng dễ dàng nhìn thấy được một giao diện dòng lệnh đơn gibn

Hình 2.7.2.6) giao diện chương trình

 thì chương trình yêu cầu người dùng chọn 1 trong 4 chức năng sau:

1 phép AND

2 phép OR

3 phép XOR

4 phép NOT

Trang 21

Hình 2.7.2.7) các chức năng

kết qub được hiển thị trên Dev-c++

15

Trang 22

Hình 2.7.2.8) kết quả hiển thị ra màn hình

2.8 Nhận xét và bình luận, đề xuất:

 Chương trình thực hiện các phép toán trên BIT bằng ngôn ngữ lập trình C++ là một chương trình đơn gibn, dễ hiểu và dễ sử dụng Chương trình cho phép người dùng nhập vào hai số nhị phân và loại phép toán để thực hiện phép tính tương ứng, rồi hiển thị kết qub phép tính trên terminal

 Tuy nhiên, chương trình chỉ hỗ trợ tính toán trên số nhị phân có độ dài tối đa là 32 bit Điều này giới hạn khb năng của chương trình trong việc thực hiện các phép tính trên các số nhị phân lớn hơn Ngoài ra, do chương trình không có giao diện đồ họa, nó có thể khó để người dùng nhập vào các số nhị phân dài hơn một cách thuậntiện

 Để nâng cao khb năng của chương trình, có thể thêm hỗ trợ cho việc tính toán trên các số nhị phân có độ dài lớn hơn 32 bit, hoặc cbi tiến giao diện để tạo ra một giao diện đơn gibn hơn cho người dùng Ngoài ra, việc thêm tính năng lưu kết qub phép tính cũng sẽ giúp người dùng dễ dàng qubn lý các kết qub tính toán của mình hơn

 Nắm vững cách chuyển đổi giữa số nhị phân và số thập phân

 Cbi thiện khb năng gibi quyết các bài toán liên quan đến số nhị phân và BIT

 Về kỹ năng thực hành/viết Demo:

 Ứng dụng thành thạo những kiến thức đã học vào thực tiễn trong việc viết chương trình thực hành phép toán trên BIT

 Nâng cao khb năng lập trình và tư duy trừu tượng của bbn thân

 Hiểu rõ hơn về cấu trúc và cách sử dụng ngôn ngữ lập trình C++

Trang 23

Tóm lại, việc thực hiện chương trình thực hiện các phép toán trên BIT đã giúp tôi nâng cao kiến thức và kỹ năng về lập trình cũng như làm việc nhóm, từ đó giúp tôi phát triển bản thân và tăng cường sự tự tin trong việc thực hiện các dự án trong tương lai.

3.2 Hạn chế

Khi thực hiện các phép toán trên BIT, có một số hạn chế cần lưu ý

 Không thể thực hiện phép trừ hai số BIT vì BIT chỉ cho phép thực hiện phép cộng

 Các phép toán trên BIT đòi hỏi việc thực hiện cập nhật BIT để đbm bbo tính chính xác của kết qub Do đó, khi cần tính tổng các phần tử trong một đoạn, phbi đbm bbo các phần tử trong đoạn đó đều được cập nhật trước khi tính tổng

 Thời gian thực hiện các phép toán trên BIT có thể bị bnh hưởng bởi kíchthước của dữ liệu đầu vào Nếu dữ liệu quá lớn, việc thực hiện các phép toán trên BIT có thể trở nên chậm chạp và tốn nhiều thời gian

 Vì BIT sử dụng phép tính Modulo trong quá trình tính toán, nên nếu kết qub của phép tính vượt quá giới hạn của kiểu dữ liệu sử dụng, kết qub sẽ không chính xác Do đó, khi sử dụng BIT, cần chú ý đến kích thước của kiểu dữ liệu sử dụng để tránh hiện tượng tràn số

6) Thực hiện các bài kiểm tra để đbm bbo tính đúng đắn và hiệu qub của chương trình

7) Phát triển tài liệu hướng dẫn sử dụng cho chương trình để người sử dụng

có thể hiểu được cách sử dụng và các quy định liên quan

17

Trang 24

8) Nhận phbn hồi và cbi tiến chương trình theo từng phiên bbn để đáp ứng nhu cầu người sử dụng.

Trang 25

TÀI LIỆU THAM KHẢO:

Đây là một số tài liệu tham khbo về chương trình thực hiện các phép toán trên BIT bằng ngôn ngữ lập trình C++:

 "Binary Indexed Tree aka Fenwick Tree" của TopCoder: https://www.topcoder.com/community/competitive-

programming/tutorials/binary-indexed-trees/

 "Binary Indexed Tree (Fenwick Tree) Tutorial" của Algorithmic Adventures: https://algorithmsandme.com/binary-indexed-tree- fenwick-tree-tutorial/

 "Fenwick Tree - Binary Indexed Tree" của Tutorials Point: https://www.tutorialspoint.com/binary-indexed-tree-fenwick-tree

 "Fenwick Tree (Binary Indexed Tree)" của GeeksforGeeks: https://www.geeksforgeeks.org/fenwick-tree-binary-indexed-tree/

19

Ngày đăng: 24/12/2024, 16:18

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN