Tài liệu Phương pháp lập trình - Các thành phần cơ bản - Ngô Hữu Dũng: Phương pháp lập trình
Các thành phần cơ bản
TS. Ngô Hữu Dũng
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
Nội dung
Phương pháp lập trình - Cơ bản2
 Giới thiệu ngôn ngữ lập trình C
 Trình biên dịch/thông dịch
 Cấu trúc chương trình
 Định dạng trong C
 Biến, kiểu dữ liệu
 Hằng số, từ khóa, toán tử
 Thư viện
 stdio.h, stdlib.h, math.h, string.h, ctype.h, time.h
 Nhập xuất căn bản
 Nhập: scanf, cin, gets
 Xuất: printf, cout, puts
Ngôn ngữ lập trình C
Phương pháp lập trình - Cơ bản
 Được phát triển bởi Dennis 
Ritchie tại phòng thí nghiệm
AT&T Bell vào đầu thập niên
1970
 C được dùng trong hệ điều
hành UNIX và phát triển cùng
với hệ điều hành này
 C đã lan rộng ra nhiều hệ điều
hành khác và trở thành ngôn
ngữ phổ dụng nhất
3
Trình biên dịch/Trình thông dịch
Phương pháp lập trình - Cơ bản
Trình
biên dịch
Compiler
Mã nguồn
Source code
Mã máy
Machine 
Code
Executable
Program
Input Output
Trình biên dịch: Phân tích chương
trình và bi...
                
              
                                            
                                
            
 
            
                 45 trang
45 trang | 
Chia sẻ: putihuynh11 | Lượt xem: 697 | Lượt tải: 0 
              
            Bạn đang xem trước 20 trang mẫu tài liệu Phương pháp lập trình - Các thành phần cơ bản - Ngô Hữu Dũng, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Phương pháp lập trình
Các thành phần cơ bản
TS. Ngô Hữu Dũng
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
Nội dung
Phương pháp lập trình - Cơ bản2
 Giới thiệu ngôn ngữ lập trình C
 Trình biên dịch/thông dịch
 Cấu trúc chương trình
 Định dạng trong C
 Biến, kiểu dữ liệu
 Hằng số, từ khóa, toán tử
 Thư viện
 stdio.h, stdlib.h, math.h, string.h, ctype.h, time.h
 Nhập xuất căn bản
 Nhập: scanf, cin, gets
 Xuất: printf, cout, puts
Ngôn ngữ lập trình C
Phương pháp lập trình - Cơ bản
 Được phát triển bởi Dennis 
Ritchie tại phòng thí nghiệm
AT&T Bell vào đầu thập niên
1970
 C được dùng trong hệ điều
hành UNIX và phát triển cùng
với hệ điều hành này
 C đã lan rộng ra nhiều hệ điều
hành khác và trở thành ngôn
ngữ phổ dụng nhất
3
Trình biên dịch/Trình thông dịch
Phương pháp lập trình - Cơ bản
Trình
biên dịch
Compiler
Mã nguồn
Source code
Mã máy
Machine 
Code
Executable
Program
Input Output
Trình biên dịch: Phân tích chương
trình và biên dịch thành mã máy.
Chương trình có thể thực thi: Có thể
chạy độc lập với trình biên dịch => 
Thực thi nhanh chóng
Trình
thông dịch
Interpreter
Source 
Code
Input Output
Trình thông dịch: Phân tích và
thực thi chương trình cùng lúc.
Việc thực thi chậm nhưng dễ sửa
lỗi chương trình.
4
Biên dịch và chạy chương trình
Phương pháp lập trình - Cơ bản
 IDE – Integrated 
Development Environment
 Trình soạn thảo
 Biên soạn mã nguồn
 Trình biên dịch
 Phân tích và biên dịch mã nguồn
thành mã đối tượng
 Trình liên kết
 Kết hợp các mã
đối tượng và thư
viện thành mã
thực thi
Editor
Compiler
Linker
Source code
file.c
Object code
file.obj
Executable code
file.exe
Libraries 
IDE 
(Integrated 
Development 
Environment)
5
Sửa lỗi - debug
Phương pháp lập trình - Cơ bản
 Lỗi cú pháp
 Phát hiện bởi trình biên
dịch
 Lỗi về từ khóa, cú pháp, 
ngữ pháp
 Lỗi ngữ nghĩa
 Được phát hiện bởi
