Hướng Dẫn Download & Cài Đặt Hate Pascal If You Can

Link download :   https://goo.gl/U2Wxnu Home:  http://hatepascalifucan.byethost3.com/

Thứ Hai, 3 tháng 4, 2017

MẢNG VÀ XÂU

Bài 2 : Mảng và xâu ( Hưng yên - 2011)
Nhập số nguyên N (2<=n<=20) và mảng 1 chiều A gồm N số nguyên dương nhỏ hơn 1000 sau đó đưa ra kết quả mảng A ra ngoài màn hình. Em hãy cài đặt chương trình làm những việc sau.
a) Sắp xếp mảng A theo thứ tự tăng dần.
b) Nhập vào một số nguyên dương k (k < 1000). Chèn k mảng A sao cho thứ tự sắp xếp vẫn tăng dần.
c) Tạo một xâu nhị phân gồm toàn các số 0 và 1 được tạo từ N số của mảng A sau khi được chuyển sang hệ nhị phân .
VD
N=5, mảng A: 1,7,2,15,11
Mảng sau khi được sắp xếp: 1 2 7 11 15
k=8 thì mảng A : 1 2 7 8 11 15

xâu nhị phân : 110111100010111111


Lời giải 
var d: array[1..30000] of  byte;
M : longint;
procedure sangNT;
var I,j : longint;
begin
for i:=1 to 30000 do d[i] := 0;
d[1]:=1;
i:=1;
while i*i<=30000 do
     begin
       repeat inc(i) until (i*i>30000) or (d[i]=0);
       if i*i<=30000 then 
         begin
           j:=2;
           while i*j<=30000 do 
             begin 
               d[i*j]:=1;
                  inc(j);
             end;
          end;
     end;
end;
function sieunt(x:longint) : boolean;
    begin 
      repeat 
      if d[x] =1 then 
        begin
          sieunt:= false;
          exit;
        end;
      x:=x div 10;
      until x=0;
      sieunt:=true;
    end;

var a,b: longint;
begin
sangNT;
read(M);
a:=m;
while (a>0) and (not sieunt (a)) do dec(a);
b:=m;
while (b<30001) and (not sieunt (b)) do inc(b);
if a>0 then writeln(a);
if (b<>m) and (b<30001) then writeln(b);
end.

Không có nhận xét nào:

Đăng nhận xét