1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài tập cơ bản lập trình c++

13 844 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 13
Dung lượng 271,14 KB

Nội dung

Bên cạnh các bài tập Python, Java, Quản Trị Mạng cũng tổng hợp cho các bạn một số bài tập C++ cơ bản để luyện tập thêm trong quá trình học ngôn ngữ lập trình C++. Danh mục bài tập C++ này được chia thành 9 phần, mỗi phần có từ 3 đến 5 bài, với cấp độ khó tăng dần. Ban đầu bạn sẽ khởi động với những bài tập C++ hết sức cơ bản, như mô phỏng phép nhân tay, in số tiền, kiểm tra một bộ 3 số xem có phải là cạnh của một tam giác không, tính chu vi, diện tích tam giác đó.

Trang 1

BÀI TẬP C++ CÓ

LỜI GIẢI

Trang 2

Bài 1: Mô phỏng phép nhân tay

Lập trình in ra màn hình mô phỏng phép nhân tay 2 số nguyên dương

có 3 chữ số nhập từ bàn phím Ví dụ với 2 số nhập vào là 763 và 589 thì phải in ra màn hình như sau:

Code mẫu:

#include<stdio.h>

#include<conio.h>

void main()

{int a,b;char dv,chuc,tram;

clrscr();

printf("Nhap so bi nhan co 3 chu so a="); scanf("%d",&a);

printf("Nhap so nhan co 3 chu so b="); scanf("%d",&b);

dv=b%10; chuc=b%100/10; tram=b/100;

printf("\nMo phong phep nhan tay\n\n");

printf("%20d\n",a);

printf("%15c%5d\n",'x',b);

printf("%20s\n"," -");

printf("%20d\n",a*dv);

printf("%19d\n",a*chuc);

printf("%18d\n",a*tram);

printf("%20s\n"," -");

printf("%20ld\n",long(a)*b);

getch();

}

Bài 2 Vi t chế ương trình nh p vào 2 s nguyên, sau đó in ra t ng bình ậ ố ổ

phương c a chúng.ủ

Phân tích:

Trang 3

– Nh p vào 2 s nguyên t bàn phím.ậ ố ừ

– Tính t ng theo công th c: S = a*a + b*bổ ứ

Code:

/************************************************************

* Author: VNCODING

* History

* 2014/03/17 first create VNCODING

*************************************************************/

#include <stdio.h>

#include <conio.h>

void main()

{

int a, b;

long S = 0;

printf("\n Nhap vao so nguyen thu nhat = ");

scanf("%d", &a);

printf("\n Nhap vao so nguyen thu hai = ");

scanf("%d", &b);

S = a*a + b*b;

printf("\n Tong binh phuong 2 so = %d^2 + %d^2 = %d ", a, b, S); getch();

}

K t qu : ế ả

Nhap vao so nguyen thu nhat = 3

Nhap vao so nguyen thu hai = 4

Tong binh phuong 2 so = 3^2 + 4^2 = 25

Bài 3 Vi t chế ương trình nh p vào s nguyên ch s đo đ c a m t góc và ậ ố ỉ ố ộ ủ ộ cho bi t nó thu c góc ph n t th m y trên đế ộ ầ ư ứ ấ ường tròn lượng giác

Phân tích:

– Nh p vào s đo lậ ố ượng giác b t kỳ ( x > 0).ấ

– Xác đ nh cung lị ượng giác theo đi u ki n dề ệ ưới đây:

Góc ph n t th I: (360*k) <= x < (90 + 360*k)ầ ư ứ

Trang 4

Góc ph n t th II: (90 + 360*k) <= x < (180 +ầ ư ứ 360*k)

Góc ph n t th III: (180 +ầ ư ứ 360*k) <= x < (270 + 360*k)

Góc ph n t th III: (270 + 360*k) <= x < 360*(k+1)ầ ư ứ

(k = 0, 1, 2, )

Code:

/************************************************************

* Author: VNCODING

* History

* 2014/03/17 first create VNCODING

*************************************************************/

#include "stdio.h"

#include "conio.h"

void main()

{

int angle, k;

do

{

printf("\n Nhap vao so do goc (0 <= x <= 360*k) = "); scanf("%d", &angle);

}while(angle < 0);

k = angle / 360;

if(angle >= (360*k) && angle < (90 + 360*k))

printf("\n %d o goc phan tu thu I", angle);

else if (angle >= (90 + 360*k) && angle < (180 + 360*k)) printf("\n %d o goc phan tu thu 2", angle);

else if (angle >= (180 + 360*k) && angle < (270 + 360*k)) printf("\n %d o goc phan tu thu 3", angle);

else if (angle >= (270 + 360*k) && angle <= 360*(k + 1)) printf("\n %d o goc phan tu thu 4", angle);

else

printf("\n %d khong hop le");

getch();

}