người sử dụng
 Lỗi về kết quả của
chương trình
 Lỗi xuất hiện trong quá
trình thực thi chương
trình
 Đúng cú pháp nhưng sai
kết quả
Editor
Compiler
Linker
Source code
file.c
Object code
file.obj
Executable code
file.exe
Libraries 
Syntactic 
Errors
Semantic Errors
6
Cấu trúc chương trình C
Phương pháp lập trình - Cơ bản
 Ký hiệu #include dùng để khai báo thư viện phục vụ chương
trình
 Hàm main là nơi bắt đầu thực hiện chương trình
 Lệnh printf nằm trong thư viện stdio.h, dùng để xuất dữ liệu
ra màn hình
 Kí hiệu \n dùng để xuống dòng
 Lệnh return dùng để kết thúc và trả về giá trị kiểu int cho hàm
main
1. /* Chương trình Hello world! */
2. #include // Khai báo thư viện
3. int main() // Chương trình chính
4. { // Bắt đầu chương trình
5. printf("Hello world!\n"); // Câu lệnh
6. return 0;
7. } // Kết thúc chương trình
7
Định dạng trong C
Phương pháp lập trình - Cơ bản
 Có phân biệt giữa chữ in HOA và chữ in thường!
 Các dòng trống, khoảng trắng, lời chú thích đều 
được trình biên dịch bỏ qua
 Các dấu thụt dòng giúp chương trình dễ đọc, rõ 
ràng.
 Có thể dùng tab hoặc dấu cách
 Câu lệnh được kết thúc bằng dấu chấm phẩy ;
 Chuỗi ký tự được đặt giữa hai dấu hai nháy
"Chuỗi"
 Một ký tự được đặt giữa hai dấu một nháy 's'
8
Lời chú thích
Phương pháp lập trình - Cơ bản
 Hai cách ghi chú thích
 // chú thích dòng
 /* chú thích khối*/
 Ví dụ
1. /* Chương trình C
2. ** In ra màn hình dòng chữ Hello world! 
3. */
4. #include //Khai báo thư viện
9
Biến
Phương pháp lập trình - Cơ bản
 Biến được dùng để lưu trữ dữ liệu và kết quả
tính toán
 Kiểu dữ liệu: Nguyên, thực, ký tự, chuỗi, mảng, 
cấu trúc, con trỏ
 Tên biến: Do người lập trình tự đặt
 Biến phải được khai báo trước khi sử dụng
 Cú pháp: Kiểu-dữ-liệu Tên-biến;
 int year;
 float score;
 char kytu;
10
Biến (2)
Phương pháp lập trình - Cơ bản
 Giá trị của biến có thể thay
đổi
 Khởi tạo biến: 
 int year = 2016;
 Phép gán: 
 year = last_year + 1;
 Một vùng nhớ sẽ được cấp
phát tương ứng với kích cỡ
của biến
 Mỗi ô nhớ có một địa chỉ 
riêng
2016year
Biến Vùng nhớ
int year; // Khởi tạo
year = 2016;// Gán
Kiểu dữ
liệu?
11
Kiểu dữ liệu
Phương pháp lập trình - Cơ bản
 int: Kiểu số nguyên
 2 hoặc 4 bytes (16 hoặc 32 bits)
 -32,768 → 32,767 hoặc -2,147,483,648 → 2,147,483,647
 float: Kiểu số thực
 4 bytes (32 bits): 1.2E-38 → 3.4E+38, độ chính xác 24 bits
 double: Kiểu số thực có độ chính xác cao hơn float
 8 bytes (64 bits): 2.3E-308 → 1.7E+308, độ chính xác 53 bits
 char: Kiểu ký tự
 1 byte, ví dụ: char exit = 'e';
 bool: Kiểu luận lý, có giá trị true hoặc false
 1 byte, ví dụ: bool kt = true;
Độ chính
xác?
12
Số chấm động – floating-point numbers
Phương pháp lập trình - Cơ bản
 Biểu diễn số thực
 Ví dụ: 12’345 = 1.2345 x 104
 Hay 1.2345E+4
 Trị số x hệ cơ số số mũ
 Float: Độ chính xác đơn
 Double: Độ chính xác đôi
