Trang chủLập trìnhLập trình C/C++Giải bài thực hành 5 – HÀM | Nhập môn lập trình...

Giải bài thực hành 5 – HÀM | Nhập môn lập trình C

DANH SÁCH BÀI VIẾT
Giải bài tập thực hành 1 – Các thành phần trong ngôn ngữ C
Giải bài tập thực hành 2 – Cấu trúc rẽ nhánh
Giải bài tập thực hành 3 – Cấu trúc lặp for
Giải bài thực hành 4 – Cấu trúc lặp While, do…while
Giải bài thực hành 5 – HÀM
Giải bài thực hành 6 – Truyền tham số cho hàm
Giải bài thực hành 7 – Mảng
Giải bài thực hành 8 – Chuỗi ký tự
Giải bài thực hành 9 – Kiểu cấu trúc
Giải bài thực hành 10 – Tập tin

Bài tập thực hành 5: Hàm

Bài 1: Viết chương trình tính giá trị của hàm f,với x là số thực được nhập từ bàn phím. 0 x<=0 f(x) = x^2 – x 0< x <=2 x^2-sinπx^2 x>2

Code mẫu

#include<stdio.h>

#include<math.h>

#define PI 3.14

float f(int x)

{

            if(x<=0)

              return 0;

            else

                        if(x>0 && x<=2)

                                      return x*(x - 1);

                        else

                                      return x * x - sin(PI * x * x);

}

int main()

{

    int x;

 

    printf("Nhap X = ");

    scanf("%d", &x);

 

    printf("f(%d) = %10.2f",  x, f(x));

}

Bài 2. Viết hàm tính N!. Viết chương trình nhập vào N từ bàn phím sau đó sử dụng hàm vừa xây dựng để tính N!

Code mẫu

#include<stdio.h>

int Giaithua(int n)

{

            int s=1;

            if(n == 0)

                        return 1;

            int i;

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

                        s*=i;

            return s;

}

int main()

{

            int n;

            do

            {

                        printf("Nhap n = ");

                        scanf("%d",&n);

            }

            while(n<0);

            printf("N! = %d", Giaithua(n));

}

Bài 3. Nhập số nguyên dương n (n>0). Liệt kê tất cả các số nguyên tố nhỏ hơn n.

#include<stdio.h>

#include<math.h>

void Ngto(int n) {

                                             int i, j;

                                             int ngt=1;

                                             if(n==1)

                                                printf("K");

                                             else {

                                                for(i=2; i<n; i++) {

                                                            ngt=1;

                                                            for(j=2; j<=sqrt(i); j++) {

                                                                        if(i%j==0) {

                                                                                    ngt=0;

                                                                                    break;

                                                                        }

                                                            }

                                                            if(ngt==1)

                                                                        printf("\t %d",i);

                                                }

                                             }

}

int main() {

                                             int n;

                                             do {

                                                printf("Nhap n = ");

                                                scanf("%d",&n);

                                             } while(n<0);

 

 

                                             printf("Cac so nguyen to la: ");

                                             Ngto(n);

}

Bài 4. Nhập số nguyên dương n (n>0). Liệt kê n số chính phương đầu tiên.

Code mẫu

#include<stdio.h>

void ChinhPhuong(int n);

int main() {

                                             int n;

                                             do {

                                                printf("Nhap n: ");

                                                scanf("%d",&n);

                                             } while(n<=0);

 

                                             printf("Cac so chinh phuong la: ");

                                             ChinhPhuong(n);

}

void ChinhPhuong(int n) {

                                             int i = 1, j, dem = 0;

                                             int chinhphuong=0;

 

                                             while(dem<n) {

                                                chinhphuong=0;

                                                for(j=1; j<=i; j++) {

                                                            if(j*j==i) {

                                                                        chinhphuong = 1;

                                                            }

                                                }

                                                if(chinhphuong==1) {

                                                            printf("\t %d",i);

                                                            dem++;

                                                }

                                                i++;

                                             }

}

Bài 6. Nhập x, epsilon từ bàn phím, tính gần đúng sin(x) theo công thức sau với độ chính xác epsilon. ( đạt sai số epsilon: số hạng cuối cùng có giá trị tuyệt đối không lớn hơn epsilon). Sin(x) ≈ 1 – x^3/3! + x^5/5! – x^7/7! +…+〖(-1)〗^(n-1) x^(2n-1)/((2n)!)

#include<stdio.h>

#include<math.h>

float tong(int x, float epsilon);

int gt(int n) {

                                             if(n==0||n==1)

                                                return 1;

                                             int g=1, i;

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

                                                g = g * i;

                                             return g;

}

int main() {

                                             int x;

                                             float epsilon;

                                             do {

                                                printf("Nhap x: ");

                                                scanf("%d",&x);

 

                                                printf("Nhap epsilon: ");

                                                scanf("%f",&epsilon);

                                             } while(x<=0);

                                             tong( x , epsilon);

}

float tong(int x,float epsilon) {

                                             int i=1,mau=1;

                                             float s=0,gg=0;

                                             do {

                                                gg = pow ( x , 2 * i - 1 ) /gt(2*i-1);

                                                s = s + pow (- 1 , i - 1) * gg;

                                                printf("\tg = %f,\t s= %f\n",gg,s);

                                                i++;

                                             } while(gg>=epsilon);

                                             printf("\nsin(x) la: %f",s);

}

Bài 7. Nhập x, epsilon từ bàn phím, tính gần đúng cos(x) theo công thức sau với độ chính xác epsilon. ( đạt sai số epsilon: số hạng cuối cùng có giá trị tuyệt đối không lớn hơn epsilon). cos(x) ≈ 1 – x^2/2! + x^4/4! – x^6/6! +…+〖(-1)〗^n x^2n/((2n)!)

