1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Tài liệu BaiGiangC++ pdf

84 486 1
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Giới thiệu về C++
Người hướng dẫn Đỗ Duy Cốp
Trường học Trường Đại Học Bách Khoa Hà Nội
Chuyên ngành Khoa học máy tính
Thể loại Sách hướng dẫn
Thành phố Hà Nội
Định dạng
Số trang 84
Dung lượng 0,91 MB

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

Nội dung

Lịch Sử Của C++ C++ dựa trên ngôn ngữ lập trình C  C được phát minh trước 1970 bởi Dennis Ritchie  Ngôn ngữ cài đặt hệ thống cho hệ điều hành Unix  C++ được phát minh bởi Bijarne Str

Trang 1

Giảng viên: Đỗ Duy Cốp

Ngôn ngữ

lập trình bậc cao

Trang 2

CHƯƠNG 1: Giới thiệu về C++,

Lịch Sử Của C++

Cài đặt

Môi trường Borland C++

Thiết lập môi trường

Trang 3

Lịch Sử Của C++

C++ dựa trên ngôn ngữ lập trình C

C được phát minh trước 1970 bởi Dennis Ritchie

Ngôn ngữ cài đặt hệ thống cho hệ điều hành Unix

C++ được phát minh bởi Bijarne Stroustroup, bắt đầu năm 1979

Phiên bản thử nghiệm, phiên bản thương mại

Các chuẩn ngôn ngữ C++ hiện tại được điều khiển bởi

ANSI và ISO

Trang 4

Bước 1: chạy file install.exe

Trang 5

Bước 2: Chọn ổ đĩa sẽ cài đặt

Trang 6

Bước 3: Chọn đường dẫn

(enter luôn, bộ cài đã tự nhận dạng)

Trang 7

Bước 4: Thay đổi tên thư mục

Trang 8

Bước 5: Sử dụng

Trang 9

Bước 6: Bắt đầu viết code

Trang 13

2.1.2 Tên

Còn được gọi là định danh

Được sử dụng để tham khảo đến Tên biến, tên hàm, tên kiểu, và tên macro

Phải bắt đầu bằng chữ cái, _

Phân biệt chữ hoa, chữ thường

Không được đặt trùng từ khóa

Trang 14

2.1.3 Từ khóa

không thể thay đổi

từ khóa

Trang 15

int main (void){

int workDays = 5; // so ngay lam viec trong tuanfloat workHours = 7.5; // so gio lam viec trong ngayfloat payRate = 33.50; // so tien phai tra moi giofloat weeklyPay; // tong so tien phai tra moi tuanweeklyPay = workDays * workHours * payRate;

cout << "Weekly Pay = " << weeklyPay << '\n';

}

Chú thích nhiều hàng

Trang 16

2.1.5 Cấu trúc một chương trình

Khai báo thư viện

Các khai báo hàm

Hàm main()

Trang 18

2.2.1 Khái niệm về kiểu dữ liệu

(data type)

Mỗi giá trị phải thuộc một kiểu dữ liệu nào đó

Kiểu dữ liệu trong máy tính

là có giới hạn trên và giới

hạn dưới

Trang 19

2.2.2 Kiểu dữ liệu:

Số Nguyên & Số Thực, kí Tự & Chuỗi

Biến số nguyên có thể được định nghĩa là

kiểu short , int , hay long ,

số không dấu thêm tiền tố unsigned

Biến số thực có thể được định nghĩa là

kiểu float hay double

Biến kí tự được định nghĩa là kiểu char

Biến chuỗi được định nghĩa kiểu char*

Trang 20

2.2.3 Khai báo biến

 unsigned int w=10, delta = 20, total, x, y = 1;

Biến có thể được thay đổi giá trị bởi lệnh gán

Trang 21

2.2.4 Khai báo hằng

const tên_hằng = biểu_thức;

const kiểu_dữ_liệu tên_hằng = biểu_thức;

Hằng không thay đổi giá trị

Trang 22

2.2.5 Biến tham chiếu

Được gán một lần bằng toán tử &

(& là toán tử lấy địa chỉ)

Ví dụ:

int a = 10; //khai báo biến a có giá trị 10

int &p = a; //biến p tham chiếu đến biến a

cout << p; //xuất ra số 10, vì tham chiếu đến a

p = 100;

cout<<a; // xuất ra số 100

cout<<p; // xuất ra số 100

Trang 23

2.2.6 Biến con trỏ

Biến con trỏ lưu giữ địa chỉ

Biến con trỏ có kích thước 4 byte

Một địa chỉ cần 4 byte

( 2 byte lưu Segment và 2 byte lưu Offset)

Cú pháp: kiểu_dữ_liệu

* tên_biến_con_trỏ;

Trang 24

2.2.6 Biến con trỏ và cách sử dụng

int a=10, b=20;

int *p, *q;

p = &a; //p lưu địa chỉ của a

q = &b; // q lưu địa chỉ biến b

*q = a; //gán giá trị a cho vùng nhớ đang lưu trong q

p = q; //sao chép địa chỉ trong q vào p

*p = *q; //(copy) gán giá trị trong vùng nhớ của q

// vào vùng nhớ của p

Trang 25

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

Trang 26

if (xyz > 0) { double xyz =2;

// xyz là cục bộ cho khối này cout <<xyz;

} else { cout<< ::xyz;

} }

Trang 28

tăng/giảm, khởi tạo, điều kiện, lấy kích thước

Độ ưu tiên của các toán tử

Chuyển kiểu

Trang 30

Ví dụ:

Lệnh rỗng Lệnh vô dụng

Trang 31

2.3.3 Các toán tử

Toán Tử Toán Học & Luận Lý

Toán Tử Luận Lý & Trên Bit

Toán Tử Tăng/Giảm & Khởi Tạo

Toán Tử Điều Kiện

Trang 32

Toán Tử Toán Học & Luận Lý

Trang 33

Toán Tử Luận Lý & Trên Bit

! Phủ định luận lý !(5 == 5) // được 0

& & Và luận lý 5 < 6 && 6 < 6 // được 0

|| Hoặc luận lý 5 < 6 || 6 < 5 // được 1

0 : SAI (false) Khác 0 : ĐÚNG (true)

Trang 34

Toán Tử Tăng/Giảm & Khởi Tạo

++ Tăng một (tiền tố) ++k + 10 // được 16++ Tăng một (hậu tố) k++ + 10 // được 15 Giảm một (tiền tố) k + 10 // được 14 Giảm một (hậu tố) k + 10 // được 15

Toán Tử Ví dụ Tương đương với

Trang 35

Toán Tử Điều Kiện, Phẩy,

Lấy Kích Thước

min = (m < n ? m++ : n++) + 100;

min = (m < n ? mCount++ , m : nCount++ , n);

cout << "float size = " << sizeof (float) << " bytes\n";

Toán tử điều kiện

Toán tử phẩy

Toán tử lấy kích thước

Trang 36

Độ Ưu Tiên Của Các Toán Tử

phải

+ -

+ +

Một ngôi Phải tới trái

Trang 37

Chương 3: Thao tác nhập xuất

Trang 38

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

%x : Số nguyên hex không dấu

%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)

Trang 39

Các kí tự điều khiển và kí tự đặc biệt

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

\t : Canh cột tab ngang.

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

\a : Tiếng kêu bip.

\\ : In ra dấu \

\" : In ra dấu "

\' : In ra dấu '

Trang 40

 Khi sử dụng hàm phải khai báo tiền xử lý

#include <stdio.h>

scanf: tên hàm, phải viết bằng chữ thường.

khung định dạng: được đặt trong cặp nháy kép ("

") là hình ảnh dạng dữ liệu nhập vào.

đối mục 1,…: là danh sách các đối mục cách nhau bởi dấu phẩy, mỗi đối mục sẽ tiếp nhận giá trị

nhập vào.

Trang 41

Xuất dữ liệu với cout

Trang 42

Nhập dữ liệu với cin

cin>>bien;

cin >>bien1>>bien2;

Trang 43

Định dạng xuất dữ liệu với cout

Trang 44

Chương 4: Các cấu trúc điều khiển

Trang 48

default: cout << "x is not 1, 2 nor 3"; }

Trang 50

Lệnh lặp while

lệnh;

Trang 51

Lệnh lặp do-while

do

lệnh;

Trang 53

ví dụ hoạt động của for

do_sth;

Trang 54

nhảy ra bên ngoài những lệnh lặp hoặc switch và kết thúc chúng

nhảy trực tiếp đến nhãn được chỉ định

cho phép một hàm trả về một giá trị cho thành phần gọi nó.

Trang 55

Dữ liệu kiểu Mảng

kiểu và được sắp xếp liên tiếp trong bộ

nhớ

số biểu thị vị trí của phần tử trong mảng

 Phần tử đầu tiên của mảng luôn có chỉ số 0

