1. Trang chủ
  2. » Vật lý

Bài giảng Cơ sở lập trình

20 9 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

[r]

(1)

TRƯỜNG ĐẠI HỌC PHẠM VĂN ĐỒNG KHOA CÔNG NGHỆ THÔNG TIN

TRẦN TẤN TỪ

BÀI GI

NG

(Dùng cho sinh viên l

p

đạ

i h

c Công ngh

thông tin,

đạ

i h

c S

ư

ph

m tin h

c)

(2)

L

I NĨI

ĐẦ

U

Cơ sở lập trình học phần giúp cho sinh viên nắm kiến thức để cài đặt thành cơng thuật tốn thành chương trình ngơn ngữ lập trình C Qua đó, trang bị cho sinh viên kiến thức để tiếp cận học tập tốt ngôn ngữ lập trình khác học kỳ

Bài giảng biên soạn giảng dạy cho sinh viên năm thứ nhất, bậc đại

học ngành Công nghệ thông tin ngành Sư phạm tin học kể từ năm 2008, theo hình thức đào tạo niên chế Hiện chương trình đào tạo Trường Đại học Phạm Văn Đồng chuyển đổi sang đào tạo theo học chế tín Chính vậy, giảng chỉnh sửa, bổ sung cho phù hợp với hình thức đào tạo theo học chế tín

Cũng nhân xin chân thành cám ơn hội đồng chuyên môn khoa Công

nghệ thông tin, Th.S Huỳnh Triệu Vỹ Th.S Võ Đức Lân dành thời gian đọc

đóng góp nhiều ý kiến quý báu để giảng hoàn chỉnh hơn, đáp ứng nhu cầu

học tập sinh viên Khoa Công nghệ thông tin - Trường Đại học Phạm Văn Đồng

Bài giảng khơng tránh khỏi thiếu sót, mong bạn đồng nghiệp

đóng góp ý kiến để giảng hoàn thiện lần chỉnh sửa sau

Xin chân thành cám ơn quý thầy cô, bạn đồng nghiệp !

(3)

Bài ging Cơ s lp trình -1-

CH

ƯƠ

NG 1:

CÁC THÀNH PH

N C

Ơ

B

N

Mc tiêu

Kết thúc chương, sinh viên có thể:

Nm được thành phn cơ bn ca ngôn ng lp trình C: b ký hiu, tkhóa, tên cách đặt tên, cách ghi li thích

Nm được cu trúc chung ca mt chương trình C

Hiu vn dng được phép toán, hàm đã được xây dng cho kiu d liu cơ s: kiu s nguyên, kiu s thc, kiu ký t, kiu boolean 1.1B ký hiu t khóa

1.1.1 B ký hiu

- 26 chữ la tinh hoa: A, B, …, Z - 26 chữ la tinh thường: a, b, …, z - 10 chữ số thập phân: 0,1,…,9

- Các ký hiệu toán học: +, -, *, /, = <, >, (, )

- Các ký hiệu đặc biệt: , ; “ ‘ _ @ # $ ! ^ [ ] { } … - Dấu cách hay khoảng trống

1.1.2 T khóa

Là từ dùng riêng ngôn ngữ lập trình C từ khóa có ý nghĩa tác dụng cụ thể

* Chú ý:

- Khơng thểđịnh nghĩa lại từ khóa

- Các từ khóa C viết dạng chữ thường

Mt s t khóa thơng dng hay dùng ngơn ng lp trình C

auto break case char continue default double else extern float for goto if int long register return short sizeof static struct switch typedef union usnigned void volatile while asm … 1.1.3 Tên cách đặt tên

Trong chương trình, người lập trình dùng nhiều tên: tên chương trình, tên biến, tên hằng, tên hàm,… Mọi tên phải khai báo trước sử dụng Qui tắc đặt tên:

(4)

Bài ging Cơ s lp trình -2-

- Tên khơng bắt đầu chữ số

- Tên không chứa ký tự đặc biệt dấu cách, dấu chấm câu,… Số ký tự tối đa tên Turbo C 32

- Tên không trùng với từ khóa

- C ngơn ngữ lập trình phân biệt chữ hoa chữ thường, tên NGHIEM khác với tên: Nghiem, nghiem,…

- Không đặt tên tiếng Việt (C xem cách làm sai cú pháp) - Các ví dụ vềđặt tên:

+ Một số tên đặt đúng: Gia_tri, _DX, pi, … + Một số tên đặt sai: 3X, PI$, Bien 1,

1.1.4 Chú thích

Khi viết chương trình bạn nên thêm vào lời thích chương trình sáng sủa dễ hiểu Trình biên dịch khơng biên dịch thích để tạo mã chương trình mà có tác dụng thuyết minh thêm cho dễ hiểu

