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

Chương trình tính momem uốn của tấm phẳng hình chữ nhật bằng c

5 455 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 5
Dung lượng 15,64 KB

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

Nội dung

Chương trình tính momem uốn của tấm phẳng hình chữ nhật bằng c code tính momem uốn của tấm phẳng hình chữ nhật bằng c Chương trình tính momem uốn của tấm phẳng hình chữ nhật bằng c code tính mômen uốn của tấm phẳng hình chữ nhật bằng c

Trang 1

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace BanMongChiuUon

{

class Program

{

static void Main(string[] args)

{

Console.OutputEncoding = Encoding.UTF8;

Console.WriteLine("Tính độ võng cho tấm mỏng hình vuông, ngầm 4 đầu"); display();

}

static void display()

{

int n;

do

{

Console.WriteLine("Phím 1 để tiếp tục");

n = Convert.ToInt32(Console.ReadLine());

switch(n)

{

case 1 ham(); break;

}

}while(n==1);

}

static void ham()

{

int n;//số lưới chia

double l, h, q, D;

Console.WriteLine("Nhập số lưới: ");

n = Convert.ToInt32(Console.ReadLine());

Console.WriteLine("Nhập lực phân bố đều q: ");

q = Convert.ToDouble(Console.ReadLine());

Console.WriteLine("Nhập chiều dài l: ");

l = Convert.ToDouble(Console.ReadLine());

h = 1.0 * l / (n - 1);

Console.WriteLine("Nhập độ cứng trụ của tấm D: ");

Trang 2

D = Convert.ToDouble(Console.ReadLine());

//khai báo mảng

double[,] a = new double[n + 2, n + 2];//mảng này chứa giá trị của các ẩn tại vị trí thứ i,j bất kỳ double[,] X = new double[n * n, n * n];//mảng này chứa (n-2)*(n-2) ẩn và phương trình

int m, dem1 = 1, dem2;

m = (n + 1) / 2;

//cho các phần tử trong mảng a[,] nhận giá trị mặc đinh của phương trình là: 20, 8, -2, 1 for (int i1 = 2; i1 <n; i1++)

for (int j1 = 2; j1 <n; j1++)

{

//Reset mảng về 0

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

for (int j = 0; j <= n + 1; j++)

a[i, j] = 0;

//gán từng giá trị vào cho từng vị trí tương ứng với ẩn cần tìm

a[i1, j1] = 20;

a[i1 + 1, j1] = a[i1 - 1, j1] = a[i1, j1 - 1] = a[i1, j1 + 1] = -8;

a[i1 - 1, j1 - 1] = a[i1 - 1, j1 + 1] = a[i1 + 1, j1 - 1] = a[i1 + 1, j1 + 1] = 2;

a[i1, j1 - 2] = a[i1, j1 + 2] = a[i1 - 2, j1] = a[i1 + 2, j1] = 1;//vì liên kết ngầm nền cho = 1, dựa vào đây mà viết ra các kiểu liên kết

//Biên = 0

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

for (int j = 1; j <= n; j++)

if (i == 1 || i == n || j == 1 || j == n) a[i, j] = 0;

//cộng các giá trị của phần tử ảo nằm ngoài biên và giá trị thực( giá trị thực có giá trị bằng giá trị ảo hoặc = - giá trị ảo

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

for (int j = 2; j < n; j++)

{

if (i == 2)

{

a[i, j] += a[0, j];//vẽ ra trên giấy sẽ dễ thấy đc quy luật

}

if (i == n - 1)

{

a[i, j] += a[n + 1, j];

}

if (j == 2)

{

a[i, j] += a[i, 0];

Trang 3

}

if (j == n - 1)

{

a[i, j] += a[i, n + 1];

}

}

//xuất thử các phần tử được gán và đc cộng từ phần tử ảo vào trong nghiệm, i và j chạy

từ 2->n-1, mảng này là mảng a[,] sau đó mới gán cái a[] vào cái x[] để đưa ra tính ma trận

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

{

for (int j = 2; j < n; j++)

{

Console.Write("\t{0} ",a[i,j]);

} Console.WriteLine("\n");

}

//sử dụng đối xứng để rút nghiệm, nhưng mấy cái có vừa ngầm vừa tựa thì k có đối xứng, chương trình này là tổng quát rồi

/*// Đối xứng theo phương dọc và phương ngang

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

for (int j = 2; j <= m; j++)

{

if(i!=j)

a[i, j] += a[i, 2 * m - j];

}

for(int j = 2; j <= m; j++)

for (int i = 2; i <= m; i++)

{

if (i != j)

a[i, j] += a[2 * m - i, j];

}

// Đối xứng theo trục nghiêng 45o

dem2 = 1;

for (int i = 2; i <= m; i++)

{

for (int j = i; j <= m; j++)

{

if (i != j) a[i, j] += a[j, i];

X[dem1, dem2] = a[i, j];

dem2++;

}

}

dem1++;*/

Trang 4

//đưa mảng a[] tại vị trí i,j bất kỳ vào mảng chung x[,] dem2 = 1;

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

for (int j = 2; j < n; j++)

{

X[dem1, dem2] = a[i, j];

dem2++;

}

dem1++;

}

//xong tất cả x phương trình x ẩn

//đưa vế phải vào mảng x[,]

for (int i = 1; i < dem1; i++)

{

X[i, dem1] = 1.0*h * h * h * h * q / D;

}

matrix(X, dem1-1, n);

}

static void matrix(double[,] a, int y, int n)

{

double p, Q;

double[] x = new double[y+1];

for (int i = 1; i <=y; i++)

{

p = a[i, i];

for (int j = i; j <= y+1; j++)

{

a[i, j] /= p;

}

for (int k = i + 1; k <= y; k++)

{

Q = a[k, i];

for (int j = i; j <= y+1; j++)

{

a[k, j] -= a[i, j] * Q;

}

}

}

x[y] = a[y, y+1] / a[y, y];

for (int i = y - 1; i > 0; i )

{

x[i] = a[i, y+1];

for (int j = y; j >= i + 1; j )

Trang 5

x[i] -= (a[i, j] * x[j]);

}

for (int i = 1; i <= y; i++)

{

Console.Write("W{0} = {1}", i, x[i]); }

}

}

}

Ngày đăng: 09/03/2016, 12:22

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w