1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Tin học đại cương: Chương 4 - ThS. Nguyễn Lê Minh (Nhóm ngành Cơ khí)

82 33 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

Thông tin cơ bản

Định dạng
Số trang 82
Dung lượng 4,66 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài giảng Tin học đại cương - Chương 4: Ngôn ngữ lập trình C cung cấp cho người học các kiến thức: Giới thiệu, tập ký tự, các khái niệm cơ, các kiểu dữ liệu, các lệnh điều khiển. Cuối bài giảng có phần bài tập thực hành để người học ôn tập và củng cố kiến thức.

Trang 1

TIN HỌC ĐẠI CƯƠNG

Chương 4: NGÔN NGỮ LẬP TRÌNH C

GV: Nguyễn Lê Minh

Bộ môn: Công nghệ thông tin

3/6/2020

Trang 2

 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++

Trình ứng dụng hỗ trợ:

 Borland C++ 5.02 hoặc C-Free hoặc Dev C++

2

Trang 3

- 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 _

3

Trang 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.

4

Trang 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 đượ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

5

Trang 6

6

Trang 9

1.1 Các khái niệm cơ bản

- 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

Trang 10

1.1 Các khái niệm cơ bản

Trang 11

1.1 Các khái niệm cơ bản

Các hàm toán học thông dụng

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

Trang 12

1.1 Các khái niệm cơ bản

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;

Trang 13

1.1 Các khái niệm cơ bản

const int SOPT = 100;

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

Trang 14

1.1 Các khái niệm cơ bản

Trang 15

1.1 Các khái niệm cơ bản

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 “;”

Trang 16

Cấu trúc 1 chương trình C

16

#include <stdio.h>

#include <conio.h>

const int MAX=100; //khai bao hang

float X,y, z;//khai bao bien

void inKQ() ; float max2so (int, int) ; int main (void) {

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;

}

Trang 17

1.1 Các khái niệm cơ bản

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àmchậ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ảichạ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)

Trang 20

1.2 Các kiểu dữ liệu

Kiểu số

Trang 22

1.2 Các kiểu dữ liệu

Bảng mã ASCII

( https://vi.wikipedia.org/wiki/ASCII )

Trang 23

1.2 Các kiểu dữ liệu

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ỉ của 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 ];

Trang 26

1.2 Các kiểu dữ liệu

Kiểu mảng – Array (Tiếp)

• Các thành phần của mảng được truy xuất thông qua chỉ số của chúng0 n-1

• Thao tác truy xuất không kiểm tra giới hạn của chỉ số

Trang 28

1.2 Các kiểu dữ liệu

Đặc tả định dạng

• %d: đọc vào một số nguyên int

• %u: đọc vào một số nguyên unsigned int

• %hd: đọc vào một số nguyên short int

• %lf,%lu: đọc vào một số thực double

Trang 31

• \f sang trang mới

• \b xóa kí tự bên trái

• \t dấu Tab

• Các kí tự để đưa ra màn hình

• Các kí tự định dạng và khuôn in

• Ví dụ: %.2f %8d %s %-5c

Trang 32

Nhỏ hơn hoặc bằng độ rộng thực tế => in bình thường

Lớn hơn độ rộng thực tế (chèn thêm khoảng trống cho đủ độ rộng là w (nếu có dấu trừ chèn bên phải, ngược lại chèn bên trái)

• Giá trị p: quy định làm tròn đến bao nhiêu chữ số đằng sau chấm thập phân.

Trang 33

1.2 Các kiểu dữ liệu

Hàm Printf (tiếp)

Trang 36

1.2 Các kiểu dữ liệu

Hàm sprintf

• Thư viện: “stdio.h”

• Công dụng: giống printf, chỉ khác ở điểm kết quả không xuất ra màn hình mà đưa vào 1 biến xâu

• Ví dụ:

Trang 37

1.2 Các kiểu dữ liệu

Nhập dữ liệu – Hàm Scanf

Thuộc thư viện “ stdio.h ”

• Cú pháp:

scanf( “Xâu điều khiển”, < Địa chỉ biến>);

• Xâu điều khiển: Cho phép định dạng dữ liệu nhập vào

• Danh sách tham số: Là địa chỉ các biến cần nhập liệu

• Sử dụng toán tử & để xác định địa chỉ các biến

• Ví dụ:

scanf(“ %d %f %c ”, &x , &y , &z );

scanf(“ %s ”, &hoten );

Trang 38

1.2 Các kiểu dữ liệu

Hàm Scanf

• Không thông báo cho người dùng biết giá trị cần nhập là giá trị gì? => Phải kết hợp với lệnh xuất dữ liệu

• Không nhận được xâu có dấu cách trống

• Không xóa ký tự thừa trong bộ đệm

=> ảnh hưởng tới lệnh nhập phía sau.

Trang 39

1.2 Các kiểu dữ liệu

Sử dụng fflush sau scanf

Công dụng:

• Xóa những ký tự thừa còn dư lại

trong bộ đệm của scanf

Trang 40

1.2 Các kiểu dữ liệu

Kết hợp nhập

xuất dữ liệu

Trang 41

1.2 Các kiểu dữ liệu

Hàm Gets

• Thư viện: “conio.h”

• Công dụng: nhập vào 1 xâu ký tự

• Ví dụ:

Trang 42

1.2 Các kiểu dữ liệu

Trang 43

Một số hàm nhập / xuất dữ liệu khác

Trang 44

1.2 Các kiểu dữ liệu

Bài tập:

1 Viết chương trình tính chu vi và diện tích của hình tròn.

2 Viết chương trình nhập tọa độ của 3 điểm A, B, C trên mặt phẳng Tính và in ra màn hình chu vi, diện tích của tam giác ABC.

3 Viết chương trình nhập họ tên, hệ số lương của 1 nhân viên Tính

và in ra màn hình số tiền còn lĩnh của nhân viên đó sau khi trừ đi các khoản: BHYT 1.5%, BH thất nghiệp 1% và Đảng phí 1%.

4 Viết chương trình hiện ra màn hình diện tích của tứ diện ABCD

biết rằng A, B, C có tọa độ nhập từ bàn phím (XA, YA) (XB, YB) (XC,

YC) và chiều cao từ đỉnh D xuống mặt phẳng ABC là h.

Trang 46

Lặp theo biến đếm – Lặp dạng for

Lặp theo điều kiện

■Dạng while

■Dạng do….while

Câu lệnh break continue

Trang 47

1.3 Các lệnh điều khiển

Khái niệm khối lệnh

Khối lệnh gồm nhiều lệnh đặt trong cặp dấu { }

Ví dụ:

Khối lệnh thường được dùng trong các cấu trúc điều khiển Nếu

muốn 1 cấu trúc điều khiển tác động lên nhiều lệnh thì các lệnh đó phải đặt trong 1 khối lệnh

Các khối lệnh có thể viết lồng nhau ( lưu ý sử dụng cách viết theo

cấu trúc khối cho dễ phân biệt )

Trang 48

1.3 Các lệnh điều khiển

Toán tử luận lý

Trang 49

• Thực hiện 1 trong 2 lệnh tùy thuộc vào điều kiện đúng/sai.

• Nếu thực nhiện nhiều hơn 1 lệnh => phải để trong cặp dấu { }

Trang 50

1.3 Các lệnh điều khiển

Cấu trúc rẽ nhánh (tiếp)

Ví dụ: Kiểm tra số chẵn lẻ

Trang 51

1.3 Các lệnh điều khiển

Bài tập

• Kiểm tra 1 số nhập vào có phải là số chẵn lớn hơn 10 hoặc số lẻ nhỏ hơn 10.

• Kiểm tra các cạnh nhập vào có tạo thành một tam giác hay không?

• Biện luận giải phương trình bậc 2

Trang 52

1.3 Các lệnh điều khiển

Kiểm tra các cạnh nhập vào

có tạo thành một tam giác

đều hay không ?

Trang 53

1.3 Các lệnh điều khiển

Giải phương trình

bậc 2

Trang 54

1.3 Các lệnh điều khiển

Lưu ý: Sử dụng khối lệnh trong If – Else

• Nếu sau if hoặc else tác động lên nhiều hơn 1 lệnh thì phải sử dụng cặp dấu { }

• Nếu sau if có dấu ; thì điều kiện không còn tác động đến lệnh phía sau

Trang 55

1.3 Các lệnh điều khiển

Lưu ý: Sử dụng khối lệnh trong If - Else (tiếp)

• Giá trị số cũng được coi là điều kiện ( số = 0 : điều kiện sai; số ≠ 0 : điều kiện đúng)

Delta=0?

Trang 56

1.3 Các lệnh điều khiển

Sử dụng If – Else

• Khi muốn chọn 1 trong n quyết định thì sử dụng else if :

Trang 57

1.3 Các lệnh điều khiển

Chương trình xếp loại học lực

theo điểm trung bình

Trang 59

1.3 Các lệnh điều khiển

Cấu trúc rẽ nhánh Switch Case

• Rẽ nhánh if chỉ cho phép chọn một trong hai phương án

• Rẽ nhánh switch … case cho phép chọn một trong nhiều phương án.

Trang 60

• Máy sẽ ra khỏi toán tử switch khi nó gặp câu lệnh break , return

hoặc nó gặp dấu “}” của câu lệnh switch

• Chú ý, khi máy nhảy tới nhãn n i , nếu kết thúc dãy lệnh trong nhãn này không có câu lệnh break hoặc return thì máy sẽ tiếp tục thực hiện các lệnh trong nhãn n i+1

