1. Trang chủ
  2. » Giáo án - Bài giảng

Slide Bài giảng NGÔN NGỮ LẬP TRÌNH C

192 1,8K 13

Đ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

Thông tin cơ bản

Định dạng
Số trang 192
Dung lượng 2,32 MB

Nội dung

1.1. Giới thiệu chung 1.2. Tập ký tự 1.3. Từ khóa (keyword) 1.4. Tên (identifier) 1.5. Một số quy tắc cần nhớ khi viết C.T 1.6. Sơ lược về khai báo biến, toán tử gán, câu lệnh vào ra, toán tử include 1.7. Cấu trúc một chương trình C và cách vận hành trên máy Ngôn ngữ C ra đời năm 1972 Phát triển thành C++ vào năm 1983 Ngôn ngữ được sử dụng rất phổ biến Có nhiều trình biên dịch C khác nhau Turbo C, Borland C GCC Thực hành trên Turbo C Cung cấp môi trường tích hợp cho phép soạn thảo và biên dịch 1.1. Giới thiệu chung 1.2. Tập ký tự 1.3. Từ khóa (keyword) 1.4. Tên (identifier) 1.5. Một số quy tắc cần nhớ khi viết C.T 1.6. Sơ lược về khai báo biến, toán tử gán, câu lệnh vào ra, toán tử include 1.7. Cấu trúc một chương trình C và cách vận hành trên máy

Trang 1

NGÔN NGỮ LẬP TRÌNH C

Trang 2

Chương 1:

CÁC KHÁI NIỆM CƠ BẢN

Trang 3

1.1 Giới thiệu chung

1.2 Tập ký tự

1.3 Từ khóa (keyword)

1.4 Tên (identifier)

1.5 Một số quy tắc cần nhớ khi viết C.T

1.6 Sơ lược về khai báo biến, toán tử gán, câu lệnh vào ra, toán tử #include

1.7 Cấu trúc một chương trình C và cách vận hành trên máy

CÁC KHÁI NIỆM CƠ BẢN

Trang 4

Giới thiệu chung

Ngôn ngữ C ra đời năm 1972

Phát triển thành C++ vào năm 1983

Ngôn ngữ được sử dụng rất phổ biến

Có nhiều trình biên dịch C khác nhau

Trang 5

1.1 Giới thiệu chung

1.2 Tập ký tự

1.3 Từ khóa (keyword)

1.4 Tên (identifier)

1.5 Một số quy tắc cần nhớ khi viết C.T

1.6 Sơ lược về khai báo biến, toán tử gán, câu lệnh vào ra, toán tử #include

1.7 Cấu trúc một chương trình C và cách vận hành trên máy

CÁC KHÁI NIỆM CƠ BẢN

Trang 6

Tập ký tự

sau:

26 chữ cái tiếng anh thường: a b c … z

10 chữ số thập phân: 0 1 2 … 9

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

Ký tự gạch dưới: _

Các ký tự đặc biệt khác: , : ; [ ] { } ? …

Trang 7

1.1 Giới thiệu chung

1.2 Tập ký tự

1.3 Từ khóa (keyword)

1.4 Tên (identifier)

1.5 Một số quy tắc cần nhớ khi viết C.T

1.6 Sơ lược về khai báo biến, toán tử gán, câu lệnh vào ra, toán tử #include

1.7 Cấu trúc một chương trình C và cách vận hành trên máy

CÁC KHÁI NIỆM CƠ BẢN

Trang 8

Từ khóa

Trang 9

1.1 Giới thiệu chung

1.2 Tập ký tự

1.3 Từ khóa (keyword)

1.4 Tên (identifier)

1.5 Một số quy tắc cần nhớ khi viết C.T

1.6 Sơ lược về khai báo biến, toán tử gán, câu lệnh vào ra, toán tử #include

1.7 Cấu trúc một chương trình C và cách vận hành trên máy

CÁC KHÁI NIỆM CƠ BẢN

Trang 10

và gạch nối “_”

tên không đuợc chứa kí tự trống,

tên không được bắt đầu bằng một chữ số,