kích thước của mảng (cố định; xác định

Trang 56

Biến Mảng

Được định nghĩa bằng cách đặc tả kích thước mảng và kiểu các phần tử của nó

Ví dụ: int heights[10];

Truy xuất 1 phần tử qua chỉ số mảng

Ví dụ: heights[0]= 210; cout<< heights[3];

Truy xuất phần tử không tồn tại  lỗi vượt ngoài biên

Ví dụ: cout<<heights[-1]; cout<<heights[10];

Trang 58

Mảng Đa Chiều

Mùa xuân Mùa hè Mùa thu Mùa đôngSydney 26 34 22 17

Trang 59

it num = 10;

int *ptr1 = & num;

cout << * ptr1;

10 num 1000

1000 ptr1 2000

Trang 60

delete : thu hồi

void Foo (void){

int *ptr = new int;

char *str = new char[10];

//

delete ptr;

delete [ ]str;

Trang 61

Một tham chiếu (reference) là một biệt hiệu (alias) cho một đối tượng

Trang 62

Truyền Bằng Trị - Con Trỏ - Tham Chiếu

// Truyền bằng trị (đối tượng)

void Swap1 (int x, int y)

// Truyền bằng địa chỉ (con trỏ)

void Swap2 (int *x, int *y)

// Truyền bằng tham chiếu

void Swap3 (int &x, int &y)

?

?

Trang 63

Hàm nhập mảng

void NhapMang(int a[ ], int &n){

cout << "Nhap N = "; cin >> n;

for (int i = 0; i < n ; i++){

cout << "a[" << i << "] = "; cin >> a[i]; }

} Sử dụng: int a[100], n; //khai báo biến

Trang 64

Hàm nhập mảng kiểu con trỏ

void NhapMang(int *a, int &n){

cout << "Nhap N = "; cin >> n;

for (int i = 0; i < n ; i++){

cout << "a[" << i << "] = "; cin >> *(a+i); }

Trang 65

Kiểu kết hợp

void NhapMang(float *a, int &n){

cout << "Nhap N = "; cin >> n;

for (int i = 0; i < n ; i++){

cout << "a[" << i << "] = "; cin >> a[i]; }

}

Sử dụng:

float a[100], n, *p; //khai báo biến

p = a;

Trang 66

Hàm nhập cấp phát động

void NhapMang(int *&a, int &n){

cout << "Nhap N = "; cin >> n;

Trang 67

Biến str có thể lưu một xâu kí tự với độ dài cực đại là 20 kí tự

Chú ý: kiểu char chỉ lưu 1 kí tự đơn

Trang 68

Xâu kí tự

không quá dài khai báo của nó

Str có thể lưu "Hello" hay “Thai Nguyen"

Trang 69

Khai báo biến xâu kí tự

(giống như khai báo cho mảng)

char s[100]; //khai báo s

không có khởi tạo

Trang 70

Khai báo biến xâu kí tự

(giống như khai báo cho mảng)

char str[20]={'h','a','n','o','i','\0'};

Xâu str có 20 phần tử, có 6 phần tử đầu được khởi tạo

Trang 71

Khai báo xâu kí tự

Khai báo hợp lệ:

char mystring [ ] = { 'H', 'e', 'l', 'l', 'o', '\0' };

char mystring [ ] = "Hello";

Hai cách khai báo trên là tương đương

Trang 72

Khai báo xâu kí tự

Biến con trỏ kiểu char được hiểu như là biến xâu kí tự

Khai báo hợp lệ:

'\0' };

char* mystring = "Hello";

Con trỏ kiểu xâu được phép:

char *p;

p = "Hello Hanoi";

Trang 73

Thao tác với xâu kí tự

Trang 74

Thao tác với xâu kí tự

Gán giá trị cho xâu

Sử dụng hàm strcpy của thư viện string.h

Cú pháp:

Tác dụng:

 Copy xâu src (nguồn) sang dest (xâu đích)

 Xâu nguồn không bị biến đổi ( const char *src )

Trang 76

Nhập xâu kí tự từ bàn phím

dùng lệnh cin.getline

Cú pháp:

Khai báo thư viện iostream.h

istream& getline(char* str , int len , char d= '\n');

Tác dụng:

Gán chuỗi kí tự nhập từ bàn phím

(với độ dài tối đa là len ) vào biến xâu str

Chú ý: Không nên dùng cin>>str để nhập xâu

Trang 80

In xâu kí tự ra màn hình

khi in biến xâu kí tự ra màn hình

C++ sẽ in liên tiếp các kí tự của xâu cho đến khi gặp kí tự null

Ví dụ:

char s[100]="Nguyen Van A";

cout<<s;

Chú ý: khi khởi tạo, thao tác về xâu

phải có kí tự null đánh dấu kết thúc xâu

Trang 81

Bài tập: Viết hàm trả về độ dài xâu

Trang 83

tính tổng các số xh trong xâu?

30 đ cá.

=>230

Trang 84

Viết hàm đếm số từ trong xâu?

viết hàm đếm số từ bắt đầu bằng 'tr'

Ngày đăng: 19/01/2014, 09:20

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w