- Ebook Giải thuật và lập trình Lê Minh Hoàng
- Các thuật toán sắp xếp trong Pascal

Xóa các phần tử trùng nhau trong mảng 1 chiều (pascal)



Nhập vào mảng 1 chiều gồm 1 dãy số nguyên N phần tử. Hãy xóa các phần tử trùng nhau trong mảng và in kết quả ra màn hình. Ý tưởng: Duyệt mảng 1 chiều bằng 2 biến, nếu phát phát hiện phần tử nào trùng thì xóa phần tử ấy ra khỏi mảng.


Program Bo_so_trung;
   Const
      Max=100;
   Var
   a:Array[1..Max] Of Integer;
   i,j,k,n:Integer;
Begin
   Writeln('XOA BO CAC SO TRUNG NHAU');
   Writeln('------------------------');
   Writeln;
   Write('-Nhap so phan tu mang: ');
   Readln(n);
   For i:=1 To N Do
      Begin
         Write('-Phan tu A[',i,']= ');
         Readln(a[i]);
      End;
   i:=2;
   While i <= N Do
      Begin
         j:=1;
         While a[j] <> a[i] Do
            j:=j+1;
         If j < i Then
            Begin
               For k:=i to n-1 Do
                  a[k]:= a[k+1];
               n:=n-1;
            End
         Else
            i:=i+1;
      End;
   Writeln;
   Write('-Mang con lai: ');
   For i:=1 to n Do
      Write(a[i]:8);
   Writeln;
   Writeln('   Bam phim <Enter> de ket thuc ');
   Readln
End.


Nặc danh nói...

vậy biến j trong ct là gì v. bạn


lúc 16:13 27 tháng 7, 2012
Nặc danh nói...

nhap vao 1 day so cho truoc, xuat ra nhung phan tu trung nhau thi lam the nao ha ban?


lúc 11:49 17 tháng 11, 2012
Nặc danh nói...

Ko chạy đc chương trình. Sai kết quả


lúc 21:13 3 tháng 12, 2012
LH7 nói...

tại sao khi j<i lại del A[i], cái đó phải dùng khi A[i]=A[j] mà :(


lúc 21:14 4 tháng 2, 2013
Unknown nói...

Yêu cầu giải thích


lúc 08:44 24 tháng 2, 2013
Unknown nói...

Bạn có thể giải thích hộ mình ý tưởng đc không, viết vào chương trình thì đúng rồi đấy bạn ^^!


lúc 18:51 24 tháng 2, 2013
Unknown nói...

cần giải thích bạn ơi


lúc 19:44 26 tháng 2, 2013
Nặc danh nói...

đúng cần giải thích


lúc 19:45 26 tháng 2, 2013
Unknown nói...

cần giải thích bạn ơi


lúc 19:53 26 tháng 2, 2013
Nặc danh nói...

Saj.
Nhập n=5. Nhập các phần tử lần lượt là 1 5 5 8 2.
Kết quả là 5 5 8 2


lúc 14:56 7 tháng 4, 2013
Nặc danh nói...

i với j là số thứ tự của từng phần tử. nếu ithực hiện lệnh xóa 1 phần tử trong dãy rồi tăng i lên ss tiếp. ngược lại i<j thì tăng i


lúc 14:03 9 tháng 12, 2013
Unknown nói...

Có ai biết làm ko cho xin thuật toán


lúc 15:57 11 tháng 12, 2013
Nặc danh nói...

chuong trinh chay khong dung


lúc 08:46 17 tháng 7, 2014
Nặc danh nói...

hay qua :VVVVVVVVVVVVVVVVVVVVVVVVV,sai :))


lúc 16:41 30 tháng 9, 2014
Unknown nói...

kết quả ra không đúng ạ


lúc 14:53 7 tháng 11, 2014
Minh Lê nói...

uses crt;
var a:array[1..100]of integer;
n,i,j,k:integer;
begin
clrscr;
write('nhap n=');readln(n);
for i:=1 to n do
begin
write('a[',i,']=');readln(a[i]);
end;
i:=1;
while i<=n do
begin
j:=1;
while a[j]<>a[i] do
j:=j+1;
IF j<i then begin
for k:=i to n do
a[k]:=a[k+1];
n:=n-1 end else
i:=i+1;
end;
for i:=1 to n do write(a[i],',') ;
readln
end.
nhập như trên thử được không nha


lúc 19:43 11 tháng 12, 2014
Unknown nói...

var i, j, k, n:integer;
A:array[1..100] of integer;
B:array[1..100] of boolean;
f, g:text;
Begin
assign(f,'xoaphantu.INP');
assign(g,'xoaphantu.OUT');
reset(f); rewrite(g);
readln(f,n);
for i:= 1 to n do
begin
read(f,A[i]);
B[i]:=true;
end;
i:=1;
while i < n do
begin
for j:=i+1 to n do
if (B[j]= true) and (A[j] = A[i]) then B[j]:= false;
inc(i);
if B[i] = false then i:=i+1;
End;
for i:= 1 to n do
if B[i] = true then write(g,A[i],' ');

close(f);
close(g);
END.
thử đi nha


lúc 00:13 29 tháng 3, 2015
Unknown nói...

Làm Kiểu text đi Bạn


lúc 14:16 4 tháng 3, 2016
Unknown nói...

Làm Bằng mảng 1 chiều


lúc 14:17 4 tháng 3, 2016
Unknown nói...

hưng tằng chỉ ngu quá, sai mẹ zòi


lúc 09:08 6 tháng 4, 2016
Unknown nói...

hưng tằng coi lại nha. chỉ ngu như bìu


lúc 09:15 6 tháng 4, 2016
Unknown nói...


var s:string;
i,j:integer;
begin
write('s=');readln(s);
for i:=1 to length(s) do
begin
for j:=length(s) downto i+1 do
if s[i]=s[j] then delete(s,j,1);
end;
write('Xau s moi la:',s);
readln
end.


lúc 21:05 8 tháng 10, 2016
Đoãn Tử Hán nói...

|Giải hơi dài dòng đấy


lúc 08:56 7 tháng 11, 2016
Unknown nói...

nhập n=5
a[1],a[2],a[3],a[4],a[5]=7 đi


lúc 10:04 9 tháng 10, 2018
Nặc danh nói...

SAi rồi
bạn thử test này xem :

10
1 1 1 1 1 1 1 100 1 100

đáp án là xóa hết nhưng lại còn 100 và 1


lúc 20:32 14 tháng 9, 2019
Chinhdz nói...

chào mọi người nha ^^


lúc 22:19 25 tháng 4, 2020
đạt pro nói...

tất cả bộ test đúng hết mà


lúc 12:12 7 tháng 12, 2020
Nặc danh nói...

notOG


lúc 11:49 8 tháng 12, 2022
Nặc danh nói...

CON MẸ M BÉO ;)))


lúc 11:50 8 tháng 12, 2022
Nặc danh nói...

dit me may


lúc 21:25 9 tháng 2, 2023
Nặc danh nói...

K Hiểu ;00


lúc 08:28 14 tháng 3, 2023
Nặc danh nói...

Giải thích đi :00


lúc 08:28 14 tháng 3, 2023

Đăng nhận xét

Thành viên Blog

Tổng số lượt xem trang

Translate

Return to top of page Copyright © 2012 | Theme by Hack Tutors. Cung cấp bởi Blogger.
Các code pascal trong blog được sưu tầm, lựa chọn sao cho tối ưu nhất. Cảm ơn các tác giả đã viết thuật toán.