Nhập dãy số thực a. hãy thực hiện công việc nếu các phần tử trùng nhau thì chỉ giữ lại một phần tử. 1. nêu ý tưởng 2. Viết chương trình trong ngôn ngữ Pascal. Mọi người giúp mình lập trình bài này với ạ. Mình tìm kiếm trên mạng chỉ có C++ thôi :((

2 câu trả lời

1 ý tưởng:lưu số được đọc trong 1 biến T , nếu trong mảng A chưa tồn tại phần tử đó thì tăng độ dài mảng A lên 1 và thêm biến b vào phần tử cuối cùng

2

var a:array[1..32000]of integer;

      n,i,j,t,m,:integer;b:boolean;

begin

 writeln('nhap so phan tu cua mang');readln(n);

 writeln('nhap lan luot cac phan tu cua mang');

 m:=0;

for i:=1 to n do begin

 readln(t);b:=true;

 for j:=1 to m do 

  if a[j]=t then b:=false;

 if b then begin

  m:=m+1;

  a[m]:=t;

end;

writeln('mang hoan chinh la');

for i:=1 to m do

 write(a[i],' ');

readln;

end.

1. Ý tưởng:

Mình sẽ làm trong lúc nhập luôn, nếu phần tử đó có rồi thì không thêm nó vào mảng.

Ngoài ra còn có cách: cũng như trên nhưng không làm trong bước nhập mà nhập rồi mới đi  xóa các phần tử trùng.

2. Viết chương trình trong ngôn ngữ Pascal.

uses crt;
var n,m,i,kt,j,t:longint; a:array[1..10000000]of longint;
begin
clrscr;
   write('Nhap so phan tu: ');readln(n); 
   for i:=1 to n Do 
      begin
         write('a[',i,']=');readln(t);
         kt:=0;
         for j:=1 to i-1 do 
            if t=a[j] then kt:=1;
         if kt=0 then begin inc(m); a[m]:=t; end;
      end;
   for i:=1 to m do write(a[i],' ');
readln;
end.

Có thắc mắc gì thì cứ bình luận ở dưới nhé.

Câu hỏi trong lớp Xem thêm