Chương 1 Giới thiệu về thuật toán

• Thông tin (information) – Cho biết giá trị của 2 số nguyên – Thông báo kết quả tính tổng • Dữ liệu (data) – Chứa số nguyên thứ 1 – Chứa số nguyên thứ 2 – Chứa số nguyên tổng kết quả

pdf18 trang | Chia sẻ: lylyngoc | Lượt xem: 1406 | Lượt tải: 1download
Bạn đang xem nội dung tài liệu Chương 1 Giới thiệu về thuật toán, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Chuong 03- Co ban ve Ngon ngu C 1 Chương 1 GiỚI THIỆU VỀ THUẬT TOÁN Mục tiêu • Hiểu được Thuật toán là gì ? • Mô tả những thuật toán cơ bản. • Giải thích được các bước để giải một bài toán bằng máy tính. Nội dung • Giới thiệu tổng quan • Khái niệm về thuật toán • Các phương pháp biểu diễn thuật toán 1.1- Giới thiệu tổng quan • Thông tin (information) – Cho biết giá trị của 2 số nguyên – Thông báo kết quả tính tổng • Dữ liệu (data) – Chứa số nguyên thứ 1 – Chứa số nguyên thứ 2 – Chứa số nguyên tổng kết quả Ví dụ : Thực hiện phép tính cộng 2 số nguyên 1.2.Lưu trữ dữ liệu • Một dữ liệu phải có vùng nhớ chứa nó • Nhiều dữ liệu cần vùng nhớ lớn • Hai loại lưu trữ dữ liệu thường dùng: số số nguyên nhỏ số nguyên lớn số thực ký tự chuỗi ký tự 1.3.Dạng biểu diễn dữ liệu và toán tử Dạng biểu diễn số nhị phân + + = 3 2 5 00000011 00000010 00000101 00000011 00000010 00000101 Đúng Cộng hai biểu diễn số nhị phân cho kết qủa là một biểu diễn nhị phân đúng kết qủa đang mong đợi. Chuong 03- Co ban ve Ngon ngu C 2 1.4.Lệnh máy- Machine Instruction • Một dữ liệu quy định cách CPU thực thi 1 tác vụ cơ bản • Dạng 1 lệnh máy: 110111 1000100101101 1010011001011 Tác vụ Toán hạng 1 Toán hạng 2 (cộng) (address 1) ( address 2) • Có thể có toán hạng 3 (dữ liệu chứa kết qủa). • Dạng lệnh máy phụ thuộc kiến trúc CPU. • Lệnh máy là lệnh nhị phân. 1.5.Chương trình- Program • Chương trình: Tập các lệnh máy mà CPU phải thực thi nhằm giải một bài toán. • Một chương trình là 1 tập tin có phần mở rộng tùy thuộc vào hệ điều hành. • Thông thường 1 chương trình có tên mở rộng: .exe, .com • CPU chạy 1 chương trình theo cách tuần tự từng lệnh. 1001001000101... 1100110011000... 0101001100110... 1010110100001 ............. 1.6.Thuật toán - Algorithm • Cách diễn giải một bài toán • Cách tiếp cận để giải bài toán. • Muốn giải thì phải biết cách giải. • Cách giải 1 bài toán cụ thể là 1 thuật toán cụ thể • Mô tả 1 thuật toán là diễn đạt các bước thực thi của thuật toán đó. • Dùng ngôn ngữ tự nhiên • Dùng lưu đồ (flowchart) • Mã giả 1.7.Biểu diễn thuật toán 1. Nhập vào số nguyên thứ 1 (a) 2. Nhập vào số nguyên thứ 2 (b) 3. Tính tổng của a và b 4. Xuất tổng Ví dụ : Thực hiện phép tính cộng 2 số nguyên Thuật toán - Mô tả bằng ngôn ngữ tự nhiên 3 2 5 năm Yếu điểm của cách diễn đạt bằng NNTN • NNTN có nhiều cách diễn đạt khác nhau cho 1 thuật toán. • Dùng NNTN để diễn đạt thuật toán có khả năng gây “hiểu sai ”. Chuong 03- Co ban ve Ngon ngu C 3 • Dùng hình vẽ (graphic) để mô tả một thuật toán. • Trong lưu đồ chỉ rõ tiến trình thực thi thuật toán. • Không thể hiểu lầm vì có quy tắc để vẽ. Thuật toán - Mô tả bằng lưu đồ (Flowchart) • Điểm bắt đầu và kết thúc • Hướng tính toán • Nhập/xuất • Tính toán • Lựa chọn ½ • Lựa chọn 1/n • Điểm ráp nối khi lưu đồ lớn Begin End Nhập a c=a+b 2 9 7 5 d X X yes no a>0 Xuất c B1: Nhập số nguyên a B2: Nhập số nguyên b B3: c = a+b; B4: Xuất số nguyên c Begin Nhập a Nhập b c=a+b End Xuất c Thuật toán - Mô tả bằng mã giả (Pseudo code) • Mã giả thực chất là ngôn ngữ tự nhiên có pha lẫn một số cách viết của ngôn ngữ lập trình. Minh họa: Thực hiện phép tính cộng 2 số nguyên 1.8.Minh họa: Giải thuật tìm trị lớn nhất trong 3 số B1: t = a; B2: if (t<b) t=b; B3: if (t<c) t=c; B4: Xuất t; 5 7 2 7 a b c Bảy Nếu muốn nhập 3 số a, b, c thì thêm những gì vào giải thuật và thêm vào đâu? no Begin End t=a t<b t<c yes no yes t=b t=c Xuất t 5 Chương 2 NGÔN NGỮ LẬP TRÌNH 2.1.KHÁI NIỆM VỀ NGÔN NGỮ LẬP TRÌNH 1001001000101... 1100110011000... 0101001100110... 1010110100001 ............. Bótay.com? • Lập trình: tạo ra 1 chương trình • Lập trình bằng ngôn ngữ máy Đừng lo, có 1 phần mềm giúp diễn đạt 1 chương trình bằng tiếng Anh( ngôn ngữ con người) rồi giúp chuyển sang ngôn ngữ máy Ngôn ngữ lập trình: Tập quy định về cách diễn đạt 1 chương trình ( văn phạm của ngôn ngữ) Phần mềm ngôn ngữ: Một chương trình máy tính cho phép: soạn thảo, biên dịch, kiểm lỗi cú pháp, thực thi chương trình. 2.1.KHÁI NIỆM VỀ NGÔN NGỮ LẬP TRÌNH Chuong 03- Co ban ve Ngon ngu C 4 2.2.Dịch chương trình- Translating Chương trình theo ngôn ngữ lập trình Biên dịch Compile (dịch toàn bộ) Chương trình Chương trình theo ngôn ngữ lập trình Thông dịch Interpreting (dịch từng câu) 1 lệnh CPU thực thi 2.3.Các loại ngôn ngữ lập trình thông dụng • Ngôn ngữ lập trình Hợp ngữ • Ngôn ngữ lập trình Basic • Ngôn ngữ lập trình Pascal • Ngôn ngữ lập trình C / C++ • Ngôn ngữ lập trình Java • … 2.4.Lập trình tuần tự - tuyến tính • Ngôn ngữ lập trình Hợp ngữ thuộc loại ngôn ngữ lập trình tuyến tính. • Các phần của chương trình nối nhau theo dãy dài, làm khó hiểu về mặt logic. • Việc điều khiển chương trình được thực hiện bằng cách nhảy lung tung, khó kiểm soát. • Mọi dữ liệu đều toàn cục, nên các thành phần của chương trình có thể làm thay đổi nó. 2.5.Lập trình cấu trúc • Ngôn ngữ lập trình Pascal hay C thuộc loại ngôn ngữ lập trình cấu trúc. • Chương trình được chia nhỏ thành các hàm (function) thực hiện một chức năng chuyên biệt. • Có thể coi hàm là các chương trình thu nhỏ, liên kết lại với nhau để xây dựng nên ứng dụng. • Dễ bảo trì, tăng độ tin cậy, chính xác. • Biến toàn cục giảm, biến cục bộ tăng lên. • Khi thay đổi cấu trúc dữ liệu dùng chung thì nhóm lập trình cùng viết chung chương trình bị ảnh hưởng. 2.6.Lập trình Hướng đối tượng • Ngày nay, C++ hay C#, java… thuộc loại ngôn ngữ lập trình hướng đối tượng. • Trừu tượng dữ liệu, không bận tâm chi tiết cài đặt cụ thể. • Có thể sử dụng lại một cách dễ dàng hay nâng cấp các đối tượng. • Càng dễ bảo trì, tăng độ tin cậy, chính xác. • Bước 1: Hiểu kỹ và biết cách giải bài toán – Xác định dữ liệu liên quan đến bài toán – Hiểu các thao tác lên dữ liệu • Bước 2: Tìm một giải thuật để giải. – Sắp xếp các thao tác sao cho có thứ tự hợp lý. • Bước 3: Viết chương trình theo ngôn ngữ. – Mở trình soạn thảo. – Viết chương trình theo ngôn ngữ đã chọn. – Biên dịch chương trình và sửa lỗi cú pháp. – Chạy chương trình, kiểm tra kết qủa. 2.7.Các bước xây dựng chương trình Chuong 03- Co ban ve Ngon ngu C 5 2.7.Các bước xây dựng chương trình Bài toán Phân tích Dữ liệu Giải thuật Dùng Editor NNLT Chương trình ngôn ngữ Start Yes No Yes Lỗi cú pháp No giải thuật sai Dịch Chạy Lỗi ? Kq đúng ? End Chương trình mã máy Xin cám ơn Tài liệu tham khảo • “Lập trình C”, Quách Tuấn Ngọc, Nhà Xuất Bản Giáo dục 2004 • “Kỹ thuật lập trình C cơ sở và nâng cao”, Phạm Văn Ất, Nhà Xuất Bản Khoa Học Kỹ Thuật – 1996. • “Giáo trình ngôn ngữ C”, Lê Hoài Bắc – Lê Hoàng Thái – Nguyễn Tấn Trần Minh Khang – Nguyễn Phương Thảo, Nhà Xuất Bản Đại Học Quốc Gia Tp. Hồ Chí Minh – 2003. • “Giáo trình lý thuyết & Bài tập ngôn ngữ C”, Nguyễn Đình Tê – Hoàng Đức Hải, Nhà Xuất Bản Mũi Cà Mau. • “Bài tập ngôn ngữ C từ A đến Z”, Huỳnh Tấn Dũng – Hoàng Đức Hải, Nhà Xuất Bản Lao Động – Xã Hội. Chương 3 MỞ ĐẦU VỀ NGÔN NGỮ C Nội dung • Nhận biết tập ký tự dùng trong C • Nhận biết một số từ khóa của C. • Nhận biết tổ hợp ESCAPE của C • Dạng thức của một chương trình C • Chỉ thị tiền xử lý • Nhận biết các kiểu dữ liệu cơ bản của C • Tự định nghĩa được kiểu dữ liệu • Định nghĩa và phân biệt được hằng và biến • Nhận diện và sử dụng được các toán tử của C • Biết sử dụng các cấu trúc điều khiển của C 3.1. Tập ký tự của C – Character set • Digits: 0..9 • Letters- alphabet characters: a..z, A..Z • Special characters: + - * / % & ! # ^ & …  Các ký tự in được của bàn phím chuẩn Chuong 03- Co ban ve Ngon ngu C 6 3.2. Từ khóa – Keywords • Là những từ ngôn ngữ C đã định nghĩa sẵn cho người lập trình sử dụng để thiết kế chương trình. • Là thành phần cơ bản để tạo câu lệnh trong C. • Bao gồm các nhóm: – Kiểu số nguyên : char , int , short , unsigned , long – Kiểu số thực: float , double – Kiểu rời rạc : enum – Kiểu cấu trúc : struct , union – Kiểu rỗng: void – Tự định kiểu: typedef – Khai báo hằng: const , define – Khai báo biến: static , extern , auto, register, volatile – cấu trúc chọn : if , else , switch , case , default – cấu trúc lăp: for , while , do – Từ khóa điều khiển: break , continue , return , goto – … 3.3. Tên – Name / Identifier • Do người lập trình tự định nghĩa, dùng đặt tên cho hằng, biến, hàm…(không được trùng với keywords) • Tên là 1 từ, chiều dài 1 từ : Có thể tự ấn định bằng Menu Options / Compiler / Source / Identifier Length • Các từ trong C phân biệt chữ hoa chữ thường (case- sensitive) Hãy cho biết các tên sau tên nào là hợp lệ? m _12 _m12 12m 6L Hãy cho biết các tên sau có cùng ngữ nghĩa hay không? delta Delta dElta DELTA „a‟..‟z‟, „A‟..‟Z‟ „_‟ (gạch nối) „0‟..‟9‟ „a‟..‟z‟, „A‟..‟Z‟ „_‟ (gạch nối) 3.4. Chuỗi ESCAPE • Escape: thoát, bỏ qua • Chuỗi escape bắt đầu bằng ký tự „\‟ mang ý nghĩa bỏ qua ý nghĩa thông thường của ký tự đứng sau ký tự này. • Do đó chuỗi escape mang một ý nghĩa đặc biệt. Cách viết Tên gọi Ý nghĩa '\'' Single quote Ký tự ' '\"' Double quote Ký tự " '\\' Backslash Ký tự \ ‘\?’ Question mark Ký tự ? ‘\a’ Alert Phát tiếng Beep ra loa '\n' New line Xuống dòng mới '\0' NULL Rỗng '\t' Horizontal tab Di chuyển con nhấp nháy tới vị trí tab kế tiếp '\b' Backspace Lùi con nhấp nháy 1 vị trí '\r' Carriage return Đưa con nhấp nháy về đầu dòng '\f' Form feed Sang trang kế tiếp 3.5.Các kiểu dữ liệu cơ bản của C – Data types • Kích thước và phạm vi của kiểu dữ liệu phụ thuộc vào trình biên dịch ( xem file limit.h và float.h ) Định dạng Nhập/Xuất Kiểu Số byte Phạm vi %c unsigned char 1 0 .. 255 %c char 1 -128 .. 127 %u unsigned int 2 0 .. 65,535 %d, %i int 2 - 32,768 .. 32,767 %lu unsigned long 4 0 .. 4,294,967,295 %ld, %li long 4 -2,147,483,648 .. 2,147,483,647 %f float 4 3.4 * (10-38) .. 3.4 * (10+38) %lf double (long float) 8 1.7 * (10-308) .. 1.7 * (10+308) %lf long double 10 3.4 * (10-4932) .. 1.1 * (10+4932) 3.6. Hằng – Constant • Cách 1:Dùng macro. Ví dụ: #define PI 3.141592 • Cách 2: Dùng từ khóa const. Ví dụ: const PI = 3.141592; Hay là: const double PI = 3.141592; Chú ý: #define • Đặt một tên gọi cho một nội dung • Còn gọi là macro. #include #include #define PI 3.141592 void main() { printf("%lf", 3.141592*3.2*3.2); getch(); } Thay thế trị trước khi biên dịch Chuong 03- Co ban ve Ngon ngu C 7 Hiệu ứng lề – Side effect #include #include #define PI =3.141592; void main() { printf("%lf", =3.141592;*3.2*3.2); getch(); } Error! #include #include #define Area(x) x*x void main() { printf("%lf", 3+2*3+2); getch(); } Không được mong đợi #define Area(x) (x)*(x) (3+2)*(3+2) OK Thí dụ: -Hằng không kiểu: trình biên dịch dùng bộ nhớ ít nhất để chứa, tối thiểu là 2 bytes. -Hằng có kiểu sẽ buộc trình biên dịch phải dùng đúng kiểu đã chỉ định để lưu trữ trị hằng. -Hằng chuỗi ký tự được để trong cặp nháy đôi. -Hằng ký tự được để trong cặp nháy đơn. Toán tử sizeof(data) cho biết số byte mà data này chiếm chỗ. 3.7. Biến – Variable • Biến phải thuộc 1 kiểu dữ liệu. • Khai báo biến: • 2 biến cùng kiểu cách nhau dấu phẩy. • C chuẩn chỉ cho phép khai báo biến ở đầu chương trình. Còn C++, cho phép khai báo biến bất kỳ chỗ nào nếu thấy cần. Ví dụ: int m=3 ; long t1=23, t2=3*t1; double z1, z2, z3 ; char c1 , c2 = „A‟ ; tênbiến; Ví dụ Lỗi “khai báo kết thúc không đúng cách” vì khai báo xong biến t, sang biến kiểu khác mà để dấu “phẩy”. Đáng lẽ phải là dấu “chấm phẩy”. 3.7. Biến – Variable Lấy địa chỉ của biến: &tênbiến Đúng về Syntax, nhưng Sai về Lý luận 3.8. Cấu trúc một chương trình C /* CHAO.CPP Chuong trinh minh hoa don gian */ // Xuat chuoi “Chao cac ban” ra man hinh #include #include void main() { clrscr(); printf(“Chao cac ban"); getch(); } /*…*/ Khối chú thích // Chú thích đến cuối dòng Khai báo sử dụng thư viện #include : chỉ thị tiền xử lý Chương trình chính , bắt buộc là main() ; kết thúc 1 câu lệnh đơn Chuong 03- Co ban ve Ngon ngu C 8 Ví dụ: Cấu trúc một chương trình C Từ nay về sau, chúng ta nên thêm phần chú thích để gợi nhớ Chú thích – Comment • Dùng để giải thích chương trình. • Chú thích 1 dòng: chỉ dùng trong C++ // Chú thích • Chú thích nhiều dòng: C/C++ /* Các dòng chú thích …… */ • Dòng chú thích được bỏ qua khi biên dịch Chỉ thị tiền xử lý – Preprocessor indicators • Còn được gọi là chỉ thị tiền biên dịch vì đây là những chỉ thị mà trình biên dịch phải làm trước khi chuyển chương trình C thành chương trình mã máy. • Các chỉ thị này bắt đầu bằng „#‟ Cách làm việc của chỉ thị #include nội dung file stdio.h nội dung file conio.h code chương trình Compile Chỉ thị #include : Chèn 1 file • #include • #include “file không thuộc Include Directories” • Lưu ý: Không nên có khoảng trống giữa và tên file vì trong cặp ký tự này được hiểu là tên file Lưu ý chỉ thị #include Không có khoảng trắng có khoảng trắng (Error) Chuong 03- Co ban ve Ngon ngu C 9 Chương 4 NHẬP XUẤT DỮ LIỆU TRONG C Nội dung • Các hàm nhập dữ liệu chuẩn • Các hàm xuất dữ liệu chuẩn 4.1. Nhập – Input • Macro: – int getchar(); // nhận 1 ký tự từ bàn phím, // không in ra màn hình • Functions: – int getch(); // tương tự như getchar() – int getche(); // nhận 1 ký tự từ bàn phím và // in ra màn hình – char* gets(char *s); // nhận chuỗi ký tự – int scanf(char *format, [, address,…]); 4.2. Xuất – Output • Macro: – int putchar(int c); // xuất ký tự c ra màn hình. • Functions: – int putch(int c); // tương tự như putchar() – int puts(const char *s); // xuất chuỗi ký tự ra // màn hình – int printf(const char *format [, argument,…]); – int cprintf(const char *format [, argument,…]); Ví dụ: Chương 5 BIỂU THỨC VÀ CÁC PHÉP TOÁN Chuong 03- Co ban ve Ngon ngu C 10 5.1. Toán tử - Operators • Toán tử: Ký hiệu mô tả 1 phép toán cho kết qủa 1 trị duy nhất. • Toán hạng (operand): Dữ liệu để phép toán tác động. • Kết qủa (result): Dữ liệu mới được sinh ra sau khi thực thi xong phép toán. • C hỗ trợ các phép toán có 1/2/3 toán hạng • Unary/binary/ternary operator: Toán tử 1/2/3 ngôi. Các loại toán tử của C • Toán tử số học – Arithmetic ops • Toán tử so sánh – Relational ops • Toán tử luận lý – Logical ops • Toán tử gán – Assignment ops • Toán tử trên bit – Bitwise ops • Các toán tử khác 5.1.1. Toán tử số học – Arithmetic operators Ví dụ: int k = 3, t = 6; int u = k- -; int v = - - t; Hỏi k, t, u, v có trị bao nhiêu? Lưu ý về Toán tử chia Nguyên % Nguyên Phần dư Kết quả Nguyên / Nguyên Phần nguyên Kết quả Nguyên / Thực Thực Kết quả Thực / Nguyên Thực Kết quả Thực / Thực Thực Kết quả Phép chia trong C % / Ví dụ: Toán tử % chỉ dùng cho số nguyên Chuong 03- Co ban ve Ngon ngu C 11 5.1.2. Toán tử so sánh – Relational operators Ví dụ: Toán tử so sánh 5.1.2. Toán tử luận lý – Logical operators Toán tử Luận lý 5.1.3. Toán tử gán – Assigment operators • Khi gán trị mới cho 1 biến, trị cũ bị ghi đè. 0000000000000001 x=1; Ví dụ Tương đương s = s+a; s += a; s = s / a; s /= a; 0000000000001011 x=11; Ví dụ: 5.1.4. Toán tử bit – Bitwise operators 0000111 > 00001110 00011100 00000011 00000001 1 bit 2 bit 14d 28d 7d 3d 1d Bạn có nhận xét gì ? Chuong 03- Co ban ve Ngon ngu C 12 Ví dụ: 0000 0000 0000 0011 0000 0000 0000 0111 0000 0000 0000 0100 7*4  28 7/4  1 5.1.5. Các toán tử khác • Ép kiểu (type casting) : – (kiểuT) x – kiểuT (x) • Toán tử 3 ngôi: BTĐK ? X : Y; • Quản lý bộ nhớ: – sizeof(biến) : Lấy kích thước byte của „biến‟ – sizeof(kiểu dữ liệu) : Lấy kích thước byte của „kiểu dữ liệu‟ – new : Cấp phát động một vùng nhớ – delete : Trả một nhớ đã được cấp phát động – &biến : Lấy địa chỉ bộ nhớ của „biến‟ (địa chỉ chiếm 4 byte ở DOS) Ví dụ về ép kiểu lớn sang kiểu nhỏ 0000 0001 0000 0000 m=256 0000 0000 c Ép kiểu lớn sang kiểu nhỏ Ép kiểu tự động • Kiểu kết qủa của 1 biểu thức là kiểu lớn nhất của toán hạng tham gia biểu thức. int n=3; long t=123; double x=5.3; 3*n + 620*t – 3*x (int*int) + (int*long) - (int*double) int + long - double long - double double Hãy giải thích vì sao chương trình sau cho kết qủa sai? Theo bạn, một hộ sử dụng 155 kwh điện một tháng và tính tiền theo công thức sau sẽ cho kết qủa đúng hay sai? t =100*650+50*850+5*1150; 0111 1111 1111 1111 0000 0000 0000 0001 1000 0000 0000 0000 + 5.2. Độ ưu tiên của toán tử – Operator Precedence • Thứ tự mà một toán tử được thực hiện khi biểu thức có nhiều toán tử. Độ ưu tiên của toán tử • Nhìn chung độ ưu tiên: – Cặp ngoặc từ trong ra ngoài – Toán tử số học, nhân chia trước cộng trừ sau. – Toán tử so sánh – Toán tử luận lý – Toán tử gán TT Phép toán Trình tự kết hợp 1 () [] Trái qua phải 2 ! ~ & –(dấu trừ) ++ -- (type ) sizeof Phải qua trái 3 * ( phép nhân ) / % Trái qua phải 4 + – (phép trừ) Trái qua phải 5 > Trái qua phải 6 >= Trái qua phải 7 == != Trái qua phải 8 & Trái qua phải 9 ^ Trái qua phải 10 | Trái qua phải 11 && Trái qua phải 12 || Trái qua phải 13 ?: Phải qua trái 14 = += -= *= /= %= <<= >>= &= ^= |= Phải qua trái 15 , Trái qua phải Chuong 03- Co ban ve Ngon ngu C 13 5.3. Biểu thức – Expressions • Sự kết hợp đúng cách của hằng, biến, hàm, toán tử • Hàm trong biểu thức là một tác vụ cho một trị duy nhất và thuộc kiểu cơ bản. • Các hàm toán học được khai báo trong math.h Tham khảo thư viện toán học của C Gõ vào màn hình soạn thảo: math.h Để con nháy dưới từ math, Gõ Ctrl + F1 Chương 6 CẤU TRÚC ĐIỀU KHIỂN TRONG C Nội dung: • Câu lệnh đơn • Khối lệnh • Cấu trúc chọn • Cấu trúc lặp • Ngắt điều khiển 6.1. Câu lệnh đơn – Simple statement • Là một câu lệnh đơn giản như: – Khai báo hằng, biến – Gán trị cho biến – … • Kết thúc bằng dấu chấm phẩy ; 6.2. Khối lệnh – Block/compound statement • Gồm một nhóm câu lệnh lại thành một khối trong cặp ngoặc nhọn { }. • Kết thúc 1 khối lệnh không cần dấu chấm phẩy. • Khối lệnh được xem là một câu lệnh. Chuong 03- Co ban ve Ngon ngu C 14 6.3. cấu trúc chọn – Select structure • Còn gọi là cấu trúc rẽ nhánh (branching). • Dựa trên một điều kiện hay một dữ liệu để xác định một hướng thực thi chương trình. • Cấu trúc chọn 1/2: if … else … • Cấu trúc chọn 1/n : switch…case… 6.3.1. Cấu trúc chọn ½ : if…else… • Cú pháp : if (condition) CâuLệnh_1; [ else CâuLệnh_2;] • Biểu thức điều kiện được tính toán (trả trị 0: sai, 1 hay khác 0:đúng) trước khi rẽ nhánh. condition ? CâuLệnh yes no condition ? CâuLệnh_1 yes no CâuLệnh_2 else phải đi với if ngay trước đó Ví dụ Hãy vẽ lưu đồ cho 2 chương trình này và tìm sự khác biệt giữa chúng Cả 2 chương trình cùng cho một kết qủa Ví dụ về một điều kiện thỏa phải làm nhiều lệnh Bạn giải thích thế nào về lỗi trong chương trình này? Ví dụ về if lồng nhau - nesting if statement Bạn hãy diễn đạt chương trình trên bằng ngôn ngữ tự nhiên và vẽ lưu đồ. 84 6.3.2: Cấu trúc else if • Cú pháp lệnh if (biểu thức luận lý 1) khối lệnh 1; else if (biểu thức luận lý 2) khối lệnh 2; … else if (biểu thức luận
Tài liệu liên quan