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

Bài giảng Tin học đại cương – Phần 2: Lập trình bằng ngôn ngữ C

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 (4.47 MB, 20 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

TIN HỌC ĐẠI CƯƠNG



TIN HỌC ĐẠI CƯƠNG



<b>PHẦN 2: LẬP TRÌNH BẰNG NGƠN NGỮ C</b>


<b>PHẦN 2: LẬP TRÌNH BẰNG NGÔN NGỮ C</b>
BÀI 1: TỔNG QUAN VỀ NGÔN NGỮ C


BÀI 1: TỔNG QUAN VỀ NGÔN NGỮ C


VI N 

<b>Ệ</b>



VI N 

<b>Ệ</b>



CÔNG NGH  

<b>Ệ</b>



CÔNG NGH  

<b>Ệ</b>



THÔNG TIN



THÔNG TIN



SCHOOL  OF 


SCHOOL  OF 


INFORMATION COMMUNICATION TECHNOLOGY 


</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

Bài 1:Tổng quan về C




Bài 1:Tổng quan về C


1.1


1.1.. Lịch sử phát triển ngôn ngữ lập trình C Lịch sử phát triển ngơn ngữ lập trình C
1.2. Các phần tử cơ bản của ngôn ngữ C


1.2. Các phần tử cơ bản của ngôn ngữ C


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


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


1.4. Biên dịch chương trình viết bằng C


1.4. Biên dịch chương trình viết bằng C


1.5. Bài tập


</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

Bài 1:Tổng quan về C



Bài 1:Tổng quan về C


1.1


1.1.. Lịch sử phát triển ngôn ngữ lập trình C Lịch sử phát triển ngơn ngữ lập trình C
1.2. Các phần tử cơ bản của ngơn ngữ C


1.2. Các phần tử cơ bản của ngôn ngữ C


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



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


1.4. Biên dịch chương trình viết bằng C


1.4. Biên dịch chương trình viết bằng C


1.5. Bài tập


</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

1.1. Lịch sử phát triển NNLT C



1.1. Lịch sử phát triển NNLT C



Ra


Ra đời tại phịng thí nghiệm BELL của tập đời tại phịng thí nghiệm BELL của tập
đồn AT&T (Hoa Kỳ)


đồn AT&T (Hoa Kỳ)


D


Do Brian W. Kernighan và Dennis Ritchie o Brian W. Kernighan và Dennis Ritchie
phát triển


phát triển vào đvào đầu 1970ầu 1970, hoàn thành, hoàn thành 1972 1972
C dựa trên nền các ngôn ngữ BCPL


C dựa trên nền các ngôn ngữ BCPL


(



(<i>Basic Combined Programming Basic Combined Programming </i>
<i>Language</i>


<i>Language</i>) và ngôn ngữ B) và ngôn ngữ B..
T


Tên là ngôn ngữ C như là sự tiếp nối ên là ngôn ngữ C như là sự tiếp nối


</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>

1.1. Lịch sử NNLT C



1.1. Lịch sử NNLT C

(tiếp)(tiếp)
Đặc điểm của NNLT C:


Đặc điểm của NNLT C:


 LLà một ngơn ngữ lập trình à một ngơn ngữ lập trình hhệ thống mạnh, ệ thống mạnh,


khả chuyển, có tính linh hoạt cao


khả chuyển, có tính linh hoạt cao..


 CCó thế mạnh trong xử lí các dạng dữ liệu số, ó thế mạnh trong xử lí các dạng dữ liệu số,


văn bản, cơ sở dữ liệu.


văn bản, cơ sở dữ liệu.


 Thường được sử dụng để viết:Thường được sử dụng để viết:



Các chương trình hệ thống như hệ điều hành (VD


Các chương trình hệ thống như hệ điều hành (VD


Unix: 90% viết bằng C, 10% viết bằng hợp ngữ).


Unix: 90% viết bằng C, 10% viết bằng hợp ngữ).


C


Các chương trình ứng dụng chuyên nghiệp có can ác chương trình ứng dụng chun nghiệp có can
thiệp tới dữ liệu ở mức thấp như xử lí văn bản, xử


thiệp tới dữ liệu ở mức thấp như xử lí văn bản, xử


lí ảnh…


</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

1.1. Lịch sử NNLT C



1.1. Lịch sử NNLT C

(tiếp)(tiếp)


1978: C được giới thiệu trong phiên bản


1978: C được giới thiệu trong phiên bản đầu của đầu của
cuốn sách "


cuốn sách "<i>The C programming languageThe C programming language</i>" "
Sau đó, C được bổ


Sau đó, C được bổ sung thêm những sung thêm những tính năngtính năng


và khả năng mới


và khả năng mới  Đồng thời tồn tại nhiều Đồng thời tồn tại nhiều


phiên bản nhưng khơng tương thích nhau.


phiên bản nhưng khơng tương thích nhau.


Năm 1989, Viện tiêu chuẩn quốc gia của Hoa Kỳ


Năm 1989, Viện tiêu chuẩn quốc gia của Hoa Kỳ


(


(<i>American National Standards InstituteAmerican National Standards Institute</i> - ANSI) - ANSI)
đã công bố phiên bản chuẩn hóa của ngơn ngữ


đã cơng bố phiên bản chuẩn hóa của ngơn ngữ


C


</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>

1.1. Lịch sử NNLT C



1.1. Lịch sử NNLT C

(tiếp)(tiếp)


Tất cả các phiên bản của ngôn ngữ C hiện


Tất cả các phiên bản của ngôn ngữ C hiện naynay
đều tuân theo các mô tả đã được nêu ra trong



đều tuân theo các mô tả đã được nêu ra trong


ANSI C, sự khác biệt nếu có thì chủ yếu


ANSI C, sự khác biệt nếu có thì chủ yếu ở các ở các
thư viện bổ sung


thư viện bổ sung..


Hiện nay cũng có nhiều phiên bản của ngơn ngữ


Hiện nay cũng có nhiều phiên bản của ngơn ngữ


C khác nhau


C khác nhau, , gắn liền với một bộ chương trình gắn liền với một bộ chương trình
dịch cụ thể của ngơn ngữ C


dịch cụ thể của ngôn ngữ C: :


 <b>Turbo C++Turbo C++</b><sub> và Borland C++ của Borland Inc.</sub><sub> và Borland C++ của Borland Inc.</sub>


</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>

Bài 1:Tổng quan về C



Bài 1:Tổng quan về C


1.1


1.1.. Lịch sử phát triển ngơn ngữ lập trình C Lịch sử phát triển ngơn ngữ lập trình C
1.2. Các phần tử cơ bản của ngôn ngữ C



1.2. Các phần tử cơ bản của ngôn ngữ C


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


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


1.4. Biên dịch chương trình viết bằng C


1.4. Biên dịch chương trình viết bằng C


1.5. Bài tập


</div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9>

<b>1.2.1. Tập ký tự</b>



<b>1.2.1. Tập ký tự</b>



Chương trình C được tạo ra từ các phần


Chương trình C được tạo ra từ các phần


tử cơ bản là tập kí tự .


tử cơ bản là tập kí tự .


Các kí tự tổ hợp với nhau tạo thành các từ


Các kí tự tổ hợp với nhau tạo thành các từ


Các từ liên kết với nhau theo một quy tắc



Các từ liên kết với nhau theo một quy tắc


xác định để tạo thành các câu lệnh


xác định để tạo thành các câu lệnh


T


Từ các câu lệnh ừ các câu lệnh  tổ chức tổ chức thànhthành chương chương
trình.


</div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>

<b>1.2.1. Tập ký tự (tiếp)</b>



</div>
<span class='text_page_counter'>(11)</span><div class='page_container' data-page=11>

<b>1.2.2. Từ khóa (keyword)</b>



<b>1.2.2. Từ khóa (keyword)</b>



L


Là những từ có sẵn của ngơn ngữ và à những từ có sẵn của ngơn ngữ và


được sử dụng dành riêng cho những mục


được sử dụng dành riêng cho những mục


đích xác định.


đích xác định.


Các từ khóa trong C được sử dụng để



Các từ khóa trong C được sử dụng để


Đ


Đặt tên cho các kiểu dữ liệuặt tên cho các kiểu dữ liệu: : <b>intint</b>, , <b>floatfloat</b>, ,


<b>double</b>


<b>double</b>, , <b>charchar</b>, , <b>structstruct</b>, , <b>union…union</b>…


Mô tả các lệnh, các cấu trúc điều khiển:


Mô tả các lệnh, các cấu trúc điều khiển: <b>forfor</b>,,


<b>do</b>


<b>do</b>,,<b> while while</b>,,<b> switch switch</b>,,<b> case case</b>,,<b> if if</b>,,<b> else else</b>,,<b> break break</b>,,


<b>continue</b>


</div>
<span class='text_page_counter'>(12)</span><div class='page_container' data-page=12>

<b>1.2.2. Từ khóa (tiếp)</b>



<b>1.2.2. Từ khóa (tiếp)</b>



Một số từ khóa hay dùng


</div>
<span class='text_page_counter'>(13)</span><div class='page_container' data-page=13>

<b>1.2.3. </b>



<b>1.2.3. </b>

<b>Định danh</b>

<b>Định danh</b>

<b>/tên (</b>

<b>/tên (</b>

<b>Identifier </b>

<b>Identifier </b>

<b>)</b>

<b>)</b>




L


Là một dãy các kí tự dùng để gọi tên các à một dãy các kí tự dùng để gọi tên các
đối tượng trong chương trình.


đối tượng trong chương trình.


 Các đối tượng trong chương trình gồm có Các đối tượng trong chương trình gồm có


biến, hằng, hàm, kiểu dữ liệu… ta sẽ làm


biến, hằng, hàm, kiểu dữ liệu… ta sẽ làm


quen ở những mục tiếp theo.


quen ở những mục tiếp theo.


C



C

ó thể được đặt tên

<sub>ó thể được đặt tên</sub>

:

<sub>:</sub>



 BBởi ngơn ngữ lập trình (đó chính là các ởi ngơn ngữ lập trình (đó chính là các


từ khóa)


từ khóa)


</div>
<span class='text_page_counter'>(14)</span><div class='page_container' data-page=14>

<b>1.2.3. </b>




<b>1.2.3. </b>

<b>Định danh</b>

<b>Định danh</b>

<b>/tên </b>

<b>/tên </b>

<b>(tiếp)</b>

<b>(tiếp)</b>



Qui tắc đặt định danh:



Qui tắc đặt định danh:



 CChỉ được gồm có: hỉ được gồm có: <b>chữ cáichữ cái</b>, , <b>chữ sốchữ số</b> và và


dấu gạch dưới


dấu gạch dưới ““<b>__</b>”” ( (<i>underscoreunderscore</i>).).


 Bắt đầu của định danh phải là chữ cái Bắt đầu của định danh phải là chữ cái


hoặc dấu gạch dưới, không được bắt


hoặc dấu gạch dưới, không được bắt


đầu định danh bằng chữ số.


đầu định danh bằng chữ số.


 Định danh do người lập trình đặt Định danh do người lập trình đặt


khơng được trùng với từ khóa.


</div>
<span class='text_page_counter'>(15)</span><div class='page_container' data-page=15>

<b>1.2.3. </b>



<b>1.2.3. </b>

<b>Định danh</b>

<b>Định danh</b>

<b>/tên </b>

<b>/tên </b>

<b>(tiếp)</b>

<b>(tiếp)</b>




Ví dụ định danh/tên hợp lệ:


Ví dụ định danh/tên hợp lệ:


i, x, y, a, b, _function, _MY_CONSTANT,


i, x, y, a, b, _function, _MY_CONSTANT,


PI, gia_tri_1


PI, gia_tri_1


Ví dụ về định danh/tên không hợp lệ:


</div>
<span class='text_page_counter'>(16)</span><div class='page_container' data-page=16>

<b>1.2.3. </b>



<b>1.2.3. </b>

<b>Định danh</b>

<b>Định danh</b>

<b>/tên </b>

<b>/tên </b>

<b>(tiếp)</b>

<b>(tiếp)</b>



Cách thức đặt định danh/tên:


Cách thức đặt định danh/tên:


 Hằng số: chữ hoaHằng số: chữ hoa


 Các biến, hàm hay cấu trúc: Bằng chữ Các biến, hàm hay cấu trúc: Bằng chữ


thường.


thường.



 Nếu tên gồm nhiều từ thì ta nên phân cách Nếu tên gồm nhiều từ thì ta nên phân cách


các từ bằng dấu gạch dưới.


các từ bằng dấu gạch dưới.


</div>
<span class='text_page_counter'>(17)</span><div class='page_container' data-page=17>

<b>1.2.4. </b>



<b>1.2.4. </b>

<b>Các kiểu dữ liệu (data type)</b>

<b>Các kiểu dữ liệu (data type)</b>



Là một tập hợp các giá trị mà một dữ liệu


Là một tập hợp các giá trị mà một dữ liệu


thuộc kiểu dữ liệu đó có thể nhận được.


thuộc kiểu dữ liệu đó có thể nhận được.


Trên một kiểu dữ liệu ta xác định một số


Trên một kiểu dữ liệu ta xác định một số


phép toán đối với các dữ liệu thuộc kiểu dữ


phép toán đối với các dữ liệu thuộc kiểu dữ


liệu đó.


liệu đó.



<i>Ví dụ</i>


<i>Ví dụ</i>: Trong ngơn ngữ C có kiểu dữ liệu : Trong ngơn ngữ C có kiểu dữ liệu <b>intint</b>. .
Một dữ liệu thuộc kiểu dữ liệu


Một dữ liệu thuộc kiểu dữ liệu <b>int<sub>int</sub></b> thì:<sub> thì:</sub>


Là một số nguyên (


Là một số nguyên (<i>integerinteger</i>) )


Có thể nhận giá trị từ - 32768 (- 2


Có thể nhận giá trị từ - 32768 (- 21515) đến 32767 <sub>) đến 32767 </sub>


(2


</div>
<span class='text_page_counter'>(18)</span><div class='page_container' data-page=18>

<b>1.2.4. </b>



<b>1.2.4. </b>

<b>Các kiểu dữ liệu </b>

<b>Các kiểu dữ liệu </b>

<b>(tiếp)</b>

<b>(tiếp)</b>



Trên kiểu dữ liệu


Trên kiểu dữ liệu <b>intint</b> ngôn ngữ C định nghĩa các ngơn ngữ C định nghĩa các
phép tốn số học đối với số nguyên như sau:


phép toán số học đối với số nguyên như sau:





Đảo dấu:


Đảo dấu:

<b>-</b>

<b>-</b>



 Cộng: Cộng: <b>++</b>


 Trừ: Trừ: <b>--</b>


 Nhân: Nhân: <b>**</b>


</div>
<span class='text_page_counter'>(19)</span><div class='page_container' data-page=19>

<b>1.2.5. </b>



<b>1.2.5. </b>

<b>Hằng</b>

<b>Hằng</b>

<b> số (constant)</b>

<b> số (constant)</b>



Là đại lượng có giá trị khơng đổi trong


Là đại lượng có giá trị khơng đổi trong


chương trình.


chương trình.


Để giúp chương trình dịch nhận biết hằng


Để giúp chương trình dịch nhận biết hằng


ta cần nắm được cách biểu diễn hằng


ta cần nắm được cách biểu diễn hằng



trong một chương trình C.


</div>
<span class='text_page_counter'>(20)</span><div class='page_container' data-page=20>

<b>1.2.5. </b>



<b>1.2.5. </b>

<b>Hằng</b>

<b><sub>Hằng</sub></b>

<b> số (tiếp)</b>

<b><sub> số (tiếp)</sub></b>



<i>a. Biểu diễn hằng số nguyên:</i>
<i>a. Biểu diễn hằng số nguyên:</i>


 Dạng thập phân:Dạng thập phân:


Giá trị số dưới hệ đếm cơ số 10 thông thường
Giá trị số dưới hệ đếm cơ số 10 thơng thường
Ví dụ:


Ví dụ: 2007, 396 2007, 396


 Dạng thập lục phân:Dạng thập lục phân:


Giá trị số dưới dạng hệ đếm cơ số 16 và thêm tiền tố
Giá trị số dưới dạng hệ đếm cơ số 16 và thêm tiền tố <b>0x0x</b>


Ví dụ: 0x7D7, 0x18C.
Ví dụ: 0x7D7, 0x18C.


 Dạng bát phân:Dạng bát phân:


</div>

<!--links-->

×