Giải thích Mình sẽ cho 3 vòng lặp lồng vào nhau:
+ Vòng lặp bên ngoài(vòng lặp 1): Gán i=1 Điều kiện i<=k(với k là số phần tử mảng h).
+Vòng bên trong vòng lặp 1(vòng lặp 2): Điều kiện h[i] $\neq$ h[j] và i = j thì sẽ tăng biến j lên 1 đơn vị. Mục đích của vòng lặp này là tìm các phần tử h[i] và h[j] trùng nhau mà ko bị nhầm lẫn khi vị trí i và j trùng nhau.
+ Nếu j <= k thì thực hiện vòng lặp 3(Có phần tử trùng lặp)
+ Vòng bên trong vòng lặp 1(vòng lặp 3): Chạy từ d=j (điểm tìm thấy trùng nhau) cho đến n. Mục đích vòng lặp này xoá phần tử trùng nhau, rút gọn mảng.
+ Cuối cùng sắp xếp phần tử tăng dần
Code
program portfolio;
uses crt;
var h:array[1..10000] of integer;
k,i,j,d:integer;
BEGIN
clrscr;
Write('Nhap k: '); Readln(k);
For i:=1 to k do Read(h[i]);
{Tim va xoa phan tu trung lap}
i:=1;
While i <= k do{Vong lap 1}
begin
j:=i+1;
While (h[i] <> h[j]) and (j<=k) do inc(j);{Vong lap 2}
If j <= k then
begin
For d:=j to k - 1 do begin
h[d]:=h[d+1];{Rut gon mang}
end;
k:=k-1;
end
else inc(i);
end;
For i:=1 to k do Write(h[i]:2);
{Sap xep tang dan}
For i:=1 to k do
For j:=1 to k do
if h[i] < h [j] then
begin
d:=h[i];
h[i]:=h[j];
h[j]:=d;
end;
Writeln;
For i:=1 to k do Write(h[i]:2);
{portfolio}
Readln;
END.
k=int(input())
def de(h,n):
b=[]
for i in range (n):
if (not(h[i] in b)):
b.append(h[i])
return b
h=de(list(map(int,input().split())),k)
print(*h)
h.sort()
print(*h)
$\color{red}{\text{#Daoanhviet96}}$
Tin học, tiếng Anh: informatics, tiếng Pháp: informatique, là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng (ảo). Với cách hiểu hiện nay, tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin.
Nguồn : Wikipedia - Bách khoa toàn thưLớp 8 - Năm thứ ba ở cấp trung học cơ sở, học tập bắt đầu nặng dần, sang năm lại là năm cuối cấp áp lực lớn dần nhưng các em vẫn phải chú ý sức khỏe nhé!
Nguồn : ADMIN :))Copyright © 2021 HOCTAP247