1. Trang chủ
  2. » Thể loại khác

Giáo trình C cơ sở

87 108 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 87
Dung lượng 289,03 KB

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 C cơ sở tài liệu, giáo án, bài giảng , luận văn, luận án, đồ án, bài tập lớn về tất cả các lĩnh vực kinh tế,...

Trang 1

Lời nói đầu

Một cử nhân Tin học không thể không biết lập tr ình C ++, vấn đề là biết đến mức nào trong khi C ++ (hay cao c ấp hơn là Visual C ++) đã trở nên quá “khổng lồ” về mọi mặt

- nội dung cũng như môi trường phát triển của nó.

Khi giáo trình “Lập trình hướng đối tượng với C ++” ra đời, Giáo s ư Tin học Mỹ, Trần Thành Duy, có hỏi: “Anh định dạy bao nhi êu tiết mà nặng nề vậy?” Tôi trả lời là 45 tiết lý thuyết Rồi ông ta nói: “Suy cho c ùng thì dạy C ++ cho sinh viên thực chất là dạy một “phong cách” lập trình theo kiểu C ++ chứ hoàn toàn không phải dạy để họ trở thành một lập trình viên C ++ thực thụ ngay được - vì với sinh viên còn còn quá nhiều thứ khác phải học Chính

vì vậy mà nên chọn lọc, chọn lọc để nó trở th ành một giáo trình chứ không thể trở thành một quyển sách nói về C ++” Rồi ông ta nói tiếp: “Với 45 tiết mọi thứ chỉ là định hướng, cho nên phần Lập trình hướng đối tượng không nên quá rối rắm, mà chỉ nên làm rõ 3 tư tưởng chính yếu: Đóng kín, kế thừa và đa

hình Ngoài ra không thể không đề cập đến 3 nội dung khác: Dữ liệu, lệnh và hàm “ Rồi ông khuyên: ” Nên cho Sinh viên làm quen c ả 3 phong cách lập

trình theo: C++, Java và Visual Basic Còn ra đời họ chọn phong cách n ào là tuỳ ở họ” Ông nhắc lại câu nói của một nh à Sư phạm, Gs Ts H.Riner: ” Truyền thụ một môn học, thực chất l à đẩy người học vào một dòng nước, cái khó là làm sao dần dà họ tự bơi được, thích bơi và đến đích, chứ họ không chết đuối”.

Theo tinh thần đó chúng tôi sửa lại lần n ày sau khi đã cắt đi rất nhiều thứ mà Gs.Duy bảo là “nặng nề”.

Với quyển giáo trình rất cô đọng và đơn giản này (chắc sẽ có nhiều thiếu sót mong các bạn góp ý), hy vọng nó l à chất xúc tác ban đầu giúp bạn hứng thú, tiếp tục tìm hiểu về C ++, VC++, biết đâu bạn sẽ trở th ành một lập trình viên thực thụ với C ++ hoặc Visual C ++ Ngôn ngữ m à nhiều người quá hiểu về sức mạnh của nó, nh ưng đồng thời cũng ngại nó, nể nó v à yêu nó.

-Chúc các bạn thành đạt!

Trang 2

Chương 1: Làm quen v ới lập trình C ++

1.1 Bộ ký tự dùng trong ngôn ngữ C ++

Các ngôn ngữ lập trình đều được xây dựng từ một bộ ký tự n ào đó Từ các ký tự

đó theo nhiều cách khác nhau nhóm th ành các từ, các từ lại được liên kết theomột trật tự nào đó thành câu lệnh Chương trình là một dãy các lệnh mô tả thuậtgiải của một vấn đề nào đó

Ngôn ngữ CN ++ được mô tả bằng bộ ký tự sau:

· 26 chữ cái hoa: A,B,C, ,Z

· 26 chữ cái thường: a,b,c, ,z

asm break case cdecl char const class continue

default do double else enum extern far

float for goto huge if int interrupt

long near pascal register return short signed

sizeof static struct switch typedef union unsigned

void volatile while v.v