significand x base exponent
Kiểu dữ liệu Dấu Mũ Trị số Tổng số bit Độ chính xác
Float 1 bit 8 bits 23 bits 32 bits (4 bytes) 24 bits (Dấu + trị số)
Double 1 bit 11 bits 52 bits 64 bits (8 bytes) 53 bits (Dấu + trị số)
13
Tên biến
Phương pháp lập trình - Cơ bản
 Phải bắt đầu bằng một chữ hoặc dấu gạch dưới (_), tiếp sau đó
có thể kết hợp giữa chữ, số và dấu gạch dưới.
 Không được trùng với từ khóa có sẵn của C
 Hai biến không được trùng tên nhau
 Có phân biệt giữa chữ hoa và chữ thường
 Độ dài tùy thích, tuy nhiên không nên đặt tên quá dài
 Nên đặt tên có nghĩa, dễ hiểu
 Ví dụ: Những tên biến nào sau đây đúng hay sai?
 1ngoi_sao, bienDem1, phepNhân, donVi$, ngoi_nha, 
int, kiem-tra, A&T
 ____dien___tich, +hai_so, luy thua, T_T, ^_^, 
edthbdl_mbcln2h 
14
Từ khóa
Phương pháp lập trình - Cơ bản
 Là những từ đã được định nghĩa bởi trình biên dịch
 Không được dùng để đặt tên biến, tên hàm
 auto break case char const continue 
default do double else enum extern float 
for goto if int long register return short 
signed sizeof static struct switch typedef
union unsigned void volatile while
15
Ví dụ về biến và kiểu biến
Phương pháp lập trình - Cơ bản
1. #include // Khai báo thư viện
2. int main() // Chương trình chính
3. {
4. char a; // Kiểu ký tự
5. int i1 = 5, i2; // Kiểu số nguyên
6. float f; // Kiểu số thực
7. a = 'f'; // Phép gán
8. i2 = 10; // Phép gán
9. f = (float)i1 / i2; // Biểu thức
10. printf("%c = %f, ", a, f);
11. printf("kich thuoc %d bytes.\n", sizeof(f));
12. getchar();
13. return 0;
14.} f = (float)i1 / i2;
16
Chuyển đổi kiểu
Phương pháp lập trình - Cơ bản
 Đặt (Kiểu dữ liệu) phía trước biểu thức để chuyển đổi
kiểu dữ liệu cho kết quả của biểu thức
 f = (float) i1 / i2; i = (int)f;
 Gán một số nguyên vào một biến kiểu thực
 f = i; // Cảnh báo việc chuyển đổi
 f1 = 10; // OK! f1 = 10.000000
 f2 = (float)i; // OK! 
 Gán một số thực vào một biến kiểu nguyên: Mất phần
thập phân (sau dấu chấm)
 i1 = 9.5; i2 = f; // Cảnh báo, i1 = 9
 i1 = (int)9.5; i2 = (int)f; // OK!
17
Chuyển đổi kiểu (2)
Phương pháp lập trình - Cơ bản18
 Chia một số nguyên cho một số nguyên: Kết quả là số
nguyên
 i1=5; i2=10; f=i1/i2; // Cảnh báo, 
f=0.000000
 f=(float)i1/i2; // OK, f=0.500000
 Chia một số thực cho một số nguyên hoặc chia một số
nguyên cho một số thực: Kết quả là số thực
 i=5; f=10; i1 = i/f; // Cảnh báo, i1 = 0
 f1=i/f; f2=i/10.0; // OK! f1 = f2 = 
0.500000
Hằng số trong C
Phương pháp lập trình - Cơ bản
 Giá trị không đổi
suốt chương trình
 Hằng số có kiểu
dữ liệu
 Số nguyên
 Số thực
 Ký tự
 Chuỗi
 Khai báo hằng số
 #define 
 const
#define a 45 // int
#define b 125u // unsigned int
#define c 87l // long int
#define d 23ul // unsigned long int
#define e 057 // Cơ số 8
#define f 0xfee // Cơ số 16
#define g 3.14159 // float
#define h 314159E-5 // float
#define i 'a' // char
#define j "morning" // string
const int k = 2016;
const float l = 2.016;
const char m = '4';
const char n[] = "afternoon";
#define o 048 /* ERROR! Hệ cơ số 8
không có số 8 */
#define p 59E // ERROR!
#define q .E59 // ERROR!
19
Vận dụng
Phương pháp lập trình - Cơ bản20
 Đề bài 1: Hãy khai báo
 Một biến kiểu số nguyên
 Hai biến kiểu số thực
 Một biến kiểu ký tự
 Một biến kiểu luận lý
 Một hằng số PI = 3.15
 Một hằng số MAX = 100
 Đề bài 2: Hãy chuyển đổi kiểu dữ liệu cho biểu thức sau
 float x = 1/2;
 float y = (1/5)*x;
 int z = (x+5)*2;
Toán tử toán học
Phương pháp lập trình - Cơ bản
 Những phép toán học
Cho A = 5, B = 2
Toán tử Mô tả Ví dụ
+ Phép cộng A + B = 7
Phép trừ A B = 3
* Phép nhân A * B = 10
/ Phép chia A / B = 2
% Phép chia lấy phần dư A % B = 1
++ Cộng lên một số nguyên A++ = 6
-- Trừ đi một số nguyên B-- = 1
1. #include
2.
3. int main() 
4. {
5. int A=5, B=2, C; 
6. C = A + B;
7. C = A - B;
8. C = A * B;
9. C = B / A;
10. C = B % A;
11. A++;
12. B--;
13. getchar();
14. return 0;
15. }
21
Toán tử quan hệ
Phương pháp lập trình - Cơ bản
 Những phép so sánh
Cho A = 10, B = 20
Toán tử Mô tả Ví dụ
== Bằng nhau (A == B) sai
!= Khác nhau (A != B) đúng
> Lớn hơn (A > B) sai
< Nhở hơn (A < B) đúng
>=
Lớn hơn
hoặc bằng
(A >= B) sai
<=
Nhở hơn
hoặc bằng
(A <= B) đúng
#include 
int main()
{
int A=10, B=20;
if (A==B) printf("A = B");
if (A!=B) printf("A ≠ B");
if (A>B) printf("A > B");
if (A<B) printf("A < B");
if (A>=B) printf("A ≥ B");
if (A<=B) printf("A ≤ B");
return 0;
}
22
Toán tử luận lý
Phương pháp lập trình - Cơ bản
 Những phép toán luận lý
Cho A = 1, B = 0
Toán tử Mô tả Ví dụ
&&
Gọi toán tử AND, nếu cả hai toán hạng
điều đúng, kết quả phép toán là đúng
(A && B) 
Sai
||
Gọi toán tử OR, nếu cả hai toán hạng
đều sai, kết quả phép toán là sai
(A || B) Đúng
!
Gọi toán tử NOT, thực hiện phép phủ
định
!(A && B) 
Đúng
23
Toán tử trên bit
Phương pháp lập trình - Cơ bản
 Các phép toán trên bit
A 0 0 1 1
B 0 1 0 1
A & B 0 0 0 1
A | B 0 1 1 1
A ^ B 0 1 1 0
~A 1 1 0 0
~B 1 0 1 0
<< Cho a = 00110100, a<<2= 11010000
>> Cho a = 00110100, a>>2= 00001101
#include 
int main()
{
int a = 52; // 0011 0100
int b = 29; // 0001 1101
int c;
c = a & b; // 0001 0100
printf("%d & %d = %d\n", a, b, c);
c = a | b; // 0011 1101
printf("%d | %d = %d\n", a, b, c);
c = a ^ b; // 0010 1001
printf("%d ^ %d = %d\n", a, b, c);
c = ~a; // 1100 1011
printf("~%d = %d\n", a, c);
c = a << 2; // 1101 0000
printf("%d << 2 = %d\n", a, c);
c = a >> 2; // 0000 1101
printf("%d >> 2 = %d\n", a, c);
return 0;
}
24
Toán tử gán
Phương pháp lập trình - Cơ bản
 Các phép toán kết hợp với phép gán
Toán tử Mô tả Ví dụ
= Phép gán C = A + B
+= Phép cộng và gán C += A là C = C + A
-= Phép trừ và gán C -= A là C = C – A
*= Phép nhân và gán C *= A là C = C * A
/= Phép chia và gán C /= A là C = C / A
%= Phép chia lấy dư và gán C %= A là C = C % A
<<= Phép dịch trái và gán C <<= 2 là C = C << 2
>>= Phép dịch phải và gán C >>= 2 là C = C >> 2
&= Phép AND trên bit và gán C &= 2 là C = C & 2
^= Phép XOR trên bit và gán C ^= 2 là C = C ^ 2
|= Phép OR trên bit và gán C |= 2 là C = C | 2
25
Độ ưu tiên
Phương pháp lập trình - Cơ bản
 Các toán tử
được tính toán
theo thứ tự ưu
tiên như bảng
Category Toán tử
Postfix () [] -> . ++ - -
Unary + - ! ~ ++ - - (type)* & sizeof
Multiplicative * / %
Additive + -
Shift >
Relational >=
Equality == !=
Bitwise AND &
Bitwise XOR ^
Bitwise OR |
Logical AND &&
Logical OR ||
Conditional ?:
Assignment = += -= *= /= %=>>= <<= &= ^= |=
Comma ,
26
Các thư viện
Phương pháp lập trình - Cơ bản
 Các thư viện định nghĩa sẵn các hàm hay kiểu dữ liệu
 Cú pháp khai báo: #include 
 các hàm nhập xuất chuẩn, các thao tác với tập
tin
 getchar, putchar, printf, scanf, fopen, fclose, remove, rename
 các hàm chuyển đổi kiểu dữ liệu, cấp phát bộ
nhớ
 atof, atoi, atol, strtol, free, malloc, abs, rand, srand
 các hàm về toán học
 sqrt, pow, ceil, floor, trunc, abs, sin, cos
27
Các thư viện (2)
Phương pháp lập trình - Cơ bản28
 các hàm xử lý chuỗi ký tự
 strcpy, strcat, strlen, strstr, strcmp, strchr, memset
 các hàm xử lý ký tự
 toupper, tolower
 các hàm nhập xuất
 gets, puts, cin, cout
 các hàm xử lý về thời gian
 time, clock, localtime, difftime, time_t, struct tm
Hàm thường dùng ở thư viện stdio.h
Phương pháp lập trình - Cơ bản29
 Khai báo: #include 
 Hàm printf: Xuất ra màn hình
 Nguyên mẫu hàm: int printf(const char * format, ... );
 printf(“Hello world!”);
 printf(“a = %d.\n”, so_nguyen);
 Hàm scanf: Nhập dữ liệu từ bàn phím
 Nguyên mẫu hàm: int scanf( const char * format, ... );
 scanf("%d", &so_nguyen);
 scanf("%f", &so_thuc);
 scanf("%c", &ky_tu);
 Hàm gets: Nhập chuỗi từ bàn phím
 char name[50]; gets(name);
Hàm thường dùng ở thư viện stdlib.h
Phương pháp lập trình - Cơ bản30
 Khai báo: #include 
 Hàm rand: Tạo số nguyên ngẫu nhiên
 Nguyên mẫu hàm: int rand (void);
 a = rand(); // a có giá trị từ 0 đến 32767
 b = rand()%90; // b có giá trị từ 0 đến 89
 c = rand()%90 + 10; // c có giá trị từ 10 đến 99
 Hàm srand: Khởi tạo số ngẫu nhiên
 Nguyên mẫu hàm: void srand (unsigned int seed);
 Ví dụ:
 srand(time(NULL));
 d = rand() % 101 – 50;
Hàm thường dùng ở thư viện math.h
Phương pháp lập trình - Cơ bản31
 Khai báo: #include 
 Hàm sqrt: Tính căn bậc hai
 Nguyên mẫu hàm: double sqrt (double x);
 x = sqrt(9); // Căn bậc hai của 9
 y = sqrt(x + 1); // Căn bậc hai của x + 1
 Hàm pow: Tính lũy thừa
 Nguyên mẫu hàm: double pow (double base, double exponent);
 x = pow(3, 2); // ba mũ hai
 y = pow(x, 4); // x mũ bốn
 Hàm floor, ceil: Làm tròn
 z = floor(4.3); // z = 4.0
 w = ceil(4.3); // w = 5.0
Hàm thường dùng ở thư viện string.h
Phương pháp lập trình - Cơ bản32
 Khai báo: #include 
 Hàm strlen: Tính chiều dài của chuỗi
 Nguyên mẫu hàm: size_t strlen(const char * str)
 a = strlen(“hello”); // a = 5
 Hàm strcpy: Sao chép chuỗi
 Nguyên mẫu hàm: char * strcpy(char * dest, const char * src)
 char hello[50]; // Khai báo chuỗi
 strcpy(hello, “Hello ”); // hello = “Hello ”
 Hàm strcat: Nối chuỗi
 Nguyên mẫu hàm: char * strcat( char * dest, const char * src)
 char name[50] = “Tuan”;
 strcat(hello, name); // hello = “Hello Tuan!”
 Hàm strcmp: So sánh chuỗi
 Nguyên mẫu hàm: int strcmp( const char * str1, const char * str2 )
 a = strcmp(name, “Tuan”); // a = 0
