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 vừa xóa phần tử.
- Bước 2.1. Nhập vị trí k cần xóa
- Bước 2.2. Gán n = n - 1;
- Bước 2.3. Cho i chạy từ k đến n thì a[i] = a[i+1]
- Bước 2.4. Cho i chạy từ 1 đến n thì in ra các a[i]
3. Code Pascal:
Program Xoa_phan_tu_mang;
Uses crt;
Var N, i, k: 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;
Write('Nhap vi tri can xoa phan tu: ');
Readln(k);
n:=n-1;
For i:=k to n do a[i]:=a[i+1];
For i:=1 to n do write(a[i]:3);
Readln;
End.
4. Giải thích code
| Dong code | Ý nghĩa |
|---|---|
| Program Xoa_phan_tu_mang; | Đặt tên chương trình Xoa_phan_tu_mang; |
| 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, k: Integer | Khai báo biến N(Số phần tử của dãy), i(biến chạy), k(vị trí cần xóa) |
| 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 |
| Write('Nhap vi tri can xoa phan tu: '); | Xuất ra màn hình câu "Nhap vi tri can xoa phan tu:" |
| Readln(k); | Nhập từ bàn phím giá trị gán vào biến k |
| n:=n-1; | Gán giá trị n - 1 vào biến n |
| For i:=k to n do a[i]:=a[i+1]; | Cho i chạy từ k đến n sẽ gán a[i] = a[i + 1]. Tức là nếu k = 3 thì gán a[3] = a[4], mục đích của việc này là khi muốn xóa phần tử ở vị trí 3 thì phần tử a[3] bị mất phải dồn giá trị a[4] thành a[3] và tương tự cho các vị trí phía sau. |
| For i:=1 to n do write(a[i]:3); | Cho i chạy từ 1 đến n (n lúc này là n -1 nhé) làm công việc in ra các giá trị a[i]. Lưu ý khi in đến vị trí k thì bắt đầu dồn a[i] = a[i+1]. |
| 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