Siêu thị PDFTải ngay đi em, trời tối mất

Thư viện tri thức trực tuyến

Kho tài liệu với 50,000+ tài liệu học thuật

© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Chương trình C và C++ potx
MIỄN PHÍ
Số trang
75
Kích thước
436.2 KB
Định dạng
PDF
Lượt xem
1697

Chương trình C và C++ potx

Nội dung xem thử

Mô tả chi tiết

Ch¬ng tr×nh C vµ C++

CH NG 1. NH NG KHÁI NI M C B N V NGÔN NG C ƯƠ Ữ Ệ Ơ Ả Ề Ữ ..........................3

1.1. L ch s hình th nh v phát tri n ị ử à à ể .................................................................3

1.2. Các tính ch t c tr ng ấ đặ ư ...............................................................................3

1.3. C u trúc c b n c a m t ch ng trình C ấ ơ ả ủ ộ ươ ...................................................3

#include <stdio.h>...............................................................................................5

1.4. B ch vi t, t khoá, tên ộ ữ ế ừ ............................................................................5

1.4.1. B ch vi t ộ ữ ế ..............................................................................................5

1.4.2. Tên ..........................................................................................................6

1.4.3 T khoá ừ .....................................................................................................6

1.5. M t s ki u d li u c b n ộ ố ể ữ ệ ơ ả .........................................................................6

1.6. Bi nế .................................................................................................................7

1.7. H ng s ằ ố..........................................................................................................7

1.8. Bi u th c ể ứ ........................................................................................................9

1.9. Các phép toán.................................................................................................9

1.9.1. Các phép toán s h c: ố ọ ............................................................................9

1.9.2. Các phép toán quan h : ệ ........................................................................10

1.9.3. Các phép toán logic...............................................................................10

1.9.4. Các phép toán t ng, gi m ă ả ....................................................................12

1.9.5. Phép toán l y a ch bi n (&) ấ đị ỉ ế ............................................................12

1.9.6. Phép toán chuy n i ki u giá tr : ể đổ ể ị .....................................................12

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

đượ ể à ể ơ c chuy n th nh ki u cao h n: int->long->float->double.........................12

1.9.7. Bi u th c gán ể ứ ........................................................................................13

1.9.8. Bi u th c i u ki n ể ứ đ ề ệ .............................................................................13

CH NG 2. CÁC CÂU L NH I U KHI N CH NG TRÌNH ƯƠ Ệ Đ Ề Ể ƯƠ ........................14

2.1. Câu l nh n ệ đơ ...............................................................................................14

2.2. Câu l nh ghép ệ ..............................................................................................14

2.3. V o/ra à ..........................................................................................................14

2.3.1. H m printf à .............................................................................................14

2.3.2. H m scanf à .............................................................................................15

2.3.3.Ví d minh ho : ụ ạ ....................................................................................16

2.4. Các câu l nh i u khi n ch ng trình ệ đ ề ể ươ .....................................................16

2.4. 1. Câu l nh if – else ệ ...............................................................................16

thay cho................................................................................................................16

2.4.2. C u trúc i u khi n switch ấ đ ề ể .................................................................17

a./ Cú pháp câu l nh ệ ...........................................................................................17

2.4.3. C u trúc l p while ấ ặ .................................................................................18