Hàm thường dùng ở thư viện ctype.h
Phương pháp lập trình - Cơ bản33
 Khai báo: #include 
 Hàm tolower: Chuyển ký tự sang chữ thường
 Nguyên mẫu int tolower ( int c );
 char c = ‘N’; tolower(c); // c = ‘n’
 Hàm toupper: Chuyển ký tự sang chữ in
 Nguyên mẫu int toupper ( int c );
 char c = ‘n’; toupper(c); // c = ‘N’
 Các hàm kiểm tra ký tự
 isalnum(c): Trả về true (khác 0) nếu c là số hoặc chữ
 isalpha(c): Trả về true nếu c là chữ
 islower(c): Trả về true nếu c là chữ thường
 isupper(c): Trả về true nếu c là chữ in
Vận dụng
Phương pháp lập trình - Cơ bản34
 Đề bài 3: Cho trước một biến số nguyên x và một biến số
thực y, viết biểu thức tính z:
 z = 
(   )
 
 z = 
(   )
 
 z =
 (   )
 
(y khác không)
 z =   +  
 z =
   
 
+
   
 
 z =    +   
 z =    + (  +  ) 
Nhập dữ liệu
Phương pháp lập trình - Cơ bản35
 Chú ý nhập đúng kiểu dữ liệu
 Nhập số nguyên
 int a; scanf(“%d”, &a);
 Nhập số thực
 float b; scanf(“%f”, &b);
 Nhập ký tự
 char c; scanf(“%c”, &c);
 Nhập chuỗi ký tự
 char s[50]; 
 scanf(“%s”, &s); // Ký tự trắng kết thúc nhập liệu
 Có thể thay bằng scanf(“%[^\n]s”, &s); hoặc gets(s);
Ví dụ về nhập dữ liệu
Phương pháp lập trình - Cơ bản36
 Đề bài 4: Viết chương trình
nhập vào một số nguyên, một
số thực, một ký tự và một
chuỗi, xuất ra màn hình các giá
trị vừa nhập.
 Gợi ý:
 Khai báo
 Nhập dữ liệu
 Chú ý khai báo và nhập đúng
kiểu dữ liệu
#include 
int main()
{
int a;
float b;
char c;
char s[50];
scanf("%d", &a);
scanf("%f", &b);
scanf("%c", &c);
gets(s);
. . .
return 0;
}
Xử lý dữ liệu
Phương pháp lập trình - Cơ bản37
 Các phép tính toán
 Chú ý độ ưu tiên của các phép tính
 Chú ý sử dụng đúng các hàm toán học
 Ví dụ 1: Tính chu vi hình chữ nhật có chiều dài x và chiều
rộng y
 CV = (x + y)*2;
 Ví dụ 2: Tính khoảng cách giữa hai điểm A(xA, yA) và
B(xB, yB)
 KC = sqrt(pow(xA-xB,2) + pow(yA-yB,2));
Xuất dữ liệu
Phương pháp lập trình - Cơ bản38
 Chú ý xuất đúng kiểu
dữ liệu
 Xuất số nguyên
 printf(“%d”, a);
 Xuất số thực
 printf(“%f”, b);
 Xuất ký tự
 printf(“%c”, c);
 Xuất chuỗi ký tự
 printf(“%s”, s);
#include 
int main()
{
int a;
float b;
char c;
char s[50];
scanf("%d", &a);
scanf("%f", &b);
scanf("%c", &c);
gets(s);
printf("%d %f\n", a, b);
printf("%c \n%s", c, s);
return 0;
}
Ví dụ xuất ra màn hình
Phương pháp lập trình - Cơ bản
1. /* Practicing of printf */
2. #include 
3.
4. int main()
5. {
6. int year = 2016; // Khai báo biến
7. printf("Hello!\n\n The C ");
8. printf("programming language schedule:\n");
9. printf("1.Intro\n2.C language");
10. printf("\n3.Programming skills\n");
11. printf("4.Practices\n5.Examinations\n\n ");
12. printf("Lecturer: Dr. Ngo, %d",year);
13. return 0;
14. }
39
Định dạng biểu diễn dữ liệu
Phương pháp lập trình - Cơ bản
 %[flags][width][.precision][length]specifier
flags Mô tả
– Canh trái trong width
+ Buộc in dấu + hoặc –
(space) Ký tự trống trước dữ liệu
0 In số 0 trước dữ liệu
width Số ký tự tối thiểu được in ra
.precision Số ký tự sau dấu chấm động
length d i u o x 
(none) int unsigned int
hh signed char unsigned char
h short int unsigned short int
l long int unsigned long int
40
Định dạng biểu diễn dữ liệu
Phương pháp lập trình - Cơ bản
specifier Kết quả Ví dụ
%d, %i Số nguyên có dấu -95, 23
%u Số nguyên không dấu 7235
%o Số bát phân không dấu 610
%x, %X Số thập lục phân không dấu 7fa, 7FA
%f, %F Số thực 392.65
%e, %E Ký hiệu khoa học 3.92e+2, 3.92E+2
%c Ký tự a
%s Chuỗi ký tự laptrinh
%p Địa chỉ con trỏ b8000000
%% In dấu % %
%a, %A Số thập lục phân kiểu thực 0xb.f3p-2, 0XB.F3P-2
%g, %G Dạng ngắn của %e, %E hoặc %f,%F 392.65
41
 %[flags][width][.precision][length]specifier
Ví dụ biểu diễn dữ liệu
Phương pháp lập trình - Cơ bản
1. #include 
2. int main()
3. {
4. printf ("Ky tu: %c %c \n", 'a', 65);
5. printf ("So nguyen: %d \n", 1977);
6. printf ("Khoang trong: %10d \n", 1977);
7. printf ("So khong: %010d \n", 1977);
8. printf ("%d %x %o %#x %#o\n",100,100,100,100,100);
9. printf ("So thuc: %.2f\n", 3.1416);
10. printf ("%s\n", "Mot chuoi");
11. return 0;
12.}
Ky tu: a A
So nguyen: 1977
Khoang trong: 1977
So khong: 0000001977
100 64 144 0x64 0144
So thuc: 3.14
Mot chuoi
42
Mã escape
Phương pháp lập trình - Cơ bản
Escape 
code
Description
\n newline
\r carriage return
\t tab
\v vertical tab
\b backspace
\f form feed (page feed)
\a alert (beep)
\' single quote (')
\" double quote (")
\? question mark (?)
\\ backslash (\)
 Mã escape dùng để đại diện
cho những ký tự đặc biệt hoặc
những chuỗi, thao tác khó
trình bày trực tiếp
 Mã escape được đặt trong
chuỗi định dạng của lệnh
printf
 Ví dụ: printf(“A\tB\n”);
43
Bài tập vận dụng
Phương pháp lập trình - Cơ bản44
 Đề bài 5: Viết chương trình nhập vào số ngày công (số
nguyên), tính lương theo công thức: 
 Lương = số ngày công x lương công nhật
 Trong đó lương công nhật là hằng số = 120’000 
 Đề bài 6: Viết chương trình nhập vào hai số x và y, tính
   
 
+ 3(  + 4) 
 Đề bài 7: Viết chương trình tính khoảng cách hai điểm A, 
B.
 Đề bài 8: Viết chương trình nhập vào ba cạnh của một tam 
giác, tính diện tích và chu vi của hình tam giác ấy.
Kết thúc Bài 2
Phương pháp lập trình - Cơ bản
 Giới thiệu ngôn ngữ lập trình C
 Trình biên dịch/thông dịch
 Cấu trúc chương trình
 Định dạng trong C
 Biến, kiểu dữ liệu
 Hằng số, từ khóa, toán tử
 Thư viện
 stdio.h, stdlib.h, math.h, string.h, ctype.h, time.h
 Nhập xuất căn bản
 Nhập: scanf, cin, gets
 Xuất: printf, cout, puts
45
            Các file đính kèm theo tài liệu này:
 bai_giang_phuong_phap_lap_trinh_ts_ngo_huu_dung_2_phuong_phap_lap_trinh_co_ban_1476_1985348.pdf bai_giang_phuong_phap_lap_trinh_ts_ngo_huu_dung_2_phuong_phap_lap_trinh_co_ban_1476_1985348.pdf