Giáo trình Lập trình cơ bản C - pdf 17

Download miễn phí Giáo trình Lập trình cơ bản C



Để sắp xếp một mảng, các phần tử trong mảng cần được so sánh với những phần tử còn lại. Cách tốt nhất để sắp xếp một mảng, theo thứ tự giảm dần, là chọn ra giá trị lớn nhất trong mảng và hoán vị nó với phần tử đầu tiên. Một khi điều này được thực hiện xong, giá trị lớn thứ hai trong mảng có thể được hoán vị với phần tử thứ hai của mảng, phần tử đầu tiên của mảng được bỏ qua vì nó đã là phần tử lớn nhất. Tương tự, các phần tử của mảng được loại ra tuần tự đến khi phần tử lớn thứ n được tìm thấy. Trong trường hợp mảng cần sắp xếp theo thứ tự tăng dần giá trị lớn nhất sẽ được hoán vị với phần tử cuối cùng của mảng



Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:

23
1234
12345
123456
1234567
12345678
123456789
3. Viết chương trình in ra bảng cửu chương của một số được nhập vào.
Mảng 1
Bài 11 Mảng
Mục tiêu:
Kết thúc bài học này, bạn có thể:
 Hiểu được các phần tử của mảng và các chỉ số mảng
 Khai báo một mảng
 Hiểu cách quản lý mảng trong C
 Hiểu một mảng được khởi tạo như thế nào
 Hiểu mảng chuỗi/ ký tự
 Hiểu mảng hai chiều
 Hiểu cách khởi tạo mảng nhiều chiều.
Giới thiệu:
Có thể bạn sẽ gặp khó khăn khi lưu trữ một tập hợp các phần tử dữ liệu giống nhau trong các biến
khác nhau. Ví dụ, điểm cho tất cả 11 cầu thủ của một đội bóng đá phải được ghi nhận trong một trận
đấu. Sự lưu trữ điểm của mỗi cầu thủ trong các biến có tên khác nhau thì chắc chắn phiền hà hơn dùng
một biến chung cho chúng. Với mảng mọi việc sẽ được thực hiện đơn giản hơn. Một mảng là một tập
hợp các phần tử dữ liệu có cùng kiểu. Mỗi phần tử được lưu trữ ở các vị trí kế tiếp nhau trong bộ nhớ
chính. Những phần tử này được gọi là phần tử mảng.
11.1 Các phần tử mảng và các chỉ mục:
Mỗi phần tử của mảng được định danh bằng một chỉ mục hay chỉ số gán cho nó. Chiều của mảng
được xác định bằng số chỉ số cần thiết để định danh duy nhất mỗi phần tử. Một chỉ số là một số
nguyên dương được bao bằng dấu ngoặc vuông [ ] đặt ngay sau tên mảng, không có khoảng trắng ở
giữa. Một chỉ số chứa các giá trị nguyên bắt đầu bằng 0. Vì vậy, một mảng player với 11 phần tử
được biểu diễn như sau:
player[0], player[1], player[2], ... , player[10].
Như đã thấy, phần tử mảng bắt đầu với player[0], và vì vậy phần tử cuối cùng là player[10] không
phải là player[11]. Điều này là do bởi trong C, chỉ số mảng bắt đầu từ 0; do đó trong mảng N phần tử,
phần tử cuối cùng có chỉ số là N-1. Phạm vi cho phép của các giá trị chỉ số được gọi là miền giới hạn
của chỉ số mảng, giới hạn dưới và giới hạn trên. Một chỉ số mảng hợp lệ phải có một giá trị nguyên
nằm trong niềm giới hạn. Thuật ngữ hợp lệ được sử dụng cho một nguyên nhân rất đặc trưng. Trong
C, nếu người dùng cố gắng truy xuất một phần tử nằm ngoài dãy chỉ số hợp lệ (như player[11] trong ví
dụ trên của mảng), trình biên dịch C sẽ không phát sinh ra lỗi. Tuy nhiên, có thể nó truy xuất một giá
trị nào đó dẫn đến kết quả không đoán được. Cũng có nguy cơ viết chồng lên dữ liệu hay mã lệnh
chương trình. Vì vậy, người lập trình phải đảm bảo rằng tất cả các chỉ số là nằm trong miền giới hạn
hợp lệ.
 Khai báo một mảng:
Một mảng có một vài đặc tính riêng biệt và phải được khai báo khi sử dụng chúng. Những đặc tính
này bao gồm:
 Lớp lưu trữ
 Kiểu dữ liệu của các phần tử mảng.
 Tên mảng – xác định vị trí phần tử đầu tiên của mảng.
 Kích thước mảng - một hằng số có giá trị nguyên dương.
2 Lập trình cơ bản C
Một mảng được khai báo giống như cách khai báo một biến, ngoại trừ tên mảng được theo sau bởi một
hay nhiều biểu thức, được đặt trong dấu ngoặc vuông [] xác định chiều dài của mảng. Cú pháp tổng
quát khai báo một mảng như sau:
lớp_lưu_trữ kiểu_dữ_liệu tên_mảng[biểu_thức_kích_thước]
Ở đây, biểu_thức_kích_thước là một biểu thức xác định số phần tử trong mảng và phải định ra một
trị nguyên dương. Lớp_lưu_trữ là một tùy chọn. Mặc định lớp automatic được dùng cho mảng khai
báo bên trong một hàm hay một khối lệnh, và lớp external được dùng cho mảng khai báo bên ngoài
một hàm. Vì vậy mảng player được khai báo như sau:
int player[11];
Nên nhớ rằng, trong khi khai báo mảng, kích thước của mảng sẽ là 11, tuy nhiên các chỉ số của từng
phần tử bên trong mảng sẽ là từ 0 đến 10.
Các qui tắc đặt tên mảng là giống với qui tắc đặt tên biến. Một tên mảng và một tên biến không được
giống nhau, nó dẫn đến sự nhập nhằng. Nếu một sự khai báo như vậy xuất hiện trong chương trình,
trình biên dịch sẽ hiển thị thông báo lỗi.
 Một vài qui tắc với mảng:
 Tất cả các phần tử của một mảng có cùng kiểu. Điều này có nghĩa là, nếu một mảng được khai
báo kiểu int, nó không thể chứa các phần tử có kiểu khác.
 Mỗi phần tử của mảng có thể được sử dụng bất cứ nơi nào mà một biến được cho phép hay
được yêu cầu.
 Một phần tử của mảng có thể được tham chiếu đến bằng cách sử dụng một biến hay một biểu
thức nguyên. Sau đây là các tham chiếu hợp lệ:
player; /*Ở đó i là một biến, tuy nhiên cần chú ý rằng
i nằm trong miền giới hạn của chỉ số đã được khai
báo cho mảng player*/
player[3] = player[2] + 5;
player[0] += 2;
player[i / 2 + 1];
 Kiểu dữ liệu của mảng có thể là int, char, float, hay double.
11.2 Việc quản lý mảng trong C:
Một mảng được “đối xử” khác với một biến trong C. Thậm chí hai mảng có cùng kiểu và kích thước
cũng không thể tương đương nhau. Hơn nữa, không thể gán một mảng trực tiếp cho một mảng khác.
Thay vì thế, mỗi phần tử mảng phải được gán riêng lẻ tương ứng với từng phần tử của mảng khác. Các
giá trị không thể được gán cho toàn bộ một mảng, ngoại trừ tại thời điểm khởi tạo. Tuy nhiên, từng
phần tử không chỉ có thể được gán trị mà còn có thể được so sánh.
int player1[11], player2[11];
for (i = 0; i < 11; i++)
player1 = player2;
Tương tự, cũng có thể có kết quả như vậy bằng việc sử dụng các lệnh gán riêng lẻ như sau:
player1[0] = player2[0];
player1[1] = player2[1];
...
player1[10] = player2[10];
Mảng 3
Cấu trúc for là cách lý tưởng để thao tác các mảng.
Ví dụ 11.1:
/* Program demonstrates a single dimensional array */
#include
void main()
{ int num[5];
int i;
num[0] = 10;
num[1] = 70;
num[2] = 60;
num[3] = 40;
num[4] = 50;
for (i = 0; i < 5; i++)
pirntf(“\n Number at [%d] is %d”, i, num);
}
Kết quả của chương trình được trình bày bên dưới:
Number at [0] is 10
Number at [1] is 70
Number at [2] is 60
Number at [3] is 40
Number at [4] is 50
Ví dụ bên dưới nhập các giá trị vào một mảng có kích thước 10 phần tử, hiển thị giá trị lớn nhất và giá
trị trung bình.
Ví dụ 11.2:
/*Input values are accepted from the user into the array ary[10]*/
#include
void main()
{
int ary[10];
int i, total, high;
for (i = 0; i < 10; i++)
{
printf(“\nEnter value: %d: “, i + 1);
scanf(“%d”, &ary);
}
/* Displays highest of the entered values */
high = ary[0];
for (i = 1; i < 10; i++)
{
if (ary > high)
high = ary;
}
printf(“\n Highest value entered was %d”, high);
/* Prints average of value entered for ary[10] */
for (i = 0, total = 0; i < 10; i++)
4 Lập trình cơ bản C
total = total + ary;
printf(“\nThe average of the element of ary is %d”, total/i);
}
Một ví dụ về kết quả được trình bày dưới đây:
Enter value: 1: 10
Enter value: 2: 20
Enter value: 3: 30
Enter value: 4: 40
Enter value: 5: 50
Enter value: 6: 60
Enter value: 7: 70
Enter value: 8: 80
Enter value: 9: 90
Enter value: 10: 10
Highest value entered was 90
The average of the element of ary is 46
 Việc khởi tạo mảng:
Các mảng không được khởi tạo tự động, trừ khi mỗi phần tử mảng được gán một giá trị riêng lẻ.
Không nên dùng các mảng trước k...
Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status