{ int dau,i,n;........................................................................................................20

2.4.4. C u trúc l p do...while ấ ặ ........................................................................20

2.4.5. C u trúc l p for ấ ặ .....................................................................................22

2.4.6. Toán t break v continue ử à ....................................................................24

CH NG 3. CON TR VÀ M NG ƯƠ Ỏ Ả .......................................................................26

3.1. M ng ả .............................................................................................................26

3.1.1. Khái ni m v nh ngh a ệ à đị ĩ .....................................................................26

3.1.2. Khai báo m ng ả ......................................................................................26

3.1.3. Truy nh p v o các ph n t c a m ng ậ à ầ ử ủ ả ................................................26

3.1.4. Xâu kí tự...............................................................................................28

Trang 1

Ch¬ng tr×nh C vµ C++

3.2. Con trỏ..........................................................................................................30

3.2.1. Khái ni m v cách khai báo con tr ệ à ỏ...................................................30

3.2.2. Con tr v a ch bi n ỏ à đị ỉ ế ........................................................................30

3.2.3. S d ng các con tr ử ụ ỏ..............................................................................30

3.2.4. Các phép toán trên con trỏ...................................................................31

3.2.5. Con tr ki u void ỏ ể ..................................................................................32

3.3. Liên h gi a con tr v m ng ệ ữ ỏ à ả ....................................................................32

3.3.1. Con tr v m ng m t chi u ỏ à ả ộ ề ................................................................32

3.3.2. Con tr v xâu kí t ỏ à ự.............................................................................33

3.3.3. Con tr v m ng nhi u chi u ỏ à ả ề ề .............................................................33

CH NG 4. C U TRÚC ƯƠ Ấ ..........................................................................................34

4.1. C u trúc ấ ........................................................................................................34

4.1.1. nh ngh a c u trúc Đị ĩ ấ ..............................................................................34

4.1.2. Khai báo c u trúc ấ ..................................................................................34

4.1.3. nh ngh a ki u b ng typedef Đị ĩ ể ằ .............................................................35

4.1.4. Truy nh p n các th nh ph n c a c u trúc ậ đế à ầ ủ ấ .....................................36

4.1.5. Th nh ph n ki u FIELD (nhóm bit) à ầ ể ...................................................37

4.2. Ki u h p (union) ể ợ ..........................................................................................38

CH NG 5. HÀM VÀ C U TRÚC CH NG TRÌNH ƯƠ Ấ ƯƠ .........................................39

5.1. M u: ở đầ ........................................................................................................39

5. 2. Ví d n gi n v ch ng trình có h m: ụ đơ ả ề ươ à .............................................39

5. 3. Quy t c xây d ng m t h m ắ ự ộ à .......................................................................40

5. 4. Quy t c ho t ng c a h m: ắ ạ độ ủ à ....................................................................40

5. 5. C u trúc t ng quát c a ch ng trình có h m: ấ ổ ủ ươ à ........................................41

5.6. Xây d ng v s d ng h m ự à ử ụ à .........................................................................41

5.6.1. Các khái ni m liên quan n h m: ệ đế à ....................................................41

5.6.2. Xây d ng h m: ự à .....................................................................................41

5.6.3. S d ng h m ử ụ à .........................................................................................42

5.6.4. Nguyên t c ho t ng c a h m ắ ạ độ ủ à .........................................................42

5.7. Các t p header ệ ..............................................................................................43

5.8. C p l u tr v ph m vi c a các i t ng ấ ư ữ à ạ ủ đố ượ ..............................................44

5.9. qui Đệ ...........................................................................................................47

CH NG 6. HO ƯƠ ĐỒ Ạ.............................................................................................48

6.1. Các ch ho , h to ế độ đồ ạ ệ ạ độ..................................................................48

2.6. nh ngh a ch ng h m Đị ĩ ồ à ................................................................................62

2.7. Tham s ng m nh trong l i g i h m ố ầ đị ờ ọ à ......................................................62

2.8. B sung thêm các toán t qu n lý b nh ng: new v delete ổ ử ả ộ ớ độ à .............63

CH NG 3. I T NG VÀ L P ƯƠ ĐỐ ƯỢ Ớ ......................................................................63

3.1. i t ng Đố ượ .....................................................................................................63

3.2. L pớ ................................................................................................................64

3.2.1. Khai báo l pớ ..........................................................................................64

3.2.2. T o i t ng ạ đố ượ ......................................................................................65

3.2.3. Các th nh ph n d li u: à ầ ữ ệ ......................................................................66

3.2.4. H m th nh ph n (ph ng th c) à à ầ ươ ứ ........................................................66

3.2.5. T khoá private v public ừ à ...................................................................66

3.3.H m thi t l p(constructor) à ế ậ ..........................................................................67

3.4 H m hu b (desreuctor) à ỷ ỏ ..............................................................................69

Trang 2

Ch¬ng tr×nh C vµ C++

3.5 H m thi t l p sao chép(copy constructor) à ế ậ ..................................................70

3.6 H m b n, l p b n à ạ ớ ạ ........................................................................................73

CHƯƠNG 1. NHỮNG KHÁI NIỆM CƠ BẢN VỀ NGÔN NGỮ C

1.1. Lịch sử hình thành và phát triển

Ngôn ngữ C do Brian W.Kerningham và Dennis M.Ritchice phát triển vào năm

1970 tại phòng thí nghiệm BELL (Hoa kỳ) với mục đích ban đầu để phát triển hệ điều

hành UNIX.

Phần lớn các ý tưởng quan trọng nhất của C xuất phát từ ngôn ngữ có tên BCPL

do Martin Richards nghiên cứu. ảnh hưởng của BCPL gián tiếp thông qua ngôn ngữ B

do Ken Thompson viết vào năm 1970 cho hệ điều hành UNIX chạy trên họ máy tính

PDP- 7

Từ khi ra đời ngôn ngữ lập trình C có nhiều loại chương trình dịch C khác nhau

như: Turbo C của hãng Borland Inc, Quick C, Microsoft C, VC của hãng Microsoft

Corp, Lattice C của Lattice

Sự phát triển của ngôn ngữ lập trình trong những năm 1980 đã đưa đến phong

cách lập trình hướng đối tượng (OOP – Object Oriented Programing) mà một trong

những ngôn ngữ rất được ưa dùng là C++ một bổ sung mới các yếu tố hướng đối tượng

và ngôn ngữ lập trình C.

1.2. Các tính chất đặc trưng

Ngôn ngữ lập trình C là một ngôn ngữ lập trình vạn năng dùng để viết các ứng

dụng thực tế như: Quản lý văn bản, cơ sở dữ liệu, ghép nối máy tính...

Ngôn ngữ lập trình C là ngôn ngữ lập trình uyển chuyển, có độ thích nghi cao...

Ngôn ngữ C là một ngôn ngữ được sử dụng rộng rãi trong các lĩnh vực chuyên

nghiệp vì đáp ứng được các yêu cầu: hiệu quả cao trong soạn thảo chương trình và dịch

ra mã máy; tiếp cận trực tiếp với các thiết bị phần cứng

Ngôn ngữ C thực hiện các cơ chế như các phép toán xử lý trực tiếp các đối

tượng hợp thành, các cơ chế vào ra, phương pháp truy nhập tệp bằng những lời gọi hàm

trong thư viện

C đưa ra các kết cấu điều khiển cơ bản cho các chương trình có cấu trúc; cung

cấp con trỏ và khả năng định địa chỉ số học. Các định nghĩa hàm không được lồng nhau

1.3. Cấu trúc cơ bản của một chương trình C

Trước tiên ta xét ví du: Viết chương trình C hiện dòng thông báo “ Turbo C” ra

màn hình.

/* Chương trình hiện lên dòng thông báo trên màn hình*/

#include <stdio.h>

#include <conio.h>

main()

{ clrscr();/* Câu lệnh xoá màn hình*/

printf(“Turbo C ”);

Trang 3

Ch¬ng tr×nh C vµ C++

getch();

}

Thực hiện chương trình:

Các bước để thực hiện chương trình này như sau:

- Tạo ra chương trình nguồn có tên VIDU.C bằng hệ soạn thảo của Turbo C hoặc

trên một hệ soạn thảo nào đó

- Dịch và chương trình bằng CTRL + F9 để tạo ra một tệp chương trình nếu

không có lỗi

Giải thích chương trình

Một chương trình C với bất kỳ kích thước nào đều bao gồm một số hàm, các

hàm này sẽ xác định các thao tác tính toán thực tế cần phải thực hiện. Các hàm của C

cũng tương tự như các hàm và thủ tục của chương trình viết bằng Pascal. Trong chương

trình ví dụ trên main() là một hàm như vậy. Thông thường chúng ta có thể lấy bất kỳ

tên nào để đặt cho tên hàm, nhưng hàm main() là một hàm đặc biệt. Chương trình C

luôn bắt đầu thực hiện tại điểm đầu của hàm này và kết thúc khi hàm này kết thúc. Điều

này có nghĩa mọi chương trình viết bằng ngôn ngữ lập trình C đều có một và chỉ một

hàm main() đặt ở đâu đó trong chương trình. Hàm main() này thường gọi các hàm khác

để thực hiện công việc của chương trình, một số hàm nằm trong chương trình, số khác

nằm trong các thư viện chuẩn.

Hàm printf () có trong thư viện chuẩn được sử dụng mà không phải viết lại, có

chức năng đưa kết quả ra thiết bị đầu ra. Câu lệnh printf (“ Turbo C”); sẽ đưa ra màn

hình dòng chữ nằm trong các dấu nháy kép. Có thể dùng hàm printf để trình bày các đối

tượng dữ liệu khác nhau

Khai báo tệp tiêu đề

Trong ngôn ngữ lập trình Pascal chặng hạn khi ta muốn sử dụng lệnh xoá màn

hình “ Clrscr;” hay lệnh di chuyển con trỏ màn hình “Gotoxy(x,y)” v.v... Ta thấy các

hàm và thủ tục này nằm trong thư viên chuẩn CRT do đó muốn chương trình sử dụng

được các hàm và thủ tục đó thì tại đầu chương trình ta phải khai báo : USES CRT;

Tương tự như vậy trong ngôn ngữ lập trình C khi sử dụng các hàm chuẩn trong

các thư viện chuẩn chúng ta phải khai báo tệp tiêu đề (header file) chứa các hàm

nguyên mẫu tương ứng các hàm đó, các lệnh được bắt đầu bằng #include theo sau là tệp

tiêu đề

Có hai cách viết như sau:

Cách 1: #include <[đường dẫn\] tentep>

Ví dụ: #include <a:\Baitap\Bai1.C>

#include <stdio.h>

Cách 2: #include “[đường dẫn\]tentep”

Ví dụ: #include “a:\Baitap\Bai2.C”

Trang 4

Ch¬ng tr×nh C vµ C++

#include “conio.h”

Tác dụng: Trước khi dịch, chương trình dịch sẽ tìm tệp theo tentep và đường

dẫn đã chỉ ra trong #include. Nếu tìm thấy thì nội dung của tệp này được gọi ra và

chèn vào tệp nguồn đang xét đúng vị trí của #include. Nếu không tìm thấy thì thông báo

lỗi.

Hai cách khai báo trên khác nhau ở chỗ. Nếu tentep được chỉ ra trong khai báo

#include không có đường dẫn thì

Cách 1: tự động tìm tentep trong thư mục INCLUDE

Cách 2: tự động tìm tentep trong thư mục hiện thời nếu không có thì tìm trong

thư mục INCLUDE

Trong thí dụ trên chúng ta có sử dụng hàm printf() là hàm chuẩn được khai báo

trong tệp tiêu đề stdio.h và hàm getch(), clrscr() được khai báo trong tệp tiêu đề

conio.h. Do đó trong chương trình có hai dòng khai báo sau ở đầu chương trình:

#include <stdio.h>

#include <conio.h>

Chú thích và dấu kết thúc câu lệnh

Trong ngôn ngữ lập trình C những phần được viết giữa /* và */ được gọi là phần

chú thích, giải thích mục đích của chương trình. Mọi ký tự nằm giữa /* và */ khi dịch

chương trình dịch bỏ qua, ta được phép dùng chúng để minh hoạ cho các thành phần

chương trình làm cho chương trình dễ hiểu, mạch lạc. Lời chú thích có thể xuất hiện bất

kỳ đâu trong chương trình và có thể trải trên nhiều dòng khác nhau trong chương trình.

Trong chương trình viết bằng ngôn ngữ C mỗi câu lệnh có thể viết trên một hay

nhiều dòng và phải kết thúc bằng dấu chấm phẩy.

1.4. Bộ chữ viết, từ khoá, tên

1.4.1. Bộ chữ viết

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

được nhóm lại theo nhiều cách khác nhau để lập lên các từ. Đến lượt mình các từ được

liên kết theo một quy tắc nào đó để tạo thành các câu lệnh. Một chương trình bao gồm

nhiều câu lệnh và diễn đạt một thuật toán để giải một bài toán nào đó.

Ngôn ngữ C được xây dựng trên bộ ký tự sau:

Các chữ cái hoa: A B C .... Z

Các chữ cái thường: a b c ... z

Các chữ số: 0 1 2... 9

Các kí hiệu toán học: + - * / = < >

Các dấu ngoặc: [ ] { } ( )

Các ký hiệu đặc biệt khác: , . ; : / ? @ # $ % ^ & ‘ “...

Các dấu ngăn cách không nhìn thấy như dấu cách, dấu nhảy cách tab, dấu

xuống dòng

Dấu gạch nối dưới: _

Trang 5

Ch¬ng tr×nh C vµ C++

1.4.2. Tên

Tên là một dãy ký tự : chữ, số và dấu gạch nối được dùng để chỉ tên hằng, tên

biến, tên mảng, tên hàm...Tên phải bắt đầu bằng một chữ hoặc dấu gạch nối. Tên không

được đặt trùng với từ hoá

Ví dụ các tên viết hợp lệ: Giai_Phuong_Trinh_Bac2

abc123

Ví dụ các tên viết không hợp lệ: Baitap 1

123abc

Chú ý:

-Trong ngôn ngữ lập trình C tên được phân biệt chữ hoa và chữ thường

-Thông thường chữ hoa thường được dùng để đặt tên cho các hằng, còn các đại

lượng khác thì dùng chữ thường.

1.4.3 Từ khoá

- Là những từ có một ý nghĩa hoàn toàn xác định trong chương trình:

Ví dụ: void struct class while ....

- Không được dùng từ khoá để đặt tên cho các hằng, biến, mảng, hàm ....

- Từ khoá phải viết bằng chữ thường

Ví dụ từ khoá viết đùng: struct

Ví dụ từ khoá viết sai: Struct

1.5. Một số kiểu dữ liệu cơ bản

Tất cả các biến phải được khai báo trước và kiểu của chúng phải được mô tả

ngay khi khai báo. Có bốn kiểu dữ liệu cơ bản trong C là: char, int, float và double

Tên ý nghĩa Phạm vi biểu diễn Kích thước

char Ký tự -128 -> 127 1 byte

int Số nguyên -32768->32767 2 byte

float Số thực dấu phẩy động độ chính xác

đơn

±3.4E-38 -> ±3.4E+38 4 byte

double Số thực dấu phẩy động độ chính xác

kép

±1.7E-308 -> ±1.7E+308 8 byte

Một số float có độ chính xác là 6 chữ số sau dấu chấm thập phân. Còn số double

được biểu diễn với độ chính xác tới 15 chữ số sau dấu chấm thập phân

Bên cạnh đó chúng ta có thể áp dụng một số các “tiền tố” đi kèm các kiểu dữ

liệu cơ bản với mục đích thay đổi phạm vi biểu diễn của biến được khai báo. Có các

tiền tố như là: short, long, signed (ngầm định đối với char, int), unsigned.

Kiểu Phạm vi biểu diễn Kích thước (byte)

unsigned char 0 -> 255 1

Trang 6

Ch¬ng tr×nh C vµ C++

char -128 -> 127 1

unsigned int 0 -> 65535 2

short int -32768 -> 32767 2

int -32768 -> 32767 2

unsgned long 0 ->4.294967295 4

long -2147483648->-2147483648 4

float ±3.4E-38 -> ±3.4E+38 4

double ±1.7E-308 -> ±1.7E+308 8

long double 3.4E4932->3.4E+4932 10

Lưu ý:

- Kiểu long int có thể viết gọn thành long; kiểu unsigned int viết gọn thành

usigned

- Có thể kết hợp nhiều tiền tố với một kiểu dữ liệu cơ sở: chẳng hạn unsigned

long int (viết gọn thành unsigned long)

1.6. Biến

Biến là yếu tố cơ bản của bất kỳ ngôn ngữ máy tính nào. Biến là vùng trống

trong bộ nhớ máy tính diành cho một kiểu dữ liệu nào đó và có đặt tên. Các biến trong

bộ nhớ ở các thời điểm khác nhau có thể cất giữ các giá trị khác nhau. Trước khi sử

dụng một biến nào đó phải khai báo nó. Quy tắc khai báo:

Kiểu_dữ_liệu Tên_biến ;

Có thể khai báo nhiều biến cùng kiểu trên cùng một hàng, các tên biến được

phân cách nhau bằng dấu phẩy

Ví dụ: int a,b; /*biến có kiểu nguyên*/

float f; /*biến thực*/

char ch; /*biến ký tự*/

1.7. Hằng số

Dữ liệu chứa trong máy tính có thể là biến hoặc hằng

 biến là đại lượng có thể thay đổi được trong quá trình tính toán

 hằng là đại lượng có giá trị không thay đổi

1.7.1. Hằng số nguyên

- Hệ thập phân bình thường

VD: 545

- Hệ cơ số 8 (Octal)

Bắt đầu bằng số 0 và chỉ biểu diễn số dương

Ví dụ: 024=2010

- Hệ cơ số 16 (Hecxa)

Bắt đầu bằng 0x

Trang 7

Tải ngay đi em, còn do dự, trời tối mất!