Tài liệu được biên soạn rất chi tiết , phù hợp cho các bạn muốn học lập trình từ căn bản . Với mỗi phần , mỗi chương , có các bài tập áp dụng rất chi tiết . Các bạn có thể tự học rất đơn giản . Gồm : 1) Giới thiệu về C++ và cách cài đặt 2) Các hàm cơ bản của C++ 3) Tìm hiểu về các vòng lặp của C++ 4) Mở rộng của C++ so với C
Trang 2Machine Language
● Only language computer directly understands
● Defined by hardware design
Trang 3○ Translator programs (assemblers)
■ Convert to machine language
● Example:
LOAD BASEPAY
STORE GROSSPAY
Trang 4High-level languages
● Similar to everyday English, use common mathematical notations
● Single statements accomplish substantial tasks
○ Assembly language requires many instructions to accomplish simple tasks
● Translator programs (compilers)
○ Convert to machine language
Trang 5C Language
● Evolved from two other programming languages
○ BCPL and B
■ “Typeless” languages
● Dennis Ritchie (Bell Laboratories)
○ Added data typing, other features
● Development language of UNIX
Trang 6C++ Language
● Extension of C
● Early 1980s: Bjarne Stroustrup (Bell Laboratories)
● Provides capabilities for object-oriented programming
○ Objects: reusable software components
■ Model items in real world
Trang 7Java Language
● 1991: Sun Microsystems
○ Green project
● 1995: Sun Microsystems
○ Formally announced Java at trade show
● Web pages with dynamic and interactive content
● Develop large-scale enterprise applications
● Enhance functionality of web servers
● Provide applications for consumer devices
○ Cell phones, pagers, personal digital assistants, …
Trang 8History of Programming Languages
Trang 9Local Environment
● Text Editor
○ Windows: Notepad, Notepad++, Sublime Text…
○ MacOS: TextEdit, Sublime Text…
● C++ Compiler
○ Windows: Dev C++, MS Visual Studio…
○ MacOS: XCode
Trang 12Compile and Execute
● Text Editor
● C++ Compiler
Trang 13Semicolons and Blocks
• Semicolons
• Blocks
Trang 14Identifiersmohd zara abc move_name a_123myname50 _temp j a23b9 retVal
Trang 15bool explicit private truebreak export protected trycase extern public typedefcatch false register typeid
Trang 16Int age;
Fruit = apples + oranges;
Trang 17Comments/* This is a comment */
// This is a comment
Trang 18Printing a Line of Text
Trang 19Exercises
1 Write a program to print: Your Name, Gender, Birthday
2 Write a application print:
Trang 201 Write this text: \T\H\I\S\I\S\A\”PENCIL”
2 Research: Write a C++ program to declare two integer It
then prints these values on the screen
Trang 21Double floating point double
Trang 24Enumerated Types
enum color { red, green, blue } c;
c = blue;
enum color { red, green = 5, blue };
enum enum-name { list of names } var-list;
Trang 26Variable Definition
extern int d = 3, f = 5; // declaration of d and f
int d = 3, f = 5; // definition and initializing d and f
byte z = 22; // definition and initializes z
char x = 'x'; // the variable x has the value 'x'
type variable_list;
type variable_name = value;
Trang 27Variable Scope
• Local Variables
• Global Variables
Trang 29Defining Constants
• #define
• const
Trang 33Logical Operators
• &&
• ||
• !
Trang 36Others Operators
• Bitwise Operators
• Assignment Operators
• Misc Operators
Trang 37Write a program in C++ to print the sum of two numbers.
Write a program in C++ to swap two numbers.
Write a program in C++ to calculate the volume of a sphere.
Write a program in C++ to calculate the volume of a cube.
Write a program in C++ to calculate the volume of a cylinder.
Write a program in C++ to find the Area and Perimeter of a Rectangle Write a program in C++ to find the area of any triangle using Heron's Formula
Write a program in C++ to find the area and circumference of a circle.
Trang 38Write a program in C++ to print the sum of two numbers.
Write a program in C++ to swap two numbers.
Write a program in C++ to calculate the volume of a sphere.
Write a program in C++ to calculate the volume of a cube.
Write a program in C++ to calculate the volume of a cylinder.
Write a program in C++ to find the Area and Perimeter of a Rectangle Write a program in C++ to find the area of any triangle using Heron's Formula
Write a program in C++ to find the area and circumference of a circle.
Trang 407 s = (a || b) && (a && true);
8 s = a || b && a && true;
9 s = c > a || b < c && a > b;
10 s = (a == 0) || (a > 1) && (s > 10);
11 s = (a == b) && (a < c) && (b < c);
Trang 41IF
Trang 42IF ELSE
Trang 43The ? : Operator
Exp1 ? Exp2 : Exp3;
Trang 44SWITCH CASE
Trang 45Defining a Function
return_type function_name( parameter list ) { body of the function
}
Trang 48• Viết một chương trình C++ để nhắc người dùng nhập 3 số nguyên và tìm giá trị lớn nhất.
• Viết một chương trình C++ để nhắc người dùng nhập 3 số nguyên và tìm giá trị ở giữa
Trang 49● Viết chương trình C++ xếp hạng học lực của học sinh Chương trình nhập 3 điểm là điểm bài kiểm tra, điểm thi giữa kỳ, điểm thi cuối kỳ và xác định học lực dựa trên nguyên tắc:
○ Điểm trung bình >= 9.0 là hạng A
○ Điểm trung bình >=7.0 và < 9.0 là hạng B
○ Điểm trung bình >=5.0 và < 7.0 là hạng C
○ Điểm trung bình <5.0 là hạng F
Trang 50● Cửa hàng của bạn nhận gửi bán sản phẩm cho một công ty khác và sau mỗi tháng bạn cần tính toán số tiền hoa hồng bạn nhận được Với mức hoa hồng theo doanh số bán hàng như sau:
○ 5% nếu tổng doanh số nhỏ hơn hoặc bằng 100 triệu
○ 10% nếu tổng doanh số nhỏ hơn hoặc bằng 300 triệu
○ 20 % nếu tổng doanh số là lớn hơn 300 triệu
Dựa vào dữ liệu trên, bạn viết chương trình C++ để tính hoa hồng đại lý bạn sẽ nhận được
Trang 51while(condition) {
statement(s);
}
Trang 52while
Trang 54for ( init; condition; increment ) { statement(s);
}
Trang 55for
Trang 56for( int a = 10; a < 20; a = a + 1 ) {
cout << "value of a: " << a << endl;}
Trang 58do while
Trang 60Loop Control Statements
• break
• continue
Trang 61Array
Trang 62int points[10];
int *point = new int[10];
double balance[5] = {1000.0, 2.0, 3.4, 17.0, 50.0};char greeting[] = {'H', 'e', 'l', 'l', 'o', '\0'};
char greeting[] = "Hello";
Trang 63String
Trang 651 Nhập vào 1 mảng 8 phần tử số thực sau đó in mảng đó ra.
2 In mảng đã nhập ở câu 1 theo chiều đảo ngược
6 Viết hàm kiểm tra một mảng có là mảng đối xứng
7 Viết hàm xoá một phần tử trong mảng nguyên một chiều
8 Viết hàm xoá các phần tử giống nhau trong mảng sao cho mỗi phần tử trong mảng đều có giá trị khác nhau
Trang 663 Viết chương trình C++ để tính tổng mỗi hàng, mỗi cột của một ma trận có kích cỡ n x m, và nếu là ma trận vuông thì tính tổng đường chéo.
4 Viết chương trình C++ để nhập và hiển thị tam giác Pascal Chắc bạn đã khá quen thuộc với tam giác Pascal rồi, ở đây, hàng đầu tiên và thứ hai được thiết lập là 1 Bắt đầu từ hàng thứ ba trở đi, mỗi phần tử là tổng của phần tử ngay trên nó và phần tử bên trái của phần tử ngay trên đó
Trang 67Virtual memory & Physical memory
Trang 68Variable address & address-of operator
Trang 69Pointer
Trang 71struct Books {
char title[50];
char author[50]; char subject[100]; int book_id;
} book;
Trang 723 Viết chương trình C++ để cộng hai phân số và hiển thị kết quả
Trang 73class [CLASS_NAME] { public:
private:
protected:
};
Trang 75ObjectBox *Box1 = new Box(); // Declare Box1 of type BoxBox Box2; // Declare Box2 of type Box
Trang 76Class Member Functions
class Box {
public:
double length; // Length of a box
double breadth; // Breadth of a box
double height; // Height of a box
Trang 77Class Member Functions
double Box::getVolume(void) {
return length * breadth * height;
}
Trang 78Xây dựng class Timer Gồm giờ, phút, giây Xây dựng hàm cộng giờ để cộng thêm giây vào class đó.
Trang 79Xây dựng lớp biểu diễn khái niệm số phức với hai thành phần dữ liệu thực, ảo và các hàm thành phần xuất, nhập, cộng, trừ, nhân, chia hai số phức Viết chương trình cho phép nhập vào hai số phức, in ra kết quả các phép toán cộng, trừ, nhân, chia hai số phức kể trên.
Trang 80The Class Constructor
class Line {
public:
void setLength( double len );
double getLength( void );
Line(); // This is the constructor
private:
double length;
};
Trang 81Parameterized Constructor
class Line {
public:
void setLength( double len );
double getLength( void );
Line(double len); // This is the constructor
private:
double length;
};
Trang 82The Class Destructor
class Line {
public:
void setLength( double len );
double getLength( void );
Line(); // This is the constructor declaration
~Line(); // This is the destructor: declaration
private:
double length;
};
Trang 83C++ Copy Constructor
class Line {
public:
int getLength( void );
Line( int len ); // simple constructor
Line( const Line &obj); // copy constructor
~Line(); // destructor
private:
int *ptr;
};
Trang 84Static Function Members
static int objectCount;
static int func()
Trang 85Viết định nghĩa lớp String để biểu diễn khái niệm chuỗi ký tự
với các phương thức thiết lập và huỷ bỏ, các hàm thành phần tính chiều dài chuỗi, so sánh hai chuỗi, nối hai chuỗi, đảo
chuỗi, xuất chuỗi
Trang 87Type of Inheritance
• public
• protected
• private
Trang 89class printData {
public:
void print(int i) {
cout << "Printing int: " << i << endl;
}
void print(double f) {
cout << "Printing float: " << f << endl;
}
void print(char* c) {
cout << "Printing character: " << c << endl; }
};
Trang 90Khai báo lớp Human bao gồm các thuộc tính và phương thức sau:
- Thuộc tính :tên (name), tuổi (age), giới tính (sex)
- Phương thức: hàm khởi tạo không có tham số, hàm khởi tạo có đầy đủ các tham số, hàm hiền thị các thông tin.
Sau đó khai báo lớp Person kế thừa từ lớp Human, lớp Person có:
- Thuộc tính : tên (name),tuổi (age), giới tính (sex) , địa chỉ(address), số điện thoại (phone)
- Phương thức: Hàm khởi tạo không có tham số, hàm khởi tạo có đầy đủ các tham số, hàm hiển thị đầy đủ các thông tin: Tên, Tuổi, giới tính, địa chỉ, số điện thoại
Trang 91Box operator+(const Box& b) {
Box box;
box.length = this->length + b.length;
box.breadth = this->breadth + b.breadth; box.height = this->height + b.height;
return box;
}
Trang 95Virtualvirtual int area()
Trang 96Bài 1: Viết class thể hiện Phân số, có thể +, -, *, /, các phép
so sánh logic và sử dụng toán tử nhập xuất
Bài 2: Sử dụng lớp String trước đây để cộng 2 String Kết quả
là được 1 String mới
Trang 97Có 2 loại sổ tiết kiệm có kỳ hạn và không kỳ hạn, thông tin cơ bản của mỗi loại gồm:
● Số tiền gửi (triệu đồng)
● Đối với sổ có kỳ hạn, cần lưu lại thêm thông tin Kỳ hạn (gửi bao nhiêu tháng).
● Công thức tı́nh số tiền lãi (n: là số tháng gửi)
■ Tiền lãi = Tiền gửi * Lãi suất * n.
○ Đối với sổ có kỳ hạn:
■ Tiền lãi = Tiền gửi * Lãi suất * n, nếu n lớn hơn bằng kỳ hạn.
■ Ngược lại, tiền lãi của sổ đó bằng 0.
Yêu cầu:
● Tı́nh số tiền lãi của sổ cho đến ngày hiện tại (lấy từ hệ thống).
● Tı́nh tổng tiền lãi ngân hàng phải trả.