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

Tài liệu Giới thiệu về ngôn ngữ C docx

45 1,4K 0
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ề ngôn ngữ C++
Trường học Trường Đại Học
Chuyên ngành Ngôn Ngữ Lập Trình
Thể loại Bài viết
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 45
Dung lượng 301,5 KB

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

Nội dung

Bằng cách kết hợp một cú pháp hiệu quả với kiểu style lập trình tốt bạn có thể tạo những chơng trình mạnh thực hện các phép toán phức tạp... Để lập trình với các máy tính cổ này, các kỹ

Trang 1

Chơng 1

Giới thiệu về ngôn ngữ C++

Khả năng tổ chức và xử lý thông tin là yếu tố chính dẫn đến thành công trong thời đại hiện nay Các máy tính đợc thiết kế để kết nối và xử lý một lợng lớn các thông tin nhanh và hiệu quả Tuy nhiên chúng không thể làm đợc bất

cứ việc gì khi mà một ngời nào đó cha nói với chúng những gì phải làm Những công việc mà ngời ta yêu cầu phải thực hiện, thì đó chính là những cái

mà C++ có thể làm C++ là một ngôn ngữ lập trình bậc cao, nó cho phép những kỹ s phần mềm trao đổi thông tin một cách hiệu quả đối với máy tính.C++ là một ngôn ngữ có khả năng thích ứng và có tính mềm dẻo cao Từ khi nó đợc tạo ra năm 1980, nó đã đợc sử dụng rộng rãi với các chơng trình bao gồm cơ sở cho các bộ vi điều khiển, các hệ thống điều hành, các ứng dụng,

và đồ hoạ C++ nhanh chóng trở thành một ngôn ngữ lập trình đợc a chuộng

Có một sự yêu cầu lớn đối với những ngời làm việc với máy tính là họ phải có khả năng yêu cầu làm những công việc mà họ cần, và C++ cho phép họ làm việc nhanh chóng và hiệu quả

Sơ lợc về lịch sử phát triển của C++

Năm 1970 hai nhà lập trình là Brian Kemighan và Dennis Ritchie tạo ra một ngôn ngữ mới đợc gọi là C (Gọi là ngôn ngữ C bởi vì C đứng trớc một ngôn ngữ cũ mà họ sử dụng có tên là B) C đợc thiết kế với một mục đích chủ yếu là: viết hệ thống điều hành Ngôn ngữ này rất đơn giản, mềm dẻo và nó sớm đợc sử dụng rộng rãi cho nhiều dạng chơng trình khác nhau Cuối cùng C

đã nhanh chóng trở thành một trong những ngôn ngữ thông dụng nhất trên thế giới

Tuy nhiên ngôn ngữ C có một vấn đề chính, nó là một ngôn ngữ hớng đối tợng, nghĩa là khi thiết kế một chơng trình C, ngời lập trình bắt đầu với việc mô tả dữ liệu và viết các thủ tục để thao tác với các dữ liệu đó

Cuối cùng những ngời lập trình khám phá ra rằng ngững quá trính trên nó làm cho chơng trình trở lên rõ ràng và dễ hiểu nếu họ có thể đa vào một bunch

dữ liệu và nhóm chúng vào với nhau với các thao tác mà làm việc trên các dữ liệu đó Nh vậy một nhóm đợc gọi là một object (đối tợng) hoặc class (lớp)

Thiết kế các chơng trình bằng cách thiết kế các class đợc biết đến nh thiết kế hớng đối tợng (object-oriented design _ OOD)

Năm 1980 Bjarne Stroustrup bắt đầu làm việc trên một ngôn ngữ mới gọi là

“C với class” Ngôn ngữ này cải tiến từ ngôn ngữ C bằng cách thêm một số đặc

điểm mới, và đặc biệt quan trọng là về class Ngôn ngữ này đợc cải tiến, bổ sung, và cuối cùng nó trở thành C++

C++ với những thành công của nó, trên thực tế là nó cho phép những ngời lập trình tổ chức và xử lý thông tin hiệu quả hơn hầu hết các ngôn ngữ khác Hơn nữa, nó đợc xây dựng trên những việc đã đợc làm với ngôn ngữ C Trên thực tế hầu hết các chơng trình C có thể chuyển đổi sang chơng trình C++ với

Trang 2

một chút thay đổi Những chơng trình này thờng không sử dụng hết tất cả những đặc điểm mới của C++, nhng chúng vẫn có thể thực hiện đợc công việc Trong trờng hợp này, C++ cho phép các nhà lập trình xây dựng dựa trên những nền tảng tồn tại của mã của C.

Sự tổ chức của C++

C++ đợc thiết kế nh là một cầu nối giữa những ngời lập trình và máy tính raw ý tởng chính là cho phép ngời lập trình tổ chức một chơng trình theo một cách mà họ có thể dễ dàng hểu đợc chúng Chơng trình dịch sau đó dịch từ ngôn ngữ sang dạng mà máy có thể sử dụng

Các chơng trình máy tính bao gồm hai phần chính là: dữ liệu và các lệnh Các máy tính tác động một chút hoặc không có sự tổ chức(organization) trên hai phần này Sau cùng, các máy tính đợc thiết kế một cách chung nhất có thể

