Tài liệu Module A – Mở đầu docx

20 389 0
Tài liệu Module A – Mở đầu 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

1. Module A Mở đầu 2 1.1. Ví dụ Hello World .2 1.1.1. Ví dụ 1 .2 1.1.2. Ví dụ 2 2 1.1.3. Ví dụ 3 3 1.2 Sử dụng Borland C++ 5.02 .3 1.2.1. Chạy chương trình bằng C++ 5.02 3 1.2.2 Các lỗi .4 1.2.3. Tìm trợ giúp theo ngữ cảnh .5 1.3. Bài tập thực hành .5 2. Module B Tính toán 5 2.1. Các ví dụ tính toán 5 2.1.1. Ví dụ 1 Gán (=) và hàm in ra (printf) .5 2.1.2. Ví dụ 2 Hàm Nhập vào (scanf) .6 2.1.3. Ví dụ 3 Các biểu thức số học (+, - *, /, %) .6 2.1.4. Ví dụ 4 Các biểu thức quan hệ (= =, >, >=, <, <=, !=) 7 2.1.5. Ví dụ 5 Các biểu thức Logic (||, &&, !) 7 2.1.6. Ví dụ 6 Kiểu dữ liệu hỗn hợp .8 2.1.7. Ví dụ 7 Các toán hạng gán viết tắt (+=, -=, *=, /=, %=, ++, --) .9 2.1.8. Ví dụ 8 Ép kiểu 9 2.2. Bài tập thực hành 10 3. Module C Logic 11 3.1. Ví dụ 11 3.2. Bài tập thực hành 14 3.2.3. Bài thực hành 3 15 4.Module D Các hàm 16 4.1. Ví dụ 16 4.1.1. Ví dụ 1 Khai báo hàm, gọi hàm, định nghĩa hàm .16 4.1.2. Ví dụ 2 Gọi hàm và nhận dữ liệu tham số theo địa chỉ .17 4.2. Bài tập thực hành 17 4.2.1. Bài tập thực hành 1 18 4.2.2. Bài tập thực hành 2 18 4.2.3. Bài tập thực hành 3 .18 1. Module A Mở đầu 1.1. Ví dụ Hello World 1.1.1. Ví dụ 1 /* Chương trình này in một thông điệp */ #include<stdio.h> main() { printf(“Hello, world”); } In thông điệp “Hello, world” trên màn hình. Tất cả các chương trình C đều có một hàm main(), theo sau là dấu bắt đầu “{“ và kết thúc bởi “}”. Thực hiện chương trình C bắt đầu từ hàm main(). Một hay nhiều lệnh được chứa trong cặp dấu ngoặc nhọn (“{“ and “}”) Hàm “printf” được sử dụng để hiện ra màn hình. Tuy nhiên, với chương trình trên, bạn không nhìn thấy dòng nào trên màn hình, bởi vì chương trình kết thúc ngay sau khi thông điệp được in ra. 1.1.2. Ví dụ 2 /* Chương trình in thông điêp */ #include <stdio.h> #include <conio.h> main() { printf(“Hello, world”); getch(); } Hiện 2 Chú thích được chứa trong cặp /* và */ Để chèn tệp “stdio.h” chứa hàm thư viện “printf” được chương trình này sử dụng Hello, world Rồi chờ nhận một ký tự từ bàn phím. Hàm “getch()” được đưa vào để chờ người sử dụng ấn một ký tự từ bàn phím. 1.1.3. Ví dụ 3 /* Chương trình in một thông điệp */ #include <stdio.h> #include <conio.h> main() { printf(“Hello,\nworld”); getch(); } Hiện Hello, world Một ký tự đặc biệt \n được gọi là ký tự xuống dòng, tạo nên bắt đầu một dòng mới. 1.2 Sử dụng Borland C++ 5.02 1.2.1. Chạy chương trình bằng C++ 5.02 1) Mở Borland C++ 5.02 3 2) Chọn File/New/Text Edit 3) Gõ chương trình như đã tả ở trên 4) Chọn Debug/Run để chạy chương trình 1.2.2 Các lỗi Có ba kiểu lỗi: cú pháp, logic, và lỗi khi chạy : 1. Các lỗi cú pháp: Các lỗi này xẩy ra vì các lệnh bị gõ sai, không đúng quy định về cú pháp của ngôn ngữ. Ví dụ, nếu bạn không đặt dấu chấm phẩy (;) sau lệnh như sau printf(“Hello,world”) // lỗi cú pháp (thiếu dấu chấm phẩy) printf("Hello,world"); // Lệnh đúng về cú pháp. 2. Các lỗi logic: Các lỗi này xẩy ra khi các lệnh sai về logic trong chương trình. Ví dụ, giả thiết rằng trong một chương trình 1000 dòng, đáng nhẽ cần một lệnh nhân hai số bị viết nhầm thành cộng hai số. Lệnh sai về logic này tạo ra kết quả sai. Phát hiện các lỗi như vậy là rất khó. 3. Các lỗi khi chạy: Các lỗi này xấy ra khi chạy chương trình không có lỗi cú pháp và lỗi logic. Một số các nguyên nhân của các lỗi này là a. Khi truyền giá trị của biến “age”, mà không phải địa chỉ của biến cho hàm “scanf”, ví dụ scanf( "%d" , age); b. Khi bạn ra lệnh cho máy tính chia một số cho 0. c. Khi bạn ra lệnh cho máy tính tìm logrit của một số âm. d. Khi bạn ra lệnh cho máy tính tìm căn bậc hai của một số nguyên âm. Nếu không chạy chương trình, bạn không có cơ hội để tìm thấy lỗi này. 4 1.2.3. Tìm trợ giúp theo ngữ cảnh Ấn phím F1 trong khi soạn thảo tệp chương trình, trợ giúp cho cụm từ nằm dưới con trỏ sẽ xuất hiện. 1.3. Bài tập thực hành Viết chương trình C để in các thông tin về bạn trên màn hình (tên đầy đủ, địa chỉ nhà riêng, số điện thoại, Địa chỉ Email) như sau My information ================================================== Fulle name : Nguyen Duc Minh Home address : No 5, Lane 6, Phan Dinh Phung street Tel. number : 09 1456 1456 Email address : minhnd@yahoo.com 2. Module B Tính toán 2.1. Các ví dụ tính toán 2.1.1. Ví dụ 1 Gán (=) và hàm in ra (printf) /* In ra Hai biến */ main() { int c = 65; printf(“ASCII code %d is character %c”, c, c); int age = 18; double cashFare = 2.25; printf("\nHis age is %d\nThe cash fare is $%lf\n", age, cashFare); } Hiện ASCII code 65 is character A His age is 18 The cash fare is $2.250000 5 Số chữ số sau dấu chấm thập phân được hiện bởi %lf là 6. Nếu bạn muốn chỉ 2 chữ số sau dấu chấm thập phân được hiện, sử dụng %.2lf Sau đây là danh sách các định dạng kiểu dữ liệu. %f=float, %lf = double, %c=char, %d = decimal, %x = hexadecimal, %o = octal . 2.1.2. Ví dụ 2 Hàm Nhập vào (scanf) /* Nhập và và In ra Hai Biến */ main() { int age; double cashFare; /* Nhập vào */ printf("Enter the boy\'s age : "); /* Nhắc nhập age */ scanf("%d", &age); /* Nhập vào age */ printf("Enter the cash fare :"); /* Nhắc nhập cash fare */ scanf("%lf", &cashFare); /* Nhập vào cash fare */ /* In ra */ printf("His age is %d\nThe cash fare is $%lf\n", age, cashFare); } Nhận dữ liệu vào age và cashFare và lưu dữ liệu vào trong vị trí bộ nhớ tương ứng. 2.1.3. Ví dụ 3 Các biểu thức số học (+, - *, /, %) /* Các Biểu thức Số học */ main() { int quantity; double cost; /* Nhập vào */ printf("Enter the number of apples desired: "); scanf("%d", &quantity); /* Nhập vào số lưựng */ printf("Enter the cost of one apple (in $):"); scanf("%lf", &cost); /* Nhập vào đơn giá */ /* In ra */ printf("\nThat will cost $%lf\n", quantity * cost); } Nếu khi chạy chương trình ta nhập 5 cho số lượng các quả táo và 0.56 cho giá một quả táo, đầu ra chương trình sẽ là: Enter the number of apples desired: 5 Enter the cost of one apple (in $): 0.56 That will cost $2.800000 Nếu bạn muốn hiện 2 chữ số sau chấm thập phân thì thay đổi dòng cuối của chương trình thành : 6 printf("That will cost $%.2lf\n", quantity * cost); sẽ thay đổi dòng cuối in ra như sau: That will cost $2.80 2.1.4. Ví dụ 4 Các biểu thức quan hệ (= =, >, >=, <, <=, !=) /* Các biểu thức quan hệ */ main( ) { int age, childTicket, seniorTicket; printf("What is your age ? "); scanf("%d", &age); childTicket = age <= 12; seniorTicket = age >= 65; printf("You need a child Ticket (1 for yes, 0 for no) : %d\n", childTicket); printf("You need a senior Ticket (1 for yes, 0 for no) : %d\n", seniorTicket); } Kết quả của biểu thức quan hệ là giá trị true hay false. Ngôn ngữ C hiểu giá trị 0 như false và bất kỳ giá trị nào khác là true 2.1.5. Ví dụ 5 Các biểu thức Logic (||, &&, !) /* Các biểu thức Logic */ main( ) { int age, atSchool, childTicket, studentTicket, adultTicket, seniorTicket; printf("What is your age ? "); scanf("%d", &age); printf("Are you at school (1 for yes, 0 for no) ? "); scanf("%d", &atSchool); childTicket = age <= 12; studentTicket = age > 12 && age <= 19 && atSchool == 1; seniorTicket = age >= 65; adultTicket = !childTicket && !studentTicket && !seniorTicket; printf("You need a child Ticket (1 for yes, 0 for no) : %d\n", childTicket); printf("You need a student Ticket (1 for yes, 0 for no) : %d\n", studentTicket); printf("You need a senior Ticket (1 for yes, 0 for no) : %d\n", seniorTicket); 7 printf("You need an adult Ticket (1 for yes, 0 for no) : %d\n", adultTicket); } Xem xét điều kiện cho adultTicket. Điều kiện này là tương đương logic với adultTicket = ! ( childTicket || studentTicket || seniorTicket ); (Luật deMorgan) 2.1.6. Ví dụ 6 Kiểu dữ liệu hỗn hợp • Nâng toán hạng bên phải đến kiểu dữ liệu của toán hạng bên trái nếu toán hạng bên trái có kiểu dữ liệu cao hơn toán hạng bên phải Ví dụ, /* Nâng cấp với các toán tử gán */ main( ) { int loonies; double money; printf("How many loonies do you have ? "); scanf("%d", &loonies); money = loonies; printf("You have $%.2lf\n", money); } Nếu khi chạy chương trình, chúng ta nhập vào 23, sẽ in ra là: How many loonies do you have ? 23 You have $23.00 • Mặt khác, chặt bớt toán hạng phải thành kiểu dữ liệu của toán hạng trái nếu dữ liệu của toán hạng trái là kiểu dữ liệu thấp hơn toán hạng phải. /* Chặt bớt với các toán tử gán */ main( ) { int loonies; double money; printf("How much money do you have ? "); scanf("%lf", &money); loonies = money; printf("You have %d loonies.\n", loonies); } Nếu khi chạy chương trình, chúng ta nhập 23.45, sẽ in ra là: 8 How much money do you have ? 23.45 You have 23 loonies. 2.1.7. Ví dụ 7 Các toán hạng gán viết tắt (+=, -=, *=, /=, %=, ++, --) /* Các phép gán viết tắt */ main( ) { int herAge, hisAge; herAge = 5; /* hisAge có gái trị 10 và herAge có giá trị 6 */ hisAge = 5 + herAge++; herAge = 5; /* hisAge có giá trị 11 và herAge có giá trị 6 */ hisAge = ++herAge + 5; herAge = 5; /* herAge = herAger + 15, có giá trị 20 */ herAge += 15; /* herAge = herAger * 2, có gái trị 40 */ herAge *= 2; } 2.1.8. Ví dụ 8 Ép kiểu /* Ép kiểu Dấu phẩy động */ main( ) { int pies, persons; double piesPerPerson; printf("How many pies do you have ? "); scanf("%d", &pies); printf("How many persons are there ? "); scanf("%d", &persons); piesPerPerson = (double) pies / persons; printf("Each person receives %.2lf pies.\n", piesPerPerson); } Nếu khi chạy chương trình, chúng ta nhập 8 cho số bánh, và 6 cho số người, sẽ ịn ra là: How many pies do you have ? 8 How many persons are there ? 6 Each person receives 1.33 pies. Kết quả của phép chia sẽ là số double và phép gán đặt kết quả một số double (1.333333) vào piesPerPerson. 9 Chú ý, tuy nhiên piesPerPerson = (double) (pies / persons); đặt 1.0 vào piesPerPerson, chứ không phải 1.333333. Ở đây, kết quả của phép chia số nguyên chứ không phải là chính pies được ép kiểu thành kiểu double. 2.2. Bài tập thực hành 2.2.1. Bài thực hành 1 Viết chương trình nhắc người dùng nhập 5 ký tự, nhận dữ liệu nhập vào, và hiện các mã ASCII tương ứng như sau Enter 5 characters separated by a space: A B C D E Its ASCCI codes: 65 66 67 68 69 2.2.2. Bài thực hành 2 Viết chương trình nhắc người dùng nhập 5 số nguyên, nhận dữ liệu nhập vào, và hiện tổng các số đó như sau. Enter 5 integer numbers separated by a space: 12 34 23 10 23 Its sum is: 102 2.2.3. Bài thực hành 3 Viết chương trình nhắc người dùng nhập 5 số nguyên, nhận dữ liệu nhập vào, và hiện số các giá trị lẻ và số các giá trị chẵn như sau. Enter 5 integer numbers separated by a space: 12 34 23 10 25 The number of even values is : 3 The number of odd values is : 2 2.2.4. Bài thực hành 4 Viết chương trình C yêu cầu người dùng nhập số lượng các mặt hàng được mua và đơn giá, rồi hiện giá thành gốc, thuế đánh trên giá thành (hai loại thuế, PST là 8%, và GST là 7%), và tổng bao gồm cả thuế như sau Enter the number of items purchases : 105 The item unit price :$ 0.25 The original amount :$ 26.2500 The PST tax (8%) :$ 2.1000 The GST tax (7%) :$ 1.8375 The Total :$ 30.1875 10 [...]... trong hàm main 4.1.2 Ví dụ 2 Gọi hàm và nhận dữ liệu tham số theo đ a chỉ /* Trao đổi các giá trị dùng hàm * swapGood.c */ #include void swap ( int *a, int *b ); int main ( ) { int inLeftHand; int inRightHand; Đ a chỉ c a biến printf("inLeftHand are "); scanf("%d", &inLeftHand); printf("inRightHand are "); scanf("%d", &inRightHand); swap( &inLeftHand, &inRightHand ); printf("After swap:\n" "inLeftHand... dụ 5 Biểu thức điều kiện ? : main() { int a, b, max, min; printf("Enter two integer numbers separated by a space:"); scanf("%d %d", &a, &b); max = a > b? a : b; min = a < b? a : b; printf("\nMaximum of %d and %d is %d", a, b, max); printf("\nMinimum of %d and %d is %d", a, b, min); getch(); } ? : là cách thay thế cho cấu trúc if else Chương trình này nhắc người dùng nhập hai số nguyên cách nhau bởi...3 Module C Logic 3.1 Ví dụ 3.1.1 Ví dụ 1 Một lệnh if main() { int likePizza; printf(“Do you like pizza (1 for yes and 0 for no)?:”) scanf(“%d”, &likePizza); if ( likePizza == 1 ) printf ("I would like a pizza\n"); } hoặc if ( likePizza == 1 printf ("I printf ("I printf ("I } ) { would like a pizza\n"); would like another pizza\n"); would like yet another pizza\n"); Nếu giá trị c a likePizza không... tham số và đặt giá trị ban đầu cho mối tham số bằng giá trị c a đối số tương ứng trong lời gọi hàm Ví dụ base trong hàm power nằm ở vùng nhớ khác với base trong hàm main Truyền theo giá trị là base trong hàm power nhận giá trị ban đầu bằng giá trị c a base trong hàm main, sau đó nó có thể thay đổi giá trị c a mình trong hàm power nhiều lần, nhưng không làm thay đổi giá trị c a đối số tương ứng base... "inLeftHand are %d\n" "inRightHand are %d\n", inLeftHand, inRightHand); } return 0; Dữ liệu tại đ a chỉ a là một số nguyên void swap ( int *a, int *b ) { int c; c = *a; *a = *b; *b = c; } 4.2 Bài tập thực hành 17 4.2.1 Bài tập thực hành 1 Viết hàm giải hệ phương trình bậc hai có khai báo như sau int root (double a, double b, double c, double *x1, double *x2); Trong đó x1, x2 là đ a chỉ ch a nghiệm c a phương... số bao gồm cả thuế 4 Module D Các hàm 4.1 Ví dụ 4.1.1 Ví dụ 1 Khai báo hàm, gọi hàm, định ngh a hàm /* Tính base luỹ th a exp * power.c */ Khai báo hàm - khuôn dạng hàm: Hàm tên là power, có 2 tham số kiểu nguyên và trả về giá trị nguyên #include int power (int base, int exp); int main () { int base, exp, answer; Gọi hàm: chuyển điều khiển thực hiện tới hàm power base = 2; exp = 4; answer... if ( likePizza == 1 ) printf ("I would like a pizza\n"); else if ( likeHamburger == 1 ) printf("I would like a hamburger\n"); else printf ("I would like something nutritious\n"); hoặc if ( likePizza == 1 ) { printf ("I would like a pizza\n"); printf ("I would like another pizza\n"); printf ("I would like yet another pizza\n"); } else if ( likeHamburger == 1 ) { printf ("I would like a hamburger\n");... ("I would like another hamburger\n"); printf ("I would like yet another hamburger\n"); } else { printf ("I would like something nutritious\n"); printf ("I would now like a pizza\n"); printf ("I would now like a hamburger\n"); } Không cần kiểm tra likePizza trong điều kiện thứ hai, bởi vì nó chỉ đến nó khi điều kiện thứ nhất là không thoả mãn (likePizza != 1) 3.1.4 Ví dụ 4 switch main() { int i; do... like a pizza\n"); would now like another pizza\n"); Chương trình thực hiện các lệnh sau if, nếu điều kiện là true Chương trình thực hiện các lệnh sau else, nếu điều kiện là false 3.1.3 Ví dụ 3 if else if else 11 Chương trình thực hiện các lệnh sau if, nếu điều kiện đầu tiên là true hoặc sau else if, nếu điều kiện đầu là false và điều kiện thúe hai là true Chương trình thực hiện các lệnh sau else, nếu... 2\n"); printf("3) Option 3\n"); printf("4) Exit\n"); printf("Please enter 1, 2, 3, or 4: "); scanf("%d", &i); switch(i) { case 1: printf("Option 1 selected"); getch(); break; case 2: printf("Option 2 selected"); getch(); 12 break; case 3: printf("Option 3 selected"); getch(); break; case 4: break; } } } while (i != 4); printf("Have a nice day!"); getch(); Chương trình này hiện menu có 4 tuỳ chọn, rồi . printf(" His age is %d The cash fare is $%lf ", age, cashFare); } Hiện ASCII code 65 is character A His age is 18 The cash fare is $2.250000 5 Số chữ số sau. nhập cash fare */ scanf("%lf", &cashFare); /* Nhập vào cash fare */ /* In ra */ printf("His age is %d The cash fare is $%lf ", age,

Ngày đăng: 13/12/2013, 12:15

Hình ảnh liên quan

Viết chương trình C để in các thông tin về bạn trên màn hình (tên đầy đủ, địa chỉ nhà riêng, số điện thoại, Địa chỉ Email) như sau - Tài liệu Module A – Mở đầu docx

i.

ết chương trình C để in các thông tin về bạn trên màn hình (tên đầy đủ, địa chỉ nhà riêng, số điện thoại, Địa chỉ Email) như sau Xem tại trang 5 của tài liệu.
Viết chương trình hiện bảng nhân 10 x 10 như sau - Tài liệu Module A – Mở đầu docx

i.

ết chương trình hiện bảng nhân 10 x 10 như sau Xem tại trang 14 của tài liệu.
Hiện bảng các số nguyên tố ========================== Nhập số nguyên nhỏ nhất: 3 Nhập số nguyên lớn nhất:  30 - Tài liệu Module A – Mở đầu docx

i.

ện bảng các số nguyên tố ========================== Nhập số nguyên nhỏ nhất: 3 Nhập số nguyên lớn nhất: 30 Xem tại trang 18 của tài liệu.

Từ khóa liên quan

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

Tài liệu liên quan