1.0 Viét chương trình đầu tiên Thursday, September 21, 2017 6:58 PM
Ở các bài trước, chúng ta đã biết về quy trình làm việc để tạo ra một chương trình C++, những công cụ cần thiết và IDE mà chúng ta sẽ sử dụng để phát triển chương trình Đến đây chắc các bạn cũng đang háo hức muốn bắt tay vào viết một cái gì đó Trong bài này, chúng ta sẽ cùng viết một chương trình mà bất cứ lập trình viên C++ nào cũng từng trải qua Một chương trình huyền thoại mang tên "”Hello World”
Để bắt đầu viết chương trình, chúng ta cùng mở TDE Visual studio 2015 lên và tạo một project Tại giao diện Start Page của Visual studio, các
bạn click chọn New ProJect
VIEW DEBUG TEAM TOOLS TEST ANALYZE WINDOW HELP it ian ua Attach ~
FILE EDIT
Solution Explorer sa.“ ‹
v7 se ~~ ' w/e _ L eee TS ae | a ' LÔ #
Start New to Visual Studio? Check out coding tutorials and sample projects Get training on new frameworks, languages, and technologies New Project Create a private code repo and backlog for your project
See how easy it is to get started with cloud services SEN HASSE: Discover ways to extend and customize the IDE Open from Source Control Connect to Azure Recent Learn more about Azure ForestProtector Basic Algorithm Nà © GLFW_Learning The Ball GLFW_BasicModel What's new on Microsoft Platforms RescuelnWarface LÊ Tnhh
& Microsoft Azure V ASP,NET and Web Ht Windows Phone
Relocate the What's New information
Ctra s6 tao project mdi hién ra, cac ban chon Empty project, dat tén cho
Trang 2> Recent .NET Framework 4.5 * Sort by: Default
4 Installed tu rn :
| | Blank App (Universal Apps) Visual C++ Type: Visual C++ Ths
4 Iemplates An empty project for creating a local
SG Hub App (Universal Apps) Visual C++ application > Store Apps aus Win32 Console Application Visual C++ en erate) Pivot App (Windows Phone) Visual C++ MFC Test MFC Application Visual C++ Win32
eRe ee WebView App (Windows Phone) Visual C++
> Other Project Types
samples Win32 Project Visual C++ J0 Empty Project Visual C++ 6 Fs er Visual C++ | Name: HelloWorld| ;
Location: c:\users\dad.intern\documents\visual studio 2013\Projects x
Solution name: HelloWorld \¥| Create directory for solution | | Add to source control
Nhấn chọn OK dé hoan tat viéc tao project mdi Ngay khi Visual studio thiết lập project bạn vừa tạo Bạn có thể nhìn vào cửa số Solution
Explorer (mặc định là bên trái) để xem cấu trúc tổ chức của một project như thế nào
FILE EDIT VIEW PROJECT BUILD DEBUG TEAM TOOLS’ TEST ANALYZE WINDOW HELP
rin} a > Local Windows Debugger ~ Auto - Debug ~ Win32 Solution Explorer a es 0-0 *# 2 tion Explorer (Ctrl+: Pr MMe) Mi etela (le) elt MO ce) (a) 4 +, HelloWorld w= External Dependencies Lael Files Lael get a elle
Project HelloWorld được Visual studio tổ chức dưới dạng cây thư mục để quan lý mã nguôn và tài nguyên
Trong project HelloWorld, hiện tại chúng ta quan tâm đến 2 phần chính: ¢ Header Files: dung dé chufa cac phan khai bao class, khai bao ham
Trang 3e Source Files: là nơi chứa các file định nghĩa các hàm, các class Các file được đặt trong này thường có dạng cpp
Bây giờ chúng ta cùng tạo file chương trình đầu tiên Các bạn click chuột phải vào tên project ở trong khung Solution Explorer, chọn đến dòng Add và click chọn New Ttem
| HelloWorld - Microsoft V
FILE EDIT VIEW PROJECT BUILD DEBUG TEAM TOOLS TEST ANALYZE WINDOW HELP
© - in ~ & Ed > Local Windows Debugger + Auto S Debug đ địa # sarch Solution Explorer (Ctrl+ Ð- a ST In PP ence man Peo =10 7) (0) oe Rebuild Lloro: Lares) View Clean LL lice Analyze Project Only Scope to This
New Solution Explorer View Profile Guided Optimization Build Dependencies
Add ‘OO Newltem Ctrl+ Shift+A ° Class Wizard Ctrl+Shift+X ‘O_~Existing Item Shift+Alt+A
Manage NuGet Packages %5 NewEFilter Set as StartUp Project sa ae Debug Class Source Control k Resouirce db Cut Ctrl+X Remove He 4 Ja] aa Unload Project Rescan Solution Output Open Folder in File Explorer Properties
Trang 44 Installed Sort by: Default "HE Search Installed Templates (Ctri+E Pr
nny :
7 ars = LT] c++ Fiecpp) Visual C++ Wess LETS
Creates a file containing C++ source code Code ++ ; HLSL [hi] Header File (.h) Visual C++ Data Resource Web Utility Property Sheets Test Graphics PowerShell > Online Name: main.cpp|
Location: SU cut ate set Peale a lacie uc x
Sau khi add file main.cpp xong, cùng nhìn lại phần tổ chức project trong cửa số Solution Explorer xem điều gi dang xảy ra
FILE EDIT VIEW PROJECT BUILD DEBUG TEAM TOOLS TEST ANALYZE WINDOW HELP
i oa ^ > Local Windows Debugger ~ Auto -
Solution Explorer ~ 2 X maincpp # X
ía - = 2 | 1 (Global Scope)
@ O-@@m © đ
Search Solution Explorer (Ctrl+; pP- ig Solution ‘'HelloWorld' (1 project) Fate ste) ele w= External Dependencies sq Header Files ™j Resource Files 4 rJ] Source Files ++ main.cpp
Trang 5FILE EDIT VIEW PROJECT BUILD DEBUG TEAM TOOLS TEST ANALYZE WINDOW HELP ©- II i is >» Local Windows Debugger ~ Auto Debug Solution Explorer v 1x
4 ồ~x # đi © '' Fel HelloWorld - (Global Scope)
fg Solution 'HelloWorld' (1 project) 38 #include
Fe elie : using namespace std; b #& External Dependencies =
Sj Header Files m™ Resource Files 7 eee ce |
b ++ main.cpp
Nhấn tổ hợp phím Ctrl + S dé lưu lại những gì bạn đã viết Ở mức độ hiện
tại, mình chỉ yêu cầu các bạn viết theo những gì mình đã viết, chưa yêu cầu các bạn phải hiểu được những dòng mã trên có ý nghĩa gì Sau khi lưu file main.cpp lại, chúng ta đã có được file mã nguồn C++ đầu tiên Các
bạn có thể muốn xem thử file main.cpp vừa được lưu đang nằm chổ nào
Để xem thư mục gốc của project, các bạn click chuột phải vào tên project HelloWorld trong cửa số Solution Explorer rồi chọn Open Folder in File Explorer ` ae AT: ze | = 6 + ye) `2 ; a Solution Ln Pa eco Rebuild Heade Clean Resou ; Tony Sourc Anal ++ mi Sys Project Only Scope to This
New Solution Explorer View Profile Guided Optimization Build Dependencies Add
* Class Wizard Ctrl+Shift+X Manage NuGet Packages
Trang 6Và chúng ta thay file main.cpp nhu trong hinh bên dưới
a > ThisPC » Documents > visual studio 2013 » Projects >» HelloWorld » HelloWorld
Name ° Date modified Type Size
)) Debug 4/13/2016 10:54PM File folder
(%] HelloWorld.vexproj 4/13/2016 10:53 PM VC++ Project 4KB ns S1 HelloWorld.vcxproj.filters 4/13/2016 10:53 PM VC++ Project Filte 1 KB ! ; lat main.cpp 4/13/2016 10:56 PM CDPP File 1 KB studio 2013
ItectureExplorer
Quay lại với màn hình làm việc của Visual studio Các bạn click chuột vào menu item BUILD trén Tool bar, sau do chon Build Solution (hoac nhan phím F7)
FILE EDIT VIEW PROJECT BUILD DEBUG TEAM TOOLS’ TEST ANALYZE WINDOW HELP
fÐ ~ t⁄J Build Solution F7 : Debug ~ Win32 Rebuild Solution Ctrl+Alt+F7
Solution Explorer v
= # Clean Solution AE Y3 - œ BI] ï : - obal Scope)
eee le) Run Code Analysis on Solution Alt+F11 ——=—~ ĐI Rebuild HelloWorld Clean HelloWorld ¡31 Solution 'HelloWorld' (1 projec 4 + HelloWorld w= External Dependencies
s8 Header Files Project Only
SG neo Profile Guided Optimization =Sl Source Files : Batch Build main.cpp Configuration Manager TlÌ: Compile Ctrl+F7 Le
Thực hiện bước này, Visual studio sẽ biên dịch file main.cpp của bạn để
tạo thành file object ob]j, đồng thời liên kết file main.obj tạo thành file
chương trình (có đuôi exe) Chúng ta chuyển qua thư mục gốc của
project chứa file main.cpp lúc nay, double click vao thu muc Debug, chung ta thay file main.obj la két qua cua qua trinh biên dịch mã nguồn
, J¿ > ThisPC » Documents > visual studio 2013 » Projects HelloWorld » HelloWorld » Debug
~
“ Name Date modified Type Size
}) HelloWorld.tlog 4/13/2016 10:54PM File folder
4/13/2016 10:54PM Text Document 2 KB
nts #3 main.obj 5 : 4/13/2016 10:54PM Object File sila in 122 KB
'
_ Source.obj 4/13/2016 10:20PM Object File 4KB
studio 2013 key vC120.idb ° 4/13/2016 10:54PM ¬ VC++ Minimum R ee 5 251 KB :
itectureExplorer SỐ ;
œ:Ì vc120.pdb 4/13/2016 10:54PM Program Debug D 332 KB
up Files : Snippets
Quay lui thư mục chứa file main.cpp ban đầu, cùng chuyển lui một thư
Trang 7+ Ji > ThisPC » Documents > visual studio 2013 >» Projects » HelloWorld - “^ Name Date modified Type Size | J) Debug | 4/13/2016 1053PM_ Filefolder ° 0 HelloWorld 4/13/201610:56PM_ Filefolder Ients mà TS SỐ - — N L1 HelloWorld.sdf 4/13/2016 11:06 PM SOL Server Comp 448 KB J 64 HelloWorld.sin 4/13/2016 10:04PM = Microsoft Visual S 1 KB | Studio 2013 hitectureExplorer :kup Files de Snippets
Vào trong thư mục Debug này, các bạn sẽ thấy file exe đã được Visual
studio tạo ra
ry) > ThisPC » Documents > visual studio 2013 >» Projects » HelloWorld » Debug “ Name Date modified Type Size ® | HelloWorld.exe | 4/13/2016 10:54PM = Application 64 KB T1 HelloWorld.ilk 4/13/2016 10:54PM Incremental Linke 389 KB ts e:\ HelloWorld.pdb 4/13/2016 10:54PM Program Debug D 940 KB tudio 2013 ectureExplorer
Bây giờ, các bạn mở file HelloWorld.exe này bằng cách double click vào nó Cùng xem kết quả xuất hiện trên màn hình
| [od =| Application Tools Debug 1N Home Share View Manage
de Cut | Ì | he yA EI! = New item * m7]ÌOpen x RHselectall
Copy path : +~ + | Easy access ¥ t xi Select none
Copy Move Copy Delete Rename New Properties tor to Y v folder lllllll till lứt History oo Invert selection oS v T ry )™ This PC LKB k Desktop n = E Documents a )) GitHub " a Visual Studio a Architectu a Backup File ” Code Snipr di Projects
Như các bạn thấy, trong cửa số Console, chúng ta có một dòng chữ xuất
hién: "Hello World.", va một dòng gợi ý cho người dùng rằng: Hãy nhấn 1
phím bất kì để kết thúc chương trình
Trang 8studio, bằng cách click chuột phải vào tên project trong cửa số Solution
Explorer -> Debug -> Start new instance
FILE EDIT VIEW PROJECT BUILD DEBUG TEAM TOOLS TEST ANALYZE WINDOW HELP
tae > Local Windows Debugger ~ Auto x Debug ~ Win32 Solution Explorer ~ 2 X = main.cpp
@ o-e@adfa *# H1 (Global Scope) ~ @ maing
Search Solution Explorer (Ctrl+: pe mR 1 an nu RY ; ñ-‹ í ta Buía ae Rebuild rl He Clean Le To b ++ Analyze < "Hello World." << View Project Only ("pause"”) ; Scope to This : New Solution Explorer View
Profile Guided Optimization Build Dependencies Add
Bs’ Class Wizard Ctrl+Shift+X Ñl_ Manage NuGet Packages
TF Set as StartUp Project
Debug | Start new instance Source Control ó e Step Into new instance h.Á Cut Ctrl+X 3% Remove Del Rename we Unload Project Rescan Solution
Output C* Open Folder in File Fxplorer This item does n ah sah HelloWorld.exe = FILE EDIT VIEW PROJECT BUILD DEBUG TEAM TOOLS TEST ANALYZE WINDOW HELP Nguyen Vu ~ a) Process: [4076] HelloWorld.exe
Solution Explorer » 2X ~ main.cpp
ta O-~2 i “'_ [%l HelloWorld s (Global Scope) x+ {@® main =- Solution Explorer (Ct PP fg] Solution 'HelloWorld' (1 project) 4 {%| HelloWorld Le car elle aes Calle —- = Resource Files F2 et —- b ++ main.cpp
Class View Locals Threads Modules Watch 1 Breakpoints Output
ĐJ » V & i at @ ENG 12:14AM
Trang 9chúng ta lại nên đặt tên file đầu tiên cho project là main.cpp?
Để giải thích vấn đề này, mình muốn các bạn nhìn lại mã nguồn của file main.cpp mà các bạn đã viết cùng mình để có cái nhìn tổng quan về cấu trúc của một chương trình C++ cơ bản (%] HelloWorld Ms (Global Scope) using namespace std; 6 Elint main() Các ban hay chu y dén dong 6 trong chuong trinh trén Chúng ta thay int main()
Đó là dòng bắt buộc phải có nếu muốn mã nguồn C++ có thể hoạt động được Main trong tiếng Anh khi dịch ra có nghĩa là chính, quan trọng Trong ngôn ngữ C++, main là điểm khởi đầu cho một chương trình Trong
một thời điểm, máy tính của chúng ta chỉ có thể thực hiện 1 dòng lệnh
Và ở thời điểm chương trình C++ bắt đầu chạy, nó sẽ tìm tới nơi có khai
báo là main để thực hiện mã lệnh ở trong đó
Trang 10Chương trình cua C++ sé thuc hiện từng dòng lệnh trong cặp ngoặc nhọn { } ở phía sau hàm main một cách có thứ tự từ trên xuống dưới
Một chương trình C++ bắt buộc phải có 1 hàm main, thế nên mình
khuyên các bạn nên đặt tên file đầu tiên trong chương trình main.cpp, và file này sẽ chứa mã nguồn C++ có hàm main ở trong đó, sau này các bạn làm việc với 1 dự án có nhiều file thì sẽ không bị nhầm lẫn
Ở bài học kế tiếp (trong chương tiếp theo), mình sẽ nói về cấu trúc của một chương trình C++ cơ bản Hẹn gặp lại các bạn trong bài học sau
Link Videos khóa học