Phần văn nằm cặp ký hiệu mở /* đóng */ phần thích Phần thích nằm nhiều dịng, miễn nằm cặp dấu mở

đóng nêu

Lưu ý: Trong C++ li thích nm sau cp du // viết mt dòng 1.2 Cu trúc chung ca mt chương trình C

Cấu trúc tổng thể chương trình C thường có khối thơng dụng sau: ……… #include <…> /* để gọi tập tin tiền xử lý */

#define <…> /* định nghĩa số */ typedefs <…> /* định nghĩa kiểu liệu */

……… Function prototype /* khai báo nguyên mẫu hàm gồm tên tham số */ ……… Khai báo biến

……… <Kiểu liệu trả về> main() /* chương trình C bắt buộc phải có hàm main */ { Khai báo biến cục bộ, hàm main Các câu lệnh thực hàm main

(5)

Bài ging Cơ s lp trình -3-

……… Function prototype /* định nghĩa nội dung tường minh hàm */

{

Khai báo biến, hàm Các câu lệnh thực hàm }

……… Như vậy, chương trình C thường bao gồm thành phần: tiền xử lý, định nghĩa: kiểu, hằng, khai báo biến ngoài, hàm tự tạo, hàm main Trong đó:

+ #include <…> /* để gọi tập tin tiền xử lý */ Ví dụ 1.1: #include <stdio.h>

+ #define <Tên số> <Giá trị hằng> /* định nghĩa số */ Ví dụ 1.2: #define MAX 100

+ typedef <tên kiểu cũ> <tên kiểu mới> /* định nghĩa kiểu liệu */ Ví dụ 1.3: typedef int Songuyen;

+ Function prototype /* khai báo nguyên mẫu hàm gồm tên tham số */ Trong phần khai báo nguyên mẫu hàm, bạn kiểu giá trị trả hàm, tên hàm, tham số hình thức hàm

Ví dụ 1.4: Khai báo nguyên mẫu hàm tính diện tích hình trịn float Tinh_dien_tich(float radius);

+ Khai báo biến (biến toàn cục): Là nơi khai báo biến có tầm tác dụng chương trình

Ví dụ 1.5: int n;

+ Trong chương trình C có nhiều hàm, hàm main hàm chính, bắt buộc phải có câu lệnh thực từ xuống Về nguyên tắc hàm phải trả lại giá trị cho tên hàm, không muốn sử dụng giá trị trả về, bạn viết sau: void main() Từ khóa void để hàm khơng có giá trị riêng (tức hàm không mang giá trị cụ thể thực xong hàm)

+ /* định nghĩa nội dung tường minh hàm */

Ví dụ 1.6: Định nghĩa nội dung hàm tính diện tích hình trịn với tham số radius (bán kính hình trịn)

(6)

Bài ging Cơ s lp trình -4-

{ float dientich;

dientich = PI*radius*radius; return(dientich);

}

Lưu ý: Định nghĩa hàm Tinh_dien_tich viết phía hàm main

* Mt s ví d:

Ví d 1.7: Chương trình in hình chữ “Chao cac ban” “Hen gap lai”

Gii

#include <stdio.h> main()

{

printf(“Chao cac ban\n”); printf(“Hen gap lai\n”); getch();

}

Gii thích chương trình ví d 1.7

#include <stdio.h>: Khai báo tập tin tiền xử lý stdio.h (viết tắt từ standard input/output) tập tin tiền xử lý chứa hàm vào/ra chuẩn Trong chương trình có sử dụng hàm printf (hàm chuẩn) định nghĩa tập tin stdio.h

Hàm printf hàm cho in hình nội dung nằm cặp dấu “ ” Ký tự \n ký tựđiều khiển xuống dòng

Phần thân chương trình bao gồm đoạn chương trình: main()

{

}

getch(); Khi chương trình viết hình câu “Chao cac ban” “Hen gap lai” dừng lại cho người sử dụng xem Nếu khơng có lệnh chương trình trở hình văn chương trình, người sử dụng khơng xem

được kết quả, lúc phải bấm tổ hợp phím Alt + F5 xem kết Ví d 1.8: Chương trình tính diện tích hình tròn

(7)

Bài ging Cơ s lp trình -5-

#include <stdio.h> main()

{ float R,Dien_tich;

printf(“Nhap ban kinh R = “); scanf(“%f”,&R);

Dien_tich = 3.14*R*R;

printf(“Dien tich hinh tron co ban kinh %f %f”,R,Dien_tich); getch();

}

Gii thích chương trình ví d 1.8

float R, Dien_tich; Khai báo biến R Dien_tich có kiểu số thực printf(“Nhap ban kinh R = “); in hình dịng: Nhap ban kinh R = scanf(“%f”,&R); Hàm đọc giá trị từ bàn phím vào cho biến R %f mã

định dạng để qui định đọc giá trị vào cho biến R có kiểu số thực, &R hiểu

đọc giá trị vào cho nhớ biến R

Dịng lệnh printf(“Dien tich hinh tron co ban kinh %f %f”,R,Dien_tich); In giá trị biến R biến Dien_tich với qui cách in số thực

Ví d 1.9: Chương trình tính diện tích hình trịn có sử dụng chương trình

Gii

#include <stdio.h> main()

float Tinh_dien_tich(float radius); main()

{ float R;

pritnf(“Nhap ban kinh R = “); scanf(“%f”,&R);

printf(“Dien tich hinh tron = %f “,Tinh_dien_tich(R)); getch();

}

float Tinh_dien_tich(float radius) #define PI 3.14

{ float dientich;

(8)

Bài ging Cơ s lp trình -6-

return(dientich); }

Gii thích chương trình ví d 1.9

#define PI 3.14 Đây khối ghép định nghĩa macro Với định nghĩa này, ngôn ngữ lập trình C dịch chương trình, chỗ chương trình xuất tên PI sẽđược thay 3.14

Việc tính diện tích thực hàm Tinh_dien_tich với tham số radius Nguyên mẫu hàm Tinh_dien_tich khai náo trước hàm main() định nghĩa tường minh nội dung hàm sau hàm main

1.3 Kiu d liu cơ s

1.3.1 Kiu d liu

Dữ liệu dạng biểu diễn vật lý thông tin Những dạng liệu

được xử lý máy tính điện tử gồm: Các ký tự, hình ảnh, âm thanh, tri thức, kiện, luật dẫn Theo nghĩa rộng, liệu thơ số, ký tự, hình ảnh hay kết khác thiết bị chuyển đổi lượng vật lý thành ký hiệu Các liệu loại thường xử lý tiếp người đưa vào máy tính Trong máy tính, liệu lưu trữ xử lý chuyển cho người hay máy tính khác Dữ liệu thơ thuật ngữ tương đối, liệu xử lý bước liệu thô bước Trong máy tính điện tử, liệu

được biểu diễn chuỗi ký hiệu bảng chữ đó, mà phổ biến bảng chữ nhị phân (gồm ký hiệu “0” “1”) Một chương trình máy tính tập hợp liệu hiểu lệnh

Kiu d liu mt tp hp giá tr mà mt biến thuc kiu đó có thnhn được đó xác định mt s phép toán Các kiểu liệu thường quy định ngơn ngữ lập trình, hay nói cách khác ngơn ngữ lập trình có tập kiểu liệu khác Trong ngôn ngữ lập trình, kiểu liệu biểu diễn miền giá trị xác định đó, giới hạn phụ thuộc vào kích thước vùng nhớ biểu diễn số Vì vậy, thơng tin đặc trưng kiểu liệu bao gồm:

+ Tên kiểu liệu

+ Kích thước vùng nhớ biểu diễn (tức miền giá trị) + Các phép toán sử dụng kiểu liệu

1.3.2 Kiu s nguyên

(9)

Bài ging Cơ s lp trình -7-

ngữ lập trình C kiểu số nguyên có dấu, định nghĩa với từ khóa int chiếm byte

Bng t khóa s nguyên phm vi biu din

Kiu biến T khóa S byte Phm vi biu din

Character char -128 +127

Integer int -32768…+32767

Short Integer short -32768…+32767

Unsigned character unsigned char 0…255

Unsigned Integer unsigned int 65535

Unsigned Short Integer unsigned short 65535

Long Integer long -2147483648…

+2147483647 Unsigned Long Integer Unsigned long 0… 4294967295

Lưu ý: Kiu char thc cht kiu ký t, song C cho phép dùng ký tnhư s nguyên Vì vy, tính tốn biu thưc s hc kiu char được sdng như s nguyên (ch mã ASCII tương ng ca ký tựđó) nhưng tính tốn trong biu thc ký t được hiu ký t Đây s mm do ca ngơn ng lp trình C

Có nhiều phép tính định nghĩa cho số ngun: phép tính số học, phép tính quan hệ, phép tính logic số học

Bng lit kê phép tính s hc đối vi kiu s nguyên Phép toán Ký hiu Ví d

Cộng + a + b

Trừ - a - b

Nhân * a * b

Chia lấy phần nguyên

/ a / b

Chia lấy số dư % a % b

Về nguyên tắc phép chia số nguyên cho kết số nguyên Muốn nhận

được kết số thực, bạn phái viết (float) a / b

Ví dụ 1.10: a = 15; b = 2; Vậy kết a/b 15/2 = Bạn muốn nhận kết phép chia số thực phải viết: (float) a/b; Lúc 15/2 = 7.5

(10)

Bài ging Cơ s lp trình -8-

Hằng số nguyên có định kiểu trước: Để ghi số nguyên với kiểu định trước bạn ghi thêm ký tự vào cuối dãy số: L cho kiểu long, U cho kiểu Unsigned Integer, UL cho kiểu Unsigned Long

Ví dụ 1.11: 20000U số nguyên theo kiểu Unsigned Integer; * Cách biu din s nguyên dưới dng s Hecxa:

+ Ngoài cách viết theo dạng số thập phân, C quy ước cho phép viết số nguyên dạng số Hecxa, ký tự bắt đầu 0x 0X Chẳng hạn số 65 hệ thập phân viết dạng số Hecxa 0X41

+ Nếu viết số nguyên dạng số hệ số ký tự bắt đầu Chẳng hạn số 65 hệ thập phân viết dạng sốở hệ số là: 0101

Hai cách viết thuận lợi cho người lập trình hệ thống Lúc đó, byte biểu diễn hai chữ số Hecxa số Hecxa biểu diễn cụm số nhị phân bít Chẳng hạn: số 255 hệ thập phân, biểu diễn hệ Hecxa 0xFF

Ví dụ 1.12: Chương trình tính tổng số nguyên

Gii

#include <stdio.h> main()

{ int m=5,n=10; long tong; tong = m+n; getch(); }

1.3.3 Kiu s thc

Là tập hợp số thực biểu diễn máy tính định nghĩa số từ khóa: float, double, long double

Trong máy tính số thực biểu diễn dạng: dạng bình thường dạng có phần mũ (dạng số khoa học)

+ Dạng bình thường: 3.14, 5.0

+ Dạng số khoa học: 1.254567E+02 tương đương với 1.254567*102 = 125.4567

(11)

Bài ging Cơ s lp trình -9-

Bng t khóa ca s thc phm vi biu din Kiu biến T khóa S

byte

Phm vi biu din

Số thực với độ xác đơn Single-precision floating-point

float 3.4e-38 … 3.4e38

độ xác chữ số Số thực với độ xác kép

Double-precision floating-point

double 1.7e-308 … 1.7e308

độ xác 15 chữ số Số thực với độ xác kép (độ

dài lớn)

Long double-precision floating-point

long double

10 3.4e-4832 … 1.1e4932

độ xác 19 chữ số

Cách viết số thực:

+ Không cần phần lẻ sau dấu chấm:

+ Không cần dấu chấm phần định trị có phần mũ: 2E-8 + Viết dạng bình thường: 5.6

+ Khơng cần số đầu tiên: 1512 + Chấp nhận dùng chữ e: 0.07e-3

Các phép tính số học kiểu thực: Cộng, trừ, nhân, chia Khác vi kiu s nguyên, phép chia (/) cho kết qu s thc khơng tn ti phép tốn % cho kiu s thc

Khởi tạo biến số thực ta viết: float x; x = 7.43; Hoặc viết float x = 7.43; Hằng số thực định trước kiểu: Ta viết số thực với kiểu định trước cách ghi thêm ký tự vào cuối dãy số (F cho kiểu float, L cho kiểu Long)

Ví dụ 1.13: 0.1234567E-33L số thực kiểu long

Các hàm s hc dùng cho kiu s nguyên s thc

Các hàm số học dùng cho kiểu số nguyên kiểu số thực định nghĩa tập tin tiền xử lý math.h sử dụng với đối số số nguyên số thực Nếu ký hiệu i tham số nguyên, f tham số thực Ta có bảng biểu diễn sau:

Hàm Kiu giá tr tr vTác dng

abs(i) Int Trả giá trị tuyệt đối số nguyên i fabs(d) Double Trả giá trị tuyệt đối số thực d sin(d) Double Trả giá trị hàm sin

(12)

Bài ging Cơ s lp trình -10-

cosh(d) Double Trả giá trị hàm cosh tan(d) Double Trả giá trị hàm tang exp(d) Double Trả giá trị e mũ x

log(d) Double Trả giá trị hàm loga số tự nhiên d pow(d1,d2) Double Trả giá trị d1 mũ d2

floor(d) Double Hàm cắt tròn số

ceil(d) Double Hàm làm tròn số

fmod(d1,d2) Double Hàm lấy phần dư phép chia d1/d2 sqrt(d) Double Hàm khai bậc

srand(d) void Khởi tạo số ngẫu nhiên, khơng có giá trị trả

Lưu ý: Các hàm số học chứa tập tin tiền xử lý math.h bạn phải khai báo ởđầu chương trình theo cú pháp: #include <math.h>

Ví dụ 1.14:

floor(3.146) = floor(3.746) = ceil(56.678) = 57 ceil(-56,678) = -57

1.3.4 Kiu ký t

Được định nghĩa với từ khóa char, bao gồm tất ký tự thường dùng: + Chữ a, b, c

+ Chữ số 0,…,9

+ Các dấu chấm phân đoạn câu: , ! …

Một ký tự viết cặp dấu nháy đơn Chẳng hạn: ‘a’; ‘0’; ký tựđược lưu trữ byte ô nhớ

Một giá trị kiểu ký tự phần tử tập hữu hạn ký tựđược xếp có thứ tự Có nhiều cách xếp chữ khác (không tồn chữ chuẩn cho tất máy tính) Tuy vậy, mã ký tựđược dùng rộng rãi phổ biến để trao đổi thơng tin máy vi tính mã ASCII (American Standard Code for Information Interchange) Ở ta quan tâm tới 128 ký tự đầu bảng mã ASCII (phần chuẩn để xây dựng ký tự cho ngơn ngữ lập trình)

(13)

Bài ging Cơ s lp trình -11-

Bng mã hóa ký t khơng nhìn thy được

Ký tDãy mã Giá tr bng mã ASCII Hexa-Decimal Decimal

Đỗ chuông (BEL) \a 0x07

Xóa trái (BackSpace) \b 0x08

Nhảy cách ngang (HT) \t 0x09

Xuống dòng (LF) \n 0x0A 10

Nhảy cách đứng (VT) \v 0x0B 11

Xuống (FF) \f 0x0C 12

Vềđầu dòng (CR) \r 0x0D 13

Dấu “ \“ 0x22 34

Dấu ‘ \‘ 0x2C 39

Dấu ? \? 0x3F 63

Dấu \ \\ 0x5C 92

Mã null \0 0x00 00

Ví dụ 1.15: Muốn in hình chữ “Chao ban” với tiếng chuông phát trước sau viết chữ “Chao ban” bạn viết lệnh: printf(“\a Chao ban\a”);

Ngồi bạn sử dụng cách viết dạng hệ số 16 hay hệ số Chẳng hạn ký tự ‘A’ viết \x41 hay \101 Cách viết thường

được áp dụng cho sau bảng mã ASCII (vì sau bảng mã ASCII có hình dạng vị trí khó nhớ)

Khởi tạo giá trị cho biến ký tự: const char RC = ‘\r’; LF = ‘\n’; ESC = ‘0x1B’;

Các hàm xử lý ký tự nằm tập tin tiền xử lý ctype.h

Mt s hàm x lý ký t

Hàm Kiu giá tr tr v Tác dng

toASCII(c) int Trả mã ASCII ký tự chứa biến ký tự c tolower(c) int Trả ký tự thường ký

tự chứa biến ký tự c toupper(c) int Trả ký tự hoa ký tự

chứa biến ký tự c Ví dụ 1.16: Chương trình đọc từ bàn phím ký tự thường, chuyển thành ký tự hoa in hình

(14)

Bài ging Cơ s lp trình -12-

#include <stdio.h> #include <ctype.h> main()

{ char kytu_thuong, kytu_hoa; kytu_thuong = getchar();

kytu_hoa = toupper(kytu_thuong); putchar(kytu_hoa);

}

Trong chương trình ví dụ 1.16, hàm getchar() để nhận ký tự từ bàn phím hàm putchar() viết ký tự lên hình Các hàm nằm tập tin ctype.h

1.3.5 Kiu d liu Boolean

Trong thực tế ta thường gặp loại đại lượng nhận hai giá trị:

đúng (TRUE) sai (FALSE) Nhưng C kiểu liệu boolean không

định nghĩa cách tường minh, ẩn núp dạng số nguyên Trong C, kết tính tốn trả số ngun giá trị sẽđược hiểu giá trị FALSE, cịn kết trả khác (thơng thường 1) hiểu TRUE

Các phép toán ca kiu boolean

Toán t logic Phép toán logic Ý nghĩa

&& AND Phép “và” logic

|| OR Phép “hoặc” logic

! NOT Phép “đảo” hay “phủđịnh” logic

Bng chân tr ca phép toán logic

X Y X && Y X || Y !X

0 0

0 Số khác 0 1

Số khác 0

Số khác Số khác 1

Ví dụ 1.17: Kết câu lệnh printf(“%d”,0&&3); hình

1.4Câu hi tp chương

1. Tên dùng để làm ? Quy tắc đặt tên ngơn ngữ lập trình C ?

2. Chương trình nguồn ? Có loại chương trình dịch ?

3. Kiểu liệu ? Các thông tin đặc trưng kiểu liệu ?

(15)

Bài ging Cơ s lp trình -13-

CH

ƯƠ

NG 2: TI

N X

LÝ - H

NG - BI

N - TOÁN T

BI

U TH

C - CÂU L

NH

Mc tiêu

Kết thúc chương, sinh viên có thể:

Hiu được ý nghĩa cách s dng ca tp tin tin x lý thông dng Nm được khái nim: hng, biến, toán t, biu thc, câu lnh cách sdng

2.1Tin x

Để thực chương trình C, chương trình nguồn bạn cần dịch sang ngơn ngữ máy chương trình dịch (compiler), trước tiên phải trải qua bước liên kết với đối tượng cần thiết khác, công việc thực tiền xử lý Thật vậy, viết chương trình C, bạn khơng viết tất mà viết liên quan trực tiếp đến cơng việc bạn, phần cịn lại thường rắc rối C viết sẵn bạn sử dụng tài nguyên Bộ tiền xử lý giúp bạn tìm liên kết chương trình nguồn với tài nguyên Lúc biên dịch thành cơng, bạn thấy đĩa ngồi tập nguồn bạn viết, bạn thấy có vài tập tin khác tên có obj, exe

Các lệnh C mà bạn dùng nhiều, để thuận lợi cho trình viết chương trình, nhà phát triển ngôn ngữ C viết lệnh vào tập tin tiền xử lý theo tiêu chí phục vụ Chẳng hạn, lệnh nhập, lệnh xuất, hàm toán học, lệnh xử lý chuỗi ký tự, lệnh tương tác hình, lệnh máy in, lệnh cho thuật toán kinh điển,…

Tuy nhiên, viết chương trình, khơng phải lúc bạn sử dụng tất lệnh mà bạn dùng lệnh cần tập tin chứa lệnh theo cú pháp:

#include <Tên tập tin cần liên kết> #include “Tên tập tin cần liên kết” Hai cách viết khác cách tìm kiếm tiền xử lý: Cách viết đầu tìm kiếm rộng hơn, thư mục C; Cách viết thứ nhì thực tìm kiếm thư mục làm việc C, tập tin tìm kiếm khơng có ởđó, chương trình báo lỗi

Trong chương trình, có nhiều tập tin cần liên kết, bạn viết chúng tập tin dòng đặt ởđầu chương trình nguồn Chẳng hạn:

(16)

Bài ging Cơ s lp trình -14-

Các dịng khai báo khơng phải lệnh nên khơng có dấu chẩm phẩy cuối câu Tập tin tiền xử lý có h (header) chứa định nghĩa macro, hàm thông dụng định nghĩa trước

Tóm li: Trong ngơn ng lp trình C, vic dch mt tp tin ngun thành tp tin thc thi được tiến hành qua bước độc lp nhau: Tin x lý (Preprocessor) biên dch (Tranlation) Hai bước được ni tiếp mt cách tự động theo cách thc mà bn có n tượng rng đã thc hin như mt x lý nht

Sự giống khác thị #include #define:

+ Chỉ thị #include sử dụng nhằm gộp vào nội dung tập tin cần có (header file), khơng thể thiếu việc sử dụng hàm thư viện chuẩn

+ Chỉ thị #define hay sử dụng tập tin tiền xử lý định nghĩa trước thường lập trình viên khai thác định nghĩa ký hiệu, chẳng hạn: #define SIZE 20

CÁC TP TIN TIN X LÝ THÔNG DNG

stdio.h: Tập tin định nghĩa hàm vào chuẩn (standard input/output) như: printf(), scanf(), getc(), putc(), gets(), puts(), fflush(), fopen(), fclose(), fread(), fwrite(), getchar(), putchar(),

conio.h: Tập tin chứa định nghĩa vào/ra chếđộ DOS console như: clrscr(), getch(), getche(), getpass(), cgets(), cputs(), putch(),clreol(), kbhit(),…

math.h: Tập tin định nghĩa hàm tính tốn như: abs(), sqrt(), log(), log10(), sin(), cos(), acos(), asin(), atan(), pow(), exp(),…

alloc.h: Tập tin định nghĩa hàm liên quan đến việc cấp phát quản lý nhớ, như: calloc(), realloc(), malloc(), free(); farmalloc(), farcalloc(), farfree(),…

io.h: Tập tin định nghĩa hàm vào/ra cấp thấp, như: open(), _open(), read(), _read(), close(), _close(), creat(), _creat(), creatnew(), eof(), filelength(), lock(),…

ctype.h: Tập tin định nghĩa hàm xử lý ký tự, như: toASCII(), tolower(), toupper(),…

stdlib.h: Tập tin định nghĩa hàm liên quan đến cấp phát nhớ string.h: Tập tin định nghĩa hàm xử lý xâu ký tự

dos.h: Tập tin định nghĩa hàm để đọc xác lập thời gian, ngày tháng năm

(17)

Bài ging Cơ s lp trình -15-

2.2Hng (Constant)

2.2.1 Khái nim: Là đại lượng có giá trị không đổi suốt thời gian sử dụng chương trình Hằng lưu trữ nhớ có tên để dễ sử dụng

2.2.2 Định nghĩa hng:

- Dùng thị #define:

+ Cú pháp: #define <Tên_hằng> <Giá_trị_hằng>

+ Tác dụng: Tên_hằng thay Giá_trị_hằng Với cách có thểđịnh nghĩa lại giá trị

+ Ví dụ 2.1: #define MAX 100

Trong chương trình chỗ gặp MAX sẽđược thay giá trị 100 + Chú ý: Không có dấu chấm phẩy cuối câu định nghĩa

- Sử dụng từ khóa const:

+ Cú pháp: const <kiểu_dữ_liệu> <tên_hằng> = <giá_trị_hằng>; const <tên_hằng> = <giá_trị_hằng>;

+ Tác dụng: Định nghĩa có tên tên_hằng có giá trị giá_trị_hằng sau không thểđịnh nghĩa lại (sửa đổi) giá trị

+ Ví dụ 2.2: const long double PI = 3,141592653589793;

Const d = 7; /* d kiểu integer, có giá trị */

+ Lưu ý: Trong kiểu định nghĩa thứ 2, chương trình tự động ấn định kiểu kiểu ngầm định, với turbo C có kiểu ngầm định int

* S khác gia khai báo hng s bng define const ch là:

+ Với const, số cố định, số thực sự, định nghĩa lại

+ Khi gặp định nghĩa #define chương trình dịch lắp giá trị số vào biểu thức cần tính Điều đó, có nghĩa gặp tên hằng, máy dành số nhớ đủ để chứa giá trị vào Loại khơng thể

định nghĩa lại trình sử dụng Nó áp dụng cho loại số, xâu ký tự, logic,… Thực chất define <tên_hằng> thay tượng trưng cho đoạn văn bản, <giá_trị_hằng> Khi dịch, chương trình thay <tên_hằng> <giá_trị_hằng>

2.2.3 Các loi hng:

Hằng int: Là số nguyên có kiểu int

(18)

Bài ging Cơ s lp trình -16-

Hằng int hệ hệ 16: Các số C ngầm hiểu hệ 10, bạn hồn tồn viết hệ số (bắt đầu 0) hay số hệ 16 (bắt đầu 0X) Ví dụ 2.3 : 025, 057, 0x24, 0x41,… Hằng ký tự: Là ký tự viết cặp dấu nháy đơn, Ví dụ 2.4:

‘A’, ‘3’, ‘+’,… Trình biên dịch C lưu trữ cách dùng mã ASCII hệ số 10 C lưu thơng qua mã ASCII (trong hệ 10) Với ví dụ 2.4, giá trịđược lưu trữ tương ứng: 97, 43, 51

Đối với ký tựđặc biệt, C quy định cách viết:

‘\’’ biểu diễn cho ’ ‘\”’ biểu diễn cho ” ‘\\’ biểu diễn cho \ ‘\n’ biểu diễn ký tự xuống dòng ‘\0’ biểu diễn cho ‘\t’ biểu diễn ký tự tab

‘\r’ biểu diễn vềđầu dòng ‘\b’ biểu diễn ký tự backspace ‘\f’ biểu diễn sang trang

Hằng xâu ký tự (chuỗi ký tự): Giá trị dãy ký tựđược bao hai dấu nháy kép Ví dụ 2.5: “Truong Dai hoc”;

* Chú ý: Các hng có thể được định nghĩa ngồi mi hàm, hàm hoc trong mt khi lnh Vi C chun, định nghĩa mt khi dịng lnh định nghĩa phi dòng đầu tiên ca khi, tc trước tt c lnh khác ca khi lnh Trong C++ bn có thểđặt định nghĩa hng bt k v trí

2.3Biến (Variable)

- Khái niệm: Là đại lượng có giá trị thuộc kiểu ngơn ngữ lập trình, giá trị biến thay đổi thời gian tồn biến Biến

được lưu trữ nhớ có tên để dễ sử dụng Chương trình truy xuất đến ô nhớ cấp phát cho biến để lấy ghi giá trị thông qua tên biến Muốn sử dụng biến bạn phải khai báo trước sử dụng

- Cú pháp khai báo biến:

<Kiểu_dữ_liệu> <Danh_sách_tên_các_biến>; <Kiểu_dữ_liệu> <Tên_biến> = <Giá_trị>; Trong đó:

+ <Kiểu_dữ_liệu>: Là tên kiểu liệu tồn ngơn ngữ lập trình, kiểu liệu chuẩn kiểu liệu định nghĩa người lập trình

+ <Danh_sách_tên_các_biến>: Tên biến kiểu, đặt cách dấu phẩy

(19)

Bài ging Cơ s lp trình -17-

Như vậy, đặc trưng biến gồm: tên biến, kiểu liệu biến, giá trị

đang lưu giữ Trong ngơn ngữ lập trình C biến có thể có kiểu void (kiểu khơng xác định)

Tên biến C đặt theo nguyên tắc đặt tên ngơn ngữ lập trình C (đã trình bày phần 1.1.3 trang 1)

-Ví dụ 2.6: Cách khai báo biến có kiểu số nguyên, số thực, ký tự main()

{ int m = 5, n = 10; /* Khai báo biến số nguyên m, n khởi tạo giá trị*/ float x,y; /* Khai báo biến số thực */

char kt = ‘A’; /* Khai báo biến ký tự khởi tạo giá trị*/ <Các câu lệnh xử lý chương trình>

}

Lưu ý: Khi gặp lệnh định nghĩa biến, chương trình dịch cấp phát vùng nhớ có kích thước phù hợp với kiểu liệu biến, có thành phần khởi tạo chương trình gán giá trị khởi tạo vào vùng nhớ biến Địa byte vùng nhớđược cấp phát cho biến, địa biến Để lấy địa biến, bạn dùng cú pháp: &<Tên_biến>;

2.4Biu thc toán t

2.4.1 Biu thc (Expression)

-Khái niệm: Biểu thức tập hợp gồm hằng, hàm, biến, toán tử … Biểu thức tính tốn theo ngun tắc tốn học giá trị Trong biểu thức có thành phần chính: Tốn tử (operator) viết dấu phép tốn; Tốn hạng (operand) hằng, hàm, biến

- Ví dụ 2.7: 15 + sin(x); Dấu + toán tử, 15 sin(x) toán hạng - Các loại biểu thức:

+ Biểu thức số học biểu thức mà kết tính tốn cho giá trị số (số nguyên, số thực)

+ Biểu thức logic: Trong ngôn ngữ lập trình C biểu thức logic biểu thức mà kết tính tốn cho giá trị TRUE (giá trị khác mà thường 1) FALSE (giá trị 0)

+ Biểu thức quan hệ biểu thức có chứa tốn tử quan hệ ( <, >, <=, >=, ==, != ) Các toán hạng biểu thức quan hệ số nguyên, số thực, ký tự chúng không thiết phải tương thích với kiểu

(20)

Bài ging Cơ s lp trình -18-

- Tốn tử số học hổ trợ ngơn ngữ lập trình C là: + (Cộng)

- (Trừ) * (Nhân) / (Chia)

% (lấy phần dư phép chia số nguyên) - Ví dụ 2.8:

int x = 15, y = 2, z; z = x % y;

Kết phép tính cho z = 1;

Thứ tự thực phép toán giống toán học

2.4.2.2 Toán t thao tác bít

-Trong ngơn ngữ lập trình C có nhóm tốn tử mà thao tác thực bít tốn hạng, gọi tốn tử thao tác bít Các tốn hạng tham gia vào biểu thức có tốn tử thao tác bít phải có kiểu số ngun Các phép tính liên quan đến biểu diễn nhị phân máy tính

- Tốn tử & (phép AND theo bít)

+ Cú pháp: <Tốn_hạng_1> & <Tốn_hạng_2>

+ Chức năng: Thực phép AND bít tốn hạng trả kết có kích thước với tốn hạng

+ Bảng chân trị phép &

& 0 1

0 0

1

+ Ví dụ 2.9: int a = 7, b= 14, c; c = a & b;

Kết cho c = - Tốn tử | (phép OR theo bít)

+ Cú pháp: <Toán_hạng_1> | <Toán_hạng_2>

+ Chức năng: Thực phép OR bít tốn hạng trả kết có kích thước với tốn hạng Các bít trả vềđược tính kết phép tuyển bít tương ứng tốn hạng toán hạng

Ngày đăng: 09/03/2021, 05:47

w