1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài giảng lập trình c cơ bản chương 2 giới thiệu ngôn ngữ c

72 626 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 72
Dung lượng 669,79 KB

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

Nội dung

Chỉ thị tiền xử lý Preprocessor directive  Các chỉ thị tiền xử lý là những dòng được đưa vào trong mã của chương trình phía sau dấu #..  Những dòng này không phải là lệnh của chương t

Trang 2

Mục tiêu

 Giới thiệu các khái niệm cơ bản về ngôn ngữ C

 Cấu trúc của một chương trình và cách trình bày chương trình

 Lệnh nhập/ xuất trong C/ C++

 Giới thiệu công cụ lập trình và các chức năng liên quan

2

Trang 3

Lịch sử ra đời

 Ngôn ngữ C do Dennis Ritchie xây dựng từ năm 1972 tại phòng thí nghiệm Bell Telephone với mục đích tạo ngôn ngữ để viết HĐH UNIX Song nhờ có các tính năng ưu việt và tính mềm dẻo nên được giới tin học chấp nhận

 “The C programming language” do Kernighan và Ritchie viết năm 1978

3

Trang 4

Lịch sử ra đời

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

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

 Các trình biên dịch phổ biến: Borland C++, Microsoft Visual C++

4

Trang 5

5

Trang 6

Khuyết điểm

 Cú pháp thuộc loại lạ và khó học Nếu người lập trình đã học qua một ngôn ngữ khác thì sẽ dễ dàng tiếp cận

 Một số ký hiệu có nhiều nghĩa khác nhau Ví dụ: dấu “*”

là toán tử nhân, là khai báo con trỏ, là toán tử thay thế,

… Việc sử dụng đúng nghĩa các toán tử phụ thuộc vào ngữ cảnh sử dụng

 Việc truy nhập tự do vào dữ liệu, việc trộn lẫn các kiểu

dữ liệu… làm cho chương trình có phần bất ổn

6

Trang 7

Ví dụ chương trình C++

7

//Viết bằng VC++2003 //hoặc 2005, 2008, …

#include <iostream >

using namespace std;

void main() {

cout<<"Xin chao cac ban"; }

//Viết bằng VC++6.0 //hoặc BC++3.1

#include <iostream h>

