Hãy cho mình ý tưởng để tách các chữ số trong mảng

Hãy cho mình ý tưởng để tách các chữ số trong mảng

0 bình luận về “Hãy cho mình ý tưởng để tách các chữ số trong mảng”

  1. Ý tưởng:

    Có 2 cách:

        -Sử dung cấu mod/ div 10;

        – Đổi thành xâu rồi tách;

    Cách làm:

    Dùng Procedure để gọ thì sẽ tiện, ngắn gọn hơn.

    C1.Sử dung cấu mod/ div 10:

    uses crt;
    var I,N:LONGINT; A:array[1..100000]of longint;
    procedure tach(a:longint);
    var s,c:string; t:byte;
    begin
       s:=”;
       while a<>0 do
          begin
             t:=a mod 10;
             str(t,c);
             s:=c+’ ‘+s;
             a:=a div 10;
             t:=t div 10;
          end;
       writeln(s);
    end;
    begin
    clrscr;
       write(‘n=’);readln(n);
       for i:=1 to n do
          begin
             write(‘a[‘,i,’]=’);readln(a[i]);
          end;
       for i:=1 to n do begin write(a[i],’: ‘); tach(A[i]); end;
    readln
    end.

    C2. Đổi thành xâu rồi tách:

    uses crt;
    var I,N:LONGINT; A:array[1..100000]of longint;
    procedure tach(a:longint);
    var s:string; i:longint;
    begin
       str(a,s);
       for i:=1 to length(S) do write(s[i],’ ‘);
    end;
    begin
    clrscr;
       write(‘n=’);readln(n);
       for i:=1 to n do
          begin
             write(‘a[‘,i,’]=’);readln(a[i]);
          end;
       for i:=1 to n do begin write(a[i],’: ‘); tach(A[i]); writeln;end;
    readln
    end.

    Bình luận
  2. Ý tưởng:

    Bạn cần một chương trình thủ tục con để tách số (hoặc thực hiện chung luôn nhưng hơi phức tạp)

    Sau đó duyệt hết mảng và gọi thủ tục

    Chương trình:

    program tach_so;

    uses crt;

    var A:array[1..1000] of integer;

         n,i:integer;

    {—Chuong-trinh-con—}

    procedure tach(k:integer);

    begin

           while k>0 do

                  begin

                         write(k mod 10,’ ‘);

                         k:=k div 10;

                  end;

           writeln;

    end.

    {—Chuong-trinh-chinh—}

    BEGIN

           clrscr;

           write(‘Nhap so luong phan tu: ‘);  readln(n);

           for i:=1 to n do

                  begin

                         write(‘Nhap so thu ‘,i,’: ‘);   readln(A[i]);

                  end;

           writeln(‘Ket qua tach so theo thu tu la:’);

           for i:=1 to n do

                  tach(A[i]);

           readln;

    end.

    Bình luận

Viết một bình luận