Ý nghĩa của nó được mô tả dần ở các phần sau Từ khoá đ ược viết bằng chữthường, ví dụ: STATIC hoặc Static l à sai mà phải viết là static Không đượcdùng từ khoá để đặt tên cho các biến, các hằng, các hàm v.v

1.3 Tên

Trong chương trình có nhiều loại tên: Tên hằng, tên biến, tên mảng, tên tệp, têncon trỏ, tên hàm, tên nhãn v.v Tên được đặt theo quy tắc sau:

Là một xâu chữ cái hoặc chữ cái v à chữ số, nhưng chữ cái hoặc dấu gạch nối đứng

đầu, tên không được trùng với từ khoá, độ dài cực đại của tên không quá 32 ký tự.

Trang 3

Bảng sau cho ta các ví dụ về tên:

Tên đặt sai Tên đặt đúng

Chú ý: Khi đặt tên nên chú ý đến chữ hoa và chữ thường, cụ thể tên ALPHA,

Alpha và alpha là 3 tên khác nhau

// Đây là chương trình tìm Max của mảng

Khi gặp thông tin trong cặp /* */ hoặc thông tin sau cặp // máy sẽ bỏ qua Mụcđích dùng chú thích là đ ể người đọc biết nội dung lệnh đó hoặc đoạn lệnh đó l à

#include <iostream.h> /* Sử dụng dòng nhập xuất */

#include <conio.h> /* Sử dung thư viện về màn hình */

main() /* Hàm chính */

{

/* Xuống dòng và in CHAO BAN */

cout << "\nCHAO BAN! ";

/* Xuống dòng và in GOOD BYE! */

cout << "\nGOOD BYE !";

getch(); /*Tạm dừng để xem kết quả, nhờ th ư viện conio.h */

Trang 4

cout <<"\nCHAO BAN! ";

cout << "\nGOOD BYE! ";

#include <math.h> /*Sử dụng thư viện các hàm toán học */

#include <conio.h> /*thư viện có chứa lệnh getch () */

main ()

{

float r, cv; /* Lệnh khai báo biến */

/* Hiển thị ra màn hình thông báo: Bán kính r = */

cout << "\ n Chu vi=" << cv;

getch();/*Tạm dừng máy để xem kết qủaT */

}

1.6 Giải thích một số vấn đề ở các ví dụ tr ên

· Mỗi câu lệnh phải được kết thúc bằng dấu chấm phẩy M (;)lệnh có thể đ ượcviết trên một hay nhiều dòng.l

Trang 5

· Hằng văn bản được đặt trong hai dấu nháy kép (") Để báo cho C + + biết mộtxâu ký tự vẫn còn nằm tiếp ở dòng dưới, ta đặt thêm / trước khi xuống dòng.

Ví dụ:

cout <<"\ n Trường Đại học /

\ n QL&KD Hà nội";

Tương đương một dòng như sau:

cout <<"\ n Trường Đại học \ n Sư phạm Hà nội";

·Lời giải thích đặt giữa cặp /* */ v à có thể được viết:

1 Trên một dòng.

2 Trên nhiều dòng.

3 Trên phần còn lại của một dòng.

Trong chương trình trên có dùng hàm chu ẩn cout Hàm này nằm trong tệp

iostream.h, vì vậy ở đầu chương trình cần viết:

#include <iostream.h> hoặc viết #include "iostream.h" cũng được.Cuối dòng này không có dấu chấm phẩy (;)như cuối lệnh Trong Cn ++, tr ướckhi sử dụng một hàm cần biết hàm đó nằm trong thư viện nào, khai báo thư viện

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

· Chương trình trên chỉ có một hàm chính (main), tất nhiên chương trình còn

có thể có nhiều hàm khác Điều này sẽ được trình bày chi tiết trong các chươngsau

1.7 Khai báo và toán tử gán

a Khai báo

Nội dung khai báo sẽ nói kỹ trong các phần sau, ở đây ta chỉ nói qua cungcách khai báo biến mà thôi Trong C ++, mọi biến trước khi sử dụng đều phảikhai báo

Biến có kiểu nguyên: dùng từ khoá int

Biến có kiểu thực : dùng từ khoá float

v.v

Ví dụ:

int i, k; /* i, k có kiểu nguyên */

float x,y; /* x, y có kiểu thực */

Biến có kiểu int luôn luôn nhận giá trị nguyên trong quá trình tính toán còn bi ến kiểu float luôn nhận giá trị thực nhưng cũng có thể nhận giá trị nguy ên.

b Câu lệnh gán sẽ còn được trình bày kỹ trong các chương saub, ở đây ta chỉ

nói qua để có một cái nhìn chung về chương trình mà thôi Toán tử gán có

dạng:

B=BT;

Trong đó B là một biến, còn BT là một biểu thức toán học n ào đó Hoạt

động của toán tử gán như sau:

· Trước tiên tính biểu thức BT để có kết quả Q

Trang 6

· Sau đó gán giá trị Q cho biến B.

Giả sử ta vào dữ liệu từ bàn phím 2 số nguyên ta viết như sau:

int m, n; /* khai báo biến kiểu int * /

cout<<"\n\' Có nháy đơn hai đầu \' \n";

cout <<"\n\" Có nháy kép hai đầu \"";

cout <<"\n\n\\ Có gạch chéo hai đầu \\\n\n";

getch();

}

Trang 7

Kết quả thực hiện chương trìnhK

' Có nháy đơn hai đầu '

" Có nháy kép hai đầu"

\ Có gạch chéo hai đầu \

1.10 Chạy chương trình

Quá trình soạn và chạy chương trình bao gồm các bước cơ bản sau:

· Tạo tệp chương trình có đuôi CPP (hay còn gọi là soạn thảo chương trình)

· Dịch chương trình (tạo tệp chương trình dạng * EXE)

· Chạy chương trình.

1 Tạo chương trình nguồn.

Thường thì tệp tc.exe nằm trong th ư mục C:\TC\BIN, muốn soạn thảochương trình ta phải khởi động tc.exe, cụ thể:

C:\> TC\BIN\TC.EXE <Enter>

Sau đó một menu chính trên màn hình với nội dung như sau:

File Edit Search Run Compile

Để soạn hãy chọn § ile và chọn New Sau đó sử dụng bàn phím để gõ chương

trình vào Để ghi chương trình lên đĩa dưới dạng một tệp ta cần sử dụng chức

năng Save Sau đó gõ tên tệp vào và nhớ là đuôi là CPP Nếu muốn mở một tệp

đã có hãy chọn File /Open sau chọn chọn tệp cần mở v.v

2 Lập trình tính sin (x), cos(x), sqrt(x) v ới x được đưa vào từ bàn phím

3 Lập chương trình tính tích của 3 số thực được đưa vào từ bàn phím

Trang 8

2.1 Khai báo biến

Muốn sử dụng biến bắt buộc phải khai báo tr ước Ví dụ:

Cú pháp khai báo biến như sau:

Kiểu_dữ_liệu Danh _sách _các _biến;

Ví dụ:

int i, j; /*i, j là hai biến nguyên */

float x, y; /*x, y là hai biến thực */

2.2 Khai báo hằng

Hằng cũng phải được khai báo trước khi sử dụng, cú pháp khai báo nh ư sau:

const Kiểu _dữ_liệu Tên _hằng =Giá_trị_hằng;

Ví dụ:

const int a=320;

const float x=12.5, y=56.7;

2.3 Kiểu char

Một giá trị kiểu char chiếm một byte (8 bit) nh ư vậy 8 bit có thể mã hoá tới

28=256 ký tự Bộ mã hay dùng nhất hiện nay là bảng mã ASCII, trong C++ tadùng bảng mã ASCII, ví dụ:

Trang 9

Hằng ký tự được viết ra với mở nháy đơn và đóng nháy đơn: 'a', 'x', '3' v.v

Phân loại ký tự: Có thể chia 256 ký tự thành ba nhóm:

· Nhóm thứ nhất là các ký tự điều khiển có mã từ 0 đến 31 Ví dụ ký tự m ã 13 dùng

để chuyển con trỏ về đầu d òng, ký tự 10 chuyển con trỏ xuồng d òng dưới (trên cùng

cột) Các ký tự nhóm này nói chung không hiển thị ra màn hình

· Nhóm thứ hai là các ký tự văn bản có mã từ 32 đến 126 Các ký tự n ày có thể đưa

ra màn hình và máy in.N

· Nhóm thứ ba là các ký tự đồ hoạ có mã số từ 127 đến 255 Các ký tự n ày có thể

đưa ra màn hình.

Trong C++có một số ký tự có quy cách viết nh ư sau:

Chuông kêu: BEL \a 7 x07

Chúng ta cũng có thể dùng cách viết: \xHHH trong đó HHH là s ố hệ 16 hoặc

\DDD trong đó DDD là số hệ 8 Ví dụ 'A', \x41, \101 đều cùng biểu diễn ký tự A

Để khởi tạo hằng ký tự ta viết nh ư sau:

const char a='y', b='t', RC='\r', LF='\n';

Để chuyển đổi chữ to thành chữ thường hoặc ngược lại ta dùng 2 hàm sau:

Trang 10

· tolower(c): chuyển c thành chữ thường

· toupper(c): chuyển c thành chữ hoa

Các hàm trên nằm trong tệp <ctype.h> Hãy xem ví dụ sau:

2.5 Kiểu dấu phẩy động.

Trong C++ cho phép s ử dụng 3 loại giá trị dấu phẩy động đó l à float, double

và long double Hằng dấu phẩy động (float và double) được viết theo hai cách Cách 1: Số gồm phần nguyên, dấu chấm thập phân và phần thập phân, ví dụ:

Cách viết:

#define PI 3.141593

có nghĩa là đặt tên cho hằng float 3.141593 là PI.

Trang 11

Khởi đầu cho các biến Khi khai báo, nếu sau tên biến ta đặt dấu =

và một giá trị nào đó thì đây chính là cách vừa khai báo vừa gán giá trị cho mộtbiến:

int m = 2, n = 5 ; float x = -12.1 , y = 45.0, z = 234.7 ;

Điều này tương đương cách vi ết:

int m, n ; float x,y,z ;

m = 2 ; n= 5 ; x = -12.1 ; y = 45.0 ; z=234.7 ;

Địa chỉ của biến Mỗi biến được cấp phát một vùng nhớ gồm một số byte liên

tiếp Số hiệu của byte đầu chính l à địa chỉ của biến Để nhận địa c hỉ biến ta dùngphép toán:

cho ta biết có 4 mảng: a, b, x và y.? nghĩa như sau:

· Mảng a có kiểu là int, số chiều là một, số phần tử là 5 Các phần tử được đánh số

như sau: a[0], a[1], a[2], a[3], a[4] Mỗi phần tử a [i] có kiểu int như vậy mảng a

có thể biểu diễn được một dãy 5 số nguyên.

· Mảng b có kiểu là int, số chiều là 2, kích thước của các chiều là 3 và 4 Mảng có

12 phần tử, chúng được đánh số và được sắp xếp như sau:

Trang 12

b[0][0] b[0][1] b[0][2] b[0][3]

b[1][0] b[1][1] b[1][2] b[1][3]

b[2][0] b[2][1] b[2][2] b[2][3]

Mỗi phần tử b [i][j] có kiểu int, ta còn nói mảng b có 3 dòng, 4 cột.

· Mảng x có kiểu float, số chiều là một, kích thước bằng 3 Mảng có 3 phần tử đ ược

đánh số như sau:

x[0],x[1],x[2]

Mỗi phần tử x [i] có kiểu float và mảng x biểu diễn được một dãy 3 số

thực

· Mảng y có kiểu float, số chiều là 2, kích thước của mỗi chiều là 3 Mảng có 9 phần

tử, chúng được đánh số và được sắp xếp như sau:

y[0][0] y[0][1] y[0][2]

y[1][0] y[1][1] y[1][2]

y[2][0] y[2][1] y[2][2]

Mỗi phần tử y [i][j] có kiểu float, mảng y có 3 dòng, 3 cột.

Lấy địa chỉ phần tử mảng.

Có thể lấy địa chỉ phần tử mảng bằng phép toán &a[i] hoặc &a[i][j]

Địa chỉ đầu của mảng Hãy chú ý là: Tên mảng biểu thị địa chỉ đầu của mảng.

Như vậy ta có: a = &a[0]

Các ví dụ về mảng sẽ nói kỹ ở các phần sau

2.7 Định nghĩa kiểu bằng typedef

typedef int nguyen ;

Nghĩa là đặt tên kiểu int là nguyen Sau đó có thể dùng nguyen như int để khai

báo các biến nguyên và mảng nguyên như sau:

Đặt tên kiểu mảng thực một chiều 5 phần tử l à x.

Đặt tên kiểu mảng nguyên hai chiều kích cỡ 2x3 là y

Về sau ta có thể dùng các khai báo:

Trang 13

cout<<k ; }

· C++ xem một khối lệnh cũng như một câu lệnh riêng lẻ

· Khai báo biến, mảng có thể đặt ở đầu một hàm và cũng có thể đặt ở đầu

1 Các biến hay mảng khai báo b ên trong một khối lệnh không thể sửdụng ở bên ngoài khối lệnh đó

2 Nếu bên trong một khối ta dùng một biến hay một mảng có t ên trùngvới biến hoặc mảng ở ngo ài khối thì các biến hoặc mảng trùng tên đó làkhác nhau

3 Nếu một biến được khai báo ở bên ngoài một khối lệnh và không trùngtên với các biến khai báo b ên trong khối lệnh này thì biến đó cũng cóthể sử dụng cả bên trong cũng như bên ngoài khối lệnh

· Giả sử cùng một tên biến hay một tên mảng lại được khai báo ở cả hai khốilệnh lồng nhau theo cách sau:

{

float x ;

Trang 14

{

float x ;

}

}

Khi đó máy sẽ cấp phát hai khoảng nhớ khác nhau cho hai biến n ày,phạm vi hoạt động và thời gian tồn tại của chúng cũng khác nhau Biến x ởkhối trong có phạm vi hoạt động tại các câu lệnh củ a khối lệnh trong và nóchỉ tồn tại trong thời gian máy l àm việc với khối lệnh này Còn phạm vi hoạtđộng của biến x là ở khối ngoài gồm các câu lệnh bên trong khối lệnh ngoàinhưng không thuộc khối lệnh trong Tất nhi ên nếu thay đổi giá trị của biến xngoài sẽ không ảnh hưởng tới biến x trong và ngược lại Ví dụ:

· Một chương trình có thể bao gồm một hoặc nhiều h àm Hàm main()là một

thành phần bắt buộc của chương trình Chương trình bắt đầu thực hiện từ câu

lệnh đầu tiên của hàm µ ain()và kết thúc khi gặp dấu v } cuối c ùng của hàm

này Khi chương trình làm việc, máy có thể đi từ hàm này tới hàm khác Ta sẽxét kỹ hơn về vấn đề này ở các chương sau:

Trang 15

khi máy bắt đầu làm việc với hàm đến khi máy ra khỏi hàm Do chương trình bắtđầu làm việc từ câu lệnh đầu tiên của hàm main ()và khi máy ra kh ỏi hàm mainv()thì chương trinh kết thúct, nên các biến, mảng khai báo trong h àm main ()sẽtồn tại trong suốt thời gian l àm việc của chương trình Ví dụs:

· Bộ khởi đầu của một mảng char có thể hoặc là danh sách các hằng ký tự

Trang 17

Chương 3: Biểu thức

Biểu thức là một sự liên kết giữa các phép toán v à các toán hạng để biểu diễnmột công thức toán học n ào đó Khi viết biểu thức có thể d ùng các dấu ngoặctròn để thể hiện đúng trình tự tính toán trong biểu thứ c Một hằng, biến, phần tửmảng và hàm cũng được xem là biểu thức

& Phép và (AND) theo bit a&b

| Phép hoặc (OR) theo bit a|b

^ Phép loại trừ (XOR) theo bit a^b

<< Dịch trái a<<4 (dịch trái a đi 4 bit)

