Nhập mảng số nguyên A gồm n phần tử n nhập từ bàn phím xuất mảng A

1. Pascal Nhập xuất và tính tổng các phần tử trong mảng

Nhập xuất và tính tổng các phần tử trong mảng.

Ví dụ: A:        1   5   6   7   4 

Kết quả:          Tong S = 23

Hướng dẫn: Để giải quyết bài toán cần phải đảm bảo các vấn đề:

-  Nhập mảng, có thể xây dựng thành hàm để đóng gói và sử dụng lại. Các thao tác theo yêu cầu:

(1) Nhập số N.

(2) Tiến hành lặp (từ 0 đến N-1) và nhập cho các giá trị Ai trong mảng.

Lưu ý: N phải được vào truyền theo dạng tham biến (tức là &N)

-  Xuất mảng. Công việc đơn giản là sử dụng voøng lặp từ 0 đến N-1 để in ra các giá trị Ai cho mảng. Sau đó, Writeln  xuống dòng.

-   Hàm tính tổng các phần tử cho một mảng A

+ Khai báo và khởi tạo toång S là 0.

+ Sử dụng một vòng lặp (từ 0 đến N-1 để duyệt qua tất cả các giá trị Ai) để tính cộng dồn giá trị của Ai vào tổng S.

-  Viết thân chöông trình chính với nội dung dùng để kiểm tra kết quả thực hiện của hàm.

+ Khai báo mảng A có tối đa 20 phần tử và biến N chỉ số lượng phần tử của A.

+ Gọi hàm nhập mảng để nhập mảng A, với N phần tử.

+ Gọi hàm xuất mảng A, với N phần tử.

+ In giá trị của tổng các phần tử bằng cách truyền trực tiếp giá trị trả về của việc tính tổng cho Writeln(……)

+ Gọi hàm Readln( ) trước khi kết thúc  để dừng lại xem kết quả.

Chương trình:

2. Một số bài tập tính tổng với mảng 1 chiều

Bài toán 1: Nhập vào mảng 1 chiều từ bàn phím chỉ chứa được 100 phần tử có giá trị kiểu nguyên. Tính tổng các giá trị là số chẵn sau đó in ra màn hình.

Bài tập này mình cũng đã hướng dẫn trong mảng 1 chiều về cách tìm số chẵn. Cách làm như sau, xây dựng Function TongChan(Var A:Arr100;Var N:Integer):Integer; Trong đó A:Arr100 là mảng 1 chiều có kích thước 100 phần tử và N là số phần tử của mảng mà bạn đưa vào. 

1. Tạo biến S:=0 để lưu tổng chẵn ban đầu bằng 0.

2. Duyệt từ phần tử A[i] đầu tiên đến A[N] kiểm tra nếu chia dư cho 2 bằng 0 => chẵn thì S:=S+A[i].

Đơn giản chỉ có vậy thôi và dưới đây là Function của bài tập này.

Nếu như bạn muốn tính tổng các số lẻ có trong mảng 1 chiều chỉ cần sửa đoạn If(A[i] mod 2 = 0) then thành If(A[i] mod 2 = 1) then là sẽ thành hàm tính tổng các số lẻ.

Bài toán 2: Cho người dùng nhập mảng 1 chiều biết mảng chỉ chứa được 100 phần tử số nguyên dương. Hãy tính tổng của mảng đều chia hết cho 4 và in kết quả ra màn hình.

Bài tập tương tự như bài ở trên các bạn chỉ cần thay đoạn If(A[i] mod 2 = 0) then thành If(A[i] mod 4 = 0) then là đã có thể sử dụng lại chương trình.

Nếu như có các bài toán tương tự bắt chúng ta tính tổng của các số chia hết cho 3, cho 5, cho 6 cho 7,… thì chúng ta làm sao đây? không thể ngồi viết hàng loạt các chương trình con để tính cho từng bài tập được mà các bạn chỉ cần tạo ra một chương trình con duy nhất có thể sử dụng cho tất cả các trường hợp như sau.

Chương trình đây đủ cho các bạn

Viết chương trình nhập mảng n số nguyên với các giá trị ngẫu nhiên. Xuất tổng, tìm giá trị nhỏ nhất và sắp xếp mảng.

Nhập mảng số nguyên A gồm n phần tử n nhập từ bàn phím xuất mảng A

Bài giải

-------------------- ######## --------------------

Trong bài tập này tôi dùng phương pháp sắp xếp Exchange sort để sắp xếp các phần tử trong mảng theo thứ tự giảm dần. Sau khi đã có được mảng giảm dần thì phần tử nhỏ nhất chính là phần tử cuối cùng trong mảng. 

Nhập mảng số nguyên A gồm n phần tử n nhập từ bàn phím xuất mảng A

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Bài giải

public static void main(String[] args) { int n, sum = 0, tempSort; Scanner scanner = new Scanner(System.in); do { System.out.println("Nhập vào số phần tử của mảng: "); n = scanner.nextInt(); } while (n < 0); // khởi tạo và cấp phát bộ nhớ cho mảng int array[] = new int[n]; System.out.println("Nhập các phần tử cho mảng: "); for (int i = 0; i < n; i++) { System.out.print("Nhập phần tử thứ " + i + ": "); array[i] = scanner.nextInt(); } // Hiển thị mảng vừa nhập System.out.println("\nMảng ban đầu: "); for (int i = 0; i < n; i++) { System.out.print(array[i] + "\t"); } // tính tổng các phần tử có trong mảng for (int i = 0; i < n; i++) { sum += array[i]; } System.out.println("\nTổng các phần tử có trong mảng = " + sum); // sắp xếp theo thứ tự giảm dần for (int i = 0; i < n - 1; i++) { for (int j = i + 1; j <= n - 1; j++) { if (array[i] < array[j]) { tempSort = array[i]; array[i] = array[j]; array[j] = tempSort; } } } System.out.println("Mảng sau khi sắp xếp là: "); for (int i = 0; i < n; i++) { System.out.print(array[i] + "\t"); } // tìm phần tử nhỏ nhất // sau khi sắp xếp theo thứ tự giảm dần // thì phần tử nhỏ nhất là phần tử cuối cùng trong mảng System.out.println("\nPhần tử nhỏ nhất trong mảng là " + array[n - 1]); }

Kết quả sau khi biên dịch chương trình:

Nhập mảng số nguyên A gồm n phần tử n nhập từ bàn phím xuất mảng A

Câu hỏi thường gặp liên quan:

Cùng chuyên mục:

Nhập mảng số nguyên A gồm n phần tử n nhập từ bàn phím xuất mảng A

0. Viết hàm nhập/xuất mảng a các số nguyên có n phần từ bàn phím. Điều kiện giá trị của n phải thỏa mãn 1

Code c:

#include

void NhapMang(int a[],int n) {

            int i;

            for(i=0; i

                        printf("Nhap a[%d]: ",i);

                        scanf("%d",&a[i]);

            }

}

void XuatMang(int a[],int n) {

            printf("Cac phan tu co trong mang la:\n");

            int i;

            for(i=0; i

                        printf("a[%d] = %d\n",i,a[i]);

            }

}

int main() {

            int n;

            int a[n];

            do {

                        printf("Nhap n: ");

                        scanf("%d",&n);

            } while(n<2 || n>99);

            NhapMang(a, n);

            XuatMang(a, n);

}