1. Trang chủ
  2. » Luận Văn - Báo Cáo

LAB 8 Kỹ thuật lập trình

7 5 0

Đ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 7
Dung lượng 21,21 KB

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

Nội dung

LAB 8 Nguyễn Hoài Danh – 1610391 Câu 1 a) Không cần phải copy cả hai hàm trên lên phía trước hàm main() ta thêm 2 dòng này vào trước hàm main() void thay doi1(int x); void thay doi2(int x); b) Nếu bỏ dấu trong phần định nghĩa hàm “thay doi1” nói trên, thì kết quả của biến a trước và sau khi gọi hàm thay doi1(a); sẽ không khác nhau vì truyền bằng tham trị sẽ không làm thay đổi giá trị của biến c) Thay 2 lời gọi hàm thay doi1(a); thay doi2(a); bằng cách lời gọi khác cho phù hợp để thay đổi gi.

Trang 1

LAB 8 Nguyễn Hoài Danh – 1610391

Câu 1:

a) Không cần phải copy cả hai hàm trên lên phía trước hàm main(): ta thêm 2 dòng này vào trước hàm main().

void thay_doi1(int& x);

void thay_doi2(int* x);

b) Nếu bỏ dấu & trong phần định nghĩa hàm “thay_doi1” nói trên, thì kết quả của biến a trước

và sau khi gọi hàm thay_doi1(a); sẽ không khác nhau vì truyền bằng tham trị sẽ không làm thay đổi giá trị của biến.

c) Thay 2 lời gọi hàm:

thay_doi1(a);

thay_doi2(&a);

bằng cách lời gọi khác cho phù hợp để thay đổi giá trị mà a chỉ đến:

thay_doi1(*a);

thay_doi2(a);

d) Bổ sung “thay_doi”, nhưng truyền thông số bằng trị Biên dịch chương báo lỗi vì kiểu của a khi ở câu c khai báo là biến con trỏ nên gọi hàm thay_doi(a); sẽ báo lỗi Để hết lỗi thì ta phải gọi bằng cách: thay_doi(*a) nhưng giá trị của a sẽ vẫn không bị thay đổi vì cơ chế truyền bằng trị

Câu 2:

#include <iostream>

using namespace std;

#define NUM 100

void doc_mang(const double arr1[], int n);

int main()

{

double arr[NUM];

int n;

cout << "nhap n: ";

cin >> n;

for (int i = 0; i < n; i++)

{

arr[i] = -10 + (float)rand() / (RAND_MAX / (20));

}// sinh ngau nhien cac so thuc -10 > 10

doc_mang(arr, n);

system("pause");

return 0;

}

void doc_mang(const double arr1[], int n)

{

float sum = 0, ph_sai = 0, tb=0;

int f[NUM] = { 0,0,0,0,0,0,0,0,0,0 }; //tan so

for ( int i = 0; i < n; i++)

{

Trang 2

sum += arr1[i];

}

tb = sum / n;

//////////////////////

for ( int i = 0; i < n; i++)

{

ph_sai += (arr1[i] - tb)*(arr1[i] - tb);

}

ph_sai = ph_sai / (n - 1);

////////////////////

cout << "Mang: " << endl;

for (int i = 0; i < n; i++)

{

cout << arr1[i] << " ";

}

cout << endl;

cout << "Trung binh: " << tb << endl << "Phuong sai: " << ph_sai << endl;

/////////////////////////

cout << "Tan suat" << endl;

//10 khoang, moi khoang L=2, Vmax=-Vmin=10

for (int j = 0; j < 10; j++)

{

float L = 2.0, Vmax = 10.0, Vmin = -10.0;

if (arr1[j] >= Vmin && arr1[j] <= Vmax)

if ((arr1[j] >= Vmin) && (arr1[j] < Vmin + L))

{

f[0]++;

}

else if (arr1[j] < Vmin + 2 * L)

{

f[1]++;

}

else if (arr1[j] < Vmin + 3 * L)

{

f[2]++;

}

else if (arr1[j] < Vmin + 4 * L)

{

f[3]++;

}

else if (arr1[j] < Vmin + 5 * L)

{

f[4]++;

}

else if (arr1[j] < Vmin + 6 * L)

{

f[5]++;

}

else if (arr1[j] < Vmin + 7 * L)

{

f[6]++;

}

else if (arr1[j] < Vmin + 8 * L)

{

f[7]++;

}

else if (arr1[j] < Vmin + 9 * L)

{

f[8]++;

}

else if (arr1[j] <= Vmax)

Trang 3

f[9]++;

} }

