Tải bản đầy đủ (.pdf) (73 trang)

Bài giảng Tin học đại cương - Chương 2: Ngôn ngữ lập trình C

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.92 MB, 73 trang )

TIN HỌC ĐẠI CƯƠNG
Chương 2: Ngôn ngữ lập trình C



1


Nội dung
1. Các khái niệm cơ bản
2. Các kiểu dữ liệu
3. Các lệnh điều khiển
4. Bài tập thực hành



2


Giới thiệu
 Năm 1970 Ken Thompson sáng tạo ra ngôn ngữ B (Basic
Combined Programming Language) trên môi trường HĐH Unix
của máy DEC PD-7
 Năm 1972 Dennis Ritchie ở Bell Labotories cùng Ken Thompson
sáng tạo ra ngôn ngữ C nhằm tăng hiệu quả cho ngôn ngữ B.
 Ngôn ngữ C nhanh chóng phổ biến rộng rãi và được sử dụng để
viết nên HĐH đa nhiệm UNIX, O/S 2, và ngôn ngữ Dbase.
 Phát triển thành C++ vào năm 1983 hỗ trợ lập trình hướng đối
tượng
 Có nhiều trình biên dịch C khác nhau
 Turbo C (từ ver 1 tới ver 3), Microsoft C (ver 1 tới ver 6)


 C++ với 3 trình biên dịch nổi tiếng Borland C++, Visual C++,
và Turbo C++
 Chúng ta sẽ sử dụng:
 Borland C++ 5.02 hoặc Free C++ hoặc Dev C++


3


Tập ký tự
 Mọi ngôn ngữ đều được xây dựng trên 1 bộ ký tự. Bộ
ký tự trong C gồm:
- Các chữ cái in hoa: A, B, C,....,Z
- Các chữ cái thường: a, b, c,...,z
- Các chữ số: 0, 1,2,...,9
- Các loại dấu chấm câu . ! ? : ;
- Các dấu toán học: + , - , * , / , %, >, <, =, ( , )
- Các dấu đặc biệt: @, #, &, A, $ { , } , [, ], \, |
- Các ký tự không nhìn thấy: Space, Enter, Tab
- Dấu gạch dưới _



4


Từ khóa






Là các từ dùng riêng cho ngôn ngữ
Từ khoá phải được dùng đúng cú pháp quy định
Mọi từ khoá đều viết thường (không viết in hoa)
Các từ khoá thường gặp.



5


Tên và cách đặt tên






Dùng để định danh các thành phần của chương trình
Tên biến, tên hàm, tên hằng, file, cấu trúc...
Gồm chữ số dấu gạch nối “_”
Độ dài tối đa 32
Lưu ý:
- không đuợc chứa kí tự trống (space)
-

không được bắt đầu bằng một chữ số
không được trùng với từ khóa
Không đặt tên ở dạng số mũ hoặc chỉ só (vd: H2SO4)

Không đặt tên với ký tự tiếng việt (vd: SốMaX, TổngChẵn...v.v)

 Nên đặt tên một cách gợi nhớ có ý nghĩa.
 Tên chuẩn: một số tên có sẵn của trình biên dịch.
 C là ngôn ngữ phân biệt viết hoa, viết thường


6


Hằng, Biến, Biểu thức
Hằng:

- Là đại lượng có giá trị không thay đổi được
- Ví dụ:
• 124 Là một hằng số
• ‘D’ Là một hằng ký tự
• “Lap trinh” Là một hằng chuỗi ký tự

Biến
-

Là đại lượng có thể thay đổi được giá trị (gán giá trị mới)

Biểu thức
-

Là công thức tính toán để có 1 giá trị theo quy tắc toán học
Gồm các toán hạng và các phép toán (toán tử)
• Toán hạng: hằng, biến, hàm hoặc biểu thức khác.

• Phép toán: Số học, luận lý, gán, điều kiện, lấy địa chỉ, tăng giảm



7


Các phép toán C hỗ trợ








Số học: + , - , * , / , %
Luận lý: ==, !=, >, <, >=, <=, &&, ||, !
Gán giá trị: =
Lấy kích cỡ theo số byte: sizeof(đốitượng)
Điều kiện: ĐK ? E1 : E2
Lấy địa chỉ: &(biến)
Tăng giảm: x++, ++x, x--, --x
tong+=i;
tich*=i;
%= , /= , -=, &=, |=, ^=



8



Các hàm toán học thông dụng
Chỉ thị tiền biên dịch:
#include <math.h>

• Các biểu thức phức tạp phải sử dụng biến đổi toán học
để có được biểu diễn tương ứng trong C.


9


Khai báo hằng
Cú pháp

#define TÊNHẰNG giátrị
hoặc
const kiểudữliệu TÊNHẰNG = giátrị;

Ví dụ
#define MAX 100 const int SOPT = 100;

Lưu ý: hằng phải được khai báo trước khi sử
dụng



10



Khai báo biến
• Cú pháp
Kiểudữliệu TÊNBIẾN;
Kiểudữliệu Biếnl, Biến2;
Kiểudữliệu TÊNBIẾN = giátrịbanđầu;

• Ví dụ

int sole;
float tbc, tong;
char Enter = '\n';

