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

báo cáo bài tập lớn lập trình c

39 1 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 đề Báo cáo bài tập lớn lập trình C++
Tác giả Phạm Mạnh Cường, Nguyễn Văn Hiền, Nguyễn Văn Thành, Trần Bá Tiến Anh, Ngô Trung Hiếu, Nguyễn Quang Thịnh
Trường học Học viện Công nghệ Bưu chính Viễn thông
Chuyên ngành Lập trình C++
Thể loại bài tập lớn
Định dạng
Số trang 39
Dung lượng 3,88 MB

Nội dung

Giới thiệu về cú pháp cơ bản C++ for Linux Khi chúng ta xem xét một chương trình C ++, nó có thể được định nghĩa là một tậphợp các đối tượng giao tiếp thông qua việc gọi các phương thức

Trang 1

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIÊN

NGUYỄN VĂN HIỀN – N19DCAT022

NGUYỄN VĂN THÀNH - N18DCAT083

TRẦN BÁ TIẾN ANH - N18DCCN008

NGÔ TRUNG HIẾU - N21DCDK008

NGUYỄN QUANG THỊNH - N21DCDK034

Trang 2

Bảng phân chia nhiệm vụ:

PHẠM MẠNH CƯỜNG 1 Introduction to basic syntax

2 Anotomy of a C++ program

3 Statements and expressions

14 FunctionsNGUYỄN VĂN HIỀN 4 Identifiers

5 Defining variablesNGUYỄN VĂN THÀNH 6 Pointers

7 RefereneceTRẦN BÁ TIẾN ANH 8 Primitive arrays

9 Primitive strings

11 Iterating with forNGUYỄN QUANG

THỊNH

12 Range-base for loop

13 Structures

1 Giới thiệu về cú pháp cơ bản C++ for Linux

Khi chúng ta xem xét một chương trình C ++, nó có thể được định nghĩa là một tậphợp các đối tượng giao tiếp thông qua việc gọi các phương thức của nhau Bây giờchúng ta hãy xem xét ngắn gọn ý nghĩa của một lớp, đối tượng, các phương thức

và các biến tức thì

 Đối tượng - Đối tượng có trạng thái và hành vi Ví dụ: Một con chó có các

trạng thái - màu sắc, tên, giống cũng như các hành vi - vẫy tay, sủa, ăn Một đốitượng là một thể hiện của một lớp

 Lớp - Một lớp có thể được định nghĩa như một khuôn mẫu / bản thiết kế

mô tả các hành vi / trạng thái mà đối tượng kiểu của nó hỗ trợ

 Các phương pháp - Một phương pháp về cơ bản là một hành vi Một lớp

có thể chứa nhiều phương thức Nó nằm trong các phương thức nơi logic đượcviết, dữ liệu được thao tác và tất cả các hành động được thực thi

 Biến cá thể - Mỗi đối tượng có một tập hợp các biến cá thể duy nhất của

nó Trạng thái của một đối tượng được tạo bởi các giá trị được gán cho các biến cáthể này

Trang 3

 Dòng int main () là hàm chính bắt đầu thực thi chương trình.

 Dòng tiếp theo cout << "Xinchao"; khiến thông báo "Xinchao" được hiểnthị trên màn hình

 Dòng tiếp theo trả về 0; chấm dứt hàm main () và khiến nó trả về giá trị 0cho quá trình gọi

Biên dịch và thực thi chương trình C ++

Hãy xem cách lưu tệp, biên dịch và chạy chương trình Vui lòng làm theo các bướcdưới đây -

 Mở trình soạn thảo văn bản và thêm mã

 Lưu tệp dưới dạng: hello.cpp

 Mở dấu nhắc lệnh và chuyển đến thư mục lưu tệp

 Nhập 'g ++ hello.cpp'

 gõ 'a.out' để chạy chương trình

 'Hello World' được in trên cửa sổ

$ g++ hello.cpp

$ /a.out

Hello World

Dấu chấm phẩy và khối trong C ++

Trong C ++, dấu chấm phẩy là một dấu chấm câu lệnh Nghĩa là, mỗi câu lệnhriêng lẻ phải được kết thúc bằng dấu chấm phẩy Nó chỉ ra sự kết thúc của mộtthực thể logic

VD:

x = y;

y = y + 5;

Trang 4

C ++ không cho phép các ký tự dấu câu như @, $ và% trong các mã định danh C ++ là một ngôn ngữ lập trình phân biệt chữ hoa chữ thường Nhưvậy, Manpowernhân lực là hai định danh khác nhau trong C ++.