int sumf = 0;

for (int i = 0; i < 10; i++)

{

sumf += f[i];

}

for (int i = 0; i < 10; i++)

{

cout << f[i] /double(sumf)<< " ";

}

cout << endl;

}

Câu 3:

#include <iostream>

#include<iomanip>

using namespace std;

#define N 3

typedef struct {

double data[N][N];

} Matrix;

void inmatran(Matrix C);

Matrix Tich(Matrix &A, Matrix &B);

Matrix cong_mot_so(Matrix &A, double x);

Matrix nhan_mot_so(Matrix &A, double x);

Matrix chia_mot_so(Matrix &A, double x);

Matrix hieu(Matrix &A, Matrix &B);

Matrix tong(Matrix &A, Matrix &B);

int main()

{

Matrix a, b, c, d;

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

{

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

a.data[i][j] = -10 + (float)rand() / (RAND_MAX / (20)); b.data[i][j] = -10 + (float)rand() / (RAND_MAX / (20)); }

}

cout << "Ma tran a" << endl;

inmatran(a);

cout << endl;

cout << "Ma tran b" << endl;

inmatran(b);

cout << endl;

cout << "c = a + b + 0.5" << endl;

c = cong_mot_so(tong(a, b), 0.5);

inmatran(c);

cout << endl;

cout << "d = 1.5 + a*c" << endl;

d = cong_mot_so(Tich(a, c), 1.5);

inmatran(d);

cout << endl;

Trang 4

return 0;

}

Matrix Tich(Matrix &A, Matrix &B)

{

int i, j, k;

Matrix C;

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

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

C.data[i][k] = 0;

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

C.data[i][k] = C.data[i][k] + A.data[i][j] * B.data[j][k]; }

return C;

}

Matrix tong(Matrix &A, Matrix &B)

{

int i, j, k;

Matrix C;

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

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

C.data[i][k] = A.data[i][k] + B.data[i][k];

} return C;

}

Matrix hieu(Matrix &A, Matrix &B)

{

int i, j, k;

Matrix C;

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

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

C.data[i][k] = A.data[i][k] - B.data[i][k];

} return C;

}

Matrix cong_mot_so(Matrix &A, double x)

{

int i, j, k;

Matrix C;

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

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

C.data[i][k] = A.data[i][k] + x;

} return C;

}

void inmatran(Matrix C)

{

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

{

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

cout << setw(15) << C.data[i][j] << " ";

} cout << endl;

}

}

Trang 5

Matrix nhan_mot_so(Matrix &A, double x)

{

int i, j, k;

Matrix C;

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

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

C.data[i][k] = A.data[i][k] * x;

} return C;

}

Matrix chia_mot_so(Matrix &A, double x)

{

int i, j, k;

Matrix C;

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

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

C.data[i][k] = A.data[i][k] / x;

} return C;

}

Câu 4:

#include <iostream>

#include<iomanip>

using namespace std;

typedef struct {

double thuc,ao;

} sophuc;

sophuc cong(sophuc a sophuc b);

sophuc tru(sophuc a sophuc b);

sophuc nhan(sophuc a sophuc b);

sophuc chia(sophuc a sophuc b);

void in(sophuc a);

int main()

