Bài tập thực hành số 4 môn Tin học đại cương | Đại học Bách khoa Hà Nội

Bài tập thực hành số 4 của Đại học Bách khoa Hà Nội với những kiến thức và thông tin bổ ích giúp sinh viên tham khảo, ôn luyện và phục vụ nhu cầu học tập của mình cụ thể là có định hướng ôn tập, nắm vững kiến thức môn học và làm bài tốt trong những bài kiểm tra, bài tiểu luận, bài tập kết thúc học phần, từ đó học tập tốt và có kết quả cao cũng như có thể vận dụng tốt những kiến thức mình đã học vào thực tiễn cuộc sống. Mời bạn đọc đón xem!

[Tin học đại cương] Bài thực
hành số 4
Nằm trong chuỗi bài viết về thực hành tin học đại cương, đây là bài hướng dẫn thực hành cho bài
thực hành số 4 trong quyển Bài thực hành Tin học đại cương.
B. BÀI TẬP Ở NHÀ
BÀI 4.1
Lập trình thực hiện các công việc sau:
1. Nhập 3 số a, b, c bất kì
2. Hãy kiểm tra xem ba số đó phải độ dài của các cạnh của một tam giác hay không?
Nếu đúng là tam giác thì xác định là tam giác gì?
3. Thông báo kết quả ra màn hình:
LA 3 CANH TAM GIAC <loại tam giác> hoặc KHONG PHAI LA 3 CANH TAM GIAC
Bài giải
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <conio.h>
//Dinh nghia gia tri cho TRUE va FALSE
#define TRUE 1
#define FALSE 0
int main(){
float a, b, c;
char flag = TRUE;
printf("Nhap du lieu dau vao");
printf("\n a = "); scanf("%f",&a);
printf("\n b = "); scanf("%f",&b);
printf("\n c = "); scanf("%f",&c);
if( (a+b>c) && (b+c)>a && (a+c>b) ){
o if(a==b && b==c){
flag = FALSE;
printf("\n La 3 canh cua tam giac deu");
o }else if(a==b || b==c || c==a){
Downloaded by v?n ti?n Lê (vantienle525@gmail.com)
lOMoARcPSD|36442750
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
flag = FALSE;
printf("\n La 3 canh cua tam giac can");
o }
o if(a*a+b*b==c*c || b*b+c*c==a*a || c*c+a*a==b*b){
flag = FALSE;
printf("\n La 3 canh cua tam giac vuong");
o }
o if(flag==TRUE){
printf("\n La ba canh cua tam giac thuong");
o }
}else{
o printf("\n Khong phai 3 canh cua tam giac");
}
getch();
return 0;
}
BÀI 4.2
Lập chương trình thực hiện các công việc sau: Nhập vào một số nguyên bất kỳ trong khoảng từ 0
đến 9, đưa ra màn hình chứ tương ứng với số đó. Nếu số nhỏ hơn 0 hoặc lớn hơn 9 thì thông báo
SO KHONG HOP LE
Bài giải
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <conio.h>
int main(){
int a;
printf("\n Nhap gia tri cua a = ");
scanf("%d",&a);
printf("\n ==>> doc la: ");
switch(a){
o case 0:
printf("KHONG");
break;
o case 1:
printf("MOT");
break;
o case 2:
Downloaded by v?n ti?n Lê (vantienle525@gmail.com)
lOMoARcPSD|36442750
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
printf("HAI");
break;
o case 3:
printf("BA");
break;
o case 4:
printf("BON");
break;
o case 5:
printf("NAM");
break;
o case 6:
printf("SAU");
break;
o case 7:
printf("BAY");
break;
o case 8:
printf("TAM");
break;
o case 9:
printf("CHIN");
break;
o default:
printf("SO KHONG HOP LE!");
break;
}
getch();
return 0;
}
BÀI 4.3
Lập chương trình thực hiện các công việc sau: Nhập số nguyên n<8 bất kì. Lập chương trình tính
giai thừa củan. Sử dụng vòng lặp for
Bài giải
1
2
3
#include <stdio.h>
#include <conio.h>
int main(){
Downloaded by v?n ti?n Lê (vantienle525@gmail.com)
lOMoARcPSD|36442750
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int n;
printf("\n Nhap so nguyen dau vao n = ");
scanf("%d",&n);
if(n<0 || n>=8){
o printf("\n So nhap vao phai la so nguyen >0 va <8 ");
}else{
o int giaithua = 1;
o for(int i=2; i<=n; i++){
giaithua = giaithua*i;
printf("%d",i);
o }
o printf("Gia tri cua %d! la %d",n,giaithua);
}
getch();
return 0;
}
BÀI 4.4
Lập chương trình thực hiện các công việc sau:
1. Nhập số epsilon < 1 từ bàn phím
2. Tính số e theo công thức: quá trình dừng khi epsilon.
3. Đưa kết quả ra màn hình
Bài giải
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <conio.h>
int main(){
float epsilon;
printf("\n Nhap epsilon (0 < epsilon < 1) = ");
scanf("%f",&epsilon);
float ep = 1/epsilon; //Tinh lai DK dung lap
int i = 1;
int giaithua = 1;
float giatri_e = 1;
while(giaithua<=ep){
o giatri_e += 1.0/giaithua;
o i++;
o giaithua = giaithua*i;
}
Downloaded by v?n ti?n Lê (vantienle525@gmail.com)
lOMoARcPSD|36442750
15
16
17
18
19
20
21
printf("Gia tri cua e ~ %f",giatri_e);
getch();
return 0;
}
BÀI 4.5
Lập chương trình thực hiệnc công việc sau: Nhập số nguyên 10<n<100 bất kỳ. Dùng lệnh do
while để kiểm tra sự hợp lệ của dữ liệu đầu vào. Nếu người dùng nhập sai yêu cầu nhập lại
ngay. Nếu dữ liệu hợp lệ thì tính tổng các chữ số từ 1 đến n. Hiển thị kết quả ra màn hình.
Bài giải
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <stdio.h>
#include <conio.h>
int main(){
int n;
int i = 0;
//Kiem tra du lieu nhap vao
do{
o if(i==0){
printf("\n Nhap gia tri dau vao n = ");
o }else{
printf("Gia tri dau vao phai > 10 va < 100 ");
printf("\n\n Hay nhap lai n = ");
o }
o scanf("%d",&n);
o i=1;
}while( n<=10 || n>=100);
int tong = 0;
for(int j=1; j<=n; j++){
o tong += j;
}
printf("Tong cua %d so nguyen dau tien la: %d",n,tong);
getch();
return 0;
}
Downloaded by v?n ti?n Lê (vantienle525@gmail.com)
lOMoARcPSD|36442750
BÀI 4.6
Số nguyên tố một số nguyên dương chỉ chia hết cho 1chính . Lập chương trình nhập
một số nguyên n từ bàn phím, kiểm tra xem một số nguyên n phải số nguyên tố không
thông báo ra màn hình.
Bài giải
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <stdio.h>
#include <conio.h>
#include <math.h>
int main(){
int n;
char flag=1;
do{
o printf("Nhap so nguyen duong n = ");
o scanf("%d",&n);
}while(n<=0);
if(n==1){
o flag = 0;
}else if(n==2){
o flag = 1;
}else{
o int can_n = ceil(sqrt(n))+1;
o for(int i=2; i<can_n; i++){
if(n%i == 0){
flag = 0;
break;
}
o }
}
if(flag){
o printf(" %d la so nguyen to",n);
}else{
o printf(" %d khong la so nguyen to",n);
}
getch();
return 0;
}
Downloaded by v?n ti?n Lê (vantienle525@gmail.com)
lOMoARcPSD|36442750
C. BÀI TẬP TẠI PHÒNG
MÁY
BÀI 4.7
Lập chương trình thực hiện các công việc sau:
Dùng vòng lặp while hoặc do…while để tính gần đúng số PI theo công thức:
Chương trình sẽ dừng khi epsilon. Với epsilon được nhập từ bàn phím gía trị
nằm trong khoảng từ 0 đến 1.
Bài giải
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <conio.h>
#include <math.h>
int main(){
float epsilon;
do{
o printf("\n Nhap epsilon (0 < epsilon < 1) = ");
o scanf("%f",&epsilon);
}while(epsilon>=1 || epsilon<=0);
int ep = floor((1/epsilon-1)/2);
int i = 0;
float pi=0;
do{
o float mau = 2.0*i+1;
o pi+=pow(-1,i)/mau;
o i++;
Downloaded by v?n ti?n Lê (vantienle525@gmail.com)
lOMoARcPSD|36442750
16
17
18
19
20
21
22
23
}while(i<=ep);
printf("Gia tri cua PI ~ %f",4*pi);
getch();
return 0;
}
BÀI 4.8
Lập chương trình thực hiện các công việc sau:
1. Nhập 2 số nguyên dương bất kì
2. Tìm ước chung lớn nhất và bội chung nhỏ nhất của 2 số đó
3. Hiển thị kết qủa ra màn hình
Bài giải
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
#include <conio.h>
int main(){
int a, b;
printf("\n Nhap gia tri dau vao la cac so nguyen duong");
printf("\n a = "); scanf("%d",&a);
printf("\n b = "); scanf("%d",&b);
int A = a, B = b;
//Dung giai thuat Euclid tim UCLN
int c;
do{
o c = a-b;
o if(c<0){
b=-c;
o }else if(c>0){
a=c;
o }
}while(c!=0);
printf("\n UCLN( %d, %d ) = %d", A, B, a);
printf("\n BCNN( %d, %d ) = %d", A, B, A*B/a);
getch();
return 0;
}
Downloaded by v?n ti?n Lê (vantienle525@gmail.com)
lOMoARcPSD|36442750
25
26
BÀI 4.9
Lập chương trình thực hiện công việc sau:
1. Nhập ba số a, b, c bất kì từ bàn phím
2. Giải và biện luận nghiệm phương trình bậc 2: (Kể cả trương hợp a=0
và trường hợp nghiệm phức)
3. Đưa kết qủa ra màn hình
Bài giải
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <stdio.h>
#include <conio.h>
#include <math.h>
int main(){
float a, b, c;
printf("\n Nhap cac so dau vao");
printf("\n a = "); scanf("%f",&a);
printf("\n b = "); scanf("%f",&b);
printf("\n c = "); scanf("%f",&c);
if(a==0){
o if(b==0){
if(c==0){
printf("\n => KL: Phuong trinh co vo so nghiem");
}else{
printf("\n => KL: Phuong trinh vo nghiem");
}
o }else{
printf("\n => KL: Phuong trinh co 1 nghiem: %f",c/b);
o }
}else{
o float delta = b*b-4*a*c;
o float can_delta = sqrt(fabs(delta));
o float thuc = -b/(2*a);
o float ao = can_delta/(2*a);
o if(delta<0){
printf("\n => KL: Phuong trinh co 2 nghiem phuc:");
printf("\n\t x_1 = %f + i* %f ", thuc, fabs(ao));
printf("\n\t x_2 = %f - i* %f ", thuc, fabs(ao));
o }else if(delta==0){
printf("\n => KL: Phuong trinh co nghiem kep: x = %f ",thuc);
Downloaded by v?n ti?n Lê (vantienle525@gmail.com)
lOMoARcPSD|36442750
29
30
31
32
33
34
35
36
37
38
39
40
41
42
o }else{
printf("\n => KL: Phuong trinh co 2 nghiem thuc: ");
printf("\n\t x_1 = %f ", thuc+ao);
printf("\n\t x_2 = %f ", thuc-ao);
o }
}
getch();
return 0;
}
BÀI 4.10
Lập chương trình thực hiện các công việc sau:
1. Nhập 1 số nguyên dương n bất (n<1000). Yêu cầu kiểm tra dữ liệu đầu vào bằng
lệnh do…while. Nếu sai yêu cầu nhập lại.
2. Tính tổng các chữ số của số đó.
3. Hiển thị kết qủa ra màn hình
Bài giải
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <conio.h>
int main(){
int n;
do{
o printf("Nhap gia tri (nguyen duong nho hon 1000) n = ");
o scanf("%d",&n);
}while(n<=0 || n>=1000);
int T = 0;
while(n!=0){
o T = T + n%10;
o n = n/10;
}
printf("Tong cac chu so cua so vua nhap la: %d",T);
getch();
return 0;
Downloaded by v?n ti?n Lê (vantienle525@gmail.com)
lOMoARcPSD|36442750
18
19
20
}
BÀI 4.11
Lập chương trình tính các tổng sau:
1.
2.
3.
Trong đó, n là số nguyên dương và x là một số thực bất kì. Cả 2 đều được nhập từ bàn phím
Bài giải
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <stdio.h>
#include <conio.h>
#include <math.h>
int main(){
int n;
float x;
printf("Nhap gia tri nguyen duong n = ");
scanf("%d",&n);
printf("Nhap gia tri x = ");
scanf("%f",&x);
float s1=1, s2=1, s3=1;
int giaithua = 1;
for(int i=1; i<=n; i++){
o s1 += pow(x,i);
o s2 += pow(-x,n);
o giaithua = giaithua*i;
o s3 += pow(x,n)/giaithua;
}
printf("Gia tri cua s1 = %f, s2 = %f, s3 = %f",s1, s2, s3);
getch();
return 0;
}
Downloaded by v?n ti?n Lê (vantienle525@gmail.com)
lOMoARcPSD|36442750
26
BÀI 4.12
Lập chương trình thực hiện các công việc sau:
1. Nhập vào một dãy số thực. Việc nhập vào kết thúc khi nhập vào gía trị 0
2. Tính trung bình cộng của dãy số, tìm số lớn nhất và nhỏ nhất trong dãy
3. Hiện kết qủa ra màn hình
Bài giải
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
#include <conio.h>
#define MAX 1024
int main(){
int n=-1;
float A[MAX];
float temp;
do{
o printf("Nhap phan tu %d: ",n+1);
o scanf("%f",&temp);
o A[n+1] = temp;
o n++;
}while(temp!=0);
if(n>0){
o float tong=A[0], max=A[0], min=A[0];
o for(int i=1;i<n;i++){
tong += A[i];
if(A[i]>max) max=A[i];
if(A[i]<min) min=A[i];
o }
o printf("\n Trung binh cong cua day: %f",tong/n);
o printf("\n Max = %f",max);
o printf("\n Min = %f",min);
}else{
o printf("Day so khong co phan tu nao!");
}
getch();
return 0;
}
Downloaded by v?n ti?n Lê (vantienle525@gmail.com)
lOMoARcPSD|36442750
Downloaded by v?n ti?n Lê (vantienle525@gmail.com)
lOMoARcPSD|36442750
| 1/13

