Tải bản đầy đủ (.pdf) (39 trang)

Bài giảng tin học đại cương chương 4 trần quang hải bằng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.26 MB, 39 trang )

TIN HỌC ðẠI CƯƠNG
Chương 4: Lập trình cho máy tính



Nội dung
q Khái niệm.
q Giới thiệu ngôn ngữ lập trình C.
q Các khái niệm cơ bản trong C.
q Các lệnh nhập/xuất dữ liệu.
q Cấu trúc điều khiển rẽ nhánh.
q Cấu trúc điều khiển lặp.
q Bài tập.



Tin học đại cương - Chương 4

2


Khái niệm lập trình cho máy tính



Tin học đại cương - Chương 4

3

Giới thiệu ngôn ngữ lập trình C
q Ngôn ngữ C ra ñời năm 1972


q Phát triển thành C++ vào năm 1983
q Là ngôn ngữ ñược sử dụng rất phổ biến
q Có nhiều trình biên dịch C khác nhau

– Turbo C, Borland C
– ANSI C, IBM C, ISO C
– GCC
– …v.v.

q Chúng ta sẽ sử dụng:
Borland C 5.02 (bộ cài 85MB)


Tin học đại cương - Chương 4

4


IDE Borland C++ 5.02
q Chạy file Setup.exe trong thư mục Bc502
q Một số phím soạn thảo
Phím

Chức năng

Enter

Xuống dòng

Insert


Chuyển đổi chế ñộ chèn/đè

Delete

Xóa kí tự ngay sau vị trí con trỏ

Back space
Ctrl + Y
Ctrl + Q + Y



Xóa kí tự ngay trước vị trí con trỏ
Xóa dòng kí tự chứa con trỏ
Xóa các kí tự từ vị trí con trỏ ñến cuối dòng

Tin học đại cương - Chương 4

5

IDE Borland C++ 5.02
Một số phím soạn thảo (tiếp theo)
Phím

Chức năng

Ctrl + K + C

Chép khối tới vị trí mới của con trỏ


Ctrl + K + V

Chuyển khối tới vị trí mới của con trỏ

Ctrl + K + Y

Xóa cả khối

Ctrl + K + W

Ghi một khối vào một tệp trên đĩa

Ctrl + K + R

Đọc một khối từ một tệp trên đĩa

Ctrl + Q + B

Dịch chuyển con trỏ về ñầu khối

Ctrl + Q + K

Dịch chuyển con trỏ về cuối khối

Ctrl + Q + F

Tìm kiếm một cụm từ

Ctrl + Q + A


Tìm kiếm cụm từ và sau ñó thay thế bằng cụm từ khác

Ctrl + Q + L

Lặp lại Ctrl + Q + F hoặc Ctrl + Q + A cuối cùng



Tin học đại cương - Chương 4

6


Chương trình “Hello world”
chỉ thị tiền xử lý

Hàm chính của chương trình

Dấu bắt đầu và kết thúc của
định nghĩa hàm

Kết quả thu ñược khi biên dịch
và chạy chương trình trên



Tin học đại cương - Chương 4

7


Từ khóa (Key word)
q Là các từ dành riêng của ngôn ngữ C
q Từ khóa phải được sử dụng đúng cú pháp
q Một số từ khóa thông dụng
auto
do
goto
short
union

break
double
if
sizeof
unsigned

case
else
int
static
void

char
extern
long
struct
volatile

continue

float
register
switch
while

default
for
return
typedef

Trong IDE
Borland C++ 5.02
từ khóa in đậm
và có màu blue



Tin học đại cương - Chương 4

8


Tên (định danh)
q
q
q
q

Dùng để ñịnh danh các thành phần của chương trình
Tên biến, tên hàm, tên hằng, file, cấu trúc…

Gồm chữ, số, dấu gạch nối “_”
Độ dài tối đa 32

q Lưu ý:

– không đuợc chứa kí tự trống (space),
– không được bắt đầu bằng một chữ số,
– không được trùng với từ khóa
q Nên đặt tên một cách gợi nhớ, có ý nghĩa.
q Tên chuẩn: một số tên có sẵn của trình biên dịch.

Vd:

x, hoten, a1, number_of_var, delta, TEN, …

