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

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (208.76 KB, 20 trang )

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ư đã mô 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 :
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

×