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

Giáo trình Kỹ thuật lập trình - CĐ Kinh tế Kỹ thuật TP.HCM

161 8 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 161
Dung lượng 6 MB

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

Nội dung

Giáo trình Kỹ thuật lập trình cung cấp cho người học các kiến thức: Các khái niệm cơ bản của ngôn ngữ lập trình C/C++; Các hàm nhập xuất; Cấu trúc điều khiển; Hàm; Mảng và chuỗi; Con trỏ; Kiểu dữ liệu người dùng tự định nghĩa. Mời các bạn cùng tham khảo!

Trang 1

TRƯỜNG CAO ĐẲNG KINH TẾ KỸ THUẬT

THÀNH PHỐ HỒ CHÍ MINH KHOA CÔNG NGHỆ THÔNG TIN

Trang 2

1.2.2 Các kiểu dữ liệu cơ sở 7

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

1.2.2.2 Khái niệm về biến và hằng 8

1.2.2.3 Từ khóa 9

1.2.2.4 Ghi chú 9

1.2.3 Biểu thức – Toán tử - Câu lệnh 10

1.2.3.1 Biểu thức – Toán tử 10

1.2.3.2 Lệnh và khối lệnh 14

1.2.3.3 Chuyển đổi kiểu giá trị 16

1.2.3.4 Các hàm có sẵn trong C/C++ 16

1.2.3.5 Phạm vi của biến 17

1.2.4 Thuật toán lưu đồ 17

1.2.4.1 Khái niệm 17

1.2.4.2 Các ký hiệu trên lưu đồ 17

1.2.5.3 Các ví dụ biểu diễn lưu đồ thuật toán 17

1.2.5.4 Khởi động và thoát Dev-C++ 19

1.3 Bài tập 21

BÀI 2 : CÁC HÀM NHẬP XUẤT 23

2.1 Mục tiêu 23

2.2 Nội dung 23

2.2.1 Hàm printf & scanf 23

2.2.1.1 Hàm printf 23

2.2.1.2 Hàm scanf 26

2.2.2 Hàm getche & getch 27

2.2.2.1 Hàm getche 27

2.2.2.2 Hàm getch 27

Nhập xuất cout & cin 27

Trang 3

2.2.3.2 Hàm cin 28

2.3 Bài tập 28

BÀI 3 : CẤU TRÚC ĐIỀU KHIỂN 30

3.1 Mục tiêu 30

3.2 Nội dung 30

3.2.1 Câu lệnh điều khiển 30

3.2.1.1 Dạng 1 (if thiếu) 30

3.2.1.2 Dạng 2 (if … else) 34

3.2.1.3 Cấu trúc else if 39

3.2.1.4 Lệnh switch…case 45

3.2.2 Vòng lặp 52

3.2.2.1 Vòng lặp for 52

3.2.2.2 Lệnh while 60

3.2.2.3 Lệnh do…while 64

3.2.2.4 Vòng lặp lồng nhau 67

3.2.2.5 Lệnh break 69

3.2.2.6 Lệnh continue và goto 70

3.2.2.7 Lệnh exit 72

3.3 Bài tập 73

3.3.1 Sử dụng lệnh if 73

3.3.2 Sử dụng lệnh switch 74

3.3.3 Bài tập làm thêm 75

3.3.4 Bài tập vòng lặp 75

BÀI 4 : HÀM 79

4.1 Mục tiêu 79

4.2 Nội dung 79

4.2.1 Tổng quan về hàm 79

4.2.1.1 Khái niệm 79

4.2.1.2 Cấu trúc của hàm 79

4.2.1.3 Các ví dụ về sử dụng hàm 80

4.2.2 Tham số dạng tham biến và tham trị 83

Trang 4

4.3 Bài tập 94

4.3.1 Bài tập hàm 94

4.3.2 Bài tập đệ quy 95

BÀI 5 : MẢNG VÀ CHUỖI 96

5.1 Mục tiêu 96

5.2 Nội dung 96

5.2.1 Mảng 96

