Nái dung gßm 05 chư¢ng sau: Chư¢ng 1: Táng quan về ngôn ngÿ lÁp trình C Chư¢ng 2: CÁu trúc điều khiển trong ngôn ngÿ lÁp trình C Chư¢ng 3: Kiểu dÿ liệu có cÁu trúc Chư¢ng 4: Hàm trong ng
Trang 1Bà XÂY DĀNG
TR¯àNG CAO ĐÀNG XÂY DĂNG Sà 1
GIÁO TRÌNH MÔN HàC: C¡ Sâ LÀP TRÌNH NGÀNH: CÔNG NGHà THÔNG TIN
TRÌNH Đà: CAO ĐÀNG
Ban hành theo Quyết định số: 368ĐT/QĐ-CĐXD1 ngày 10 tháng 8 năm 2021
của Hiệu trưởng Trường Cao đẳng Xây dựng số 1
Hà Nội, năm 2021
Trang 2TUYÊN Bà BÀN QUYÀN
Tài liệu này thuác loại sách giáo trình nên các ngußn thông tin có thể đưāc phép dùng nguyên b¿n hoặc trích dùng cho các mục đích về đào tạo và tham kh¿o
Mọi mục đích khác mang tính lệch lạc hoặc sử dụng với mục đích kinh doanh thiếu lành mạnh sẽ bị nghiêm cÁm
Trang 3LàI NÓI ĐÄU
Giáo trình C¡ Sà LÀP TRÌNH đưāc biên soạn nh¿m phục vụ cho gi¿ng dạy và học tÁp cho trình đá Trung cÁp ngành Công nghệ thông tin á trưßng Cao đÁng Xây dāng số 1 C¡ Sà LÀP TRÌNH là môn học c¢ sá ngành nh¿m cung cÁp các kiến thức về lÁp trình cho ngành công nghệ thông tin
Giáo trình C¡ Sà LÀP TRÌNH do bá môn Tin c¢ sá gßm: ThS.Đß Thị Xuân Thắm làm chủ biên và các thầy cô Trần Thị M¢ và Lê Thị Lư¢ng tham gia biên soạn Giáo trình này đưāc viết theo đề cư¢ng môn học LÁp trình căn b¿n Ngoài ra giáo trình còn bá sung thêm mát số kiến thức mà trong các giáo trình trước chưa đề cÁp tới
Nái dung gßm 05 chư¢ng sau: Chư¢ng 1: Táng quan về ngôn ngÿ lÁp trình C Chư¢ng 2: CÁu trúc điều khiển trong ngôn ngÿ lÁp trình C Chư¢ng 3: Kiểu dÿ liệu có cÁu trúc
Chư¢ng 4: Hàm trong ngôn ngÿ lÁp trình C Chư¢ng 5: Kiểu dÿ liệu tệp
Trong quá trình biên soạn, nhóm gi¿ng viên Bá môn Tin c¢ sá của Trưßng Cao đÁng Xây dāng Số 1 - Bá Xây dāng, đã đưāc sā đáng viên quan tâm và góp ý của các đßng chí lãnh đạo, các đßng nghiệp trong và ngoài trưßng
Mặc dù có nhiều cố gắng, nhưng trong quá trình biên soạn, biên tÁp và in Án khó tránh khỏi nhÿng thiếu sót Chúng tôi xin đưāc lưāng thứ và tiếp thu nhÿng ý kiến đóng góp
Trân trọng c¿m ¢n! Hà Nái, ngày&&tháng&&năm&&& Tham gia biên soạn
1 ThS Đß Thị Xuân Thắm - Chủ biên
Trang 4MĀC LĀC
Ch°¢ng 1: Táng quan vÁ ngôn ngā lÁp trình C 6
1.1 Gißi thiáu ngôn ngā lÁp trình 7
1.1.1 Các khái niệm chương trình, lập trình, lập trình viên 7
1.1.2 Giới thiệu về ngôn ngữ lập trình 10
1.2 Các khái niám c¢ bÁn 11
1.2.1 Các yếu tố cơ bản 11
1.2.2 Cấu trúc một chương trình 13
1.2.3 Môi trường làm việc 14
1.3 Một sá kiÃu dā liáu c¢ bÁn trong C 16
1.4 NhÁp/ xuÃt dā liáu trong C 19
2.1.1 Cấu trúc rẽ nhánh có điều kiện 30
2.1.2 Cấu trúc rẽ nhánh vô điều kiện 38
3.2 KiÃu dā liáu con trß 59
3.2.1 Khái niệm con trỏ 60
3.2.2 Sử dụng biến con trỏ 61
3.2.3 Sử dụng con trỏ trong mảng một chiều 61
3.2.4 Sử dụng con trỏ trong mảng nhiều chiều 61
3.3 KiÃu dā liáu cÃu trúc (struct) 61
Trang 53.3.1 Khái niệm kiểu dữ liệu cấu trúc 61
3.3.2 Khai báo kiểu dữ liệu cấu trúc 62
3.3.3 Truy xuất đến các thành phần của cấu trúc 63
3.3.4 Phối hợp mảng và dữ liệu kiểu cấu trúc 67
3.4 KiÃu dā liáu tă đßnh nghĩa 67
3.4.1 Kiểu liệt kê 67
4.2.3 Nguyên tắc hoạt động của hàm 75
4.2.4 Truyền tham số cho hàm 75
Trang 6Tên môn hác: C¡ Sâ LÀP TRÌNH Mã môn hác: MH10
Thái gian thăc hián môn hác: 60 giß; (Lý thuyết: 30 giß; Thāc hành, th¿o luÁn, bài
tÁp: 27 giß; Kiểm tra: 3 giß)
II Māc tiêu của môn hác:
- Về kiến thức: Ngưßi học có đưāc các kiến thức về các kiểu dÿ liệu c¢ b¿n, các hàm, thủ tục chuẩn của ngôn ngÿ lÁp trình C; các cÁu trúc lệnh trong ngôn ngÿ lÁp
trình C; các kiểu dÿ liệu có cÁu trúc; cÁu trúc hàm trong ngôn ngÿ lÁp trình C
- Về kỹ năng: LÁp trình để gi¿i quyết đưāc mát số bài toán c¢ b¿n, phát triển kỹ năng để lÁp trình trong các ngôn ngÿ lÁp trình khác
- Về năng lāc tā chủ và trách nhiệm: Rèn luyện lòng yêu nghề, tư thế tác phong công nghiệp, tính kiên trì, sáng tạo trong công việc, có kh¿ năng làm việc đác lÁp và biết kết hāp nhóm
III Nội dung môn hác:
Trang 7CH¯¡NG 1: TàNG QUAN VÀ NGÔN NGĀ LÀP TRÌNH C
Mục tiêu:
- Cung cấp cho người học các kiến thức cơ bản về ngôn ngữ lập trình C:
Bộ chữ viết trong C, các từ khóa, các kiểu dữ liệu, biến và các biểu thức trong C
- Cấu trúc một chương trình viết bằng ngôn ngữ lập trình C
- Môi trường làm việc và một số thao tác cơ bản
- Cách sử dụng câu lệnh gán giá trị của một biểu thức cho một biến
- Cách sử dụng lệnh scanf để nhập giá trị cho biến
- Cách sử dụng lệnh printf để xuất giá trị của biểu thức lên mà hình và
cách định dạng dữ liệu
Nội dung chương:
1.1 Gißi thiáu ngôn ngā lÁp trình 1.1.1 Các khái niám ch°¢ng trình, lÁp trình, lÁp trình viên
Chư¢ng trình - Khái niám: Chư¢ng trình là mát tÁp hāp các mô t¿, các phát biểu, n¿m trong
hệ thống quy ước về ý nghĩa và thứ tā thāc hiện, nh¿m điều khiển máy tính làm việc
Chư¢ng trình = ThuÁt toán + CÁu trúc dÿ liệu Các thuÁt toán và chư¢ng trình đều có cÁu trúc dāa trên ba cÁu trúc điều khiển c¢ b¿n:
TuÅn tă: Các bước thāc hiện tuần tā mát các chính xác từ trên xuống, mßi
bước chỉ thāc hiện mát lần
Chán lác: Lāa chọn mát công việc để thāc hiện căn cứ vào mát điều kiện nào
đó Có mát số dạng như sau:
+ Cấu trúc 1: Nếu <điều kiện> (đúng) thì thāc hiện <công việc>
+ Cấu trúc 2: Nếu <điều kiện> (đúng) thì thāc hiện <công việc 1>, ngưāc lại
(điều kiện sai) thì thāc hiện <công việc 2>
+ Cấu trúc 3: Trưßng hāp <i> thāc hiện <công việc i>
Lặp l¿i: Thāc hiện lặp lại mát công việc mát hoặc nhiều lần căn cứ vào điều
kiện nào đó Có hai dạng lặp như sau:
+ Lặp xác định: là loại lặp mà khi viết chư¢ng trình, ngưßi lÁp trình đã xác định
đưāc công việc lặp bao nhiêu lần
Trang 8+ Lặp không xác định: là loại lặp mà khi viết chư¢ng trình ngưßi lÁp trình chưa
xác định đưāc công việc lặp bao nhiêu lần Số lần lặp sẽ đưāc xác định khi chư¢ng trình thāc thi
Muốn trá thành lÁp trình viên chuyên nghiệp ph¿i thāc hiện trình tā để có thói quen và thuÁn lāi sau này trên nhiều mặt của ngưßi làm máy tính Ta cần thāc hiện theo các bước sau:
Tìm và xây dāng thuÁt gi¿i (trên giÁy) → Viết chư¢ng trình trên máy tính → dịch chư¢ng trình → chạy thử chư¢ng trình
b Ngôn ngÿ lÁp trình (Programming Language) Ngôn ngÿ lÁp trình là mát hệ thống các ký hiệu tuân theo các quy ước về ngÿ pháp và ngÿ nghĩa, dùng để xây dāng thành các chư¢ng trình cho máy tính
Mát chư¢ng trình đưāc viết b¿ng mát ngôn ngÿ lÁp trình cụ thể (ví dụ C, C++, C#, ) gọi là chư¢ng trình ngußn, chư¢ng trình dịch làm nhiệm vụ dịch chư¢ng trình ngußn thành chư¢ng trình thāc thi đưāc trên máy tính
c LÁp trình viên LÁp trình viên là ngưßi đưa ra 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 3
Process 3 Output quy trình nhÁp 3 xÿ lý - xuÃt)
- B°ßc 2: LÁp 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: Chạy thử chư¢ng trình (dịch chư¢ng trình)
- B°ßc 5: Kiểm chứng và hoàn thiện chư¢ng trình (thử nghiệm b¿ng nhiều số
liệu và đánh giá)
d Kỹ thuÁt lÁp trình Quy trình nhÁp 3 xử lý 3 xuÁt I-P-O Cycle (Input-Pprocess-Output Cycle) Quy trình xử lý c¢ b¿n của máy tính gßm I-P-O
Ví dā 1: Xác định Input, Process, Output của việc làm mát ly nước chanh nóng
- Input (vào): Ly, đưßng, chanh, nước nóng, mußng
- Porcess (xử lý): Cho hßn hāp đưßng, chanh, nước nóng vào ly Sau đó dùng
thìa khuÁy để dùng
- Output (ra): Ly nước chanh nóng
Trang 9Ví dā 2: Xác định Input, Process, Output của chư¢ng trình tính tiền lư¢ng công
nhân tháng 9/2020 biết r¿ng lư¢ng = lư¢ng căn b¿n* ngày công
- Input: Lư¢ng căn b¿n, ngày công
- Process: Nhân lư¢ng căn b¿n với ngày công
Hình dạng (symbol) Hành đáng (Activity)
Dÿ liệu vào (Input) Xử lý (Process) Dÿ liệu ra (Output) Quyết định (Decision), sử dụng điều kiện
Lußng xử lý (Flow lines) Gọi CT con, hàm& (Procedure, Function&)
Bắt đầu, kết thúc (Begin, End)
Trang 10Điểm ghép nối (Connector)
1.1.2 Gißi thiáu vÁ ngôn ngā lÁp trình
1.1.2.1 Sự phát triển của các công cụ lập trình
C là ngôn ngÿ lÁp trình cÁp cao, đưāc sử dụng phá biến để lÁp trình hệ thống cùng với Asembler và phát triển các ứng dụng
Ban đầu, C đưāc thiết kế nh¿m lÁp trình trong môi trưßng của hệ điều hành Unix nh¿m mục đích hß trā các công việc lÁp trình phức tạp Nhưng về sau, với nhÿng nhu cầu phát triển ngày càng tăng của công việc lÁp trình, C đã vưāt qua khuôn khá của phòng thí nghiệm Bell và nhanh chóng hái nhÁp vào thế giới lÁp trình để rßi đưāc các công ty lÁp trình sử dụng mát cách ráng rãi Sau đó các công ty s¿n xuÁt phần mềm lần lưāt đưa ra các phiên b¿n hß trā cho việc lÁp trình b¿ng ngôn ngÿ C và chuẩn ANSI C cũng đưāc sinh ra từ đó
1.1.2.2 Ngôn ngữ lập trình C
Ngôn ngÿ lÁp trình C là mát ngôn ngÿ lÁp trình hệ thống mạnh và rÁt mềm dẻo, có mát thư viện gßm nhiều hàm (function) đưāc tạo sẵn Ngưßi lÁp trình có thể tÁn
Trang 11dụng các hàm này để gi¿i quyết bài toán mà không cần tạo mới Ngoài ra C còn cho phép ngưßi dùng tā định nghĩa thêm các kiểu dÿ liệu trừu tưāng khác
Ngôn ngÿ C có đặc điểm c¢ b¿n sau: + Tính cô đọng: C chỉ có 32 từ khóa chuẩn, 40 toán tử chuẩn nhưng hầu hết đều
đưāc biểu diễn b¿ng nhÿng chußi ký tā ngắn gọn
+ Tính cấu trúc: C có mát tÁp hāp nhÿng chỉ thị của lÁp trình như cÁu trúc lāa
chọn, cÁu trúc lặp, từ đó viết chư¢ng trình b¿ng C đưāc tá chức rõ ràng, dễ hiểu
+ Tính tương thích: C có mát tiền xử lý và mát thư viện chuẩn vô cùng phong
phú nên khi chuyển từ máy tính này sang máy tính khác các chư¢ng trình viết b¿ng C v¿n tư¢ng thích
+ Tính linh động: C có mát ngôn ngÿ uyển chuyển và cú pháp, chÁp nhÁn nhiều
cách thể hiện, có thể thu gọn kích thước của mã lệnh làm chư¢ng trình chạy nhanh h¢n
1.2 Các khái niám c¢ bÁn 1.2.1 Các y¿u tá c¢ bÁn
Bộ ký tă: dùng trong ngôn ngÿ C: 52 chÿ cái thưßng và chÿ cái hoa, 10 chÿ số
và các ký tā: + - * / % ( ) ] [ {} > < ? !, & dÁu cách TÁt c¿ các ký tā trừ hàng phím F
Từ khóa là nhÿng từ dành riêng cho C, không thể dùng nó để đặt tên cho biến,
h¿ng, m¿ng hàm Từ khóa đưāc viết b¿ng chÿ th°áng trước và sau từ đều có dÁu
cách Ví dụ: for, if, while, do, go, printf, scanf, break, continue, struct, từ khóa là dùng để viết lệnh
Tên: tên dùng để đặt tên cho các đại lưāng trong chư¢ng trình (biến, h¿ng, con trỏ, tên hàm, tên tệp, tên cÁu trúc, tên nhãn, ) Tên có hai loại:
- Tên chuẩn là tên do C đặt sẵn như tên kiểu dÿ liệu: int (nguyên), char(ký tā),
float (số thāc), string (chußi), , tên hàm: sin, cos, power,
- Tên do người lập trình đặt để dùng trong chư¢ng trình của mình Sử dụng bá
chÿ cái, chÿ số và dÁu gạch dưới(_) để đặt tên ph¿i tuân theo quy tắc:
+ Bắt đầu b¿ng chÿ hoặc dÁu gạch dưới + Không có kho¿ng trắng giÿa các tên + Không đưāc trùng với từ khóa + Đá dài tên không quá 32 ký tā + Ví dụ: Chieu_dai_hinh_chu_nhat, Chu_vi, Dien_tich, Max, sum: là tên hāp lệ
Trang 12Tên không hāp lệ: Do dai a, 12ª2,
H¿ng: là đại lưāng không đái trong suốt quá trình thāc thi của chư¢ng trình
H¿ng có thể là mát chußi ký tā, mát ký tā, mát con số xác định
Bi¿n: là đại lưāng đưāc ngưßi lÁp trình định nghĩa và đặt tên thông qua khai
báo biến Biến dùng để chứa dÿ liệu trong quá trình thāc hiện chư¢ng trình và giá trị của biến có thể thay đái trong quá trình này Cách đặt tên cho biến giống á trên
Lái chú thích: Dùng để viết mô t¿ mát công việc đặc biệt, mát hàm hay toàn
bá chư¢ng trình Chú thích đưāc đặt trong dÁu // chú thích Trình biên dịch sẽ bỏ qua phần chú thích Trong trưßng hāp chú thích có nhiều dòng, nó sẽ bắt đầu b¿ng ký hiệu /* và kết thúc là */
Khai báo biến: <kiểu dÿ liệu> danh sách các tên biến cách nhau bái dÁu phẩy; Ví dụ:
int m, n = 100; // khai báo có mát biến nguyên là m, và môt biến nguyên n Máy sẽ phân bố mßi biến là 2 byte Sau khi khai báo xong máy cho giá trị 100 vào biến n
float x, y; double z = 35289.75; char c;// khai báo 1 biến kiểu ký tā Char hoten[25]; // m¿ng kiểu ký tā có chứa họ tên của ngưßi có 25 ký tā float a[1000];//m¿ng có 1000 số thāc kiểu float
int b[10][30]; // khai mát ma trÁn b có 10 hàng 30 cát kiểu số nguyên Vị trí khai báo biến trong C
Trong C ph¿i khai báo biến đúng vị trí Nếu khai báo (đặt các biến không đúng vị trí sẽ d¿n đến nhÿng sai sót ngoài ý muốn mà ngưßi lÁp trình không lưßng đưāc Có hai cách đặt vị trí của biến:
Khai báo biến ngoài: Các biến này đưāc đặt bên ngoài tÁt c¿ các hàm và nó có
tác dụng hay ¿nh hưáng đến toàn bá chư¢ng trình (còn gọi là biến toàn cục)
Ví dụ: int i; // biến toàn cục float pi; // biến toàn cục int main() { &}
Khai báo biến trong: Các biến đưāc đặt á trong hàm, chư¢ng trình chính hay
mát khối lệnh Các biến này chỉ có tác dụng hay ¿nh hưáng đến hàm, chư¢ng trình hay khối lệnh chứa nó Khai báo biến, ph¿i đặt các bi¿n này á đÅu khái lánh, tr°ßc lánh
gán,&
Trang 13Phép toán lÁy địa chỉ của biến x là &x Ví dụ khai báo double z = 35289.75; sẽ cÁp mát vùng nhớ là 8 byte cho biến z, giá trị khái đầu của z là 35289.75, địa chỉ hiện tại của vùng nhớ chứa biến z là &z (có thể in ra địa chỉ này dưới dạng số hệ 16)
1.2.2 CÃu trúc một ch°¢ng trình
int main() {
}
CÁu trúc mát chư¢ng trình: 1 Khai báo các thư viện sử dụng trong hàm 2 Main()
Chư¢ng trình C đưāc chia nhỏ thành nhÿng đ¢n vị gọi là hàm Không kể có bao nhiêu hàm trong chư¢ng trình, hệ điều hành luôn tra quyền điều khiển cho hàm main() khi mát chư¢ng trình c đưāc thāc thi
Theo sau tên hàm là dÁu ngoặc đ¢n() DÁu ngoặc đ¢n có thể có chưa hay không chưa nhÿng tham số 3 DÁu phân cách { }
Sau phần đầu hàm là dÁu ngoặc xoắn má{ Nó cho biết việc thi hành lệnh trong hàm bắt đầu Tư¢ng tā, dÁu ngoặc xoắn đóng} sau câu lệnh cuối cùng trong hàm chỉ ra điểm kết thúc của hàm
DÁu kết thúc lệnh dÁu chÁm phẩy ; Mát câu lệnh trong C đưāc kết thúc b¿ng dÁu chÁm phẩy ; Trình biên dịch C không hiểu việc xuống dòng (\n), kho¿ng trắng hay tab
Thân hàm chính
Định nghĩa hàm (thân
hàm) # Tiền xử lý Khai báo các thư viện
Khai báo biến, hàm,& Khai báo biến, hàm đưāc sử dụng trong hư¢ng trình
chính
Trang 14(\t) nên muốn sử dụng ph¿i sử dụng ký hiệu
Mát câu lệnh không kết thúc b¿ng dÁu ; coi như câu lệnh lßi 4 // Dòng chú thích
Chú thích dùng để mô t¿ công việc của mát lệnh đặc biệt, mát hàm hay toàn bá chư¢ng trình
Trình biên dịch sẽ bỏ qua phần chú thích Trong trưßng hāp chú thích có nhiều dòng, nó sẽ bắt đầu b¿ng ký hiệu /* và kết thúc là */
5 Khai báo biến, chư¢ng trình con (nếu có) 6 Các công việc cần xử lý
nút Download để t¿i về máy tệp Dev C++ 5.11
- B°ßc 2: Nháy đúp vào tên tệp vừa t¿i về để cài đặt Dev C++ vào máy, trên
màn hình nền thêm biểu tưāng DeV C++ 5.11
- B°ßc 3: Nháy vào biểu tưāng Dev C++ để khái đáng chư¢ng trình, hiện màn hình làm việc
- B°ßc 4: Màn hình làm việc ngầm định của Dev C++ có phông chÿ nhỏ Muốn hiện chÿ to rõ dùng lệnh Tools→ Editor Options→ Fonts, chọn phông chÿ là:
Consolas, Size: 16, Án Ok
Trang 15- B°ßc 5: Cửa sá xuÁt dÿ liệu của Dev C++ có màu đen và chÿ trắng và rÁt nhỏ,
trông xÁu và khó nhìn Để chÿ to và đái nền màu khác ta thāc hiện như sau Khi chạy chư¢ng trình xuÁt hiện màn hình như sau:
Kích chuát trái góc trên chọn properties/ XuÁt hiện háp thoại sau
Chọn Layout đặt lại chiều ráng và chiều cao của màn hình xuÁt hiện, chọn tab Colors: Chọn màu sắc phù hāp
Trang web gõ code online: https://www.onlinegdb.com/: Gõ chư¢ng trình rßi chọn ngôn ngÿ chạy Án run
b Mát số thao tác c¢ b¿n trên Dev C++
Chán File mßi: Vào File→ chọn New→ source file soạn chư¢ng trình ngußn Ghi táp vào đĩa vào File→Save xuÁt hiện háp thoại
Trang 16Tìm đưßng d¿n đến n¢i muốn lưu, gõ tên file name theo mục đích sử dụng Àn Save
Cách chạy chư¢ng trình: Ví dụ chạy thử chư¢ng trình in ra dòng chÿ < Xin chao cac ban=
1 2 3 4 5 6
/* Chuong trinh in ra cau bai hoc C dau tien */
#include <stdio.h> int main ()
{ printf("Bai hoc C dau tien.");
} Gi¿i thích:
Dòng 1: dòng bắt đầu /* và kết thúc */ là dòng gi¿i thích Khi chạy chư¢ng trình dòng này không đưāc dịch và cũng không thi hành lệnh gì c¿
Dòng 2: #include <stdio.h> vì trong chư¢ng trình này sử dụng thư viện C là
printf khai báo lệnh này để báo cho trình biên dịch
Dòng 3: Dòng trắng cho thoáng dễ nhìn
Dòng 4: int main () là thành phần chính của mọi chư¢ng trình C
Dòng 5, 7 dÁu má { và đóng} giới hạn thân hàm Dòng 6: printf("Bai hoc C dau tien."); lệnh này yêu cầu máy in ra mát chußi ký tā n¿m trong dÁu nháy kép (<=) Hàng này gọi là câu lệnh, kết thúc trong C ph¿i có dÁu chÁm phẩy;
1.3 Một sá kiÃu dā liáu c¢ bÁn trong C
Trang 17Mßi biến ph¿i nhÁn mát kiểu dÿ liệu nhÁt định tùy theo mục đích sử dụng Mßi ngôn ngÿ bÁc cao điều định nghĩa sẵn mát kiểu dÿ liệu nhÁt định đưāc sử dụng mà không ph¿i định nghĩa lại Trong C có mát số kiểu tiêu chuẩn như sau:
Tiêu
int Kiểu số nguyên 4 byte -2147489647 đến -2147489647 char Kiểu ký tā 1 byte Từ 0 đến 255
float Kiểu số thāc 4 byte 1.175X10-38 đến 3.403x1038 double Kiểu số thāc với
nhiều chÿ số sau dÁu phẩy h¢n
8 byte 2.225x10-38 đến 1.798x1038
KiÃu void: Kiểu void có nghĩa là <không có giá trị=, nó không đưāc dùng trong
khai báo biến thông thưßng mà đưāc sử dụng để chỉ định kiểu của các hàm không có giá trị tr¿ về Chúng ta sẽ hiểu rõ h¢n về kiểu dÿ liệu này trong tư¢ng lai á các bài học về hàm, con trỏ,&
Biểu thức là mát sā kết hāp giÿa các toán tử và các toán hạng theo đúng mát trÁt tā nhÁt định
Mßi toán hạng có thể là mát h¿ng, mát biến hoặc mát biểu thức khác Trong trưßng hāp, biểu thức có nhiều toán tử, ta dùng dÁu ngoặc đ¢n () để chỉ định toán tử nào thāc hiện trước
Các toán tử số học: trong c các toán tử +, -, *, / làm việc tư¢ng tā như các ngôn ngÿ khác
++ Tăng mát đ¢n vị (ví dụ i = i + 1 hay viết i++)
Trang 18Gi¿m mát đ¢n vị (ví dụ i = i - 1 hay viết i ) Các toán tử quan hệ : Kiểm tra quan hệ giÿa hai biến hay giÿa mát biến với mát h¿ng
> So sánh lớn h¢n 5>4 1 < So sánh nhỏ h¢n 6 < 4 0 >= So sánh lớn hoặc b¿ng 5>=4 1 <= So sánh nhỏ h¢n hoặc b¿ng 6 <= 7 1 Các toán tử logic: là nhÿng ký hiệu dùng để kết hāp hay phủ định biểu thức chứa các toán tử quan hệ
Toán
&& Và
(AND) Kết qu¿ là trừ khi c¿
hai điều kiện đều đúng
(5> 5) && (4<6)
đúng
(5>4)||(4>5) 1
Toán tử ? cùng với: C có mát toán tử rÁt mạnh và thích hāp để thay thế cho các câu lệnh của If-then-Else
Cú pháp của việc sử dụng toán tử ? là: E1 ? E2 : E3 Trong đó E1, E2, E3 là các biểu thức
Trang 19Ý nghĩa: trước tiên E1 đưāc ước lưāng, nếu đúng E2 đưāc ước lưāng và nó trá th¿nh giá trị của biểu thức; nếu E1 sai, E2 đưāc ước lưāng trá thành giá trị của biểu thức
Ví dụ: X= 10 Y = X>9 ? 100 : 200 Thì Y đưāc gán giá trị 100, nếu X nhỏ h¢n 9 thì Y sẽ nhÁn giá trị là 200 Đoạn mã này tư¢ng đư¢ng cÁu trúc if như sau:
X = 10; if (X<9) y =100; else Y = 200; Toán tử con trỏ & và *
Toán tử dÁu phẩy: dùng để kết hāp các biểu thức lại Đá ưu tiên của các toán tử:
Đá ưu tiên tạo nên cÁu trúc phân cÁp của loại toán tử này so với loại toán tử khác khi tính giá trị của mát biểu thức số học
Nó đề cÁp đến thứ tā thāc thi các toán tử trong C Đá ưu tiên của các toán tử này đưāc thay đái bái các dÁu ngoặc đ¢n trong biểu thức
Mát ngôi - ++ Ph¿i đến trái Hai ngôi ^ Trái đến ph¿i Hai ngôi */ % Trái đến ph¿i Hai ngôi + - Trái đến ph¿i Hai ngôi = Ph¿i đến trái Ví dụ: -8*4/2 3 3 (thāc hiện *, /, -)
Đá ưu tiên của phép toán so sánh (quan hệ) luôn đưāc tính từ trái sang ph¿i Đá ưu tiên của toán tử logic: Not, and, or
1.4 NhÁp/ xuÃt dā liáu trong C 1.4.1 Câu lánh
Khái niám: Mát câu lệnh xác định mát công việc mà chư¢ng trình ph¿i thāc
hiện để xử lý dÿ liệu đưāc mô t¿ và khai báo Các câu lệnh đưāc ngăn với nhau bái dÁu ;
Trang 20Phân lo¿i có hai loại: câu lệnh đ¢n và lệnh có cÁu trúc
Câu lệnh đơn là mát lệnh không chứa các lệnh khác Các lệnh này bao gßm
lệnh gán, lệnh nhÁp, xuÁt dÿ liệu,&
Cú pháp: < Tên bi¿n> = <biÃu thức>
Ví dụ: x = 10; // gán h¿ng số 10 cho biến x hoặc
<Tên kiÃu dā liáu> <tên bi¿n> = <biÃu thức>
Ví dụ: int x = 10;
Câu lệnh có cấu trúc: Câu lệnh trong đó có chứa các lệnh khác Bao gßm lệnh
điều kiện rẽ nhánh, cÁu trúc điều kiện lāa chọn, cÁu trúc lặp, &
1.4.2 Các hàm nhÁp dā liáu
Hàm nhÁp dÿ liệu là dạng dÿ liệu đưāc đưa từ bên ngoài vào Hàm scanf() dùng để nhÁp có định dạng
Cú pháp: scanf ("chuỗi đßnh d¿ng", &đßa chỉ các bi¿n)
Khi sử dụng hàm ph¿i khai báo tiền xử lý #include <stdio.h> Trong đó:
- scanf: tên hàm, ph¿i viết b¿ng chÿ thưßng - Chußi định dạng: dùng để quy định kiểu dÿ liệu, cách biểu diễn, đá ráng, số chÿ số thÁp phân, & đưāc đặt trong cặp nháy kép (" ") Mát số định dạng khi nhÁp số nguyên, số thāc, ký tā
%4d NhÁp vào số nguyên có tối đa 4 ký tā, nếu nhÁp nhiều
h¢n 4 ký số thì chỉ nhÁn đưāc 4 ký số đầu tiên
%6f NhÁp số thāc tối đa 6 ký số (tính luôn dÁu chÁm),
nếu nhÁp nhiều h¢n 6 ký số thì chỉ nhÁn 6 ký số đầu tiên
Trang 21(hoặc 5 ký số với dÁu chÁm) - Địa chỉ các biến: tên các biến ph¿i có dÁu và & thì sẽ nhÁp đưāc từ bàn phím,
các biến cách nhau b¿ng dÁu phẩy Đưāc viết như sau: &<tên bi¿n>
Chức năng hàm scanf: dùng để vào dÿ liệu từ bàn phím cho các biến Mßi đặc
t¿ quy định định dạng dÿ liệu nhÁp vào cho mát biến: %d vào số nguyên, %ld vào số nguyên dài, %c vào mát ký tā, %f vào mát số thāc, %s vào mát xâu ký tā không có dÁu cách
Ví dā 1: scanf("%d", &i); // Đọc giá trị cho biến i có kiểu nguyên Ví dā 2: scanf("%d%d", &a, &b);// đọc giá trị cho biến a, b có kiểu số nguyên
Chú ý: + Chußi định dạng ph¿i đặt trong cặp dÁy nháy kép (<=) + Các biến (địa chỉ biến) ph¿i cách nhau b¿ng 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
1.4.3 Các hàm xuÃt dā liáu Khái niám: Để xuÁt dÿ liệu ra màn hình, trong C có hàm printf Hàm printf là
hàm in kết qu¿ ra màn hình chuẩn, tùy thuác vào định dạng và các tham số đưāc truyền vào Hàm printf (n¿m trong thư viện stdio.h)
Cú pháp: printf(<chuỗi đßnh d¿ng=, danh sách biÃu thức);
printf: tên hàm, ph¿i viết b¿ng chÿ thưßng Trong đó:
- Chuỗi định dạng: dùng để quy định kiểu dÿ liệu, cách biểu diễn, đá ráng, số
chÿ số thÁp phân (giống hàm scanf)
- Danh sách biểu thức: là các biểu thức mà chúng ta cần xuÁt giá trị của nó lên
màn hình, mßi biểu thức phân cách nhau b¿ng dÁu phẩy
+ Đối với chußi kí tā ghi như thế nào in ra giống như vÁy + Chußi định dạng để xác định tham số của hàm printf sẽ đưāc in ra như thế nào Trong các ký tā đưāc in ra, chúng ta có thể sử dụng mát số ký tā đặc biệt sau:
Ký hiệu Mô t¿ \n Sang dòng mới \f Sang trang mới \b Lùi lại mát bước
Trang 22\t DÁu tab
r Trá về đầu dòng Các đặc t¿ đặc biệt định dạng b¿ng dÁu % và kết thúc bái mát ký tā chuyển dạng Ví dụ: %s có nghĩa là chèn tham số là mát sâu vào %d có nghĩa là chèn tham số là mát số nguyên vào
Ví dụ: Đoạn mã sau char ten[10]= <Nam=; int tuoi = 20;
printf(<xin chao%s, %d tuoi=, ten, tuoi); Chạy sẽ in ra dòng chÿ: xin chao Nam, 20 tuoi Sau đây là mát số đặc t¿ chuyển dạng dÿ liệu khác nhau cho các kiểu khác nhau trong C:
- Chußi trong nháy kép cần in ra "Bạn có thể viết chÿ HOA, thưßng tùy, ý"
Trang 23- 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 /* & */ hoặc // &
- Thân hàm ph¿i đưāc bao bái cặp { } - Các câu lệnh trong thân hàm ph¿i viết thụt vào
Bài tÁp ch°¢ng 1
Bài 1: In ra màn hình câu < Xin chao=
H°ßng d¿n: B°ßc 1: Má chư¢ng trình trên màn hình
B°ßc 2: Vào file → New → chọn Source (hoặc Án Ctrl + N)→ XuÁt hiện màn hình soạn th¿o
B°ßc 3: Lưu bài vào File → Save As (Àn Ctrl + S)→ XHHT
Chọn File name: Đặt tên file (dễ nhớ) → Chọn đưßng d¿n đến file bài tÁp → Àn Save As: Lưu
B°ßc 4: NhÁp code
1 2 3 4 5 6 7
#include <stdio.h> int main()
{ printf("Xin chao cac ban!"); printf("\n =================");
return 0; }
Trang 24B°ßc 5: NhÁp xong code Án Ctrl + S lưu lại Chạy chư¢ng trình Án phím chức
Trang 25Chọn File name: tên file Chọn đưßng d¿n đến file bài tÁp cần để Àn Save: Lưu
B°ßc 4: NhÁp code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
#include <stdio.h> #include <conio.h> #include <math.h> int main()
{ int a, b, tong =0, hieu= 0, tich=0, thuong =0;// Khai bao bien printf("Nhap so nguyen a va b: "); // in ra hai so a va b scanf("%d%d", &a, &b); // Nhap hai so a va b tu ban phim may tinh tong = a + b;
hieu = a - b; tich = a*b; thuong = a/b; printf("Tong hai so a va b: %d", tong); // in ra tong hai so printf ("\n Hieu hai so a va b: %d",hieu); //in ra hieu hai so printf("\n Tich cua hai so a va b: %d", tich); // in ra tich hai so, %d đặc t¿ dÿ liệu là số nguyên
printf("\n Thuong cua hai so a va b:%d", thuong); // in ra thuong hai so getch(); // chư¢ng trình dừng }
Trang 26B°ßc 5: Chạy chư¢ng trình Án vào biểu tưāng hoặc Án phím chức năng F11
Kết qu¿ màn hình: NhÁp vào hai số từ bàn phím rßi Án phìm Enter đưāc kết qu¿ như sau:
Bài 3: Vào từ bàn phím họ và tên công nhân, số ngày làm trong tháng, lư¢ng mát ngày công, số tiễn đã lĩnh tạm ứng trong tháng Tính toán số tiền đưāc lĩnh cuối tháng và in toàn bá các thông tinh ra màn hình
Hướng d¿n: Bước 1: Má chư¢ng trình trên màn hình Bước 2: Vào file → New → chọn Source (hoặc Án Ctrl + N)→ XuÁt hiện màn hình soạn th¿o
Bước 3: Lưu bài vào File → Save As (Àn Ctrl + S)→ XHHT
Chọn File name: Đặt tên file (dễ nhớ) → Chọn đưßng d¿n đến file bài tÁp → Àn Save As: Lưu
B°ßc 4: NhÁp code
Trang 27Dòng Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
#include<stdio.h> // sử dụng hàm printf, scanf, getch #include <conio.h> // sử dụng hàm gets
int main() {
//Khai báo các biến
char ht[25]; // ht là biến để vào họ tên có tối đa 25 ký tā int snc; // khai báo biến snc là số ngày công kiểu nguyên float luongn, tamung,tien; // khai báo các biến lư¢ng ngày, tạm ứng, tiền
printf("\nNhap vao ho ten cong nhan:"); gets(ht); printf("\nNhap vao so ngay cong, luong ngay, tam ung"); scanf("%d%f%f",&snc,&luongn, &tamung); //
printf("\n\n Ket qua ban da nhap"); printf("\nHo va ten: %s", ht); printf("\nSo ngay cong: %d", snc); printf("\nTien luong 1 ngay:%13.5f",luongn); printf("\nTien tam ung trong thang: %13.5f", tamung); tien= snc*luongn - tamung;
printf("\nTien linh cuoi thang: %13.5f", tien); getch();}
B°ßc 5: Chạy chư¢ng trình Án F11 Bài 4: Mát ngưßi có a đßng, lãi suÁt gửi ngân hàng là s % mát năm, cuối mßi
năm tiền lãi đưāc nhÁp vào gốc Hỏi sau n năm ngưßi đó đưāc c¿ vốn và lãi là bao nhiêu, công thức tính: a *pow(1+ s/100,n) Chạy chư¢ng trình với a = 500 triệu đßng, s = 7%, n = 7, kết qu¿ là 802,89 triệu
#include<stdio.h> #include<conio.h>
Trang 283 4 5 6 7 8 9 10 11 12 13 14 15 16
#include <math.h>// khai báo dùng hàm toán hoc int main()
{
double a, s, tien; // a là số tiền ban đầu, s là lãi suÁt, tien: tiền lúc sau khi có lãi
int n; // n là nhÁp số năm gửi lãi kiểu số nguyên
printf("\nNhap vao tong so tien a ="); scanf("%lf", &a); printf("\nNhap vao lai suat 1 nam ="); scanf("%lf", &s); printf("\nNhap vao so nam gui ="); scanf("%d", &n); printf("\nSo lieu nhap a=%13.5f, s= %13.5f, n=%4d", a, s, n);//In cac du lieu nhap ra
tien = a*pow(1+s/100,n); printf("\nTong so tien = %13.5f", tien); getch();
**********************************
Bài 6: Viết chư¢ng trình nhÁp vào bán kính r của hình tròn Tính chu vi và diện
tích của hình tròn theo công thức
Chu vi CV = 2*Pi*r và diện tích S = Pi*r*r In kết qu¿ ra màn hình
Gāi ý code: #include<stdio.h> #include<math.h> #include<conio.h> int r;
float cv, s;
Trang 29int main() {
printf("\nNhap vao ban kinh hinh tron"); scanf("%d", &r);
cv = 2*3.14*r; s = 3.14 * r *r; printf("\nChu vi hinh tron la: %2f",cv); printf("\nDien tich hinh tron la: %2f", s); getch();
}
Bài 7: Viết chư¢ng trình nhÁp vào đá dài ba cạnh a, b, c của mát tam giác Tính
chu vi, diện tích tam giác theo công thức:
Chu vi CV = a+ b +c Diện tích S= sqrt(p*(p-a)*(p-b)*(p-c) trong đó p = CV/2 In kết qu¿ ra màn hình
Gāi ý: #include<stdio.h> #include<math.h> #include<conio.h> int a, b, c, p, cv, s; int main()
{
printf("\nNhap vao do dai ba canh cua tam giac: "); scanf("%d%d%d", &a, &b,&c);
cv = a +b + c; p = (a +b+c)/2; s = sqrt(p*(p-a)*(p-b)*(p-c)); printf("\nChu vi hinh tam giac la:%d", cv); printf("\nDien tich hinh tam giac la:%d", s); getch();}
Trang 30CH¯¡NG 2: CÂU TRÚC ĐIÀU KHIÂN TRONG NGÔN NGĀ
2.1.1.1 If
Câu lệnh if cho phép lāa chọn mát trong hai nhánh tùy thuác vào giá trị của biểu thức luÁn lý là đúng (True) hay sai (False) hoặc khác không b¿ng không
Dạng 1 (if thiếu) Quyết định sẽ thāc hiện hay không mát khối lệnh
if(Biểu thức điều kiện)
{ các câu lệnh;
}
Ho¿t động:
- Nếu câu lệnh đúng thì thāc hiện câu lệnh hoặc khối lệnh liền
sau điều kiện - Nếu điều kiện sai thì bỏ qu¿ lệnh hoặc khối lệnh liền sau điều kiện (nhÿng lệnh và khối lệnh sau đó v¿n đưāc thāc hiện bình thưßng vì nó không phụ thuác
vào điều kiện sau if
Biểu thức ĐK kiệnCông việc
Thoát
Sai
Đúng
Trang 31Trong đó: Biểu thức điều kiện là mát biểu thức quan hệ hoặc logic
Công việc là các câu lệnh hoặc khối lệnh: sẽ đưāc thāc thi khi biểu thức điều
kiện là đúng
Chú ý: từ khóa if ph¿i viết b¿ng chÿ thưßng
Ví dā 1: Viết chư¢ng trình nhÁp vào mát số nguyên a Kiểm tra xem số nguyên
a là số dư¢ng, âm, hay số không
Dißn giÁi
- Khai báo thư viện nhÁp và xuÁt - Tạo hàm main để viết code
- Lưu tên file dễ nhớ: - Khai báo biến số nguyên a - NhÁp giá trị a từ bàn phím - Nếu a>0 thì in ra a là số dư¢ng (nếu a>0 là đúng thì thāc thi đoạn lệnh in ra an là số dư¢ng, nếu không đúng sẽ thāc thi đoạn lệnh tiếp theo)
- Nếu a<0 thì in ra a là số âm (nếu a<0 là đúng thì thāc thi đoạn lệnh in ra an là số âm, nếu không đúng sẽ thāc thi đoạn lệnh tiếp theo)
- Nếu a=0 thì in ra a là số không (nếu a=0 là đúng thì thāc thi đoạn lệnh in ra an là số 0, nếu không đúng sẽ thāc thi đoạn lệnh tiếp theo)
- #include<stdio.h> - int main { - Vào file→save→
- int a; - printf("Nhap vao so a: ");
scanf("%d", &a); - f(a>0){printf("%d la so duong \n",
a);} - if(a<0) {printf("%d là so am \n",
a); }
- if(a==0){printf("%d la so khong
\n", a);} Viết chư¢ng trình: Vào dev C++ nhÁp chư¢ng trình
Bước 1: Àn Ctrl + N → Lưu File Án Ctrl + S → XHHT → Tìm đưßng d¿n đến vị trí cần lưu
Bước 2: NhÁp Code
1 2 3 4 5
// Viet chuong trinh nhap vao so nguyen a Kiem tra xem a la so nguyen hay am hay la so 0
#include <stdio.h> #include<conio.h>
Trang 326 7 8 9 10 11 12 13 14 15
int main() {
int a;// khai bao bien nguyen a printf("Nhap vao so nguyen");
scanf("%d", &a); // nhap tu ban phim so nguyen a if (a>0) printf("So nguyen %d la so duong", a); } if (a<0) printf("So nguyen %d la so am", a); if(a== 0) printf(" % d la so 0",a);
getch();}
B°ßc 3: Kết qu¿ in ra màn hình: NhÁp xong chư¢ng trình Án phím chức năng
F11: Kiểm tra lßi sau đó chạy chư¢ng trình
Àn phím chức năng f11 Hay nhap gia tri cho a:
Ví dụ nhÁp 11 Án Enter sẽ ra dòng
11 la so duong
Ví dā 2: NhÁp 2 số nguyên a, b Tìm và in ra số lớn nhÁt
Ý tưáng: - NhÁp vào 2 số nguyên từ bàn phím - Gi¿ sử số đầu tiên là số lớn nhÁt Gán max = a Sau đó so sánh b với a, nếu b> a thì ta gán b là max Cuối cùng kết qu¿ max là giá trị lớn nhÁt
- Khai báo 3 biến a, b, max kiểu số
nguyên - NhÁp vào giá trị a, b
- Gán a cho max - Nếu b > a thì gán b cho max
- In ra kết qu¿ max
- int a, b, max; - printf("Nhap vao so a, b: ");
scanf("%d", &a, &b); - max = a; - if (b > a) max = b; - printf("So lon nhat = %d.\n", max); Hướng d¿n:
Trang 33Bước 1: Àn Ctrl + N → Lưu File Án Ctrl + S → XHHT → Tìm đưßng d¿n đến vị trí cần lưu
Bước 2: NhÁp Code
// Nhap vao 3 so nguyen a, b, c Tim so lon nhat trong ba so
#include <stdio.h> #include <math.h> #include<conio.h> int main()
{
int a, b, max; // khai bao bien printf("Nhap vao ba so nguyen a và b:");
scanf("%d%d%d", &a, &b); max =a;
if (b>max){max = b; } printf("So lon nhat la Max= %d:",max);
getch();}
B°ßc 3: Kết qu¿ in ra màn hình: NhÁp xong chư¢ng trình Án phím chức năng
F11: Kiểm tra lßi sau đó chạy chư¢ng trình
Àn phím chức năng f11 NhÁp vào ba số nguyên rßi Án Enter sẽ hiển thị kết qu¿ Thāc hiện nhÁp với nhiều số khác nhau
Chú ý: Nếu câu lệnh là lệnh đ¢n không cần đặt trong khối lệnh {} b Dạng 2: If đầy đủ
Dạng if đầy đủ có hai nhánh với từ khóa else đứng trước nhánh hai
if(<BiÃu thức điÁu kián>)
Trang 34{ <Công viác 1>;}
else { <công viác 2>}
Ho¿t động:
- Nếu biểu thức điều kiện đúng
thì thāc hiện công việc 1 Nếu
biểu thức điều kiện sai thāc hiện
công việc hai
Trong đó: + Điều kiện là mát biểu thức quan hệ và logic + Công việc 1, công việc 2 là các câu lệnh hoặc khối lệnh của C + Từ khóa if, else ph¿i viết b¿ng chÿ thưßng
Ví dụ: Kiểm tra mát số nguyên là dư¢ng hay âm hay là 0 Chư¢ng trình thāc hiện
Khai báo thư viện nhÁp/ xuÁt Tạo hàm main để viết code Khai báo biến a là số nguyên Đưa ra dòng chÿ Hay nhÁp giá trị cho a
Giá trị nhÁp Thāc hiện điều kiện Nếu a> 0 thì in ra a là số dư¢ng
#include<stdio.h> int main()
{ int a; printf("Hay nhap gia tri cho a: \n"); scanf("%d",&a);
if(a>0) printf("%d la so duong \n", a);
else if(a<0) Biểu
thức ĐK kiện
Công việc 1
Thoát
Sai
Đúng
Công việc 2
Trang 35Ngoài ra nếu a <0 thì in ra a là số âm Còn trưßng hāp còn lại a là số 0
printf("%d là so am \n", a); else printf("%d la so khong \n", a);
return 0;} Bước 3: Thāc hiện chạy chư¢ng trình Án F11
Ví dụ 2: Viết chư¢ng trình nhÁp vào điểm của mát học sinh In ra xếp loại học tÁp của học sinh đó Cách xếp loại Nếu điểm >= 9, XuÁt sắc Nếu điểm từ 8 đến cÁn 9, Giỏi Nếu điểm từ 7 đến cÁn 8, Khá Nếu điểm từ 6 đến cÁn 7, TB Khá Nếu điểm từ 5 đến cÁn 6, TBình Còn lại là Yếu
Gāi ý: Điểm số nhÁp vào nếu hāp lệ (0 <= điểm<=10) thì tiếp tục công việc xếp loại, nếu ngưāc lại thông báo <NhÁp điểm không hāp lệ= Để xếp đưāc loại chúng ta sử dụng hàm if lßng nhau
Mô t¿ quá trình xử lý
- Khai báo biến điểm kiểu số thāc - NhÁp vào điểm số
- Nếu diem >= 0 và diem <= 10 thì +Nếu diem >= 9 thì
in ra xếp loại = XuÁt sắc + Ngưāc lại Nếu diem >= 8 thì
in ra xếp loại = Giỏi + Ngưāc lại Nếu diem >= 7 thì
in ra xếp loại = Khá + Ngưāc lại Nếu diem >= 6 thì
in ra xếp loại = TBKhá + Ngưāc lại Nếu diem >= 5 thì
in ra xếp loại = TBình + Ngưāc lại thì
in ra xếp loại = Yếu Ngưāc lại thì in ra "Bạn nhÁp điểm không hāp lệ"
- float fdiem; - printf("Nhap vao diem so: "); scanf("%f", &fdiem);
- if (fdiem >= 0 && fdiem <= 10) - if (fdiem >= 9)
printf("Xep loai = Xuat sac.\n"); else if (fdiem >= 8)
printf("Xep loai = Gioi.\n"); else if (fdiem >= 7)
printf("Xep loai = Kha.\n"); else if (fdiem >= 6)
printf("Xep loai = TBKha.\n"); else if (fdiem >= 5)
printf("Xep loai = TBinh.\n"); else
printf("Xep loai = Yeu.\n"); else printf("Ban nhap diem khong hop le.\n");
Viết chư¢ng trình trên dev C++
Trang 36Dòng Code 1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
// nhap vao diem va xep loai diem #include<stdio.h>
#include<math.h> int main(){
float diem; printf("Nhap vao diem >0"); scanf("%f", &diem);
if(diem>0 && diem<=10){
if(diem>=9) printf("Xep loai Xuat sac\n"); else if (diem>=8) printf("xep loai gioi:\n"); else if (diem>=7) printf("Xep loai Kha\n"); else if (diem >= 6) printf(" Xep loai trung binh\n"); else printf("Xep loai yeu");
} else printf("Diem nhao khong hop le:"); return 0;
} Àn F11 để chạy chư¢ng trình:
Chạy thử chư¢ng trình với các giá trị khác: 4, 9, 8, và 12
case n1: Khối lệnh thāc hiện công việc 1; break; &
Hoạt đáng: - Tính giá trị của biểu thức trước
Trang 37Khối lệnh thāc hiện công việc n; break;
[default: Khối lệnh thāc hiện công việc mặc định;
break;]
- Nếu giá trị của biểu thức b¿ng giá trị 1 thì thāc hiện công việc 1 rßi thoát
- Nếu giá trị của biểu thức khác giá trị 1 thì so sánh với giá trị 2, nếu b¿ng giá trị 2 thì thāc hiện công việc 2 rßi thoát
- Cứ như thế, so sánh tới giá trị n
- Nếu tÁt c¿ cá phép so sánh trên đều sai thì thāc hiện công việc mặc định của trưßng hāp default Chú ý: Biểu thức trong switch() ph¿i có kết qu¿ giá trị kiểu số nguyên (int, char, long, &)
Giá trị sau case cũng ph¿i là kiểu số nguyên Không bắt buác ph¿i có default
Ví dụ 1: LÁp chư¢ng trình đọc vào từ bàn phím mát số nguyên n (1<=n<=10) rßi đưa ra tiếng anh của số đó Ví dụ: NhÁp vào số 2, gõ enter ra Two
Hướng d¿n: với dạng lāa chọn này ta dùng lệnh switch() Bước 1: Àn Ctrl + N má file mới → NhÁp code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
#include<stdio.h> #include<conio.h> int main()
{int n;
printf("\nNhap vao so nguyen tu 1 den 10:"); scanf("%d",&n);
switch (n) {
case 1: printf("\nOne"); break; //break để thoát khỏi lệnh switch case 2: printf("\nTwo"); break;
case 3: printf("\nThree"); break; case 4: printf("\nFour"); break; case 5: printf("\nFive"); break; case 6: printf("\nSix"); break; case 7: printf("\nSeven"); break;
Trang 3816 17 18 19 20 21 22
case 8: printf("\nEight"); break; case 9: printf("\nNine"); break; case 10: printf("\nTen"); break; default: printf("\nKhong phai 10 so dau tien"); }// kết thúc lệnh swich()
getch(); }
B°ßc 2: Lưu file: Án Ctrl + S lưu file → XHHT tìm n¢i cần lưu B°ßc 3: Chạy chư¢ng trình và kiểm tra lßi Án F11
Diễn gi¿i: Chạy lệnh 5 nhÁp vào số 5, lúc đó n = 5 máy kiểm tra n =1, 2, 3, 4 đều không ph¿i cho đến n =5 đúng nó sẽ chạy
lệnh printf("\nFive"); break; thoát khỏi lệnh switch chạy
Cú pháp: break;
2.1.2.2 Continue
Nếu mát vòng lặp đang chạy mà gặp lệnh continue, tÁt c¿ các lệnh trong thân vòng lặp n¿m phía dưới lệnh continue sẽ bị bỏ qua á lần lặp hiện tại Vòng lặp sẽ chuyển sang kiểm tra điều kiện và tiếp tục lặp (nếu điều kiện đó còn thỏa mãn)
Cú pháp: goto label;
& label: statement;
Trang 39đái giá trị biến điều kiện Hoạt đáng:
Bước 1: Cần ph¿i khái tạo giá trị biến lặp Chỉ thāc hiện duy nhÁt 1 lần Bước 2: Tính giá trị biểu thức điều kiện 2:
Nếu giá trị biểu thức 2 là sai (=0) thì thoát khỏi lệnh for Nếu giá trị của biểu thức 2 là đúng (!=0): <khối lệnh> hay công việc đưāc thāc hiện
Bước 3: Tính giá trị biểu thức 3 và quay lại Bước 2 Chú ý:
+ Biểu thức 1, 2, 3 ph¿i phân cách b¿ng dÁu chÁm phẩy (;) + Nếu biểu thức 2 không có, vòng for đưāc xem là luôn luôn đúng Muốn thoát khỏi vòng lặp for ph¿i dùng mát trong 3 lệnh break, goto hoặc return
Điều kiện lặp
Khối lệnh Đúng
Sai Khái tạo giá trị biến lặp
Ra
Trang 40+ Với mßi biểu thức có thể viết thành mát dãy biểu thức con phân cách nhau bái dÁu phẩy Khi đó các biểu thức con đưāc xác định từ trái sang ph¿i Tính đúng sai của dãy biểu thức con trong biểu thức thứ 2 đưāc xác định bái biểu thức con cuối cùng
+ Trong thân for (khối lệnh) có thể chứa mát hoặc nhiều cÁu trúc điều khiển khác
+ Khi gặp lệnh break, cÁu trúc lặp sâu nhÁt sẽ thoát ra + Trong thân for có thể dùng lệnh goto để thoát khỏi vòng lặp đến vị trí mong muốn
+ Trong thân for có thể sử dụng return để trá về mát hàm nào đó + Trong thân for có thể sử dụng lệnh continue để chuyển đến đầu vòng lặp (bỏ qua các câu lệnh còn lại trong thân)
Ví dụ 1: In ra ba dòng chÿ <Hoc lap trinh khong kho=
Dòng Code
1 2 3 4 5 6 7 8 9 10
// In ra ba dong chu Hoc lap trinh khong kho
#include <stdio.h> int main(){
int i; for (i = 0; i<3; i++) { printf("Hoc lap trinh khong kho!\n");
} printf("ket thuc lenh");
return 0; }
Àn f11 ra kết qu¿
Gi¿i thích: