LẬP TRÌNH C CHO
NGƯỜI MỚI HỌC
Giảng viên: Thạc sĩ Trần Thanh Sơn
Trường Đại Học Khoa Học Tự Nhiên
GIỚI THIỆU MÔN HỌC
• CUNG CẤP KIẾN THỨC NỀN CHO NGƯỜI MỚI BẮT ĐẦU.
• LÀM QUEN VỚI NGÔN NGỮ LẬP TRÌNH
• LẬP TRÌNH MỘT SỐ BÀI ĐƠN GIẢN
2
TÀI LIỆU THAM KHẢO
• GS. Phạm Văn Ất, Giáo Trình Kỹ Thuật Lập Trình C - Căn Bản &
Nâng Cao, NXB Hồng Đức, 2009
• Trần Đan Thư – Giáo trình lập trình C tập 1-2, NXB Đại Học Quốc Gia
TP.HCM
• Giáo trình Lập trình C căn bản của Apptech.
3
CHƯƠNG 1: LÀM QUEN VỚI NGÔN NGỮ LẬP TRÌNH
I. GIỚI THIỆU VỀ NGÔN NGỮ LẬP TRÌNH.
II. DEMO PROJECT MẪU (MÔI TRƯỜNG VISUAL STUDIO 2013)
III. CẤU TRÚC CỦA CHƯƠNG TRÌNH
IV. CÁC KIỂU DỮ LIỆU CƠ BẢN.
V. CÁC BƯỚC LẬP TRÌNH
VI. CÁC HÀM NHẬP XUẤT CHUẨN
4
I.
GIỚI THIỆU VỀ NGÔN NGỮ LẬP TRÌNH
1. Thuật toán
2. Chương trình
3. Ngôn ngữ lập trình
5
1. Thuật toán (Algorithm)
• Định nghĩa: Là một dãy các thao tác xác định trên một đối tượng, sao cho
sau khi thực hiện một số hữu hạn các bước thì đạt được mục tiêu. Theo
R.A. Kowalski thì bản chất của thuật toán:
Thuật toán = Logic + Điều khiển.
6
Logic và điều khiển
• Logic: Để làm gì, giải quyết vấn đề gì? Những yếu tố trong bài toán có
quan hệ với nhau như thế nào …vv. Gồm cả kiến thức chuyên môn.
Ví dụ: tính diện tích hình cầu
• Điều khiển: Giải thuật phải làm như thế nào? Cách thức tiến hành áp
dụng phần logic.
7
2. Chương trình (Program)
• Định nghĩa: Là một tập hợp các mô tả, các phát biểu, nằm trong một hệ
thống qui ước về ý nghĩa và thứ tự thực hiện, nhằm điều khiển máy tính
làm việc. Theo Niklaus Wirth thì:
Chương trình = Thuật toán + Cấu trúc dữ liệu
• Các thuật toán và chương trình có 3 cấu trúc điều khiển cơ bản: Tuần tự
(Sequential), Chọn lọc (Selection), Lặp lại (repetition)
8
3. Ngôn ngữ lập trình (Programming language)
• Định nghĩa: là hệ thống các ký hiệu tuân theo các qui ước về ngữ pháp và
ngữ nghĩa, dùng để xây dựng thành các chương trình cho máy tính.
• Ngôn ngữ nào cũng có 3 thành phần: Tập ký tự, từ khóa và tên.
9
II. DEMO PROJECT MẪU
• Xuất ra màn hình câu “This is my first project”
• Môi trường lập trình: Visual Studio 2013.
10
III. CẤU TRÚC CHƯƠNG TRÌNH
# include “stdio.h”
# include “conio.h”
/* Chương trình in 1 câu */
Void main ()
{
printf (“This is my first project”);
_getch (); // Đợi nhấn 1 phím
}
Phần khai báo
/* */ là đoạn chú thích hoặc //, không biên dịch.
Phần chương trình chính
11
1. Tập ký tự
•
•
•
•
•
•
26 chữ cái hoa: A B C …Z
26 chữ cái thường: a b c … z
10 chữ số: 1 2 3 …9
Ký hiệu toán học: + - * / = ()
Ký tự gạch nối: _ (phân biệt với dấu -)
Các ký tự đặc biệt: .,:: []{}? ! \ & | % # $, dấu cách (space)
12
2. Từ khóa
asm
break
case
cdecl
char
const
continue
default
do
double
else
enum
extern
far
float
for
goto
huge
if
int
interrupt
long
near
pascal
register
return
short
signed
sizeof
static
struct
switch
typedef
union
unsigned
void
volatile
while
13
3. Tên
• Dùng xác định đối tượng khác nhau của chương trình bao gồm: tên hằng,
tên biến, tên mảng, tên hàm, tên con trỏ, tên tập tin, tên cấu trúc….
• Quy tắc đặt tên:
Tên là 1 dãy kí tự: chữ, số và dấu gạch nối. Ký tự đầu phải là chữ hoặc là dấu
gạch nối.
Độ dài tối đa là 32
Không trùng với từ khóa
14
Ví dụ tên biến
Các tên đúng: delta, a_1, Num_ODD, Case
Các tên sai:
• 3a_1 (ký tự đầu là số)
• num-odd (sử dụng dấu gạch ngang)
• int (đặt tên trùng với từ khóa)
• del ta (có khoảng trắng)
• f(x) (có dấu ngoặc tròn)
15
IV. CÁC KIỂU DỮ LIỆU CƠ BẢN
1. Các kiểu dữ liệu và phạm vi
Kiểu
Phạm vi
Kích thước
char
0 .. 255
1 byte
int
long
unsigned
float
double
-32768 .. 32767
2 bytes
-2147483648 .. 2147484647
4 bytes
0
.. 65535
2 bytes
3.4e-38
.. 3.4e+38
4 bytes
1.7e-308
.. 1.7e+308
8 bytes
16
Kiểu logic (Kiểu nguyên đặc biệt)
• Nhận 2 giá trị: Đúng (True) hoặc 1 và Sai (False) hoặc 0
• Ta có thể sử dụng các phép logic and (&&), or (||), not (!)
a
Khác 0
0
!a
0
1
a
Khác 0
Khác 0
0
b
Khác 0
0
Khác 0
a && b
1
0
0
0
0
0
a||b
1
1
1
0
17
2. Khai báo biến
<Kiểu dữ liệu> <Tên biến> [ = <Giá trị>];
Giá trị của biến có thể được khởi gán khi khai báo.
Ví dụ:
• int i, j, k=10;
• float f;
• char ch, ch1 = ‘A’, ch2 = ‘\n’;
18
Hằng tượng trưng:
3. Khai báo hằng
# define <tên hằng> <giá trị>
Ví dụ:
# define MAX 100;
# define ECHO "DH KHTN TPHCM";
Hằng biến:
const <tiên kiểu> <tên hằng>=<giá trị>;
Ví dụ :
const long MAX = 100L;
const char ECHO[30] = "DHKT TPHCM";
19
4. Biểu thức (1/4)
•
•
•
•
•
Các phép toán số học: +, -, *, /, %
Các phép toán quan hệ: >, <, >=, <=, ==, !=
Các phép toán logic: &&, ||, !
Các phép toán thao tác bit: &, |, ^, <<, >>, ~
Phép toán tăng giảm: ++, --
Phân biệt: ++n; và n++;
20
4. Biểu thức (2/4)
• Toán tử gán:
< Biến > = < Biểu thức >;
• Biểu thức gán:
< Biến > = < Biểu thức >
Ví dụ: int a = b =7;
• Biểu thức rút gọn:
• < Biến > = < Biến > < op > < Biểu thức >
• < Biến > < op > = < Biểu thức >
Ví dụ: i = i + exp;
=>
i += exp;
21
4. Biểu thức (3/4)
• Biểu thức điều kiện: BT1 ? BT2 : BT3
Ví dụ:
max = (a>b)? a: b;
• Phép toán lấy địa chỉ biến: & < Biến>
Ví dụ:
int n;
scanf (“%d”, &n);
22
4. Biểu thức (4/4)
• Phép ép kiểu: (<Kiểu>) <Biểu thức>
Ví dụ: int n = (int) 10.24;
• Thứ tự ưu tiên của các toán tử
23
Toán tử
•
•
•
•
•
•
•
•
•
•
•
•
Thứ tự kết hợp
(), [], ->
Trái sang phải
~, ++, --, (type)
Phải sang trái
*, /, %
Trái sang phải
+, -
Trái sang phải
<<, >>
Trái sang phải
<, <=, >, >=
Trái sang phải
&
Trái sang phải
|
Trái sang phải
^
Trái sang phải
&&
Trái sang phải
||
Trái sang phải
==, !=, +=, -=
Phải sang trái
24
V. CÁC BƯỚC LẬP TRÌNH
•
•
•
•
•
Bước 1: Phân tích vấn đề và xác định các đặc điểm. (xác định I-P-O)
Bước 2: Lập ra giải pháp. (đưa ra thuật giải)
Bước 3: Cài đặt. (viết chương trình)
Bước 4: Chạy thử chương trình. (dịch chương trình)
Bước 5: Kiểm chứng và hoàn thiện chương trình. (thử nghiệm bằng nhiều
số liệu và đánh giá)
25