K t qu : ế ả

Nhap vao so do goc (0 <= x <= 360*k) = 567

Trang 5

567 o goc phan tu thu 3

Bài 4 In ra màn hình cách đ c m t s nguyên dọ ộ ố ương nh h n 1000000 Ví ỏ ơ

d s 726503 đ c là: b y mụ ố ọ ả ươi hai v n sáu ngàn năm trăm linh ba.ạ

Code m u: ẫ

#include<iostream.h>

#include<conio.h>

void main()

{ char doc[9][5]={"mot","hai","ba","bon","nam","sau","bay","tam","chin"}; int van,ngan,tram,chuc,donvi,chv,dv;

long so;

clrscr();

cout<<"Nhap so nguyen duong <1000000 can doc = ";cin>>so;

cout<<"Cach doc so "<<so<<" la:\n";

van=so/10000; ngan=so/1000%10; tram=so/100%10; chuc=so/10%10; donvi=so%10;

if(van)

{chv=van/10; dv=van%10;

if(chv==1)cout<<"muoi ";

else if(chv>1)cout<<doc[chv-1]<<" muoi ";

if(dv)cout<<doc[dv-1];

cout<<" van ";

}

if((ngan==0)&&van)cout<<" khong ngan ";

Trang 6

else if(ngan)cout<<doc[ngan-1]<<" ngan ";

if((tram==0)&&(van||ngan))cout<<" khong tram ";

else if(tram)cout<<doc[tram-1]<<" tram ";

if((chuc==0)&&donvi&&(van||ngan||tram))cout<<"le ";

else if(chuc==1)cout<<" muoi ";

else cout<<doc[chuc-1]<<" muoi ";

if(donvi)cout<<doc[donvi-1];

getch();

}

Bài 5 L p trình gi i phậ ả ương trình ax2 + bx + c = 0, các h s th c a, b, c ệ ố ự

nh p t bàn phím.ậ ừ

Code m u: ẫ

#include<stdio.h>

#include<conio.h>

#include<math.h>

void main()

{float a,b,c,d;

clrscr();

printf("Nhap cac he so a, b, c : "); scanf("%f%f%f",&a,&b,&c);

if (a)

{d=b*b-4*a*c;

if (d<0) printf("Vo nghiem !");

if (d==0) printf("Nghiem kep x=%4.2f",-0.5*b/a);

Trang 7

if (d>0)

{printf("Hai nghiem phan biet :\n");

printf("x1=%4.2f",0.5*(-b-sqrt(d))/a);

printf(" x2=%4.2f",0.5*(-b+sqrt(d))/a);

}

}else if (b) printf("Mot nghiem x=%4.2f",-c/b);

else if (c) printf("Vo nghiem !");

else printf("Vo so nghiem !");

getch();

}

Bài 6Nh p 1 s c > 0 (sai s ) và 1 s th c x r i tính :ậ ố ố ố ự ô e^x = 1 + x/1! + x^2/2! + …+x^n/n!

T ng đổ ược tính v i n đ l n sao cho |x^n/n!| < c th a man.ớ ủ ớ ỏ

Thu t toán: ậ

– Tương t nh tínhự ư sinx, cosx, chúng ta s d ng vòng l p for() đ gi i ử ụ ặ ể ả quy t bài toán này.ế

Code:

/************************************************************

* Author: VNCODING

* History

* 2014/04/02 first create VNCODING

*************************************************************/

#include "stdio.h"

#include "conio.h"

#include "math.h"

long giaithua(int N);

void main()

Trang 8

float x; // goc

float c; // sai so

float e = 1;

float exp = 0;

int n = 0;

printf("\n Nhap x = ");

scanf("%f", &x);

printf("\n Nhap sai so = ");

scanf("%f", &c);

while(e >= c)

{

e = pow(float(x),n)/giaithua(n); // tinh sai so

exp += e;

n++;

}

printf("\n e^%f = %f", x, exp);

getch();

}

long giaithua(int N)

{

if(N == 0 || N == 1)

return 1;

else

return N*giaithua(N-1);

}

K t qu : ế ả

Nhap x = 2

Nhap sai so = 0.0001

e^2.000000 = 7.389047

