Trang 1 trên tổng số 3 123 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 26 kết quả

Đề tài: Giáo trình C của Aptech [Elementary Programming With C]

  1. #1
    Ngày gia nhập
    10 2006
    Bài viết
    107

    Mặc định Giáo trình C của Aptech [Elementary Programming With C]

    Introduction
    • Hôm nọ thấy có bạn yêu cầu giáo trình của Aptech, tớ sẽ post lên từ từ mỗi ngày một ít. Nhưng vì quyển sách đó rất nhiều nên tớ sẽ cố gắng tóm gọm kiến thức lại có gì thiếu xót một người đóng góp để bổ sung thêm.
    • Chương trình dạy sẽ bao gồm 22 tiết, cứ 1 bài lý thuyết sẽ kèm theo một bài thực hành và bài tập đi kèm để làm. Và đây là phiên bản tiếng Việt , shinichi_haha stick lên hộ tớ nha...

    • Ở Aptech họ xài borland C version 5, vì chủ yếu là học thuật toán và tư duy của lập trình viên, còn mọi người thích dùng (trình biên dịch)compiler nào là tùy.

    Session
    1. Những khái niệm cơ bản về ngôn ngữ C
    2. Biến và Kiểu dữ liệu - Lý Thuyết
    3. Biến và kiểu dữ liệu - Thực hành
    4. Toán tử và biểu thức - Lý thuyết
    5. Toán tử và biểu thức - Thực hành
    6. Nhập xuất trong C - Lý thuyết
    7. Điều kiện - Lý thuyết
    8. Điều kiện - Thực hành
    9. Vòng lặp - Lý thuyết
    10. Vòng lặp - Thực hành
    11. Mảng - Lý thuyết
    12. Mảng - Thực hành
    13. Con trỏ - Lý thuyết
    14. Con trỏ - Thực hành
    15. Hàm - Lý thuyết
    16. Hàm - Thực hành
    17. Chuỗi - Lý thuyết
    18. Chuỗi - Thực hành
    19. Các kiểu dữ liệu Nâng cao và sắp xếp - Lý thuyết
    20. Các kiểu dữ liệu Nâng cao và sắp xếp - Thực hành
    21. Quản lý tệp tin - Lý thuyết
    22. Quản lý tệp tin - Thực hành
    Đã được chỉnh sửa lần cuối bởi Solokop : 07-04-2007 lúc 09:01 PM.
    Nói là một chuyện, làm là một chuyện. Chi bằng ta làm xong rồi hãy nói như vậy thì nói và làm sẽ là một chuyện.

  2. #2
    Ngày gia nhập
    10 2006
    Bài viết
    107

    Mặc định Những khái niệm cơ bản về ngôn ngữ C

    Bài 1 : Những khái niệm cơ bản về ngôn ngữ C

    Giới thiệu:

    - Ngày nay, khoa học máy tính thâm nhập vào mọi lĩnh vực. Tự động hóa hiện đang là nghành chủ chốt điều hướng sự phát triển thế giới. Bất cứ nghành nghề nào cũng cần phải hiểu biết ít nhiều về Công nghệ Thông tin và lập trình nói chung. Cụ thể, C là một ngôn ngữ lập trình cấp cao mà mọi lập trình viên cần phải biết. Vì thế, trong giáo trình này, chúng ta sẽ nghiên cứu chi tiết cấu trúc ngôn ngữ C. Đầu tiên chúng ta tìm hiểu sự khác nhau của những khái niệm: Lệnh (Command), Chương trình (Program) và phần mềm (Software).

    1 Ra lênh cho máy tính làm việc

    - Khi một máy tính được khởi động, nó sẽ tự động thực thi một số tiến trình và xuất kết quả ra màn hình. Điều này diễn ra như thế nào? Câu trả lời đơn giản là nhờ vào Hệ điều hành cài đặt bên trong máy tính. Hệ điều hành (operating system) được xem như phần mềm hệ thống. Phần mềm này khởi động máy tính và thiết lập các thông số ban đầu trước khi chuyển giao quyền cho người dùng. Để làm điều đó, hệ điều hành phải được cấu tạo từ một tập hợp các chương trình. Mọi chương trình đều cố gắng đưa ra lời giải cho một hay nhiều vài toán nào đó. Mọi chương trình cố gắng giải quyết một bài toán cụ thể. Một nhóm lệnh tạo thành một chương trình, một nhóm chương trình tạo thành phần mêm
    - Sơ đồ mối quan hệ giữa 3 khái niệm : câu lênh, chương trìnhphần mềm

    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		moiquanhe-phanmem-chuongtrinh.jpg
Lần xem:	241
Size:		29.1 KB
ID:		5331

    2 Ngôn ngữ C

    - Giới thiệu xuât xứ của ngôn ngữ C, cái này có lẽ không quan trọng bỏ qua, ai thích tự tìm hiểu nha

    3 Cấu trúc chương trình C

    - C có một số từ khóa, chính xác là 32. Những từ khóa này kết hợp với cú pháp của C hình thành ngôn ngữ C. Nhưng nhiều trình biên dịch cho C đã thêm vào những từ khóa dùng cho viêc tổ chức bộ nhớ ở những giai đoạn xử lý nhất định.
    - Vài quy tắc khi lập trình C như sau :
    + Tất cả các từ khóa là chữ thường.
    + Đoạn mã trong chương trình C có phân biệt chữ hoa và chữ thường.
    + Từ khóa không thể dùng cho mục đích khác như đặt tên biến (variable name) hoặc tên hàm (function).
    + Hàm main() luôn là hàm đầu tiên được gọi đến khi một chương trình bắt đầu chạy.


    a. Định nghĩa hàm trong C

    - Chương trình C được chia thành từng đơn vị gọi là hàm. Tên của hàm luôn được theo sau bằng cặp "(" và ")". Trong dấu ngoặc đơn có thể có hay không có những tham số (parameters)

    b. Dấu phân cách (Delimiter)

    - Sau định nghĩa hàm sẽ là dấu mở ngoặc xoắn "{". Nó thông báo điểm bắt đầu của hàm. Tương tự, dấu ngoặc xoắn đóng "}" sau cậu lênh cuối trong hàm sẽ chỉ ra điểm kết thúc của hàm. Khối dấu "{" và "}" còn dùng để bao quanh các đoạn mã lênh ở các câu lênh vòng lặp và rẽ nhánh.

    c. Dấu kêt thúc câu lệnh (Terminator)

    - Kết thúc mỗi câu lênh trong C luôn phải là dấu chấm phẩy ";".

    d. Dòng chú thích (Comment)

    - Trong C cho phép bạn viết những dòng chú thích và nó được đặt trong cặp dấu "/*" và "*/"

    e. Thư viện C (Library)

    - Tất cả các trình biên dịch C đều chức một thư viện hàm chuẩn dùng cho những tác vụ chung. Khi lập trình các hàm trong thư viện sẽ được dùng cho nhiều loại tác vụ khác nhau. Một hàm có thể được viết bởi lập trình viên và đặt trong thư viện để tái xử dụng cho nhiều chương trình khác nhau.

    4. Biên dịch và thực thi một chương trình (Compiling and Running)

    - Các bước thực hiện :
    + Soạn thảo và xử lý từ : dùng một chương trình xử lý văn bản đơn giản để làm, thường thì trình biên dịch có tích hợp sẵn luôn cho ta.
    + Mã nguồn : chính là đoạn văn bản mà lập trình viên viết ra, nó là đầu vào của trình biên dịch.
    + Bộ tiền xử lý C : bộ tiền xử lý C khai triển các chỉ thị tiền biên dịch và đưa ra kết quả. Nó gọi là mã nguồn mở rộng, sau đó nó sẽ chuyển qua cho trình biên dịch.
    + Trình biên dịch C :chương trình sẽ biên dịch mã nguồn mở rộng ở bộ tiền xử lý C.
    + Bộ liên kết : khi biên dịch một trình lớn trình biên dịch sẽ xử lý từ cái và liên kết lại với nhau để cho ra mã thực thi (chính là chương trình đã lập trình xong)
    + Bộ nạp (Loader) : mã thực thi sẽ được thi hành bới bộ nạp của hệ thống.

    - Sơ đồ chi tiết : Biện dich và thưc thi một chương trình.

    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		sodobiendich.jpg