tên không được trùng với từ khóa

phân biệt chữ hoa và chữ thường

(Options/Compiler.Source/Identifier length)

Trang 11

a_1 beta x1

delta_7 _x1

case 3xyz_7

be ta f(x) r#3 x-1

Trang 12

1.1 Giới thiệu chung

1.2 Tập ký tự

1.3 Từ khóa (keyword)

1.4 Tên (identifier)

1.5 Một số quy tắc cần nhớ khi viết C.T

1.6 Sơ lược về khai báo biến, toán tử gán, câu lệnh vào ra, toán tử #include

1.7 Cấu trúc một chương trình C và cách vận hành trên máy

CÁC KHÁI NIỆM CƠ BẢN

Trang 13

Mỗi câu lệnh có thể viết trên một hay nhiều

dòng, kết thúc bằng dấu;

Dùng dấu \ trước khi xuống dòng

Ví dụ printf(“\n Han hanh \

\n lam quen voi ban”);

Các lời chú thích cần được giữa cặp dấu /*

… */ và có thể viết:

Trên một dòng

Trên nhiều dòng

Trên phần còn lại của dòng

Một số quy tắc khi viết C.T

Trang 14

Sử dụng các hàm chuẩn: Phải khai báo

các tệp chứa hàm chuẩn

Ví dụ: #include <stdio.h> (hàm printf())

Một số quy tắc khi viết C.T

Trang 15

1.1 Giới thiệu chung

1.2 Tập ký tự

1.3 Từ khóa (keyword)

1.4 Tên (identifier)

1.5 Một số quy tắc cần nhớ khi viết C.T

1.6 Sơ lược về khai báo biến, toán tử gán, câu lệnh vào ra, toán tử #include

1.7 Cấu trúc một chương trình C và cách vận hành trên máy

CÁC KHÁI NIỆM CƠ BẢN

Trang 16

Mọi biến trước khi sử dụng phải được

khai báo để xác định kiểu

Trang 17

printf(Chuỗi điều kiện, bt1, bt2, …, btk);

Chuỗi điều kiện:

Trang 18

scanf(“t1t2…tk”, &b1, &b2, …, &bk);

Dùng đặc tả cho biến thực

Trang 19

1.1 Giới thiệu chung

1.2 Tập ký tự

1.3 Từ khóa (keyword)

1.4 Tên (identifier)

1.5 Một số quy tắc cần nhớ khi viết C.T

1.6 Sơ lược về khai báo biến, toán tử gán, câu lệnh vào ra, toán tử #include

1.7 Cấu trúc một chương trình C và cách vận hành trên máy

CÁC KHÁI NIỆM CƠ BẢN

Trang 21

printf(“\n Turbo C han hanh”);

printf(“\n lam quen voi ban”);

getch();

}

Cấu trúc một chương trình C

Trang 22

Tạo tệp chương trình gốc đuôi C

Vận hành chương trình trên máy

Trang 23

Tạo tệp chương trình gốc đuôi C

File/New

Vận hành chương trình trên máy

Trang 24

Dịch chương trình (đuôi EXE)

Compile/Compile (Alt + F9)

Vận hành chương trình trên máy

Trang 26

Chương 2:

CÁC KIỂU DỮ LIỆU CƠ BẢN VÀ

CÁC PHÉP TOÁN

Trang 27

2.1 Các kiểu dữ liệu cơ bản

2.2 Biến, hằng và biểu thức

2.3 Các phép toán

CÁC KIỂU DỮ LIỆU VÀ CÁC

PHÉP TOÁN

Trang 28

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

Kiểu kí tự Kích thước Miền giá trị

signed char 1 byte -128 -> 127

Trang 29

Kiểu số nguyên

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

Kiểu số nguyên Kích thước Miền giá trị

int, short 2 byte -32768 -> 32767

unsigned int,

long 4 byte -2147483648 -> 2147483647 unsigned long 4 byte 0 -> 4294967295

Trang 30

Kiểu số thực

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

Kiểu số thực Kích thước Miền giá trị

double 8 byte 1.7E-308 -> 1.7E+308 long double 10 byte 3.4E-4932->1.1E+4932

Trang 31

Chuyển kiểu

này sang kiểu khác

Trang 32

2.1 Các kiểu dữ liệu cơ bản

2.2 Biến, hằng và biểu thức

2.3 Các phép toán

CÁC KIỂU DỮ LIỆU VÀ CÁC

PHÉP TOÁN

Trang 33

 Dấu phẩy động (float và double):

 Dạng thập phân: Số gồm phần nguyên, dấu chấm thập phân và phần phân Ví dụ: 214.35, -4563.48

 Dạng khoa học (dạng mũ): Gồm phần định trị và phần bậc Phần định trị là một số nguyên hoặc số thực dạng thập phân, phần bậc là một số nguyên Hai phần cách nhau bởi kí tự e hoặc E.

Ví dụ: 21.34E-4 (biểu diễn giá trị 0.012134)

0.15E3 (biểu diễn giá trị120.0) -48.5e-2 (biểu diễn giá trị -0.485) 1E6 (biểu diễn giá trị 1000000.0)

 int: 125

 long: -567L hoặc -567l

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

Trang 34

Chú ý: ‘a’ khác “a”, a là hằng ký tự lưu trữ 1 byte,

còn “a” là xâu ký tự được lưu trữ trong mảng 2 phần tử (a và \0)

Trang 35

đứng trước mọi câu lệnh khác

biến ta đặt dấu = Ví dụ: int a, b = 20 (int a, b; a=20, b=20)

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

Trang 36

Biến

Ví dụ

main() {

int a, b, c;

a = 35;

int d;

}

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

Trang 37

Biểu thức

qui tắc toán học

Vế phải của câu lệnh gán

Trang 39

2.1 Các kiểu dữ liệu cơ bản

2.2 Biến, hằng và biểu thức

2.3 Các phép toán

CÁC KIỂU DỮ LIỆU VÀ CÁC

PHÉP TOÁN

Trang 41

Chia lấy phần nguyên: /

Chia lấy phần dư: %

Trang 43

Các phép toán quan hệ (so sánh)

Phép toán quan hệ (so sánh) và logic cho hoặc giá trị đúng (1) hoặc giá trị sai (0)

Biểu thức chứa các phép toán quan hệ

được gọi là biểu thức quan hệ

Các phép toán

Trang 44

Các phép toán quan hệ (so sánh)

Trang 46

Phép tăng 1 (++), giảm 1 ( )

hoặc sau biến là thể hiện trong phép gán: biến =

biểu_thức

Nếu toán tử ++x ( x) xuất hiện trong biểu_thức thì x sẽ được tăng

(giảm) 1 trước khi thực hiện phép gán

Nếu toán tử x++ (x ) xuất hiện trong biểu_thức thì thực hiện phép

gán trước khi x được tăng (giảm) 1

a = 5; b = ++a; kết quả ?

a = 5; b = a++; kết quả ?

Các phép toán

Trang 47

Chương 3:

XUẤT, NHẬP DỮ LIỆU

Trang 50

printf(“Gia tri thuc cua bien thuc =%f\n”,bien_thuc);

printf(“Truoc khi lam tron=%f \nSau khi lam tron=

%.2f”,bien_thuc, bien_thuc);

Trang 51

Lệnh nhập/xuất

Vào dữ liệu

Scanf là hàm cho phép đọc dữ liệu từ bàn phím và gán cho các biến trong chương trình khi chương trình thực thi Hàm scanf nằm trong thư viện stdio.h.

Cú pháp:

scanf(“Chuỗi định dạng”, địa chỉ của các biến);

Giải thích:

- Chuỗi định dạng: dùng để qui định kiểu dữ liệu, cách biểu diễn, độ

rộng, số chữ số thập phân Một số định dạng khi nhập kiểu số

nguyên, số thực, ký tự.

- Địa chỉ của các biến: là địa chỉ (&) của các biến mà chúng ta cần

nhập giá trị cho nó Được viết như sau: &<tên biến>.

Trang 52

Vào dữ liệu

Trang 53

