Trang chủ   Sản phẩm   Phần mềm Dành cho nhà trường   Phần mềm Hỗ trợ học tập   Kho phần mềm   Liên hệ   Đăng nhập | Đăng ký

Tìm kiếm

School@net
Bảng giá phần mềm
Educations Software

Đại Lý - Chi Nhánh

Bản tin điện tử
 
Đăng nhập/Đăng ký
Bí danh
Mật khẩu
Mã kiểm traMã kiểm tra
Lặp lại mã kiểm tra
Ghi nhớ
 
Quên mật khẩu | Đăng ký mới

 
Giỏ hàng

Xem giỏ hàng


Giỏ hàng chưa có sản phẩm

 
Xem bài viết theo các chủ đề hiện có
  • Hoạt động của công ty (701 bài viết)
  • Sản phẩm mới (217 bài viết)
  • Dành cho Giáo viên (552 bài viết)
  • Lập trình Scratch (3 bài viết)
  • Mô hình & Giải pháp (155 bài viết)
  • IQB và mô hình Ngân hàng đề kiểm tra (126 bài viết)
  • Hỗ trợ khách hàng (482 bài viết)
  • TKB và bài toán xếp Thời khóa biểu (242 bài viết)
  • Học tiếng Việt (182 bài viết)
  • Thông tin khuyến mại (80 bài viết)
  • Download - Archive- Update (289 bài viết)
  • Các Website hữu ích (71 bài viết)
  • Cùng Học (98 bài viết)
  • Learning Math: Tin học hỗ trợ học Toán trong nhà trường (74 bài viết)
  • Thông tin tuyển dụng (55 bài viết)
  • School@net 15 năm (153 bài viết)
  • Mỗi ngày một phần mềm (7 bài viết)
  • Dành cho cha mẹ học sinh (123 bài viết)
  • Khám phá phần mềm (122 bài viết)
  • GeoMath: Giải pháp hỗ trợ học dạy môn Toán trong trường phổ thông (36 bài viết)
  • Phần mềm cho em (13 bài viết)
  • ĐỐ VUI - THƯ GIÃN (360 bài viết)
  • Các vấn đề giáo dục (1209 bài viết)
  • Bài học trực tuyến (1033 bài viết)
  • Hoàng Sa - Trường Sa (17 bài viết)
  • Vui học đường (276 bài viết)
  • Tin học và Toán học (220 bài viết)
  • Truyện cổ tích - Truyện thiếu nhi (181 bài viết)
  • Việt Nam - 4000 năm lịch sử (97 bài viết)
  • Xem toàn bộ bài viết (8179 bài viết)
  •  
    Thành viên có mặt
    Khách: 10
    Thành viên: 0
    Tổng cộng: 10
     
    Số người truy cập
    Hiện đã có 55848309 lượt người đến thăm trang Web của chúng tôi.

    Một hướng mở rộng phạm vi giá trị số nguyên

    Ngày gửi bài: 24/12/2008
    Số lượt đọc: 1656

    Ta biết rằng ở trên máy vi tính đối với một số ngôn ngữ lập trình, số nguyên dương n có giới hạn n < 32768 vì vậy, việc tính toán trên số nguyên ngoài giới hạn trên không thể thực hiện được nhờ các phép toán của máy tính. Chúng ta có thể khắc phục bằng cách biểu diễn số nguyên dưới dạng các ký tự thông qua nã ASCII của nó.

    Ví dụ;

    Nhập số thứ nhất: 123

    Nhập số thứ hai: 123456789

     

    Phép cộng:

    123
    +123456789

    =123456912

     

    Phép trừ:

    123

    - 123456789

    =- 123456666

     

    Ý tưởng:

    - Nhập 2 xâu số

    - Để thực hiện cộng (hoặc trừ) 2 xâu số ta lần lượt cắt từng ký tự (từ phải sang trái) của 2 xâu, sau đó cộng (hoặc trừ) theo mã của các cặp ký tự tương ứng (cần chú ý nhớ và mượn).

     

    Chương trình:

     

    Var s1, s2, kq, gach, tg: string;

    Max, i: byte;

     

    Procedure Nhap;

    Begin

    Write(‘Nhap so thu nhat’); Readln(s1);

    Write(‘Nhap so thu hai’); Readln(s2);

    End;

     

    Procedure Inan(Dau: char);

    Begin

    Writeln(S1:40);

    Writeln(Dau+’’+s2:40);

    Writeln(gach:40);

    Writeln(‘=’+kq:40);

    End;

     

    Function Cong(s1,s2: string):string;

    Var i, nho, nho2, k, co, hieu: integer; s:string;

    Begin

    If length(s1) < length(s2) then k:= length(s1)

    Else begin k:=length(s2); s:=s1; s1:=s2; s2:=s; end;

    Hieu:=length(s2) – length(s1);

    Nho:=0; s:= ‘ ’;

    For i:=k downto 1 do

    Begin

    Co:=ord(s1[i]+ord(s2[i+Hieu]) – 96 +nho;

    S:=chr(co mod 10 + 48) + s;

    Nho:=co div 10;

    End;

    S:=copy(s2, 1, Hieu) + s;

    i:=Hieu;

    If nho <> 0 then

    While (i>0) and (nho <> 0) do

    Begin

    Nho2:=ord(s[i])+nho – 48;

    S[i]:=char(nho2 mod 10 + 48;

    Nho:=nho2 div 10;

    Dec(i)

    End;

    If nho <> 0 then s:= ‘1’ + s;

    Cong: = s;

    End;

     

    Function Tru(s1,s2: string):string;

    Var i, nho,k,co,co2, Hieu: integer; s: string;

    Begin

    If length(s1)< length (s2) then k:=length(s1)

    Else

    Begin

    K:=length(s2);

    If (length(s1) > length(s2)) or (s1 > s2) then

    Begin s:=s1; s1:=s2; s2:=s; end;

    End;

    Hieu:=length(s2) – length(s1);

    Nho:=0; s:= ‘ ’;

    For i:=k downto 1 do

    Begin

    Co2: = ord(s1[i]) + nho;

    If co2 > ord(s2[i+Hieu]) then nho:=1 else nho:=0;

    Co:=ord(s2[i+Hieu])+10*nho-co2;

    S:=chr(co mod 10 + 48) + s;

    End;

    S: = copy(s2,1, Hieu) + s;

    I:=Hieu;

    If nho <>0 then

    While (i> 0) and (nho <>0) do

    Begin

    If ord(s[i])>=49 then nho:=0 else nho:=1;

    S[i]:=char(ord(s[i]) – 1);

    Dec(i);

    End;

    While (s[i]= ‘0’) and (s <> ‘ ’) do delete(s, 1,1);

    Tru:=s;

    End;

     

    Begin

    Nhap;

    Max:=length(s1);

    If length(s2) > max then max:=length(s2);

    Gach:=’’;

    For i:=1 to max do gach:=gach+ ‘-’;

    Writeln(‘Phep cong:’:35);

    Kq:=cong(s1,s2);

    Inan(‘+’);

    Writeln;

    Writeln(‘Phep tru: ’ :35);

    If (s1 < s2) or (length(s1) < length(s2)) then

    Begin tg:=s1; s1:=s2; s2:=tg;

    Kq:= ‘-’ + tru(s1,s2); s2:=s1;s1:=tg;

    End

    Else kq:=tru(s1,s2);

    Inan(‘-’);

    Readln;

    End.

    School@net (Theo Minh Ngọc- THNT)



     Bản để in  Lưu dạng file  Gửi tin qua email


    Những bài viết khác:



    Lên đầu trang

     
    CÔNG TY CÔNG NGHỆ TIN HỌC NHÀ TRƯỜNG
     
    Phòng 1407 - Nhà 17T2 - Khu Trung Hoà Nhân Chính - Quận Cầu Giấy - Hà Nội
    Điện thoại: (024) 62511017 - Fax: (024) 62511081
    Email: school.net@hn.vnn.vn / thukhachhang@yahoo.com


    Bản quyền thông tin trên trang điện tử này thuộc về công ty School@net
    Ghi rõ nguồn www.vnschool.net khi bạn phát hành lại thông tin từ website này
    Site xây dựng trên cơ sở hệ thống NukeViet - phát triển từ PHP-Nuke, lưu hành theo giấy phép của GNU/GPL.