Example:

Lmao burh _lmaolmao burh_123

Từ khóa C ++

Trang 6

2.Sơ lược về một chương trình C ++

Một chương trình C ++ về cơ bản là một tập hợp các câu lệnh và biểu thức, thườngđược tổ chức thành các hàm và lớp Cách tốt nhất để học một ngôn ngữ lập trình làviết chương trình Chương trình đầu tiên bạn thường thấy là chương trình

" Xinchao " Chương trình đơn giản này in Xinchao ra màn hình

Dòng đầu tiên của chương trình này, bạn sẽ nhận thấy hai dấu gạch chéo này, tiếptheo là một số văn bản Đây là cách viết bình luận bằng C ++

Các dòng bắt đầu bằng dấu thăng ( ) là các lệnh được đọc và thông dịch bởi cái#được gọi là bộ tiền xử lý Chúng là những dòng đặc biệt được diễn giải trước khiquá trình biên dịch chương trình bắt đầu Trong trường hợp này, chỉ thị #include

<iostream>, hướng dẫn bộ tiền xử lý bao gồm một phần của mã C ++ tiêu chuẩn,được gọi là iostream tiêu đề , cho phép thực hiện các hoạt động đầu vào và đầu ratiêu chuẩn

Hàm được đặt tên mainlà một hàm đặc biệt trong tất cả các chương trình C ++; nó

là hàm được gọi khi chương trình được chạy Đây là điểm nhập chính cho bất kỳchương trình C ++ nào Việc thực thi tất cả các chương trình C ++ bắt đầubằng mainhàm, bất kể hàm thực sự nằm ở đâu trong mã

Dấu ngoặc nhọn ({) ở dòng 5 cho biết phần đầu của định nghĩa hàm của hàm main

và dấu ngoặc nhọn (}) ở dòng 7, cho biết phần cuối của nó Mọi thứ giữa các dấungoặc nhọn này là phần thân của hàm xác định điều gì sẽ xảy ra khi hàm mainđược gọi Tất cả các hàm đều sử dụng dấu ngoặc nhọn để chỉ ra sự bắt đầu và kếtthúc của các định nghĩa của chúng

Trang 7

std::cout xác định thiết bị xuất ký tự tiêu chuẩn (thông thường, đây là màn hìnhmáy tính).

Toán tử chèn ( <<), chỉ ra rằng những gì sau đây sẽ được chèn

Một biểu thức có chứa ít nhất một toán hạng và 0 hoặc nhiều toán tử Toán hạng

có thể là: giá trị hằng, hằng, biến, kết quả của một hàm hay biểu thức con Các toán tử có độ ưu tiên khác nhau, nhưng có thể bị thay đổi bằng cách dùngngoặc ( … )

Các toán tử có cùng độ ưu tiên được thực hiện tử trái sang phải: sin(x) + cos(x) hàm sin(x) được gọi trước cos(x)

Cơ bản: a+b a-b a*b a/b

Nhân/chia ưu tiên cao hơn cộng/trừ

Phép toán giữa 2 số nguyên kết quả là số nguyên 

Phép toán có ít nhất 1 số thực kết quả là số thực 

Modulo (chia lấy số dư): a%b

Tăng, giảm 1 đơn vị: a++ a ++a a

Toán hạng phải là một biến kiểu số nguyên

a++ và a thực hiện phép tính với giá trị của a rồi mới tăng/giảm giá trị của a,trong khi ++a và a thì ngược lại

Trang 8

Dịch trái, phải: a<>b

*Chỉ áp dụng với kiểu số nguyên

Toán tử gán

Cơ bản: a = b

Các toán tử đặc biệt khác

Cộng, trừ đơn hạng: +a, -a

sizeof: trả về kích thước của kiểu/biến/hằng

Toán tử ngoặc (): (a+b)*c

Toán tử phảy “,”: không làm gì, chỉ bỏ qua giá trị thứ nhất

x++, y = x*2;