• Thường cuối mỗi dãy lệnh của một nhãn có một lệnh break

Trang 61

1.3 Các lệnh điều khiển

Ví dụ

Trang 62

1.3 Các lệnh điều khiển

Ví dụ

Trang 63

3 Viết chương trình cho phép giải hệ phương trình bậc nhất 2 ẩn x, y

4 Viết chương trình nhập số nguyên x ≤ 9999 sau đó in ra màn hình

cách đọc số nguyên x theo phiên âm tiếng việt (ví dụ: 2010 – hai nghìn không trăm mười)

5 Viết chương trình cho phép nhập tọa độ 3 điểm A, B, C trên mặt

phẳng Hãy cho biết tam giác ABC có là tam giác cân hay không? Chu

vi và diện tích của tam giác?

Trang 64

• Cách 2:

Lặp i chạy từ 1 tới 10

printf(“%d\n”, i);

Trang 66

Nếu sai => thoát vòng lặp.

Nếu đúng => đi vào thực hiện

việc cần lặp

3.Tính B.Thức 3, sau đó quay

trở lại bước 2 để bắt đầu các

bước lặp mới

Trang 68

1.3 Các lệnh điều khiển

Trang 69

Nhận xét

• Nhận xét

• Biểu thức 1 chỉ được tính một lần

• Biểu thức 2 , biểu thức 3 và khối lệnh trong thân lệnh for

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

• Dựa các giá trị khởi tạo biến điều khiển, điều kiện lặp và

biểu thức 3 có thể tính được số lần lặp.

• Khi biểu thức 2 vắng mặt thì nó được xem là đúng (vòng lặp

vô hạ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.

• Có thể sử dụng các lệnh for lồng nhau

Trang 70

1.3 Các lệnh điều khiển

Lặp For trên dữ liệu kiểu Array

Trang 71

1.3 Các lệnh điều khiển

Bài tập

1 Tính TBC các số lẻ ≤ N

2 Tìm ước số chung lớn nhất (UCLN) của 2 số a, b

3 Kiểm tra xem số N có phải là số nguyên tố không?

4 Hiển thị tất cả các số nguyên tố ≤ N

5 In ra màn hình tam giác cân độ cao N gồm toàn các dấu ‘*’

có dạng bên (dùng vòng lặp For)

Trang 72

1.3 Các lệnh điều khiển

Bài tập (tiếp)

1 Tính TBC các số lẻ trong dãy số a1, a2,…,aN

2 Tìm giá trị min/max trong dãy a1, a2,…,aN

3 Đếm xem trong dãy a1, a2,…,aN có bao nhiêu số nguyên tố ?

4 Cho dãy điểm M1(x1, y1), M2(x2, y2),…,Mn(xn, yn) trên mặt phẳng.Hãy:

Tìm độ dài đường gấp khúc M1M2 Mn

Tìm đoạn MiMj ( i≠j ) có độ dài lớn nhất

Đếm xem có bao nhiêu đoạn cắt trục 0y

Có bao nhiêu điểm thuộc góc phần tư thứ nhất.

Trang 73

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

• Hãy vẽ sơ đồ khối biểu diễn lệnh while

Trang 74

1.3 Các lệnh điều khiển

Lặp dạng While

Trang 75

1.3 Các lệnh điều khiển

Lưu ý

• Biểu thức điều kiện luôn dược đặt trong cặp dấu “(”“)”

• Biểu thức điều kiện sẽ được tính toán đầu tiên nên phải có giá trị

Trang 76

• Thực hiện khối lệnh trong khi biểu thức có giá trị đúng (khác 0)

• Thực hiện khối lệnh trước khi kiểm tra biểu thức điều kiện

• Khối lệnh được thực hiện ít nhất 1 lần

Trang 77

1.3 Các lệnh điều khiển

Ví dụ

Trang 81

1 Hãy viết chương trình tìm và in ra các số là số nguyên tố trong dãy số a1,

a2, ,aN

2 Hãy viết chương trình tính giá trị của biểu thức

3 Hãy viết chương trình tìm trong số các phần tử của dãy a1, a2, ,aN có

bao nhiêu cặp (ai, aj) với i≠j thỏa điều kiện ai+aj = x

4 Hãy viết chương trình đổi một số nguyên dương N sang hệ đếm cơ số

2 (hệ nhị phân)

5 Hãy viết chương trình giải phương trình bậc 2 ax2+ bx + c = 0

81

Trang 82

6 Hãy viết chương trình tìm tích của 2 ma trận Amxn và Bnxp

7 Hãy viết chương trình tìm độ dài của đường gấp khúc đi qua N điểm

10.Viết chương trình tìm trung bình cộng của các phần tử là số chính

phương trong dãy a1, a2, ,aN

82

Ngày đăng: 25/10/2020, 18:26

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm