1. Trang chủ
  2. » Cao đẳng - Đại học

Bài tập đáp án câu 7đ C++

9 3K 1

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 9
Dung lượng 656,55 KB

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

Nội dung

Xây dựng cấu trúc dữ liệu phù hợp để biểu diễn ma trận, nhập ma trận struct Matrix { int n; float A[20][20]; } X,Y; void InputMatrix &X; Matrix operator+Matrix X, Matrix Y; Matrix opera

Trang 1

#include <stdio.h>

#include <conio.h>

#include <math.h>

#define N 50

float A[N][N];

1 Nhập dữ liệu cho các phần tử của mảng A

void CauA()

{ int i, j;

float tam;

printf("Nhap du lieu cho cac phan tu cua mang A:"); for (i = 0; i < N; i++)

for (j = 0; j < N; j++) {

printf("Nhap A[%d][%d]= ",i,j); scanf("%f", &tam); A[i][j] = tam;

} }

Lập dưới dạng các hàm

2 Tính tổng S1 gồm các phần tử ở hai cột 3 và 10

void CauB()

{ int i;

float S1;

S1 = 0;

for (i = 0; i < N; i++) S1 += A[i][3] + A[i][10];

printf("Tong cac phan tu o hai cot 3 va 10 la %8.2f",S1); }

Lập dưới dạng các hàm

3 Tính tổng bình phương các phần tử nằm trên đường chéo phụ

void CauC()

float S = 0;

for (i = 0; i < N; i++)

S += A[i][N-1-i]* A[i][N-1-i];

printf("Tong binh phuong cac phan tu nam tren duong cheo phu la %8.2f",S);

}

Lập dưới dạng các hàm

4 Tìm phần tử nhỏ nhất của mỗt dòng và đặt chúng vào vị trí cuối của dòng

đó

void CauD()

{ int i, j, MinPos;

float MinRow;

for (i = 0; i < N; i++) {

MinRow = A[i][0]; MinPos = 0;

for (j = 0; j < N; j++)

if (MinRow > A[i][j]) {

MinRow = A[i][j];

MinPos = j;

} A[i][MinPos]= A[i][N-1];

A[i][N-1]= MinRow;

} }

Lập dưới dạng các hàm

void main()

{

CauA();

CauB();

CauC(); CauD();

Trang 2

getch();

}

Câ u

10

Ý

#include

#include

#include

#include

<iostream.h>

<conio.h>

<iomanip.h>

<math.h>

Nội dung

1 Xây dựng cấu trúc dữ liệu phù hợp để biểu diễn ma trận, nhập ma trận

struct Matrix

{ int n;

float A[20][20];

} X,Y;

void Input(Matrix &X);

Matrix operator+(Matrix X, Matrix Y);

Matrix operator-(Matrix X, Matrix Y);

Matrix operator*(Matrix X, Matrix Y);

void Input(Matrix &X)

{

int i,j;

for (i=0; i<X.n; i++) for (j=0; j<X.n; j++) {

cout<<"A["<<i<<"]["<<j<<"]=";

cin>>X.A[i][j];

} }

Lập dưới dạng các hàm

2 Cộng hai ma trận

Matrix operator+(Matrix X, Matrix Y)

{

Matrix temp;

int i,j;

for (i=0; i<X.n; i++) for (j=0; j<X.n; j++) temp.A[i][j]= X.A[i][j]+Y.A[i][j];

temp.n = X.n;

return temp;

}

Lập dưới dạng các hàm

3 Trừ hai ma trận

Matrix operator-(Matrix X, Matrix Y)

{

Matrix temp;

int i,j;

for (i=0; i<X.n; i++) for (j=0; j<X.n; j++) temp.A[i][j]= X.A[i][j]-Y.A[i][j];

temp.n = X.n;

return temp;

}

Lập dưới dạng các hàm

4 Nhân hai ma trận