q C là ngôn ngữ phân biệt viết hoa, viết thường



chính xác đến từng ký tự

Tin học đại cương - Chương 4

9

Hằng, Biến, Biểu thức
q Hằng:
– Là ñại lượng có giá trị không thay ñổi được
– Ví dụ:
• 124

Là một hằng số
• ‘D’
Là một hằng ký tự
• “Lap trinh”
Là một hằng chuỗi ký tự

q Biến
– Là ñại lượng có thể thay ñổi được giá trị (gán giá trị mới)

q Biểu thức
– Là công thức tính toán để có 1 giá trị theo quy tắc toán học
– Gồm các toán hạng và các phép toán (toán tử)
• Toán hạng: hằng, biến, hàm hoặc biểu thức khác.
• Phép toán: Số học, luận lý, gán, ñiều kiện, lấy địa chỉ, tăng giảm



Tin học đại cương - Chương 4

10


Các phép toán C hỗ trợ
q
q
q
q
q
q


Số học:
+ , - , * , / , %
Luận lý:
==, !=, >, <, >=, <=, &&, ||, !
Gán giá trị: =
Lấy kích cỡ theo số byte: sizeof(đốitượng)
Điều kiện: ĐK ? E1 : E2
Lấy địa chỉ:
&(biến)

q Tăng giảm:

x++,
++x,
x--, --x
tong+=i;
tich*=i;
/=, %=, -=, &=, |=, ^=



Tin học đại cương - Chương 4

11

Câu lệnh, Chú thích
q Câu lệnh: Là một chỉ thị yêu cầu máy tính thực thi một tác vụ nào đó.
Một câu lệnh phải kết thúc bởi một dấu chấm phẩy “;”
q Chú thích:
– Trên 1 dòng: // Chú thích trên một dòng

– Trên nhiều dòng: /*
Chú thích trên nhiều dòng.
*/

q Các chỉ thị tiền biên dịch:
#define
#if
#ifdef#else
#ifndef
#error

#undefine
#elif
#endif
#else



#include
#else

#endif

#endif

Tin học đại cương - Chương 4

12



Các kiểu dữ liệu chuẩn
Kiểu số

Tên kiểu

Độ lớn

char

1 byte

-128

unsigned char

1 byte

0

int

2 byte

-32768

unsigned int

2 byte

0


65535

short

2 byte

0

65535

long

4 byte

- 231

231 - 1

unsigned long

4 byte

- 231

232 - 1

float

4 byte


3.4e-38

3.4e38

double

8 byte

1.7e-308

1.7e308

long double

10 byte

3.4e-4932

1.1e4932



Phạm vi
127
255
32767

Tin học đại cương - Chương 4


13

Các kiểu dữ liệu chuẩn
Kiểu ký tự
Tên kiểu

Độ lớn

Phạm vi

char

1 byte

Gồm 256 ký tự có mã từ 0
255 (
xem Bảng mã ASCII )

Ví dụ:



Ký tự ’A’ có mã 65
Ký tự ’0’ có mã 48

Các ký tự ñặc biệt:
’\0’
’\n’
’\t’




ký tự Null (có mã = 0)
ký tự xuống dòng (new line)
ký tự Tab

Tin học đại cương - Chương 4

14


Ép kiểu
Cú pháp:
(kiểu_mới) biểu thức hoặc kiểu_mới (biểu thức)

Ví dụ:



Tin học đại cương - Chương 4

15

Khai báo hằng
Cú pháp
#define TÊNHẰNG
hoặc
const kiểudữliệu

giátrị

TÊNHẰNG = giátrị;

Ví dụ
#define MAX
100
const int SOPT = 100;

Lưu ý: hằng phải được khai báo trước khi sử dụng



Tin học đại cương - Chương 4

16


Khai báo biến

Kết thúc bằng dấu chấm phẩy

Cú pháp
kiểudữliệu
kiểudữliệu
kiểudữliệu

TÊNBIẾN;
Biến1, Biến2,... ;
TÊNBIẾN = giátrịbanđầu;

hoặc

hoặc

Ví dụ
int sole;
float tbc, tongam;
char Enter = ’\n’;