đợc Một ý tởng cho các nhà lập trình là tác động lên tổ chức trên máy tính của

họ và không phải bằng cách khác

Dữ liệu trong máy tính đợc chứa nh một chuỗi bao gồm các byte C++ sử dụng những byte này để chứa các dữ liệu có ích Các khái báo dữ liệu đợc dùng bởi những ngời lập trình để biểu thị thông tin mà họ đang làm việc Ví dụ:

int total; //Total number accounts

Khai báo trên yêu cầu C++ rằng bạn muốn dùng một phần bộ nhớ của máy tính để chứa một số nguyên với tên là total Bạn có thể cho phép chơng trình dịch lựa chọn những byte đặc biệt nào đó của bộ nhớ để sử dụng

Biến total là một biến đơn giản Nó có thể chỉ chứa duy nhất một số nguyên

và miêu tả duy nhất với một total Một chuỗi các số nguyên có thể đợc tổ chức vào trong một mảng Mặt khác, C++ sẽ kết nối các chi tiết, tác động lên (imposing) sự tổ chức trên bộ nhớ của máy tính

int balance[1001; //Balance (in cents) for all 100 accounts

Cuối cùng, có thêm các kiểu dữ liệu phức hợp Ví dụ, một hình chữ nhật có thể có chiều rộng, độ cao, màu và mẫu tô C++ cho phép bạn tổ chức bốn thuộc tính trên vào một nhóm gọi là một cấu trúc (structure).

struct rectangle {

int width; //Width of rectangle in pixels

int height; //Height of rectangle in pixels

color_type color; //color of the rectangle

fill-type fill; //Fill pattern

};

Tuy nhiên, dữ liệu chỉ là một phần của chơng trình, ngoài ra bạn còn cần đến các lệnh Đến mức độ mà máy tính đợc quan tâm, nó không biết một chút gì về cách sắp xếp của các lệnh Nó chỉ biết rằng nó đang làm gì với lệnh hiện tại và tại đâu nó có lệnh kế tiếp

C++ là một ngôn ngữ bậc cao, nó cho phép bạn viết một câu lệnh bậc cao nh:

area = (base*height)/2.0; // Compute area of triangle

Trang 3

Chơng trình dịch dịch lệnh này vào một chuỗi các chỉ dẫn (lệnh) của máy Các kiểu lệnh này đợc gọi là một assignment statement Nó đợc sử dụng để tính

và chứa các giá trị của một biểu thức số học

Bạn cũng có thể dùng control statement (lệnh điều khiển) để điều khiển

thứ tự của quá trình xử lý Các lệnh nh if và switch làm cho máy tính tạo các

quyết định dơn giản Các lệnh có thể đợc lặp lại bằng cách dùng vòng lặp nh

while và for.

Các nhóm của các lệnh có thể nằm trong các hàm Vì vậy bạn chỉ cần viết một hàm với mục đích chung để vẽ hình chữ nhật và sau đó có thể sử dụng lại hàm đó những nơi mà bạn muốn vẽ hình chữ nhật C++ cung cấp một bộ phong phú các hàm tiêu chuẩn (standard function) những hàm mà thực hiện

các chức năng thông thờng nh tìm kiếm (searching), phân loại (sorting), nhập vào (input), và đa ra (output)

Một bộ các hàm quan hệ có thể đợc nhóm với nhau để tạo ra các modul, và

các modul đợc nối với nhau tạo thành các chơng trình.

Một trong những mục tiêu chính của ngôn nhữ C++ là tổ chức các lệnh hợp thành các phần để có thể sử dụng lại đợc Cuối cùng, bạn có thể viết một chơng trình nhanh hơn nếu bạn “mợn” hầu hết các mã của bạn ở một nơi nào đó khác Nhóm các modul có khả năng dùng lại có thể kết hợp vào trong một th viện Ví

dụ, nếu bạn cần một bộ sắp xếp thông thờng, bạn có thể dùng các hàm chức năng qsort từ th viện và liên kết nó với chơng trình của bạn

Một máy tính chia thế giới thành dữ liệu và các lệnh Trong cả một thời gian dài, các ngôn ngữ bậc cao nh C vẫn giữ nguyên cách phân chia này Trong ngôn ngữ C, bạn có thể định nghĩa dữ liệu hoặc viết các lệnh nhng không thể kết hợp cả hai

Một sự cải tiến chính trong C++ là ý tởng kết hợp dữ liệu và lệnh lại với nhau trong một cấu trúc gọi là lớp (class) hoặc đối tợng (object) Lập trình h-ớng đối tợng cho phép nhóm dữ liệu với các lệnh thao tác trên dữ liệu đó Khái niệm này đợc nâng lên một bớc nữa trong C++: nó cho phép ta nhận đợc các class mới từ những cái đã tồn tại

Đặc điểm cuối này là một tính năng rất mạnh Nó cho phép bạn xây dựng các class phức tạp từ những class đơn giản hơn, nhỏ hơn Nó cũng cho phép bạn định nghĩa một class trìu tợng (abstract), cơ bản và sau đó tạo ra (derive) các class chi tiết hơn từ các class ban đầu Ví dụ, một class trìu tợng về hình dạng có thể đợc dùng để định nghĩa các hình dạng nh: hình chữ nhật, tam giác, hình tròn

Tổ chức (organization) là một mấu chốt để viết các chơng trình hoàn hảo

Nh trong cuốn sách này, bạn biết rằng bảng nội dung ở đằng trớc, bảng mục lục ở đằng sau, nó là một cách mà các quyển sách đợc tổ chức Tổ chức làm cho quyển sách này sử dụng đợc dễ hơn

Ngôn ngữ C++ cho phép bạn tổ chức các chơng trình của mình dùng cú pháp (syntax) đơn giản mà hiệu quả Cuốn sách này sẽ đi sâu vào cú pháp của C++ và hớng dẫn bạn định kiểu các quy tắc để tạo các chơng trình tin cậy và

dễ đọc Bằng cách kết hợp một cú pháp hiệu quả với kiểu (style) lập trình tốt bạn có thể tạo những chơng trình mạnh thực hện các phép toán phức tạp

Trang 4

Cách học ngôn ngữ C++

Chỉ có duy nhất một cách học viết chơng trình là phải viết các chơng trình Bạn sẽ học đợc rất nhiều bằng cách viết và gỡ rối (debugging) các chơng trình hơn là khi mà bạn đã đọc song cuốn sách này (than you ever will by reading this book) Cuốn sách này bao gồm nhiều bài tập về lập trình, và bạn cố gắng làm đợc càng nhiều trong số chúng càng tốt Khi làm các bài tập bạn phải luôn nghĩ đến kiểu chơng trình hoàn hảo nhất, phải luôn luôn chú thích (comment) các chơng trình của bạn, thậm chí cả khi bạn đang làm bài tập đó cho riêng mình Sự chú thích giúp bạn tổ chức các ý tởng của mình, và chú thích các ch-

ơng trình của bạn là một cách luyệnn tập tôt nhất khi bạn đi vào thực tế (“real world”)

Bạn hãy đừng nghĩ rằng, “Tôi chỉ viết những chơng trình này cho riêng mình, vì vậy tôi không cần chú thích chúng.” Trớc tiên, những mã mà bạn thấy rất rõ ràng khi viết, nó có thể thờng rất rối và khó hiểu khi bạn xem lại một tuần sau đó Viết các câu chú thích, nó còn giúp bạn tổ chức các ý tởng của mình (Nừu bạn có thể viết ra một ý tởng bằng tiếng Anh, thì bạn mới chỉ hoàn thành một nửa công việc viết nó bằng C++)

Cuối cùng, các chơng trình có xu hớng xa hơn là chúng ta mong đợi Một lần tôi viết một chơng trình đợc thiết kế chỉ làm việc duy nhất trên một máy tính tại Caltech Chơng trình phụ thuộc vào hệ thống rất cao Bởi vì tôi là ngời duy nhất sẽ dùng chơng trình, chơng trình sẽ in ra một thông báo theo sau nếu tôi có một dòng lệnh sai:

?LSTUIT User is a twit

Vài năm sau đó tôi là một sinh viên tại trờng đại học Syracuse Ngời th ký tại trờng Computer Science cần một chơng trình tơng tự nh chơng trình danh sách của tôi ở Caltech, vì vậy tôi sửa chơng trình của tôi cho cô ta Thật không may, tôi đã quên cái thông báo lỗi nhỏ bé buồn cời đó của tôi

Tởng tợng rằng nó sẽ khủng khiếp nh thế nào khi tôi bớc vào văn phòng của Computer Science và bị hỏi bởi ngời th ký trởng Ngời đàn bà này có nhiều quyền lực đến mức mà bà ta có thể làm cho trởng khoa phải kính nể Cô ta nhìn tôi và nói, “Ngời sử dụng là đần, hả? (User is a twit, huh?)” Rất may mắn là cô ta có tính hài hớc, hoặc ngày nay tôi không ở đây nữa

Rải rắc suốt cuốn sách này là các chơng trình bị “đứt quãng” (“broken”),

và bỏ thời gian để tìm ra tại sao chúng không làm việc Thông thờng những vấn đề này rất đơn giản nh dấu chấm phẩy không đúng chỗ, hoặc dùng = thay cho == Những chơng trình này giúp bạn học cách tìm các lỗi ở các chơng trình nhỏ, từ đó bạn làm tơng tự ở các chơng trình lớn, và bạn sẽ tạo các lỗi, đ-

ợc luyện tập để tìm chúng

Trang 5

Chơng 2

Các máy tính là các công cụ mà có thể chứa, tổ chức và xử lý một lợng lớn thông tin Tuy nhiên chúng không thể làm đợc bất cứ cái gì khi mà ai đó cha đ-

a cho chúng những lệnh chi tiết

Thông tin với các máy tính không dễ dàng Nó yêu cầu các lệnh chính xác

và chi tiết Cuộc sống có dễ dàng hơn không nếu chúng ta có thể viết chơng trình bằng tiếng Anh? Tiếp theo chúng ta yêu cầu máy tính, “Thêm vào tất cả các kiểm tra và các deposit của tôi và nói với tôi toàn bộ,” và máy sẽ cân bằng (balancce) các kiểm tra của chúng ta (checkbook)

Nhng tiêng Anh là một ngôn ngữ rất hạn chế nếu bạn phải viết các câu lệnh chính xác Ngôn ngữ hoàn toàn không rõ nghĩa và không chính xác Grace Hopper, một bà nổi tiếng về tính toán (computing), một lần bình luận về các chỉ dẫn ở hộp dầu gội đầu:

Chính vì vậy, có một nhóm ngời tập trung thời gian cố gắng viết tiếng Anh chính xác Họ đợc gọi là chính phủ, và các văn bản họ viết đợc gọi là quy định của chính phủ Một cách đáng tiếc, trong sự cố gắng để làm cho các quy định chính xác, chính phủ đã làm cho các văn bản hầu hết rất khó đọc Nếu bạn đã từng đọc quyển hớng dẫn kèm theo với biểu thuế của bạn, thì bạn sẽ thấy đợc tiếng Anh chính xác sẽ nh thế nào

Thậm chí, ngay cả với những phụ từ không cần thiết mà chính phủ thêm vào thì các vấn đề có thể xảy ra Một vài năm trớc đây, California thông qua

điều luật yêu cầu tất cả những ngời đi xe máy phải đeo mũ bảo hiểm Ngay sau

đó điều luật này có hiệu lực, một cảnh sát dừng một ngời không đeo mũ bảo hiểm lại, ngời đàn ông đề nghị cảnh sát xem kỹ hơn điều luật

Điều luật có hai điểm: 1) Ngời đi xe máy phải có mũ bảo hiểm đợc xác nhận là chống đợc va chạm và 2) Nó phải đợc thít một cách chắc chắn Ngời cảnh sát không thể phạt anh ta khi mà anh ta có mang mũ và thít chắc chắn vào

