quyen_anh

New Member

Download miễn phí Niên luận Số nguyên lớn





1)Phần lý thuyết:
- Bước đầu đã vận dụng chuyển đổi từ ngôn ngữ tự nhiên sang ngôn ngữ máy và đã thành công.
- Trên mặt lý thuyết thì giải thuật đã được kiểm chứng bởi chương trình là hoàn toàn đúng, áp dụng các dãy thuật kết hợp với thiết kế chương trình trên ngôn ngữ C (cấu trúc dữ liệu) và đã được kiểm chứng là đúng.
- Sử dụng các kiểu khai báo phù hợp vói yêu cầu của đề tài.
2)Phần chương trình nguồn:
- Sử dụng các hàm các thủ tục quen thuộc, câu lệnh đơn giản, ngắn gọn.
- Chương trình dể đọc dể hiểu, chỉnh sửa dể dàng.
3)Phần chương trình demo:
- Dể sử dụng.
- Giao diện thân thiện với người dùng.
- Kết quả luôn chính xác.
 



Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:

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
MỤC TIÊU CẦN ĐẠT ĐƯỢC
Lý thuyết:
Phải nắm vững và hiểu rỏ sử dụng thành thạo ngôn ngữ lập trình C. Đặt biệt là kiểu con trỏ (danh sách lien kết đơn), khai báo khiểu cấu trúc, kiểu chuỗi… trong cơ sở dữ liệu.
Nắm rỏ cách thức tính cộng và trừ hai số nguyên.
Phải tìm ra thuật toán đơn giản nhất mà hiệu quả.
Chương trình Demo:
Trương trình phải dể sử dụng, cung cấp giao diên thân thiện với người dùng.
Cho phép tính toán một số nguyên lớn bất kì.
Kết quả tính toan luôn chính xác.
2. HƯỚNG GIẢI QUYẾT
- Dữ liệu dược nhập vào từ bàn phím ( dữ liệu đầu vào la một chuổi số).
- Chuyển đổi chuổi vừa nhập thành từng số nguyên, cất từng số nguyên vào danh sách liên kết đơn.
- Sử dụng những chương trình được cài đặc để xử lý.
- Kết quả xuất ra là tổng và hiệu hai số nguyên lớn.
PHẦN II: ỨNG DỤNG
I.CƠ SỞ LÝ THUYẾT:
Được sự hướng dẫn của giáo viên cùng với sự tìm tòi cùa bản thân thì em nhận thấy danh sách lien kết đơn phù hợp với yêu cầu của bài toán, vì trong danh sách liên kết đơn thì không giới hạn số phần tử không cần cấp phát ô nhớ trước dùng đến đâu thì cấp phát đến đó. Vì vây chúng ta không gặp phải trường hợp bị tràn hay bị thừa bộ nhớ …
Trong quá trình thực hiện đề tài em có sử dụng một số hàm thư viện có sẵn trong cấu trúc dữ liệu. Bên cạnh đó em cũng đã tự thiết kế nên một số chương trình con đễ đáp ứng và giải quyết vấn đề cộng và trừ hai số nguyên lớn.
II. CHƯƠNG TRÌNH CON MỘT SỐ HÀM TỰ ĐỊNH NGHĨA VÀ MỘT SỐ HÀM THƯ VIÊN
Cấu trúc dữ liệu mới:
Cài đặt cấu trúc node trong danh sách liên kết
typedef struct node
{
elementtype element;
node* next;
node* prev;
}
Các chương trình con tự định nghĩa và lưu đồ khối kèm theo:
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;
}
P= first(l) ;s=0;
Begin
P!=end(l)
s=s+1 ; p=p->next
End
đúng
sai
- Lưu đồ khối của hàm:
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;
while(p!= end(l))
{
insertlist(retrieve(p,l),first(ld),&ld);
p=p->next;
}
printf("\n\n day so vua nhap la:");
printlist(ld);
printf("\n\n");
}
- Lưu đồ khối của hàm:
begin
p!=first(l1)
p!=end(l1)
insert(retrieve(p,l),first(ld),&ld)
p=p->next
printlist(ld)
end
đúng
sai
Hàm hiệu chuổi a và b:
Đoạn code của hàm:
void hieu(list l1,list l2,list *l4)
{
position p,q,c,d;
p= first(l1);
q= first(l2);
c= end(l1);
d= end(l2);
int H;
if(dem(l1)>dem(l2))
tru(l1,l2,l4);
else if(dem(l1) {
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!!)");
getch();
}
while(d!=first(l2))
{
if((retrieve(c,l1))<(retrieve(d,l2)))
{
printf("\n - "); tru(l2,l1,l4);break;
}
else if(retrieve(c,l1)>retrieve(d,l2))
{
tru(l1,l2,l4);break;
}
c=c->prev;
d=d->prev;
}
begin
P= first(l1) ; q=first(l2)
dem(l1)>dem(l2)
A
tru(l1,l2,l4)
dem(l1) printf(“ - “)
tru(l2,l1,l4)
dem(l1)=dem(l2)
đúng
đúng
đúng
sai
sai
}
}
- Lưu đồ khối của hàm:
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
end
đú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) daoluon(&l1)
daoluon(&l2)
tru(l2,l1,l4)
printf(“ - “)
đúng
đúng
sai
Hàm trừ hai so nguyên a và b:
Code của hàm:
void tru(list l1,list l2,list *l3)
{
position p,q,k;
p= first(l1);
q= first(l2);
k= first(*l3);
elementtype x;
int m=10,t=0;
while((p!=end(l1))&&(q!=end(l2)))
{
if((retrieve(p,l1))==(retrieve(q,l2)))
{
if(t==1)
{
insertlist(9,k,l3);
t=1;
p=p->next;
q=q->next;
}
else if(t==0)
{
insertlist(0,k,l3);
t=0;
p=p->next;
q=q->next;
}
}
else if((retrieve(p,l1))>(retrieve(q,l2)))
{
x= retrieve(p,l1)-(retrieve(q,l2)+t);
insertlist(x,k,l3);
t=0;
p=p->next;
q=q->next;
}
else if((retrieve(p,l1))<(retrieve(q,l2)))
{
x= (m+retrieve(p,l1))-(retrieve(q,l2)+t);
insertlist(x,k,l3);
t=1;
p=p->next;
q=q->next;
}
}
while(p!=end(l1))
{
if(t==1)
{
if(retrieve(p,l1)>=1)
{
x= retrieve(p,l1)-t;
t=0;
insertlist(x,k,l3);
p=p->next;
}
else
{
insertlist(9,k,l3);
t=1;
p=p->next;
}
}
else if(t==0)
{
insertlist(retrieve(p,l1),k,l3);
p=p->next;
}
}
printlist(*l3);
}
- Lưu đồ khối của hàm:
P= first(l1) ; q=first(l2);k=first(l3);m=10;t=0
Begin
P!=end(l1)&&q!=end(l2)
p=p->next;q=q->next; t=1
retrieve(p,l1)= =retrieve(q,l2)
t= =1
t= =0
p=p->next;q=q->next; t=0
A
B
insertlist(9,k,l3)
insertlist(0,k,l3)
đúng
đúng
đúng
đúng
sai
sai
sai
B
retrieve(p,l1)>retrieve(q,l2)
x =retrieve(p,l1) – (retrieve(q,l2) + t)
insertlist(x,k,l3)
p=p->next;q=q->next; t=0
p!=end(l1)&&q!=end(l2)
C
đúng
sai
retrieve...
 
Các chủ đề có liên quan khác
Tạo bởi Tiêu đề Blog Lượt trả lời Ngày
N Một số vấn đề lý luận và thực tiễn về thủ tục tố tụng đối với người chưa thành niên phạm tội theo bộ Luận văn Luật 0
P Thủ tục xét xử những vụ án mà bị cáo là người chưa thành niên : Một số vấn đề lý luận và thực tiễn : Luận văn Luật 1
H Tìm hiểu một số lý luận về rối nhiễu hành vi ở trẻ vị thành niên Tài liệu chưa phân loại 3
N Tiểu luận: Một số phương pháp giáo dục đạo đức cho thanh niên sinh viên trường ĐHKD&CNHN Văn hóa, Xã hội 0
T Hạn chế quyền của cha mẹ đối với con chưa thành niên – Một số vấn đề lí luận và thực tiễn Tài liệu chưa phân loại 2
P [Free] Tiểu luận Một số ý kiến về thành lập toà án cho người chưa thành niên ở Việt Nam Tài liệu chưa phân loại 0
D Vai trò của gia đình trong phòng, chống tệ nạn xã hội ở trẻ vị thành niên khu vực Hà Nội. Luận văn T Văn hóa, Xã hội 0
B Điều tra tỉ lệ trẻ em và vị thanh niên ở miền Bắc có các vấn đề sức khỏe tâm thần : Luận văn ThS. Tâ Luận văn Sư phạm 1
B Yếu tố nguy cơ của rối loạn dạng cơ thể ở vị thành niên : Luận văn ThS. Tâm lý học lâm sàng trẻ em v Luận văn Sư phạm 1
T Biện pháp quản lý hoạt động dạy học môn ngoại ngữ tại Học viện Thanh thiếu niên Việt Nam : Luận văn Luận văn Sư phạm 0

Các chủ đề có liên quan khác

Top