Lưu ý: Biến có thể khai báo bất kỳ ñâu trong chương trình miễn
làn trước khi sử dụng.



Tin học đại cương - Chương 4

17

Cấu trúc chương trình C
Chỉ thị tiền biên dịch
Khai báo các hằng, biến
Khai báo các hàm tự XD

Thân chương trình chính

Cài đặt các hàm đã khai
báo ở trên



Tin học đại cương - Chương 4


18


Phép gán giá trị
Cú pháp

TênBiến = Biểu thức giá trị ;

Ví dụ:
int x, y, z;
x = 10;
//sai
10 = x;
x = 10 + y;
10 + y = x; //sai
z = x + y;
x + y = z;
//sai



Tại sao sai ?

Tin học đại cương - Chương 4

19

Các hàm toán học thông dụng
Chỉ thị tiền biên dịch:
#include <math.h>

sqrt(x)
lấy căn bậc 2
x
exp(x) lấy e
log(x) lấy logex
abs(x) lấy |x| (kết quả là số nguyên)
fabs(x)
lấy |x| (kết quả là số thực)
pow(x, y)
lấy xy
ceil(x)
lấy số nguyên gần x nhất
floor(x)
lấy số nguyên lớn nhất ≤ x
Các biểu thức phức tạp phải sử dụng biến đổi toán học ñể có ñược biểu diễn
tương ứng trong C



Tin học đại cương - Chương 4

20


Một số quy tắc viết chương trình
q Đặt tên biến, hằng, hàm,… một cách gợi nhớ
q Khi sử dụng biến, hằng cần kiểm tra lại xem biến hằng đó ñã ñược
khai báo trước đó hay chưa ?
q C là ngôn ngữ phân biệt hoa/thường
khi viết


phải kiểm tra kỹ từng ký tự

q Loại bỏ các chỉ thị #include <file *.h> không cần thiết (để lại sẽ làm
chậm quá trình biên dịch và tăng kích thước file *.exe sau biên dịch)
q Viết chương trình theo cấu trúc khối (phân cấp thụt đầu dòng)
phải
q Chương trình viết xong chưa thể biết được đúng hay sai
chạy thử với các bộ số liệu khác nhau (nên test thử với các bộ số
liệu đặc biệt)



Tin học đại cương - Chương 4

21



Tin học đại cương - Chương 4

22


Xuất dữ liệu, hàm: printf
q Thuộc thư viện “stdio.h”
q Cú pháp:
printf(“Xâu điều khiển”,[danh sách tham số]);

q Ví dụ:




Tin học đại cương - Chương 4

23

Hàm printf
q Xâu ñiều khiển bao gồm 3 loại kí tự
– Các kí tự ñiều khiển
• \n
• \f
• \b
• \t

sang dòng mới
sang trang mới
xóa kí tự bên trái
dấu Tab

– Các kí tự ñể ñưa ra màn hình
– Các kí tự ñịnh dạng và khuôn in
• Công thức định dạng:
%[-][w][.p]Kt
• w = wide(độ rộng); p = precise(độ chính xác); Kt = Ký
tự chuyển dạng (dạng hiển thị). Dấu trừ sẽ quy ñịnh
canh lề trái thay vì canh lề phải
• Ví dụ: %.2f
%8d
%s

%-5c


Tin học đại cương - Chương 4

24


Hàm printf
q Các ký tự chuyển dạng thường dùng
Ký tự

Ý nghĩa

c

In ra ở dạng ký tự char

d

In ra ở dạng số nguyên int

u

In ra ở dạng số nguyên unsigned int

ld

In ra ở dạng số nguyên long


lu

In ra ở dạng số nguyên unsigned long

f

In ra ở dạng số thực float

s

In ra ở dạng xâu ký tự

x

In ra ở dạng số nguyên hệ 16 (hecxa)

o

In ra ở dạng số nguyên hệ 8

e, E

In ra rở dạng khoa học

g, G

In ra ở dạng số thực (bỏ các số 0 vô nghĩa)




Tin học đại cương - Chương 4

25

Tin học đại cương - Chương 4

26

Hàm printf
q Ví dụ




Hàm printf
Viết

q In các ký tự ñặc biệt
q Công thức định dạng