5.2.1.1 Cách khai báo mảng 96

5.2.1.2 Tham chiếu đến từng phần tử mảng 97

5.2.1.3 Nhập/Xuất dữ liệu cho mảng một chiều 97

5.2.1.4 Mảng nhiều chiều 100

5.2.1.5 Nhập/Xuất dữ liệu cho mảng 2 chiều 102

5.2.2 Chuỗi 109

5.2.2.1 Cách khai báo chuỗi 109

5.2.2.2 Hàm nhập (gets), xuất (puts) chuỗi 110

5.2.2.3 Các hàm chuỗi thường sử dụng 113

5.3 Bài tập 114

BÀI 6 : CON TRỎ 119

6.1 Mục tiêu 119

6.2 Nội dung 119

6.2.1 Khái quát về con trỏ? 119

6.2.1.1 Khái niệm 119

6.2.1.2 Lý do để dùng con trỏ 119

6.2.1.3 Các toán tử 119

Trang 5

6.2.1.5 Cấp phát và giải phóng vùng nhớ 123

6.2.2 Ứng dụng của con trỏ 125

6.2.2.1 Hàm có tham số của con trỏ 125

6.2.2.2 Con trỏ và mảng 127

6.2.2.3 Con trỏ và chuỗi 130

6.2.2.4 Con trỏ trỏ đến con trỏ 133

6.3 Bài tập 135

BÀI 7 : KIỂU DỮ LIỆU NGƯỜI DÙNG TỰ ĐỊNH NGHĨA 136

7.1 Mục tiêu 136

7.2 Nội dung 136

7.2.1 Kiểu cấu trúc (Struct) 136

7.2.1.1 Khái niệm 136

7.2.1.2 Khai báo kiểu struct 136

7.2.1.3 Tham khảo các thành phần trong struct 137

7.2.1.4 Khởi tạo struct 140

7.2.1.5 Struct lồng nhau 141

7.2.1.6 Sử dụng mảng các struct 144

7.2.2 Enum 150

7.2.2.1 Khái niệm 150

7.2.2.2 Cách khai báo khởi tạo biến có kiểu enum 151

7.2.2.3 Các ví dụ 151

7.3 Bài tập 154

TÀI LIỆU THAM KHẢO 155

PHỤ LỤC 156

Chú thích hình ảnh 156

Bảng biểu 156

Trang 6

- C++ được biết đến như là ngôn ngữ mới bao trùm lên C và do Bjarne Stroustrup sáng tác năm 1980 cũng tại phòng thí nghiệm Bell tại bang New Jersey, Mỹ Ban đầu được ông đặt tên cho nó là “C with classes” (C với các lớp) Tuy nhiên đến năm 1983 thì ông đổi tên thành C++, trong đó ++ là toán tử tăng thêm 1 của C

- C++ được biết đến như là ngôn ngữ lập trình hướng sự vật hay hướng đối tượng - OOP (Object Oriented Programming) Nó cung cấp các lớp mà có 4 chức năng thông dụng trong các ngôn ngữ OO: tính trừu tượng, tính bao đóng, tính đa hình, và tính kế thừa

C++ bao trùm lên C nên mọi đặc điểm của C đều có trong C++ Ngoài ra, C++ còn có một số đặc điểm khác như:

C++ là ngôn ngữ hướng đối tượng

C++ là ngôn ngữ định kiểu rất mạnh

C++ cung cấp cách truyền tham số bằng tham chiếu cho hàm

Trang 7

C++ cung cấp cơ cấu thư viện để người lập trình có thể tự tạo thêm hàm thông

dụng vào thư viện và có thể tái sử dụng sau này

C++ cung cấp một cơ chế đa dạng hóa tên hàm và toán tử

C++ cung cấp các class là loại cấu trúc mới đóng gói chung cho cả dữ liệu lẫn các

hàm trong một chủ thể được bảo vệ một cách chặt chẽ

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

- Các định nghĩa biến, hằng, kiểu, hàm: Cung cấp tên hàm, kiểu hàm, số đối số

và kiểu của từng đối số của hàm Các biến và hằng được định nghĩa tại đây sẽ trở thành biến và hằng toàn cục hoặc các khai báo nguyên mẫu hàm với cú pháp sau: <kiểu hàm> <tên hàm> ([biến tham số]);

Khối hàm main

Các định nghĩa hàm của người dùng

Trang 8

+ Từ khóa

+ Các khai báo biến, hằng

+ Các cấu trúc điều khiển

+ Biểu thức và các phép toán

+ Các định nghĩa, khai báo hàm, khai báo kiểu,…

 Những ký tự, ký hiệu sau: (phân biệt chữ in hoa và in thường):

 26 chữ cái latinh lớn A,B,C Z

 26 chữ cái latinh nhỏ a,b,c z

 10 chữ số thập phân 0,1,2 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

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

 3 thông tin đặc trưng của kiểu dữ liệu:

- Tên kiểu dữ liệu

- Kích thước vùng nhớ biểu diễn nó,miền giá trị

- Các phép toán có thể sử dụng

- Các kiểu dữ liệu đơn giản trong C++ chỉ là các kiểu số, thuộc hai nhóm chính đó

là số nguyên và số thực (số dấu phẩy động)

1.2.2 Các kiểu dữ liệu cơ sở

Có 4 kiểu dữ liệu cơ bản trong C là: char, int, float, double

Bảng 1: Các kiểu dữ liệu cơ bản trong C

Trang 9

TT

Kiểu dữ liệu

(Type)

Kích thước (Length)

Miền giá trị (Range)

1 unsigned char 1 byte 0 đến 255

4 unsigned int 2 bytes 0 đến 65,535

5 short int 2 bytes – 32,768 đến 32,767

11 long double 10 bytes 3.4 * 10–4932 đến 1.1 * 104932

Khái niệm tên biến rất quan trọng trong quá trình lập trình, nó không những thể hiện rõ

ý nghĩa trong chương trình mà còn dùng để xác định các đại lượng khác nhau khi thực hiện chương trình Tên thường được đặt cho hằng, biến, mảng, con trỏ, nhãn… Chiều dài tối đa của tên là 32 ký tự

Tên biến hợp lệ là một chuỗi ký tự liên tục gồm: Ký tự chữ, số và dấu gạch dưới Ký tự đầu của tên phải là chữ hoặc dấu gạch dưới Khi đặt tên không được đặt trùng với các từ

number-odd (sử dụng dấu gạch ngang)

Lưu ý: Trong C/C++, phân biệt đặt tên chữ hoa và chữ thường

Ví dụ 2: number khác Number

Trang 10

của hằng đặt theo quy tắc của tên

- Các hằng kí tự được viết trong cặp dấu nháy đơn ‘’

- Các xâu kí tự là dãy các kí tự được viết trong cặp dấu nháy kép “”

Từ khóa là từ có ý nghĩa dùng để xác định khai báo dữ liệu và viết các câu lệnh trong lập trình Trong C/C++ có các từ khóa sau:

Bảng 2: Các từ khóa trong C/C ++

char double float int register signed unsigned

 Các từ khóa khi lập trình phải viết bằng chữ thường

Trong khi lập trình cần phải ghi chú để giải thích các biến, hằng, hàm, thao tác xử lý giúp cho chương trình rõ ràng dễ hiểu, dễ nhớ, dễ sửa chữa và để người khác đọc vào dễ hiểu Trong C/C++ hỗ trợ chọn phép các ghi chú sau: // hoặc /* nội dung ghi chú */

Trang 11

/* thuat toan tim so lon nhat la

neu a lon hon b thi a lon nhat nguoc lai b lon nhat */

- Đối với ghi chú dạng // dùng để ghi chú trên một hàng

- Ghi chú dạng /* … */ có thể ghi chú một hàng hoặc nhiều hàng

- Nội dung ghi chú chương trình sẽ không thực hiện biên dịch

1.2.3 Biểu thức – Toán tử - Câu lệnh

