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