Kiến Th c C B n C n N m Khi B t u H c C++ ơ Đầ
Khi b t u h c l p trình, r t nhi u ngôn ng l a ch n. C/C++ đầ để
mt ngôn ng lâu i, t c nhanh, các ki u d li u ràng. N u đờ độ ế
như làm ch c ngôn ng n n t ng nh C/C++ thì sau này h c các đư ư
ngôn ng khác tr nên d dàng h n, do ó r t phù h p v i ng i m i ơ đ ườ
bt đầu.(H c l p trình C/C++ (có r t nhi u ng d ng m ra cho b n
c n.c k a d ng các c h i làm vi c cho các công ty/t p oàn l đ ơ để đ
Theo mình th y, v i ng i m i h c thì C hay C++ không quá nhi u s khác ườ
bit trong pháp, C++ còn th s d ng l p trình h ng i t ng -" để ướ đố ượ
Phn này s không c gi i thi u trong khuôn kh bài vi t h ng d n l p đượ ế ướ
tình C++ c b n. Hi n t i Codelearn ã khóa hơ đ c"C++ cho ng ườ i m i b t
Trong bài vi t này mình s a ra các h ng d n làm quen C++ c b nế đư ướ để ơ
nhé.
Cài t IDE nào?đặ
Trên th tr ng r t nhi ườ u"IDE Text Editor dành cho l p trình C/C++ . V i
các b n m i b t u, mình khuyên c b n nên s d "làm ide đầ ng"Dev C++
chính h c. B n ch c n t i v cài t nh nhi u h ng d n trên internet,để đặ ư ướ
Khi mu n code m t ch ng trình thì ch c n t o 1 file m i code ch y c ươ đượ
bình th ng, không c n t o project c , compile c ng nhanh. Ngoài ra cácườ ũ
bn c ng th s d ng codeblock, visual studio code, ...ũ
Hướng d n h c C++
1. Các ki u d li u trong C++, khung ch ng trình cách khai báo ươ
bi nế
Mt ch ng trình C++ c b n th ng c b t u b i dòng include khai báoươ ơ ườ đượ đầ
thư vi n, sau ó hàm" . T t c m i th c a ch ng trình u s ch y d c đ main ươ đề
theo hàm" trên xu ng d i, ngh a nmain "t ướ ĩ ếu bn viết mt hàm
ngoài" main "và trong" "không g i n hàm y ngh a hàm y smain đế đấ ĩ đấ
không ch y trong ch ng trình, m t hàm luôn luôn ph i k t thúc b i d u ch m ươ ế
ph "b ngy" (;) ". D i ây b khung c b n c a ch ng trình"ướ đ ơ ươ Hello world
C++.
#include <iostream>
using namespace std;
int main() {
cout ;<< "Hello world !"
return ;0
}
r t nhi u ki u d li u trong C++, i v i các b n m i b t u làm các đố đầ để
bài tp cơ ướ b n thì nên tìm hiu tr c v" int ," ,"long long
long float double char string," ," ," long double ," ," , v cách bi u di n
khong c a m i ki u d li u. Sau khi ã làm các bài t p hi u r i thì th đ
tìm hi u thêm các ki u d li u khác. D i ây m t vài d v cách khai ướ đ
báo bi n trong C++.ế
#include <iostream>
using namespace std;
int main() {
int a = 10; // Khai báo biế&n a kiế(u int giá trị nguyến
10
float b = 1.5; // Khai báo biế&n b kiế(u float giá trị
thực 1.5
char c; // khai báo biế&n c kiế(u dữ liệu tự char
c ; = 'a' // gán giá trị cho biế&n c tự 'a'
string d; // khai báo biế&n d kiế(u dữ liệu xâu string
d = "ok" // gán giá trị cho biế&n d xâu "ok"
return ;0
}
Dưới ây m t vài ki u d li u kho ng l u tr c a các ki u d li u đ ư đó.
2. Các câu l nh nh p xu t c u trúc các câu l nh u khi n đi
a. Câu l nh nh p xu t.
Trong C++ thì m t cách n gi n nh p s d ng câu l , xu t s đơ để nh" cin
dng câu lnh" .cout
#include <iostream>
using namespace std;
int main() {
int a;
cin a;>>
cout a;<<
return ;0
}
b. Câu l nh r nhánh.
Cách 1: S d ng" if else
#include <iostream>
using namespace std;
int main() {
int a;
cin a;>>
if (a ) {> 0
cout ;<< "a la so duong"
}
else if (a < 0) {
cout ;<< "a la so am"
}
else {
cout ;<< "a bang khong"
}
return ;0
}
Cách 2: S d ng" switch case
#include <iostream>
using namespace std;
int main() {
int a;
cin a;>>
switch(a) {
case 0:
cout ;<< "a bang khong"
break;
default:
cout ;<< "a khac khong"
}
return ;0
}
c. Vòng lp.
Vòng lp" for
#include <iostream>
using namespace std;
int main() {
int n = 10;
for int ( i ; i n; i= 0 < ++) {
cout i ;<< << " "
}
return ;0
}
Vòng lp" while
#include <iostream>
using namespace std;
int main() {
int n = 10;
int i ;= 0
while (i n) {<
cout i ;<< << " "
}
return ;0
}
Vòng l p do while
#include <iostream>
using namespace std;
int main() {
int n = 10;
int i ;= 0
do {
cout i ;<< << " "
} (i n);while <
return ;0
}
Bình th ng thì s s d ng ch y u vòng l "thôi. Tác d ngườ ế p" for "và" while
chính c a vòng l p for l p theo m t s l ng mình c n, còn vòng l p ượ
while thì s l p theo m t u ki n nh t nh, do ó s "vòng l p đi đị đ "linh ho t h ơn
for. Tùy m c ích s d ng l a ch n vòng l p phù h đ p.
3. Mng
Mng 1 chi u
#include <iostream>
using namespace std;
int main() {
int a[10];
for int ( i ;i = 0 < ++ 10; i ) {
cin a[i];>>
}
for int ( i ;i = 0 < ++ 10; i ) {
cout a[i] ;<< << " "
}
return ;0
}
Mng 2 chi u:
#include <iostream>
using namespace std;
int main() {
int a[2][ ];3
for int ( i ; i ; i= 0 < 2 ++) {
for int ( j ; j ; j= 0 < 3 ++) {
cin a[i][j];>>
}
}
for int ( i ; i ; i= 0 < 2 ++) {
for int ( j ; j ; j= 0 < 3 ++) {
cout a[i][j] ;<< << " "
}
}
return ;0
}
Cũng t ng t nh m ng 1 chi u 2 chi u, các m ng nhi u chi u h n u ươ ư ơ đề
th s d ng tùy theo m c ích c a bài toán các b n c n gi i. L u ý khi đ ư
cp phát cho m ng m t l n n thì ch c l u các giá tr vào c v trí t 0 độ đượ ư
đến n-1.
4. L p trình hàm
Khi vi t ch ng trình, n u nh t m i th u c vi t" tu trong hàmế ươ ế ư t c đề đượ ế n t
main thì r t khó theo dõi. N u nh m t s hàm ph n vi c c s d ng để ế ư đượ
nhiu l n thì vi t m t hàm con ra ngoài m t u h t s c c n thi t, giúp cho ế đi ế ế
code c a b n tr nên g n ng d theo dõi c ng nh code h n. Tham kh o ũ ư ơ
đon code sau cho hàm tính tng.
#include <iostream>
using namespace std;
int int int sum( a, b) {
return a + b;
}
int main() {
cout ( , ) endl;<< sum 3 4 <<
int a , b ;= 1 = 2
cout (a,b) endl;<< sum <<
cin a b;>> >>
cout (a,b) endl;<< sum <<
return ;0
}
5. X xâu trong C++
Trong C++, xâu bi u di n b i ki u d liu là" string , mi string m t xâu
gm các t ( c bi u di n b ng ki u char) liên ti p. Khác v i xâu trong C đượ ế
m t m ng các char k t thúc m ng b i t NULL. Các phép x ế
trong xâu khác so v i các phép toán x logic. Vi c s d ng ki u string trong
C++ khi n cho vi c x xâu tr nên d dàng h n so v i ki u m ng các tế ơ
char trong C.
Nếu các b n mu n nh p m t xâu thì 2 cách nh sau: ư
#include <bits/stdc++.h>
using namespace std;
int main() {
string s;
cin s; >> // nhập một xâu không dâ&u cách
getline(cin, s); // nhập xâu trong một dòng bao gôDm ca( câ&u
cách, nến thếm fflush(stdin) ( đâDu hàm main đế( xóa bộ nhớ đệm
return ;0
}
Ngoài ra các b n th tham kh o m t s hàm x xâu sau.
#include <bits/stdc++.h>
using namespace std;
// nô&i 2 xâu
string (string a, string b) {noixau
string res a b;= +
return res;
}
// chuyế(n toàn bộ xâu vếD tự in thường
string (string a) {toLower
for int ( i ; i a.= 0 < size(); i++) {
if (a[i] >= && <= += 'A' a[i] 'Z') a[i] 'a' - 'A';
}
return a;
}
// chuyế(n toàn bộ xâu thành tự in hoa
string (string a) {toUpper
for int ( i ; i a.= 0 < size(); i++) {
if (a[i] >= && <= += 'a' a[i] 'z') a[i] 'A' - 'A-
a';
}
return a;
}
// chuâ(n hóa các từ cách nhau nhiếDu dâ&u cách vếD một dâ&u cách
viế&t hoa chữ cái đâDu, những chữ cái sau đế( in thường
string (string a) {chuanhoa
int start ;= 0
string res ;= ""
while (start a.< size() && == ++ start a[start] ) start' ' ;
if return (start == a.size()) res;
if (a[start] >= && <= += 'a' a[start] 'z') a[start] 'A' -
'a';
res a[start];+=
for int ( i start = + ++ 1; i< a.size(); i ) {
if (a[i-1] != && != ' ' a[i] ' ') {
if (a[i] >= && <= += 'A' a[i] 'Z') a[i]
'a' 'A'- ;
res a[i];+=
}
else if (a[i-1] a[i] ) {== ' ' && != ' '
if (a[i] >= && <= += 'a' a[i] 'z') a[i]
'A' 'a'- ;
res a[i];+=
}
}
return res;
}
int main() {
string s ;= " cOde learn io "
string a ;= " Trang weB"
string b ;= " cOde learN Io "
string s (a, b);= noixau
cout s endl;<< <<
cout (s) endl;<< toLower <<
cout (s) endl;<< toUpper <<
cout << chuanhoa(s);
return ;0
}
Tm k tế
Qua bài vi t, mình ã gi i thi u các ki n th c c b n c n ph i bi t khi m i b tế đ ế ơ ế
đầ Để ơ ườ u hc l p trình C++. hiu h n v C++ thì m i ng i th tìm kiếm
các bài t p luy n t p thêm trên" "vì m t khi ã https://codelearn.io/training đ
xác nh theo con ng l p trình viên luôn ph i h c h i không ng ng. Làmđị đườ
nhiu bài t p thì các b n s càng hi u ngôn ng h n. Hy v ng bài vi t này ơ ế
hu ích v i các b n.

Preview text:

Kiến Thức Cơ Bản Cần Nắm Khi Bắt Đầu Học C++
Khi bắt đầu học lập trình, có r t ấ nhi u
ề ngôn ngữ để lựa ch n. C/C++ là
một ngôn ngữ lâu đời, có t c
ố độ nhanh, các kiểu dữ liệu rõ ràng. N u ế
như làm chủ được ngôn ngữ n n
ề tảng như C/C++ thì sau này học các
ngôn ngữ khác trở nên dễ dàng hơn, do đó rất phù hợp với người mới bắt đầu.(H c l ậ p
trình C/C++ (có rất nhiều ứng dụng và mở ra cho bạn
cực kỳ đa dạng các cơ hội để làm việc cho các công ty/tập đoàn lớn.
Theo mình thấy, với người mới học thì C hay C++ không có quá nhiều sự khác
biệt trong cú pháp, C++ còn có thể sử dụng để lập trình hướng đối tượng -" Phần này s không ẽ được gi i thi ớ
ệu vì trong khuôn khổ bài viết là hướng dẫn lập tình C++ c
ơ bản. Hiện tại Codelearn đã có khóa học"C++ cho ng ườ i m ớ i b ắ t đầ u "dành riêng cho các bạn.
Trong bài viết này mình sẽ đưa ra các hướng dẫn để làm quen C++ c ơ bản nhé. Cài đặt IDE nào?
Trên thị trường có rất nhiều"IDE
và Text Editor dành cho l ậ p trình C/C++ . Với các bạn m i
ớ bắt đầu, mình khuyên các bạn nên sử dụng"Dev C++"làm ide
chính để học. Bạn chỉ cần tải v
ề và cài đặt như nhiều hướng dẫn trên internet,
Khi muốn code một chương trình thì chỉ cần tạo 1 file mới và code là chạy được
bình thường, không cần tạo project gì cả, compile cũng nhanh. Ngoài ra các
bạn cũng có thể sử dụng codeblock, visual studio code, ...
Hướng dẫn học C++
1. Các kiểu dữ liệu trong C++, khung chương trình và cách khai báo bi n ế
Một chương trình C++ cơ bản thường được bắt đầu bởi dòng include khai báo thư viện, sau ó
đ là hàm" main . Tất cả mọi thứ của chương trình đều sẽ chạy dọc
theo hàm" main "từ trên xuống dưới, có nghĩa là nếu bạn viết một hàm
ngoài" main "và trong" main "không gọi n
đế hàm đấy có nghĩa là hàm đấy sẽ
không chạy trong chương trình, một hàm luôn luôn phải kết thúc bởi dấu chấm phẩy" (;) ". Dưới ây đ
là bộ khung cơ bản của chương trình" Hello world "bằng C++. #include using namespace std; int main() { cout << "Hello world !"; return 0; }
Có rất nhiều kiểu dữ liệu trong C++, đối với các bạn mới bắt đầu và để làm các bài tập cơ ả
b n thì nên tìm hiểu trước về" int ," long ," long
long ," float ," double ," long double ," char ," string , về cách bi u ể diễn và
khoảng của mỗi kiểu dữ liệu. Sau khi đã làm các bài tập và hiểu rõ rồi thì có thể
tìm hiểu thêm các kiểu dữ li u
ệ khác. Dưới đây là một vài ví dụ về cách khai báo biến trong C++. #include using namespace std; int main() {
int a = 10; // Khai báo biế& n a kiế( u int có giá trị nguyến là 10
float b = 1.5; // Khai báo biế& n b kiế( u float có giá trị thực là 1.5
char c; // khai báo biế& n c có kiế(
u dữ liệu là ký tự char
c = 'a'; // gán giá trị cho biế& n c là ký tự 'a'
string d; // khai báo biế& n d có kiế( u dữ liệu là xâu string
d = "ok" // gán giá trị cho biế& n d là xâu "ok" return 0; }
Dưới đây là một vài kiểu dữ liệu và khoảng lưu trữ của các kiểu dữ liệu đó.
2. Các câu lệnh nhập xuất và cấu trúc các câu lệnh đi u khi n a. Câu l nh nh ập xuất. Trong C++ thì một cách n đơ giản
để nhập là sử dụng câu lệnh" cin , và xuất sử dụng câu lệnh" cout . #include using namespace std; int main() { int a; cin >> a; cout << a; return 0; } b. Câu lệnh rẽ nhánh.
Cách 1: Sử dụng" if else #include using namespace std; int main() { int a; cin >> a; if (a > 0) { cout << "a la so duong"; } else if (a < 0) { cout << "a la so am"; } else { cout << "a bang khong"; } return 0; }
Cách 2: Sử dụng" switch case #include using namespace std; int main() { int a; cin >> a; switch(a) { case 0: cout << "a bang khong"; break; default: cout << "a khac khong"; } return 0; } c. Vòng lặp. Vòng lặp" for #include using namespace std; int main() { int n = 10;
for (int i = 0; i < n; i++) { cout << i << " "; } return 0; } Vòng lặp" while #include using namespace std; int main() { int n = 10; int i = 0; while (i < n) { cout << i << " "; } return 0; } Vòng lặp do while #include using namespace std; int main() { int n = 10; int i = 0; do { cout << i << " "; } while (i < n); return 0; } Bình thường thì s
ẽ sử dụng chủ yếu vòng lặp" for "và" while "thôi. Tác dụng
chính của vòng lặp for là lặp theo một số lượng mà mình cần, còn vòng lặp
while thì sẽ lặp theo một đi u
ề kiện nhất định, do đó sẽ"linh ho t ạ hơn"vòng lặp
for. Tùy mục đích sử dụng mà lựa chọn vòng lặp phù hợp. 3. Mảng Mảng 1 chi u ề #include using namespace std; int main() { int a[10];
for (int i = 0;i < 10; i++) { cin >> a[i]; }
for (int i = 0;i < 10; i++) {
cout << a[i] << " "; } return 0; } Mảng 2 chi u: ề #include using namespace std; int main() { int a[2][3];
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) { cin >> a[i][j]; } }
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
cout << a[i][j] << " "; } } return 0; }
Cũng tương tự như mảng 1 chi u
ề và 2 chiều, các mảng nhiều chi u ề hơn đều có
thể sử dụng tùy theo mục ích đ
của bài toán mà các bạn cần giải. Lưu ý là khi
cấp phát cho mảng một độ lớn là n thì chỉ được lưu các giá trị vào các vị trí từ 0 đến n-1. 4. Lập trình hàm
Khi viết chương trình, nếu như tất cả mọi thứ đều được viết" tuần tự trong hàm
main thì rất khó để theo dõi. Nếu như một số hàm và phần vi c ệ được sử dụng
nhiều lần thì viết một hàm con ra ngoài là một đi u
ề hết sức cần thiết, giúp cho code của bạn tr ở nên gọn gàng và d
ễ theo dõi cũng như code hơn. Tham khảo
đoạn code sau cho hàm tính tổng. #include using namespace std; int sum(int a,int b) { return a + b; } int main() { cout << sum (3, 4) endl; << int a = 1, b = 2;
cout << sum(a,b) << endl; cin >> a >> b;
cout << sum(a,b) << endl; return 0; }
5. Xử lý xâu trong C++
Trong C++, xâu biểu diễn bởi kiểu dữ liệu là" string , mỗi string là một xâu
gồm các ký tự (được biểu diễn bằng ki u ể char) liên ti p. ế Khác v i ớ xâu trong C
là một mảng các char và có kết thúc mảng bới ký tự NULL. Các phép xử lý trong xâu khác so v i
ớ các phép toán xử lý logic. Việc sử dụng kiểu string trong C++ khi n
ế cho việc xử lý xâu trở nên d
ễ dàng hơn so với kiểu mảng các ký tự char trong C.
Nếu các bạn muốn nhập một xâu thì có 2 cách như sau: #include using namespace std; int main() { string s;
cin >> s; // nhập một xâu không có dâ& u cách
getline(cin, s); // nhập xâu trong một dòng bao gôD m ca ( câ& u
cách, nến thếm fflush(stdin) ở ( đâD u hàm main đế( xóa bộ nhớ đệm return 0; }
Ngoài ra các bạn có thể tham khảo một số hàm xử lý xâu sau. #include using namespace std; // nô& i 2 xâu string (string a, string b) { noixau string res = a + b; return res; } // chuyế( n toàn bộ xâu vếD ký tự in thường string toLower(string a) {
for (int i = 0; i < a.size(); i++) {
if (a[i] >= 'A' && a[i] <= 'Z') a[i] += 'a' - 'A'; } return a; } // chuyế(
n toàn bộ xâu thành ký tự in hoa string toUpper(string a) {
for (int i = 0; i < a.size(); i++) {
if (a[i] >= 'a' && a[i] <= 'z') a[i] += 'A' - 'A- a'; } return a; } // chuâ(
n hóa các từ cách nhau nhiếD u dâ& u cách vếD một dâ& u cách và viế& t hoa chữ cái đâD
u, những chữ cái sau đế( in thường string chuanhoa(string a) { int start = 0; string res = "";
while (start < a.size() && start a[start] == ' ') start++;
if (start == a.size()) return res;
if (a[start] >= 'a' && a[start] <= 'z') a[start] += 'A' - 'a'; res += a[start];
for (int i = start + 1; i< a.size(); i++) {
if (a[i-1] != ' ' && a[i != ] ' ') {
if (a[i] >= 'A' && a[i] <= 'Z') a[i] += 'a'-'A'; res += a[i]; }
else if (a[i-1] == ' ' && a[i] != ' ') {
if (a[i] >= 'a' && a[i] <= 'z') a[i] += 'A'-'a'; res += a[i]; } } return res; } int main() { string s = " cOde learn io "; string a = ; " Trang weB" string b = " cOde learN Io "; string s = (a, b); noixau cout << s << endl; cout << toLower(s) endl; << cout << toUpper(s) endl; << cout << chuanhoa(s); return 0; } Tạm kết Qua bài vi t, ế mình đã gi i
ớ thiệu các kiến thức cơ bản cần phải bi t ế khi mới bắt
đầu học lập trình C++. Để hiểu rõ hơn về C++ thì mọi người có thể tìm kiếm
các bài tập và luyện tập thêm trên"https://codelearn.io/training"vì một khi đã
xác định theo con đường lập trình viên là luôn phải học hỏi không ngừng. Làm
nhiều bài tập thì các bạn sẽ càng hiểu rõ ngôn ngữ hơn. Hy vọng bài viết này hữu ích v i các b ớ ạn.