1. Trang chủ
  2. » Công Nghệ Thông Tin

Tổng quan về ngôn ngữ lập trình C

48 367 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 48
Dung lượng 0,92 MB

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

Nội dung

 Ví dụ: "Turbo C", "Ngôn ngữ C++ \n\r"  Một hằng chuỗi được lưu trữ tận cùng bằng một ký tự Nul \0, ví dụ chuỗi "Turbo C" được lưu trữ trong bộ nhớ như sau: Cách định nghĩa hằng sử dụn

Trang 1

2 Ngôn ngữ lập trình C

Bài 1: Tổng quan về ngôn ngữ lập trình C

I Sử dụng phần mềm lập trình

1 Borland C

2 Dev-C++

3 Visual studio: C#

Trang 2

4 Ngôn ngữ lập trình C

II Giới thiệu ngôn ngữ lập trình C

 Là những từ có một ý nghĩa hoàn toàn xác định

 Asm, char, do, int, float, for, do, While,…

 Tên

 Dùng để xác định các đại lượng khác nhau trong một chương trình

 Bắt đầu bằng chữ cái hoặc gạch nối

 Độ dài cực đại mặc định là 32

2 Các kiểu dữ liệu cơ sở trong C

 Kiểu số ký tự (char)

 Kiểu số nguyên (int)

 Kiểu dấu phẩy động (chính xác đơn (float),

chính xác kép (double))

 Kiểu void

Trang 3

6 Ngôn ngữ lập trình C

2.1 Kiểu ký tự (char)

 Một giá trị kiểu ký tự (char) chiếm 1 byte trong bộ

nhớ và biểu diễn một ký tự thông qua bảng mã ASCII

 Trong ngôn ngữ C cung cấp hai kiểu ký tự (char) là

signed char và unsigned char

Phạm vi Số ký tự Kích thước

signed char -128 127 1 byte

unsigned char 0 255 1 byte

Ví dụ : char ch, ch1;

ch= ‘a’ ; ch1= 97;

Trang 4

8 Ngôn ngữ lập trình C

2.2 Kiểu số nguyên (int)

Kiểu số nguyên trong C gồm các kiểu sau:

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

int -32768 -> 32767 2 byte

Unsigned int 0 -> 65535 2 byte

2.3 Kiểu số thực hay còn gọi là kiểu dấu phẩy động

Kiểu Phạm vi biểu diễn Số chữ số

có nghĩa Kích thướcfloat 3.4-38E -> 3.4E+38 7-8 4 byte

double 1.7E-308 -> 1.7E+308 15-16 8 byte

long

double 3.4E-4932 -> 1.1E+4932 17-18 10 byte

Trang 5

10 Ngôn ngữ lập trình C

3 Hằng và biến

3.1 Hằng:

 Khái niệm: hằng là giá trị bất biến trong chương

trình không thay đổi, không biến đổi về mặt giá trị

Các loại hằng được sử dụng trong C tương ứng với

nguyên hay kiểu thực

 Hằng nguyên: Giá trị chỉ bao gồm các chữ số, dấu +,

- được lưu trữ theo kiểu int Ví dụ: 12,-12

 Nếu giá trị vượt quá miền giá trị của int hoặc có ký

tự l (hay L ) theo sau giá trị thì lưu theo kiểu long int

Ví dụ: 43L hoặc 43l là hằng nguyên lưu theo kiểu

long int

 Hằng thực: Trong giá trị có dấu chấm thập phân,

hoặc ghi dưới dạng số có mũ, và được lưu theo kiểu

Trang 6

12 Ngôn ngữ lập trình C

Hằng ký tự

 Một hằng kiểu ký tự được viết trong dấu ngoặc đơn (' )

như 'A' hoặc 'z'

 Hằng ký tự 'A' thực sự đồng nghĩa với giá trị nguyên

65, là giá trị trong bảng mã ASCII của chữ hoa 'A' (Như

vậy giá trị của hằng chính là mã ASCII của nó) Ðối với

một vài hằng ký tự đặc biệt, ta cần sử dụng cách viết

thêm dấu \ , như '\t' tương ứng với phím tab:

 Hằng ký tự có thể tham gia vào phép toán như mọi số

Trang 7

14 Ngôn ngữ lập trình C

Hằng chuỗi

 Là chuỗi ký tự nằm trong cặp dấu nháy kép " " Các ký

tự này cũng có thể là các ký tự được biểu diễn bằng

chuỗi thoát

 Ví dụ: "Turbo C", "Ngôn ngữ C++ \n\r"

 Một hằng chuỗi được lưu trữ tận cùng bằng một ký tự

Nul (\0), ví dụ chuỗi "Turbo C" được lưu trữ trong bộ

nhớ như sau:

Cách định nghĩa hằng sử dụng trong chương trình

 Với các giá trị hằng thường được dùng trong một

chương trình ta nên định nghĩa ở đầu chương trình

(sau các dòng khai báo những thư viện chuẩn) theo cú

pháp:

#define <tên hằng> <giá trị>

Ví dụ: #define PI 3.1415

Trang 8

16 Ngôn ngữ lập trình C

3.2 Biến

- Cách khai báo: Mỗi biến trong chương trình đều phải

được khai báo trước khi sử dụng với cú pháp khai:

Kiểu dữ liệu <danh_sách_tên_biến>;

 Lưu ý: nếu có nhiều tên biến thì giữa các tên biến

phải có dấu , để ngăn cách

Ví dụ: int a,b; float x;

- Khởi đầu cho các biến

Ngay trên dòng khai báo ta có thể gán cho biến

một giá trị Việc làm này gọi là khởi đầu cho biến

Ví dụ: int a,b=6,d=1;

 Cách truy xuất đến địa chỉ của biến

 Một số hàm của C dùng đến địa chỉ của biến ví dụ

như hàm scanf Ðể nhận địa chỉ của biến dùng

toán tử: &

Ví dụ: &tên_biến -&a : địa chỉ của biến a

Trang 9

18 Ngôn ngữ lập trình C

3.3 Cấu trúc tổng quát của chương trình C

Một chương trình C chuẩn gồm có các thành

phần sau:

1. Các chỉ thị tiền biên dịch

2. Khai báo các kiểu dữ liệu mới

3. Khai báo hằng, khai báo biến

4. Khai báo hàm

5. Chương trình chính

1 Chỉ thị tiền biên dịch (xử lý): giúp trình biên dịch thực

hiện một số công việc trước khi thực hiện một số công

việc trước khi thực hiện biên dịch chính thức

VD: #include <stdio.h>;

#include <conio.h>;

2 Khai báo kiểu dữ liệu mới: dung từ khoá typedef

VD: typedef int songuyen;

typedef float mang[10];

3 Khai báo hằng và biến: khai báo các hằng số và biến

dùng trong chương trình

4 Khai báo hàm: khai báo các hàm tự viết

Trang 10

20 Ngôn ngữ lập trình C

/* Chương trình in ra dòng chữ ngôn ngữ lập trình trên

màn hình */

# include <stdio.h>

main () /* Ham chinh */

{

printf(" \n ngon ngu lap trinh");

/*xuong dong in chu ngon ngu lap trinh*/

}

/* Chương trình tính chu vi và diện tích hình tròn, biết bán kính r

là một hằng số có giá trị =3.1 */

# include <stdio.h> /* khai báo thư viện hàm nhập xuất chuẩn */

# include <math.h> /* khai báo thư viện hàm toán học */

#include <conio.h>

#define r 3.1

main ()

{

float cv,dt; /* khai bao bien chu vi va dien tich kieu so thuc */

cv=2*r*M_PI; /* tinh chu vi */

dt=M_PI*r*r; /* Tinh dien tich */

printf("\nChu vi = %10.2f\nDien tich = %10.2f",cv,dt);

/* In ket qua len man hinh */

getch(); /* Tam dung chuong trinh */

Trang 11

22 Ngôn ngữ lập trình C

*Chương trình này minh họa cách vừa khai báo, vừa khởi

đầu một biến trong C */

#include <stdio.h>

main()

{

char ki_tu = 'a'; /* Khai báo/khởi đầu kí tự */

int so_nguyen = 15; /* Khai báo khởi đầu số nguyên */

float so_thuc = 27.62; /* Khai báo/khởi đầu số thực*/

printf("%c la mot ki tu.\n",ki_tu);

printf("%d la mot so nguyen.\n",so_nguyen);

printf("%f la mot so thuc.\n",so_thuc);

đối số 1, đối số 2 : là biểu thức cần in kết quả ra màn hình

<dòng điểu khiển> là một hằng xâu ký tự bao gồm 3 loại:

- Ký tự diều khiển việc xuống dòng tiếp theo ‘\n’

Bài 2 Các hàm vào ra dữ liệu

Trang 12

24 Ngôn ngữ lập trình C

 Đặc tả kiểu nguyên đối với biểu thức có giá trị kiểu số

nguyên %[n]d

Trong đó n là số nguyên xác định độ rộng tối thiểu dành

cho giá trị biểu thức in ra màn hình

 Đặc tả kiểu số thực %[n][.m]f

Trong đó m là số chữ số sau dấu phẩy, n là một số

nguyên xác định độ rộng tối thiểu trên màn hình cho giá

trị của biểu thức:

VD:

%c : in một ký tự có mã ASCII tương ứng

%[n]d : in một số nguyên với chiều dài tối thiểu là n

%[n]ld: in một số nguyên (long int)

%[n.m]f : in một số thực vối chiều dài n và lấy m số thập

Trang 13

26 Ngôn ngữ lập trình C

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

Trang 14

28 Ngôn ngữ lập trình C

char chuoi[]="mon ngon ngu lap trinh";

main () /* Ham chinh */

{

printf(" Ngay hom nay hoc %s ",chuoi);

}

Trang 15

30 Ngôn ngữ lập trình C

/* Chương trình ví dụ hàm printf : xuất kết quả 1 phép tính*/

# include <stdio.h>

float a=90.9,b=9.1;

main () /* Ham chinh */

{

printf(" ket qua cua so %4.2f + so %4.2f = %4.2f ",a,b,a+b);

// ket qua cua so 90,90 + so 9,10=100,00

Dòng điều khiển: tương tự như lệnh printf

&đối số 1, &đối số 2: là địa chỉ của biến trong bộ nhớ

Trang 16

32 Ngôn ngữ lập trình C

 Viết chương trình nhập vào 2 số thập phân a

và b, sau đó xuất ra màn hình kết quả phép

toán:a + b, a x b.

Trang 17

34 Ngôn ngữ lập trình C

Hiển thị một xâu ký tự s lên màn hình, sau khi in xong thì

con trỏ sẽ được chuyển xuống dòng

Trang 18

36 Ngôn ngữ lập trình C

II Hàm xuất nhập chuẩn trong thư viện <conio.h>

được ấn thì nhận ngay ký tự đó mà không cần phải

enter như các hàm nhập từ stdio.h

- Hàm getche() cho hiện ký tự lên màn hình còn getch()

thì không

- Kết quả trả về của hàm là ký tự được ấn trên bàn phím

 Xuất ký tự có màu

Cú pháp : cprintf giống hàm printf

Ý nghĩa: in ra ký tự có màu được ấn định bởi hàm

+ Nhận nội dung trực tiếp từ bộ đệm bàn phím Vì

vậy với hàm cscanf ta cũng phải khử ký tự \n trong

Trang 19

38 Ngôn ngữ lập trình C

III.Một số hàm thao tác trên màn hình (không có trong

DEV C)

Có tác dụng xóa toàn bộ m àn hình và sau khi xóa con trỏ

sẽ ở vị trí góc phía bên trái

Tương đương hàm: system(“cls”); (thư viện windows.h)

 Hàm đặt tọa độ con trỏ: gotoxy(int x, int y);

Đặt con trỏ tại vị trí x, y

 Hàm đặt mầu nền textbackground

void textbackground(int color);

Đặt mầu nền Color là một biểu thức nguyên có giá trị

từ 0 đến 7 tương ứng với một trong 8 hằng số màu đầu

tiên của bảng mầu văn bản

 Hàm đặt mầu chữ textcolor

void textcolor(int newColor);

Lựa chọn màu ký tự mới newColor.Trong đó newColor

là một biểu thức nguyên có giá trị từ 0 đến 15 tương ứng

với một trong các hằng số màu của bảng mầu văn bản

Trang 20

/*Chương trình minh họa hàm Hàm cprintf() và Hàm cscanf() * Borland c

cprintf("\nNhap mot so: ");

cscanf("%d%*c",&a);/*Nhập số a, nếu không có %*c sẽ trôi lệnh cscanf

diễn đạt một công thức toán học nào đó

 Biểu thức trong C gồm có biểu thức toán học và

biểu thức logic

 Biểu thức toán học bao gồm các phép toán số học và các

hằng, các biến, các hàm

 Biểu thức logic bao gồm các biến, hằng, hàm và phép

toán logic (!: phép phủ định, &&: phép và, || : phép

hoặc)

Trang 21

42 Ngôn ngữ lập trình C

>= Có lớn hơn hay bằng không? a>=b

<= Có nhỏ hơn hay bằng không? a<=b

Trang 22

44 Ngôn ngữ lập trình C

 Các phép toán quan hệ có độ ưu tiên nhỏ hơn

so với ! nhưng lớn hơn so với phép && và ||

Trang 23

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

 Toán tử + + : dùng để tăng giá trị của các biến nguyên

 Khi các toán tử + +, đứng trước toán hạng thì giá trị

của toán hạng được tăng hoặc giảm trước khi sử dụng và

ngược lại nếu toán tử ++, đứng sau toán hạng thì toán

hạng được tăng hay giảm sau khi thực hiện

Ví dụ: n=5

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

Việc chuyển đổi kiểu giá trị trong C thường diễn ra tự

động trong trường hợp sau:

 Trong biểu thức có các toán hạng khác kiểu

 Khi gán một giá trị kiểu này cho một giá trị kiểu khác

 Ngoài ra ta có thể dùng phép chuyển kiểu để ép kiểu dữ

liệu sang kiểu khác

(type) biểu_thức

Ví dụ: (float) (a+b)

Muốn có kết quả chính xác trong phép chia:

Trang 24

48 Ngôn ngữ lập trình C

Chú ý:

- Khi chuyển đổi kiểu trong biểu thức thì đối với toán

hạng có 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 và kết quả thu được sẽ có

kết quả theo kiểu cao hơn

 Kiểu int và kiểu long thì int > long

 int và float thì int -> float

 Float và double thì float -> double

 Kiểu int có thể chuyển thành float và ngược lại

Ví dụ: 1.5*(11/3)=4.5

1.5*11/3=5.5 (11/3)*1.5=4.5

Chú ý:

- Chuyển đổi kiểu thông qua phép gán :Giá trị của vế

phải được chuyển sang kiểu vế trái đó là kiểu của kết

quả

 Kiểu int < > float

 Kiểu double -> float

 Kiểu Long -> int

Ví dụ: int n;

n=15.6 ; //giá trị của n là 15

Trang 25

Bài tập

Bài 1: Viết chương trình nhập dữ liệu cho các

biến kiểu int, long int, float, chuỗi, sau đó hiển

thị ra màn hình.

Bài 2:Viết chương trình tìm xy

Hàm luỹ thừa: pow(x,y);

Bài 3: Viết chương trình tính c = a/b, với a và

b là hai số nguyên, c số thực Nếu ta ép kiểu a

sang thực thì kết quả thế nào?

50 Ngôn ngữ lập trình C

Bài 4: Cấu trúc điều khiển

 Câu lệnh, khối lệnh

 Câu lệnh: mỗi câu lệnh thực hiện một công việc và

được kết thúc bởi dấu ;

 Khối lệnh: là tập hợp các câu lệnh bắt đầu bằng dấu

“{“ và kết thúc bằng dấu “}”

Trang 26

52 Ngôn ngữ lập trình C

I Cấu trúc điều khiển if

1 Cấu trúc if dạng 1

Ý nghĩa: bt là biểu thức lôgic, s là lệnh đơn hoặc lệnh

phức nếu bt nhân giá trị true thì thực hiện s, ngược lại s

được bỏ qua

2 Cấu trúc if dạng 2

Ý nghĩa: bt là biểu thức lôgic, nếu bt nhận giá trị true

thì thực hiện s bỏ qua s1, ngược lại nếu bt nhận giá trị

false thì thực hiện s1 bỏ qua s(s và s1 có thể là lệnh đơn

hoặc lệnh phức)

 Chú ý : trong C cho phép sử dụng các cấu trúc if lồng

nhau để giải quyết bài toán

3 Bài tập

Bài 1: Nhập 2 số thực a, b từ bàn phím Tìm và in ra

màn hình số lớn nhất và số bé nhất

Bài 2: Viết chương trình nhập điểm thi từ bàn phím và

hiển thị kết quả: kém nếu điểm từ 0 đến 3; Yếu nếu

điểm là 4; Trung bình nếu điểm từ 5 đến 6; Khá nếu

điểm từ 7 đến 8; Giỏi nếu điểm từ 9 đến 10

Trang 27

54 Ngôn ngữ lập trình C

II Cấu trúc rẽ nhánh switch

}

Ý nghĩa:

 bt: là biểu thức toán học có giá trị kiểu nguyên

 ni (i=1 k): là các số kiểu nguyên, kiểu hằng ký tự, hoặc

biểu thức

 si(i=1 k): là các lệnh đơn hoặc lệnh phức

 [default: s(k+1)]: là phần tuỳ chọn có thể có hoặc không

Trang 28

56 Ngôn ngữ lập trình C

Hoạt động: lệnh switch phụ thuộc vào giá trị của biểu

thức bt viết sauswitch, nếu:

 Giá trị bt = nithì thực hiện câu lệnh saucase ni

 Khi giá trị biểu thức khác tất cả các ni thì thực hiện câu

lệnh sau default nếu có, hoặc thoát khỏi câu lệnh

switch

 Khi chương trình đã thực hiện xong câu lệnh của case

ni nào đó thì nó sẽ thực hiện luôn các lệnh thuộc case

bên dưới nó mà không xét lại điều kiện Vì vậy, để

chương trình thoát khỏi lệnh switch sau khi thực hiện

xong một trường hợp, ta dùng lệnh break

3 Bài tập

Viết chương trình nhập điểm thi từ bàn phím và hiển

thị kết quả: kém nếu điểm từ 0 đến 3; Yếu nếu điểm

là 4; Trung bình nếu điểm từ 5 đến 6; Khá nếu điểm

từ 7 đến 8; Giỏi nếu điểm từ 9 đến 10

Trang 29

58 Ngôn ngữ lập trình C

III Câu lệnh lặp for

 bt2: là biểu thức logic, giá trị của biểu thức lôgic này

quyết định vòng lặp tiếp tục hay kết thúc

 bt3: thường là lệnh gán có tác dụng làm thay đổi giá trị

của biến điều khiển

Hoạt động:

 Bước 1: Thực hiện bt1

 Bước 2: Tính toán, xác định giá trị củabt2

 Bước 3: Nếu bt2 có giá trị falsethì thoát khỏi vòng lặp

Ngược lạibt2có giá trịtruethì s được thực hiện

 Bước 4: sau khi thực hiện s sẽ thực hiệnbt3 và quay lại

bước 2

Nhận xét:

 bt1: chỉ được thực hiện duy nhất một lần khi bắt đầu

vòng lặp

Trang 30

60 Ngôn ngữ lập trình C

Chú ý khi sử dụng vòng lặp for

 bt1, bt2, bt3 đều có thể vắng mặt nhưng vẫn phải giữ lại

dấu( ; )

 Trường hợp đặc biệt bt2 không có thì luôn được xem là

nhận giá trị true, muốn thoát khỏi vòng lặp phải dùng

lệnh break, gotohoặcreturn

 Có thể dùng cấu trúc các vòng for lồng nhau

 Khi gặp lệnh break thì chương trình sẽ thoát khỏi vòng

forsâu nhất còn chứa lệnhbreak

 Trong vòng for có thể sử dụng lệnh continue để chuyển

tới chu trình mới của vòng lặp

2 Bài tập

Bài 1: Viết chương trình tính tổng của n số đầu tiên của

dãy số sau:

S = 1+1/2+1/3+1/4+ +1/n

Bài 2: Viết chương trình đếm và in ra số lượng các số

đoạn 1 đến 100

Bài 3: Có 3 loại giấy bạc 100đ, 200đ, 500đ Viết

chương trình in các phương án kết hợp các loại giấy bạc

trên cho ra 10000đ

Trang 31

62 Ngôn ngữ lập trình C

IV Câu lệnh while

- Bước 1: Xác định giá trị của bt Nếu giá trị củabt= true

thì chuyển sang bước 2, ngược lại thì thoát khỏi vòng

lặp

- Bước 2: Thực hiệns sau đó quay về bước 1 (Lệnh s có

thể được thực hiện nhiều lần hoặc không được thực

hiện lần nào nếubt =falsengay từ đầu)

V Câu lệnh do while

- Bước 2: Xác định giá trị của bt Nếu giá trị của bt =

true thì chuyển sang bước 1, ngược lại thì thoát khỏi

Trang 32

64 Ngôn ngữ lập trình C

Chú ý : trong câu lệnh lặp while ta có thể dùng câu lệnh

break để thoát khỏi vòng lặp theo ý muốn

 Mảng được hiểu là một tập hợp các giá trị có

cùng kiểu dữ liệu nằm liên tiếp nhau trong bộ

nhớ máy tính

 Mảng được coi như một biến mảng và tên

mảng được đặt theo quy tắc đặt tên biến

Ngày đăng: 21/12/2016, 19:27

TỪ KHÓA LIÊN QUAN

w