Lưu ý:

- Chuỗi định dạng phải đặt trong cặp dấu nháy kép (“”).

- Các biến (địa chỉ biến) phải cách nhau bởi dấu phẩy (,).

- Có bao nhiêu biến thì phải có bấy nhiêu định dạng.

- Thứ tự của các định dạng phải phù hợp với thứ tự của các biến.

- Để nhập giá trị kiểu char được chính xác, nên dùng hàm fflush(stdin)

để loại bỏ các ký tự còn nằm trong vùng đệm bàn phím trước hàm

scanf().

- Để nhập vào một chuỗi ký tự (không chứa khoảng trắng hay kết thúc bằng khoảng trắng), chúng ta phải khai báo kiểu mảng ký tự hay con trỏ ký tự, sử dụng định dạng %s và tên biến thay cho địa chỉ biến.

- Để đọc vào một chuỗi ký tự có chứa khoảng trắng (kết thúc bằng phím Enter) thì phải dùng hàm gets().

Trang 54

scanf(“%c”,&bienchar);

Trang 57

Lệnh nhập/xuất

trả về giá trị 0, ngược lại trả về giá trị khác 0

Trang 59

Chương 4:

CÁC CẤU TRÚC ĐIỀU KHIỂN

Trang 60

4.1 Cấu trúc rẽ nhánh

4.2 Cấu trúc vòng lặp

CÁC CẤU TRÚC ĐIỀU KHIỂN

Trang 61

Cấu trúc rẽ nhánh

Lệnh

Một câu lệnh nhằm thực hiện một công việc nào đó

Câu lệnh kết thúc bởi dấu “;”

Ví dụ

 printf(“một câu lệnh\n”);

 i++;

Là dãy các lệnh được đặt giữa cặp ngoặc nhọn “{“ và “}”

Khối lệnh thường được sử dụng khi muốn chúng thực hiện dưới một điều kiện nào đó

{

/* các lệnh */

}

Trang 63

Lệnh if:

Trang 64

Lệnh if

Trang 65

Ví dụ: Chương trình nhập vào hai số a và b, tìm max của hai số rồi in kết quả lên màn hình Chương trình có thể viết bằng cả hai cách trên như sau :

Trang 67

Sự lồng nhau của các toán tử if :

C cho phép sử dụng các toán tử if lồng nhau có

nghĩa là trong các khối lệnh ( 1 và 2 ) ở trên có thể chứa các toán tử if - else khác

Trang 68

Sự lồng nhau của các toán tử if :

Đoạn chương trình trên tương đương với :

Trang 69

Sự lồng nhau của các toán tử if :

Trang 70

Ví dụ : Chương trình giải phương trình bậc hai.

Trang 71

bảng mã sau Viết chương trình để từ mã suy

Trang 72

Cấu trúc lựa chọn Switch

Là cấu trúc tạo nhiều nhánh đặc biệt Nó căn cứ vào giá trị một biểu thức nguyên để chọn một trong nhiều cách nhảy.

Cấu trúc tổng quát của nó là :

{

}

Trang 73

Cấu trúc lựa chọn SwitchĐoạn chương trình nằm giữa các dấu { } gọi là thân của toán tử switch

default là một thành phần không bắt buộc phải có trong thân của

switch.

thức viết trong dấu ngoặc ( ) như sau :

lệnh có nhãn là case ni.

lại phụ thuộc vào sự có mặt hay không của lệnh default như sau :

Trang 74

Cấu trúc lựa chọn Switch

}

}

Trang 75

Ví dụ 2:Lập chương trình phân loại học sinh theo điểm sử

dụng cấu trúc switch : #include "stdio.h"

Trang 76

int n;

printf(" Nhập vào một số nguyên từ 0 đến 2: ");

scanf("%d", &n);

switch(n) {

case 0: printf("Số không\n");

}

Trang 78

max = b;

printf(“Phần từ nhất là :%f”, max);

} printf(“\n Co tiep tuc khong, c/k?”);

k= getch();

if (k == ‘c’ || k == ‘C’) goto tt;

}

Trang 79