for (i=2, j=3, x=1; ituoi

Ép kiểu: (int)a Gọi hàm (): sin(x), pow(x, 3) 

Yêu cầu:

Giả sử có 2 số nguyên cho trước, bạn hãy tính tổng, hiệu, tích và thương của hai số rồi in kết quả ra màn hình

Trang 9

Viết chương trình C++ để nhập hai số nguyên x, y, sau đó tính: p=x*y, s=x+y,q=s2+p(s-x)*(p+y) và in kết quả ra màn hình.

Trang 10

 Trong C ++, tất cả các biến phải được khai báo trước khi sử dụng.

1 Quy tắc khai bao biến:

 Tên của biến chứa các chữ cái, chữ số và dấu gạch dưới

 Tên của biến có phân biệt chữ hoa chữ thường

 Tên của biên không chứa bất ký khoảng trắng và bất kỳ ký tự đắc biệt nào

Trang 11

 Tất cả biên phải được bắt đầu bằng 1 chữ cái trong bảng chữ cái hoặc 1 dấu gạch dưới (_)

 Không thể sử dụng từ khóa C++ (float, double, class ) làm tên biến

2 Cách khai báo biến

Khai báo biến điển hình có dạng

Tên biến có thể bao gồm các bảng chữ cái ( chữ hoa và chữ thường) số và ký tự gạch dưới Tuy nhiên tên biến không được bắt đầu bằng 1 số VD:

Trang 12

Khai báo biến là để cập đến phần mà biến được khai báo hoặc giới thiệu lần đầu tiên trước khi sử dụng

Định nghĩa biến là 1 phần trong đó biến được gán cho 1 vị trí bộ nhớ và 1 giá trị

hoặc khối nào

Trang 13

3 Local Variable:Các biến này được khai báo tương tự như các biên instance nhưng điểm khác biệt là các biến này được khai báo bằng cách sử dụng từ khóa static bên trong 1 lớp bên ngoài hoặc bất kỳ khối hoặc phương thức

Trang 14

Ví dụ

So sánh tham chiếu và con trỏ

Giữa con trỏ và tham chiếu có điểm tương đồng, tuy nhiên cũng có một số điểm khác biệt cơ bản về mặt ý nghĩa như sau:

 Một con trỏ có thể nhận giá trị null trong khi một tham chiếu thì không thể

Trang 15

 Một con trỏ có thể khởi tạo bất cứ lúc nào, trong khi một tham chiếu phải được khởi tạo ngay khi nó được khai báo Nói cách khác, câu lệnh sau trình biên dịch sẽ báo lỗi: int &k; // error

 Một con trỏ có thể trỏ đến nhiều đối tượng, trong khi một tham chiếu chỉ được tham chiếu tới một đối tượng duy nhất

 Con trỏ có thể lưu trữ vùng nhớ cấp phát động, tham chiếu thì không thể

6.Con trỏ

pointer là một loại biến chuyên lưu trữ địa chỉ bộ nhớ (memory address).Một biến lưu trữ giá trị như:

int length = 5;

char domain[] = "STDIO.VN";

sẽ được lưu trữ tại 1 vị trí cụ thể trên bộ nhớ Biến con trỏ có khả năng lưu trữ vị trí này

Trong hình minh hoạ trên, biến con trỏ (có địa chỉ là FF) sẽ quản lý vùng nhớ của chuỗi STDIO.VN (bắt đầu từ địa chỉ D0)

Cách sử dụng

Chương trình sau minh họa việc khai báo con trỏ đối với một số kiểu dữ liệu thường dùng:

Trang 16

Sử dụng * giữa kiểu dữ liệu và tên biến có nghĩa là biến đang khai báo là một biến con trỏ Trong ngữ cảnh này * không phải là phép nhân.

trong trường hợp khai báo nhiều hơn một biến trên cùng một dòng, chỉ những biến nào có kí tự * phía trước tên biến (không kể khoảng trắng) mới là biến con trỏ

Trang 17

Con trỏ chỉ lưu giữ địa chỉ nên khi gán giá trị cho một con trỏ, giá trị đó phải là địa chỉ Để lấy địa chỉ của một biến, sử dụng address-of operator &.

sử dụng với con trỏ là dereference operator * Dereference operator dùng để lấy nộidung của địa chỉ mà biến đó trỏ vào

8.Primitive arrays

Trang 18

-Mảng: Là 1 loạt các phần tử cùng kiểu được đặt ở các vị trí bộ nhớ liền nhau có thể tham chiếu riêng lẻ bằng cách thêm một chỉ mục vào một mã định danh duy nhất.

-Khởi tạo mảng:

Cú pháp khởi tạo mảng:

Kiểu dữ liệu Tên mảng [số lượng phần tử mảng] = {Giá trị của các phần tử mảng}

-Truy cập các giá trị của một mảng:

Cú pháp : Tên mảng[vị trí phần tử muốn truy cập]

Trang 19

9.Primitive String

String là một kiểu dữ liệu được sử dụng để lưu trữ văn bản

Một biết có kiểu dữ liệu string là tập hợp các ký tự được bao quanh bởi giấu ngoặc kép

Cú pháp khai báo biết String: string Tenbien = “chuỗi các kí tự”;

Trang 20

Tương tự như C#, ngôn ngữ lập trình C++ cũng có các lệnh điều kiện Để tìm hiểu rõ hơn về các lệnh điều kiện trong C++, bạn đọc cùng tham khảo tiếp bài viết dưới đây của Taimienphi.vn.

Trong bài học C++ tiếp theo dưới đây Taimienphi.vn sẽ giới thiệu tiếp cho bạn vềlệnh điều kiện trong C++ Ngoài ra bạn đọc có thể tham khảo thêm một số bài viếtkhác đã có trên Taimienphi.vn để tìm hiểu thêm về vòng lặp trong C++ là gì nhé

10.LỆNH ĐIỀU KIỆN TRONG C++

Lệnh Điều Kiện Trong C++

Lệnh điều kiện trong C++ được sử dụng để quyết định thứ tự việc thực hiện các câulệnh dựa trên các điều kiện cụ thể hoặc lặp lại một nhóm các câu lệnh cho đến khithỏa mãn các điều kiện cụ thể C++ hỗ trợ các lệnh điều kiện dưới đây:

Cú pháp trên được sử dụng cho câu lệnh đơn Ngoài ra nếu muốn bạn cũng có thể

sử dụng cho tập hợp các lệnh, miễn là các lệnh này được đặt trong dấu ngoặc nhọn{ } Tập hợp các lệnh cũng được gọi là lệnh ghép

Trang 21

Cho ví dụ về lệnh điều kiện If trong C++:

Lệnh điều kiện If else trong C++

Lệnh If Else cũng là một lệnh điều kiện If, được sử dụng để thực thi khối câulệnh khi điều kiện được đánh giá là True, ngược lại nếu điều kiện được đánh giá làFalse khối câu lệnh sẽ không được thực thi Trong trường hợp bất kỳ, một khối sẽđược thực thi và khối kia bị bỏ qua

Trong lệnh If Else:

-Cả 2 khối lệnh không bao giờ được thực thi

-Cả 2 khối lệnh không bao giờ được bỏ qua

Trang 22

Nếu có 2 hoặc nhiều lệnh trở lên phải được đặt trong dấu ngoặc nhọn { }.Lệnh Switch Trong C++

Lệnh Switch cũng là lệnh điều kiện trong C++, được sử dụng để thay thế lệnh IfElse lồng nhau Lệnh này được sử dụng khi có nhiều lệnh có sẵn và chỉ thực thimột lệnh cụ thể

Lệnh Switch so sánh kết quả một biểu thức với nhiều trường hợp (case) Biểu thức

có thể là giá trị bất kỳ trả về kết quả giá trị nguyên hoặc ký tự Biểu thức đượcđánh giá ở đầu lệnh switch và kết quả được so sánh với các trường hợp khác nhau.Mỗi trường hợp là một lựa chọn Nếu kết quả khớp với trường hợp bất kỳ, khối

Trang 23

câu lệnh tương ứng sẽ được thực thi Trong một lệnh Switch không giới hạn sốlượng trường hợp.

Default Label xuất hiện ở cuối tất cả các Case Label Nó chỉ được thực thi sau khikết quả của biểu thức không được khớp với Case Label bất kỳ Vị trí của DefaultLabel là không cố định, có thể đặt trước lệnh case đầu tiên hoặc cuối cùng.Lệnh break trong mỗi case label được sử dụng để thoát khỏi phần thân lệnh switch,

và được sử dụng ở cuối mỗi case label Khi kết quả của biểu thức khớp với caselabel, lệnh tương ứng sẽ được thực thi

Lệnh break xuất hiện sau các lệnh này và control thoát khỏi phần thân lệnh switch.Nếu lệnh break không được sử dụng, tất cả các khối case xuất hiện sau case cũng

sẽ được thực thi

Toán Tử Điều Kiện Trong C++

Toán tử điều kiện trong C++ được sử dụng để thay thế cho cấu trúc if else đơn giản

Nó còn được gọi là toán tử 3 ngôi vì sử dụng 3 toán hạng

- Cú pháp toán tử điều kiện trong C++ có dạng:

(điều kiện) ? lệnh case true: lệnh case false;

Trong đó:

- Điều kiện: được chỉ định là biểu thức quan hệ hoặc logic Điều kiện được đánhgiá là True hoặc False

- True Case: được thực thi nếu biểu thức được đánh giá là True.

- False case: được thực thi nếu biểu thức được đánh giá là False

Cho ví dụ về toán tử điều kiện trong C++, giả sử chúng ta có biến A Lệnh có dạng:

X = (A>50) ? 1 : 0;

1 được gán cho X nếu điều kiện A>50 là True, hoặc sẽ được gán 0 cho X nếu điềukiện là False Câu lệnh trên có thể được viết bằng cách sử dụng lệnh if else nhưsau:

Trang 24

If (A>50) X=1;

Một vùng chứa có thể cung cấp các loại trình vòng lặp khác nhau Ví dụ: một vùng chứa mảng có thể cung cấp một trình vòng lặp chuyển tiếp đi qua mảng theo thứ

tự chuyển tiếp và một trình vòng lặp ngược đi qua mảng theo thứ tự ngược lại.Khi loại trình vòng lặp thích hợp được tạo, lập trình viên sau đó có thể sử dụng giao diện do trình vòng lặp để duyệt và truy cập các phần tử mà không phải lo lắng

về loại trình duyệt đang được thực hiện hoặc cách dữ liệu được lưu trữ trong vùng chứa Và bởi vì các trình vòng lặp C ++ thường sử dụng cùng một giao diện cho truyền tải (toán tử ++ để di chuyển đến phần tử tiếp theo) và truy cập (toán tử * để truy cập phần tử hiện tại), chúng ta có thể lặp qua nhiều loại vùng chứa khác nhau bằng một phương pháp nhất quán

>

2 Con trỏ như một trình lặp

Loại trình lặp đơn giản nhất là con trỏ (sử dụng con trỏ số học) hoạt động cho dữ liệu được lưu trữ tuần tự trong bộ nhớ Hãy cùng xem lại quá trình duyệt mảng đơn giản bằng cách sử dụng con trỏ và con trỏ số học:

#include<array>

#include<iostream>

Trang 25

{

std array data{ , , , , , , };:: 0 1 2 3 4 5 6

auto begin{ &data[0] };

// note that this points to one spot beyond the last element

auto end{ begin std+ ::size(data) };

// for-loop with pointer

for auto ( ptr{ begin }; ptr end; != ++ptr) // ++ to move to next element

Ở trên, chúng ta đã khai báo hai biến: begin (trỏ đến đầu vùng chứa của chúng ta)

và end (đánh dấu điểm kết thúc) Đối với mảng, điểm đánh dấu kết thúc thường là

vị trí trong bộ nhớ mà phần tử cuối cùng sẽ ở nếu vùng chứa chứa thêm một phần tử

Sau đó, con trỏ lặp lại giữa đầu và cuối, và phần tử hiện tại có thể được truy cập bằng cách chuyển hướng thông qua con trỏ

Lưu ý

Bạn có thể bị cám dỗ để tính toán điểm đánh dấu kết thúc bằng cách sử dụng toán

tử address-of và cú pháp mảng như sau:

Trang 26

int* end{ array[std& ::size(array)] };

Nhưng điều này gây ra hành vi không xác định, vì mảng [std :: size (array)] truy cập vào một phần tử nằm ở cuối mảng

Thay vào đó, hãy sử dụng:

int* end{ array.data() std+ ::size(array) }; // data() returns a pointer to the first element

3 Trình lặp thư viện chuẩn

Lặp lại(iterators) là một hoạt động phổ biến mà tất cả các vùng chứa thư viện chuẩncung cấp hỗ trợ trực tiếp cho việc lặp lại Thay vì tính toán điểm đầu và điểm cuối của riêng mình, chúng ta có thể chỉ cần yêu cầu vùng chứa cho điểm bắt đầu và điểm kết thúc thông qua các hàm được đặt tên thuận tiện là begin () và end ():

auto begin{ array.begin() };

auto end{ array.end() };

for auto ( p{ begin }; p end; != ++p) // ++ to move to next element

{

std cout :: << * << p ' '; // Indirection to get value of current element

}

std cout :: <<'\n';

Ngày đăng: 25/05/2024, 22:07

HÌNH ẢNH LIÊN QUAN

Bảng phân chia nhiệm vụ: - báo cáo bài tập lớn lập trình c
Bảng ph ân chia nhiệm vụ: (Trang 2)

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

TÀI LIỆU LIÊN QUAN

w