Bài 7 L p trình gi i phậ ả ương trình ax2 + bx + c = 0, các h s th c a, b, c ệ ố ự

nh p t bàn phím.ậ ừ

Code m u: ẫ

#include<stdio.h>

#include<conio.h>

Trang 9

void main()

{float a,b,c,d;

clrscr();

printf("Nhap cac he so a, b, c : "); scanf("%f%f%f",&a,&b,&c);

if (a)

{d=b*b-4*a*c;

if (d<0) printf("Vo nghiem !");

if (d==0) printf("Nghiem kep x=%4.2f",-0.5*b/a);

if (d>0)

{printf("Hai nghiem phan biet :\n");

printf("x1=%4.2f",0.5*(-b-sqrt(d))/a);

printf(" x2=%4.2f",0.5*(-b+sqrt(d))/a);

}

}else if (b) printf("Mot nghiem x=%4.2f",-c/b);

else if (c) printf("Vo nghiem !");

else printf("Vo so nghiem !");

getch();

}

Bài 8 L p trình gi i phậ ả ương trình ax2 + bx + c = 0, các h s th c a, b, c ệ ố ự

nh p t bàn phím.ậ ừ

Code m u: ẫ

#include<stdio.h>

Trang 10

#include<math.h>

void main()

{float a,b,c,d;

clrscr();

printf("Nhap cac he so a, b, c : "); scanf("%f%f%f",&a,&b,&c);

if (a)

{d=b*b-4*a*c;

if (d<0) printf("Vo nghiem !");

if (d==0) printf("Nghiem kep x=%4.2f",-0.5*b/a);

if (d>0)

{printf("Hai nghiem phan biet :\n");

printf("x1=%4.2f",0.5*(-b-sqrt(d))/a);

printf(" x2=%4.2f",0.5*(-b+sqrt(d))/a);

}

}else if (b) printf("Mot nghiem x=%4.2f",-c/b);

else if (c) printf("Vo nghiem !");

else printf("Vo so nghiem !");

getch();

}

Bài 9 In số PI tính được với sai số cho trước

Trang 11

Lập trình tính số PI với sai số eps cho trước nhập từ bàn phím Biết rằng số PI tính theo công thức: PI = 4 - 4/3 + 4/5 - 4/7 + tính tổng các số hạng có giá trị không nhỏ hơn eps In ra số PI tính được và số PI của Turbo C++ với 10 chữ số thập phân để so sánh

Code mẫu:

#include<stdio.h>

#include<conio.h>

#include<math.h>;//chua hang so pi la M_PI

void main()

{float pi,t,n,eps,dau;

clrscr();

printf("Nhap sai so eps=");scanf("%f",&eps);

pi=0;t=4;n=dau=1;

do

{pi+=dau*t; n=n+2;

dau=-dau; t=4/n;

}while (t>=eps);

printf("\nSo PI tinh duoc voi sai so %12.10f, PI=%12.10f\n",eps,pi);

printf("\nSo PI cua Turbo C++, PI=%12.10f\n",M_PI);

getch();

}

Bài 10 Ki m tra s chính ph ể ố ươ ng

Vi t 1 hàm ki m tra 1 s có là chính phế ể ố ương hay không (s chính phố ương

là s b ng bình phố ằ ương c a m t s nguyên nào đó); m t hàm ki m tra 1 ủ ộ ố ộ ể

s có ph i là s Pitago hay không (s Pitago là s chính phố ả ố ố ố ương và b ng ằ

Trang 12

t ng 2 s chính phổ ố ương khác) Trong hàm main nh p s nguyên dậ ố ương và

s d ng các hàm trên ki m tra có là s chính phử ụ ể ố ương? s Pitago?ố

Code m u: ẫ

#include<stdio.h>

#include<conio.h>

#include<math.h>

int socp(int);

int soptg(int);

void main()

{ clrscr();

int n;

printf("Nhap so nguyen duong n="); scanf("%d",&n);

if(socp(n))printf("\n%d la so chinh phuong",n);

else printf("\n%d khong phai so chinh phuong",n);

if(soptg(n))printf("\n%d la so Pitago",n);

else printf("\n%d khong phai so Pitago",n);

getch();

}

int socp(int n)

{int t=sqrt(n);

if(n==t*t)return 1;

else return 0;

}

Trang 13

int soptg(int n)

{int i;

if(!socp(n))return 0;

else

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

if(socp(i)&&socp(n-i))break; if(i<n)return 1;

else return 0;

}

}

Ngày đăng: 21/07/2018, 21:37

TỪ KHÓA LIÊN QUAN

w