Matrix operator*(Matrix X, Matrix Y)

{

Matrix temp;

int i,j,k;

for (i=0; i<X.n; i++) for (j=0 j<X.n; j++) {

temp.A[i][j]= 0.0;

Trang 3

for (k=0; k<X.n;k++) temp.A[i][j]+= X.A[i][k]*Y.A[k][j]; }

temp.n = X.n;

return temp;

}

Lập dưới dạng các hàm

main()

{

clrscr();

Matrix M1, M2, M3;

cout<<"Nhap cap ma tran:"; cin>>X.n;

Y.n = X.n;

Input(X);

Input(Y);

M1= X+Y;

M2= X-Y; M3=

X*Y; getch();

}

Câ u Ý Nội dung

#include <iostream.h>

#include <conio.h>

#include <math.h>

1 Xây dựng cấu trúc dữ liệu biểu diễn đa thức, nhập đa thức

struct Term

{ int n;

float a[20];

} f2,f3,f4,g,h;

void Input(Term &t);

Term operator-(Term t);

Term operator-(Term t1, Term t2);

Term operator*(Term t1, Term t2);

11

void Input(Term &t)

{

int i;

cout<<"Nhap bac cua da thuc:"; cin>>t.n; cout<<"Nhap cac he so cua da thuc:";

for (i=0; i<=t.n; i++) {

cout<<"He so bac "<<i<<" =";

cin>>t.a[i];

} }

Lập dưới dạng các hàm

2 Đảo dấu một đa thức

Term operator-(Term t)

{

Term temp;

int i;

temp.n= t.n;

for (i=0; i<=temp.n; i++) temp.a[i]= -t.a[i];

return temp;

}

Lập dưới dạng các hàm

3 Trừ hai đa thức

Term operator-(Term t1, Term t2)

Trang 4

Term temp;

int k,i;

k= t1.n>t2.n?t1.n:t2.n;

for (i=0; i<=k; i++)

if (i<=t1.n && i<=t2.n) temp.a[i]= t1.a[i] - t2.a[i];

else

if (i<=t1.n) temp.a[i]= t1.a[i];

else temp.a[i]= t2.a[i];

i= k;

while (i>0 && temp.a[i]==0.0) i;

temp.n= i;

return temp;

}

Lập dưới dạng các hàm

4 Nhân hai đa thức

Term operator*(Term t1, Term t2)

{

Term temp; int k,i,j;

temp.n= t1.n+t2.n;

k= temp.n;

for (i=0; i<=k; i++) temp.a[i]= 0;

for (i=0; i<=t1.n; i++) for (j=0; j<=t2.n; j++) temp.a[i+j]+= t1.a[i]*t2.a[j];

return temp;

}

Lập dưới dạng các hàm

main()

{ clrscr();

Input(g);

Input(h); f3 =

g-h;

f4 = g*h;

f2 = (-g);

getch();

}

Câ u

12

Ý

#include <iostream.h>

#include <conio.h>

#include <math.h>

Nội dung

1 Xây dựng cấu trúc dữ liệu biểu diễn đa thức, nhập đa thức

struct Term

{ int n;

float a[20];

} f2,f4,g,h;

void Input(Term &t);

Term operator+(Term t1, Term t2);

Term operator*(Term t1, Term t2);

float gt(Term t, float x);

void Input(Term &t)

{

int i;

cout<<"Nhap bac cua da thuc:"; cin>>t.n; cout<<"Nhap cac he so cua da thuc:";

Trang 5

for (i=0; i<=t.n; i++)

{

cout<<"He so bac "<<i<<" =";

cin>>t.a[i];

}

}

Lập dưới dạng các hàm

2 Tính giá trị của đa thức tại một giá trị x = x0, x0 nhập từ bàn phím

float gt(Term t, float x)

{

float temp, expx;

int i;

temp= 0; expx= 1;

for (i=t.n; i>=0; i )

{

temp+= t.a[i]*expx;

expx*= x;

}

return temp;

}

