Bài tập Turbo Pascal kiểu mảng - Phần 2

Đề: Hãy viết chương trình nhập vào một mảng số nguyên, xóa phần tử của mảng, chèn phần tử vào mảng và xuất ra giá trị của các phân tử.

#Hướng dẫn

Viết thủ tục nhập mảng, xuất mảng, xóa phần tử của mảng và chèn phần tử vào mảng.

#Chương trinh

Trong chương trình này mình đã cải tiến thêm, nó giúp các bạn có thể chèn, xóa, nhập va xuất bao nhiêu lần tùy thích.
{Bai tap turbo pascal kieu mang phan 2}
Program bai_tap_mang_phan_2;
uses crt;
type arr=array[1..100] of integer;
var i,n,kt: integer;
a: arr;

procedure nhap(var a: arr);
begin
   clrscr;
   writeln('Nhap so phan tu cua mang: ');
   readln(n);
   clrscr;
   for i:= 1 to n do
      begin
      write('a[',i,']='); 
   readln(a[i]);
   writeln;
   end;
end;

procedure xoa(var a: arr);
var tl: char;
vt: integer;
begin
tl:='c';
while tl='c' do
   begin
      clrscr;
      writeln('Nhap vi tri cua phan tu mang muon xoa: ');
   readln(vt);
   for i:= vt to n do
      begin
      a[i]:=a[i+1];
   end;
      dec(n);
      writeln('Ban co muon chen nua khong(c/k)?');
   readln(tl);
   end;
end;

procedure chen(var a: arr);
var tl: char;
vt,pt: integer;
begin
tl:='c';
while tl='c' do
begin
   clrscr;
   writeln('Nhap vi tri chen: ');
   readln(vt);
   writeln('Nhap phan tu muon chen: ');
   readln(pt);
   for i:= n+1 downto vt do
      begin
      a[i]:=a[i-1];
      end;
   a[vt]:=pt;
   inc(n);
   writeln('Ban co muon chen nua khong(c/k)? ');
   readln(tl);
end; 
end; 

procedure xuat;
begin
clrscr;
for i:= 1 to n do
write(a[i],'; ');
readln;
clrscr;
end;

begin
clrscr;
while kt<>5 do
begin
clrscr;
writeln('Nhap mang-Chen phan tu-Xoa phan tu-Xuat mang-Thoat');
writeln('    1    -      2     -     3     -   4     -   5 ');
readln(kt);
      case kt of
         1:nhap(a);
         2:Chen(a);
         3:xoa(a);
         4:xuat;
         5:exit;    
      end;
readln;

   end;
end.     

Giải thích chương trình con:

  • Viết thủ tục nhập mảng, cái này đơn giản mình không nói
  • Để xóa được một phần tử của mảng ta tiến hành gán đè các phần tử phía trước lên các phần tử phía sau bắt đầu từ phần tử muốn xóa
  • Để chèn được một phần tử vào mảng, ta tiến hành dời các phần tử từ vị trí muốn chèn lên một phần tử. Như vậy sẽ tạo ra một phần tử trống - chính là phần tử tại vị trí ta muốn chèn. Ta sẽ gán phần tử muốn chèn vào phần tử trống đó.
  • Cuối cùng là xuất

Giải thích menu:
Ta sẽ sử dụng Case of để tạo menu, đầu tiên ta sẽ xuất ra màn hình dòng chữ cho biết chương trình nào ứng với số nào.
Để thoát thì ta dùng lệnh exit;

Comments