Lần xem:	258
Size:		35.1 KB
ID:		5332

    5. Các bước lập trình giải quyết vấn đề

    - Chính la giải thuật đó, tìm hiểu thêm trong diễn đàn nha

    6. Mã giả (pseudo code)

    - Tóm lược ngắn gọn thế này nha, mã giả không phải là mã thật. Nó được viết trên giấy để trình bày giải thuật của lập trình viên. Có thể nói nôm là nó là ngôn ngữ trung để trình bảy giải thuật. Nó thường được viết bằng một số từ ngữ tiếng anh thông dụng như (BEGIN, END, DISPLAY, DO, WHILE, FOR, IF, ELSE, ...)

    7. Lưu đồ (Flowcharts)

    - Cũng tương tự như mã giả nhưng thay vì trình bày bằng văn bản, ở đây ta trình bày theo các hình vẽ được quy đinh sẵn. Cùng với các ký hiệu riếng chuyên cho việc vẽ lưu đồ giải thuật lập trình.

    - Một số hình vẽ lưu đồ : Sẽ cập nhập ảnh sau
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		luudo.jpg
Lần xem:	266
Size:		35.0 KB
ID:		5333

    Kết thúc bài 1

    Bài tập tự làm

    1. Viết chương trình mã giả và vẽ một lưu đồ để nhập một giá trị là độ *C (Celsius) và chuyển nó sang độ *F (Fahrenheit)
    [Hướng dẫn C/5 = (F-32)/9]
    2. Viết một đoạn mã giả và vẽ lưu đồ để nhập điểm của một sinh viên cho các môn : vật lý, hóa học và sinh học. Sau đó hiển thị điểm trung bình của tổng điểm này...
    Đã được chỉnh sửa lần cuối bởi Solokop : 04-01-2007 lúc 10:03 AM.
    Nói là một chuyện, làm là một chuyện. Chi bằng ta làm xong rồi hãy nói như vậy thì nói và làm sẽ là một chuyện.

  3. #3
    Ngày gia nhập
    10 2006
    Bài viết
    107

    Mặc định Biến và Kiểu dữ liệu trong lập trình C

    Bài 2 : Biến và Kiểu dữ liệu - Lý Thuyết

    Giới thiệu:

    - Bất cứ chương trình ứng dụng nào cần xử lý dữ liệu cũng cần có nơi để lưu trữ tạm thời dữ liệu ấy. Nơi mà dữ liệu được lưu trữ gọi là bộ nhớ. Những vị trí khác nhau trong bộ nhớ có thể được xác định bởi các địa chỉ duy nhất. Những ngôn ngữ lập trình trước đây yêu cầu các lập trình viên quản lý mỗi vị trí ô nhớ thông qua địa chỉ, cũng như giá trị lưu trong nó. Các lập trình viên dùng những địa chỉ này để truy cập hoặc thay đổi nội dung của các ô nhớ. Khí ngôn ngữ lập trình phát triển, việc truy cập hay thay đổi giá trị ô nhớ đã được đơn giản hóa nhờ sự ra đời của khái niệm biến.

    1. Biến (variable)

    - Một chương trình ứng dụng có thể quản lý nhiều loại dữ liệu. Trong trường hợp này, chương trình phải chỉ định bộ nhớ cho mỗi đơn vị dữ liệu. Khi chỉ định bộ nhớ, có hai điểm cần lưu ý như sau :
    + Bao nhiêu bộ nhớ sẽ được gán.
    + Mỗi đơn vị dữ liệu được lưu trữ ở đâu trong bộ nhớ.
    - Trước đây, các lập trình viên phải viết chương trình theo ngôn ngữ máy 1 và 0. Nếu muốn lưu giữ một giá trị tạm thồi, vị trí chính xác nơi mà dữ liệu được lưu trữ trong bộ nhớ máy tính phải được chỉ định. Vị trí này là một con số cụ thể, gọi là địa chỉ bộ nhớ.
    - Các ngôn ngữ lập trình hiện đại cho phép chúng ta sử dụng các tên tượng trưng gọi là biên (variable), chỉ để một vùng bộ nhớ nơi mà các giá trị cụ thể được lưu trữ.
    - Kiểu dữ liệu quyết định tổng số bộ nhớ được chỉ định. Những tên được gán cho biên giúp chúng ta sử dụng lại dữ liệu khi cần đến. Không giới hạn về số vị trí bộ nhớ mà một chương trình có thể dùng.
    - Trong khi một số ngôn ngữ lập trình cho phép hệ điều hành xóa nội dung trong ô nhớ và cấp phát bộ nhớ này để dùng lại thì những ngôn ngữ khác như C yêu cầu lập trình viên xóa vùng nhớ không sử dụng thông qua mã chương trình. Trong cả hai trường hợp hệ điều hành sẽ lo việc cấp phát và thu hồi ô nhớ.

    2. Hằng (constant)

    - Trong trường hợp ta dùng biến, giá trị được lưu sẽ thay đổi. Một biến tồn tại từ lúc khai báo đến khi thoát khỏi phạm vi dùng nó. Những câu lênh trong phạm vi khối mã này có thể truy cập giá trị của biến, và thậm chí có thể thay đổi giá trị của biến. Trong thực tế, đôi khi cần sử dụng môt vài khoản mục mà giá trị của chúng không bao giờ bị thay đổi.
    - Và một hằng là một giá trị không bao giờ bị thay đổi.

    3. Định danh (Identifier)

    - Tên của các biến (variable), các hàm (functions), các nhãn (labels) và các đổi tượng khác nhau do người dùng định nghĩa gọi là đinh danh. Những định danh này có thể chứa một hay nhiều ký tự. Ký tự đầu tiên của định danh phải là một chữ cái hay một dấu gạch dưới "_". Các ký tự tiếp theo có thể là các chữ cái, các con số hay dấu gạch chân.
    - Các nguyên tắc cho việc đặt tên :
    + Tên biến phải bắt đầu bằng một ký tự chữ cái.
    + Các ký tự theo sau ký tự đầu bằng một chuỗi các chữ cái hoặc con số và cũng có thể bao gồm ký tự đặc biệt như dấu gạch dưới.
    + Tránh dùng ký tự O tại những vị trí mà có thể gây nhầm lẫn với số 0 và tương tự chữ cái l (chữ thường của chữ hoa L) có thể nhầm lẫn với số 1.
    + Tên riêng tránh đặt cho biến.
    + Theo tiêu chuẩn của C các chữ cái thường và hoa thi xem như khác nhau.
    + Việc phân biệt chữ hoa chữ thường khác nhau tùy theo ngôn ngữ lập trình. Do đó, tốt nhất nên đặt tên cho biến theo cách thức chuẩn.
    + Tên một biến nên có ý nghĩa, gợi tả và mô tả rõ kiểu dữ liệu của nó.


    4. Từ khóa (keywords)

    - Tất cả các ngôn ngữ dành một số từ nhất định cho mục đích riêng. Những từ này có một ý nghĩa đặc biệt trong ngữ cảnh của từng ngôn ngữ, và được xem là "từ khóa". Khi đặt tên cho các biến, chúng ta cầm bảo đảm rằng không dùng bất cứ từ khóa nào làm tên biến.
    - Tên kiểu dữ liệu tất cả được coi là từ khóa.

    5. Các kiểu dữ liệu (Data types)

    - Có các loại kiểu dữ sau được lưu trữ trong biến ở trong C là :
    + int là một số nguyên, về cơ bản nó biểu thị kich cỡ tự nhiên của các số nguyên (integers).
    + floatdouble được dùng cho các số có dấu chấm động. Kiểu float (số thực) chiếm 4 bytes và có thể có tới 6 con số phần sau dấu thập phân, trong khi double chiếm 8 bytes và có thể có tới 10 con số phần thập phân.
    + char chiếm 1 byte và có khả năng lưu một ký tự đơn (character).
    + void được dùng điển hình để khai báo biến một hàm không trả về giá trị. Điều này sẽ được nói rõ hơn trong phần hàm.

    - Dung lượng nhớ và phạm vi giá trị của những kiểu này thay đổi theo mỗi loại bộ xử lý và việc cài đặt các trình biên dịch C khác nhau.
    - Những kiểu dữ liệu cơ bản và dẫn xuất. Đó là những bổ từ (modifier) được sử dụng để thay đổi kiểu dữ liệu cơ bản nhằm phù hợp với các tình huống đa dạng. Ngoại trừ kiểu void, tất cả các kiểu dữ liệu khác có thể cho phép những bổ tự đứng trước chúng. Bổ từ được sử dụng với C là:
    + signed, unsigned, long và short, long, double.
    + signed : có dấu, unsigned : không dấu
    + long : tăng chiều *** của miền giá trị, double : gấp đôi miền giá trị.
    - Các kiểu dữ liệu và pham vi.

    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		kieudulieu.jpg
Lần xem:	656
Size:		53.5 KB
ID:		5334

    6. Các toán tử số học (Arithmetic Operators)

    - Những toán tử số học được sử dụng để thức hiện những thao tác mang tính số học. Chúng được chia thành hai lớp : Toán tử số học một ngôi (unary) và toán tử số học hai ngôi (binary).
    - Các toán tử số học và chức năng của chúng.

    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		toantusohoc.jpg
Lần xem:	370
Size:		25.0 KB
ID:		5335

    Hết bài thứ 2

    Bài tập tự làm
    - Tính giá trị của các biến sau mỗi câu lệnh dưới đây.
    a. int a = 4^4
    b. int a = 23.34
    c. a = 10
    b = a + a++
    d. a = -5
    b = -a
    Đã được chỉnh sửa lần cuối bởi Solokop : 05-01-2007 lúc 06:32 PM.
    Nói là một chuyện, làm là một chuyện. Chi bằng ta làm xong rồi hãy nói như vậy thì nói và làm sẽ là một chuyện.

  4. #4
    Ngày gia nhập
    10 2006
    Bài viết
    107

    Mặc định Thực hành biến và Kiểu dữ liệu trong lập trình C

    Bài 3 : Biến và kiểu dữ liệu - Thực hành

    Ví dụ 1:

    C Code:
    1. #include <stdio.h>
    2. void main()
    3. {
    4.    int principal, period;
    5.    float rate, si;
    6.    
    7.    principal = 1000;
    8.    period = 3;
    9.    rate = 8.5;
    10.  
    11.    si = principal * period * rate / 100;
    12.    
    13.    printf("%f", si);
    14. }

    Ví dụ 2:

    C Code:
    1. #include <stdio.h>
    2.  
    3. void main()
    4. {
    5.    int a, b, c, sum;
    6.  
    7.    printf("\nEnter any three numbers: ");
    8.    scanf("%d %d %d", &a, &b, &c);
    9.  
    10.    sum = a + b + c;
    11.  
    12.    printf("\n Sum = %d", sum);
    13. }

    Bắt buộc

    - Viết một chương trình nhập vào một số và tính bình phương của số đó.
    - Hướng dẫn:
    + Nhập vào một số.
    + Nhân số đố với chính nó và hiển thị kết quả đó.

    Kết thúc bài 3

    Bài tập tự làm

    1. Viết chương trình tính diện tích và chu vi của một vòng tròn.
    2. Viết chương trình nhập lương và tuổi của mỗi ngừoi và hiển thị các số vừa nhập đó ra màn hình.
    Đã được chỉnh sửa lần cuối bởi Solokop : 17-01-2007 lúc 02:49 PM.
    Nói là một chuyện, làm là một chuyện. Chi bằng ta làm xong rồi hãy nói như vậy thì nói và làm sẽ là một chuyện.

  5. #5
    Ngày gia nhập
    10 2006
    Bài viết
    107

    Mặc định Toán tử và biểu thức trong lập trình C

    Bài 4 : Toán tử và biểu thức - Lý thuyết

    Giới thiệu

    - C có một tập các toán tử phong phú. Toán tử là công cụ để thao tác dữ liệu. Một toán tử là một ký hiệu dùng để đại diện cho một thao tác cụ thể nào đó được thực hiện trên dữ liệu. C định nghĩa bốn loại toán tử:
    + Toán tử số học (arithmetec).
    + Toán tử quan hệ (relational).
    + Toán tử luận lý (logical).
    + Toán tử luận lý nhị phân (bitwise).

    - Toán tử thao tác trên hằng hoặc biến. Hằng hoặc biến này được gọi là toán hạng (operands). Toán tử được phân loại theo toán tử một ngôi, hai ngôi và ba ngôi. Toán tử một ngôi chỉ thao tác trên một phần tử dữ liệu, toán tử hai ngôi trên hai phần tử dữ liệu và ba ngôi trên ba phần tử dữ liệu.

    1. Biểu thức (Expressions)

    - Một biểu thức là tổ hợp các toán tử và toán hạng. Toán tử thực hiện các thao tác như cộng, trừ, so sánh ... Toán hạng là những biến hay những giá trị mà các phép toán được thực hiện trên nó.

    Ví dụ :

    c = a + b;

    - Trong ví dụ a + b, "a" và "b" là toán hạng và "+' là toán tử. Tất cả kêt hợp lại là một biểu thức.
    - Trong quá trình thực thi chương trình, giá trị thực sự của biến (nếu có) sẽ được sử dụng cùng với các hằng có mặt trong biểu thức. Vì vậy, mọi biểu thức trong C đều có một giá trị.

    2. Toán tử gán (Assignment Operator)

    - Trước khi nghiên cứu các toán tử khác, ta hãy xét toán tử gán (=). Đây là toán tử thông dụng nhất cho mọi ngôn ngữ và mọi người đều biết. Trong C, toán tử gán có thể được dùng cho bất kỳ biểu thức C hợp lệ. Dạng thức chung cho toán tử gán là:

    Code:
    Tên biến = biểu thức;
    3. Biểu thức số học (Arithmetic Expressions)

    - Các phép toán thường được thực hiện theo một thứ tự cụ thể (hoặc riêng biệt) để cho ra giá trị cuối cùng. Thứ tự này gọi là độ ưu tiên (sẽ nói đến sau).
    - Các biểu thức toán học trong C được biểu diễn bằng cách sử dụng toán tử số học cùng với các toán hạng dạng số và ký tự. Những biểu thức này gọi là biểu thức số học.

    Ví dụ

    a * (b+c/d) / 22;
    ++i % 7;
    5 + (c = 3+8);

    4. Toán tử quan hệ (Ralational Operators)

    - Toán tử quan hệ được dùng để kiểm tra mối quan hệ giữa hai biến, hay giữa một biến và một hằng. Ví dụ, việc xét số lớn hơn của hai số, a và b, được thực hiện thông qua dấu lớn hơn (>) giữa hai toán hạng a và b (a > b).
    - Trong C, true (đúng) là bất cứ giá trị nào khác không (0), và false (sai) là bất cứ giá trị nào bằng không (0). Biểu thức dùng toán tử quan hệ trả về 0 cho false và 1 cho true.

    Ví dụ

    a == 14;

    - Biểu thức này sẽ kiểm tra xem giá trị của a có bằng 14 hay không. Giá trị của biểu thức sẽ là 0 (false) nếu a có giá trị khác 14 và 1 (true) nếu nó là 14.
    - Bảng sau mô tả ý nghĩa của các toán tử quan hệ.
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		toantu-quanhe.jpg
Lần xem:	52
Size:		10.1 KB
ID:		5339

    5. Toán tử luận lý (Logical Operator)

    - Toán tử luận lý là các ký hiệu dùng để kết hợp hay phủ định biểu thức có chứa các toán tử quan hệ. Những biểu thức dùng toán tử luận lý trả về 0 cho false và 1 cho true.
    - Bảng sau mô tả ý nghĩa của các toán tử luận lý.

    6. Toán tử luận lý nhị phân (Bitwise Logical Operator)

    - Ví dụ xét toán hạng có giá trị là 12, toán tử luận lý nhị phân sẽ coi số 12 này như 1100. Toán tử luân lý nhị phân xem xét các toán hạng dưới dạng chuỗi bit chứ không phải là giá trị số thông thường. Giá trị số có thể thuộc các cơ số: thập phân (decimal), bát phân (octal) hay thập lục phân (hexadecimal). Riêng toán tử luận lý nhị phân sẽ chuyển đổi toán hạng mà nó thao tác thành biểu diễn nhị phần tương ứng, đó là dãy số 1 hoặc 0.
    - Được tổng kết qua bàng sau.
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		toantu-nhiphan.jpg
Lần xem:	206
Size:		37.7 KB
ID:		5340

    7. Biểu thức dạng hỗn hợp & Chuyển đổi kiểu

    - Một biểu thức dạng hỗn hợp là một biểu thức mà trong đó các toán hạng của một toán tử thuộc về nhiều kiểu dữ liệu khác nhau. Những toán hạng này thông thường được chuyển về cùng kiểu với toán hạng có kiểu dữ liệu lớn nhất. Điều này được gọi là tăng cấp kiểu. Sự phát triển về kiểu dữ liệu theo thứ tự sau :

    Code:
    char < int <long < float < double
    - Chuyển đổi kiểu tự động được trình bày dưới đây nhằm xác định giá trị biểu thức:
    + charshort được chuyển thành intfloat được chuyển thành double.
    + Nếu có một toán hạng là double, toán hạng còn lại sẽ được chuyển thành double, và kết quả là double.
    + Nếu có một toán hạng là long, toán hạng còn lại sẽ được chuyển thành unsigned và kết quả cũng là unsigned.
    + Nếu tất cả toán hạng kiểu int, kết quả là int.
    - Ngoài ra nếu một toán hạng là long, và toán hạng khác là unsigned và giá trị của kiểu unsigned không thể biểu diễn bằng kiểu long. Do vậy, cả hai toán hạng được chuyển thành unsigned long.

    8. Ép kiểu (Casts)

    - Thông thường, ta nên đổi tất cả hằng số nguyên sang kiểu float nếu biểu thức bao gồm những phép tính số học dựa trên số thực, nếu không thi vài biểu thức có thể mất đi giá trị thật của nó.

    Ví dụ

    int x, y, x;
    x = 10;
    y = 100;
    z = x/y;

    - Lúc này z sẽ bằng 0 khi phép chia diễn ra và phần thập phân (0.10) sẽ bị cắt bỏ.
    - Cú pháp của việc ép kiểu.
    Code:
    (kiểu dữ liệu) biểu thức;
    9. Độ ưu tiên của toán tử (Precedence)

    - Độ ưu tiên của toán tử thiết lập thứ tự ưu tiên tính toán khi một biểu thức số học cần được ước lượng. Tóm lại, độ ưu tiên đề cập đến thứ tự mà C thực thi các toán tử. Thứ tự ưu tiên của toán tử số học được thể hiện như bảng dưới đây.

    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		thutu-uutien-toantu.jpg
Lần xem:	218
Size:		28.4 KB
ID:		5341

    - Những toán tử nằm cùng một hàng ở bảng trên có cùng quyền ưu tiên. Việc tính toán của một biểu thức số học sẽ được thực hiện từ trái sang phải cho các toán tử cùng độ ưu tiên. Toán tử *, / , và % có cùng độ ưu tiên và cao hơn + và - (hai ngôi).
    - Độ ưu tiên của những toán tử này có thể được thay đổi bằng cách sử dụng dấu ngoặc đơn. Một biểu thức trong ngoặc luôn luôn được tính toán trước. Các cặp dấu ngoặc đơn có thể được bao *****g nhau, và việc tính toán được thực hiện ở những cặp trong cùng trước, từ trái qua phải.
    - Độ ưu tiên của toán tử so sánh : không có thứ tự ưu tiên giữa các toán tử và chúng đựoc ước lượng từ trái qua phải.
    - Thứ tự ưu tiên của các toán tử luận lý

    1. NOT
    2. AND
    3. OR


    - Thứ tự ưu tiên giữu các kiểu toán tử khác nhau

    1. Số học
    2. So sánh (quan hệ)
    3. Luận lý


    Kết thúc bài 4

    Bài tập tự làm

    1. Viết một chương trình nhập và cộng ba số.
    2. Viết một chương trình tính giá trị của biểu thức với các giá trị sau:

    z = a*b+(c/d)-c*f;

    a = 10
    b = 7
    c = 15.75
    d = 4
    e = 2
    f = 5.6

    3. Viết một chương trình tính diện tích và chu vi của hình chữ nhật.
    4. Viết một chương trình tính thể tích hình trụ.
    5. Viết một chương trình tính lương thực lãnh của một nhân viên theo công thức dưới đây.

    Lương cơ bản : $ 12000
    DA : 12% lương cơ bản
    HRA : $150
    TA : $120
    Các mục khác : $450
    Thuế : PF: 14% lương cơ bản và IT: 15% lương cơ bản
    Lương thực lãnh = Lương cơ bản + DA + HRA + TA + Các mục khác - (PF + IT)
    Đã được chỉnh sửa lần cuối bởi Solokop : 26-01-2007 lúc 02:36 PM.
    Nói là một chuyện, làm là một chuyện. Chi bằng ta làm xong rồi hãy nói như vậy thì nói và làm sẽ là một chuyện.

  6. #6
    Ngày gia nhập
    10 2006
    Bài viết
    107

    Thumbs up Giáo trình C của Aptech [Elementary Programming With C]

    Bài 5 : Toán tử và biểu thức - Thực hành

    Ví dụ 1 : Tính lãi đơn

    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3.  
    4. void main()
    5. {
    6.    float p, n, r;
    7.    clrscr();
    8.    p = 1000;
    9.    n = 2.5;
    10.    r = 10.5;
    11.  
    12.    printf("\n Amount is : %f", p*n*r/100);
    13. }

    Ví dụ 2 : Dùng toán tử số học

    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3.  
    4. void main()
    5. {
    6.    int a, b, c, d;
    7.    clrscr();
    8.    a = 50;
    9.    b = 24;
    10.    c = 68;
    11.  
    12.    d = a*b*c/2;
    13.    printf("\n The value after a*b+c/2 is : %d", d);
    14.    d = a%b;
    15.    printf("\n The value after a mod b is : %d", d);
    16.    d = a*b-c;
    17.    printf("\n The value after a*b-c is : %d", d);
    18.    d = a/b+c;
    19.    printf("\n The value after a/b+c is : %d", d);
    20.    d = a+b*c;
    21.    printf("\n The value after a+b*c is : %d", d);
    22.    d = (a+b)*c;
    23.    printf("\n The value after (a+b)*c is : %d", d);
    24.    d = a*(b+c+(a-c)*b);
    25.    printf("\n The value after a*(b+c+(a-c)*b) is : %d", d);
    26. }

    Ví dụ 3 : Dùng toán tử so sách và luận lý

    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3.  
    4. void main()
    5. {
    6.    int a = 5, b = 6, c =7;
    7.    printf("int a = 5, b = 6, c = 7;\n");
    8.    printf("The value of a > b is \t %i\n\n", a > b);
    9.    printf("The value of b > c is \t %i\n\n", b > c);
    10.    printf("The value of a + b >= c is \t %i\n\n", a + b >= c);
    11.    printf("The value of a - b <= b - c is \t %i\n\n", a - b <= b - c);
    12.    printf("The value of b - a == b - c is \t %i\n\n", b - a == b - c);
    13.    printf("The value of a*b != c*c is \t %i\n\n", a*b < c*c);
    14.    printf("Result of a>10 && b<5 = %d\n\n", a>10 && b<5);
    15.    printf("Result of a>100 || b<50 = %d\n\n", a>100 || b<50);
    16. }

    Ví dụ 4 : Chuyển đổi kiểu dữ liệu

    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3.  
    4. void main()
    5. {
    6.    clrscr();
    7.    printf("40/17*13/3 = %d", 40/17*13/3);
    8.    printf("\n\n40/17*13/3.0 = %lf", 40/17*13/3.0);
    9.    printf("\n\n40/17*13.0/3 = %lf", 40/17*13.0/3);
    10.    printf("\n\n40/17.0*13/3 = %lf", 40/17.0*13/3);
    11. }

    Ví dụ 5 : Thứ tự ưu tiên của các toán tử

    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3.  
    4. void main()
    5. {
    6.    clrscr();
    7.    printf("Result = %d",(4-2*9/6<=3 && (10*2/4-3 > 3 || (1 < 5 && 8 > 10) )));
    8. }

    Bắt buộc

    1. Tính giá trị biểu thức sau:

    10*3^6*6+5-2 AND (2*2+6/3>1 OR 2>8)

    - Thực hiện như sau: gõ vào biểu thức trên sử dụng câu lênh printf(). AND được thay thế bởi && và OR được thay thế bởi ||

    2. Giả sử tất cả biến có kiểu là int. Tìm giá trị cho mỗi biến sau:

    x = (2+3)*6;
    x = (12+6)/2*3;
    y = x = (2+3)/4;
    y = 3+2*(x = 7/2);
    x = (int) 3.8 + 3.3;
    x = (2+3)*10.5;
    x = 3/5*22.0;
    x = 22.0*3/5;

    Hết bài 5

    Bài tập tự làm

    1. Tính giá trị được gán (nằm phía bên trái) cho mỗi trường hợp sau:

    int s, m = 3, n =5, r, t;
    float x = 3.0, y;
    t = n/m;
    r = n%m;
    y = n/m;
    t = x*y-m/2;
    x = x*2.0;
    s = (m+n)/r;
    y = --n;

    2. Viết một chuơng trình nhập vào một số thực. Đơn vị tính cho số này là centimet (cm). Hãy in ra số tương đương tính bằng foot (số thực, có 1 số lẻ thập phân) và inch (số thực, có 1 số lẻ thập phân). Độ chính xác của foot và inch là một số lẻ thập phân.

    - Hướng dẫn: 2.45 centimeters = 1 inch, và 12 inches = 1 foot.
    - Nếu giá trị nhập vào là 333.3, kết quả là:
    333.3 centimeters tương đương 10.9 feet.
    333.3 centimeters tương đương 131.2 inches.

    3. Tìm giá trị của iResult cho những câu lênh sau:

    int iResult, a = 10, b = 8, c = 6, d = 5, e = 2;
    iResult = a - b - c - d;
    iResult = a - b + c - d;
    iResult = a + b / c / d;
    iResult = a + b / c * d;
    iResult = a / b * c * d;
    iResult = a % b % c % d;
    iResult = a - (b - c) - d;
    iResult = (a - (b - c)) - d;
    iResult = a - ((b - c) - d);
    iResult = a % (b % c) * d * e;
    iResult = a + (b - c) * d - e;
    iResult = (a + b) * c + d * e;
    iResult = (a + b) * (c / d) % e;
    Đã được chỉnh sửa lần cuối bởi Solokop : 21-01-2007 lúc 04:11 PM.
    Nói là một chuyện, làm là một chuyện. Chi bằng ta làm xong rồi hãy nói như vậy thì nói và làm sẽ là một chuyện.

  7. #7
    Ngày gia nhập
    10 2006
    Bài viết
    107

    Bài 6 : Nhập và xuất trong C

    Giới thiệu :

    - Trong bất kỳ ngôn ngữ lập trình nào, việc nhập giá trị cho các biến và in chúng ra sau khi xử lý có thể được làm theo hai cách:
    + Thông qua phương tiện nhập xuất chuẩn (I/O)
    + Thông qua những tập tin.

    - Trong phần này ta sẽ nói về chức năng nhập và xuất cơ bản. Nhập và xuất (I/O) luôn là các thành phần quan trọng của bất kỳ chương trình nào. Để tạo tính hữu ích, chương trình của bạn cần có khả năng nhập dữ liệu vào và hiển thị lại những kết quả của nó.
    - Trong C, thư viện chuẩn cung cấp những thủ tục cho viêc nhập xuất. Thư viện chuẩn có những hàm quản lý các thao tác nhập/ xuất cũng như các thao tác trên ký tự và chuỗi. Trong bài học này, tất cả những hàm dùng để đọc dữ liệu vào từ thiết bị nhập chuẩn và tất cả những hàm xuất dùng để viết kết quả ra thiết bị xuất chuẩn. Thiết bị nhập chuẩn thông thường là bàn phím. Thiết bị xuất chuẩn thông thường là màn hình (console). Nhập và xuất ra có thể được định hướng đến tập tin hay từ tập tin thay vì thiết bị chuẩn. Những tập tin có thể được lưu trên đĩa hay trên bất cứ thiết bị lưu trữ nào khác. Dữ liệu đầu ra cũng có thể được gửi đến máy in.

    1.Tập tin tiêu đề <stdio.h>

    - Trong các ví dụ trước, ta từng viết dòng mã sau:

    Code:
    #include <stdio.h>
    - Đây là lệnh tiền xử lý (preprocessor command). Trong C chuẩn, ký hiệu # nên đặt tại cột đầu tiên. stdio.h là một tập tin và được gọi là tập tin tiêu đề (header). Nó chứa các macro cho nhiều hàm nhập và xuất được dùng trong C. Hàm printf(), scanf(), putchar()getchar() được thiết kế theo cách gọi các macro trong tập tin stdio.h để thực thi các công việc tương ứng.

    2.Nhập xuất trong C (input anh output)

    - Thư viện chuẩn trong C cung cấp hai hàm để thực hiện các yêu cầu nhập và xuất có đinh dạng. Chúng là:

    Code:
    printf() - Hàm xuất có định dạng.
    scanf() – Hàm nhập có định dạng.
    - Những hàm này gọi là những hàm được định dạng vì chúng có thể đọc và in dữ liệu ra theo các định dạng khác nhau được điều khiển bởi người dùng. Bộ định dạng qui định dạng thức mà theo đó giá trị của biến sẽ được nhập vào và in ra.

    3.printf()

    - Cấu trúc câu lệnh:

    Code:
    printf(“control string”, argument list);
    - Trong đó control string bao gồm những ký tự văn bản và các lệnh định dạng. Các ký tự dấu trắng, phím tab và dấu xuống dòng không in được. Dưới đây bảng mã định dạng của printf(), quy ước in và các ký tự đặc biệt trong chuỗi điều khiển.

    <picture>

    - Bổ từ (modifier) cho các lệnh định dạng trong printf()
    + Bổ từ "-" : dữ liệu sẽ được canh trái bên trong không gian dành cho nó, chúng sẽ được in bắt đầu từ vị trí ngoài cùng bên trái.
    + Bổ từ xác định độ rộng : chúng có thể được dùng với kiểu: float, double hay char array (chuỗi-string). Bổ từ xác định độ rộng là một số nguyên xác định độ rộng nhỏ nhất của trường dữ liệu. Các trường dữ liệu có độ rộng nhỏ hơn sẽ cho canh phải trong kết quả của trường dữ liệu. Các dữ liệu có kích thước lớn hơn sẽ được in bằng cách thêm những vị trí cho đủ yêu cầu.
    + Bổ từ xác định độ chính xác : chúng có thể được dùng với kiểu float, double hay char array, string. Bổ từ xác định độ rộng chính xác được viết dưới dạng .m với m là một số nguyên. Nếu xử dụng với kiểu float và double, chuỗi số chỉ ra số con số tối đa có thể được in ra phía bên phải dấu chấm thập phân. Nếu phần phân số của các mục dữ liệu kiểu float hay double vượt quá độ rộng con số chỉ trong bổ từ, thì số đó sẽ được làm tròn. Nếu chiều dài chuỗi vượt quá chiều dài chỉ định thì chuỗi sẽ được cắt bỏ phần dư ra ở phía dưới. Một vài số "0" sẽ được thêm vào nếu số con số thực sự trong một mục dữ liệu ít hơn được chỉ định trong bổ từ. Tương tự, các khoảng trắng sẽ được thêm vào cho chuỗi ký tự.
    -> Bổ từ "0" : Theo mặc định, việc thêm vào một trường được thực hiện với các khoảng trắng. Nếu người dùng muốn thêm vào trường với số không "0", bổ từ này phải được dùng.
    -> Bổ từ "1" : Bổ từ này có thể được dùng để hiển thị số nguyên như: long int hay một tham số kiểu double. Mã định dạng tương ứng cho nó là %ld
    -> Bổ từ "h" : Bổ từ này được dùng để hiển thị kiểu short integer. Mã định dạng tương ứng cho nó là %hd.
    -> Bổ từ "*" : Bổ từ này được dùng khi người dùng không muốn chỉ trước độ rộng của trường mà muốn chường trình xác định nó. Nhưng khi đi với bổ từ này, một tham số đựoc yêu cầu phải chỉ ra rộng trường cụ thể. Dưới đây là một vài ví dụ về bổ từ...

    Ví dụ 1 :

    C Code:
    1. /*Chuong trinh nay trinh bay cach dung bo tu trong printf()*/
    2. #include <stdio.h>
    3.  
    4. void main()
    5. {
    6.    printf("The number 555 is various forms: \n");
    7.    printf("Without any modifier: \n");
    8.    printf("[%d] \n", 555);
    9.    printf("With - modifier: \n");
    10.    printf("[%-d] \n", 555);
    11.    printf("With digit string 10 as modifier: \n");
    12.    printf("[%10d] \n", 555);
    13.    printf("With 0 as modifier: \n");
    14.    printf("[%0d] \n", 555);
    15.    printf("With 0 and digit string 10 as modifiers: \n");
    16.    printf("[%010d] \n", 555);
    17.    printf("With -, 0 and digit string 10 as modifiers: \n");
    18.    printf("[%-010d] \n", 555);
    19. }

    Ví dụ 2 :

    C Code:
    1. /*Chuong trinh nay trinh bay cach dung bo tu trong printf()*/
    2. #include <stdio.h>
    3. void main()
    4. {
    5.    printf("The number 555.55 in various forms: \n");
    6.    printf("In float form without modifiers: \n");
    7.    printf("[%f] \n", 555.55);
    8.    printf("In exponential form without any modifier: \n");
    9.    printf("[%e] \n", 555.55);
    10.    printf("In float form with - modifier: \n");
    11.    printf("[%-f] \n", 555.55);
    12.    printf("In float form with digit string 10.3 as modifier \n");
    13.    printf("[%10.3f] \n", 555.55);
    14.    printf("In float form with 0 as modifier: \n");
    15.    printf("[%0f] \n", 555.55);
    16.    printf("In float form with 0 and digit string 10.3");
    17.    printf("as modifier: \n");
    18.    printf("[%010.3f] \n", 555.55);
    19.    printf("In float form with -, 0");
    20.    printf("and digit string 10.3 as modifiers: \n");
    21.    printf("[%-010.3f] \n", 555.55);
    22.    printf("In exponential form with 0");
    23.    printf("and digit string 10.3 as modifier: \n");
    24.    printf("[%010.3e] \n", 555.55);
    25.    printf("In exponential form with -, 0");
    26.    printf(" and digit string 10.3 as modifiers: \n");
    27.    printf("[%-010.3e]  \n\n", 555.55);
    28. }

    4. scanf()

    - Hàm scanf() được sử dụng để nhập dữ liệu. Khuôn dạng chung của hàm scanf() như sau:

    C Code:
    1. scanf("Chuỗi các định dạng","Danh sách các tham số");

    - Định dạng được sử dụng bên trong câu lệnh printf() cũng được sử dụng cùng cú pháp trong các câu lệnh scanf(). Những lệnh định dạng, bao gồm bổ từ và danh sách tham số được bàn luận cho printf() thì cũng hợp lệ cho scanf(), chúng tuân theo một số đặc điểm sau:
    + Sự khác nhau trong danh sách tham số giữa printf() và scanf(): Hàm printf() dùng các tên biến, hằng số, hằng chuỗi và các biểu thức, nhưng scanf() sử dụng những con trỏ tới các biến. Một con trỏ tới một biến là một mục dữ liệu chức đựng địa chỉ của nơi mà biến được cất giữ trong bộ nhớ. Những con trỏ sẽ được bàn luận chi tiết ở chương sau. Khi sử dụng scanf() cần tuân theo những quy tắc cho danh sách tham số:
    -> Nếu ta muốn nhập giá trị cho một biến có kiểu dữ liệu cơ bản, gõ và tên biến cùng với ký hiệu & trước nó.
    -> Khi nhập giá trị cho một biến thuộc kiểu dữ liệu dẫn xuất (không phải thuộc bốn kiểu dữ liệu cơ bản char, int, float, double), không sử dụng & trước tên biến.
    + Sự khác nhau trong lệnh định dạng giữa printf() và scanf(): Không có tùy chọn %g. Mã định dạng %f và %e có cũng hiệu quả tác động. Cả hai nhận một ký hiệu tùy chọn, một chuỗi các con số có hay không có dấu chấm thập phân và một trường số mũ tùy chọn.
    - Cách thức hoạt động của scanf(): nó sử dụng những ký tự không được in như ký tự khoảng trắng, ký tự phân cách (tab), ký tự xuống dòng để quyết định khi nào một trường nhập kết thúc và bắt đầu. Có sự tương ứng giữa lệnh định dạng với những trường trong danh sách tham số theo một thứ tự xác định, bỏ qua những ký tự khoảng trắng bên trong. Do đó, đầu vào có thể được trải ra hơn một dòng, miễn là chúng ta có it nhất một ký tự phân cách, khoảng trắng hay hàng mới giữa các trường nhập vào. Nó bỏ qua những khoảng trắng và ranh giới hàng để thu được dữ liệu.

    Ví dụ 1:

    C Code:
    1. /*Chuong trinh mo ta viec dung ham scanf()*/
    2.  
    3. #include <stdio.h>
    4. void main()
    5. {
    6.    int a;
    7.    float d;
    8.    char ch, name[40];
    9.    printf("Please enter the date \n");
    10.    scanf("%d %f %c %s", &a, &d, &ch, name);
    11.    printf("\nThe values accepted are: %d, %f, %c, %s", a, d, ch, name);
    12. }

    Ví dụ 2:

    C Code:
    1. /*Chuong trinh mo ta viec dung ham scanf()*/
    2.  
    3. #include <stdio.h>
    4.  
    5. void main()
    6. {
    7.    char line[80]; /*line[80] la mot mang luu 80 ky tu, mang chung ta se noi toi sau*/
    8.    scanf("% [ABCDEFGHIJMNOPQRSTUVWXYZ]", line);
    9. }

    5. Bộ nhớ đệm nhập và xuất (Buffered I/O)

    - Ngôn ngữ C bản thân nó không định nghĩa các thao tác nhập và xuất. Tất cả thao tác nhập và xuất được thực hiện bởi các hàm có sẵn trong thư viện hàm của C. Thư viện hàm C chứa một hệ thống hàm riếng mà nó điều khiển các thao tác này. Đó là:
    + Bộ nhớ đệm Nhập và Xuất - được dùng để đọc và viết các ký tự ASCII
    - Một vùng đệm là nơi lưu trữ tạm thời, nằm trên bộ nhớ máy tính hoặc trên thẻ nhớ của bộ điều khiển thiết bị (controller card). Các ký tự nhập vào từ bàn phím được đưa vào bộ nhớ và đợi đến khi người dùng nhấn phím return hay enter thì chúng sẽ được thu nhận như một khối và cung cấp cho chương trình. Bộ nhớ đệm nhập và xuất có thể được phân thành:
    + Thiết bị nhập/ xuất chuẩn (Console I/O
    + Tập tin đệm nhập/ xuất (Buffered File I/O)
    - Các hàm đơn giản nhất của Thiết bị nhập/ xuất chuẩn là:
    Code:
    getchar() - Đọc một và chỉ một ký tự từ bàn phím.
    putchar() - Xuất một ký từ đơn ra màn hình.
    6. getchar()

    - Hàm này được dùng để đọc dữ liệu nhập vào, chỉ một ký tự tại một thời điểm từ bàn phím. Trong hầu hết việc thực thi C, khi dùng getchar(), các ký tự nằm trong vùng đệm cho đến khi người dùng nhấn phím xuống dòng. Vì vậy nó sẽ đợi cho đến khi phím Enter được gõ. Hàm getchar() không có tham số, nhưng vấn phải có cặp dấu ngoặc đơn. Nó đơn giản lấy về ký tự tiếp theo và sẵn sàng đưa ra cho chương trình. Chúng ta nói rằng hàm này trả về một giá trị có kiểu ký tự.

    Ví dụ

    C Code:
    1. /*Chuong trinh trinh bay cach dùng getchar()*/
    2.  
    3. #include <stdio.h>
    4. void main()
    5. {
    6.    char letter;
    7.    printf("\nPlease enter my character: ");
    8.    letter = getchar();
    9.    printf("\nThe character entered by you is %c. ", letter);
    10. }

    7. putchar()

    - putchar() là hàm xuất ký tự trong C, nó sẽ xuất một ký tự lên màn hình tại vị trí con trỏ màn hình. Hàm này yêu cầu một tham số. Tham số của hàm putchar() đựoc thể hiện ở bảng dứoi đây:

    <picture>

    Ví dụ

    C Code:
    1. /* Chuong trinh nay trinh bay viec su dung hang và dinh dang trong ham putchar() */
    2.  
    3. #include <stdio.h>
    4. void main()
    5. {
    6.    putchar("H"); putchar("\n");
    7.    putchar("\t");
    8.    putchar("E"); putchar("\n");
    9.    putchar("\t"); putchar("\t");
    10.    putchar("L"); putchar("\n");
    11.    putchar("\t"); putchar("\t"); putchar("\t");
    12.    putchar("L"); putchar("\n");
    13.    putchar("\t"); putchar("\t"); putchar("\t");
    14.    putchar("\t");
    15.    putchar("O");
    16. }

    Kết thúc bài 6

    Bài tập tự làm

    1. A. Hãy dùng câu lệnh printf() để:
    . a) Xuất ra giá trị của biến số nguyen sum.
    . b) Xuất ra chuỗi văn bản "Welcome", tiếp theo là một dòng mới.
    . c) Xuất ra biến ký tự letter.
    . d) Xuất ra biến số thực discount.
    . e) Xuất ra biến số thực dump có 2 vị trí phần thập phân.

    1. B. Dùng câu lênh scanf() và thực hiện:
    . a) Đọc giá trị thập phân từ bàn phím vào biến số nguyên sum.
    . b) Đọc một giá trị số thực vào biến discount_rate.

    2. Viết một chương trình xuất ra giá trị ASCII của các ký tự 'A' và 'b'

    3. Xét chương trình sau:

    C Code:
    1. #include <stdio.h>
    2. void main()
    3. {
    4.    int breadth;
    5.    float length, height;
    6.    scanf("%d %f %6.2f", breadth, &length, height);
    7.    printf("%d %f %e", &breadth, length, height);
    8. }

    - Sửa lỗi chương trình trên.

    4. Viết một chương trình nhạp vào name, basic, daper (phần trăm của D.A), bonper (phần trăm lợi tức) và loandet (tiền vay bị khấu trừ) cho một nhân viên. Tính lương như sau:

    Code:
    salary = basic + basic + daper/100 + bonper * bassic/100 - loandet
    - Bảng dữ liệu:
    Name - Bassic - Daper - Bonper - Loandet
    Mark 2500 55 33.33 250.00
    - Tính salary và xuất ra kết quả dưới các đầu đề sau (Lương được in ra gần dấu đôla($)):
    Name - Basic - Salary
    - Viết một chương trình yêu cầu nhập tên, họ của bạn và sau đó xuất ra tên, họ theo dạng là họ, tên.
    Đã được chỉnh sửa lần cuối bởi Solokop : 26-01-2007 lúc 02:19 PM.
    Nói là một chuyện, làm là một chuyện. Chi bằng ta làm xong rồi hãy nói như vậy thì nói và làm sẽ là một chuyện.

  8. #8
    Ngày gia nhập
    10 2006
    Bài viết
    107

    Bài 7 : Điều kiện - Lý thuyết

    Giới thiệu

    - Các vấn đề được đề cập từ đầu đến nay cho phép chúng ta viết nhiều chương trình. Tuy nhiên các chương trình đó có nhược điểm là bất cứ khi nào được chạy, chúng luôn thực hiện một chuỗi các thao tác giống nhau, theo cách thức giông nhau. Trong khi đó, chúng ta thường xuyên chỉ cho phép thực hiện các thao tác nhất định nếu nó thỏa mãn điều kiện đặt ra.

    1. Cậu lênh điều kiện là gì?

    - Các câu lện điều kiện cho phép chúng ta thay đổi luồng chương trình. Dựa trên một điều kiện đó, một cậu lệnh hay một chuỗi các câu lệnh có thể được thực hiện hoặc không. Hầu hết các ngôn ngữ lập trình đều sử dụng lênh if để đưa ra điều kiện. Nguyên tắc thực hiện như sau nếu điều kiện đưa ra là đúng (true), chương trình sẽ thực hiện một công việc nào đó, nếu điều kiện đưa ra là sai (false), chương trình sẽ thực hiện một công việc khác.

    2. Các câu lệnh lựa chọn:

    - Câu lệnh if.
    - Câu lệnh switch.

    3. Câu lệnh "if"

    - Cho phép ta đưa ra các quyết định dụa trên việc kiểm tra một điều kiện nào đó là đúng(true) hay sai(false). Cấu trúc câu lệnh

    Code:
    if (biểu thức)
       Các câu lệnh;
    - Biểu thức phải luôn đặt trong dấu ngoặc (). Mệnh đề theo sau từ khóa if là một điều kiện (hoặc một biểu thức điều kiện) cần được kiểm tra. Tiếp đến là một lệnh hay một tập các lệnh sẽ được thực thi khi điều kiện (hoặc biểu thức điều kiện) có kết quả true.

    4. Câu lệnh "if...else"

    - Ở trên chúng ta biết dạng đơn giải nhất của câu lệnh if, cho phép chúng ta lựa chọn để thực hiện hay không một câu lệnh hoặc một chuỗi các lệnh. C cũng cho phép ta lựa chọn trong hai khối lệnh để thực hiện bằng cách dùng cấu trúc if...else. Cú pháp như sau:

    Code:
    if (biểu thức)
    {
       câu lệnh 1;
    }
    else
    {
       câu lệnh 2;
    }
    - Nếu biểu thức điều kiện trên đúng (khác 0), câu lệnh 1 được thực hiện. Nếu nó sai (khác 0) câu lệnh 2 được thực hiện. Câu lệnh sau ifelse có thể là lệnh đơn hoặc lệnh phức. Các câu lệnh đó nên được lùi vào trong dòng mặc dù không bắt buộc. Cách viết đó giúp ta nhìn thấy ngay những lệnh nào sẽ được thực hiện tùy theo kết quả của biểu thức điều kiện. Các lệnh if *****g nhau là lệnh if bên trong một lệnh if khác.

    5. Câu lệnh "switch"

    - Câu lệnh switch cho phép ta đưa ra quyết định co nhiều cách lựa chọn, nó kiểm tra giá trị của một biểu thức trên một danh sách các hằng số nguyên hoặc ký tự. Khi nó tìm thấy một giá trị trong danh sách trùng với giá trị của biểu thức điều kiện, các câu lệnh gắn với giá trị đó sẽ được thực hiện. Cú pháp tổng quát của lệnh switch như sau:

    Code:
    switch (biểu thức)
    {
       case hằng 1:
          chuỗi câu lệnh;
          break;
       case hằng 2:
          chuỗi câu lệnh;
          break;
       case hằng 2:
          chuỗi câu lệnh;
          break;
       default:
          chuỗi câu lệnh;
    }
    - Ở đó, switch, casedefault là các từ khóa, "chuỗi câu lệnh" có thể là lệnh đơn hoặc lện ghép và không cần đặt trong cặp dấu ngoặc. "biểu thức" theo sau từ khóa switch phải được đặt trong dấu ngoặc (), và toàn bộ phần thân của lệnh switch phải được đặt trong cặp ngoặc nhọn {}. Kiểu dữ liệu kết quả của "biểu thức" và kiểu dữ liệu của các hằng theo sau từ khóa case phải đồng nhất. Chú ý, hằng số sau case chỉ có thể là một hằng số nguyên hoặc hằng ký tự. Nó cũng có thể là các hằng biểu thức - những biểu thức không chứa bất kỳ một biến nào. Tất cả các giá trị của case phải khác nhau.
    - Trong câu lệnh switch, biểu thức được xác định giá trị, giá trị của nó được so sánh với từng giá trị gắn với từng case theo thứ tự đã chỉ ra. Nếu một giá trị trong một case trùng với giá trị của biểu thức, các lệnh gắn với case đó sẽ được thực hiện. Lệnh break (sẽ nói ở phần sau) cho phép thoát ra khỏi switch. Nếu không dùng lệnh break, các câu lệnh gắn với case bên dưới sẽ được thực hiện không kể giá trị của nó có trùng với giá trị của biểu thức điều kiện hay không. Chương trình cứ tiếp tục hiện như vậy cho đến khi gặp một lệnh break. Chính vì thế, lệnh break được coi là lệnh quan trọng nhất khi dùng switch.
    - Các câu lệnh gắn với default sẽ được thực hiện nếu không có case nào thỏa mãn. Lệnh default là tùy chọn. Nếu không có lệnh default và không có case nào thỏa mãn, không có hành động nào được thực hiện. Có thể thay đổi thứ tự của casedefault.

    Hết bài 7

    Bài tập tự làm

    1. Viết chương trình nhập vào hai số a và b, và kiểm tra xem a có chia hết cho b hay không.

    2. Viêt chương trình nhập vào hai số và kiểm tra xem tích của hai số này bằng hay lớn hơn 1000.

    3. Viêt chương trình nhập vào hai số. Tính hiệu của hai số này. Nếu hiệu số này bằng với một trong hai số đã nhập thì hiển thị thông tin:

    Code:
    Hiệu bằng giá trị <giá trị của sô đã nhập vào>
    Nếu hiệu không bằng với một trong hai giá trị đã nhập, hiển thị thông tin:
    Hiệu không bằng bất kỳ giá trị nào đã được nhập
    4. Công ty Montek đưa ra mực trợ cấp cho nhân viên ứng với từng loại nhân viên như sau:

    Code:
    Loại nhân viên - Mức trợ cấp
    A                          300
    B                          250
    Những loại khác       100
    - Tính lương cuối tháng của nhân viên (Mưc lương và loại nhân viên được nhập từ người dùng).

    5. Viết chương trình xếp loại sinh viên theo các qui luật dưới đây:

    Code:
    Nếu điểm => 75              - Loại A
    Nếu 60 <= điểm < 75       - Loại B
    Nếu 45 <= điểm < 60       - Loại C
    Nếu 35 <= điểm < 45       - Loại D
    Nếu điểm > 35                - Loại E
    Đã được chỉnh sửa lần cuối bởi Solokop : 26-01-2007 lúc 03:25 PM.
    Nói là một chuyện, làm là một chuyện. Chi bằng ta làm xong rồi hãy nói như vậy thì nói và làm sẽ là một chuyện.

  9. #9
    Ngày gia nhập
    10 2006
    Bài viết
    107

    Bài 8 : Điều kiện - Thực hành

    1. Lệnh "if"

    - Chương trình để tính tiền hoa hồng phải trả cho người bán hàng dựa vào số lượng hàng họ bán được.

    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3.  
    4. void main()
    5. {
    6.    float com = 0, sales_amt;
    7.    clrscr();
    8.    printf("Enter the Sales Amount: ");
    9.    scanf("%f", &sales_amt);
    10.    if (sales_amt >= 10000)
    11.    {
    12.       com = sales_amt * 0.1;
    13.    }
    14.    printf("\n Commission = %f", com);
    15. }

    2. Lệnh "if-else"

    - Chương trình hiển thị số lớn hơn trong hai số.

    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3.  
    4. void main()
    5. {
    6.    int Num1, Num2;
    7.    clrscr();
    8.    Num1 = 540;
    9.    Num2 = 243;
    10.    if (Num1 > Num2)
    11.    {
    12.       printf("\n The Greater Number is : %d", Num1);
    13.    }
    14.    else
    15.    {
    16.       printf("\n The Greater Number is : %d", Num2);
    17.    }
    18. }

    3. Lệnh "if-else-if"

    - Chương trình hiển thị số lớn hơn trong hai số, hoặc sẽ hiển thị các số bằng nhau.

    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3.  
    4. void main()
    5. {
    6.    int num1, num2;
    7.    num1 = 77;
    8.    num2 = 90;
    9.    if (num1 == num2)
    10.    {
    11.       printf("\n The Numbers are equal");
    12.    }
    13.    else if (num1 < num2)
    14.    {
    15.       printf("\n The Larger Number is: %d", num2);
    16.    }
    17.    else
    18.    {
    19.       printf("\n The Larger Number is: %d", num1);
    20.    }
    21. }

    4. Lệnh "if" *****g nhau

    - Bài toán : Công ty MONTEK đã ra quyết định chi tiền hoa hồng cho bộ phận bán hàng tuy thuộc vào doanh thu bán sản phẩm. Tỷ lệ hoa hồng được tính như sau:

    Code:
    Doanh thu bán     -     Loại sản phẩm     -     Hoa hồng
    > 10,000$                          A                       10%
                                           --                       8%
    <= 10,000$                        --                       5%
    - Tính tiền hoa hồng cuối mỗi tháng. Trong chương trình này chúng ta sẽ tính tiền hoa hồng dựa vào loại sản phẩm và lượng sản phẩm bán được.

    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3.  
    4. void main()
    5. {
    6.    float com = 0, sales_amt;
    7.    char grade;
    8.    clrscr();
    9.    printf("\n Enter the sales Amount: ");
    10.    scanf("%f", &sales_amt);
    11.    printf("\n Enter the Grade: ");
    12.    scanf("%c", &grade);
    13.    if (sales_amt > 10000)
    14.    {
    15.       if (grade == 'A')
    16.       {
    17.          com = sales_amt * 0.1;
    18.       }
    19.       else
    20.       {
    21.          com = sales_amt * 0.08;
    22.       }
    23.    }
    24.    else
    25.    {
    26.        com = sales_amt * 0.05;
    27.    }
    28.    printf("\n Comission = %f", com);
    29. }

    5. Lệnh "switch"

    - Chương trình hiển thị kết quả tùy vào toán tử toán học được sử dụng.

    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3.  
    4. void main()
    5. {
    6.    int num1, num2, res;
    7.    char op;
    8.    num1 = 90;
    9.    num2 = 33;
    10.    op = '-';
    11.    clrscr();
    12.    switch (op)
    13.    {
    14.        case '+':
    15.           res = num1 + num2;
    16.           printf("\n The Sum is: %d", res);
    17.           break;
    18.        case '-':
    19.           res = num1 - num2;
    20.           printf("\n The Number after Subtraction: %d", res);
    21.           break;
    22.        case '/':
    23.           res = num1 / num2;
    24.           printf("\n The Number after Division: %d", res);
    25.           break;
    26.        case '*':
    27.           res = num1 * num2;
    28.           printf("\n The Number after multiplication: %d", res);
    29.           break;
    30.        default :
    31.           printf("\n Invalid");
    32.           break;
    33.    }
    34. }

    Bắt buộc

    - Một học viên được kiểm tra 3 môn học. Mỗi bài kiểm tra tối đa là 100 điểm. Điểm trung bình của học viên được tính, và học viên được xếp loại tùy thuộc vào kết quả của điểm trung bình theo qui luật sau:

    Code:
    Điểm trung bình      -     Loại
    >=90                           E+
    80->90                        E
    70->80                        A+
    60->70                        A
    50->60                        B+
    < 50                            Rớt
    - Hướng dẫn thực hiện :
    + Nhập vào điểm cho 3 môn học và lưu trong 3 biến khác nhau là M1, M2 và M3.
    + Tính điểm trung bình (avg = (M1 + M2 + M3)).
    + Xác định loại của học viên dựa trên điểm trung bình đã tính.
    + Hiển thị loại.

    Kết thúc bài 8.

    Bài tập tự làm

    1. Khai báo hai biến x và y. Gán trị cho các biến này. Số x được in ra màn hình chỉ khi x nhỏ hơn 2000 và lớn hơn 3000, và số y chỉ được in ra màn hình khi y nằm giữa 100 và 500.

    2. Viêt chương trình trình bày khả năng máy tính của bạn. Người dùng nhập vào một ký tự trong bảng chữ cái và chương trình hiển thị ngôn ngữ lập trình tương ứng. Một vài ví dụ nhập và xuất như sau:

    Code:
    Nhập          -         Xuất
    A hoặc a               Ada
    B hoặc b               Basic
    C hoặc c               COBOL
    D hoặc d               dBASE III
    F hoặc f                Fortran
    P hoặc p               Pascal
    V hoặc v               Visual C++
    3. Nhập giá trị vào ba biến và in ra màn hình giá trị lớn nhất.
    Đã được chỉnh sửa lần cuối bởi Solokop : 27-01-2007 lúc 02:01 PM.
    Nói là một chuyện, làm là một chuyện. Chi bằng ta làm xong rồi hãy nói như vậy thì nói và làm sẽ là một chuyện.

  10. #10
    Ngày gia nhập
    10 2006
    Bài viết
    107

    Bài 9: Vòng lặp - Lý thuyết

    Giới thiệu

    - Một trong những điểm mạnh lớn nhất của máy tính là khả năng thực hiện một chuỗi các lệnh lặp đi lặp lại. Điều đó có được là do sử dụng các cấu trúc lặp trong ngôn ngữ lập trình. Trong bài này bạn sẽ tìm hiểu các loại vòng lặp khác nhau C.

    1. Vòng lặp

    - Vòng lặp là một đoạn mã lệnh trong chương trình được thực hiện lặp đi lặp lại cho đến khi thỏa mãn một điều kiện nào đó. Vòng lặp là một khái niệm cơ bản trong lập trình cấu trúc. Trong C có các loại vòng lặp sau (for, while, do...while)
    - Ta sử dụng các toán tử quan hệ và toán tử logic trong các biểu thức điều kiện để điều khiển sự thực hiện của vòng lặp.

    2. Vòng lặp "for"

    - Cú pháp tổng quát của vòng lặp "for" như sau:

    Code:
      for (khởi tạo giá trị cho biến điều khiển; biểu thức điều kiện; biểu thức thay đổi giá trị của biến điều khiển)
      {
         Cậu lệnh (các câu lệnh);
      }
    - Khởi tạo giá trị cho biến điều khiển là một câu lệnh gán giá trị ban đầu cho biến điều khiển trước khi thực hiện vòng lặp. Lênh này chỉ được thực hiện duy nhất một lần. Biểu thức điều kiện là một biểu thức quan hệ, xác định điều kiện thoát cho vòng lặp. Biểu thức thay đổi giá trị của biến điều khiển xác định biến điều khiển sẽ bị thaddooior thế nào sau mỗi lần vòng lặp được lặp lại (thường là tăng hoặc giảm giá trị của biến điều khiển). Ba phần trên được phân cách bởi dấu chấm phẩy. Câu lệnh trong than vòng lặp có thể là một lệnh duy nhất (lệnh đơn) hoặc lệnh phức (nhiều lệnh).
    - Vòng lặp for sẽ tiếp tục được thực hiện chừng nào mà biểu thức điều kiện còn [b]đúng (true)[b]. Khi biểu thức điều kiện là sai (false), chương trình sẽ thoát ra khỏi vòng lặp for
    - Toán tử "phẩy (comma)": phần biểu thức trong toán tử for có thể được mở rộng để thêm vào các lệnh khởi tạo hay các lệnh thay đổi giá trị của biến. Cú pháp như sau:

    Code:
    Biểu_thức_1, Biểu_thức_2
    - Các biểu thức trên được phân tách bởi toán tử phẩy ",", và được thực hiên từ trái sang phải. Thứ tự của các biểu thức là quan trọng trong trường hợp giá trị của biểu thức thứ hai phục thuộc vào giá trị của biểu thức thứ nhất. Toán tử này có độ ưu tiên thấp nhất trong các toán tử của C.

    3. Vòng lặp "for" lông nhau

    - Một vòng lặp for được gọi là lông nhau khi nó nằm bên trong một vòng lặp for khác. Nó sẽ có dạng tương tự như sau:

    Code:
    for (i = 1; i < max1; i++)
    {
       ...
       ...
       for (j = 1; j < max1; j++)
       {
           ...
           ...
       }
       ...
    }
    - Vòng lặp for khi không có bất kỳ thành phần nào sẽ là một vòng lặp vô tận. Tùy nhiên, lệnh break bên trong vòng lặp sẽ cho phép thoát khỏi vòng lặp.

    4. Vòng lặp "while"

    - Cấu trúc lặp thứ hai trong C là vòng lặp while. Cú pháp tổng quát như sau:

    Code:
    while (điều_kiện_là_đùng)
       câu_lênh;
    - Trong đó, câu_lệnh có thể là rỗng, hay một lệnh đơn, hay một khối lệnh. Nếu vòng lặp while chứa một tập lệnh thì chúng phải được đặt trong cặp ngoặc xoắn {}. điều_kiện có thể là biểu thức bất kỳ. Vòng lặp sẽ được thực hiện lặp đi lặp lại khi điều kiện trên là đúng (true). Chương trình sẽ chuyển đến thực hiện lệnh tiếp theo sau vòng lặp khi điều kiện trên là sai (false).
    - Vòng lặp for có thể được sử dụng khi số lần thực hiện vòng lặp đã được xác định trước. Khi số lần lặp không biết trước, vòng lăp while có thể được sử dụng.

    5. Vòng lặp "do...while"

    - Vòng lặp do ... while còn được gọi là vòng lặp do trong C. Không giống như vòng lặp forwhile, vòng lặp này kiểm tra điều kiện tại cuối vòng lặp. Điều này có nghĩa là vòng lặp do...while sẽ được thực hiện ít nhất một lần, ngay cả khi điều kiện la sai (false) ở lần chạy đầu tiên. Cú pháp tổng quát của vòng lặp do...while viết như sau:

    Code:
    do
    {
       câu_lệnh;
    } while (điều_kiện);
    - Cặp dấu ngoặc "{}" là không cần thiết khi chỉ có một câu lệnh hiện diện trong vòng lặp, nhưng việc sử dụng dấu ngoặc "{}" là một thói quen tốt. Vòng lặp do...while lặp đến khi điều_kiện mang giá trị false. Trong vòng lặp do...while, câu_lệnh (khối các câu lệnh) sẽ được thực thi trước, và sau đó điều_kiện được kiểm tra. Nếu điều_kiệntrue, chương trình sẽ quay lại thực hiện lệnh do. Nếu điều kiện là false, chương trình chuyển đến thực hiện lệnh nằm sau vòng lặp. Tương tự như vòng lặp for, các vòng lặp whiledo...while cũng có thể *****g vào nhau.

    6. Các lệnh nhẩy

    a. Lệnh "return"

    - Lệnh return dùng để quay lại vị trí gọi hàm sau khi các lệnh trong hàm đó được thực thi xong. Trong lệnh return có thể có một giá trị gắn với nó, giá trị đó sẽ được trả về cho chương trình. Cú pháp tổng quát của cậu lệnh return như sau:

    Code:
    return biểu_thức
    - Biểu thức là một tùy chọn (không bắt buộc). Có thể có hơn một lệnh return được sử dụng trong một hàm. Tuy nhiên, hàm sẽ quay trở về vị trí gọi hàm khi gặp lệnh return đầu tiên.

    b. Lệnh "goto"

    - C là một ngôn ngữ lệnh trình có cấu trúc, tuy vậy nó vẫn chưa một số câu lệnh làm phá vỡ cấu trúc chương trình. Đó là 2 lệnh goto, label. Lệnh goto cho phép chuyển điều khiển tới một câu lện bất kỳ nằm trong cùng khối lệnh hay khác khối lệnh bên trong hàm đó. Vì vậy nó vi phạm các qui tắc của một ngôn ngữ lập trình có cấu trúc. Cú pháp tổng quát là:

    Code:
    goto label;
    - Trong đó label là một định danh phải xuất hiện như tiền tố (prefix) của một câu lệnh khác trong cùng một hàm. Dấu chấm phẩy
    ";" sau label đánh dấu sự kết thúc của lệnh goto

    c. Lệnh "break"

    - Câu lệnh break có hai cách dùng. Nó có thể được sử dụng để kết thúc một case trong một câu lệnh switch hoặc để kết thúc ngay một vòng lặp, mà không cần kiểm tra điều kiện vòng lặp.
    - Khi chương trình gặp lệnh break trong một vòng lặp, ngay lập tức vòng lặp được kết thúc và quyền điều khiển chương trình được chuyển đến câu lệnh theo sau vòng lặp.

    d. Lệnh "continue"

    - Lệnh continue kết thúc lần lặp hiện hành và bắt đầu lần lặp kết tiếp. Khi gặp lệnh này trong chương trình, các câu lệnh còn lại trong thân của vòng lặp được bỏ qua và quyền điều khiển được chuyển đến bước đầu của vòng lặp trong lần lặp kế tiếp. Trong trường hợp for, continue thực hiện biểu thức thay đổi của biến điều khiển và sau đó kiểm tra biểu thức điều kiện. Trong trường hợp của lệnh whiledo...while, quyền điều khiển chương trình được chuyển đến biểu thức kiểm tra điều kiện

    7. Hàm "exit()"

    - Hàm exit() là một hàm trong thư viện chuẩn của C. Nó làm việc tương tự như một lệnh chuyển quyền điều khiển, điểm khác nhau chính là các lệnh chuyển quyền điều khiển thường được sử dụng để thoát khỏi một vòng lặp, trong khi exit() được sử dụng để thoát khỏi chương trình. Hàm này sẽ ngay lập tức kết thúc chương trình và quyền điều khiển được trả về cho hệ điều hành. Hàm exit() thường được dùng để kiểm tra một điều kiện bắt buộc cho việc thực thi của một chương trình có được thỏa mãn hay không. Cú pháp tổng quát của hàm exit() như sau:

    Code:
    exit (int mã_trả_về);
    - Ở đó mã_trả_về là một tùy chọn. Số 0 thường được dùng như một mã_trả_về để xác định sự kết thúc chương trình một cách bình thường. Những giá trị khác xác định một vài loại lỗi.

    Kết thúc bài 9

    Bài tập tự làm

    1. Viết chương trình in ra dãy số 100, 95, 90, ..., 5

    2. Nhập vào 2 số num1 và num2. Tìm tổng của tất cả các số lẻ nằm giữa hai số đã được nhập.

    3. Viết chương trình in ra chuỗi Fibonaci (1, 1, 2, 3, 5, 8, 13, ...)

    4. Viêt chương trình để hiển thị theo mẫu sau đây.

    Code:
    1
    12
    123
    1234
    12345
    Code:
    12345
    1234
    123
    12
    1
    5. Viêt chương trình in lên màn hình như sau:


    Code:
    *******
    ******
    *****
    ****
    ***
    **
    *
    Đã được chỉnh sửa lần cuối bởi Solokop : 01-02-2007 lúc 09:42 AM.
    Nói là một chuyện, làm là một chuyện. Chi bằng ta làm xong rồi hãy nói như vậy thì nói và làm sẽ là một chuyện.

Các đề tài tương tự

  1. Tài liệu aptech | Giáo trình C căn bản của aptech đây
    Gửi bởi sieutanbinh1711 trong diễn đàn Tài liệu, ebooks và công cụ
    Trả lời: 5
    Bài viết cuối: 03-01-2014, 04:00 PM
  2. FPT-Aptech hay Aptech ?
    Gửi bởi thanhle_uit trong diễn đàn Kinh nghiệm CNTT
    Trả lời: 12
    Bài viết cuối: 18-05-2013, 11:00 AM
  3. Giáo trình C của aptech
    Gửi bởi vinhphat2808 trong diễn đàn Tài liệu, ebooks và công cụ
    Trả lời: 10
    Bài viết cuối: 15-09-2010, 04:40 PM
  4. Elementary Programming With C ( tài liệu lập trình của Aptech Viet+ ENG+ Bài tập...)
    Gửi bởi emperor.ns trong diễn đàn Tài liệu, ebooks và công cụ
    Trả lời: 2
    Bài viết cuối: 21-05-2009, 05:06 PM
  5. Toàn bộ giáo trình học Aptech ở Hà Nội
    Gửi bởi zkday2686 trong diễn đàn Công cụ, ebooks C#, ASP.NET, và Windows Mobile
    Trả lời: 2
    Bài viết cuối: 15-09-2008, 06:40 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn