1. Trang chủ
  2. » Luận Văn - Báo Cáo

BÀI TẬP NHÓM MÔN HỌC KỸ THUẬT LẬP TRÌNH

19 562 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 19
Dung lượng 1,88 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Kiểm tra nhập dữ liệu đầu vào cho các biến 1.1- Kiểm tra việc nhập các chức năng muốn thực hiện Khi nhập chức năng muốn thực hiện là: “ absj “ mà không phải là số 1 hoặc 2 chương trình b

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

BÀI TẬP NHÓM MÔN HỌC

KỸ THUẬT LẬP TRÌNH

HÀ NỘI 2013

Giảng viên hướng dẫn : TS Vũ Thị Hương Giang

- Trần Trung Hiếu

- Nguyễn Minh Tiến

- Nguyễn Văn Tùng

- Nguyễn Hồng Vinh

CHỮA BÀI NHÓM 6

Trang 2

Mục lụ

Mục lục 2

I- KIỂM THỬ 4

1 Kiểm tra nhập dữ liệu đầu vào cho các biến 4

1.1- Kiểm tra việc nhập các chức năng muốn thực hiện 4

1.2- Kiểm tra việc nhập số lượng phần tử cho mảng 4

1.3- Kiểm tra việc nhập giá trị cho các phần tử trong mảng 5

2 Kiểm thử các chức năng của chương trình 5

2.1- Bubble sort 6

2.2- Insertion sort 6

2.3- Selection sort 6

2.4- Tìm phần tử lớn nhất và các vị trí xuất hiện 7

2.5- Tìm phần tử nhỏ nhất và các vị trí xuất hiện 7

2.6- Giá trị trung bình của các phần tử trong mảng 8

2.7- Độ lệch của 2 phân tử ở 2 vị trí cho trước 8

2.8- Độ lệch trung bình 9

2.9- Tìm kiếm tuần tự 10

2.10- Tìm kiếm nhị phân 11

2.11- Tính thời gian tính 12

II- GỠ RỐI 13

1 Lỗi khi nhập số lượng phần tử vào từ bàn phím 13

1.1- Nguyên nhân 13

1.2- Phương án khắc phục 13

1.3- Kết quả sau khi khắc phục 15

2 Lỗi nhập các giá trị phần tử của mảng từ bàn phím 15

2.1- Nguyên nhân 15

2.2- Phương án khắc phục 16

2.3- Kết quả sau khi khắc phục 17

3 Lỗi nhập yêu cầu bằng ký tự 17

3.1- Nguyên nhân 17

Trang 3

3.3- Kết quả sau khi khắc phục 17

Tài liệu tham khảo 19

Trang 4

I- KIỂM THỬ

Để tiến hành tiến hành kiểm thử chương trình của nhóm 6 nhóm chúng em đã tiến hành kiểm thử chương trình theo chức năng cụ thể như sau:

1 Kiểm tra nhập dữ liệu đầu vào cho các biến

1.1- Kiểm tra việc nhập các chức năng muốn thực hiện

Khi nhập chức năng muốn thực hiện là: “ absj “ mà không phải là số (1 hoặc 2) chương trình bị “treo”, không thực hiện được tiếp nữa

1.2- Kiểm tra việc nhập số lượng phần tử cho mảng

Lỗi khi nhập số lượng phần tử là “sds” từ bàn phím chương trình chạy không dừng

Trang 5

1.3- Kiểm tra việc nhập giá trị cho các phần tử trong mảng

nhập dữ liệu từ bàn phím là kiểu ký tự (VD ret) cho các phần tử trong mảng chương trình bỏ qua việc nhập các phần tử khác khi thực hiến chức năng thì

bị treo

Để kiểm thử các chức năng của chương trình chúng em đã tiến hành nhập số phần tử cho mảng là 10

Với các giá trị các phần tử trong mảng như sau:

Trang 6

2.1- Bubble sort

chương trình cho kết quả như sau:

Kết luận : chương trình chạy đúng theo yêu cầu

Chương trình cho kết quả như sau:

Kết luận : chương trình chạy đúng theo yêu cầu

Chương trình cho kết quả như sau:

Trang 7

Kết luận : chương trình chạy đúng theo yêu cầu

Chương trình cho kết quả như sau:

Kết luận : chương trình chạy đúng theo yêu cầu

2.5- Tìm phần tử nhỏ nhất và các vị trí xuất hiện.

Chương trình cho kết quả như sau:

Trang 8