>> Dịch phải a>>4 (dịch phải a đi 4 bit)

~ Lấy phần bù theo bit ~a

a << n : Nghĩa là a được dịch trái n bit Tương đương với a *2n

a >> n : Nghĩa là a được dịch phải n bit Tương đương với a /2n

~1 = 0 ~0 = 1

Trang 18

3.3 Phép toán quan hệ và logic

Phép toán quan hệ và logic cho ta hoặc giá trị đúng (1) hoặc giá trị sai (0) Nóicách khác, khi các đi ều kiện nêu ra là đúng thì ta nhận được giá trị 1, trongtrường hợp trái lại, ta nhận đ ược giá trị 0

1 Các phép toán quan hệ cho trong bảng sau:

Trang 19

3.4 Chuyển đổi kiểu dữ liệu

Việc chuyển đổi kiểu th ường diễn ra một cách tự động trong hai tr ường hợpsau:

· Khi biểu thức gồm các toán hạng khác kiểu

· Khi gán một giá trị kiểu biến n ày cho một biến kiểu kia Điều này xảy ratrong toán tử gán

Sau đây là một số nguyên tắc:

1 Khi hai toán hạng trong một phép toán có kiểu khác nhau th ì kiểu thấp hơn

sẽ được nâng thành kiểu cao hơn trước khi thực hiện phép toán Kết quảthu được là một giá trị có kiểu cao h ơn Chẳng hạn:

· Giữa int và long thì int chuyển thành long.

· Giữa int và float thì int chuyển thành float.

· Giữa float và double thì float chuyển thành double.

2 Giá trị của vế phải trong phép gán đ ược chuyển sang kiểu của vế trái Kiểu

int có thể được chuyển thành float Kiểu float có thể được chuyển thành int do cắt bỏ phần thập phân Kiểu double chuyển thành float bằng cách làm tròn Kiểu long được chuyển thành int bằng cách cắt bỏ một số chữ

3.5 Phép toán tăng giảm

Trong C++ có hai phép toán một ngôi để tăng và giảm các biến Toán tửtăng + + sẽ cộng 1 vào toán hạng của nó, toán tử giảm - - sẽ trừ đi 1 Chẳng hạnnếu n đang có giá trị bằng 7 thì:

Sau khi thực hiện ++ n, n có giá trị mới là 8 Sau khi thực hiện n, n có giá trị mới là 6

Dấu ++ và có thể đứng trước hoặc sau toán hạng, ví dụ: ++ n , n++ , n , n

Sự khác nhau của ++n và n ++ là trong phép n ++ thì n t ăng sau khi giá trị của

nó đã được sử dụng, còn trong phép ++n thì n được tăng trước khi nó được sử dụng Sự khác nhau giữa n và n cũng tương tự.

Trang 20

thì y có giá trị 2, x có giá trị 3 và z có giá trị 6.

3.7 Biểu thức điều kiện

Biểu thức điều kiện có dạng:

BT1 ? BT2 : BT3

Trong đó BT1, BT2, BT3 là các biểu thức nào đó Giá trị của biểu thức điều kiện bằng giá trị của BT2 nếu BT1 khác không (BT1 đúng) và b ằng giá trị của BT3 nếu BT1 bằng không ( BT1 sai) Kiểu của biểu thức điều kiện là kiểu cao nhất trong các kiểu của BT2 và BT3 Chẳng hạn, nếu kiểu của BT2 là int, kiểu của BT3 là float thì kiểu của biểu thức điều kiện l à float.

Biểu thức điều kiện có thể được dùng như bất kỳ biểu thức nào khác Ví dụ: Câu lệnh:

s = a > b? a:b;

sẽ gán giá trị lớn nhất trong hai giá trị a hoặc b cho biến s Câu lệnh:

cout <<(a<b? a:b);

hiện thị lên màn hình giá trị cực tiểu của hai biến a và b

Trang 22

Chương 4: Các lệnh điều khiển

Chương trình bao gồm nhiều câu lệnh Các câu lệnh đ ược thực hiện tuần tự từtrên xuống dưới Các lệnh điều khiển cho phép l àm thay đổi trật tự đó Ta có thểchia các lệnh điều khiển thành ba nhóm:

· Lệnh nhảy vô điều kiện (goto)

· Lệnh rẽ nhánh (if, switch)

· Lệnh lặp (for, while, do while)

Như đã trình bày ở các phần trước, Trong C++ mỗi câu lệnh có thể viết tr ênmột hoặc nhiều dòng và được kết thúc bằng dấu chấm phẩy Khối lệnh l à một

dãy các câu lệnh đặt trong các dấu {} Không được đặt dấu chấm phẩy sau

dấu ngoặc nhọn kết thúc khối Nếu khối lệnh chỉ gồm một câu lệnh th ì có thể

bỏ các dấu ngoặc nhọn đầu v à cuối

4.1 Lệnh điều kiện if

Lệnh if cho phép lựa chọn một trong hai nhánh tuỳ thuộc v ào biểu thức có giá

trị dúng hay sai, có ha dạng sau:

Trang 23

Nếu biểu thức đúng thì thực hiện Nhối lệnh 1 bỏ khối lệnh 2

Nếu biểu thức sai thì bỏ Nhối lệnh 1 thực hiện khối lệnh 2

Trang 24

Chú ý: Khi các lệnh if lồng nhau nếu không sử dụng các dấu đóng mở khối th ì

dễ gây ra nhầm lẫn Ví dụ đoạn ch ương trình sau:

Trang 25

n=n+1;

Để chương trình dễ kiểm tra và đẹp mắt, người ta hay viết theo cách sau:

· Các câu lệnh hoặc khối lệnh thuộc một lệnh n ên viết dịch sang bên phải.C

Trang 26

Đối với dạng này thì:

· Nếu biểu thức thứ i (i = 1, ,n -1) là đúng thì khối lệnh i được thực hiện

· Nếu cả n -1 biểu thức đều sai thì khối lệnh n được thực hiện

Ví dụ: Tìm môn học trong các thứ trong tuần: 2,3,4,5,6,7

Trang 28

Lệnh Switch cho phép căn cứ vào giá trị của một biểu thức nguyên để chọn một

trong nhiều nhánh Lệnh có dạng sau:

switch (Biểu thức nguyên)

Trang 29

Hoạt động của lệnh switch.

1 Nếu biểu thức có giá trị là ni máy sẽ thực hiện khối lệnh i

2 Khi giá trị biểu thức khác tất cả các ni th ì:

· Nếu có default, máy nhẩy tới câu lệnh có nhãn default.

· Nếu không có default máy ra khỏi lệnh switch.

Ra khỏi lệnh switch: Máy sẽ ra khỏi lệnh switch khi gặp lệnh break hoặc gặp dấu ngoặc nhọn cuối cùng của thân switch.

Trang 30

case 2 : cout<<"\nToán, lý, hoá";

Trang 31

Khi dùng toán tử Goto cần lưu ý các điểm sau:

· Câu lệnh goto và nhãn cần nằm trong một hàm.

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

hàm Nó không thể dùng để nhảy từ hàm này sang hàm khác Không cho phép

dùng lệnh goto để nhảy từ ngoài vào trong một khối lệnh Nhưng nhảy từ trong

ra ngoài khối lệnh lại được phép Ví dụ:

Trang 32

Ta có thể tạo một quá trình lặp bằng cách dùng các toán tử if và goto Toán