Lập dưới dạng các hàm

3 Cộng hai đa thức

Term operator+(Term t1, Term t2)

{

Term temp;

int k,i;

k= t1.n>t2.n?t1.n:t2.n;

for (i=0; i<=k; i++)

if (i<=t1.n && i<=t2.n)

temp.a[i]= t1.a[i]+t2.a[i];

else

if (i<=t1.n)

temp.a[i]= t1.a[i];

else

temp.a[i]= t2.a[i];

i= k;

while (i>0 && temp.a[i]==0.0) i;

temp.n= i;

return temp;

}

Lập dưới dạng các hàm

4 Nhân hai đa thức

Term operator*(Term t1, Term t2)

{

Term temp;

int k,i,j;

temp.n= t1.n+t2.n;

k= temp.n;

for (i=0; i<=k; i++)

temp.a[i]= 0;

for (i=0; i<=t1.n; i++)

for (j=0; j<=t2.n; j++)

temp.a[i+j]+= t1.a[i]*t2.a[j];

return temp;

}

Lập dưới dạng các hàm

main()

{ float x0;

clrscr();

Input(g);

Input(h);

f2= g+h;

Trang 6

f4= g*h;

cout<<"Nhap x0="; cin>>x0;

cout<<"Gia tri ham g tai x=x0 la:"<<gt(g,x0);

getch();

Câ u

13

}

Ý

#include <iostream.h>

#include <conio.h>

#include <math.h>

Nội dung

1 Xây dựng cấu trúc dữ liệu biểu diễn phân số, nhập phân số

struct PS

{ int x, y;

} p1, p2, a, b;

void Input(PS &a)

{

cout<<"Nhap phan so x/y:\n";

cout<<"x="; cin>>a.x;

cout<<"y="; cin>>a.y;

}

PS Rutgon(PS a);

PS operator+(PS a, PS b); PS

operator/(PS a, PS b);

Lập dưới dạng các hàm

2 Rút gọn một phân số

int UCLN(int a, int b)

{

int tg;

do

if (a>=b) { tg= a;

a= b;

b= tg-a;

} else b= b-a;

while (b!=0);

return tg;

}

PS Rutgon(PS a)

{ PS temp;

temp.x= a.x/UCLN(a.x,a.y);

temp.y= a.y/UCLN(a.x,a.y);

return temp;

}

Lập dưới dạng các hàm

3 Cộng hai phân số

PS operator+(PS a, PS b)

{

PS temp;

temp.x= a.x*b.y+a.y*b.x;

temp.y= a.y*b.y;

temp= Rutgon(temp);

return temp;

}

Lập dưới dạng các hàm

4 Chia hai phân số

PS operator/(PS a, PS b)

{

PS temp;

temp.x= a.x*b.y;

temp.y= a.y*b.x;

Trang 7

temp= Rutgon(temp);

return temp;

}

Lập dưới dạng các hàm

main()

{

clrscr();

Input(a);

Input(b);

p1= a+b;

p2= a/b;

getch();

}

Câ u

14

Ý

#include <iostream.h>

#include <conio.h>

#include <math.h>

Nội dung

1 Xây dựng cấu trúc dữ liệu biểu diễn phân số, nhập phân số

struct PS

{ int x, y;

} p2, p3, a, b;

void Input(PS &a);

{

cout<<"Nhap phan so x/y:\n";

cout<<"x="; cin>>a.x;

cout<<"y="; cin>>a.y;

}

PS Rutgon(PS a);

PS operator-(PS a, PS b); PS

operator*(PS a, PS b);

Lập dưới dạng các hàm

2 Rút gọn một phân số

int UCLN(int a, int b)

{

int tg;

do

if (a>=b) { tg= a;

a= b;

b= tg-a;

} else b= b-a;

while (b!=0);

return tg;

}

PS Rutgon(PS a)