Cấu trúc rẽ nhánh

Một số điểm lưu ý khi dùng lệnh goto

Lệnh goto chỉ cho phép nhảy từ vị trí này đến vị trí khác trong thân của một hàm

vào trong một khối lệnh Việc nhày từ trong ra ngoài khối lệnh lại hoàn toàn hợp lệ.

Trang 80

goto alfa

{ alfa: printf(“\n Ket qua tinh toan”);

} }

Trang 81

Cấu trúc rẽ nhánh

Bài tập

Giả sử để theo dõi trình độ của cán bộ ta dùng bảng mã sau Viết chương trình để từ mã suy ra trình độ học vấn sử dụng lệnh switch case

Trang 82

4.1 Cấu trúc rẽ nhánh

4.2 Cấu trúc vòng lặp

CÁC CẤU TRÚC ĐIỀU KHIỂN

Trang 84

Các dấu “;” và cặp ngoặc “(” và “)” là bắt buộc phải có

Ý nghĩa câu lệnh: lệnh for hoạt động theo các bước

1 Tính biểu thức 1.

2 Tính biểu thức 2 Nếu biểu thức 2 có giá trị 0 (sai), máy sẽ ra

khỏi for và chuyển tới câu lệnh sau thân for Nếu biểu thức 2 có giá trị khác 0 (đúng), máy thực hiện các câu lệnh trong thân for, sau đó chuyển tới bước 3.

3 Tính biểu thức 3, sau đó quay trở lại bước 2 để bắt đầu các bước

lặp mới

Trang 85

Các dấu “;” và cặp ngoặc “(” và “)” là bắt buộc phải có

Ý nghĩa câu lệnh: lệnh for hoạt động theo các bước

1 Tính biểu thức 1.

2 Tính biểu thức 2 Nếu biểu thức 2 có giá trị 0 (sai), máy sẽ ra

khỏi for và chuyển tới câu lệnh sau thân for Nếu biểu thức 2 có giá trị khác 0 (đúng), máy thực hiện các câu lệnh trong thân for, sau đó chuyển tới bước 3.

3 Tính biểu thức 3, sau đó quay trở lại bước 2 để bắt đầu các bước

lặp mới

Trang 86

int i;

for (i=1; i <=10; i++) printf("%d\n", i); getch();

}

Trang 88

Cấu trúc vòng lặp

Chú ý:

lệnh for được lặp đi lặp lại nhiều lần

Để thoát khỏi lệnh for trong trường hợp này phải dùng lệnh break hoặc return

Trang 89

Cấu trúc vòng lặp

Lệnh lặp while

while (biểu thức) khối lệnh;

Trong khi biểu thức có giá trị đúng, tức khác 0, thì còn

phải thực hiện khối lệnh Việc lặp dừng lại khi biểu thức

có giá trị sai (bằng 0).

Lệnh while kiểm tra điều kiện trước khi thực hiện khối lệnh

Trang 90

s = s + i;

i++;

} printf(“Tổng của %d số tự nhiên đầu tiên là: %d\n”, n, s); getch();

}

Trang 91

Cấu trúc vòng lặp

Lệnh While - Chú ý:

“(” và “)” Có thể viết một dãy biểu thức phân cách nhau bởi dấu phầy “,” Tính đúng sai của dãy biểu thức được hiểu là tính đúng sai của biểu thức cuối cùng trong dãy.

dụng for và while khác

phải có giá trị xác định

Trang 94

Cấu trúc vòng lặp

Lệnh break

thoát vòng lặp trực tiếp chứa nó

case

Trang 96

Cấu trúc vòng lặp

Lệnh lặp continue

hiện lần lặp mới mà không cần thực hiện phần còn lại

Khi gặp câu lệnh continue bên trong thân của lệnh for, máy sẽ chuyển tới bước khởi đầu lại (bước 3 trong điểm

“Sự hoạt động của for”)

Khi gặp câu lệnh continue bên trong thân của while

hoặc do while máy sẽ chuyển tới xác định giá trị biểu thức (viết sau từ khóa while) và sau đó tiến hành kiểm tra điều kiện kết thúc chương trình.

