Giải SGK Tin học 11 Cánh diều Bài 6. Kiểm thử và sửa lỗi chương trình có đáp án
20 người thi tuần này 4.6 157 lượt thi 7 câu hỏi
🔥 Đề thi HOT:
Bộ 4 đề thi cuối học kì 2 Tin 11 Kết nối tri thức có đáp án (Đề 1)
15 câu Trắc nghiệm Tin học 11 Kết nối tri thức Bài 26 có đáp án
Bộ 4 đề thi giữa học kì 2 Tin 11 Kết nối tri thức có đáp án (Đề 1)
15 câu Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25 có đáp án
Bộ 4 đề thi cuối học kì 2 Tin 11 Kết nối tri thức có đáp án (Đề 2)
15 câu Trắc nghiệm Tin học 11 Kết nối tri thức Bài 27 có đáp án
15 câu Trắc nghiệm Tin học 11 Kết nối tri thức Bài 28 có đáp án
Bộ 4 đề thi cuối học kì 2 Tin 11 Kết nối tri thức có đáp án (Đề 3)
Danh sách câu hỏi:
Lời giải
Bởi vì chương trình vừa viết xong còn lỗi và chưa được sửa
Lời giải
a) Gợi ý:
Ý tưởng
Dùng một vòng do while để nhập a, b, c nếu a = 0, thì nhập lại.
Chúng ta dùng hàm sqrt() trong thư viện math.h để tính căn delta hoặc tính căn không dùng hàm sqrt()tại đây.
Chúng ta tạo hàm giaiPT trả về kiểu int chính là số nghiệm của phương trình (1).
Chúng ta sẽ đưa tham chiếu 2 biến x1 , x2 vào hàm giaiPT để gán giá trị hai nghiệm.
Nếu pt (1) vô nghiện thì giaiPT sẽ trả về 0 , đồng thời gán x1 = x2 =0 .
Nếu pt (1) có nghiệm kép thì giaiPT sẽ trả về 1 , đồng thời gán x1 = x2 = -b/2a .
Nếu pt (1) có 2 nghiệm thì giaiPT sẽ trả về 2 , gán x1 = (-b+√delta ) / 2a x = (-b-√delta ) / 2a .
b) Gợi ý:
#include <iostream>
using namespace std;
void nhap(int &n, int a[]){
for(int i=0;i<n;i++){
cout<<"a["<<i+1<<"]= ";cin>>a[i];
}
}
void xuat(int n, int a[]){
for(int i=0;i<n;i++){
cout<<a[i]<<" ";
}
}
int tinhTBCongint (int n, int a[]){
int sum=0, dem=0;
for(int i=0;i<n;i++){
sum+=a[i]; dem++;
}
return sum/n;
}
int tinhTBCongDuong(int n, int a[]){
int sum=0, dem=0;
for(int i=0;i<n;i++){
if(a[i] > 0) {
sum+=a[i]; dem++;
}
}
if(dem==0) return 0;
return sum/dem;
}
int tinhTBCongAm(int n, int a[]){
int sum=0, dem=0;
for(int i=0;i<n;i++){
if(a[i]<0) {
sum+=a[i]; dem++;
}
}
if(dem==0) return 0;
return sum/dem;
}
int main(){
int n;
int a[100];
do{
cout<<"Nhap n: "; cin>>n;
}while(n <= 0 || n >=100);
nhap(n,a);
cout<<"\n--------XUAT MANG----\n";
xuat(n,a);
cout<<"Trung binh cong: "<<tinhTBCongint(n,a)<<"\n\n";
cout<<"Trung binh so duong: "<<tinhTBCongDuong(n,a)<<"\n\n";
cout<<"Trung binh so am: "<<tinhTBCongAm(n,a)<<"\n\n";
}
Lời giải
Lỗi cú pháp
Lỗi thực thi
Lỗi logic
Lời giải
- Đặt tên biến và hàm rõ ràng và mô tả đúng chức năng của chúng.
- Sử dụng các lời gọi hàm phù hợp để tái sử dụng mã.
- Đặt các phần của mã trong các hàm và lớp để dễ dàng tái sử dụng và kiểm thử.
- Sử dụng các phương thức kiểm thử để đảm bảo rằng chương trình hoạt động đúng và dễ dàng gỡ lỗi khi có lỗi.
- Ghi chú mã một cách rõ ràng để giải thích chức năng và cách sử dụng mã.
- Thường xuyên lưu mã để tránh mất dữ liệu khi xảy ra lỗi.
- Sử dụng các công cụ gỡ lỗi để tìm lỗi và sửa lỗi một cách nhanh chóng và dễ dàng hơn.
Tóm lại, các thói quen lập trình tốt có thể giúp giảm thiểu số lỗi trong chương trình và dễ dàng gỡ lỗi nếu có lỗi xảy ra.
Lời giải
a) Gợi ý
Bước 1: Ta khai báo một mảng tĩnh số nguyên có 100 ô nhớ int a[100].
Bước 2: Ta khai báo số nguyên int n là số lượng phần tử có trong mảng với điều kiện n>1 hoặc n<100 nếu không thỏa mãn thì yêu cầu nhập lại n.
Bước 3: Ta khỏi tạo hàm void Nhap(int a[], int n) dùng để nhập dữ liệu từ bàn phím cho mảng. Trong hàm ta sử dụng vòng for bắt đầu từ int i =0 và kết thúc khi i<n và mỗi lần i tăng lên một để nhập dữ liệu cho từng phần tử từ a[0] đến a[n-1], trong vòng for thì nhập vào dữ liệu của a[i].
Bước 4: Ta khởi tạo hàm void Xuat(int a[], int n) dùng để hiển thị dữ liệu từ mảng ra màn hình. Trong hàm ta sử dụng vòng for bắt đầu từ int i =0 và kết thúc khi i<n và mỗi lần i tăng lên một để hiển thị dữ liệu của từng phần tử từ a[0] đến a[n-1] ra màn hình, trong vòng for in a[i] ra màn hình.
Bước 5: Ta khởi tạo hàm int TimKiem(int a[], int n) dùng để tìm kiếm phần tử; ta khai báo biến int x là số cần tìm và nhập vào giá trị của x; tiếp theo sử dụng vòng lặp for bắt đầu từ int i =0 và kết thúc khi i<n và mỗi lần i tăng lên một để hiển thị dữ liệu của từng phần tử có trong mảng; trong vòng lặp ta dùng if với điều kiện nếu a[i]==x thỏa mãn thì ta in i ra màn hình.
Bước 6: Trong hàm main ta gọi hàm Nhap(a,n), Xuat(a,n) để hiển thị mảng gốc ta gọi thêm hàm TimKiem(a,n) rồi chạy chương trình.
b) Sắp xếp một dãy số giảm dần
#include <stdio.h>
int main(){
int a[100];
int n;
printf("\nNhap so luong phan tu n = ");
do{
scanf("%d", &n);
if(n <= 0){
printf("\nNhap lai n = ");
}
}while(n <= 0);
for(int i = 0; i < n; i++){
printf("\nNhap a[%d] = ",i);
scanf("%d", &a[i]);
}
// Sap xep dung thuat toan sap xep chon
int tg;
for(int i = 0; i < n - 1; i++){
for(int j = i + 1; j < n; j++){
if(a[i] < a[j]){
// Hoan vi 2 so a[i] va a[j]
tg = a[i];
a[i] = a[j];
a[j] = tg;
}
}
}
printf("\nMang da sap xep la: ");
for(int i = 0; i < n; i++){
printf("%5d", a[i]);
}
}
Lời giải
Bạn cần đăng ký gói VIP ( giá chỉ từ 199K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.
Lời giải
Bạn cần đăng ký gói VIP ( giá chỉ từ 199K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.
31 Đánh giá
50%
40%
0%
0%
0%