Ý nghĩa

\’

In ký tự dấu nháy đơn (‘)

\”

In ký tự dấu nháy kép (“)


%[-][w][.p]Kt

\\

In ký tự backslash (\)

– W: wide (độ rộng)
– P: precse (độ chính xác)
– Kt: Ký tự chuyển dạng

\t

In ký tự Tab

\b

In lùi 1 vị trí

\n

In xuống dòng mới

q Giá trị của w
– Nhỏ hơn hoặc bằng độ rộng thực tế
in bình thường
– Lớn hơn độ rộng thực tế (chèn thêm khoảng trống cho đủ ñộ
rộng là w (nếu có dấu trừ chèn bên phải, ngược lại chèn bên
trái)

q Giá trị p: quy ñịnh làm tròn đến bao nhiêu chữ số ñằng sau

chấm thập phân.


Tin học đại cương - Chương 4

27

Hàm puts
q Thư viện: “conio.h”
q Công dụng: in ra màn hình 1 xâu ký tự
q Ví dụ:



Tin học đại cương - Chương 4

28


Hàm sprintf
q Thư viện: “stdio.h”
q Công dụng: giống printf, chỉ khác ở ñiểm kết quả không
xuất ra màn hình mà ñưa vào 1 biến xâu.
q Ví dụ:



Tin học đại cương - Chương 4

29


Nhập dữ liệu, hàm: scanf
q Thuộc thư viện “stdio.h”
q Cú pháp:
scanf(“Xâu điều khiển”,[DS tham số]);
– Xâu điều khiển: Cho phép định dạng dữ liệu nhập vào
– Danh sách tham số: Là ñịa chỉ các biến cần nhập liệu

q Sử dụng toán tử & ñể xác định địa chỉ các biến
q Ví dụ:
scanf(“%d%f%c”, &x, &y, &z);
scanf(“%s”, &hoten);



Tin học đại cương - Chương 4

30


Hàm scanf
q Không thông báo cho
người dùng biết giá trị cần
phải
nhập là giá trị gì?
kết hợp với lệnh xuất dữ
liệu
q Không nhận được xâu có
dấu cách trống
q Không xóa ký tự thừa

ảnh
trong bộ ñệm
hưởng tới lện nhập phía
sau.



Tin học đại cương - Chương 4

31

Sử dụng fflush sau scanf
Công d ng:
xóa những ký tự thừa
còn dư lại trong bộ
đệm của scanf



Tin học đại cương - Chương 4

32


Kết hợp nhập và xuất dữ liệu

Kết quả
chương
trình ?




Tin học đại cương - Chương 4

33

Hàm gets
q Thư viện: “conio.h”
q Công dụng: nhập vào 1 xâu ký tự
q Ví dụ:



Liệu có dùng
gets nhập 1 số
không?

Tin học đại cương - Chương 4

34




Tin học đại cương - Chương 4

35

Một số hàm nhập/xuất dữ liệu khác
Hàm


int getch()
int getche()

Ý nghĩa
đợi nhập 1 ký tự từ bàn phím (không hiển thị ở màn hình)
giống getch() nhưng hiển thị ở màn hình

int putch()

In ra màn hình 1 ký tự

int kbhit()

Kiểm tra xem có 1 phím bị nhấn không?

cprintf()

Giống printf nhưng có màu sắc

gotoxy(x, y)

chuyển tới vị trí (cột x, hàng y)



Tin học đại cương - Chương 4

36



Màu sắc khi xuất dữ liệu
q Đặt màu nền
textbackground(màu nền)
q Đặt màu chữ textcolor(màu
chữ)



Hằng màu

Giá trị

ý nghĩa

BLACK

0

Đen

BLUE

1

Xanh dương

GREEN

2


Xanh lá

CYAN

3

Xanh ngọc

RED

4

Đỏ

MAGENTA

5

Tím

BROWN

6

Nâu

LIGHTGRAY

7


Xám

Tin học đại cương - Chương 4

37

Bài tập - Nhập/xuất dữ liệu
1.

Viết chương trình cho nhập các hệ số của phương trình bậc nhất 1 ẩn
ax+b=0 (với a≠0) hãy in ra màn hình nghiệm của phương trình đã
cho.

2.

Viết chương trình hiển thị ra màn hình số tiền phải trả cho 1 cuộc gọi
điện thoại N giây. Biết rằng cước gọi tính theo mỗi block là xñ, và 1
block bằng 6 giây. Các giá trị x, N nhập từ bàn phím.

3.

Viết chương trình nhập tọa độ của 3 ñiểm A, B, C trên mặt phẳng.
Tính và in ra màn hình chu vi, diện tích của tam giác ABC.

4.

Viết chương trình nhập họ tên, hệ số lương của 1 nhân viên. Tính và
in ra màn hình lương còn lĩnh của nhân viên đó sau khi trừ ñi các
khoản: BHYT 1.5%, BH thất nghiệp 1% và ðảng phí 1%


5.

Viết chương trình hiện ra màn hình thể tích của tứ diện ABCD biết
rằng A, B, C có tọa độ nhập từ bàn phím (XA, YA) (XB, YB) (XC, YC) và
chiều cao từ ñỉnh D xuống mặt phẳng ABC là h


Tin học đại cương - Chương 4

38




Tin học đại cương - Chương 4

39

Rẽ nhánh if
q Cú pháp:
if ( điều kiện)
<lệnh thực hiện>;
if ( điều kiện)
<lệnh 1>;
else
<lệnh 2>;

q Công dụng:
-


Thực hiện 1 trong 2 lệnh tùy thuộc vào điều kiện đúng/sai.
Nếu thực nhiện nhiều hơn 1 lệnh
phải để trong cặp dấu { }



Tin học đại cương - Chương 4

40


Rẽ nhánh if - ví dụ1
q Tìm min của 2 số a, b nhập từ bàn phím



Tin học đại cương - Chương 4

41

q Sử dụng các toán tử luận lý để xây dựng các điều kiện phức
tạp hơn
Toán tử

Ký hiệu

AND

&&


OR

||

NOT

!

A

B

A && B

TRUE

TRUE

TRUE

TRUE

FALSE

FALSE

FALSE

TRUE


FALSE

FALSE

FALSE

FALSE

A

B

A || B

A

!A

TRUE

TRUE

TRUE

TRUE

FALSE

TRUE


FALSE

TRUE

FALSE

TRUE

FALSE

TRUE

TRUE

FALSE

FALSE

FALSE



Tin học đại cương - Chương 4

42


Viết chương trình nhập vào tọa độ của 3 ñiểm A, B, C trên mặt phẳng. Kiểm tra
xem tam giác ABC có là tam giác đều không?




Tin học đại cương - Chương 4

43

Tính cước cuộc gọi điện thoại N giây biết rằng đơn giá 1 block
là x ñồng, 1 block = 6 giây



Tin học đại cương - Chương 4

44


Viết chương trình cho phép giải và biện luận phương trình bậc
2 ax2 + bx + c = 0



Tin học đại cương - Chương 4

45

Rẽ nhánh if
q Lưu ý:
– Nếu sau if hoặc else tác động lên nhiều hơn 1 lệnh thì phải sử dụng
cặp dấu { }


– Nếu sau if có dấu ; thì ñiều kiện không còn tác động đến lệnh phía sau

kết quả ?



Tin học đại cương - Chương 4

46


Rẽ nhánh if
q Lưu ý:

– Giá trị số cũng được coi là ñiều kiện (số = 0: điều kiện
sai; số ≠ 0: điều kiện đúng)

if(delta=0)



Tin học đại cương - Chương 4

47

Sử dụng else if
q Khi muốn chọn 1 trong n quyết định thì sử dụng
else if như sau:




Tin học đại cương - Chương 4

48


Viết chương trình xếp loại học lực theo điểm trung bình học
tập.



Tin học đại cương - Chương 4

49

Sử dụng toán tử ? thay if
q Cú pháp:
(điều kiện) ? lệnh 1 : lệnh 2 ;

q Công dụng:
– Lệnh 1 ñược thực hiện nếu điều kiện đúng
– Lệnh 2 ñược thực hiên nếu điều kiện sai

q Ví dụ:
(a > b) ? max = a : max = b;



Tin học đại cương - Chương 4


50


×