Читайте также:
|
|
Линейный алгоритм - набор команд (указаний), выполняемых последовательно во времени друг за другом.
Задача №1:
Линейный алгоритм – это алгоритм, в котором все операции выполняются последовательно, то есть одна за другой.
Задание:
Вычислить координаты центра тяжести трёх материальных точек с массами m1,m2,m3 и координатами (x1,y1),(x2,y2),(x3,y3) по формулам:
Листинг программы:
private void button1_Click(object sender, EventArgs e)
{
double m1 = Convert.ToDouble(textBox1.Text);
double m2 = Convert.ToDouble(textBox2.Text);
double m3 = Convert.ToDouble(textBox3.Text);
double x1 = Convert.ToDouble(textBox4.Text);
double x2 = Convert.ToDouble(textBox5.Text);
double x3 = Convert.ToDouble(textBox6.Text);
double y1 = Convert.ToDouble(textBox7.Text);
double y2 = Convert.ToDouble(textBox8.Text);
double y3 = Convert.ToDouble(textBox9.Text);
label1.Text = "X = " + Convert.ToString((m1 * x1 + m2 * x2 + m3 * x3) / (m1 + m2 + m3));
label2.Text = "Y = " + Convert.ToString((m1 * y1 + m2 * y2 + m3 * y3) / (m1 + m2 + m3));
}
Рисунок 1.1 – скриншот задачи 1
Рисунок 1.2 – блок-схема задачи 1
Задача 2:
Алгоритмы разветвления структуры применяются, когда в зависимости от некоторого условия необходимо выполнить либо одно, либо другое действие.
Задание:
Вычислить значения функции при заданных значениях переменных а,x
Листинг программы:
private void button3_Click(object sender, EventArgs e)
{
double X =0;
int x =Convert.ToInt16(textBox12.Text);
if (x >= 1)
{ X = Math.Log(x);}
else
if (x <= -1)
{ X = Math.Exp(x); }
label9.Text =Convert.ToString(X);
}
private void groupBox3_Enter(object sender, EventArgs e)
{
}
private void groupBox1_Enter(object sender, EventArgs e)
{
Рисунок 1.3 – блок-схема задачи 2
Рисунок 1.4 – скриншот задачи 2
Задача 3:
Циклический алгоритм – это алгоритм, который повторяет много раз какое-то действие.
Задание:
Вычислить значение функции y в точке x, если известны значения функции y1,y2....y20 в 20 точках x1,x2...x20.Проверить выполнение условия x1<x<x19.
Если условие не выполненено, то вывести сообщениие “Интерполяцие не выполнина”.Если условие выполнено, то найти t, для которого xi<x<i+1.Далее найти значение y по интерполяционной формуле Ньютона:
Листинг программы:
private void button2_Click(object sender, EventArgs e)
{
int i = 0;
int j = 0;
int c = 2;
int y = 0;
int b1 = 0;
int b2 = 0;
string[] sNumsX = textBox10.Text.Split(',');
string[] sNumsY = textBox11.Text.Split(',');
if (c > sNumsX.Length && c> sNumsY.Length)
{
MessageBox.Show("Длина массива не соответсвует введенному!");
return;
}
int[] numsX = new int[c];
int[] numsY = new int[c];
for (i = 0; i < c; i++)
{
numsX[i] = int.Parse(sNumsX[i]);
}
for (j = 0; j < c; j++)
{
numsY[j] = int.Parse(sNumsY[j]);
}
for (i = 0; i < c; i++)
{
label6.Text +=" "+Convert.ToString(numsX[i]);
}
int b0;
for (j = 0; j < c; j++)
{
label7.Text +=" "+Convert.ToString(numsY[j]);
}
for(i = 0;i<c;i++)
{
for(j=0;j<c;j++)
{
b0 = numsY[i];
b1 = ((numsY[i]+1 - numsY[i])) / (numsX[i]+1 - numsX[i]);
b2 = (((numsY[j]+2 - numsY[j]+1) / (numsX[i]+2 - numsX[i]+1)) - ((numsY[j]+1 - numsY[j]) / (numsX[i]+1 - numsX[i])))/(numsX[i]+2 - numsX[i]);
y= b0+b1*(numsX[0]-numsX[i])+b2*(numsX[0]-numsX[i])*(numsX[0]-numsX[i]+1);
}
label8.Text += " " + Convert.ToString(y);
}
Рисунок 1.5 – блок-схема задачи 3
Рисунок 1.6 – скриншот задачи 3
Дата добавления: 2015-07-16; просмотров: 66 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
ВВЕДЕНИЕ | | | ПОСТРОЕНИЕ МАШИНЫ ТЬЮРИНГА |