đầu gối

Vì những vấn đề hạn chế đó của tiếng Anh, nên nó không thể trở thành một ngôn ngữ máy tính đợc Vậy bây giờ chúng ta sẽ trao đổi thông tin với máy tính nh thế nào?

Các máy tính đầu tiên trị giá hàng triệu dollar, trong khi cùng thời gian đó thì lơng của một ngời lập trình thành thạo (good) là 15,000 dollar một năm Các nhà lập trình bắt buộc phải viết chơng trình bằng một ngôn ngữ mà tất cả

Trang 6

các lệnh đợc chuyển thành chuỗi các con số, gọi là ngôn ngữ máy Ngôn ngữ này có thể đa trực tiếp vào trong máy tính Một kiểu chơng trình ngôn ngữ máy

có dạng nh sau:

1010 1111

0011 0111

0111 0110

…và tiếp tục nh vậy cho hàng trăm lệnh

Trong khi máy “nghĩ” với các con số mà con ngời không thể Để lập trình với các máy tính cổ này, các kỹ s phần mềm đã phải viết ra những chơng trình của họ, sử dụng một ngôn ngữ đơn giản, một ngôn ngữ mà mỗi từ sẽ đặc trng (stand for) cho một lệnh đơn Nó đợc gọi là ngôn ngữ assembly, bởi vì những

ngời lập trình phải dịch bằng tay, hoặc tổ hợp (assemble) mỗi dòng ra mã máy Một kiểu chơng trình ngôn ngữ assembly có thể giống nh sau:

Program Translation

MOV A,47 1010 1111

ADD A,B 0011 0111

HALT 0111 0110

…và tiếp tục nh vậy cho hàng trăn lệnh

Quá trình này đợc minh hoạ bằng hình 2.1

Hình 2-1

Quá trình dịch là một nhiệm vụ buồn tẻ và chán ngắt, nó đòi hỏi phải kiên trì Một kỹ s phần mềm đã xét thấy đây là công việc hoàn chỉnh cho một máy tính, vì vậy anh ta viết một chơng trình thực hiện công việc này một cách tự

động, nó đợc gọi là assambler

Anh ta trình bày sáng tạo mới này lên ông chủ và ngay lập tức bị ca cẩm

“Anh dám nghĩ ngay cả việc sử dụng một chiếc máy đắt nh vậy cho một nhiệm

vụ thuộc văn phòng?” Đa ra trị giá thời gian một tiếng của máy tính để đổi lại trị giá thời gian một tiếng của ngời lập trình, điều này không phải là một quan

điểm không có lý

Assembly

language

Assembly (translation)

Machine LanguageProgram

Trang 7

May thay, thời gian qua đi thì giá trị của ngời lập trình đợc tăng lên và giá trị của máy tính giảm đi Vì vậy nó sẽ mang lại hiệu quả hơn khi các nhà lập trình viết các chơng trình bằng ngôn ngữ assembly và sử dụng một chơng trình gọi là assembler để dịch chơng trình đó ra ngôn ngữ máy.

Ngôn ngữ assembly tổ chức chơng trình theo một cách mà các ngời lập trình dễ hiểu hơn Tuy nhiên, máy sẽ khó khăn hơn khi sử dụng chơng trình này Chơng trình phải đợc dịch trớc khi máy có thể thực hiện chúng Đây là sự khởi đầu cho một xu hớng Các ngôn ngữ lập trình ngày càng trở lên thuận tiện hơn cho những ngời lập trình sử dụng và nó cũng bắt đầu yêu cầu ngày càng nhiều thời gian của máy tính để dịch chúng ra dạng mà các máy tính có thể sử dụng

