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 :((
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é.