Tin học Pascal

Bui Quang Phuc

Học sinh mới
Thành viên
12 Tháng mười một 2019
2
0
1
21
Hà Nội
THCS Chu Van An

Hải Ham Học

Học sinh
Thành viên
24 Tháng sáu 2017
133
34
26
21
Bà Rịa - Vũng Tàu
thcs hòa hiệp
Mã:
var i,n,d:integer;
      a,b:array[1..1000] of int64;
begin
 readln(n);
 for i:=1 to n do readln(a[i]);
 j:=1; i:=1;
 while (i<=n) do
   begin
     if (a[i] mod 2<>0) then
       begin
         b[j]:=a[i];
         j:=j+1;
       end;
      i:=i+1;
    end;
    d:=j;
  j:=d+1; i:=1;
  while (i<=n) do
    begin
     if  (n mod 2=0) then
       begin
          b[j]:=a[i];
          j:=j+1;
       end;
      i:=i+1;
     end;
=> đoạn chẵn là từ b[d+1] đến b[n]
đoạn lẻ là từ b[1] đến b[d];
sau đó sắp xếp 2 cái mảng trên lại là được, nhớ tách riêng biệt 2 thuật toán sắp xếp ra
 

Code11

Học sinh
Thành viên
7 Tháng mười 2018
48
19
21
Quảng Nam
THPT Trần Cao Vân
Ý tưởng: cho 2 mảng a,b
- Sắp xếp dãy số ở mảng a (ở đây mình dùng sắp xếp nổi bọt vì dữ liệu nhỏ)
- In ra mảng b dãy số chẵn từ mảng a
- In ra mảng b dãy số lẻ từ mảng a

Mã:
var
a,b:array [1..1000] of longint;
i,j,n,temp,k:longint;
begin
write('N:');readln(n);
//nhap day n so
for i:=1 to n do begin
                 write ('Nhap so thu ',i,':');readln(a[i]);
                 end;
//sap xep day so
for i:=2 to n do
              for j:=1 to n-1 do
                            if a[i]<a[j] then begin
                                              temp:=a[i];
                                              a[i]:=a[j];
                                              a[j]:=temp;
                                              end;
//in so chan, le ra mang b va in mang b ra man hinh
k:=1;
for i:=1 to n do
              if a[i] mod 2 = 0 then begin b[k]:=a[i];inc(k); end;
for i:=1 to n do
              if a[i] mod 2 <> 0 then begin b[k]:=a[i];inc(k); end;
for i:=1 to n do write (b[i],'  ');
readln;
end.
 
Top Bottom