Qua hàng năm các ngôn ngữ bậc cao đã đợc phát minh ra Những ngôn

ngữ này cố gắng để cho những ngời lập trình viết ra những chơng trình mà họ

dễ dàng hiểu đợc và nó cũng đủ rõ ràng và đơn giản để các máy tính có thể hiểu

Các ngôn ngữ bậc cao ban đầu đợc thiết kế để xử lý (handle) các kiểu đặc trng của các ứng dụng FORTRAN đợc thiết kế dùng cho kỹ thuật, COBOL, để viết các báo cáo thơng mại, và PASCAL dùng cho sinh viên (Số lớn trong những ngôn ngữ này phát triển lớn hơn là khi nó đợc sử dụng ban đầu Nh có

đồn đại rằng Nicklaus Wirth đã nói, “Nếu tôi biết rằng PASCAL trở lên thành công nh vậy, thì tôi đã cẩn thận hơn khi thiết kế chúng.”)

Sau đó, Brian Kemighan và Dennis Ritchie phát triển ngôn ngữ C và Bjarne Stroustrup chuyển nó thành C++

Các chơng trình từ khái niệm đến thực hiện

Các chơng trình C++ đợc viết bằng ngôn ngữ bậc cao sử dụng các chữ cái, các chữ số, và các biểu tợng khác mà bạn thấy trên bàn phím Trên thực tế máy tính thực hiện một ngôn ngữ bậc rất thấp gọi là macbine code (một chuỗi các

con số) Vì vậy, trớc khi một chơng trình có thể đợc sử dụng, nó phải qua một vài sự biến đổi

Các chơng trình đợc xuất phát nh là một ý tởng trong đầu của nhà lập trình Anh ta viết những ý tởng của mình bằng một trình soạn thảo (text editor) trong

một file gọi là file nguồn (sourcefile) hoặc mã nguồn (source code) File này

đ-ợc biến đổi bằng một trình biên dịch (compiler) ra một file đối tợng

(objectfile) Tiếp theo một chơng trình gọi là trình liên kết (linker) đa các file

đối tợng này, kết hợp nó với các thủ tục đợc định nghĩa trớc từ th viện tiêu chuẩn (standard library), và tạo một chơng trình có thể thực hiện đợc (một bộ

các lệnh của ngôn ngữ máy) Trong các phần tiếp theo, bạn sẽ thấy đợc những dạng khác nhau làm việc với nhau để tạo một chơng trình cuối cùng

Hình 2-2 đa ra những bớc mà bắt buộc phải thực hiện để chuyển đổi một chơng trình viết bằng ngôn ngữ bậc cao ra một chơng trình mà có thể thực hiện

đợc

Trang 8

Hình 2-2 Sự chuyển đổi của một ngôn ngữ bậc cao ra chơng trình

Wrappers

Rất may mắn là bạn không phải chạy bản thân chơng trình biên dịch, assembler, trình liên kết Hầu hết các trình biên dịch C++ dùng các chơng trình wrapper“ ”, chơng trình mà xác định những công cụ nào cần thiết để chạy nối tiếp nhau

Một số hệ thống lập trình thậm chí còn đi xa hơn và cung cấp cho những ngời lập trình một môi trờng phát triển khép kín (IDE-integrated development environment) IDE bao gồm một trình soạn thảo, trình biên dịch, trình liên kết quản lý project, trình gỡ rối

and more in one convenient package

Cả Borland và Microsoft cùng cung cấp các IDE với các trình biên dịch của họ

Mã bậc cao

Chương trình ngôn ngữ assembly Trình biên dịch

Mã đối tượng

Trình liên kết

Chương trình có khả

năng thực hiện Assembler

Thư viện

Trang 9

lệnh Nói một cách khác, bạn gõ một lệnh và trình biên dịch chuyển từ mã nguồn của bạn thành một chơng trình có thể thực hiện đợc Một kiểu trình biên dịch khác đợc chứa trong một IDE.

Hầu hết các hệ thống UNIX dùng các trình biên dịch gõ dòng lệnh Một vài trình biên dịch kiểu IDE sẵn có cho UNIX, nhng nó rất ít Mặt khác, hầu hết các trình biên dịch sử dụng với MS-Dos và Windows chứa một môi trờng phát triển khép kín

For command-line die-hards, these compilers do contain command-line compilers as well

Tạo một chơng trình

dùng một trình biên dịch dòng lệnh

Trong phần này bạn sẽ xem xét kỹ từng bớc một quá trình cần thiết để tạo một chơng trình dùng một trình biên dịch dòng lệnh Chỉ dẫn đợc đa ra cho sử dụng một một trình biên dịch UNIX chung, trình biên dịch Free Software Foundation's g++, Turbo-C++, Borland C++, và Microsoft Visual C++

Tuy nhiên, nếu bạn đang sử dụng một chơng trình dịch Borland hoặc Microsoft bạn có thể muốn nhảy đến đoạn dùng IDE

However, if you are using a Borland or Microsoft compiler, you might want to skip ahead to the section on using the IDE

Bớc 1:

Nó rất dễ dàng quản lý nếu bạn tạo một th mục riêng cho mỗi chơng trình

mà bạn đang làm việc Trong trờng hợp này bạn sẽ tạo một th mục hello để chứa chơng trình hello của bạn