{

sophuc sophuc1, sophuc2;

sophuc1 = { -10 + (float)rand() / (RAND_MAX / (20)),-10 + (float)rand() / (RAND_MAX / (20)) };

sophuc2 = { -10 + (float)rand() / (RAND_MAX / (20)),-10 + (float)rand() / (RAND_MAX / (20)) };

cout << "so phuc 1: ";

in(sophuc1);

cout << "so phuc 2: ";

in(sophuc2);

cout << "so phuc 1 + so phuc 2:" << endl;

in(cong(sophuc1, sophuc2));

cout << "so phuc 1 - so phuc 2:" << endl;

in(tru(sophuc1, sophuc2));

cout << "so phuc 1 * so phuc 2:" << endl;

in(nhan(sophuc1, sophuc2));

cout << "so phuc 1 / so phuc 2:" << endl;

in(chia(sophuc1, sophuc2));

system("pause");

}

sophuc cong(sophuc a,sophuc b)

{

sophuc c;

Trang 6

c.ao = a.ao + b.ao;

c.thuc = a.thuc + b.thuc;

return c;

}

sophuc tru(sophuc a sophuc b)

{

sophuc c;

c.ao = a.ao - b.ao;

c.thuc = a.thuc - b.thuc;

return c;

}

sophuc nhan(sophuc a sophuc b)

{

sophuc c;

c.ao = a.ao*b.thuc+a.thuc*b.ao;

c.thuc = a.thuc*b.thuc-a.ao*b.ao;

return c;

}

sophuc chia(sophuc a sophuc b)

{

sophuc c;

c.ao = (a.ao*b.thuc - a.thuc*b.ao )/(b.ao*b.ao+b.thuc*b.thuc); c.thuc =( a.thuc*b.thuc + a.ao*b.ao )/ (b.ao*b.ao + b.thuc*b.thuc); return c;

}

void in(sophuc a)

{

cout << a.thuc << " + " << a.ao << "i"<<endl<<endl;

}

Câu 5:

#include <iostream>

#include<iomanip>

#include<math.h>

using namespace std;

#define num 100

double SUM(double arr[], int n);

void doinhiphan(int n);

void in_mang_thuan(double arr[], int n);

void in_mang_nghich(double arr[], int n);

double gt_bieu_thuc(double arr[], int n int b,double x);

int main()

{

double arr1[num];

int n; double x;

cout << "nhap n: ";

cin >> n;

for (int i = 0; i < n; i++)

{

arr1[i]=-10+rand()%(21);

}

cout << "mang thuan: ";

in_mang_thuan(arr1, n);

cout << endl;

cout << "mang nghich: ";

in_mang_nghich(arr1, n);

cout << endl;

cout << "Nhap x: ";

cin >> x;

Trang 7

cout << "gia tri bieu thuc bac N: aX^N+bX^(N-1)+

(voi arr1[N-1]=a, arr2[N-2]=b, ) :" << endl;

cout << gt_bieu_thuc(arr1, n, n - 1, x)<<endl;

cout << "doi sang nhi phan, nhap so can doi : ";

int y; cin >> y;

doinhiphan(y);

system("pause");

}

double SUM(double arr[], int n)

{

if (n == 1)return arr[0];

else return arr[n-1] + SUM(arr, - 1);

}

void in_mang_thuan(double arr[], int n)

{

if (n > 0)

{

in_mang_thuan(arr, - 1);

cout << arr[n-1] << " ";

}

}

void in_mang_nghich(double arr[], int n)

{

if (n == 0) return;

cout << arr[n - 1] << " ";

n ;

in_mang_nghich(arr, );

}

void doinhiphan(int n)

{

double temp[num];

int i = 0;

if (n == 0);

else

{

temp[i]= n % 2;

i++;

n = n / 2;

doinhiphan(n);

}

in_mang_nghich(temp,i);

}

double gt_bieu_thuc(double arr[], int n int b double x)

{

double gt;

if (b == 0)gt=arr[0] ;

else

{

gt = arr[n - 1] * pow(x, )+gt_bieu_thuc(arr, - 1,b-1, x); }

return gt;

}

Ngày đăng: 29/05/2022, 13:46

w