Code mẫu

#include<stdio.h>

#include<math.h>

float tong(int x, float epsilon);

int gt(int n) {

                                             if(n==0||n==1)

                                                return 1;

                                             int g=1, i;

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

                                                g = g * i;

                                             return g;

}

int main() {

                                             int x;

                                             float epsilon;

                                             do {

                                                printf("Nhap x: ");

                                                scanf("%d",&x);

 

                                                printf("Nhap epsilon: ");

                                                scanf("%f",&epsilon);

                                             } while(x<0 || epsilon<0);

                                             tong( x , epsilon);

}

float tong(int x,float epsilon) {

                                             int i=1,mau=1;

                                             float s=1,gg=1;

                                             do {

                                                gg = pow ( x , 2 * i ) /gt(2*i);

                                                s = s + pow (- 1 , i ) * gg;

                                                printf("\tg = %f,\t s= %f\n",gg,s);

                                                i++;

                                             } while(gg>=epsilon);

                                             printf("\ncos(x) la: %f",s);

}

Bài 8. Nhập x, epsilon từ bàn phím, tính gần đúng ln(x) theo công thức sau với độ chính xác epsilon. ( đạt sai số epsilon: số hạng cuối cùng có giá trị tuyệt đối không lớn hơn epsilon). ln(1+x) ≈ 1 – x^2/2 + x^3/3 – x^4/4 +…+〖(-1)〗^(n-1) x^n/n

Code mẫu

#include<stdio.h>

#include<math.h>

float tong(float x, float epsilon);

int main() {

                                             float x;

                                             float epsilon;

                                             do {

                                                printf("Nhap x: ");

                                                scanf("%f",&x);

 

                                                printf("Nhap epsilon: ");

                                                scanf("%f",&epsilon);

                                             } while(x<0 || epsilon<0);

                                             tong( x , epsilon);

}

float tong(float x,float epsilon) {

                                             int i = 1;

                                             float s = 0, gg = 1;

                                             do {

                                                gg = pow ( x , i ) / i;

                                                s = s + pow (- 1 , i - 1) * gg;

                                                printf("\tg = %f,\t s= %f\n",gg,s);

                                                i++;

                                             } while(gg>=epsilon);

                                             printf("\nln(1+x) la: %f",s);

}

Bài 9. Nhập x, epsilon từ bàn phím, tính gần đúng số pi đạt sai số epsilon theo công thức gần đúng được khai triển maclaurin như sau: ( đạt sai số epsilon: số hạng cuối cùng có giá trị tuyệt đối không lớn hơn epsilon). π/4≈ 1 – 1/3 + 1/5 – 1/7 +…+〖(-1)〗^n 1/(2n+1)

Code mẫu

#include<stdio.h>

#include<math.h>

float tong(float epsilon);

int main() {

                                             float epsilon;

                                             do {

                                                printf("Nhap epsilon: ");

                                                scanf("%f",&epsilon);

                                             } while(epsilon<0);

                                             tong(epsilon);

}

float tong(float epsilon) {

                                             int i = 0;

                                             float s = 0, gg = 0;

                                             do {

                                                gg = 1.0 /(2 * i + 1);

                                                s = s + pow (- 1 , i ) * gg;

                                                printf("\tg = %f,\t s= %f\n",gg,s);

                                                i++;

                                             } while(gg>=epsilon);

                                             printf("\npi/4 bang: %f",s);

}

Bài 10. Viết chương trình in ra tất cả các số nguyên tố bé hơn hoặc bằng n.

Code mẫu

#include<stdio.h>

#include<math.h>

void Ngto(int n) {

                                             int i, j;

                                             int ngt=1;

                                             if(n==1)

                                                printf("K");

                                             else {

                                                for(i=2; i<n; i++) {

                                                            ngt=1;

                                                            for(j=2; j<=sqrt(i); j++)

                                                                        if(i%j==0) {

                                                                                    ngt=0;

                                                                        }

                                                            if(ngt==1)

                                                                        printf("\t %d",i);

                                                }

                                             }

}

int main() {

                                             int n;

                                             printf("Nhap n ");

                                             scanf("%d",&n);

 

                                             printf("Cac so nguyen to la: ");

                                             Ngto(n);

}

Bài 13. Viết hàm kiểm tra xem số nguyên N có phải là số nguyên tố hay không. Viết chương trình sử dụng hàm trên kiểm tra số nguyên nhập từ bàn phím có phải là số nguyên tố hay không.

Code mẫu

#include<stdio.h>

#include<math.h>

void Ngto(int n) {

                                             int i;

                                             int ngt=1;

                                             if(n==1)

                                                printf("K");

                                             else {

                                                for(i=2; i<=sqrt(n); i++) {

                                                            ngt=1;

                                                            if(n%i==0) {

                                                                        ngt=0;

                                                            }

                                                }

                                                if(ngt==1)

                                                            printf("%d la so nguyen to",n);

                                                else

                                                            printf("%d khong phai la so nguyen to",n);

                                             }

}

int main() {

                                             int n;

                                             printf("Nhap n: ");

                                             scanf("%d",&n);

 

                                             Ngto(n);

}
0 0 Phiếu bình chọn
Xếp hạng bài viết
BÀI VIẾT LIÊN QUAN
Đăng ký nhận thông báo
Thông báo email khi
guest
0 Bình luận
Không thể gửi email
Phản hồi nội tuyến

NÊN ĐỌC THÊM

Bạn muốn tìm kiếm gì?


0
Giáo sư! có thể ném gạch bên dưới nhé!x
()
x