tử for cho ta một cách khác xây dựng quá tr ình lặp đẹp hơn và hiệu quả hơn, lệnh for có dạng sau:

for (biểu thức 1; biểu thức 2; biểu thức 3)

Khối lệnh; /* thân của for */

Lệnh for gồm ba biểu thức và thân for Thân for là một câu lệnh hoặc một khối

lệnh Bất kỳ biểu thức n ào trong ba biểu thức nói trên đều có thể vắng mặt nhưng

phải giữ dấu chấm phẩy.

Biểu thức 1 thường là một toán tử gán để tạo giá trị ban đầu cho biến điều khiển, biểu thức 2 là một quan hệ logic biểu thị điều kiện để tiếp tục lặp, biểu thức 3 là một toán tử gán dùng để thay đổi giá trị của biến điều khiển.

Lệnh for làm việc theo các bước sau:

Trang 33

b Nếu biểu thức 2 có giá trị đúng máy sẽ thực hiện các câu lệnh trong thân for Khi gặp dấu ngoặc đóng } cuối cùng của thân for hoặc gặp câu lệnh continue máy sẽ chuyển tơí bước 4 để khởi đầu lại.

4 Tính biểu thức 3 sau đó quay trở lại bước 2 để bắt đầu một vòng mới.

Ví dụ phần 4.4 có thể viết bằng lệnh for như sau:

Trang 35

(a[0] đổi chỗ cho a[5], a[1] đổi chỗ cho a[4], a[2] đổi chỗ cho a[3])

Trang 36

cout<<"\ n Đây là kết quả:";

for (i= 0; i<=4; i=i+1)

cout<<"\n"<<a[i];

getch();

Trang 37

4.6 Lệnh while

Lệnh while dùng để xây dựng các chu trình, nó có dạng sau:

while (biểu thức)

Khối lệnh /* Thân chu trình */

Toán tử while gồm một biểu thức và thân chu trình Thân while là một câu lệnh

hoặc một khối lệnh

Hoạt động của while.

Lệnh while làm việc theo các bước sau:

Xác định giá trị của biểu thức

Tuỳ thuộc vào tính đúng sai của biểu thức này, máy sẽ lựa chọn một trong hainhánh:

Nếu biểu thức có giá trị sai (bằng 0), máy sẽ ra khỏi chu tr ình và chuyển tới câu

lệnh sau thân while.

Nếu biểu thức có giá trị đúng (bằng 1), máy sẽ thực hiện các câu lệnh trong thân

while.

Khi gặp dấu ngoặc nhọn cuối c ùng của thân while máy sẽ trở lại bước 1.

Ví dụ: Tính tổng mảng được viết bằng lệnh while:

#include <iostream.h>

#include <conio.h>

main()

Trang 39

while (s + =a[i]*b[i], + +i- 4) ; /* Thân while là câu l ệnh rỗng */

cout<<"\nTích vô hướng ="<<s;

Trang 40

cout<<"\ n Đây là kết quả:";

for (i= 0; i<=4; i=i+1)

cout<<"\n"<<a[i];

getch();

}

3 Khi gặp lệnh break trong thân while, máy sẽ ra khỏi lệnh while

4 Trong thân while có th ể sử dụng toán tử goto để nhẩy ra khỏi c hu trình đến một vị trí bất kỳ.

5 Trong thân while có th ể dùng câu lệnh continue để chuyển đến đầu một vòng lặp mới của chu trình Nghĩa là khi gặp continue máy sẽ bỏ qua các câu lệnh còn lại trong thân chu trình để trở lại tính và kiểm tra biểu thức sau while.

4.7 Lệnh do while

Với lệnh while và for, việc kiểm tra điều kiện kết thúc đặt ở đầu chu tr ình Lệnh

do while đặt điều kiện ở cuối chu tr ình, do đó thân của chu trình bao giờ cũng

được thực hiện ít nhất một lần

Lệnh do while có dạng sau:

Ngày đăng: 01/12/2017, 22:40

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

w