Tin học cơ sở 3
(NGƠN NGỮ
LẬP TRÌNH C)
Tài liệu
• Phạm Văn Ất, Kỹ thuật lập trình C Cơ sở và
nâng cao, NXB Giao thơng Vận tải, 2006.
• Bùi Thế Duy, Lập trình căn bản với C, NXB
Đại học Quốc gia Hà nội, 2012.
2
Bài 1: Tổng quan về ngơn ngữ lập trình
C
• Ngơn ngữ C có một số các đặc điểm nổi
bật sau :
– C là ngơn ngữ lập trình có cấu trúc và phân
biệt chữ Hoa – chữ thường.
– Một chương trình C bao giờ cũng gồm một
hoặc nhiều hàm và các hàm rời nhau.
3
I. Hướng dẫn cài đặt môi trường kết hợp Dev C
1. Download bản Dev C++ 4.9.9.2 full
2. Cài đặt: Chạy file cài đặt DEV-C++ (file
devcpp.exe)
3. Vào menu "Tools" chọn "Compiler Options".
-
-
Vào tab "Settings" tab, nhấn vào "Linker"
ở khung bên trái và thay đổi thông số
"Generate debugging information" sang
"Yes":
Nhấn OK
4
II. Hướng dẫn sử dụng môi trương kết hợp Dev C
1. Khởi động
2. Mở File
Mở file mới : File -> New -> Source File
Mở file đã có: File -> Open
3. Ghi File
File\ Save (Ctrl+S) : Ghi tệp mới đang soạn thảo
vào đĩa
File\ Save as : Ghi tệp đang soạn thảo vào đĩa
theo tên mới hoặc đe lên tệp đã có
5
• Chạy một chương trình
– Biên dịch: Execute\ Compile (Ctrl+F9)
– Thực thi chương trình: Execute\ Run
(Ctrl+F10)
• Thốt khỏi Dev C
– Thoát hẳn khỏi C: File \ Exit
6
III. 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: Input-PprocessOutput (Quy trình nhập-xử lý-xuất))
• Bước 2: Đưa 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: Dịch chương trình
• Bước 5: Chạy kiểm chứng và hồn thiện
chương trình. (thử nghiệm bằng nhiều số liệu
và đánh giá)
7
III. Các bước lập trình
• Ví dụ
– Thuật tốn giải PT bậc nhất: ax + b = 0
(a, b là các số thực).
Đầu vào: a, b thuộc R
Đầu ra: nghiệm phương trình ax + b = 0
• Nếu a = 0
• b = 0 thì phương trình có nghiệm bất kì.
• b ≠ 0 thì phương trình vơ nghiệm.
• Nếu a ≠ 0
• Phương trình có nghiệm duy nhất x = -b/a
Sử dụng lưu đồ - sơ đồ khối
Bắt đầu
Đọc a,b
Đ
S
a=0
Đ
S
Tính
x = -b/a
b=0
Xuất
“Vô số nghiệm”
Xuất
“Vô nghiệm”
Kết thúc
Xuất x
Sử dụng mã giả
• Vay mượn ngơn ngữ nào đó để biểu diễn
thuật toán.
Đầu vào: a, b thuộc R
Đầu ra: nghiệm phương trình ax + b = 0
If a = 0
If b = 0
Xuất “Phương trình vơ số nghiệm”
Else
Xuất “Phương trình vơ nghiệm”
Else
Xuất “Phương trình có nghiệm x = -b/a”
Bài tập
Xác định Input, Process, Output của các chương
trình sau:
1. Đổi từ tiền VND sang tiền USD.
2. Tính điểm trung bình của học sinh gồm các mơn
Tốn, Lý, Hóa.
3. Giải phương trình bậc 2: ax2 + bx + c = 0
4. Kiểm tra 2 số a, b giống nhau hay khác nhau.
11
IV. Giới thiệu ngơn ngữ lập trình C
1. Các thành phần của NNLT C
– Tập các ký tự
•
•
•
•
•
Chữ cái: A .. Z, a .. z
Chữ số Ả rập: 0..9
Ký hiệu toán học :
+-*/=()
Ký tự gạch nối: _
Các ký hiệu đặc biệt khác như : . , ; : [ ] { } ? ! \ & | % # $,…
– Từ khóa là các từ dành riêng trong ngơn ngữ.
=> Khơng thể sử dụng từ khóa để đặt tên cho biến, hàm, tên chương trình
con (tồn tại dưới dạng hàm, khơng tồn tại dưới dạng thủ tục).
• Char, do, int, float, for, do, While,…
– Tên file (tệp)
• Tên file là một dãy ký tự dùng để chỉ tên.
• Tên tệp được tạo thành từ các chữ cái và các chữ số , nhưng bắt buộc
chữ đầu phải là chữ cái hoặc dấu _.
• Số ký tự tối đa của một tên là 255 ký tự, và khơng cho phép có khoảng
trắng.
12
• Ví dụ tên tệp
– Các tên hợp lệ: GiaiPhuongTrinh, Bai_Tap1
– Các tên không hợp lệ: 1A, Giai Phuong Trinh
– Tên cũng phân biệt chữ hoa chữ thường, do đó
các tên sau đây khác nhau:
• BaiTap khác baitap, …
Giới thiệu ngơn ngữ lập trình C
V. Cấu trúc một chương trình trong NNLT C
• Một chương trình thường là tập hợp các câu lệnh, có thể có
hoặc khơng có các ghi chú.
• Trong C, ghi chú được đặt giữa cặp /* và */, nếu chú thích
cho dịng dùng 2 dấu //
• Chương trình cịn có thể có các chỉ dẫn tiền biên dịch (được
thực hiện trước khi chương trình được biên dịch, VD: chỉ dẫn
#include để khai báo sử dụng thư viện.
14
Cấu trúc chương trình C
#include “…”
int main()
{
int x;
int Nhap();
…
}
// Khai báo thư viện
// Hàm chính
// Khai báo biến hàm
// Khai báo hàm
// Các lệnh
Chú ý:
Các từ include, stdio.h, void, main, printf,…
phải viết bằng chữ thường.
Chuỗi trong nháy kép là chuỗi cần in ra "Bạn có
thể viết chữ HOA, thường tùy ý".
Kết thúc câu lệnh phải có dấu chấm phẩy (;).
Kết thúc tên hàm khơng có dấu chấm phẩy hoặc
bất cứ dấu gì.
Ghi chú phải đặt trong cặp /* …. */, hay //
Thân hàm phải được bao bởi cặp { }.
16
Ví dụ
#include <stdio.h>
#include <conio.h>
int main()
{
int x, y, tong;
printf(“Nhap hai so nguyen: ”);
scanf(“%d %d”, &x, &y);
tong = x + y;
printf(“Tong hai so la %d”, tong);
getch();
}
Giới thiệu ngơn ngữ lập trình C
Một số thư viện trong Dev C
- stdio.h : Chứa các hàm vào/ ra chuẩn (standard
input/output). Gồm:
printf(), scanf(), getc(), putc(), gets(), puts(), …
+ Lệnh printf: dùng để in ký tự ra màn hình.
+ lệnh scanf: dùng để nhập giá trị vào cho biến.
- conio.h : Chứa hàm getch(), getche(), putch(), …
-math.h: Thư viện chứa các hàm tính tốn gồm các hàm
abs(), sqrt(), log(),…
- windows.h: Chứa hàm xóa màn hình: system(“cls”),…
-String.h: Chứa các hàm về chuỗi: Char,…
Giới thiệu ngôn ngữ lập trình C
&&
VC
VC
BB
BB
Bài 2. Các kiểu dữ liệu cơ sở
C có 4 kiểu cơ sở như sau:
Kiểu số nguyên (int): giá trị của nó là các số
nguyên như : -2, 10,…
Kiểu số thực(float): giá trị của nó là các số
thực như 3.14, 29.12, -17.06, …
Kiểu logic(bool): giá trị đúng hoặc sai.
Kiểu ký tự(char): 256 ký tự trong bảng mã
ASCII.
Các kiểu dữ liệu cơ sở
1
&&
VC
VC
BB
BB
Kích thước của các kiểu dữ liệu cơ sở
Các kiểu dữ liệu cơ sở
2
&&
VC
VC
BB
BB
1. Kiểu Logic (bool)
Đặc điểm
C ngầm định một cách khơng tường minh:
• false (sai): giá trị 0.
• true (đúng): giá trị khác 0, thường là 1.
Ví dụ
1 > 2 => trả về (0, false),
1 < 2 => trả về (1, true)
Các kiểu dữ liệu cơ sở
2
&&
VC
VC
BB
BB
2. Kiểu ký tự (char)
Đặc điểm
Tên kiểu: char
Miền giá trị: 256 ký tự trong bảng mã ASCII.
Kiểu ký tự chính là kiểu số ngun do:
• Lưu tất cả dữ liệu ở dạng số.
• Khơng lưu trực tiếp ký tự mà chỉ lưu mã ASCII của
ký tự đó.
Ví dụ
Lưu số 65 tương đương với ký tự ‘A’…
Lưu số 97 tương đương với ký tự ‘a’.
Các kiểu dữ liệu cơ sở
2
&&
VC
VC
BB
BB
3. Biến
Cú pháp khai báo biến
<kiểu> <tên biến>;
<kiểu> <tên biến 1>, <tên biến 2>;
Ví dụ
int i;
int j, k;
char dem;
float ketqua, delta;
Các kiểu dữ liệu cơ sở
2
&&
VC
VC
BB
BB
4.Hằng số
Cú pháp khai báo
<kiểu> <tênhằng> = <giá trị>;
Ví dụ
int a = 1506;
float d = 15.06;
Các kiểu dữ liệu cơ sở
2
&&
VC
VC
BB
BB
4.Hằng số
Cú pháp định nghĩa
#define <tênhằng> <giá trị>
hoặc sử dụng từ khóa const.
Ví dụ
#define MAX 100
#define PI 3.14
const int MAX = 100;
const float PI = 3.14;
//hoặc
Các kiểu dữ liệu cơ sở
2