Chú ý: continue chỉ áp dụng cho các chu trình chứ

không áp dụng cho switch

Trang 97

Cấu trúc vòng lặp

Lệnh lặp continue

hiện lần lặp mới mà không cần thực hiện phần còn lại

Ví dụ #include <stdio.h>

main() { int i;

for (i=1; i <= 5; i++) {

printf(" Bắt đầu %d\n", i);

printf("Chào bạn\n");

} }

Trang 98

printf(“%d”, j);

if (j != 10) continue;

printf(“\n”);

}

Trang 99

Cấu trúc vòng lặp

Bài tập

nhiên đầu tiên dùng do … while

khi kí tự nhập vào là “@”

Trang 100

CHƯƠNG 5: LẬP TRÌNH CẤU TRÚC VỚI HÀM

1. Khai báo và sử dụng hàm trong C

- Cú pháp khai báo một hàm trong C là như sau

[<kiểu giá trị trả về>] <tên hàm>([<danh sách tham số>,…])

Thân hàm

Trang 101

Khai báo và sử dụng hàm trong C

- Khai báo của một hàm được chia làm 2 phần:

Dòng đầu hàm:

[<kiểu giá trị trả về>] <tên hàm>([<danh sách tham số>,…])

Thân hàm: là tập hợp các khai báo và câu lệnh đặt trong cặp dấu ngoặc nhọn

Trang 102

Khai báo và sử dụng hàm trong C

Ví dụ sau là khai báo và định nghĩa hàm tính giai thừa của một số nguyên dương Ta quy ước rằng

giai thừa của một số âm thì bằng –1, của 0 bằng 0, của một số nguyên dương a là a! = a × (a-1) ×× 1.

Trang 103

được giá trị đó ta cần phải biết nó thuộc kiểu dữ liệu

gì Kiểu dữ liệu của đối tượng tính toán được hàm

trả về được gọi là kiểu dữ liệu trả về của hàm.

Trang 104

Các thành phần của dòng đầu hàm

Tên hàm là có thể là bất kì một định danh hợp lệ nào Tuy nhiên tên hàm nên mang nghĩa gợi ý chức năng công việc mà hàm thực hiện Ví dụ một hàm có chức năng tính và trả về bình phương của một số thực x thì nên có tên là binh_phuong Trong C, các hàm

không được đặt tên trùng nhau.

Tham số của hàm là các thông tin cần cho hoạt động của hàm và các thông tin, kết quả tính toán được hàm trả lại Tức là có những tham số chứa dữ liệu vào cung cấp cho hàm, có những tham số

chứa dữ liệu ra mà hàm tính toán được.

Trang 105

Các thành phần của dòng đầu hàm

Lệnh return

Trong chương trình, một hàm được thực hiện khi ta gặp lời gọi

hàm của hàm đó trong chương trình Một lời gọi hàm là tên hàm theo sau bởi các tham số thực trong chương trình Sau khi hàm

thực hiện xong, nó sẽ trở về chương trình đã gọi nó

Sau khi thực hiện tất cả các câu lệnh có trong thân hàm.

Khi gặp lệnh return.

Cú pháp chung của lệnh return là

return biểu_thức;

Trang 107

2 Sử dụng hàm

Một hàm sau khi khai báo thì có thể sử dụng Để sử dụng một hàm (hay còn nói là gọi hàm) ta sử dụng cú pháp sau:

<tên hàm> ([danh sách các tham số])

Trang 109

Hàm đệ quy

C không những cho phép từ hàm này gọi tới hàm khác, mà nó còn cho phép từ một điểm trong thân của một hàm gọi tới chính hàm

đó Hàm như vậy gọi là hàm đệ qui.

Khi chưa dùng đệ quy hàm có thể được viết như sau:

long int gt(int n) /* Tính n! với n>=0*/

Trang 111

Trong trường hợp chung :

uscln(a,b)=uscln(a-b,b) nếu a>b uscln(a,b)=uscln(a,b-a) nếu a<b

Ngày đăng: 22/07/2016, 16:38

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w