Trang 10

Những ngời sử dụng MS-DOS/Windows không nên sử dụng chơng trình

xử lý word nh Microsoft Word hoặc WordPerfect để viết chong trình của mình Các chơng trình xử lý word thêm vào file các mã tạo dạng làm xáo trộ trình biên dịch Bạn phải sử dụng trình soạn thảo văn bản nh trình soạn thảo MS-DOS vì những trình soạn thảo này có khả năng soạn thảo các file ASCII

Bớc 3: Chạy trình biên dịch

Trình biên dịch chuyển đổi file nguồn bạn vừa tạo ra chơng trình có thể

th-ợc hiện đth-ợc Mỗi trình biên dịch có một dòng lệnh khác nhau Các dòng lệnh cho hầu hết các trình biên dịch phổ biến đợc liệt kê dới đây

Hầu hết các trình biên dịch UNIx-based theo một tiêu chuẩn chung giống nhau Trình biên dịch C++ đợc gọi là cc Để dịch chơng trình hello, chúng ta phải cần lệnh sau:

% CC -g -ohello hello.cc

Trong đó, chọn –g tạo khả năng gỡ rối (Trình biên dịch thêm các thông tin phụ vào chơng trình để làm cho chúng gỡ rối đợc dễ hơn.) Thay đổi –hello nói với trình biên dịch rằng chơng trình đợc gọi là hello, và cuối cùng hello.cc là tên của file nguồn Xem sổ tay trình biên dịch của bạn cho các chi tiết với tất cả các lựa chọn có thể Có một số trình biên dịch C++ khác nhau cho UNIX, vì vậy dòng lệnh của bạn có thể khác chút ít

Free Software Foundation's g++ Compiler

The Free Software Foundation, the GNU people, publishes a number of highquality programs (See the glossary entry "Free Software Foundation" for information on how to get their software.) Among their offerings is a C++ compiler called g++

Để dịch một chơng trình dùng trình biên dịch g++, dùng dòng lệnh sau:

% g++ -g -Wall -ohello hello.cc

Thêm vào thay đổi -Wall bật lên tất cả các cảnh báo

Borland's Turbo C++ in MS-DOS

Hãng quốc tế Borland tạo một trình biên dịch low-cost MA-DOS C++ gọi

là Turbo-C++ Trình biên dịch này rất lý tởng để học Dòng lệnh cho Turbo-C++ là:

C:> tcc -ml -v -N -P -w -ehello hello.cpp

Thông số –ml yêu cầu Turbo-C++ để dùng mô hình bộ nhớ rộng (Máy PC này có rất nhiều mô hình bộ nhớ khác nhau có thể đợc dùng khi tạo các chơng trình Cuốn sách này sẽ không nói về những bộ nhớ này Thay vì thế, chúng ta

có quan điểm, “Sử dụng mô hình bộ nhớ rộng và không phải lo nghĩ gì cho đến khi bạn trở thành chuyên gia lập trình.”)

Thay đổi –v nói với Turbo-C đa thông tin gỡ rối vào chơng trình Cảnh báo đợc bật lên với –w, kiểm tra ngăn xếp bằng –N Trên thực tế trình biên dịch sẽ dịch cả C và C++ We force a C++ compile using the -P switch Cuối cùng, -ehello nói với Turbo-C++ để tạo một chơng trình có tên là hello, và

hello.ccp là tên của file nguồn Xem sổ tay tham khảo Turbo-C++ để có danh sách hoàn chỉnh các lựa chọn

Trang 11

Borland C++ in MS-DOS and Window

Cùng với Turbo-C++, hãng quốc tế Borland cũng tạo một trình biên dịch chuyên gia hoàn hảo cho MS-DOS/Windows gọi là Borland C++ Dòng lệnh của nó là:

C:> bcc -ml -v -N -P -w -ehello hello.cpp

Các lựa chọn dòng lệnh trong Turbo-C++ và Borland C++ là giống nhau

Microsoft Visual C++

Microsoft Visual C++ là một trình biên dịch khác cho MS-DOS/Windows

Nó không mạnh và hoàn hảo nh là bản tơng ứng Borland của nó Nhng nó sẽ dịch hầu hết các chơng trình trong cuốn sách này (Version 1.5 fails to handle templates and exceptions.) Để dịch, dùng dòng lệnh sau:

Chọn /AL yêu cầu máy tính dùng mô hình bộ nhớ rộng Gỡ rối đợc bật lên với lựa chọn /Zi và cảnh báo với lựa chọn /W1

và kết hợp chúng trong một khối ngăn lắp cho nhà lập trình

Since development environments tend to change, the particular version you use may require slightly different keystrokes

Bớc 1:

Nó rất dễ dàng quản lý nếu bạn tạo một th mục riêng cho mỗi chơng trình

mà bạn đang làm việc Trong trờng hợp này bạn sẽ tạo một th mục HELLO để chứa chơng trình hello của bạn

Trong MS-DOS

C: MKDIR HELLO

C: CD HELLO

Bớc 2: gõ, dịch và chạy chơng trình của bạn

Mỗi IDE khác nhau một chút, vì vậy chúng ta xét đến các lệnh riêng biệt cho mỗi loại:

Turbo-C++

1 khởi động Turbo-C IDE với dòng lệnh:

C: TC

Trang 12

2 Dùng các lệnh Options/Compiler/Code Generation để lấy ra hộp hội thoại Code Generation, nh trên hình 2-3 Đổi mô hình nhớ (model memory) về dạng rộng.

3 Dùng các lệnh Option/Compiler Entry/Exit để bật kiểm tra ngăn xếp,

nh trong hình 2-4

Hình 2-3 Hộp hội thoại Code Generation

Hình 2-4 Hộp hội thoại Entry/Exit Code Generation

4 Sử dụng lệnh Option/Compiler/Messages/Display để hiện ra hộp hội thoại Compiler Messages nh ở hình 2-5 Chọn All để hiện lên tất cả các cảnh báo

5 Sử dụng lệnh Option/Save để nghi tất cả các lựa chọn bạn đã dùng

Trang 13

Hình 2-5 Hộp hội thoại Conpiler Messages

6 Dùng hộp hội thoại Open Project File để chọn một file project Trong ờng hợp này, file project của bạn có tên là HELLO.PRJ Màn hình nên có dạng

tr-giống nh hình 2-6 khi bạn kết thúc

Hình 2-6 Hộp hội thoại Open Project File

7 Nhấn phím Insert để cộng một file vào project File mà bạn muốn cộng

HELLO.CCP nh trên hình 2-7.

Trang 14

Hình 2-7 Hộp hội thoại Add to Project List

8 Nhấn ESC để thoát ra khoải vòng “cộng file”

9 Nhấn phím mũi lên để nhẩy qua một dòng Dòng với hello.cpp bây giờ

đ-ợc sáng lên nh hình 2-8

Hình 2-8 "Hello" project

10 Nhấn Return để soạn thảo file này

11 Gõ vào những mã sau:

Trang 15

Hình 2-9 Kết thúc project

12 Sử dụng lệnh Run/Run để thực hiện chơng trình

13 Sau khi chơn trình chạy, điều khiển quay về IDE Điều này có nghĩa là bạn không thể xem kết quả chơng trình của mình Để xem nó bạn phải chuyển

về màn hình ngời sử dụng bằng cách sử dụng lệnh Windows/User

Nhấn một phím bất kỳ nó sẽ trả bạn về màn hình IDE Hình 2-10 hiển thị kết quả đa ra của chơng trình

14 Khi kết thúc, bạn có thể ghi chơng trình của mình với lệnh File/Save

15 Để thoát khỏi IDE, dùng lệnh File/Quit

Hình 2-10 User screen

Trang 16

Borland C++

1 Tạo một th mục HELLO để chứa các file cho chơng trình hello của chúng

ta Bạn có thể tạo th mục bằng cách sử dụng chơng trình quản lý file của Windows hoặc gõ dòng lệnh sau tại dấu nhắc của MS-DOS:

5 Nhấn nút OK để quay về hội thoại New Target

6 Nhấn Alt-F10 để hiển thị menu phụ nh trong hình 2-14

7 Chọn Edit Node Attributes để hiển thị hội thoại nh trong hình 2-15 Trong ô trống Style Sheet, chọn mục "Debug Info and Diagnostics." Nhấn OK để trở lại cửa sổ chính

Hình 2-11 Màn hình chính của Borland C++

Trang 17

H×nh 2-12 Hép héi tho¹i New Target

H×nh 2-13 Hép héi tho¹i Advenced Options

Trang 18

H×nh 2-14 Menu phô Target Options

H×nh 2-15 Hép héi tho¹i Node Attributes

Trang 19

8 Vào phần hội thoại Project Optión bằng cách chọn mục Options/Project Options Nhẩy xuống mục Compiler và nhấn lên dấu "+" để mở rộng các mục chọn.

Quay về phần chọn kiểm tra tràn ô nhớ nh trong hình 2-16 Nhấn OK để ghi các lựa chọn này

9 Chọn OK để quay về cửa sổ chính Nhấn phím mũi tên xuống để chọn mục hello[.cpp] trong project (xem trong hình 2-17)

10 Nhấn Return để bắt đầu soạn thảo file hello.cpp Gõ các mã dới đây:

Khi kết thúc, màn hình của bạn giống nh hình 2-18

11 Dịch và chạy chơng trình bằng cách chọn mục menu Debug/Run

Ch-ơng trình sẽ chạy và hiển thị “Hello World” trong cửa sổ nh biểu diễn trong hình 2-19

Hình 2-16 Hôp hội thoại Project Options

Trang 20

H×nh 2-17 Hello Project

Trang 21

Hình 2-18 Chơng trình "Hello World"

Hình 2-19 "Hello World" sau khi thực hiện

Microsoft Visual C++

1 Tạo một th mục HELLO để chứa các file cho chơng trình hello của chúng

ta Bạn có thể tạo th mục bằng cách sử dụng chơng trình quản lý file của Windows hoặc gõ dòng lệnh sau tại dấu nhắc của MS-DOS:

Trang 22

4 Visual C++ vào hội thoại cho phép bạn đặt tên các file nguồn trong project này (xem hình 2-22) Trong trờng hợp này chúng ta chỉ có file hello.cpp Nhấn vào Add để gõ vào tên trong project và nhấn Close để xác nhận với Visual C++ rằng không có thêm file nào nữa trong chơng trình.