Kết luận : chương trình chạy đúng theo yêu cầu

Chương trình cho kết quả như sau:

Kết luận : chương trình chạy đúng theo yêu cầu

2.7- Độ lệch của 2 phân tử ở 2 vị trí cho trước

TH1: nhập vị trí lớn hơn kích thước mảng

Chương trình đưa ra lỗi và kết thúc

Trang 9

Kết luận : chương trình chạy đúng theo yêu cầu

TH2: cả hai vị trí đều thuộc mảng

Chương trình chạy đúng

2.8- Độ lệch trung bình

Chương trình chạy đúng :

Trang 10

2.9- Tìm kiếm tuần tự.

TH1: Không có phần tử :

Chương trình chạy đúng

TH2: Có 1 phần tử

Chương trình chạy đúng

TH3: Có nhiều hơn hai phần tử bằng giá trị cần tìm

Chương trình chạy đúng

Trang 11

2.10- Tìm kiếm nhị phân.

TH1: Không có phần tử:

Chương trình chạy đúng

TH2: Có 1 phần tử:

Chương trình chạy đúng:

TH3: Có nhiều hơn 1 phần tử:

Chương trình chạy đúng:

Trang 12

2.11- Tính thời gian tính.

Chương trình chạy đúng

Trang 13

II- GỠ RỐI

1 Lỗi khi nhập số lượng phần tử vào từ bàn phím

Không viết Assertions dùng để kiểm tra lỗi khi nhập số lượng phần tử vào từ bàn phím như

1.2- Phương án khắc phục

Xây dựng Assertions dùng để kiểm tra lỗi khi nhập số lượng phần tử vào từ bàn phím như sau :

int b;

float a;

Trang 14

printf("\n Nhap so luong phan tu cua mang count = ");

scanf("%s",&dulieu);

fflush(stdin);

if(strcmp(dulieu,"0")!=0){

a= atof(dulieu);

b= atoi(dulieu);

if(a ==0){

printf("\n ban da nhap so luong phan tu la ky tu");

printf("\n sai yeu cau moi ban nhap lai");

b= ASSERT3();

return b;

} else{

if((a-b)!=0){

printf("\n ban da nhap so luong phan tu la kieu so thuc"); printf("\n sai yeu cau moi ban nhap lai");

b= ASSERT3();

return b;

} else{

if(b<0||b>1000){

printf("\n ban da nhap so luong phan tu khong dung kich thuoc yeu cau");

printf("\n sai yeu cau moi ban nhap lai");

b= ASSERT3();

Trang 15

return b;

} else return b;

} }

}

else {

b=0;

return b;

}}

2 Lỗi nhập các giá trị phần tử của mảng từ bàn phím

2.1- Nguyên nhân

Không viết Assertions dùng để kiểm tra lỗi nhập các giá trị phần tử của mảng từ

Trang 16

- lỗi khi nhập vào bàn phím là ký tự

2.2- Phương án khắc phục

Viết Assertions dùng để kiểm tra lỗi nhập các giá trị phần tử của mảng từ bàn phím như sau:

float ASSERT1( int chiso){

float a;

char dulieu[10];

printf("\n nhap phan tu thu %3d max[%3d]= ", chiso+1, chiso);

scanf("%s",&dulieu);

fflush(stdin);

if(strcmp(dulieu,"0")!=0){

a= atof(dulieu);

if(a ==0){

printf("\n nhap sai!! moi ban nhap lai");

a= ASSERT1(chiso);

return a;

} else return a;

}

else {

a=0;

return a;

}

}

Trang 17

2.3- Kết quả sau khi khắc phục

3 Lỗi nhập yêu cầu bằng ký tự

3.1- Nguyên nhân

Biến n (biến xác định chức năng) không xác định khi người dùng nhập vào kiểu ký tự

3.2- Phương án khắc phục

Viết một hàm quy định khi nhập ký tự vào thì n được xác định là bằng 0 như sau: Char dulieu[10];

printf("\n \n Chon chuc nang: "); scanf("%s",&dulieu);

n=atoi(dulieu);

3.3- Kết quả sau khi khắc phục

Nhập ký tự từ bàn phím

Trang 18

Sau khi ấn enter sẽ được chọn lại

Trang 19

Tài liệu tham khảo

[1] Slide bài giảng KTLT-Vũ Thị Hương Giang

[2] Code complete A Practical Handbook ofd Software Construction của tác giả Steve Mc Connell

Ngày đăng: 16/05/2015, 13:10

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w