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

Chương trình tính momen trên dầm đơn chịu lực phân bố đều và phân bố bậc nhất bằng c

4 667 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 4
Dung lượng 14,44 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 momen trên dầm đơn chịu lực phân bố đều và phân bố bậc nhất bằng c Chương trình tính momen trên dầm đơn chịu lực phân bố đều và phân bố bậc nhất bằng c code Chương trình tính momen trên dầm đơn chịu lực phân bố đều và phân bố bậc nhất bằng c

Trang 1

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace SaiPhan

{

class Program

{

static void Main(string[] args)

{

display();

}

static void display()

{

int n;

string s;

do

{

Console.WriteLine(" -");

Console.WriteLine("1.Tính mômen trên 1 dầm đơn chịu lực q phân bố đều"); Console.WriteLine("2.Tính mômen trên 1 dầm đơn chịu tải phân bố bậc nhất"); Console.WriteLine(" -");

Console.WriteLine("Nhấn phím bất kì để thoát (Ngoại trừ 2 phím '1' & '2')"); s=Console.ReadLine();

try

{

n = Convert.ToInt32(s);

}

catch { n = 0; };

switch (n)

{

case 1 pbDeu(); break;

case 2 pbBacNhat(); break;

}

} while (n!=0);

}

static void pbDeu()

{

int n;

double q, l,delta;

string s;

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

s = Console.ReadLine();

q = Convert.ToInt32(s);

Trang 2

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

s = Console.ReadLine();

l = Convert.ToInt32(s);

Console.WriteLine("Nhập số điểm chia của lưới: n = ");

s = Console.ReadLine();

n = Convert.ToInt32(s);

double[] m = new double[n];

double[,] A = new double[n, n];

delta = l/ (n - 1);

n ;

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

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

A[i, j] = 0;

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

{

A[i, i - 1] = 1;

A[i, i] = -2;

A[i, i + 1] = 1;

A[i, n] = -q*delta*delta;

}

matrix(A, n);

}

static void pbBacNhat()

{

double q0, q1, q2, l,delta,qmin;

int n;

string s;

Console.WriteLine("Nhập lực phân bố: q1 = ");

s = Console.ReadLine();

q1 = Convert.ToDouble(s);

Console.WriteLine("Nhập lực phân bố: q2 = ");

s = Console.ReadLine();

q2 = Convert.ToDouble(s);

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

s = Console.ReadLine();

l = Convert.ToDouble(s);

Console.WriteLine("Nhập số điểm chia của lưới: n = ");

s = Console.ReadLine();

n = Convert.ToInt32(s);

double[] m = new double[n];

double[,] A = new double[n, n];

delta = l / (n - 1);

n ;

q0 = Math.Abs(q1 - q2);

qmin = (q1 < q2 ? q1 : q2);

Trang 3

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

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

A[i, j] = 0;

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

{

A[i, i - 1] = 1;

A[i, i] = -2;

A[i, i + 1] = 1;

A[i, n] = -1.0*(q0/4 *i+qmin)* delta * delta; }

matrix(A, n);

}

static void matrix(double[,] a,int m)

{

double p,Q;

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

for(int i=1;i<m-1;i++)

{

p=a[i,i];

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

{

a[i,j]/=p;

}

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

{

Q=a[k,i];

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

{

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

}

}

}

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

{

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

{

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

}

Console.WriteLine();

}

if (a[m - 1, m - 1] == 0)

if (a[m - 1, m] == 0)

Console.WriteLine("PT co vo so nghiem"); else

Console.WriteLine("PT vo nghiem");

Trang 4

else

x[m-1]= a[m-1,m]/a[m-1,m-1];

for (int i = m - 2; i > 0; i )

{

x[i] = a[i, m];

for(int j=m-1;j>=i+1;j )

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

}

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

Console.WriteLine("M{0} = {1} ",i+1, x[i]);

}

}

}

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

TỪ KHÓA LIÊN QUAN

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

w