Tin học Sửa code

SamNguyenxnnh

Học sinh
Thành viên
11 Tháng một 2018
91
15
36
19
Lâm Đồng
Phan Chu Trinh
[TẶNG BẠN] TRỌN BỘ Bí kíp học tốt 08 môn
Chắc suất Đại học top - Giữ chỗ ngay!!

ĐĂNG BÀI NGAY để cùng trao đổi với các thành viên siêu nhiệt tình & dễ thương trên diễn đàn.

Cộng hai số nguyên lớn
Đây là code của mình ạ, mọi người xem qua thử có đúng không nhé!
const fi='Cong.inp';
fo='Cong.out';
var f,g:text;
st,st1,st2:string;
procedure nhap;
begin
readln(f,st1);
readln(f,st2);
end;
Function Cong(s1,s2:String):String;
Var L1,L2,Max,i,tam,a,b,code,nho:Integer;
h,h1:String;
Begin
L1:=length(s1);
L2:=length(s2);
if L1>L2 Then Max:=L1 Else Max:=L2;
For i:=L1+1 to Max do s1:='0'+s1;
For i:=L2+1 to Max do st:='0'+s2;
nho:=0; h:='';
For i:=Max downto 1 do
Begin
val(s1,a,code);
val(s2,b,code);
tam:=a+b+nho;
if tam>=10 Then nho:=1 Else nho:=0;
str(tam Mod 10,h1);
h:=h1+h; End;
if nho=1 Then h:='1'+h;
cong:=h;
End;
procedure xuat;
Begin
write(g,'Ket qua:',cong(st1,st2));
readln;
End;
begin
assign(f,fi); reset(f);
assign(g,fo); rewrite(g);
nhap;
cong(st1,st2);
xuat;
close(f); close(g);
end.
 
Last edited:

trà nguyễn hữu nghĩa

Cựu Mod Vật Lí |Cây bút Thơ|Thần tượng VH
Thành viên
14 Tháng năm 2017
3,974
7,619
744
21
Phú Yên
Trường THPT Lương Văn Chánh
Khác rắc rối nhỉ....mình thấy bạn viết "sai chính tả" khá nhiều.....chú ý lại chính tả và chạy code thử xem có ra kết quả như ý không, theo như code này thì chạy chắc chắn nó sẽ báo lỗi.
PS: Lưu ý đăng code dễ nhìn xíu chứ thế này đọc rối lắm
 

CuongGrove

Học sinh
Thành viên
29 Tháng mười 2019
83
36
21
20
Quảng Ngãi
THPT Trà Bồng
Bạn đã chạy thử chương trình chưa? báo lỗi chỗ nào? chứ không chạy thử mà xem xét từng dòng code mất thời gian lắm
 

Code11

Học sinh
Thành viên
7 Tháng mười 2018
48
19
21
Quảng Nam
THPT Trần Cao Vân
Code của bạn đây, mình có chỉnh sửa lại một chút về file,cách trình bày và các câu lệnh, bạn xem nhé.
Code của bạn sai chỗ hàm val, thay vì s1 mà bạn ghi là s1 nên máy tính sẽ lấy nguyên xâu s1 mà chuyển, thành ra sai thuật toán.
Chúc bạn học tốt!
Mã:
var fi,fo:text;
st,st1,st2:string;

procedure nhap;
begin
readln(fi,st1);
readln(fi,st2);
end;

Function Cong(s1,s2:String):String;
Var L1,L2,Max,i,tam,a,b,nho:Integer;
h,h1:String;
Begin
L1:=length(s1);
L2:=length(s2);
if L1>L2 Then Max:=L1 Else Max:=L2;
For i:=L1+1 to Max do s1:='0'+s1;
For i:=L2+1 to Max do s2:='0'+s2;
nho:=0; h:='';
For i:=Max downto 1 do
                        Begin
                        val(s1[i],a);
                        val(s2[i],b);
                        tam:=a+b+nho;
                        if tam>=10 Then nho:=1 Else nho:=0;
                        str(tam Mod 10,h1);
                        h:=h1+h;
                        End;
if nho=1 Then h:='1'+h;
cong:=h;
End;

procedure xuat;
Begin
write(fo,'Ket qua:',cong(st1,st2));
End;

begin
assign(fi,'cong.inp'); reset(fi);
assign(fo,'cong.out'); rewrite(fo);
nhap;
xuat;
close(fi); close(fo);
end.
 
Top Bottom