1.2.3.1 Biểu thức – Toán tử

a Biểu thức

 Biểu thức là một sự kết hợp giữa các toán tử (operator) và các toán hạng (operand) 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 cặp dấu ngoặc đơn ()

để chỉ định toán tử nào được thực hiện trước

Trang 12

- Phép trừ

* Phép nhân / Phép chia

% Phép chia lấy phần dư Phép giảm 1 đơn vị ++ Phép tăng 1 đơn vị

Phép tăng và giảm (++ & )

Toán tử ++ dùng để tăng thêm 1 vào toán hạng và trừ bớt 1 Hay viết như sau:

x = x + 1 tương tự như ++x

x = x - 1 tương tự như x

Cả 2 phép toán tử tăng và giảm đều có thể tiền tố (đặt trước) hay hậu tố (đặt

sau) toán hạng Ví dụ: x = x + 1 có thể viết x++ (hay ++x) đều giống nhau

Tuy nhiên giữa tiền tố và hậu tố có sự khác biệt khi sử dụng trong 1 biểu thức Khi 1 toán tử tăng hay giảm đứng trước toán hạng của nó, C thực hiện việc tăng hay giảm trước khi lấy giá trị dùng trong biểu thức Nếu toán tử đi sau toán hạng, C lấy giá trị toán hạng trước khi tăng hay giảm nó

- Toán tử tiền tố:

x = 20

y = ++x //y = 21

- Toán tử hậu tố:

Trang 13

x = x++ //y = 20

Thứ tự ưu tiên của các toán tử số học như sau:

Toán tử: ++ → → * → / → % → + → -

Các toán tử quan hệ và các toán tử Logic

Các toán tử quan hệ dùng để so sánh các giá trị giữa các biến

Bảng 4: Các phép toán tử quan hệ Toán tử quan hệ Giải thích ý nghĩa

Toán tử Logic là toán tử nhận giá trị đúng hoặc sai Trong C mọi giá trị khác

0 được gọi là đúng, còn sai là 0 Các biểu thức sử dụng các toán tử quan hệ và Logic trả về 0 nếu sai và trả về 1 nếu đúng

Trang 15

Ý nghĩa: Trước tiên E1 được kiểm tra điều kiện, nếu đúng E2 trở thành giá trị

của biểu thức; nếu E1 sai, E3 được trở thành giá trị của biểu thức

Ví dụ:

X = 100

Y = X > 90 ? 50 : 200 Thì Y được gán giá trị 50, nếu X nhỏ hơn 90 thì Y sẽ nhận giá trị là 200 Đoạn mã này tương đương cấu trúc if như sau:

Trang 16

Ví dụ 6:

int ithang; //khai báo biến ithang có kiểu int float fgia; //khai báo biến fgia có kiểu float char ckitu1, ckitu2; //khai báo biến ckitu1, ckitu2 có kiểu char Cách khai báo tên biến dựa trên theo quy tắc ở mục 1.2.2.1

Ý nghĩa là biến ithang là kiểu int, ta nên thêm chữ i (kí tự đầu của kiểu) vào đầu tên biến thang để trong quá trình lập trình hoặc sau này xem lại, sửa chữa chương trình dễ dàng nhận ra biến ithang có kiểu int mà không cần

phải di chuyển đến phần khai báo mới biết kiểu của biến này Tương tự cho các kiểu biến còn lại

Vừa khai báo vừa khởi gán

Chúng ta có thể kết hợp việc khai báo với toán tử kết hợp với thức gán để biến nhận giá trị ngay cùng lúc với khai báo

Ví dụ 7:

 Khai báo trước, gán giá trị sau:

int main(int argc, char *argv[]) {

 Vừa khai báo vừa gán giá trị:

int main(int argc, char *argv[])

Trang 17

{ int a = 10, b = 20, c = 50;

}

1.2.3.3 Chuyển đổi kiểu giá trị

Quy tắc chuyển đổi kiểu dữ liệu đích phải có giá trị lớn hơn kiểu dữ liệu nguồn

Ví dụ: chuyển từ int sang float

int a = 100;

float f = a;

Hoặc tường minh: Thay đổi kiểu dữ liệu có dãy giá trị lớn sang dãy giá trị nhỏ hơn

Ví dụ: chuyển từ float sang int

float f = 100.51;

int a = (int) f;

Hàm thư viện là những hàm đã được định nghĩa sẵn trong một thư viện nào

đó, muốn sử dụng các hàm thư viện thì phải khai báo thư viện trước khi sử dụng

bằng lệnh #include <tên thư viện.h>

Bảng 9: Ý nghĩa của một số hàm có sẵn thường dùng

1 stdio.h

printf(), scanf(), getc(), putc(), gets(), puts(), fflush(), fopen(), fclose(), fread(), fwrite(), getchar(), putchar(), getw(), putw()…

Thư viện chứa các hàm vào/ ra chuẩn

(standard input/outp ut)

2 conio.h

clrscr(), getch(), getche(), getpass(), cgets(), cputs(), putch(), clreol(),…

Thư viện chứa các hàm vào ra trong chế độ DOS (DOS

console)

3 math.h

abs(), sqrt(), log() log10(), sin(), cos(), tan(), acos(), asin(), atan(), pow(), exp(),…

Thư viện chứa các

Trang 18

Khi lập trình, chúng ta phải nắm rõ phạm vi của biến Nếu khai báo và sử dụng không đúng, không rõ ràng sẽ dẫn đến sai sót khó kiểm soát được, vì vậy chúng ta cần phải xác định đúng vị trí, phạm vi sử dụng biến trước khi sử dụng biến

 Khai báo biến ngoài (biến toàn cục): Vị trí biến đặt bên ngoài tất cả các hàm, cấu trúc Các biến này có ảnh hưởng đến toàn bộ chương trình Chu trình sống của nó

là bắt đầu chạy chương trình đến lúc kết thúc chương trình

 Khai báo biến trong (biến cục bộ): Vị trí biến đặt bên trong hàm, cấu trúc… Chỉ ảnh hưởng nội bộ bên trong hàm, cấu trúc đó… Chu trình sống của nó bắt đầu từ lúc hàm, cấu trúc được gọi thực hiện đến lúc thực hiện xong

1.2.4 Thuật toán lưu đồ

Khối mở đầu và kết thúc Dùng mở đầu hoặc kết thúc chương trình

Trang 19

Ví dụ 8: Tính A=x2+y2

Ví dụ 9 : Giải phương trình bậc 1 Ax+B=0

Ví dụ 10: Vẽ lưu đồ thuật toán hiển thị các số từ 1 đến 10

Trang 20

Ví dụ 11: Vẽ lưu đồ thuật toán kiểm tra tính hợp lệ của điểm số từ 0 đến 10

Trang 22

Hình 3: Màn hình sau khi khởi động thành công

b Chạy và biên dịch sửa lỗi chương trình

1 Vẽ lưu đồ thuật toán so sánh 2 số a, b

2 Vẽ lưu đồ thuật toán giải phương trình bậc 2

3 Vẽ lưu đồ thuật toán nhập vào 1 số a, kiểm tra xem số âm hay dương

4 Vẽ lưu đồ thuật toán tính tổng 2 số a, b

Trang 23

5 Vẽ lưu đồ (flowcharts) cho thuật toán nhập vào độ C (Celsius) và chuyển sang độ F (Fahrenheit) Biết rằng C/5 = (F-32)/9

6 Vẽ lưu đồ cho thuật toán nhập vào điểm toán, điểm lý và điểm hoá Tính tổng điểm và điểm trung bình rồi hiển thị kết quả

7 Vẽ lưu đồ cho thuật toán tính chu vi và diện tích hình tròn

8 Vẽ lưu đồ hiển thị các số lẻ trong đoạn [a,b] với a và b được nhập vào

9 Vẽ lưu đồ cho thuật toán tìm số lớn nhất trong 3 số a, b và c

10 Vẽ sơ đồ khối thuật toán cho phép nhập vào số nguyên dương n.Hãy kiểm tra số đó có phải số nguyên tố hay không (Số nguyên tố là khác 1,chỉ chia hết cho 1,và chính nó)

11 Vẽ lưu đồ in ra màn hình hình chữ nhật đặc kích thước m*n (m, n nhập từ bàn phím)

Trang 24

printf ("chuỗi định dạng"[, tham số 1, tham số 2,…]);

 Khi sử dụng hàm phải khai báo tiền xử lý #include <stdio.h>

- Hàm printf: tên hàm, phải viết bằng chữ thường, không được viết hoa

- Tham số 1,…: là các mục dữ liệu cần hiển thị ra màn hình Các tham số này có thể là biến, hằng hoặc biểu thức phải được định dạng trước khi in ra

- chuỗi định dạng: được đặt trong cặp nháy kép (" "), gồm 3 loại:

+ Chuỗi ký tự ghi như thế nào thì hiển thị ra màn hình như vậy

+ Phép kết xuất giá trị của các đối mục ra màn hình gọi là mã định dạng Sau đây

%x Số nguyên thập phân không dấu

Trang 25

%o Số nguyên bát phân không dấu

l Tiền tố dùng kèm với %d, %u, %x, %o để chỉ số nguyên

dài (ví dụ %ld) + Các ký tự điều khiển và ký tự đặc biệt

Bảng 12: Bảng điều mã điều khiển nhập/xuất

\n Nhảy xuống dòng kế tiếp canh về cột đầu tiên

\r Nhảy về đầu hàng, không xuống hàng

Ví dụ 3: Giả sử biến i có giá trị = 100

printf("So ban vua nhap la: %d \n", i);

 Kết quả in ra màn hình

So ban vua nhap la: 100

Ví dụ 4: Giả sử biến a có giá trị = 27 và b có giá trị = 14

printf("Tong cua 2 so %d va %d la %d ", a, b, a+b);

 Kết quả in ra màn hình

Trang 27

scanf ("chuỗi định dạng",[tham số 1, tham số 2,…]);

 Khi sử dụng hàm phải khai báo tiền xử lý #include <stdio.h>

- Hàm scanf: tên hàm, phải viết bằng chữ thường, không được viết hoa

- Chuỗi định dạng: được đặt trong cặp nháy kép (" ") là dạng biến dữ liệu nhập vào

- Tham số 1,…: là danh sách các tham số mục cách nhau bởi dấu phẩy, mỗi tham

số sẽ tiếp nhận giá trị nhập vào

Ví dụ 11: scanf("%d", &i);

 Nhập vào 12abc, biến i chỉ nhận giá trị 12 Nhập 3.4 chỉ nhận giá trị 3

Ví dụ 12: scanf("%d%d", &a, &b);

 Nhập vào 2 số a, b phải cách nhau bằng khoảng trắng hoặc enter

Ví dụ 13: scanf("%d/%d/%d", &thang, &ngay, &nam);

 Nhập vào tháng, ngày, năm theo dạng thang/ngay/nam (09/25/2016)

Ví dụ 14: scanf("%d%*c%d%*c%d", &thang, &ngay, &nam);

 Nhập vào tháng, ngày, năm với dấu phân cách /, -,…; ngoại trừ số

Ví dụ 15: scanf("%2d%2d%4d", &ngay, &thang, &nam);

 Nhập vào ngày, tháng, năm theo dạng dd/mm/yyyy.11

Trang 28

Hàm getch nhận một ký tự nhưng không cho hiện lên màn hình Khi đó, nó đã

thực hiện xong công việc Vì máy tính thực hiện chương trình rất nhanh, nên khi bạn vừa nhập ký tự thì chương trình cũng dừng

Do đó, hàm getch thường được sử dụng trong các chương trình đơn giản với

cout<<”chuỗi cần xuất”; hoặc cout<<[tham số 1, tham số 2,…] ;

 Khi sử dụng hàm phải khai báo tiền xử lý #include <iostream>

- Hàm cout: tên hàm, phải viết bằng chữ thường, không được viết tên hàm chữ hoa

- Chuỗi phải đặt trong dấu nháy kép (“ ”) cuối câu lệnh có dấu chấm phẩy

- Tham số 1, …: là danh sách các tham số cách nhau bởi dấu <<, mỗi tham số

sẽ tiếp nhận giá trị xuất ra màn hình

Ví dụ 16: cout<<”Bai hoc dau tien, xuat chuoi bang cout”;

 Kết quả in ra màn hình

Bai hoc dau tien, xuat chuoi bang cout

Ví dụ 17: cout<<”Gia tri 1 \n”<<”Gia tri 2\n”<<”Gia tri 3”;

 Kết quả in ra màn hình

Gia tri 1

Giá tri 2

Gia tri 3

Trang 29

cout<< ”Ket qua x+y=”<<x+y;

 Kết quả thực hiện đoạn chương trình trên :

Nhap x=9

Nhap y=6

Ket qua x+y=15

2.3 Bài tập

1 Viết chương trình nhập vào 3 số nguyên a, b, c và tính tổng, xuất kết quả

2 Viết chương trình nhập vào chiều dài và rộng hình chữ nhật, tính diện tích hình chữ nhật

3 Viết chương trình nhập vào điểm toán, lý, hóa kiểu số thực và tính điểm trung bình

4 Viết chương trình đọc và 2 số nguyên và in ra kết quả của phép (+), phép trừ (-), phép nhân (*), phép chia (/) Nhận xét kết quả chia 2 số nguyên

int a,b;

cin>>a>>b;

Trang 30

13 Viết chương trình nhập các thông tin của người một học sinh như sau: mã sinh viên,

họ tên, ngày sinh, nghành học, điểm lập trình c và xuất thông các thông tin vừa nhập cho người dùng xem

Trang 31

Bài 3 : CẤU TRÚC ĐIỀU KHIỂN

(Cấu trúc chọn) 3.1 Mục tiêu

Sau khi học xong học sinh sẽ trình bày và vận dụng được các kỹ năng cơ bản sau:

 Trình bày được cú pháp câu lệnh điều khiển

 Sử dụng được các câu lệnh điều khiển

 Trình bày các vòng lặp được sử dụng trong ngôn ngữ lập trình C/C++

 Phân biệt được các vòng lặp trong ngôn ngữ lập trình C/C++

 Áp dụng được vòng lặp vào bài toán cụ thể

 Trình bày các lệnh rẽ nhánh được sử dụng trong ngôn ngữ lập trình C/C++

 Lựa chọn đúng câu lệnh rẽ nhánh cho bài toán cụ thể

 Ý nghĩa, cách hoạt động của vòng lặp

 Cú pháp, ý nghĩa, cách sử dụng lệnh for, while, do…while

 Ý nghĩa và cách sử dụng lệnh break, continue

 Một số bài toán sử dụng lệnh for, while, do…while thông qua các ví dụ

 So sánh, đánh giá một số bài toán sử dụng lệnh for, while hoặc do…while

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

3.2 Nội dung

3.2.1 Câu lệnh điều khiển

Câu lệnh điều kiện 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 điều kiện là đúng (true) hay sai (false) hoặc khác không hay bằng không

3.2.1.1 Dạng 1 (if thiếu)

Kiểm tra câu lệnh biểu thức điều kiện quyết định sẽ thực hiện hay không một khối

lệnh thỏa điều kiện

Cú pháp lệnh:

 Ý nghĩa

 Kết quả của điều kiện phải là đúng (0) hoặc sai (=0)

khối lệnh;

Trang 32

 Nếu khối lệnh bao gồm từ 2 lệnh trở lên thì phải đặt trong dấu { }

Ví dụ 1: Viết chương trình nhập vào 2 số nguyên a, b Tìm và in ra số lớn nhất

a Ý tưởng lời giải

- Trước tiên ta gán a là giá trị lớn

- Sau đó so sánh b với a, nếu b lớn hơn a ta gán b cho max

- Cuối cùng ta được kết quả max là giá trị lớn nhất

b Mô tả bằng lưu đồ thuật giải thuật giải

Trang 33

c Viết chương trình

Hình 4: Màn hình giải ví dụ 1 mục 3.2.1.1

 Kết quả in ra màn hình

Trang 34

Hình 5: Kết quả chương trình chạy ví dụ 1 mục 3.2.1.1

Ví dụ 2: Viết chương trình nhập vào 2 số nguyên a, b Nếu a lớn hơn b thì hoán đổi giá

trị a và b, ngược lại không hoán đổi In ra giá trị a, b

a Ý tưởng lời giải

- Nếu giá trị a lớn hơn giá trị b, bạn phải hoán chuyển 2 giá trị này cho nhau

- Ta sẽ tạo một biến tạm cùng kiểu dữ liệu với a và gán biến tạm cho giá trị là a

- Sau đó gán giá trị b cho a và cuối cùng gán giá trị biến tạm cho b, rồi in giá trị a,

b ra cho người dùng xem

b Mô tả bằng lưu đồ thuật giải

d Viết chương trình

a > b Đúng

Bắt đầu Nhập a, b

Sai

In a, b Kết thúc

tam = a

a = b

b = tam

Trang 35

else Khối lệnh 2;

Trang 36

Lưu ý

Nếu khối lệnh 1, khối lệnh 2 bao gồm từ 2 lệnh trở lên thì phải đặt trong dấu {

}

Ví dụ 3: Viết chương trình nhập vào 2 số nguyên a, b In ra thông báo "a bằng b" nếu a

= b, ngược lại in ra thông báo "a khác b"

a Ý tưởng lời giải

 Nhập dữ liệu vào và so sánh a với b

 Nếu a bằng b thì in ra câu thông báo "a bằng b"

 Ngược lại in ra thông báo "a khác b"

c Mô tả bằng lưu đồ thuật giải

Trang 37

d Viết chương trình

Hình 8: Màn hình giải ví dụ 3 mục 3.2.1.2

 Kết quả in ra màn hình

Trang 38

Hình 9: Kết quả chương trình chạy ví dụ 3 mục 3.2.1.2

Lưu ý:

- Sau else không có dấu chấm phẩy

Ví dụ: else; printf(“a khac b\n”);

- Trình biên dịch không báo lỗi, lệnh printf(“a khac b\n”); không thuộc else

Ví dụ 4: Viết chương trình nhập vào kí tự c Kiểm tra xem nếu kí tự nhập vào là kí tự

thường trong khoảng từ 'a' đến 'z' thì đổi sang chữ in hoa và in ra, ngược lại in ra thông báo

"Kí tự bạn vừa nhập là: c"

a Ý tưởng lời giải

- Trước tiên bạn phải kiểm tra xem nếu kí tự c thuộc khoảng 'a' và 'z'

- Đổi kí tự c thành chữ in hoa bằng cách lấy kí tự c – 32 rồi gán lại cho chính nó (vì giữa kí tự thường và in hoa trong bảng mã ASCII cách nhau 32, sau khi đổi xong bạn

in kí tự c ra

- Ngược lại, in câu thông báo "Kí tự bạn vừa nhập là: c"

b Mô tả bằng lưu đồ thuật giải

Trang 39

c Viết chương trình

Hình 10: Màn hình giải ví dụ 4 mục 3.2.1.2

 Kết quả in ra màn hình

Trang 40

Hình 11: Kết quả chương trình chạy ví dụ 4 mục 3.2.1.2 3.2.1.3 Cấu trúc else if

Sẽ kiểm tra điều kiện và thực hiện 1 trong n khối lệnh cho trước

Cú pháp

Ý nghĩa

- Từ khóa if, else if, else phải viết bằng chữ thường

- Kết quả của điều kiện 1, 2 n phải là

khối lệnh n-1; trở lên thì phải đặt trong dấu { } else

khối lệnh n;

Ngày đăng: 18/05/2021, 08:27

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

w