Xây dựng chương trình xử lý số nguyên lớn - Pdf 33

PHẦN I: TỔNG QUAN
I.GIỚI THIỆU TỔNG QUAN:
Có thể nói trong thời đại ngày nay, với sự phát triển nhanh chóng của công nghệ thông
tin và một số lĩnh vực khác như :toán học, thiên văn học,…thì chúng ta phải đối mặt với
việc phải tính toán những số liệu có thể lớn nhỏ khác nhau và đối với một số lĩnh vực số
liệu nhỏ và ít thì ta có thể dung máy tính xách tay để tính toán. Nhưng máy tính xách tay
chỉ giúp chúng ta tính toán những con số có độ dài chừng vài số đến vài chục số, còn trên
thực tế như lĩnh vực thiên văn học, hóa học,vật lí, nguyên tử…, thì những con số cần được
tính toán rất lớn và những số rất lớn như vậy được người ta đặt cho một tên gọi chung là
“Số Nguyên Lớn”. Trong chương trình học của chúng ta thì chúng ta đã được giới thiệu
các kiểu khai báo như: kiểu INT và giá trị tối đa từ -32768 đến 32767 tương ứng với (2
byte), kiểu short thì giá trị tối đa từ -32768 đến 32767 tương ứng với (2 byte), kiểu LONG
thì giá trị tối đa từ -2147483648 đến 214783647 tương ứng với (2 byte), kiểu UNSIGUED
thì giá trị tối đa từ 0 (byte) đến 255 (byte), kiểu FLOAT thì chứa tối đa từ 1,2E-38 đến
3,4E+38 tương ứng với (4 byte), kiểu DOUBLE thì chứa tối đa từ 2,2E-308 đến 1,8E+308
tương ứng với (8 byte), LONG DOUBLE thì chứa tối đa 3,4E-4932 đến 1,8E+4932 tương
ứng với (10 byte)…
Với tất cả các kiểu biến ở trên, thì ta có thể tính toán được những con số nhỏ, vừa, và
tương đối lớn. Còn đối với những con số cực lớn thì những kiêu khai báo trên không thể
nào chứa nổi, vì vậy đòi hỏi chúng ta phải thiết kế một chương trình (giải thuật) để xử lý
những con số đó.
Số nguyên lớn là một lĩnh vực mặc dù con người quan tâm từ rất sớm, nhưng đến nay
để giải quyết trọn vẹn bài toán đó còn là một vấn đề đang được nghiên cứu. Riêng em, hiện
đang là một sinh viên năm 3, với lượng kiến thực còn hạn hẹp của mình,và giới hạn về mặt
thời gian của niên luận này và đây cũng là lần đầu tiên em nghiên cứu một đề tài có tính
chất khoa học nên không tránh khỏi những sai sót. Em xin chân thành biết ơn sự hướng
dẫn hết lòng của giáo viên hướng dẫn.
Rất mong nhận được sự góp ý vô cùng quí báu của quí thầy cô, cùng toàn thể các bạn
để chương trình của em được hoàn thiện hơn.
II. MỤC TIÊU VÀ HƯỚNG GIẢI QUYẾT
1. MỤC TIÊU CẦN ĐẠT ĐƯỢC

{
elementtype element;
node* next;
node* prev;
}
2. Các chương trình con tự định nghĩa và lưu đồ khối kèm theo:
a) Hàm đếm chiều dài của chuổi số nguyên:
- Đoạn code của hàm:
int dem(list l)
{
position p;
p= first(l);
int s=0;
while(p!=end(l))
{
s=s+1;
p=p->next;
}
return s;
}
- Lưu đồ khối của hàm:
b) Hàm đảo chuổi số nguyên:
- Đoạn code của hàm:
void dao(list l)
{
list ld;
makenulllist(&ld);
position p;
p= first(l);
elementtype x;

đúng
sai
q= first(l2);
c= end(l1);
d= end(l2);
int H;
if(dem(l1)>dem(l2))
tru(l1,l2,l4);
else if(dem(l1)<dem(l2))
{
printf("\n -"); tru(l2,l1,l4);
}
else if(dem(l1)==dem(l2))
{
while(p!=end(l1))
{
if(retrieve(p,l1)!=retrieve(q,l2))
{
H=1;break;
}
else if(retrieve(p,l1)==retrieve(q,l2))
{
H=0;
p=p->next;
q=q->next;
}
}
if(H==0)
{
printf("\n\t 0 (Hai so vua nhap bang nhau!!)");

sai
sai
p!=end(l1)
daoluon(&l1)
A
daoluon(&l2)
retrieve(p,l1)!=retrieve(q,l2)
H =0
H=1;
break;
p=p->next;q=q->next; H=0
0
en
d
đúng
đúng
đúng
sai
sai
sai
B
B
retrieve(p,l1)>retrieve(q,l2)
daoluon(&l1)
daoluon(&l2)
tru(l1,l2,l4)
retrieve(p,l1)<retrieve(q,l2)
daoluon(&l1)
daoluon(&l2)
tru(l2,l1,l4)


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status