5 Chọn Options/Project Options để hiển thị hội thoại Project Options nh trong hình 2-23

Nhấn lên nút Compiler để thay đổi các lựa chọn trình biên dịch

6 Nhẩy xuống mục Custom Options trong Category và thay đổi mức độ cảnh báo thành 4 nh trong hình 2-24

7 Thay đổi loại (category) Memory Model và thay đổi mô hình bộ nhớ về

Kết quả, nên giống nh trong hình 2-26

10 Dùng mục menu File/Save As để ghi các file với tên là hello.cpp

11 Dùng lệnh Project/Build để biên dịch chơng trình Trình biên dịch đa ra các thông báo nh nó tạo lên Khi nó kết thúc, màn hình của bạn nên trông giống nh trong hình 2-27

12 Chơng trình bây giờ có thể đợc bắt đầu với lệnh Dedug/Go Các kết quả xuất hiện nh trong hình 2-28

Gọi Help trong UNIX

Hầu hết các hệ thống UNIX có hệ thống cung cấp tài liệu trực tuyến đợc gọi là "man pages" Các hệ thống này có thể đợc truy nhập đến bằng lệnh man (UNIX dùng man nh sự viết tắt của "manual.") Để có thông tin về các chủ đề

Ngày đăng: 25/01/2014, 21:20

HÌNH ẢNH LIÊN QUAN

1. Dựa vào bảng 22.1, vẽ biểu đồ đường biểu diễn thể hiện tốc độ tăng dân số, sản lượng lương thực và bình quân lương thực theo đầu người  ở Đồng bằng sông Hồng - Tài liệu Giới thiệu về ngôn ngữ C docx
1. Dựa vào bảng 22.1, vẽ biểu đồ đường biểu diễn thể hiện tốc độ tăng dân số, sản lượng lương thực và bình quân lương thực theo đầu người ở Đồng bằng sông Hồng (Trang 4)
Hình 2-2. Sự chuyển đổi của một ngôn ngữ bậc cao ra chơng trình - Tài liệu Giới thiệu về ngôn ngữ C docx
Hình 2 2. Sự chuyển đổi của một ngôn ngữ bậc cao ra chơng trình (Trang 8)
Hình 2-3. Hộp hội thoại Code Generation - Tài liệu Giới thiệu về ngôn ngữ C docx
Hình 2 3. Hộp hội thoại Code Generation (Trang 12)
Hình 2-4. Hộp hội thoại Entry/Exit Code Generation - Tài liệu Giới thiệu về ngôn ngữ C docx
Hình 2 4. Hộp hội thoại Entry/Exit Code Generation (Trang 12)
Hình 2-6. Hộp hội thoại Open Project File - Tài liệu Giới thiệu về ngôn ngữ C docx
Hình 2 6. Hộp hội thoại Open Project File (Trang 13)
Hình 2-5. Hộp hội thoại Conpiler Messages - Tài liệu Giới thiệu về ngôn ngữ C docx
Hình 2 5. Hộp hội thoại Conpiler Messages (Trang 13)
Hình 2-7. Hộp hội thoại Add to Project List - Tài liệu Giới thiệu về ngôn ngữ C docx
Hình 2 7. Hộp hội thoại Add to Project List (Trang 14)
Hình 2-8. "Hello" project - Tài liệu Giới thiệu về ngôn ngữ C docx
Hình 2 8. "Hello" project (Trang 14)
Hình 2-9. Kết thúc project - Tài liệu Giới thiệu về ngôn ngữ C docx
Hình 2 9. Kết thúc project (Trang 15)
Nhấn một phím bất kỳ nó sẽ trả bạn về màn hình IDE. Hình 2-10 hiển thị kết quả đa ra của chơng trình. - Tài liệu Giới thiệu về ngôn ngữ C docx
h ấn một phím bất kỳ nó sẽ trả bạn về màn hình IDE. Hình 2-10 hiển thị kết quả đa ra của chơng trình (Trang 15)
Hình 2-13. Hộp hội thoại Advenced Options - Tài liệu Giới thiệu về ngôn ngữ C docx
Hình 2 13. Hộp hội thoại Advenced Options (Trang 17)
Hình 2-12. Hộp hội thoại New Target - Tài liệu Giới thiệu về ngôn ngữ C docx
Hình 2 12. Hộp hội thoại New Target (Trang 17)
Hình 2-15. Hộp hội thoại Node Attributes - Tài liệu Giới thiệu về ngôn ngữ C docx
Hình 2 15. Hộp hội thoại Node Attributes (Trang 18)
Hình 2-14. Menu phụ Target Options - Tài liệu Giới thiệu về ngôn ngữ C docx
Hình 2 14. Menu phụ Target Options (Trang 18)
Quay về phần chọn kiểm tra tràn ô nhớ nh trong hình 2-16. Nhấn OK để ghi các lựa chọn này. - Tài liệu Giới thiệu về ngôn ngữ C docx
uay về phần chọn kiểm tra tràn ô nhớ nh trong hình 2-16. Nhấn OK để ghi các lựa chọn này (Trang 19)

TỪ KHÓA LIÊN QUAN

w