{ PS temp;

temp.x= a.x/UCLN(a.x,a.y);

temp.y= a.y/UCLN(a.x,a.y);

return temp;

}

Lập dưới dạng các hàm

3 Trừ hai phân số

PS operator-(PS a, PS b)

{

PS temp;

temp.x= a.x*b.y-a.y*b.x;

temp.y= a.y*b.y;

temp= Rutgon(temp);

Trang 8

return temp;

}

Lập dưới dạng các hàm

4 Nhân hai phân số

PS operator*(PS a, PS b)

{

PS temp;

temp.x= a.x*b.x;

temp.y= a.y*b.y;

temp= Rutgon(temp);

return temp;

}

Lập dưới dạng các hàm

main()

{

clrscr();

Input(a);

Input(b);

p2= a-b;

p3= a*b;

getch();

}

Câ u Ý Nội dung

#include <stdio.h>

#include <conio.h>

15 #include <math.h>

#include <stream.h>

#include <process.h>

1 Viết hàm nhập, in ra số phức

typedef struct

{ float phanthuc;

float phanao;

} sophuc;

sophuc Nhap(float a, float b);

void Inra(sophuc a);

sophuc operator + (sophuc a, sophuc b);

sophuc operator / (sophuc a, sophuc b);

sophuc Tinh(sophuc a, sophuc b)

sophuc Nhap(float thuc,float ao)

{ sophuc tg;

tg.phanthuc=thuc;

tg.phanao=ao;

return tg;

}

void Inra(sophuc a)

{

if (a.phanao >= 0) cout<<"\n\n"<<a.phanthuc<<" + "<<a.phanao<<"i"; else

cout<<"\n\n"<<a.phanthuc<<a.phanao<<"i";

}

Lập dưới dạng các hàm

2 Thực hiện toán tử cộng (+)

sophuc operator +(sophuc a, sophuc b)

{ sophuc tg;

tg.phanthuc = a.phanthuc + b.phanthuc;

tg.phanao = a.phanao + b.phanao;

return tg;

}

Trang 9

Lập dưới dạng các hàm

3 Thực hiện toán tử chia (/)

sophuc operator / (sophuc a, sophuc b)

{ sophuc tg;

if ((b.phanthuc == 0)&&(b.phanao == 0))

{ cout<<"\nKhong chia duoc";

getch();

exit(1);

}

tg.phanthuc=(a.phanthuc*b.phanthuc+a.phanao*b.phanao)/(b .phanthuc*b.phanthuc+b.phanao*b.phanao);

tg.phanao = (b.phanthuc*a.phanao-

a.phanthuc*b.phanao)/(b.phanthuc*b.phanthuc+b.phanao*b.phanao)

;

return tg;

}

Lập dưới dạng các hàm

4 Áp dụng, hãy tính giá trị của biểu thức c = (a + b) / a, với a, b là các số phức

sophuc Tinh(sophuc a, sophuc b)

{ sophuc c;

c = (a + b) / a;

return c;

}

Lập dưới dạng các hàm

main()

{ sophuc a,b,c, d, e;

clrscr();

float x1,y1,x2,y2;

cout<<"\nNhap so phuc thu 1\n";

cout<<"\nNhap phan thuc = "; cin>>x1;

cout<<"\nNhap phan ao = "; cin>>y1;

cout<<"\nNhap so phuc thu 2\n";

cout<<"\nNhap phan thuc = "; cin>>x2;

cout<<"\nNhap phan ao = "; cin>>y2;

a = Nhap(x1,y1);

b = Nhap(x2,y2);

d = a + b;

e = a / b;

c = (a+b)/b;

Inra(a);

Inra(b);

Inra(d);

Inra(e);

cout<<"\nBieu thuc C la:"; Inra(c);

getch();

return 0;

}

Ngày đăng: 29/03/2016, 02:27

TỪ KHÓA LIÊN QUAN

w