Tài nguyên dạy học

Hỗ trợ trực tuyến

  • (Nguyễn Thành Sơn)
  • (Nước Mắt Thần Linh)

Điều tra ý kiến

Học chứng chỉ tin học A ?
Bạn sẽ học trong thời gian tới.
Chưa biết có nên học không.
Không học.

Thống kê

  • truy cập   (chi tiết)
    trong hôm nay
  • lượt xem
    trong hôm nay
  • thành viên
  • Ảnh ngẫu nhiên

    Happy_new_year.swf Ho_Chi_Minh_dep_nhat_ten_nguoi.swf Hatinhminhthuong.swf Flash_thiep110.swf Hay_Ve_Day_Ben_Anh__Duy_Manh_NCT_08633953567101406250.mp3 201112.swf NGUOI_THAY2.swf Bay_giua_ngan_ha.swf Con_Sao_Sau__Huong_Lan.mp3 MUNG_NANG_XUAN_VE.swf Danh_ngon.swf Tet2.swf Br0281b1.jpg Xuan_da_ve.swf Gs_ngotngao.swf Mung_Giang_Sinh_20104.flv 628.jpg Tuyetroi_dGSINH.swf Untitled13.jpg 22222.jpg

    Thành viên trực tuyến

    1 khách và 0 thành viên

    Sắp xếp dữ liệu

    Lỗi số lớn trong kiểu String

    Wait
    • Begin_button
    • Prev_button
    • Play_button
    • Stop_button
    • Next_button
    • End_button
    • 0 / 0
    • Loading_status
    Nhấn vào đây để tải về
    Báo tài liệu có sai sót
    Nhắn tin cho tác giả
    (Tài liệu chưa được thẩm định)
    Nguồn:
    Người gửi: Trần Trung (trang riêng)
    Ngày gửi: 12h:53' 21-03-2009
    Dung lượng: 88.5 KB
    Số lượt tải: 101
    Số lượt thích: 0 người
    Lỗi số lớn và kiểu String trong TP
    Trong mỗi ngôn ngữ lập trình thường có một số kiểu dữ liệu chuẩn cho biết phạm vi giá trị có thể lưu trữ, dung lượng bộ nhớ cần thiết để lưu trữ và xác định các phép toán có thể tác động lên dữ liệu.
    Và trong TP, một số kiểu dữ liệu dạng số như kiểu số nguyên (bao gồm kiểu: byte, integer, word, login) trong đó kiểu logint (có phạm vi lớn nhất): mỗi giá trị lưu giữ trong 4 byte, giá trị biến kiểu này nằm trong phạm vi từ - 231 đến 231-1 tức là từ (-2147483648 đến 2147483647) nên chỉ cho phép biến lưu giữ số tối đa có 10 chữ số.
    Chính vì vậy khi có sự tác động của các toán tử (+,-, *, /)lên 2 hay nhiều biến kiểu nguyên có giá trị lớn thì kết quả của phép toán là không chính xác do lỗi tràn số (lỗi do số quá lớn)
    Để khắc phục điều này, thay vì dùng các biến kiểu nguyên, ta dùng các biến kiểu String. Chẳng hạn để thực hiện phép nhân 2 số, (mỗi số có nhiều hơn 10 chữ số) ta dùng 2 biến S1 và S2 kiểu String dùng để lưu 2 xâu số nhập vào (mỗi chữ số trong xâu là một kí tự) và dùng biến S để lưu kết quả phép nhân.
    Việc nhân 2 xâu số có thể minhhoạ nhưsau (như phép nhân trong SGK môn Toán tiểu học)
    
    Nên theo ý đó, ta chia bài này toán thành các modul sau:
    Modul 1: FunctionTích1 (S1, S2:String) : String, có giá trị trả về là tích 2 xâu S1, S2 (trong đó xâu số S2 chỉ có 1 chữ số)
    Modul 2:Function Tong (S1, S2:String) :String, có giá trị trả về là tổng 2 xâu S1, S2.
    Modul 3: FunctionTích (S1, S2:String) : String, có giá trị trả về là tích 2 xâu S1, S2 (trong đó S1, S2 là 2 xâu số nguyên độ dài tối đa 255 kí tự).
    Để chi tiết hơn, ta minh họa Modul 2 theo sơ đồ sau:
    
    Trong ví dụ trên, ta giả sử ( S1: = 12345678909, S2: = 4567893).
    -->Nếu 2 xâu có độ dài khác nhau, ta thêm các kí tự ‘0’vào trước xâu có độ dài ngắn hơn ( số kí tự ‘0’ cần thêm bằng hiệu độ dài 2 xâu).
    -->Duyệt từng vị trí từ cuối xâu cho đến vị trí đầu tiên của xâu qua biến chỉ số i (ban đầu i:= length(S1)). Với mỗi i ta thực hiện một số thao tác được minh họa như trên hình vẽ ( sau mỗi lần thực hiện những thao tác đó, gán i:=i-1) cho đến khi i=1. Song cần lưu ý khi cộng 2 chữ số cuối cùng (2 kí tự đầu tiên của S1 và S2). Nếu tổng của 2 số này và biến nhớ trước đó (nếu có) >=10 thì cần thêm kí tự ‘1’ vào đầu xâu tổng S.
    Như vậy, thông qua một số thao tác trên cho đến khi i = 0, ta có biến S lưu giữ giá trị tổng của 2 xâu số nguyên ( độ dài tối đa 255 kí tự). Lúc này, ý tưởng đã rõ ràng, xin đi vào phần cài đặt cụ thể.
    II. Cài đặt chương trình.
    
    Trong Modul3, việc tính các tích thành phần và tính tổng của các tích đó, ta chỉ việc thực hiện lời gọi hàm đã được xây dựng ở các Modul1 và Modul2.
    Hi vọng rằng, bài viết này sẽ phần nào giúp các em HS THPThiểu thêm các thao tác trên xâu, và có thể thực hiện được một số phép toán đơn giản trên một số đối tượng mà không hoàn toàn phụ thuộc vào các kiểu dữ liệu định trước. Chúc các bạn thành công !
    ST
     
    Gửi ý kiến

    ↓ CHÚ Ý: Bài giảng này được nén lại dưới dạng RAR và có thể chứa nhiều file. Hệ thống chỉ hiển thị 1 file trong số đó, đề nghị các thầy cô KIỂM TRA KỸ TRƯỚC KHI NHẬN XÉT  ↓