Hướng dẫn chương trình tính tổng

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

Xem thêm các bài cùng chuyên mục

Xem thêm các chủ đề liên quan

Loạt bài Lớp 11 hay nhất

Cấu trúc điều khiển

Bài toán số 1: Tính tổng của các số tự nhiên từ 1 đến N.

                        S = 1 + 2 + … + N

                        Ví dụ : N = 5,    S  =  1 + 2 + 3 + 4 + 5  =  15

Yêu cầu: Input: N, là số tự nhiên bất kỳ.

Output: S, là tổng của các số từ 1 đến N

Hướng dẫn:

Bài toán được thực hiện qua 3 bước cụ thể như sau:

-         Thông báo nhập liệu, và nhập dữ liệu vào cho N

-         Tiến hành tính tổng S:

  • Khởi gán giá trị ban đầu cho tổng S
  • Tiến hành tính tổng, cộng dồn với các giá trị của i vào S [với i được lặp từ 1 cho đến N]

-         Xuất kết quả của tổng S ra màn hình.

Chương trình:

Program TinhTong;                                     
Uses crt;
Var S,i,n:Integer;                                          // Khai bao bien su dung
BEGIN
            Write[ ‘ Nhap so n:’ ];       // Thong bao nhap lieu
            Readln[ n ];                        // Nhap gtri N, [voi &N la lay d/c bien N]
            S: = 0;                                                  // Khoi gan gia tri ban dau cho S  
            For i:=1 to n do                                    // Lap voi moi i co gia tri tu 1 den N
                        S:=S + i;                                  // Tinh tong cong don i vao S
            Writeln[ ‘Tong = ’, S];                       // Xuat ket qua tong S ra man hinh
            Readln;
END.

Các phiên bản khác nhau của bài toán là:

  • Tính tổng  [với giả sử N là số lẻ]
  • Tính tổng các số tự nhiên lẻ nhỏ hơn hoặc bằng N.
  • Tính tổng các số tự nhiên chia hết cho 5 như 5, 10, 15, 20, 25, 30….N [N chia hết cho 5]

Hướng dẫn:

- Điều chỉnh bước lặp cho phù hợp.

- Trước khi cộng dồn giá trị của i vào tổng S, phải kiểm tra điều kiện giá trị của i có thỏa mãn điều kiện bài toán hay không.

Cụ thể là:

For i:= 1 to n do               // Lap voi moi i co gia tri tu 1 den N

            S:= S + i / [i+1];        // Tinh tong cong don i/[i+1] vao S

[Luu y, truong hop nay bien S phai duoc khai bao kieu du lieu la so thuc Real ]

For i:=1 to n do                            // Lap voi moi i co gia tri tu 1 den N

            if [ i mod 2 == 1]                  // Kiem tra i co’ phai la so le hay khong

                    S := S + i;                                   // Dung ==> Tinh tong cong don i vao S

for i:=1 to n do                 // Lap voi moi i co gia tri tu 1 den N

            if [ i % 5 == 0]                      // Kiem tra i co’ phai la 5, 10, 15… hay khong

                    S := S + i;                                   // Dung ==>Tinh tong cong don i vao S

Bài Viết Liên Quan

Chủ Đề