Trang 1 Bộ giáo dục và đào tạoTrường đại học Mở Hà NộiKhoa Điện – Điện tửTIỂU LUẬN MƠN NGƠN NGỮ LẬP TRÌNHĐề Bài: Hãy trình bày các hiểu biết về mảng một chiều trong c++Giảng viên hướn
Trang 1Bộ giáo dục và đào tạo
Trường đại học Mở Hà Nội
Khoa Điện – Điện tử
TIỂU LUẬN MÔN NGÔN NGỮ LẬP TRÌNH
Đề Bài: Hãy trình bày các hiểu biết về mảng một chiều trong c++
Giảng viên hướng dẫn: Th.s Nguyễn Thị Tố Uyên
Hà Nội, tháng 10 năm 2023
Nguyễn Thị Thanh Xuân Lớp: ĐT3
Đỗ Anh Tuấn
Trang 2Lời mở đầu
Lời đầu tiên, chúng em xin chân thành cảm ơn bộ môn Ngôn ngữ lập trình, Trường Đại học Mở Hà Nội đã tạo điều kiện thuận lợi cho chúng em thực hiện tiểu luận.
Đặc biệt chúng em xin chân thành cảm ơn cô Nguyễn Thị
Tố Uyên đã rất tận tình hướng dẫn, chỉ bảo chúng em trong suốt thời gian thực hiện tiểu luận vừa qua.
Chúng em cũng xin chân thành cảm ơn tất cả các Thầy, các Cô trong Trường đã tận tình giảng dạy, trang bị cho em những kiến thức cần thiết, quý báu để giúp em thực hiện được tiểu luận.
Mặc dù chúng em đã có cố gắng, nhưng với trình độ còn hạn chế, trong quá trình thực hiện đề tài không tránh khỏi những thiếu sót Chúng em hi vọng sẽ nhận được những ý kiến nhận xét, góp ý của các Thầy giáo, Cô giáo về những vấn
đề triển khai trong tiểu luận.
Chúng em xin trân trọng cảm ơn !
Trang 3Mục lục
Bộ giáo dục và đào tạo 1
Lời mở đầu 2
PHẦN I: LÝ THUYẾT 4
1 Mảng 1 chiều là gì? 4
2 Cách khai báo mảng 1 chiều. 5
3 Truy cập giá trị phần tử của mảng 6
4 Cách nhập và xuất mảng 1 chiều 7
PHẦN II: CHƯƠNG TRÌNH 8
Đề 1: Tính tổng các phần tử ở vị trí chẵn trong mảng 1 chiều 8
Đề 2: Cho mảng A gồm n phần tử.Thay thế các phần tử âm có trong mảng bằng giá trị 0 10
Đề 3: Tính trung bình cộng của các số chẵn trong mảng 15
Phần III: Kết luận 18
Trang 4Mảng là một loại cấu trúc dữ liệu trong ngôn ngữ lập trình C/C++ nó lưu trữ một tập hợp tuần tự các phần tử cùng kiểu với độ dài cố định Mảng thường được sử dụng để lưu trữ tập hợp dữ liệu, nhưng nó cũng hữu dụng khi dùng để lưu trữ một tập hợp biến có cùng kiểu.
Thay vì khai báo biến một cách rời rạc, như biến bien1, bien2,… và bien99, bạn có thể khai báo một mảng các giá trị như bien[0], bien[1] và … bien[99] để biểu diễn các giá trị riêng biệt Một phần tử cụ thể của mảng có thể được truy cập qua index (chỉ số) Và mảng trong C++ được chia ra làm 2
loại, đó là mảng 1 chiều và mảng đa chiều Vậy mảng 1
chiều là gì?
Trang 5
PHẦN I: LÝ THUYẾT
1 Mảng 1 chiều là gì?
Mảng 1 chiều là cấu trúc dữ liệu đầu tiên và cũng là cấu trúc dữ liệu đơn giản & phổ biến nhất Mảng 1 chiều hay tiếng anh là One-Dimensional Array, là kiểu mảng mà trong đó các
phần tử được sắp xếp liên tục và có thứ tự trên bộ nhớ máy tính Các phần tử trong mảng được đánh số thứ tự từ đầu mảng tới
cuối mảng, bắt đầu từ số 0 và tăng dần 1 đơn vị Ta gọi số này
là index (chỉ số) của phần tử, và mảng có n phần tử thì sẽ có index bắt đầu từ [0] tới [n – 1].
2 Cách khai báo mảng 1 chiều.
Để khai báo mảng 1 chiều, chúng ta cần quan tâm tới các thuộc tính của mảng cần khai báo sau đây:
Kiểu dữ liệu: Phần tử trong mảng thuộc kiểu dữ liệu nào? Là
int, char hay float?
Độ dài (số phần tử): Mảng cần khai báo có bao nhiêu phần
tử, cần chuẩn bị bao nhiêu chỗ để chứa nó trong bộ nhớ máy tính?
Tên mảng: tên của mảng để phân biệt nó với các đối tượng
khác trong chương trình
Có 2 cách để thực hiện khai báo mảng 1 chiều :
Cách 1: Khai báo tường minh đây là cách khai báo hay được
sử dụng, với cách khai báo này bạn cần chỉ rõ kích thước
mảng (số lượng phần tử của mảng) Cú pháp như sau :
<Kiểu dữ liệu> <tên mảng> [<số phần tử tối đa của mảng>]
Ví dụ:
Int a[100];
Trong đó:
- Int là kiểu dữ liệu
- a là tên mảng
- 100 là số lượng phần tử tối đa của mảng
Trang 6 Cách 2: Khai báo không tường minh với cách khai báo này, không cần phải chỉ rõ kích thước của mảng Bên cạnh đó, còn
có thể gán giá trị ban đầu cho mảng Cú pháp như sau:
<kiểu dữ liệu> <tên mảng> [] = {<giá trị 1, <giá trị 2>,…,<giá trị n>}
Ví dụ:
int a[] = {2,3,1,4,5};
3 Truy cập giá trị phần tử của mảng
Sau khi tạo mảng 1 chiều, ta có thể tương tác với các phần
tử trong nó thông qua index
Để truy cập phần tử trong mảng 1 chiều, chúng ta viết tên mảng đằng trước, rồi sau đó chỉ định index của phần tử vào trong cặp dấu ngoặc vuông với cú pháp sau đây:
name[index]
Trong đó:
- name: là tên mảng
index: là phần tử cần truy cập
Ví dụ: In ra phần tử đầu tiên và phần tử thứ 4 trong mảng
Kết quả:
Trang 74 Cách nhập và xuất mảng 1 chiều
Để nhập mảng 1 chiều trong C++, ta cần sử dụng tới
hàm cin >> () để nhập dữ liệu từ bàn phím, và vòng lặp for
để có thể nhập và gán từng dữ liệu đó vào từng phần tử có trong mảng 1 chiều.
Một cách tương tự thì để xuất mảng 1 chiều trong C+
+, ta cần sử dụng tới hàm cout << ( ) để in giá trị phần tử, và
vòng lặp for để có thể lấy giá trị từng phần tử có trong mảng
1 chiều.
Vd: Nhập vào các phần tử của mảng và xuất ra các phần tử ấy
Trang 8PHẦN II: CHƯƠNG TRÌNH
Đề 1: Tính tổng các phần tử ở vị trí chẵn trong mảng 1 chiều
<Đỗ Anh Tuấn>
* Input
-Nhập số lượng phần tử có trong mảng là bao nhiêu
-Nhập vào các giá trị của mảng
*Output:
-In ra tổng các phần tử ở vị trí chẵn trong mảng
*Hướng giải
-Khai báo thư viện;
-Viết hàm int main();
+Khai báo và khởi tạo mảng;
+Nhập kích thước của mảng;
+Đặt điều kiện cho các phần tử;
+In vào công thức tính tổng nếu phần tử ở vị trí chẵn;
+In ra đáp án;
+Kết thúc chương trình
Trang 9*Lưu đồ thuật toán:
Trang 10*Kết quả:
Trang 11Đề 2: Cho mảng A gồm n phần tử.Thay thế các phần tử âm có trong mảng bằng giá trị 0
< Tạ Minh Phương>
Input:
Nhập vào số lượng phần tử của mảng A
Nhập vào các giá trị của mảng A
Output:
Số lượng phần tử của mảng
Phần tử thứ i của mảng
Mảng sau khi gán các phan tử âm bằng 0 là
Hướng Giải:
-Khai báo một mảng A với kích thước là 100 và biến n để lưu số lượng phần tử của mảng Khởi tạo biến i cho vòng lặp
- Nhập vào số lượng phần tử của mảng n thông qua lệnh cin
- Sử dụng vòng lặp để lặp qua từng phần tử trong mảng A Trong mỗi lần lặp, sử dụng lệnh cout để yêu cầu nhập giá trị cho phần tử thứ i và
sử dụng lệnh cin để nhận giá trị từ người dùng và lưu vào phần tử tương ứng trong mảng A
- Tiếp tục sử dụng vòng lặp để kiểm tra các phần tử trong mảng A Nếu giá trị phần tử đó nhỏ hơn 0 thì gán giá trị của phần tử đó bằng 0 - Sử dụng vòng lặp để xuất ra màn hình các giá trị của mảng A sau khi các phần tử <0 được gán bằng 0
Trang 12Ví Dụ
10
11 -41 70 81 -32 -5 90 26 -6 -10
Số lượng phần tử của mảng là: 10
Phần tử thứ 1 của mảng là : 11 Phần tử thứ 2 của mảng là : -41 Phần tử thứ 3 của mảng là : 70 Phần tử thứ 4 của mảng là : 81 Phần tử thứ 5 của mảng là : -32 Phần tử thứ 6 của mảng là : -5 Phần tử thứ 7 của mảng là : 90 Phần tử thứ 8 của mảng là : 26 Phần tử thứ 9 của mảng là : -6 Phần tử thứ 10 của mảng là : -10 Mảng sau khi gán các phan tử
âm bằng 0 là:
11 0 70 81 0 0 90 26 0 0
Trang 13Lưu đồ thuất toán:
Trang 14Phần code:
Trang 15Phần kết quả:
Trang 16Đề 3: Tính trung bình cộng của các số chẵn trong mảng
(Nguyễn Thị Thanh Xuân)
Input:
- Int a[100],n(số phần tử trong mảng),i;
Nhập mảng :
- Đk: i=0 ; i<n ; i++
- Cin>>a[i]
In mảng :
- Đk: i=0 ; i<n ; i++ Cout<<a[i]
Tính trung bình cộng :
- Float sum=0,dem=0;
- ĐK:a[i] % 2 ==0
- Sum+=a[i] ; Dem++
- Float tb=sum/dem
Output:
- Tính trung bình cộng của các số chẵn
Hướng giải :
- Viết hàm nhập và xuất mảng
- Viết hàm tính trung bình cộng của các số chẵn trong mảng
+ Trong hàm tính trung bình cộng của các số chẵn, gọi lại hàm để kiểm tra số chẵn
- Viết hàm int main:
+ Nhập số lượng phần tử và giá trị của từng phần tử có trong trong mảng bằng bàn phím
+ Gọi lại hàm nhập mảng,xuất mảng với các giá đầu vào tương ứng
+In ra kết quả trung bình cộng của các số chẵn có trong mảng
Trang 17Lưu đồ thuật toán:
Trang 18Phần code:
Kết quả:
Trang 19Phần III: Kết luận
Vậy với mảng một chiều ta có thể rút ra được những lợi ích như sau :
• Truy xuất phần tử mảng ngẩu nhiên, dựa vào chỉ số (index) của mảng
• Tối ưu code (chương trình ta sẽ ít code hơn)
• Dễ dàng duyệt qua từng phần tử mảng
• Dễ dàng thao tác dữ liệu
• Dễ dàng sắp xếp dữ liệu