Untitled


SUBMITTED BY: Guest

DATE: May 10, 2015, 4:27 p.m.

FORMAT: Text only

SIZE: 1.5 kB

HITS: 672

  1. Vd1: Hãy viết chương trình nhập vào một mảng gồm các số nguyên , sau đó hãy chuyển các số lẻ lên phần đầu của mảng , số chẵn về phần sau của mảng, rồi sắp xếp các phần đó theo quy tắc: sắp xếp các số lẻ tăng dần và số chẵn giảm dần.
  2. VD mảng : 1 3 5 4 2 7
  3. mảng mới : 1 3 5 7 4 2
  4. Đầu tiên ta sắp xếp mảng thành mảng tăng, dùng thủ tục đổichỗ
  5. Ta thấy ai <= ai+1
  6. tạo mảng mới lưu kết quả
  7. Với a[1] nếu là lẻ ta đưa về đầu mảng b tức là b[1] :=a[1] nếu không thì đưa về cuối mảng b[n]:=a[1];
  8. với a[2] nếu là lẻ ta đưa về đầu mảng nhưng sau b[1] hoặc chẵn thì đưavề trước b[n];
  9. tương tự cho đến a[n];
  10. CODE:
  11. USES crt;
  12. VAR a,b:ARRAY[1..1000] OF LONGINT;
  13. i,j,n,k,l,tg:LONGINT;
  14. PROCEDURE Doicho;{ thu tuc doi cho }
  15. BEGIN
  16. tg:=a[j];
  17. a[j]:=a[j+1];
  18. a[j+1]:=tg;
  19. END;
  20. BEGIN
  21. Write('Nhap n : ');
  22. Readln(n);
  23. FOR i:=1 TO n DO
  24. BEGIN
  25. Write('a',i,' : ');
  26. Readln(a[i]);
  27. END;
  28. FOR i:=1 TO n-1 DO
  29. FOR j:=1 TO n-1 DO
  30. IF a[j] > a[j+1] THEN
  31. doicho; {sap xep lai mang }
  32. k:=0;l:=n;
  33. FOR i:=1 TO n DO
  34. IF a[i] MOD 2 <> 0 THEN
  35. BEGIN
  36. inc(k);
  37. b[k]:=a[i];{neu a[i] chan }
  38. END ELSE
  39. BEGIN
  40. dec(l);
  41. b[l]:=a[i];{neu a[i] le }
  42. END;
  43. FOR i:=1 TO n DO
  44. Write(b[i]:3);
  45. Readln;
  46. END.

comments powered by Disqus