Advertisement
alvsjo

string10

Apr 7th, 2017
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.25 KB | None | 0 0
  1. //napisati program za sabiranje pozitvih cijelih visecifrenih brojeva
  2. //koristeci stringove
  3. {
  4. s1: 475809373927
  5. s2:       332434
  6. s3:
  7.  
  8. }
  9. program sabiranje;
  10. var
  11. s2,s1,s3:string;
  12. i,j,n:integer;
  13.  
  14. procedure dopuni(var s1,s2:string);
  15. var m,n,i:integer;
  16. begin
  17.     m:=length(s1);
  18.     n:=length(s2);
  19.     if m>n then
  20.     begin
  21.             for i:=1 to m-n do s2:='0'+s2;
  22.     end
  23.     else
  24.     begin
  25.             for i:=1 to n-m do s1:='0'+s1;
  26.  
  27.     end
  28. end;
  29.  
  30. procedure sabiranje(s1,s2:string; var s3:string);
  31. var i,cifra,prenos,c1,c2:integer; pom:string;
  32. begin
  33.     s3:='';
  34.     prenos:=0;
  35.     for i:=length(s1) downto 1 do
  36.     begin
  37.         val(s1[i],c1);
  38.         val(s2[i],c2);
  39.         cifra:=(c1+c2+prenos) mod 10;
  40.         prenos:=(c1+c2+prenos) div 10;
  41.         str(cifra,pom);
  42.         s3:=pom+s3;
  43.     end;
  44.     if prenos=1 then s3:='1'+s3;
  45. end;
  46.  
  47. procedure stampa(s1,s2,s3:string);
  48. var i,j,k,l:integer;
  49. begin
  50.     i:=0;
  51.     while(s1[i+1]='0') do
  52.     begin s1[i+1]:=' ';i:=i+1; end;
  53.     j:=0;
  54.     while(s2[j+1]='0') do
  55.     begin s2[j+1]:=' ';j:=j+1; end;
  56.     if length(s3)>length(s2) then
  57.     begin
  58.     s1:='  '+s1;
  59.     s2:=' +'+s2;
  60.     s3:='='+s3;
  61.     end;
  62.     writeln(s1);
  63.     writeln(s2);
  64.     writeln(s3);
  65. end;
  66. begin
  67.     write('prvi broj: ');readln(s1);
  68.     write('drugi broj: ');readln(s2);
  69.     dopuni(s1,s2);
  70.     sabiranje(s1,s2,s3);
  71.     stampa(s1,s2,s3);
  72.     readln;
  73. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement