Đến nội dung

Tu Pham

Tu Pham

Đăng ký: 11-04-2016
Offline Đăng nhập: 01-05-2017 - 12:49
-----

#628326 bản đồ tránh mìn

Gửi bởi Tu Pham trong 19-04-2016 - 21:32

Mong các bạn giúp đỡ

Hình gửi kèm

  • C3-.jpg



#628321 Trò chơi đặt bom

Gửi bởi Tu Pham trong 19-04-2016 - 21:30

 bạn nào có code pascal giúp mình với nha

Hình gửi kèm

  • c3.jpg



#627549 Phần tử i sau khi hoán đổi nằm ở vị trí thứ mấy

Gửi bởi Tu Pham trong 16-04-2016 - 19:28

Làm vậy là ko được rồi bạn !

Ở đây là 2 xâu riêng biệt mà (xâu s1 và xâu s2).

Bạn phải nén xâu s1 và giải nén xâu s2 .

Ở phần chữ đỏ là chưa đúng :bạn chỉ mới xét được các số có 1 chữ số (chẳng hạn 5) còn số có 2 chữ số trở lên thì sao ?(chẳng hạn 55).

=> Thuật toán chưa triệt để ,bạn nên xem lại

 

uh, đúng rồi, mình quên xét từ 2 chữ số trở lên..




#627473 Phần tử i sau khi hoán đổi nằm ở vị trí thứ mấy

Gửi bởi Tu Pham trong 16-04-2016 - 12:34



 bạn có thể tham khảo thử, code câu 1 của mình

program hoanthien;

uses crt;

var j,n,m:integer;

function kththien(x:integer):boolean;

var s,i:integer;

begin

     s:=0;

     kththien:=false;

     for i:=1 to x div 2 do

        if x mod i = 0 then s:=i + s;

if s=x then kththien:=true;

end;

begin

clrscr;

write('nhap vao so n=');

readln(n);

if kththien(n) then writeln(n,' la so hoan thien')

else writeln('khong phai la so hoan thien');

write('cac so hoan thien <=n la:');

for j:=1 to n do

if kththien(j) then write(j:4);

readln;

end.

câu 2  mình nén xâu đó và giải nén xâu vừa nén 

var s,tam,tamcb,cs:string;
        i,v,n,d,loi,k,x:integer;
begin
        write('s= ');readln(s);
        {------------CAU A------------}
        tam:=' '; tamcb:='';n:=length(s);
        while i<=n do
        begin   d:=1;
                v:=i+1;
                while s[v]=s[i] do
                begin
                        d:=d+1;
                        v:=v+1;
                end;
                if d>=3 then
                begin
                        str(d,cs);
                        tam:=tam+cs+s[i];
                end
                else if d=2 then tam:=tam+s[i]+s[i]
                else tam:=tam+s[i];
                i:=i+d;
        end;
        writeln('sau khi nen chuoi: ',tam);
        {------------CAU B------------}
        i:=1;
        while i<=n do
        begin
                if (tam[i] in ['0'..'9']) then
                begin
                        k:=1;
                        val(tam[i],x,loi);
                        while k<x do
                        begin
                                tamcb:=tamcb+tam[i+1];inc(k);
                        end;
                end
                else tamcb:=tamcb+tam[i];
                i:=i+1;
        end;
        writeln('chuoi sau khi giai nen: ',tamcb);
readln
end.



#627472 Phần tử i sau khi hoán đổi nằm ở vị trí thứ mấy

Gửi bởi Tu Pham trong 16-04-2016 - 12:32



 

Bài 2:

 

program gyu;
uses crt;
var t,i,j,k,l,p,q:integer;
s,s1,s2,n,sp,ss:string;
st:char;
function xt(s:string):char;
begin
xt:=s[1];
end;
begin
clrscr;
write('Nhap xau 1:');readln(s1);
j:=1;
repeat
t:=0;
s:='';
      for i:=j to length(s1) do
          if (s1[i]=s1[i+1]) then t:=t+1 else
             begin
             l:=i;
             p:=i+1;
             break;
             end;
      if t>=2 then
         begin
         for i:=j to l do
         s:=s+s1[i];
         st:=xt(s);
         str(t+1,n);
         sp:=sp+n+st;
         end else
             for i:=j to l do
             sp:=sp+s1[i];
      j:=p;
until j>length(s1);
writeln('Xau nen:',sp);
writeln;
write('Nhap xau 2:');readln(s2);
j:=1;ss:='';
repeat
    val(s2[j],q,l);
    if q>=3 then
    begin
       for k:=1 to q do
       ss:=ss+s2[j+1];
       j:=j+2;
    end else
        begin
        ss:=ss+s2[j];
        j:=j+1;
        end;
until j>length(s2);
writeln('Xau giai nen:',ss);
readln
end.
P/s:Bạn post bài 2 lên xem có giồng mình ko !

 

 bạn có thể tham khảo thử, code câu 1 của mình

program hoanthien;

uses crt;

var j,n,m:integer;

function kththien(x:integer):boolean;

var s,i:integer;

begin

     s:=0;

     kththien:=false;

     for i:=1 to x div 2 do

        if x mod i = 0 then s:=i + s;

if s=x then kththien:=true;

end;

begin

clrscr;

write('nhap vao so n=');

readln(n);

if kththien(n) then writeln(n,' la so hoan thien')

else writeln('khong phai la so hoan thien');

write('cac so hoan thien <=n la:');

for j:=1 to n do

if kththien(j) then write(j:4);

readln;

end.