HOCMAI Forum đã quay trở lại, MỚI MẺ - TRẺ TRUNG - NĂNG ĐỘNG
Hãy GIA NHẬP ngay

Bài lập trình phần Chuỗi

Thảo luận trong 'Học lập trình' bắt đầu bởi megamanxza, 4 Tháng mười hai 2012.

Lượt xem: 1,274

  1. megamanxza

    megamanxza Guest

    Hướng dẫn Cách gõ công thức Toán học, Vật lý, Hóa học forum mới


    Các bạn ơi, mình có một bài lập trình Pascal khó, cần mọi người giúp:
    Viết chương trình nhập một xâu kí tự từ bàn phím, in ra màn hình xâu sau khi nén.
    VD: Nhap xau ky tu: AABBCDEEESSS
    Xau sau khi giai nen: 2A2BCD3E3S
    Các bạn nhớ ghi code của chương trình dưới dạng Pascal ra nha! Mình đã biết thuật toán nhưng khi làm nó cứ báo lỗi "Exited with Exitcode=201" không à! Please help me!
     
  2. cuong276

    cuong276 Guest


    Đây! Không biết có đúng không nữa. Bạn thử text nha.
    Mã:
    var s,st,s1:string;
        i,k,d,dem,code:integer;
        j:char;
    function ktstn(a:char):boolean;
    var j:char;
        kt:boolean;
    begin
         kt:=true;
         for j:='1' to '9' do
             if a=j then
                begin
                     kt:=false;
                     break;
                end;
         ktstn:=kt;
    end;
    begin
         write('nhap s='); readln(s);
         d:=0;
         for i:=1 to length(s) do
             for j:='1' to '9' do
                 if s[i]=j then inc(d);
         if d=0 then
            begin
                 st:='';
                 dem:=1;
                 for i:=1 to length(s) do
                     begin
                          if s[i]=s[i+1] then inc(dem);
                          if s[i]<>s[i+1] then
                             begin
                                  if dem=1 then st:=st+s[i];
                                  if dem>1 then
                                     begin
                                          str(dem,s1);
                                          st:=st+s1+s[i];
                                          dem:=1;
                                     end;
                             end;
                     end;
                 writeln('day sau khi doi la:');
                 write(st);
            end
         else
             begin
                  st:='';
                  for i:=length(s) downto 1 do
                      begin
                           if (ktstn(s[i])=true) and (ktstn(s[i-1])=true) then st:=s[i]+st;
                           if (ktstn(s[i])=true) and (ktstn(s[i-1])=false) then
                              begin
                                   val(s[i-1],dem,code);
                                   for k:=1 to dem do st:=s[i]+st;
                              end;
                      end;
                  writeln('day sau khi doi la:');
                  write(st);
             end;
         readln;
    end.
     

CHIA SẺ TRANG NÀY