• Lưu ý: Biến có thể khai báo bất kỳ đâu trong
chương trình miễn là trước khi sử dụng.


11


Phép gán giá trị
• Cú pháp
TênBiến = Biểu thức giá trị ;

• Ví dụ:
int x, y, z;
x=0;
50=x; //sai
3+y=x; //sai
Z=x+y;

x+y=z; //sai



12


Câu lệnh, Chú thích
Câu lệnh: Là một chỉ thị yêu cầu máy tính thực thi một
tác vụ nào đó. Một câu lệnh phải kết thúc bởi một dấu
chấm phẩy “;”
Chú thích:
• Trên 1 dòng: // Chú thích trên một dòng
• Trên nhiều dòng:
/*
Chú thích trên nhiều dòng.

*/
Các chỉ thị tiền biên dịch:



13


Cấu trúc 1 chương trình C
#include <stdio.h>
#include <conio.h>
const int MAX=100; //khai bao hang
float X, y, z;//khai bao bien

void nhapSL();
void inKQ();
float max2so(int, int) ;
int main(void) {
nhapSL();
z = max2so(x, ỵ) ;
inKQ();
getch();
return 0;
}
void nhapSL (){
printf("Nhap X va y:”);
scanf("%f%f", &x, &y);

}
void inKQ() {
printf(“So lon nhat = %.2f", z);

}


float max2so(int a, int b)(
return a>b? a:b;
}

14


Một số quy tắc cần nhớ
• Đặt tên biến, hằng, hàm,... một cách gợi nhớ

• Khi sử dụng biến, hằng cần kiểm tra lại xem biến hằng đó đã
được khai báo trước đó hay chưa ?
• C là ngôn ngữ phân biệt hoa/thường => phải kiểm tra kỹ từng ký
tự khi viết
• Loại bỏ các chỉ thị #include <file *.h> không cần thiết (để lại sẽ
làm chậm quá trình biên dịch và tăng kích thước file *.exe sau
biên dịch)
• Viết chương trình theo cấu trúc khối (phân cấp thụt đầu dòng)
• Chương trình viết xong chưa thể biết được đúng hay sai => phải
chạy thử với các bộ số liệu khác nhau (nên test thử với các bộ số
liệu đặc biệt)



15


Các kiểu dữ liệu trong C
• Các kiểu dữ liệu cơ bản
-

Số
Ký tự
Chuỗi ký tự
Mảng

• Ép kiểu trong C
• Nhập xuất dữ liệu trong C




16


Các kiểu dữ liệu cơ bản
• Kiểu số:



17


Các kiểu dữ liệu cơ bản
• Kiểu ký tự:

• Ví dụ:

- Ký tự 'A' có mã 65
- Ký tự '0' có mã 48

• Các ký tự đặc biệt:

'\0‘ : ký tự Null (có mã = 0) ký tự
'\n‘ : xuống dòng (new line) ký tự
'\t‘ : Tab



18



Các kiểu dữ liệu cơ bản (tt)
Kiểu chuỗi (xâu ký tự)
- Một dãy các ký tự đứng liền nhau được gọi là 1 xâu
ký tự.
- Ngôn ngữ C hiểu ký tự ‘\0’ là ký tự kết thúc xâu
=>Chỉ lưu biết địa chỉ cua ký tự đầu tiên của chuỗi
- Một hằng xâu ký tự đặt trong cặp dấu “nháy kép”
Ví dụ:
“Ho Chi Minh” là hằng xâu ký tự

Khai báo biến xâu: char tênbiếnxâu[số byte];auu


19


Kiểu mảng - Array
Định nghĩa:
- Mảng là một kiểu dữ liệu có cấu trúc do
người lập trình định nghĩa
- Dùng biểu diễn các đối tượng dữ liệu ở dạng
một dãy các thành phần có cùng kiểu với
nhau (kiểu cơ sở)
- NNLT C luôn chỉ định một khối nhớ liên tục
cho một biến kiểu mảng
- Kích thước của mảng được xác định ngay
khi khai báo và không bao giờ thay đổi



20


Khai báo array trong C
Khai báo:
kiểucơsở TênBiến[Sốphầntử];

Ví dụ:
• int a[100];
//a là mảng biểu diễn dãy gồm 100 số nguyên int
• float b[10];
• long int big[100];
• double d[100];
• long double v[SIZE];
• int a[5] = { 10, 20, 30, 40, 50};
• double d[] = { 1.5, 2.7};



21


Kiểu array – Lưu ý
Các thành phần của mảng được truy xuất thông qua
chỉ số của chúng 0..n-1
Thao tác truy xuất không kiểm tra giới hạn của chỉ số



22



Ép kiểu (casting)
Cú pháp
• (kiểu_mới) biểu thức hoặc kiểu_mới (biểu thức)

Ví dụ:



23


Xuất/Nhập dữ liệu
Xuất dữ liệu
– In ra màn hình
– Xuất ra máy in
– Xuất ra các cổng

Nhập dữ liệu
– Nhập từ bàn phím
– Nhập từ file
– Nhập từ các cổng



24


Xuất ra màn hình – Hàm printf

Thuộc thư viện “stdio.h”
Cú pháp:
printf(“Xâu điều khiển”[, danh sách tham số]);

Ví dụ:



25


×