Tin học Tính tổng các số trong xâu

Trâm Nguyễn Thị Ngọc

Giải Nhất event Thế giới Sinh học 2
Thành viên
13 Tháng mười 2018
1,523
1,339
241
19
Quảng Trị
Trường TH&THCS Hải Ba
Mã:
Var
 s1,s:string;
 t,i,n,code:Integer;
Begin
 readln(s);
 For i:=1 to length(s) do
   If not(s[i] in['0'..'9'] then s[i]:=#32;
 t:=0;s:=s+#32;
 Repeat
    s1:='';i:=1;
    While s[1]=#32 do delete(s,1,1);
    While (s[i]<>#32) and (i<=length(s)) do
      begin
        s1:=s1+s[i];
        i:=i+1;
     end;
   Delete(s,1,pos(#32,s));
  Val(s1,n,code);
   t:=t+n;
 Until s='';
write('tong la:',t);
readln
End.
 
Last edited:

Aziz

Học sinh mới
Thành viên
17 Tháng hai 2019
10
1
6
20
Đắk Lắk
Cơ quan óc chó
Câu if not gì gì đó nghĩa là j vậy Ạ chỉ cho em vs
 

Aziz

Học sinh mới
Thành viên
17 Tháng hai 2019
10
1
6
20
Đắk Lắk
Cơ quan óc chó
Em vẫn ko hiểu cho lắm chị có thể giải thích ý tưởng bài của chị vừa làm ko Ạ
 

Trâm Nguyễn Thị Ngọc

Giải Nhất event Thế giới Sinh học 2
Thành viên
13 Tháng mười 2018
1,523
1,339
241
19
Quảng Trị
Trường TH&THCS Hải Ba
Em vẫn ko hiểu cho lắm chị có thể giải thích ý tưởng bài của chị vừa làm ko Ạ
Đầu tiên em sẽ gán cho các ký tự không phải số thành #32 Vd : abcs123s5s6 sẽ thành _ _ _ _123_5_6
tiếp theo là e sử dụng Repeat để cộng các số lại với nhau
Mã:
 Repeat
    s1:='';i:=1; Gán 1 cho i và gán s1= rỗng
    While s[1]=#32 do delete(s,1,1);  Xóa các ký tự trắng thừa đầu tiên  VD:xâu vừa rồi sau khi xóa là 123_5_6
    While (s[i]<>#32) and (i<=length(s)) do   
      begin                 (Nếu điều kiện thõa mãn thì em sẽ đưa các
        s1:=s1+s[i];       ký tựt chữ số vào xâu s1
        i:=i+1;                        rồi tăng biến đếm
     end;
   Delete(s,1,pos(#32,s));             sau đó xóa cái số vừa đưa vào
  Val(s1,n,code);             sử dụng lệnh Val để đổi s1 thành số n
                                           rồi cộng vào t
   t:=t+n;
 Until s='';
Kiểu vậy đó ạ ,bài này em làm lâu rồi nên cũng không rõ lắm
 

Aziz

Học sinh mới
Thành viên
17 Tháng hai 2019
10
1
6
20
Đắk Lắk
Cơ quan óc chó
Cam ơn ạ em hiểu r nhưng mà lệnh
If not s in['0'..'9'] r gán = rỗng nó bị lỗi sao ý chạy ko DC chị ạ
 

Aziz

Học sinh mới
Thành viên
17 Tháng hai 2019
10
1
6
20
Đắk Lắk
Cơ quan óc chó
E có bổ sung r để em xem lại .............. R xem sao ạ
 

Aziz

Học sinh mới
Thành viên
17 Tháng hai 2019
10
1
6
20
Đắk Lắk
Cơ quan óc chó
Vẫn ko DC ạ em chạy nó báo lỗi
nhân vật không thể được chuyển sang java
 

Aziz

Học sinh mới
Thành viên
17 Tháng hai 2019
10
1
6
20
Đắk Lắk
Cơ quan óc chó
Chắc do em chayk bằng phần mềm điện thoại nên bị lỗi
 

Aziz

Học sinh mới
Thành viên
17 Tháng hai 2019
10
1
6
20
Đắk Lắk
Cơ quan óc chó
Để mai em lên trường r chạy thử xem sao
Cảm ơn chị đã hướng dẫn
 
Top Bottom