void main() {

cout<<"Xin chao cac ban";

Trang 8

Chỉ thị tiền xử lý ( Preprocessor directive )

 Các chỉ thị tiền xử lý là những dòng được đưa vào trong

mã của chương trình phía sau dấu #

 Những dòng này không phải là lệnh của chương trình

nhưng chỉ thị cho tiền xử lý

 Tiền xử lý kiểm tra mã lệnh trước khi biên dịch thực sự

thực hiện tất cả các chỉ thị trước khi thực thi mã lệnh của các câu lệnh thông thường

8

Trang 9

Chỉ thị tiền xử lý ( Preprocessor directive )

Đặc điểm:

1 Mô tả trên một dòng, không có dấu ;

2 Trường hợp cần mô tả trên nhiều dòng dùng dấu \ ở

cuối mỗi dòng

9

Trang 10

Chỉ thị tiền xử lý ( Preprocessor directive )

Các chỉ thị:

1 Định nghĩa macro (macro definitions): #define - #undef

2 Kết hợp với điều kiện (conditional inclusions): #ifdef,

#ifndef, #if, #endif, #else và #elif

3 Điều khiển dòng lệnh (line control): #line

4 Chỉ thị lỗi (error directive): #error

5 Kết hợp file nguồn (source file inclusion): #include

6 Chỉ thị pragma (pragma directive): #pragma

10

Trang 11

Chỉ thị tiền xử lý ( Preprocessor directive )

1 Macro definitions: #define – Cú pháp

#define “định danh” “thay thế”

Mục đích: Thay thế bất kỳ sự xuất hiện của “định danh”

trong phần còn lại của các mã lệnh bằng “thay thế”

“Thay thế”: có thể là một biểu thức hoặc một lệnh

11

Trang 12

Chỉ thị tiền xử lý ( Preprocessor directive )

Trang 13

Định nghĩa thay thế một hàm có tham số

#include <iostream>

using namespace std;

#define getmax(a,b) ((a)>(b)?(a):(b))

Chỉ thị tiền xử lý ( Preprocessor directive )

1 Macro definitions – Ví dụ

13

void main() {

Trang 14

Chỉ thị tiền xử lý ( Preprocessor directive )

1 Macro definitions: #define – Cú pháp

#undef “định danh” # “tham số thay thế”

Mục đích: “tham số thay thế” là một chuỗi ký tự (không cần

đặt trong dấu ngoặc kép “”)

#define str(x) # x

cout << str(test);

14

cout << “test”;

Trang 15

Chỉ thị tiền xử lý ( Preprocessor directive )

1 Macro definitions: #define – Cú pháp

#undef “định danh” “đối số 1” # “đối số 2”

Mục đích: Nối đối số “đối số 1” với “đối số 2”

#define glue(a, b) a ## b

glue(c,out) << "test";

15

cout << “test”;

Trang 16

Chỉ thị tiền xử lý ( Preprocessor directive )

1 Macro definitions: #undef – Cú pháp

Trang 17

Chỉ thị tiền xử lý ( Preprocessor directive )

2 Kết hợp với điều kiện (conditional inclusions):

#ifdef – Cú pháp

#ifdef “định danh”

lệnh;

Mục đích: Cho phép chương trình biên dịch nếu “định

danh” được định nghĩa.

Trang 18

Chỉ thị tiền xử lý ( Preprocessor directive )

2 Kết hợp với điều kiện (conditional inclusions):

Trang 19

Chỉ thị tiền xử lý ( Preprocessor directive )

2 Kết hợp với điều kiện (conditional inclusions):

Trang 20

Chỉ thị tiền xử lý ( Preprocessor directive )

2 Kết hợp với điều kiện (conditional inclusions):

#if, #else, #elif … #endif – Cú pháp

Mục đích: Chỉ thị #if, #else và #elif dùng để chỉ định một số điều kiện

để thực hiện mã lệnh Điều kiện là một biểu thức hằng số

Trang 21

Chỉ thị tiền xử lý ( Preprocessor directive )

2 Kết hợp với điều kiện (conditional inclusions):

#if, #else, #elif … #endif – Ví dụ

Trang 22

Chỉ thị tiền xử lý ( Preprocessor directive )

3 Điều khiển dòng lệnh ( line control ): #line – Cú pháp

22

#line number "filename"

Mục đích: Chỉ thị #line cho phép kiểm soát số dòng trong

tập tin mã lệnh cũng như tên tập tin muốn hiển thị khi xảy

ra lỗi

“filename” có thể là một chuỗi ký tự bất kỳ cần hiển thị.

Trang 23

Chỉ thị tiền xử lý ( Preprocessor directive )

4 Chỉ thị lỗi ( error directive ): #error – Cú pháp

Trang 24

Chỉ thị tiền xử lý ( Preprocessor directive )

5 Kết hợp file nguồn ( source file inclusion ):

#include – Cú pháp

24

Mục đích: Chỉ thị này sẽ thay thế toàn bộ nội dung của

header (thư viện có sẵn – dùng cặp dấu < >) hay một tập tin

“file” (tự định nghĩa thêm – dùng cặp dấu nháy kép “ ”).

#include <header>

hoặc

#include "file"

Trang 25

Chỉ thị tiền xử lý ( Preprocessor directive )

25

Mục đích: Chỉ thị này được sử dụng để xác định các lựa

chọn khác nhau cho các trình biên dịch Các tùy chọn này được cụ thể cho các platform và trình biên dịch sử dụng

Trang 26

Các khái niệm

 Lệnh Lệnh thực hiện một chức năng nào đó (khai báo, gán, xuất, nhập, …) và được kết thúc bằng dấu chấm phẩy (;)

 Khối lệnh Khối lệnh gồm nhiều lệnh và được đặt trong cặp dấu ngoặc { }

26

Trang 27

27

Trang 28

 Các ký hiệu đặc biệt như: , ; [] {} ? ! \ & | % #

 Không được dùng các ký hiệu như: α, φ, Ω, π, … hoặc tiếng việt có dấu: â, ă, ô…

28

Trang 29

Từ khóa (keyword)

29

auto break case char const

continue default do double else

enum extern float for goto

if int long register return

short signed sizeof static struct

switch typedef union unsigned void

volatile while bool catch class

delete friend inline new namespace operator private protected public template

this throw try

Trang 30

Một biến đại diện cho một vùng nhớ hay tập các vùng nhớ trên bộ nhớ chính của máy tính Tên biến được dùng

để tham khảo đến những vùng nhớ này

Biến để lưu trữ các giá trị do người dùng nhập vào hoặc các giá trị tạm thời trong quá trình tính toán

Mỗi biến sẽ có tên và kiểu dữ liệu tương ứng Kiểu dữ liệu của biến xác định những giá trị kiểu nào có thể được lưu trong biến (ví dụ số hay chữ…)

PHẢI khai báo BiẾN trước khi sử dụng

30

Trang 31

Dùng những kiểu cơ sở để xây dựng thành những kiểu

dữ liệu mới cho phù hợp với bài toán

31

Trang 32

Kiểu số nguyên

2 unsigned char Số nguyên dương 1 byte

4 unsigned short Số nguyên dương 2 bytes

6 unsigned int Số nguyên dương 4 bytes

8 unsigned long Số nguyên dương 4 bytes

32

Trang 33

STT TÊN KIỂU GHI CHÚ KÍCH THƯỚC

1 bool Gồm 2 giá trị: true hoặc false

Kiểu luận lý

Trang 34

Qui tắc đặt tên

Dùng để đặt tên biến, tên hằng, tên hàm, …

 Bắt đầu bằng một ký tự

 Các ký tự trong tên biến chỉ có thể là các ký tự chữ, số

hoặc dấu gạch dưới (_)

 Không được trùng với các từ khoá

 Không được trùng với phạm vi khai báo

 Tên dễ hiểu, súc tích và gợi nhớ

 Phân biệt chữ hoa và thường

34

Trang 35

Các định danh nào sau đây là không hợp lệ?

Trang 36

Khai báo biến

Khai báo nhiều biến cùng kiểu

<Kiểu dữ liệu> tênbiến1, tênbiến2, tênbiến3;

Ví dụ:

int a, x, y;

36

Trang 37

Khai báo và khởi gán giá trị ban đầu cho biến

<Kiểu dữ liệu> tênbiến = giá trị;

Trang 38

Biến hằng được định nghĩa nhờ từ khoá const với cú pháp như sau:

const <kiểu_dữ_liệu> <tên_biến> = <giá_trị>;

Ví dụ:const int MAX = 100;

Tên hằng số nên viết bằng chữ in HOA

38

Trang 39

Các loại hằng số

 Hằng số: Đó là các giá trị xác định, một hằng số có thể là

nguyên (có kiểu dữ liệu int, hay long int) hay thực (có

kiểu dữ liệu là float, double, long double)

 Hằng ký tự: Được đặt trong dấu nháy đơn Ví dụ: 'A', 'a' tương ứng với giá trị nguyên 65, 97 trong bảng mã ASCII

 Hằng chuỗi: Là tập hợp các ký tự được đặt trong cặp dấu nháy kép " " Ví dụ: “Lap trinh C"

 Chú ý: Một hằng chuỗi được trữ tận cùng bằng ký tự null (\0)

39

Trang 40

Ký hiệu các phép toán

STT TOÁN PHÉP Ý NGHĨA GHI CHÚ

PHÉP TOÁN SỐ HỌC

4 / Chia Đối với 2 số nguyên thì kết quả là chia lấy phần nguyên

5 % Chia lấy phần dư Chỉ áp dụng cho 2 số nguyên

PHÉP TOÁN QUAN HỆ

Trang 41

PHÉP TOÁN LOGIC

2 && AND

TOÁN TỬ TĂNG GIẢM

1 ++ Tăng 1 Nếu toán tử tăng giảm đặt

trước thì tăng giảm trước rồi tính biểu thức hoặc ngược lại.

Trang 42

Thứ tự ưu tiên phép toán

Toán tử Độ ưu tiên Trình tự kết hợp

! ~ ++ - + * & sizeof 2 Từ phải qua trái

42

Trang 44

Cho biết kết quả của đoạn chương trình sau:

int a, b;

b=a%2 + a/2 + a;

Với a = 17 Kết quả: a = ?; b = ? Với a = 3 Kết quả: a = ?; b = ? - int a, b;

b=a/3 + a ;

Với a = 8 Kết quả: a = ?; b = ? Với a =21 Kết quả: a = ?; b = ?

44

Trang 45

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

(ĐK)?<BT cho trường hợp đúng>:<BT cho trường hợp sai>

Trang 46

Hàm nhập xuất

Thư viện hàm: iostream.h hoặc namespace std của iostream (trên Net)

Hàm nhập giá trị từ bàn phím: cin>>tênbiến;

Ví dụ: int a;

cin>>a; //Người dùng nhập giá trị từ phím sẽ lưu vào biến a

Hàm xuất giá trị ra màn hình: cout<<tên biến/ chuỗi ký tự;

Ví dụ: int a = 5;

cout<<“Gia tri cua a = “<<a;

Các biến và chuỗi cách nhau bởi dấu <<

(chuỗi nằm trong cặp dấu nháy kép “” )

46

Trang 49

5.3 5.339

cout<<setprecision(n);

 Xuất số thập phân gồm n-1 chữ số lẻ (phần thập phân)

Trang 51

Xuất có định dạng – Ví dụ

51 Viết chương trình nhập vào hai số nguyên a và b, in ra

thương của a và b (xuất 2 số lẻ phần thập phân).

Trang 52

Hàm nhập xuất của C

Thư viện <stdio.h>

 Xuất:

printf(“hằng chuỗi”);

Vd: printf(“Xin chao cac ban”);

printf(“chuỗi định dạng”, đối số 1, đối số 2);

Trang 54

Chuỗi định dạng

KIỂU LIÊN TỤC (SỐ THỰC)

Trang 56

\b Xuất lùi về sau cout<<"xyz\t\bzyx”;

Kết quả: xyzzyx

\n hoặc endl Xuống dòng

cout<<"xyz\nzyx”;Kết quả: xyz

zyx

\r Về đầu dòng cout<<"xyz\rzyx”;

Kết quả: zyx

56

Trang 57

Cách trình bày chương trình

 Lệnh quá dài có thể được viết thành nhiều dòng sao cho mỗi lệnh phải được quan sát trọn vẹn trong pham vi cửa sổ lệnh.

57

Trang 58

Cách trình bày chương trình (tt)

ngay cả các khai báo biến, nếu các biến có khác kiểu cũng nên đặt trên các dòng khác nhau.

từng cột

58

Trang 59

Các lỗi thường gặp khi viết chương trình

KHÔNG khai báo các biến sử dụng trong chương trình

Lưu một giá trị vào một biến nhưng KHÔNG cùng kiểu

dữ liệu với biến

Sử dụng biến trong một biểu thức khi CHƯA có giá trị

59

Trang 60

Các lỗi thường gặp khi viết chương trình

Dùng phép chia KHÔNG ép kiểu cho số nguyên

Trang 61

 Cho biết những chỗ sai và sửa lại cho đúng

Trang 62

Mô tả giải thuật bằng lưu đồ và viết các chương trình sau:

 Nhập vào giờ phút và giây, đổi ra giây và xuất kết quả

ra màn hình

 Nhập vào 3 số nguyên a, b và c, tính giá trị trung bình

cộng của 3 số trên và xuất kết quả ra màn hình

62

Trang 63

 Viết chương trình cho phép nhập vào một số đo nhiệt độ

theo độ Fahrenheit và xuất ra nhiệt độ tương đương của

nó theo độ Celsius, sử dụng công thức chuyển đổi:

 Viết chương trình nhập vào 3 số nguyên a, b và c, cho

biết 3 số vừa nhập có thứ tự tăng dần (a<b<c) không? Và

xuất kết quả

63

) 32

( 9

Trang 64

Hướng dẫn tạo mới Project trong MS Visual Studio 2013

64

 B1 Chạy chương trình MS Visual Studio 2013

Trang 65

Hướng dẫn tạo mới Project trong MS Visual Studio 2013

65

 B2 Tạo mới Project: Chọn File, New, Project…

Trang 66

Hướng dẫn tạo mới Project trong MS Visual Studio 2013

Trang 67

Hướng dẫn tạo mới Project trong MS Visual Studio 2013

67

 B4 Nhấn nút Next

(Không chọn nút

Finish)

Trang 68

Hướng dẫn tạo mới Project trong MS Visual Studio 2013

68

 B5 Check vào mục

Empty project trước

khi nhấn nút Finish

Trang 69

Hướng dẫn tạo mới Project trong MS Visual Studio 2013

69

 B6 Click phải vào mục Source Files, Add, New Item…

Trang 70

Hướng dẫn tạo mới Project trong MS Visual Studio 2013

70

 B7 Nhấn nút Add (không thay đổi những mục chọn sẵn)

Trang 71

Hướng dẫn tạo mới Project trong MS Visual Studio 2013

71

 B8 Viết code, biên dịch và thực thi chương trình: nhấn phím Ctrl+F5

Trang 72

72

Ngày đăng: 04/09/2015, 15:17

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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