Bài giảng Phương pháp lập trình - Chương 1: Phương pháp lập trình cung cấp cho người học các kiến thức: Các hệ thống số và quy tắc chuyển đổi, tổng quan về ngôn ngữ lập trình C/C++, kiểu dữ liệu, định danh, biến, hằng, toán tử gán, các toán tử, các hàm nhập, xuất. Mời các bạn cùng tham khảo.
Trang 1PH ƯƠNG PHÁP LẬP TRÌNH NG PHÁP L P TRÌNH ẬP TRÌNH
PH ƯƠNG PHÁP LẬP TRÌNH NG PHÁP L P TRÌNH ẬP TRÌNH
Trang 2Các n i dung chính ội dung chính
•Các hệ thống số và quy tắc chuyển đổi
•Tổng quan về ngôn ngữ lập trình C/C++
•Kiểu dữ liệu, định danh, biến, hằng, toán tử gán
•Các toán tử
•Các hàm nhập, xuất
Trang 51 Lịch sử của ngôn ngữ lập trình C/C++
2 Phương pháp giải quyết bài toán
3 Các bước trong chu trình phát triển
4 Khảo sát 1 chương trình C/C++ đơn giản
5 Cấu trúc chung của 1 chương trình C/C++
6 Các tập tin thư viện thông dụng
Trang 61 Lịch sử của ngôn ngữ C/C++
•C được tạo bởi Dennis Ritchie ở Bell Telephone Laboratories vào năm 1972
•C++ là một ngôn ngữ lập trình hướng đối
tượng, nó bao hàm cả ngôn ngữ C
Trang 72 Phương pháp giải quyết bài
toán
•Các bước gồm:
▫ Xác định yêu cầu của bài toán
▫ Đưa ra thuật toán (dùng mã giả, hoặc lưu đồ)
▫ Cài đặt (viết) chương trình
▫ Thực hiện chương trình và kiểm chứng
Trang 83.Các bước trong chu trình
phát triển chương trình
Trang 93.Các bước trong chu trình
phát triển chương trình
1 Soạn thảo mã nguồn (source code), lưu tập tin
với phần mở rộng cpp
2 Mã nguồn được biên dịch (compile) để tạo tập
tin đối tượng (object file)
3 Tập tin đối tượng kết hợp với mã đối tượng
của các hàm thư viện để tạo tập tin có thể
thực thi (executable file)
4 Thực thi (run) chương trình
Quá trình 4 bước sẽ được lập lại cho đến khi tập
tin thực thi thực hiện đúng yêu cầu bài toán
Trang 11Câu lệnh #include báo cho trình biên dịch biết cần
phải gộp thư viện vào chương trình
Trang 124 Khảo sát một chương trình C/C++
đơn giản
int main(): khai báo hàm main
Chương trình C/C++ phải luôn tồn tại hàm main
Nội dung trong hàm main luôn được thực hiện
đầu tiên khi chương trình được thực thi
Nội dung của hàm main nằm trong cặp dấu { }
tiếp sau phần khai báo hàm
Cuối mỗi dòng lệnh trong C/C++ phải có dấu ;
Trang 134 Khảo sát một chương trình C/C++
đơn giản
cout<< “Hello World!”;
cout là một dòng xuất chuẩn C/C++ được định
nghĩa trong thư viện iostream.h
Khi dòng lệnh này được thực thi thì chữ Hello Word!
Trang 15Chú thích
•Chú thích được sử dụng để ghi chú hay mô tả
trong các phần của chương trình
•Có hai cách để chú thích:
▫ Chú thích dòng: dùng cặp dấu //
▫ Chú thích khối (chú thích trên nhiều dòng)
dùng cặp dấu /* */
Trang 165 Cấu trúc chung của một chương
trình C/C++
Trang 175 Cấu trúc chung của một chương
trình C/C++
Trang 186 Một số tập tin thư viện
thông dụng
•Khi lập trình C/C++, cần phải sử dụng các hàm
có sẵn của C/C++ để viết chương trình
•Tùy theo mục tiêu sử dụng chung, các hàm này được nhóm vào các tập tin khác nhau tạo thành các tập tin thư viện
•Khi chương trình muốn sử dụng tập tin thư viện nào thì phải khai báo
#include<FileName.h>, với FileName.h là
tên tập tin thư viện
Trang 19•Một số tập tin thư viện thông dụng gồm:
▫stdio.h (C), iostream.h (C++): định nghĩa các hàm vào ra chuẩn
các hàm xuất dữ liệu: printf()), cout
nhập giá trị cho biến: scanf()), cin
nhận ký tự từ bàn phím: getc()
in ký tự ra màn hình: putc()
nhập một chuỗi ký tự từ bàm phím: gets()
xuất chuỗi ký tự ra màn hình: puts()
6 Một số tập tin thư viện
thông dụng
Trang 20▫conio.h: định nghĩa các hàm vào ra trong chế
độ DOS như clrscr(), getch() , …
▫math.h: Định nghĩa các hàm toán học như:
abs(), sqrt(), log(), log10(), sin(), cos(), tan(), acos(), asin(), atan(), pow(), exp() , …
▫alloc.h: định nghĩa các hàm vào ra cấp thấp gồm các hàm open(), _open(), read(), _read(), close(), _close(), creat(), _creat(), creatnew(), eof(), filelength(), lock() , …
6 Một số tập tin thư viện
thông dụng
Trang 221 Các kiểu dữ liệu ( Data types )
•Có 5 kiểu dữ liệu cơ sở:
▫char (Ký tự)
▫int (Số nguyên)
▫float (Số thực)
▫double (Số thực)
▫void (Kiểu vô định)
•Ngoại trừ kiểu void, các kiểu cơ sở có thể có
signed, unsigned, long, short đứng trước
•Kích thước và phạm vi của chúng có thể thay
đổi tùy theo loại CPU và trình biên dịch
Trang 231 Các kiểu dữ liệu ( Data types )
Trang 242 Đ nh danh ịnh danh (Identifier name)
•Định danh: là tên của biến, hằng, hàm
•Quy tắc đặt định danh:
▫Có thể có 1 hoặc nhiều ký tự
▫Ký tự đầu tiên phải là một chữ cái hoặc dấu _
▫Những ký tự theo sau phải là chữ cái, chữ số,
hoặc dấu _
▫Không được chứa ký tự khoảng trắng
▫Không được trùng với từ khóa (keyword)
▫Không nên trùng tên với các hàm thư viện
•C/C++ phân biệt ký tự HOA và thường
Trang 25X-1
Trang 26T khóa (keyword) ừ khóa (keyword)
•Là những từ được dành riêng bởi ngôn ngữ lập trình cho những mục đích riêng của nó
•Tất cả các từ khóa trong C/C++ đều là chữ
thường
•Danh sách các từ khóa trong C/C++
Trang 273 Bi n và khai báo bi n ến và khai báo biến ến và khai báo biến
• Biến ( variable ): là định danh của một vùng nhớ, dùng để giữ một giá trị mà có thể được thay đổi bởi chương trình
• Biến phải được khai báo trước khi sử dụng
• Cách khai báo:
▫Data_Type : là một trong các kiểu dữ liệu hợp lệ
▫variable_Name : định danh (tên biến), nếu có nhiều biến thì các biến phân cách nhau bởi dấu phẩy
• Ví dụ: int x, y;
char ch;
Data_Type variable_Name ;
Trang 283 Bi n và khai báo bi n ến và khai báo biến ến và khai báo biến
•Trong cùng một phạm vi, các biến không được
Data_Type variable_Name = value ;
Trang 293 Bi n và khai báo bi n ến và khai báo biến ến và khai báo biến
•Biến có thể được khai báo tại ở:
▫Bên trong hàm biến cục bộ
▫Trong định nghĩa tham số hàm tham số hình
thức
▫Bên ngoài tất cả các hàm biến toàn cục
Trang 30Ph m vi c a bi n ạm vi của biến ủa biến ến
•Biến cục bộ (local variables)
▫Là những biến được khai báo bên trong một hàm
▫Các biến cục bộ chỉ có tác dụng bên trong khối
( block ) có khai báo biến
Một khối được đặt trong cặp dấu { }
▫Biến cục bộ chỉ tồn tại trong khi khối chứa nó
đang thực thi và bị hủy khi khối chứa nó thực thi
xong
Trang 31Ph m vi c a bi n: Ví d ạm vi của biến ủa biến ến ụ
Trang 32Ph m vi c a bi n ạm vi của biến ủa biến ến
•Tham số hình thức (formal parameters)
▫Là các biến được khai báo trong tiêu đề hàm
▫Được sử dụng giống như các biến cục bộ
Trang 33Ph m vi c a bi n ạm vi của biến ủa biến ến
•Biến toàn cục (global variables)
▫Là biến được khai báo bên ngoài tất cả các hàm
▫Biến toàn cục có phạm vi sử dụng trong toàn bộ
chương trình
Tất cả các lệnh có trong chương trình đều có thể
tham chiếu đến biến toàn cục
Trang 34cout << “ Value of gVar= “<< gVar; increase();
cout << “ After increased, gVar= “<< gVar; decrease();
cout << “ After decreased, gVar= “<< gVar;
}
Value of gVar= 100 After increased, gVar= 101; After decreased, gVar= 100;
Trang 354 H ng và khai báo h ng ằng và khai báo hằng ằng và khai báo hằng
▫Ví dụ: const int MAX = 200;
const Data_Type CONST_NAME = value ;
Trang 365 Toán t gán ử gán (assignment operator)
•Cú pháp:
▫variableName : Tên biến
▫expression : Biểu thức
•Ví dụ:
total = 10; // gán giá trị cho biến total bằng 10
total = a; // gán giá trị biến a cho biến total
total = total + b + c + d // gán tổng giá trị của các
biến total, b, c, d cho biến total
variableName = expression;
Trang 375 Toán t gán ử gán (assignment operator)
•Mỗi kiểu dữ liệu có cách gán giá trị tương ứng (GT
Trang 38Chuyển đổi kiểu trong câu lệnh gán
•Đối với câu lệnh gán, giá trị của biểu thức bên
phải dấu = được tự động chuyển thành kiểu dữ liệu của biến bên trái dấu =
Trang 39Chuyển đổi kiểu trong câu lệnh gán
•Khi chuyển đổi từ kiểu dữ liệu có miền giá trị nhỏ sang kiểu dữ liệu có miền giá trị lớn hơn: charintlongfloatdouble, thì việc chuyển đổi kiểu này không làm mất mát thông tin
•Khi chuyển đổi từ kiểu dữ liệu có miền giá trị lớn sang kiểu dữ liệu có miền giá trị nhỏ hơn: doublefloatlongintchar, thì việc chuyển đổi kiểu này làm mất mát thông tin
Trang 40•Casting dùng để ép một biểu thức thành một kiểu theo ý muốn của người lập trình
Trang 4213 % 3 // kết quả 1
Trang 432 Toán tử ++ và –
(increment and decrement operators)
•(GT 23) Toán tử tăng (++) và toán tử giảm ( )
có tác dụng làm tăng hoặc giảm 1 giá trị lưu
trong biến
•Ví dụ:
a++; //tương đương với a=a+1
a ; //tương đương với a=a-1
Trang 44•Toán tử tăng/giảm có 2 dạng:
▫Tiền tố (prefix):
Toán tử ++/ đặt trước toán hạng
Hành động tăng/giảm trên toán hạng được thực hiện trước khi tính biểu thức
Trang 45•Toán tử tăng/giảm có 2 dạng:
▫Hậu tố (postfix):
Toán tử ++/ đặt sau toán hạng
Hành động tăng/giảm trên toán hạng được thực hiện sau khi tính biểu thức
Trang 494 Toán t lu n lý ử gán ận lý
(logical operators)
•Độ ưu tiên của toán tử quan hệ và luận lý
Trang 515 Toán t ? ử gán (? operator)
•Toán tử ? là một toán tử ba ngôi do đó phải có
ba toán hạng
•Cú pháp:
▫Exp1, Exp2, và Exp3 là các biểu thức
▫Nếu Exp1 đúng thì Exp2 được định trị và nó trở
thành giá trị của biểu thức
▫Ngược lại, nếu Exp1 sai thì Exp3 được định trị và trở thành giá trị của biểu thức
Exp1 ? Exp2 : Exp3;
Trang 547 Toán tử gán dấu phẩy (comma
operator)
•Cú pháp:
•Các biểu thức được định trị từ trái sang phải,
biểu thức cuối cùng (exp_n) được định trị và trở thành giá trị của toàn bộ biểu thức
Trang 55Bi u th c (GT 29) ểu thức (GT 29) ức (GT 29)
tử, hằng, biến, và hàm có trả về giá trị
tiên của các toán tử
các kiểu khác nhau thì giá trị của chúng phải được chuyển thành cùng kiểu trước khi thực hiện các phép toán giữa chúng
tự động đến kiểu của toán hạng có kiểu lớn hơn
Trang 57D ng vi t t t c a l nh gán (GT 31) ạng viết tắt của lệnh gán (GT 31) ến và khai báo biến ắt của lệnh gán (GT 31) ủa lệnh gán (GT 31) ệ
•Dạng viết tắt của lệnh gán với các toán tử số
Trang 581 Hàm xuất
2 Hàm nhập
Trang 591 Hàm xu t ấ
•cout<<
▫Dùng để xuất thông tin ra màn hình
▫Thuộc thư viện iostream
#include<iostream.h>
▫Ví dụ 1:
cout<<“Chao ban”; // xuất chữ Chao ban
cout<<xyz; // xuất giá trị của biến xyz
▫Ví dụ 2:
int x=3, y=5;
cout<<“Tong cua”<<x<<“ va ”<<y<<“la”<<(x+y);
Trang 63Các b ướ c vi t ch ến ươ ng trình
1 Từ yêu cầu bài toán, xác định các dữ liệu phải
nhập (input) và kiểu của chúng khai báo
các biến tương ứng
2 Cho nhập (hoặc gán) giá trị cho các biến
3 Xử lý, tính toán dữ liệu nhập theo yêu cầu bài
toán
4 Xuất (output) kết quả theo yêu cầu bài toán
Trang 64T ng k t ổng kết ến và khai báo biến
•Cấu trúc của một chương trình C/C++
•Biến và khai báo biến
•Biến cục bộ, biến toàn cục
•Các toán tử: gán, tăng/giảm, ba ngôi
•Ép kiểu
•Dạng viết tắt của câu lệnh gán
•Các bước viết chương trình