Preview text:

lOMoARcPSD|36442750
[Tin học đại cương] Bài thực hành số 4
Nằm trong chuỗi bài viết về thực hành tin học đại cương, đây là bài hướng dẫn thực hành cho bài
thực hành số 4 trong quyển Bài thực hành Tin học đại cương. B. BÀI TẬP Ở NHÀ BÀI 4.1
Lập trình thực hiện các công việc sau: 1.
Nhập 3 số a, b, c bất kì 2.
Hãy kiểm tra xem ba số đó có phải là độ dài của các cạnh của một tam giác hay không?
Nếu đúng là tam giác thì xác định là tam giác gì? 3.
Thông báo kết quả ra màn hình:
LA 3 CANH TAM GIAC hoặc KHONG PHAI LA 3 CANH TAM GIAC Bài giải 1  #include 2  #include 3 
//Dinh nghia gia tri cho TRUE va FALSE  #define TRUE 1 4  #define FALSE 0 5  6  int main(){ 7  float a, b, c; 8  char flag = TRUE; 9 
printf("Nhap du lieu dau vao"); 
printf("\n a = "); scanf("%f",&a); 10 
printf("\n b = "); scanf("%f",&b); 11 
printf("\n c = "); scanf("%f",&c); 12 13 
if( (a+b>c) && (b+c)>a && (a+c>b) ){ 14 o if(a==b && b==c){ 15  flag = FALSE; 
printf("\n La 3 canh cua tam giac deu"); 16
o }else if(a==b || b==c || c==a){
Downloaded by v?n ti?n Lê (vantienle525@gmail.com) lOMoARcPSD|36442750 17 18 19  flag = FALSE; 20 
printf("\n La 3 canh cua tam giac can"); 21 o } 22
o if(a*a+b*b==c*c || b*b+c*c==a*a || c*c+a*a==b*b){ 23  flag = FALSE; 24 
printf("\n La 3 canh cua tam giac vuong"); 25 o } 26 o if(flag==TRUE){ 27 
printf("\n La ba canh cua tam giac thuong"); o 28 }  }else{ 29
o printf("\n Khong phai 3 canh cua tam giac"); 30  } 31 32  getch(); 33  return 0; 34  } 35 36 BÀI 4.2
Lập chương trình thực hiện các công việc sau: Nhập vào một số nguyên bất kỳ trong khoảng từ 0
đến 9, đưa ra màn hình chứ tương ứng với số đó. Nếu số nhỏ hơn 0 hoặc lớn hơn 9 thì thông báo “SO KHONG HOP LEBài giải 1  #include 2  #include 3  int main(){  int a; 4 
printf("\n Nhap gia tri cua a = "); 5  scanf("%d",&a); 6 7 
printf("\n ==>> doc la: "); 8  switch(a){ 9 o case 0:  printf("KHONG"); 10  break; 11 o case 1: 12  printf("MOT"); 13  break; 14 o case 2:
Downloaded by v?n ti?n Lê (vantienle525@gmail.com) lOMoARcPSD|36442750 15 16 17 18  printf("HAI"); 19  break; 20 o case 3: 21  printf("BA");  break; 22 o case 4: 23  printf("BON"); 24  break; 25 o case 5: 26  printf("NAM"); 27  break; 28 o case 6:  printf("SAU"); 29  break; 30 o case 7: 31  printf("BAY"); 32  break; 33 o case 8: 34  printf("TAM"); 35  break; o case 9: 36  printf("CHIN"); 37  break; 38 o default: 39  printf("SO KHONG HOP LE!"); 40  break; 41  }  getch(); 42  return 0; 43  } 44 45 46 BÀI 4.3
Lập chương trình thực hiện các công việc sau: Nhập số nguyên n<8 bất kì. Lập chương trình tính
giai thừa củan. Sử dụng vòng lặp for Bài giải 1  #include 2  #include 3  int main(){
Downloaded by v?n ti?n Lê (vantienle525@gmail.com) lOMoARcPSD|36442750 4 5  int n; 6 
printf("\n Nhap so nguyen dau vao n = "); 7  scanf("%d",&n);  if(n<0 || n>=8){ 8
o printf("\n So nhap vao phai la so nguyen >0 va <8 "); 9  }else{ 10 o int giaithua = 1; 11 o for(int i=2; i<=n; i++){ 12  giaithua = giaithua*i; 13  printf("%d",i); 14 o } 15
o printf("Gia tri cua %d! la %d",n,giaithua); 16  }  getch(); 17  return 0; 18  } 19 BÀI 4.4
Lập chương trình thực hiện các công việc sau: 1.
Nhập số epsilon < 1 từ bàn phím 2.
Tính số e theo công thức: quá trình dừng khi epsilon. 3.
Đưa kết quả ra màn hình Bài giải 1  #include 2  #include 3  int main(){  float epsilon; 4 
printf("\n Nhap epsilon (0 < epsilon < 1) = "); 5  scanf("%f",&epsilon); 6 7 
float ep = 1/epsilon; //Tinh lai DK dung lap 8  int i = 1; 9  int giaithua = 1;  float giatri_e = 1; 10  while(giaithua<=ep){ 11 o giatri_e += 1.0/giaithua; 12 o i++; 13 o giaithua = giaithua*i; 14  }
Downloaded by v?n ti?n Lê (vantienle525@gmail.com) lOMoARcPSD|36442750 15 16 17 
printf("Gia tri cua e ~ %f",giatri_e); 18  getch();  return 0; 19  } 20 21 BÀI 4.5
Lập chương trình thực hiện các công việc sau: Nhập số nguyên 10 bất kỳ. Dùng lệnh do
… while
để kiểm tra sự hợp lệ của dữ liệu đầu vào. Nếu người dùng nhập sai yêu cầu nhập lại
ngay. Nếu dữ liệu hợp lệ thì tính tổng các chữ số từ 1 đến n. Hiển thị kết quả ra màn hình. Bài giải 1 2 3  #include  #include 4  int main(){ 5  int n; 6  int i = 0; 7  //Kiem tra du lieu nhap vao 8  do{ o if(i==0){ 9 
printf("\n Nhap gia tri dau vao n = "); 10 o }else{ 11 
printf("Gia tri dau vao phai > 10 va < 100 "); 12 
printf("\n\n Hay nhap lai n = "); 13 o } 14 o scanf("%d",&n); 15 o i=1; 16 
}while( n<=10 || n>=100); 17 18  int tong = 0;  for(int j=1; j<=n; j++){ 19 o tong += j; 20  } 21 
printf("Tong cua %d so nguyen dau tien la: %d",n,tong); 22 23  getch(); 24  return 0;  } 25 26
Downloaded by v?n ti?n Lê (vantienle525@gmail.com) lOMoARcPSD|36442750 BÀI 4.6
Số nguyên tố là một số nguyên dương chỉ chia hết cho 1chính nó. Lập chương trình nhập
một số nguyên n từ bàn phím, kiểm tra xem một số nguyên n có phải là số nguyên tố không và thông báo ra màn hình. Bài giải 1 2 3  #include 4  #include 5  #include  int main(){ 6  int n; 7  char flag=1; 8  do{ 9
o printf("Nhap so nguyen duong n = "); 10 o scanf("%d",&n); 11  }while(n<=0); 12  if(n==1){ 13 o flag = 0; 14  }else if(n==2){ 15 o flag = 1; 16  }else{ 17 o int can_n = ceil(sqrt(n))+1; 18 o for(int i=2; i19  if(n%i == 0){ 20  flag = 0; 21  break;  } 22 o } 23  } 24 25  if(flag){ 26
o printf(" %d la so nguyen to",n); 27  }else{ 28
o printf(" %d khong la so nguyen to",n); 29  } 30  getch(); 31  return 0; 32  } 33 34
Downloaded by v?n ti?n Lê (vantienle525@gmail.com) lOMoARcPSD|36442750 C. BÀI TẬP TẠI PHÒNG MÁY BÀI 4.7
Lập chương trình thực hiện các công việc sau:
Dùng vòng lặp while hoặc do…while để tính gần đúng số PI theo công thức:
Chương trình sẽ dừng khi
epsilon. Với epsilon được nhập từ bàn phím và có gía trị
nằm trong khoảng từ 0 đến 1. Bài giải 1  #include 2  #include 3  #include  int main(){ 4  float epsilon; 5  do{ 6
o printf("\n Nhap epsilon (0 < epsilon < 1) = "); 7 o scanf("%f",&epsilon); 8 
}while(epsilon>=1 || epsilon<=0); 9 10 
int ep = floor((1/epsilon-1)/2);  int i = 0; 11  float pi=0; 12  do{ 13 o float mau = 2.0*i+1; 14 o pi+=pow(-1,i)/mau; 15 o i++;
Downloaded by v?n ti?n Lê (vantienle525@gmail.com) lOMoARcPSD|36442750 16 17  }while(i<=ep); 18 19 
printf("Gia tri cua PI ~ %f",4*pi); 20  getch(); 21  return 0; 22  } 23 BÀI 4.8
Lập chương trình thực hiện các công việc sau: 1.
Nhập 2 số nguyên dương bất kì 2.
Tìm ước chung lớn nhất và bội chung nhỏ nhất của 2 số đó 3.
Hiển thị kết qủa ra màn hình Bài giải 1  #include 2  #include 3  int main(){  int a, b; 4 
printf("\n Nhap gia tri dau vao la cac so nguyen duong"); 5 
printf("\n a = "); scanf("%d",&a); 6 
printf("\n b = "); scanf("%d",&b); 7  int A = a, B = b; 8 9 
//Dung giai thuat Euclid tim UCLN  int c; 10  do{ 11 o c = a-b; 12 o if(c<0){ 13  b=-c; 14 o }else if(c>0){ 15  a=c; 16 o } 17  }while(c!=0); 18 
printf("\n UCLN( %d, %d ) = %d", A, B, a); 19 
printf("\n BCNN( %d, %d ) = %d", A, B, A*B/a); 20 21  getch(); 22  return 0; 23  } 24
Downloaded by v?n ti?n Lê (vantienle525@gmail.com) lOMoARcPSD|36442750 25 26 BÀI 4.9
Lập chương trình thực hiện công việc sau: 1.
Nhập ba số a, b, c bất kì từ bàn phím 2.
Giải và biện luận nghiệm phương trình bậc 2:
(Kể cả trương hợp a=0
và trường hợp nghiệm phức) 3.
Đưa kết qủa ra màn hình Bài giải 1  #include 2  #include 3  #include  int main(){ 4  float a, b, c; 5 
printf("\n Nhap cac so dau vao"); 6 
printf("\n a = "); scanf("%f",&a); 7 
printf("\n b = "); scanf("%f",&b); 8 
printf("\n c = "); scanf("%f",&c); 9  if(a==0){ 10 o if(b==0){ 11  if(c==0){ 12 
printf("\n => KL: Phuong trinh co vo so nghiem"); 13  }else{ 14 
printf("\n => KL: Phuong trinh vo nghiem");  } 15 o }else{ 16 
printf("\n => KL: Phuong trinh co 1 nghiem: %f",c/b); 17 o } 18  }else{ 19 o float delta = b*b-4*a*c; 20
o float can_delta = sqrt(fabs(delta)); 21 o float thuc = -b/(2*a); 22 o float ao = can_delta/(2*a); 23 24 o if(delta<0){ 25 
printf("\n => KL: Phuong trinh co 2 nghiem phuc:"); 26 
printf("\n\t x_1 = %f + i* %f ", thuc, fabs(ao)); 
printf("\n\t x_2 = %f - i* %f ", thuc, fabs(ao)); 27 o }else if(delta==0){ 28 
printf("\n => KL: Phuong trinh co nghiem kep: x = %f ",thuc);
Downloaded by v?n ti?n Lê (vantienle525@gmail.com) lOMoARcPSD|36442750 29 30 31 32 o }else{ 33 
printf("\n => KL: Phuong trinh co 2 nghiem thuc: "); 
printf("\n\t x_1 = %f ", thuc+ao); 34 
printf("\n\t x_2 = %f ", thuc-ao); 35 o } 36  } 37 38  getch(); 39  return 0;  } 40 41 42 BÀI 4.10
Lập chương trình thực hiện các công việc sau: 1.
Nhập 1 số nguyên dương n bất kì (n<1000). Yêu cầu kiểm tra dữ liệu đầu vào bằng
lệnh do…while. Nếu sai yêu cầu nhập lại. 2.
Tính tổng các chữ số của số đó. 3.
Hiển thị kết qủa ra màn hình Bài giải 1  #include 2  #include 3  int main(){  int n; 4  do{ 5
o printf("Nhap gia tri (nguyen duong nho hon 1000) n = "); 6 o scanf("%d",&n); 7  }while(n<=0 || n>=1000); 8 9  int T = 0; 10  while(n!=0){ 11 o T = T + n%10; 12 o n = n/10;  } 13 14 
printf("Tong cac chu so cua so vua nhap la: %d",T); 15 16  getch(); 17  return 0;
Downloaded by v?n ti?n Lê (vantienle525@gmail.com) lOMoARcPSD|36442750 18 19  } 20 BÀI 4.11
Lập chương trình tính các tổng sau: 1. 2. 3.
Trong đó, n là số nguyên dương và x là một số thực bất kì. Cả 2 đều được nhập từ bàn phím Bài giải 1  #include 2  #include 3  #include  int main(){ 4  int n; 5  float x; 6 
printf("Nhap gia tri nguyen duong n = "); 7  scanf("%d",&n); 8  printf("Nhap gia tri x = ");  scanf("%f",&x); 9 10  float s1=1, s2=1, s3=1; 11  int giaithua = 1; 12  for(int i=1; i<=n; i++){ 13 o s1 += pow(x,i); 14 o s2 += pow(-x,n); 15 16 o giaithua = giaithua*i; 17 o s3 += pow(x,n)/giaithua; 18  } 19 
printf("Gia tri cua s1 = %f, s2 = %f, s3 = %f",s1, s2, s3); 20 21  getch(); 22  return 0; 23  } 24 25
Downloaded by v?n ti?n Lê (vantienle525@gmail.com) lOMoARcPSD|36442750 26 BÀI 4.12
Lập chương trình thực hiện các công việc sau: 1.
Nhập vào một dãy số thực. Việc nhập vào kết thúc khi nhập vào gía trị 0 2.
Tính trung bình cộng của dãy số, tìm số lớn nhất và nhỏ nhất trong dãy 3.
Hiện kết qủa ra màn hình Bài giải 1 2 3  #include  #include 4  #define MAX 1024 5  int main(){ 6  int n=-1; 7  float A[MAX]; 8  float temp;  do{ 9
o printf("Nhap phan tu %d: ",n+1); 10 o scanf("%f",&temp); 11 o A[n+1] = temp; 12 o n++; 13  }while(temp!=0); 14 15  if(n>0){ 16
o float tong=A[0], max=A[0], min=A[0]; 17 o for(int i=1;i18  tong += A[i]; 19  if(A[i]>max) max=A[i];  if(A[i]20 o } 21
o printf("\n Trung binh cong cua day: %f",tong/n); 22 o printf("\n Max = %f",max); 23 o printf("\n Min = %f",min); 24  }else{ 25
o printf("Day so khong co phan tu nao!"); 26  } 27 28  getch(); 29  return 0;  } 30 31
Downloaded by v?n ti?n Lê (vantienle525@gmail.com) lOMoARcPSD|36442750
Downloaded by v?n ti?n Lê (vantienle525@gmail.com)