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

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

Đ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

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 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 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. 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. 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: Wash (gội) Rinse (gội qua) Repeat (lặp lại) Bà ta cố gắng theo sự chỉ dẫn, nhng đã đùng hết hộp dầu (Wash-rinse- repeat. Wash-rinse-repeat. Wash-rinse-repeat ). Tất nhiên chúng ta sẽ cố gắng viết bằng tiếng Anh rõ ràng. Chúng ta phải rất cẩn thận và chắc chắn để đánh vần rõ ràng mọi thứ và chắc chắn tính đến các lệnh (chỉ dẫn) cho mọi trờng hợp xảy ra. Nếu chúng ta làm việc cật lực, chúng ta có thể viết các lệnh tiếng Anh chính xác, đúng không? 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ả 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 Language Program MOV A,47 ADD A,B HALT MOV A,47 ADD A,B HALT 1010 1111 0011 0111 0111 0110 1010 1111 0011 0111 0111 0110 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. 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ọ. Tạo một chơng trình thực sự Trớc khi bạn thực sự bắt đầu tạo các chơng trình của mình, bạn cần thiết phải biết các công cụ lập trình cơ bản. Phần này sẽ giúp bạn từng bớc thực hiện gõ vào, biên dịch, và chạy một chơng trình đơn giản. Nó trình bày cách sử dụng hai kiểu trình biên dịch khác nhau. Kiểu thứ nhất là độc lập (standalone) hoặc trình biên dịch gõ dòng lệnh (command-line compiler). Kiểu trình biên dịch này đợc khép kín trong một chế độ xử lý theo lô (batch mode) từ dòng 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 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. Trong UNIX: % mkdir hello % cd hello Trong MS-DOS: C: MKDIR HELLO C: CD HELLO Bớc 2: tạo chơng trình Một chơng trình khởi đầu nh một file văn bản. Ví dụ 2-1 là chơng trình hello dạng nguồn #include <iostream.h> int main() { cout << "Hello World\n"; return (0); } Sử dụng chơng trình soạn thảo a thích của bạn để gõ vào chơng trình trên. Trong UNIX tên file của bạn nên lấy tên là hello.cc và trong MS-DOS/Windows là hello.ccp. Cảnh báo (Warning) 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 đợ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. UNIX CC Compiler (Generic uNix) 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. [...]... đ c lựa chọn c n thận, vì vậy cuối c u hộp đ c sắp thẳng hàng với đầu điểm dừng Mã C+ + C c mã th c tế cho chơng trình c a bạn gồm c hai phần: c c biến và c c lệnh c thể th c hiện đ c Biến đ c sử dụng để chứa dữ liệu sử dụng cho chơng trình Lệnh c khả năng th c hiện yêu c u máy tính làm gì với c c dữ liệu C c lớp C+ + là một sự kết hợp c a dữ liệuc c lệnh làm vi c với c c dữ liệu đó Nó cung c p... hoa dàng cho c c giá trị c định (nh MAX_ITEMS, SCREEN_WIDTH) C c quy c này là c c quy c cổ điển theo hầu hết c c chơng trình C và C+ + Nhiều chơng trình mới hơn dùng c c tên hỗn hợp c c chữ c i (nh RecordsInFile) Đôi khi họ dùng chữ in hoa c a chữ c i đầu tiên để chỉ thông tin về biến Ví dụ recordsInFile c thể đ c dùng để chỉ biến địa phơng trong khi RecordsInFile chỉ đén biến c c bộ (Xem chơng 9,... bạn phải trả credit cho những nơi mà chúng c quyền đ c hởng Trong phần này bạn nên tham khảo chính t c giả bất c c ng vi c gì bạn muốn sao chép C c dạng mầu file Danh sách c c dạng file mà chơng trình c a bạn đ c ho c viết là một sự mô tả ngắn về dạng mẫu c a chúng C c hạn chế Danh sách bất kể giới hạn ho c hạn hạn chế gắn với chơng trình, nh: C c file dữ liệu phải c dạng mẫu chính x c; chơng trình... bạn c u tr c một c ng trình xây dựng, bạn c n hai thứ là: gạch và một thiết kế mà cho bạn biết gép chúng với nhau nh thế nào Trong chơng trình máy tính bạn c ng c n hai thứ là: dữ liệu (c c biến) và c c lệnh (mã) C c biến là c c khối xây dựng c bản c a chơng trình C c lệnh cho máy tính biết phải làm gì với c c biến C c chú thích đ c sử dụng để miêu tả biến và c c lệnh Chúng đ c nghi chú bởi t c giả... những c bản này, thêm những yếu tố stylistic mới nh bạn h c nhữngcơ sở mới c a ngôn ngữ Summary Một chơng trình nên ngắn gọn, s c tích và dễ đ c Nó phải cung c p nh một bộ c c lệnh máy tính, nhng c ng nh c ng vi c tham khảo miêu tả thuật toán và dữ liệu dùng trong nó Tất c mọi thứ là t liệu với c c chú thích C c chú thích ph c vụ hai m c đích là Đầu tiên chúng mô tả chơng trình c a bạn để bất c ngời... style c a chơng trình? Bài tập 3-1: Làm qua tất c c c bài tập lập trình trong cuốn sách này và viết c c khối chú thích cho chúng Điều này sẽ ph c vụ một số m c đích Đầu tiên nó giúp c c bạn luyện tập tạo chú thích Thứ hai nó bỏ qua đ c lời bào chữa c a những nguời lập trình đi tr c, "Tôi không c đủ thời gian để đa vào những c u chú thích." Chơng 4 C c khai báo c bản và c c biểu th c (Basic Diclerations... chỉ là một yếu tố tạo một chơng trình c chất lợng cao Tính ch c chắn (consistency) c ng là một nhân tố Quyển sách này đ c tổ ch c với bảng nội dung ở đầu sách và bảng chỉ m c ở phía sau Hầu hết c c cuốn sách đ c in c sự tổ ch c giống nh thế này tính ch c chắn này tạo cho ta dẽ dàng tìm từ trong bảng chỉ m c và tìm tiêu đề chơng trong bảng nội dung Một c ch đáng ti cc ng đồng những ngời lập trình... chơng này bạn sẽ tập trung c u tr c c c chơng trình đơn giản chỉ c một hàm C u tr c chơng trình c bản C c yếu tố c bản c a một chơng trình là c c khai báo dữ liệu, c c hàm, và c c chú thích Hãy xem những yếu tố này c thể đ c tổ ch c vào một chơng trình C+ + đơn giản C u tr c cơ bản c a chơng trình với một hàm là: /********************************************* * Heading comments * *********************************************/... rõ lắm C+ + c thể nói rằng chơng trình này th c hiện c ng vi c là chuyển dữ liệu từ nguồn (source) vào đích (destination) Máy tính không quan tâm là bản nào đ c sử dụng Một chơng trình dịch tốt sẽ tạo ra c ng một mã máy cho c hai bản Naming Style C c tên c thể chứa c chữ in hoa và chữ thờng Trong cuốn sách này chúng ta sẽ dùng chữ thờng cho c c tên biến (nh source_ptr, curent_index) C c chữ in... kết th c mỗi dòng không kết th c một c u lệnh C c câu trong cuốn sách này c thể kéo dài một vài dòng kết th c của mỗi dòng đ c coi nh dấu c ch ngăn c ch giữa c c từ C+ + c ng làm vi c nh vậy Một c u lệnh đơn c thể kéo dài vài dòng Giống nh vậy, bạn c thể đa vài c u trên c ng một dòng, đúng nh bạn c thể đặt vài c u lệnh trên c ng một dòng Tuy nhiên, hầu hết chơng trình c a bạn dễ đ c hơn nếu c u lệnh . 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ố,. 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. 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

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

Hình ảnh liên quan

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 Xem tại trang 8 của tài liệu.
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 Xem tại trang 12 của tài liệu.
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 Xem tại trang 12 của tài liệu.
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 Xem tại trang 13 của tài liệu.
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 Xem tại trang 13 của tài liệu.
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 Xem tại trang 14 của tài liệu.
Hình 2-8. &#34;Hello&#34; project - Tài liệu Giới thiệu về ngôn ngữ C docx

Hình 2.

8. &#34;Hello&#34; project Xem tại trang 14 của tài liệu.
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 Xem tại trang 15 của tài liệu.
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 Xem tại trang 15 của tài liệu.
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 Xem tại trang 17 của tài liệu.
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 Xem tại trang 17 của tài liệu.
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 Xem tại trang 18 của tài liệu.
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 Xem tại trang 18 của tài liệu.
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 Xem tại trang 19 của tài liệu.
Hình 2-17. Hello Project - Tài liệu Giới thiệu về ngôn ngữ C docx

Hình 2.

17. Hello Project Xem tại trang 20 của tài liệu.
Hình 2-18. Chơng trình &#34;Hello World&#34; - Tài liệu Giới thiệu về ngôn ngữ C docx

Hình 2.

18. Chơng trình &#34;Hello World&#34; Xem tại trang 21 của tài liệu.
Bảng 4-1. Các phép toán đơn giản - Tài liệu Giới thiệu về ngôn ngữ C docx

Bảng 4.

1. Các phép toán đơn giản Xem tại trang 37 của tài liệu.
Bảng 4-2. Các ví dụ về biểu thức - Tài liệu Giới thiệu về ngôn ngữ C docx

Bảng 4.

2. Các ví dụ về biểu thức Xem tại trang 42 của tài liệu.
Bảng 4-3 tổng kết các kí tự đặc biệt. Để xem danh sách chi tiết về các mã kí tự ASCII, xem phần phụ lục A. - Tài liệu Giới thiệu về ngôn ngữ C docx

Bảng 4.

3 tổng kết các kí tự đặc biệt. Để xem danh sách chi tiết về các mã kí tự ASCII, xem phần phụ lục A Xem tại trang 43 của tài liệu.
Bài tập 4-3: Viết chơng trình tính diện tích và chu vi của một hình chữ nhật có chiều rộng 3 inch và chiều dài 5 inch - Tài liệu Giới thiệu về ngôn ngữ C docx

i.

tập 4-3: Viết chơng trình tính diện tích và chu vi của một hình chữ nhật có chiều rộng 3 inch và chiều dài 5 inch Xem tại trang 44 của tài liệu.

Từ khóa liên quan

Mục lục

  • Chương 1

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

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

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

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

    • Chương 2

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

      • Tạo một chương trình thực sự

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

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

        • Bước 1:

        • Bước 2: tạo chương trình

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

          • UNIX CC Compiler (Generic uNix)

          • Free Software Foundation's g++ Compiler

          • Borland's Turbo C++ in MSDOS

          • Borland C++ in MSDOS and Window

          • Microsoft Visual C++

          • Bước 4: thực hiện chương trình

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

          • dùng một môi trường tổ hợp khép kín

            • Bước 1:

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

              • TurboC++

              • Borland C++

              • Microsoft Visual C++

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan