Tải bản đầy đủ (.doc) (46 trang)

TTCS 036

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (712.59 KB, 46 trang )

TRƯỜNG ĐẠI HỌC VINH
Khoa Công nghệ thông tin
ĐỀ TÀI THỰC TẬP CƠ SỞ
MÃ ĐỀ: 036
Câu 1: Các thuật toán sắp xếp trong ( sắp xếp chèn, sắp xếp phân đoạn, sắp xếp
vun đống ...)
u cầu:
1. Trình bày thuật tốn
2. Ví dụ minh họa
3. Cài đặt thuật tốn trên 1 ngơn ngữ nào đó (Pascal, C, C++ ...)
Các thuật tốn sắp xếp trong (sắp xếp chèn, sắp xếp phân đoạn, sắp xếp vun đống)
1.Sắp xếp chèn
Bài toán : Sắp xếp mảng số nguyên k1, k2,…, kn theo thứ tự không giảm
Giả sử ban đầu k1 được coi như bảng chỉ gồm một khóa đã được sắp xếp. Xét thêm
k2 so sánh nó với k1 để xác định chỗ chèn nó vào, sau đó ta sẽ có một bảng gồm 2
khóa đã được sắp xếp.Đối với k3 lại so sánh với k2, k1 và cứ tương tự như vậy với
k4, k5, k6,…, kn. Khi xét xong kn thì bảng khóa đã được sắp xếp hồn tồn
Có thể minh họa qua bảng sau:
-Dấu “-” chỉ chỗ trống trong miền sắp xếp
-Dấu “

” chỉ việc dịch chuyển khóa cũ để lấy khóa chèn vào

Giaỉ thuật sắp xếp chèn được viết như sau:
Void insertion (int a[100] )
{
printf (“\n sắp xếp chèn :”);
nhập (a);
int temp;
int i, j;
for (i=1;i


{
temp =a[i];
1


for (j=i-1;j>=0&&temp a[j+1]=a[j];
a[j+1=temp];printf(“\n sau khi chạy lần %d: ”,số lần chạy );
số lần chạy ++;
xuất(a);
}
}
2.Sắp xếp phân đoạn
Bài toán: cho mảng n số nguyên x(1), x(2),…, x(n), sắp xếp lại mảng theo
thứ tự khơng giảm
Mơ tả thuật tốn
Chọn một khóa ngẫu nhiên nào đó làm “chốt”.Mọi phần tử nhỏ hơn khóa
“chốt” phải được sắp xếp vào vị trí ở trước “chốt”, mọi phần tử lớn hơn khóa chốt
phải được sắp xếp vào vị trí sau “chốt”.Muốn vậy các phần tử phải được so sánh
với khóa “chốt” và sẽ đổi vị trí cho nhau, hoặc cho “chốt ”neus nó lớn hơn “chốt”
mà lại nằm trước “chốt” hoặc nhỏ hơn “chốt” mà nằm sau “chốt”. Khi việc đổi chỗ
đã thực hiện xong thì dãy sẽ phân làm 2 đoạn: đoạn 1 gồm các khóa nhỏ hơn
“chốt”, đoạn 2 gồm các khóa lớn hơn “chốt” và khóa “chốt” nằm ở giữa 2 đoạn này
và ta coi như kết thúc 1 lượt sắp xếp
Ở lượt tiếp theo ta cũng làm tương tự đối với các phân đoạn cịn lại nhưng
chỉ có một phân đoạn được xử lý , còn một phân đọan phải để khi khác hay là một
phân đoạn phải được “ghi nhớ” lại
Quá trình xử lý 1 phân đoạn , ghi nhớ một phân đoạn còn lại được thực hiện
tiếp tục cho tới khi một phân đoạn chỉ gồm có một phần tử thì việc ghi nhớ khơng
cần nữa .Khi đó phân đoạn mới được xác định, đối với phân đoạn này quá trình lặp

lại tương tự. Sắp xếp kết thúc khi phân đoạn cuối cùng được xử lý xong
2


Ví dụ :
Cho một dãy khóa : 42 23 74 11 65 58 94 36
Ở đây ta chọn chốt là 42
Ta sẽ làm sao để cho các số nhỏ hơn 42 như 23,11,36 phải chuyển về vị trí
bên trái của số 42 hay chuyển về phía trước, cịn các số lớn hơn 42 như 74, 65, 58,
94 nằm ở vị trí phía sau 42 và như vậy ta đã tách được dãy khóa thành 2 đoạn và
“chốt” 42 nằm ở giữa 2 đoạn đó. Một dãy(đoạn) chiếm 3 vị trí đầu, một dãy chiếm
4 vị trí sau và khóa “chốt” 42 được đưa vào giữa hai dãy đó tức vị trí thứ 4 và là vị
trí đúng của nó trong sắp xếp .Khi đó ta đã thực hiện xong một lượt phân đoạn
Quá trình tìm số nhỏ hơn chốt để chuyển về phía trước chốt và khóa lớn hơn
chốt chuyển về phía sau chốt dựa vào 2 biên chỉ số i và j để duyệt qua dãy khóa
theo chiều ngược chiều nhau .Ban đầu i lấy giá trị của LB +1 (LB là chỉ số của
phần tử đầu của dãy khóa đang xét gọi là biên dưới ), cịn j lấy giá trị của UB (UB
là chỉ số của phần tử cuối của dãy khóa đang xét gọi là biên trên ) i sẽ tăng giá trị
lên 1 (i=i+1) đến khi k[i] lớn hơn chốt thì thơi, tiếp đó j bắt đầu được giảm giá trị
cho đến khi k[j] bé hơn chốt .Nếu ilại tương tự cho tới khi i>j thì k[j] và khóa chốt đổi chỗ cho nhau .Các bước đó
được thể hiện ở bảng sau :
Lượt
1
2
3
4
5
6
7


Ki=42
(11
11
11
11
11
11
11

23
23
(23
23
23
23
23
23

74
36)
36)
(36)
36
36
36
36

11
42

42
42
42
42
42
42

65
(65
(65
(65
(65
(58)
58
58

Giải thuật phân đoạn được viết như sau:
Void quick sort (int a[100], int l, int r)

3

58
58
58
58
58
65
65
65


94
94
94
94
94
(94
94
74

36
74)
74)
74)
74)
74)
(74)
94


{
int i=1;
int j=r;
int khóa = a [(l+r)/2];
if (l>=r)
{
số lần chạy ++;
return;
}
while (i<=j)
{

while( a[i]< khoa)
i++;
while (a[j] >khoa)
j-if(i<=j)
{
swap (a[i], a[j]);
i++;
j--;
}
}
}
3.Sắp xếp kiểu lựa chọn
Nội dung pương pháp :

4


Ở lượt thứ i( i=1, 2,…, n) ta chọn khóa nhỏ nhất trong dãy khóa ki, ki+1,…, kn và
đổi chỗ nó với ki .Như vậy sau j lượt ,j khóa nhỏ hơn ở các vị trí lần lượt là thứ
nhất ,thứ hai,…thứ j theo đúng thứ tự sắp xếp
Giải thuật được viết như sau :
Int selection sort (k,n)
{
Int i,j,m,x;
For ( i=1;i{
m=i;
for

(j=i+1;j<=n;j++)


if k[i]m=j;
if(m!=i)
{
x=k[m];
k[m]=k[i];
k[i]=x;
}
}
}

* Ví dụ:
i

Ki

lượt

1

2

3

4
5

5


6

7


1
2
3
4
5
6
7
8

42
23
74
11
65
58
94
36

11
23
74
42
65
58
94

36

11
23
74
42
65
58
94
36

11
23
36
42
65
58
94
74

11
23
36
42
65
58
94
74

Chương trình minh họa cho 3 thuật tốn :

#include<conio.h>
#include<stdio.h>
int n;
int solanchay=1;
void nhap( int a[100])
{
Printf ( “\n so phan tu nhap:”);
scanf (“%d”,&n);
for (int i=0;i{
printf (“a[%d]=”,i);
scanf (“%d”,&a[i]);
}
}
Void xuat ( int a[100])
{
for ( int i=0;iprintf (“%d”,a[i]);
}

6

11
23
36
42
58
65
94
74


11
23
36
42
58
65
94
74

11
23
36
42
58
65
74
94


Void swap ( int &x,int&y)
{
int temp=x;
x=y;
y=tem;
}
Void insertion sort (int a[100])
{
printf (“\n sap xep chen insertion sort”);
nhap(a);

int temp;
int i,j;
for(i=1;i{
temp =a[i];
for (j=i-1;j>=0&&tempa[j+1]=a[j];
a[j+1]=temp;
printf (“\n sau khi chay lan thu %d”,solanchay);
solanchay++;
xuat(a);
}
}
Void selection sort (int a[100])
{
printf (“\n sap xep kieu lua chon”);
nhap(a);
7


for (int i=0;i{
int min=a[i];
int vt=I;
for ( int j=i;j{
if (a[j]{
min=a[i];
vt=j;

}
}
swap (a[i],a[vt]);
printf (“\n sau khi chay lan thu %d”,solanchay);
solanchay ++;
xuat (a);
}
}
Void quick sort (int a[100], int l, int r)
{
int i=1;
int j=r;
int khoa=a[(l+r)/2] ;
if (l>=r)
{
Solanchay ++;
return ;
8


}
while (i<=j)
{
while ( a[i]while ( a[j]>khoa) j--;
{
swap (a[i],a[j]) ;
i++;
j--;
}

}
printf (“\n sau khi chay lan thu %d”,solanchay);
xuat(a); quick sort (a,l,j);
quick sort (a,i,r);
}
Void main()
{
Int a[100];
Int chon;
While ( “true”)
{
printf (“\n chon 1 insertionsort _sapxepchen”);
printf (“\n chon 2 selectionsort _sapxepkieuluachon”);
printf (“\n chon 3 quicksort _sapxepvundong”);
printf (“\n chon 4 de thoat”);
printf (“\n lua chon cua ban”);
scanf (“%d”,&chon);
9


clrscr();
if ( chon==1)
{
clrscr ();
intsertionsort(a);
solanchay=1;
getch();
clrscr();
}
if (chon=2)

{
clrscr ();
selectionsort(a);
solanchay=1;
getch();
clrscr();
}
if (chon=3)
{
clrscr ();
printf (“\n sap xep bang quicksort_sap xep vun dong”);
nhap (a);
quicksort (a,0,n-1);
solanchay=1;
getch ();
clrscr();
}
10


if (chon=4) break;
}
}
Câu 2: Trộn thư - Mail Merge
• Khái niệm, thuật ngữ trộn thư
• Trộn theo các cách envelopes, labels, directories, and e-mail messages
• Trộn với những bản ghi được chọn
I. Khái niệm, thuật ngữ trộn thư
Có một bảng dữ liệu dạng lương hoặc địa chỉ trong Excel nhưng lại khơng
muốn in theo kiểu Excel mà muốn nhúng nó vào trong Word trong đó đặc biệt

muốn in mổi dịng trên một trang dữ liệu đã được trình bày trong Word. Tính năng
trộn thư ( mail merge ) tron Word sẻ cho phép bạn làm điều đó một cách dể dàng.
Vậy tại sao không làm tất cả trên Excel? Về lý thuyết thì hồn tồn có thể làm
được tất cả trên Excel, nhưng sở trường của Excel là tính tốn và quản lý dữ liệu
chứ khơng phải trình bày.Vì thế vừa có được kết quả tính tốn vừa lại trình bày
đẹp thì người dùng sử dụng tính năng trộn thư của Word để có thể trình bày trong
Word nhưng lại lấy dữ liệu ở Excel.
Mail – merge là một tính năng có sẳn trong word. Cho phép tạo hàng loạt trang
văn bản có nội dung giống nhau từ một văn bản chính ( main document ) kết hợp
với nội dung chi tiết khác từ một văn bản dữ liệu khác ( Data source).
Thông thường khi sử dụng chức năng mail merge ( Trộn thư trong MS Word)
để tạo ra các thư mời hay phiếu báo điểm... Mặc định của chương trình là ứng với
mổi Record dữ liệu nhất định sẻ tạo ra một trang tiệp tin Main chính trên một tờ
giấy A4. Khi đó niếu tiệp tin của nội dung của tiệp tin Main chính quá ít bạn sẻ
thấy trang giấy còn rất nhiều chổ trống, và niếu bỏ đi thì thật đáng tiếc. Một trong

11


những thủ thuật hiện có trong trộn thư sẻ giúp tùy biến số lượng mẩu tin in ra
nhằm tiền kiệm giấy mà không mất mát đi nội dung của thông tin.
Tính năng trộn thư là một trong các tiện ích mà Word giúp người dùng giảm
đáng kể thời gian xử lý văn bản trên máy tính. Tính năng này chèn thông tin dữ liệu
khác nhau vào cùng một văn bản cố định nào đó bằng cách kết hợp hai nguồn
thơng tin làm 1. Tính năng này đặc biệt hữu ích niếu như bạn muốn chền thông tin
như tên, tuổi , địa chỉ..... Trong danh sách để gửi thư mời, thư cảm ơn... để làm việc
này phải có hai tiệp tin riêng biệt trước khi trộn với nhau.
Sử dụng mail merge bạn có thể tạo ra:
-Một tập hợp các nhãn hoặc phong bì với địa chỉ trả về là như nhau trên tất cả
các nhãn hoặc bao thư, nhưng các địa chỉ đích là duy nhất

- Một tập hợp các hình thức thư, email hoặc fax, nhưng những thơng tin đó đã
từng có.
- Một tập hợp các phiếu, đơn từ
II. Trộn theo các cách labels,envelopes, directories, and e – mail messages
Thương thì thơ mời cho một cơng việc chỉ khác nhau ở phần: tên, địa chỉ nội
dung........ Do đó chúng ta có thể dựa vào một tạo một mẩu trước bằng Word và
mẩu cịn lại là mơt nguồn dữ liệu dạng bảng được tạo bằng Word, Excel....
1. Trộn theo cách labels
Thông thường để trộn một lá thư gồm các nội dung sau tuy nhiên với một cách
trộn thì ta có thể bỏ qua một số nội dung:
• Xây dựng văn bản chính.
- Việc tạo ra main document tương tử như tạo một file bình thường
-

Những thành phần bảng mang nội dung chi tiết thì bỏ trống

• Tạo văn bản dử liệu
- Văn bản nguồn được xây dựng dưới dạng bảng.
- Mổi thơng tin cần trộn của bản chính là một cột của bảng
12


- Mổi dịng tương ứng với một bản ghi thơng thường
+ Thực hiện
- Mở một trang Word trắng, Kích hoạt thanh cộng cụ Mail Merge
- Nhấp chọn công cụ Main document setup xem hình

- Chọn chức năng tạo nhãn labels trên hộp thoại Main Document Type

- Trên hộp thoại options nhấp chọn tên phù hợp trong khung product number


- Nhấp vào new laybel để thiết kể lại kích thước nhãn tùy biến theo
khuôn mẩu vừa mới chọn: Lần lượt điều chỉnh lại các thơng số kích thước lề

13


trên, dưới, độ rộng, chiều cao phù hợp với khổ giấy A4 ( chọn muc paper
size ) tương ứng lưu ý đến hai thông số quan trọng: Number across ( số nhãn
thể hiện theo cột ), Number down ( số nhãn thể hiện theo hàng ) đặt tên cho
mổi label mới vào dòng label name xong nhấp ok để đồng ý khởi tạo mẩu
xem hình.

Ghi chú: Ví dụ ở đây tôi muốn trên cùng một trang giấy A4( khổ đứng ) sẻ
in ra được 2 phiếu báo điểm nằm theo kiểu hàng ( trên và dưới ) thì sẻ thiết lặp
number across (1) và number down(2), tương tự như vậy bạn có thể tùy biến
thoải mái các thơng số niếu muốn in ra nhiều phiếu hơn trên cùng một mặt giấy.
- Trở vể hộp thoại label options nhấp chọn mẩu tên label vừa tạo, nhấp
ok để tiến hành quá trình trộn thư.
- Lúc này trên trang Word trắng sẻ có một khung bảng ( kiểu một cột,
hai dòng ), đúng như thiết kế ở bước trên lần lượt sao chép các nội dung ở
tiệp tin main chính đã chuẩn bị từ trước, vào hai khung trống này

14


Nhấn nút công cụ open data source trên thanh mail merge để đưa tập tin
danh sách Excel cở sở dử liệu đã chuẩn bị ban đầu

- Khi đưa vào tiệp tin Excel sẻ xuất hiện hộp thoai select table yêu cầu

xác định lần nửa thật chính xác sheet chứa cơ sở dữ liệu chính thức

- Trở lại giao diện Word chọn lại các vị trí cần điền thơng tin,nhấn nút
insert merge fields để chèn vào

Chèn nhưng bản ghi theo yêu cầu cho đến khi không chèn nữa
kết thúc ấn next để hiển thị hình dưới chọn hiển thị trang in tất cả hoặc từ
trang bất kỳ .

15


2.Trộn theo cách envelopes ( phong bì )
Với cách này chunga ta có thể tạo ra hàng loạt phong bỳ phuc vụ cho việc
truyền đạt các bức thư.


Các bước thực hiện tương tự như tạo một labels

- Ban đầu nhấp chọn envelops
- Click next để tiếp tục
- Trong hộp thoại mail merge thiết lập hiển thị ch văn bản:
+ Thực hiện tạo một phong bì mới
+ Nhấp vào thay đổi tùy chọn: trong options chọn một cái bất kỳ tùy, có cả
định dạng kích thước kiểu chữ, cách hiển thị hay sử dụng một cái đã có sẳn

+ Tại bước 3: tạo một danh sách người gửi mới hay sử dụng một danh sách
đã có sẳn. Danh sách này là thông tin của người nhận
- Tại bước 4: Đối với một tại liều đã có sẳn tiến hành chọn địa chỉ các
lĩnh vực sẻ tương ứng với các trường nguồn dữ liệu ( Nguồn dữ liệu: Là một

tiệp tin chứa các thông tin mà sẻ sác nhập vào một tài liệu ví dụ: danh sách

16


các tên, địa chỉ.... ). Click vào more items hộp thoại field hiện lên click insert
và close để tiến hành chèn
- Click Vào electronic pastage: Khi đã cài đặt một chương trình điện tử
như là một dịch vụ trên World wide web. Cái này khơng chỉ có văn bản mà
cịn có đồ họa, âm thanh. Niếu khơng có một chường trình cài đặt điện tử thì
Microsoft Word sẻ nhắc cài đặt kết nối đến web trực tuyến của Microsoft
word
- Có thể chèn thêm một số thông tin khác với việc click vao address
block.... và geeting line.....
- Tiếp tục ở bước 5,6: Là kết thúc quá trình tạo các labels
3. Trộn theo cách directories
Cho ra các thư mục chứa những thông tin được chèn vào từ một cơ sở
dử liệu nguồn. Các bước thực hiện tương tự.
Không giống với labels và envenlops thì derectories lại chỉ cho một thư mục
từ các trường dữ liệu đưa vào.
4. Trộn theo cách e - mail messages

Cách này cho phép gửi một tin nhắn email đến một nhóm người bằng
máy tính điện tử với chức năng này có thể gửi nhiều mail cùng một lúc.
Quá trình:
- Trước tiên, thiết lập các e-mail tài liệu chính. Các email tài liệu chính
là mơ hình mổi tin nhắn cá nhân điều dựa.
- Sau đó kết nối các email tiệp chính đã được thiết lập chuyển một tập
tin dữ liệu có chứa địa chỉ email của người nhận. Thêm thơng tin về tập cơ sở
dữ liệu đó

17


- Viết các tin nhăn email. Điều này liên quan đến việc bổ sung thêm hai
loại thông tin:
+ Thông tin là như nhau trong mổi tin nhắn
- Xem trước các tin nhắn để biết được thông tinh dữ liệu được hợp nhất
và chính xác.
- Gửi một tin nhắn thử nghiệm niếu đã hài lịng thì gửi tồn bộ.
- Kết nối với cơ sở dữ liệu: khi sử dung mail merger để gửi e mail, word
yêu cầu các địa chỉ email cho người nhận thư
- Niếu muốn sử dụng Outlook express, cần phải tạo một danh sách trong
Outlook express
- Sau đó trình duyệt thử và gửi đi.
III. Trộn với những bản ghi được chọn
Mở Microsoft Word chọn tools /letters and mailing/mail merge....Hộp thoại
mail merge hiện ra.
- Chọn tài liệu khởi động:
+ Có các sự lựa chọn: Sử dụn tại liệu hiện tại đang mở làm tài liệu
chính,chọn trọng các mẩu thư sẳn có và mở một tài liệu hiện hành làm tài liệu
trộn chính
+ Bấm tiếp tục để chọn người nhận
- Chọn người nhận
+ Gồm có các tùy chọn:
Khi mở hoặc tạo một sử dụng bằng cách sử dụng thuật Sỷ trộn thư, chúng ta
đang yêu cẩu Word sử dụng một tập thông tin khác nhau cụ thể cho phần thư
trộn. Sử dụng trong một phương pháp sau để đính tài liệu chính vào tài liệu
Phương pháp 1: Sử dụng nguồn dữ liệu hiện hành
Để sử dụng nguồn dử liệu hiện hành chúng ta tiến hành trong ngăn tác vụ
trộn thư tiến hành bấm duyệt các danh sách hiện hành

18


Phương pháp 2: Sử dụng từ một danh sách liên hệ Microsoft Outlook
Để sử dụng danh sách liên hệ Outook
Thực hiện bấm tiếp tục chọn người nhận các liên hệ từ Outlook
Trong phần chọn từ các liên hệ Outlook, bấm chọn cặp liên hệ
Trong hộp thoại chọn cặp danh sách liên hệ, chọn cặp danh sách liên hệ hợp
lý ấn ok
Phương pháp 3: Tạo một danh sách liên hệ.
Với cách trộn theo những bản ghi được chọn ta thực hiện phương pháp 1
hoặc 2.
Các bước thực hiện được mô phỏng bằng hình vẻ như sau:
Chọn chức năng trộn thư

Chọn các cách trộn

Bước này sử dụng: Use the current document hoặc start from a template

19


Tiếp

Chọn more items..

Tiến hành chèn

Sau khi chèn


Duyệt thử

20


Kết quả

Next

Chon edit..... để xem trước khi in

Hiển thị

Tiến hành in
21


Thực hiện gửi dữ liệu bằng thư điện tử: Nội dung mổi trang trộn sẻ được
chuyển thanh email gửi đến địa chỉ người nhận được chỉ định
Câu 3: Đồ hoạ
1. Cho một tệp văn bản chứa các số, mỗi số cách nhau ít nhất một dấu cách. Viết
chương trình
đọc số liệu từ tệp và vẽ biểu đồ dạng Bar.
2. Vẽ đồ thị một số hàm số sơ cấp.
3. Xây dựng Menu thực hiện các chức năng.
Yêu cầu báo cáo:
1. Ngôn ngữ cài đặt: C hoặc C++.
2. Báo cáo:
- Đề bài tốn.
- Mơ tả thuật tốn.

- Mơ tả các modul thiết kế bài tốn.
3. Chương trình.
I. NGƠN NGỮ CÀI ĐẶT:
Bài tốn được thực hiện bằng ngơn ngữ lập trình C.
II. BÁO CÁO:
2.1. ĐỀ BÀI TOÁN:

22


1. Ta có tệp văn bản huy.text gồm các số ngun đươc nhập vào từ bàn
phím.
Viết chương trình đọc số liệu từ tệp đã nhập và vẽ biểu đồ hình Bar với các
số liệu đã được nhập vào.
2. Vẽ hàm số sơ cấp.
a. Vẽ hàm số sơ cấp của hàm sin (Hàm Y=SinX).
b. Vẽ hàm số sơ cấp của hàm cos.(Hàm Y=CosX)
3. Xây dựng MENU thực hiện các chức năng trên.
2.2. MƠ TẢ THUẬT TỐN:
2.2. 1. Thuật tốn.
1. Thuật tốn nhập tệp (Tạo tệp và đọc tệp).
a) Mở tệp.
o Khởi tạo một tệp có tên huy.text.
o Nhập dự liêu gồm các số nguyên (kiểu Int)
o Lưu các số nguyên vừa nhập vào tệp đã tạo ra ở trên.
o Đóng tệp.
b) Đọc tệp đã nhập.
o Mở tệp cần đọc "huy.text".
o Đọc số nguyên từ tệp.
o In tệp (Mục đích kiểm tra có chính xác hay khơng).

o Đóng tệp.
2. Thuật tốn vẽ hình Bar.
a) Đọc tệp đã nhập.
o Mở tệp cần đọc "huy.txt".
o Đọc số nguyên từ tệp.
o Lưu các số nguyên vào mảng (Int a[i];).
23


o Đóng tệp.
b) Vẽ Biểu đồ dạng Bar.
o Vẽ trục toạ độ đề các XOY, gốc toạ độ (0,0).
o Co giãn khoảng cách của các cột bằng hsx.
o Khoảng cách giữa các cột với nhau là 20px.
o Co giãn đọ cao của các cột bằng hsy.
o Vẽ các hình Bar với số liệu được đọc từ mảng a[i];
o Thực hiện vẽ hình tiếp theo cho đến khi hết mảng a[i].
3. Thuật toán vẽ Hàm số sơ cấp.
a) Hàm Sin.(Y=SinX).
o Sử dụng setviewport để dời trục tọa độ theo thông số trong
setviewport.
o Vẽ trục toạ độ đề các xoy, gốc toạ độ (0,0) với hệ trục mới
thông qua setviewport.
o Độ cao của hình Sin=90px (Tùy chọn).
o Cận dưới của hình Sin là -2*PI (PI=3.14128).
o Cận trên của Sin là 2*PI (PI=3.14128).
o Gọi hàm Y=90*sin(X) ta được hình đồ thị hàm Sin.
o Sử dụng delay vẽ các điểm chuyển động tạo nên hình Sin.
b) Hàm Cos.(Y=CosX).
o Sử dụng setviewport để dời trục tọa độ theo thông số trong

setviewport.
o Vẽ trục toạ độ đề các xoy, gốc toạ độ (0,0) với hệ trục mới
thơng qua setviewport.
o Độ cao của hình Cos=90px (Tùy chọn).
24


o Cận dưới của hình Cos là -2*PI (PI=3.14128).
o Cận trên của Cos là 2*PI (PI=3.14128).
o Gọi hàm Y=90*cos(X) ta được hình đồ thị hàm Cos.
o Sử dụng delay để vẽ hình Cos chuyển động.
4. Chương trình chính.(Tạo Menu)
a) Tạo khung menu gồm có các chức năng như sau
o MENU CHÍNH CHƯƠNG TRÌNH
o NHẬP TỆP
o VẼ HÌNH BAR
o VẼ HÌNH SIN
o VẼ HÌNH COS
o THỐT
b) Xây dựng thuật tốn định vị phím lên xuống.
c) Chạy chương trình.
2.3. MODUL THIẾT KẾ BÀI TỐN.
1. void vekhung(int i)
Vẽ các khung hình chứa các chức năng cần thực hiện.
2. void luachon(int j)
Vẽ các khung chức năng cần thực hiện khi di chuyển các nút lên
xuống.
3. void nhaptep()
Chương trình nhập vào tệp "huy.text" các số nguyên, lưu vào tệp và in
ra mành hình các số vừa nhập.

4. void hinhBar()

25


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×