1. Bài toán
2. Giải thuật:
Bước 1. Nhập thông tin:
Bước 2. Xử lý:
- Bước 1.1. Nhập \(N\);
- Bước 1.2. Nhập dãy số đã cho \(A_{1}, A_{2}, ..., A_{n}\)
Bước 3. In ra màn hình mảng đối xứng hoặc không đối xứng.
- Bước 2.1. Gán biến demcap = 0
- Bước 2.2. Dùng vòng lặp For chạy từ 1 đến n div 2. Nếu a[i] = a[n-i+1] thì demcap tăng lên 1
- Bước 2.3. Nếu demcap = n div 2 thì mảng là dãy đối xứng ngược lại thì không đối xứng.
3. Code Pascal:
Program Mang_doi_xung; Uses crt; Var N, i, demcap: Integer; a: array[1..100] of integer; Begin Clrscr; Write('Nhap phan tu cua mang: '); Readln(N); For i:=1 to N do Begin Write('Phan tu thu ',i,' la: '); Readln(a[i]); End; Writeln('Mang vua nhap la: '); For i:=1 to N do write(a[i]:3); writeln; demcap:=0; For i:=1 to (n div 2) do If (a[i] = a[n - i + 1]) then demcap:=demcap+1; If demcap = n div 2 then write('Mang doi xung') else write('Mang khong doi xung'); Readln; End.
4. Giải thích code
Dong code | Ý nghĩa |
---|---|
Program Mang_doi_xung; | Đặt tên chương trình Mang_doi_xung |
uses crt; | Khai báo các hàm thư viện |
Var a: array[1..100] of integer; | Khai báo mảng một chiều |
Var N, i, demcap: Integer | Khai báo biến N(Số phần tử của dãy), i(biến chạy), demcap(đếm cặp các phần tử giống nhau) |
clrscr; | Xóa màn hình khi chạy chương trình |
write('Nhap so luong phan tu cua mang: '); | In ra màn hình dòng chữ Nhap so luong phan tu cua day: |
readln(N); | Nhập từ bàn phím giá trị gán vào biến N |
for i:=1 to N do begin write('Phan tu thu ', i,': '); readln(a[i]); end; |
Cho i chạy từ 1 đến N làm công việc in các phần tử của dãy ra màn hình. |
Writeln('* Mang vua nhap la: '); | In ra màn hình dòng "Mang vua nhap la:" |
For i:=1 to N do write(a[i]:3); | In ra màn hình các phần tử vừa được nhập ở trên |
demcap:=0; | Gán 0 cho biến demcap |
For i:=1 to (n div 2) do If (a[i] = a[n - i + 1]) then demcap:=demcap+1; |
Cho i chạy từ 1 đến phần nguyên của n chia 2 và làm công việc nếu phần tử a[i] = a[n-i+1] (tức so sánh các cặp phần tử vị trí 1 với n; 2 với n-1; 3 với n-2;...) thì biến demcap tăng lên 1 |
If demcap = n div 2 then write('Mang doi xung') else write('Mang khong doi xung'); |
Nếu biến demcap bằng phần nguyên của n chia cho 2 thì in ra câu "Mang doi xung", ngược lại in ra câu "Mang khong doi xung") |
Readln; | Dừng màn hình cho các bạn xem kết quả. |
Không có nhận xét nào:
Đăng nhận xét