Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

. Программирование алгоритмов разветвляющейся структуры Даны действительные числа x y

Работа добавлена на сайт samzan.net:


  1.  В MS Office зайти в сервис-макрос-безопасность и установить средний или уровень безопасности
  2.  В MS Office зайти в сервис-макрос-редактор Visual Basic
  3.  В MS VBA Insert-UserForm

Задача 1.
Программирование алгоритмов
разветвляющейся структ
уры

Даны действительные числа x, y. Определить, принадлежит ли точка с координатами (x, y) заштрихованной области.

Блок-схема

Программирование на языке Visual Basic

Создаем форму следующего вида, с данными элементами управления

Свойство “Caption” объекта “Label1” изменяем на “x=”.

Свойство “Caption” объекта “Label2” изменяем на “y=”.

Свойство “Caption” объекта “Label3” изменяем на “ ”.

Свойство “Caption” объекта “CommandButton1” изменяем на “Вычислить”.

Тогда форма примет вид:

На нажатие объекта “CommandButton1” определим следующую процедуру:

Private Sub CommandButton1_Click()

x = Val(TextBox1.Text)

y = Val(TextBox2.Text)

If (x ^ 2 + y ^ 2 <= 1) And (x >= 0) Then

Label3.Caption = "Точка принадлежит заштрихованной области"

Else

Label3.Caption = "Точка не принадлежит заштрихованной области"

End If

End Sub

Запуск программы: “Run” – “Run”

Программирование на языке Borland C++

#include <iostream.h>

#include <math.h>

int main() {

float x;

float y;

cout << "Введите координаты x и y: ";

cin >>x>>y;

if ((x*x+y*y<=1) && (x>=0))

cout << "Точка лежит в заштрихованной области";

else

cout << "Точка не лежит в заштрихованной области";

cout << endl;

return 0;

}

Запуск программы: “Run” – “Run

Программирование на языке Borland Delphi (консольный режим)

Program z1;

Var x,y:real;

Begin

 Write(‘Введите координаты x и y : ’);

Readln(x,y);

If (x*x+y*y<=1) and (x>=0) then

 Writeln(‘Точка лежит в заштрихованной области')

else

 Writeln(‘Точка не лежит в заштрихованной области');

End.

Запуск программы: “Run” – “Run

Задача 2.
Программирование алгоритмов
разветвляющейся структ
уры

Написать программу вычисления функции  . Заполнить таблицу значений    при   с шагом  .

Блок-схема

Программирование на языке Visual Basic

Создаем форму следующего вида, с данными элементами управления

Свойство “Caption” объекта “Label1” изменяем на “a=”.

Свойство “Caption” объекта “Label2” изменяем на “b=”.

Свойство “Caption” объекта “Label3” изменяем на “h=”.

Свойство “Caption” объекта “Label4” изменяем на “”.

Свойство “Caption” объекта “Label5” изменяем на “ ”.

Свойство “Caption” объекта “CommandButton1” изменяем на “Вычислить”.

Тогда форма примет вид:

На нажатие объекта “CommandButton1” определим следующую процедуру:

Private Sub CommandButton1_Click()

a = Val(TextBox1.Text)

b = Val(TextBox2.Text)

h = Val(TextBox3.Text)

Label4.Caption = ""

Label5.Caption = ""

For x = a To b Step h

If x < 3 Then

f = 2 * x ^ 3 - 7 * x ^ 2 + 5 * x + 3

Else

f = x + Log(Abs(Cos(2 * x) - 1))

End If

Label4.Caption = Label4.Caption & Round(x, 2) & Chr(13)

Label5.Caption = Label5.Caption & Round(f, 4) & Chr(13)

Next x

End Sub

Запуск программы: “Run” – “Run

Программирование на языке Borland C++

#include <iostream.h>

#include <math.h>

int main() {

float a,b,h;

float x,f;

int i;

cout << "Введите числа a, b и h: ";

cin >>a>>b>>h;

cout << "x  y";

cout << endl;

for (i=0; i<(b-a)/h; i++) {

x=a+i*h;

if (x<3)

f= 2*x*x*x-7*x*x+5*x+3;

else

f= x+Ln(fAbs(Cos(2*x)-1));

cout << x;

cout << "  ";

cout << f;

cout << endl;

}

return 0;

}

Запуск программы: “Run” – “Run

Программирование на языке Borland Delphi (консольный режим)

Program z2;

Var a,b,h,x,f:real;

Begin

 Write(‘Введите числа a, b и h : ’);

Readln(a,b,h);

For i:=0 to trunc((b-a)/h) do

 Begin

  x=a+i*h;

  if (x<3) then

    f= 2*x*x*x-7*x*x+5*x+3

   else

    f= x+Ln(Abs(Cos(2*x)-1));

  Writeln(‘x= ‘, x, ‘  f= ‘, f);

 End;

End.

Запуск программы: “Run” – “Run”

Задача 3.
Программирование алгоритмов
с итерационными циклами

На интервале значений  (0,1)  найти с точностью  ξ=10-5  корни уравнения
x2-0,5=0  методом деления отрезка пополам.

Описание метода

Уравнение представить в виде  f(х)=0. За нулевое приближение корня уравнения принять x0=(a+b)/2. Если f(x0)=0, то x0 является корнем уравнения. Если f(x0)≠0, то проверить условия f(x0f(b)<0 и f(x0f(a)<0 и выбрать тот из отрезков [a, х0], [х0, b], на границах которого выполнено одно из этих условий (т.е. функция f(х) имеет противоположные знаки).

Выбранный отрезок вновь разделить пополам и вычислить значение x1. 

Для х1 проверить условие  f1)=0 и, если необходимо,  f1)≠0  и т. д. Процесс деления отрезков пополам продолжить до тех пор, пока длина отрезка, на концах которого функция имеет противоположные знаки, не будет меньше . На печать дополнительно вывести значения  f(xk) и  |ak-bk|.

Блок-схема

Программирование на языке Visual Basic

Создаем форму следующего вида, с данными элементами управления

Свойство “Caption” объекта “Label1” изменяем на “a=”.

Свойство “Caption” объекта “Label2” изменяем на “b=”.

Свойство “Caption” объекта “Label3” изменяем на “eps=”.

Свойство “Caption” объекта “Label4” изменяем на “Корень =”.

Свойство “Caption” объекта “Label5” изменяем на “”.

Свойство “Caption” объекта “Label6” изменяем на “”.

Свойство “Caption” объекта “Label7” изменяем на “”.

Свойство “Caption” объекта “CommandButton1” изменяем на “Вычислить”.

Тогда форма примет вид:

На нажатие объекта “CommandButton1” определим следующую процедуру:

Private Sub CommandButton1_Click()

a = Val(TextBox1.Text)

b = Val(TextBox2.Text)

eps = Val(TextBox3.Text)

Do

c = (a + b) / 2

If (a ^ 2 - 0.5) * (c ^ 2 - 0.5) > 0 Then

a = c

Else

b = c

End If

Label6.Caption = Label6.Caption & c & Chr(13)

Label7.Caption = Label7.Caption & (a - b) & Chr(13)

Loop While Abs(a - b) > eps

Label5.Caption = c

End Sub

Запуск программы: “Run” – “Run

Программирование на языке Borland C++

#include <iostream.h>

#include <math.h>

int main() {

float a, b, c;

float eps;

cout << "Введите числа a, b и eps: ";

cin >>a>>b>>eps;

do {

c=(a+b)/2;

if ((a*a-0.5)*(c*c-0.5)>0)

a=c;

else

b=c;

cout << (a+b)/2;

cout << endl;

} while (fabs(a-b) < eps);

cout << c;

cout << endl;

return 0;

}

Запуск программы: “Run” – “Run

Программирование на языке Borland Delphi (консольный режим)

Program z3;

Var a,b,eps,x,f:real;

Begin

 Write(‘Введите числа a, b и eps : ’);

Readln(a,b,eps);

repeat

 c=(a+b)/2;

 if (a*a-0.5)*(c*c-0.5)>0 then

   a = c

  else

   b = c;

 writeln(“ c =  “,c,“ (a-b)=  “,(a-b));

until abs(a-b)<=eps

 writeln(“ Корень уравнения =  “,c);

End.

Запуск программы: “Run” – “Run”

Другие методы решения уравнений

1. Метод простой итерации

Уравнение представить в виде x= φ(x). Принять, что корень уравнения в нулевом приближении x0 равен, например, x0=m. Первое приближение вычислить по формуле: x1φ(x0), второе – x2= φ(x1), третье – x3= φ(x2)
и т.д.

2. Метод Ньютона (метод касательных)

Уравнение представить в виде  f(х)=0. За корень уравнения в нулевом приближении x0 принять значение границы интервала задания x, для которой выполнено условие: f(xf’’(x)>0. Корень уравнения вычислить по формуле:

xkxk-1 - f(xk-1) / f’(xk-1) .

3. Модифицированный метод Ньютона

Уравнение представить в виде  f(х)=0. За корень уравнения в нулевом приближении x0 принять значение границы интервала задания x, для которой выполнено условие: f(xf’’(x)>0. Корень уравнения вычислить по формуле: xkxk-1 - f(xk-1) / f’(x0). Здесь  f’(x0) достаточно вычислить один раз. Метод применяется при трудностях в вычислении производных от функции.

4. Метод хорд

Уравнение представить в виде  f(х)=0. Итерационная формула вычисления корня уравнения имеет вид:

5. Комбинированный метод

Уравнение представить в виде  f(х)=0. За нулевое приближение корня уравнения по методу хорд принять x0=m, по методу Ньютона .

Итерационная формула метода хорд на первом шаге имеет вид:

.

Итерационная формула метода Ньютона на первом шаге имеет вид:

на втором шаге

На (k+1)шаге формулы имеют вид:

.

Погрешность на каждом шаге вычислить по формулам:

.

На печать дополнительно вывести значения  .

Задача 4.
Программирование алгоритмов
с итерационными циклами,
содержащими вложенные арифметические циклы

Вычислить интеграл  методом прямоугольников с точностью eps=0.00001.

Описание метода

Интеграл можно представить в следующем виде , где , ,  , . Процесс вычисления интеграла продолжить до тех пор, пока значение суммы на текущем шаге отличается по абсолютной величине от значения суммы на предыдущем шаге не будет меньше .. При этом, число разбиений на каждом шаге увеличивается в два раза.

Блок-схема

Программирование на языке Visual Basic

Создаем форму следующего вида, с данными элементами управления

Свойство “Caption” объекта “Label1” изменяем на “a=”.

Свойство “Caption” объекта “Label2” изменяем на “b=”.

Свойство “Caption” объекта “Label3” изменяем на “eps=”.

Свойство “Caption” объекта “Label4” изменяем на “Интеграл =”.

Свойство “Caption” объекта “Label5” изменяем на “”.

Свойство “Caption” объекта “Label6” изменяем на “”.

Свойство “Caption” объекта “Label7” изменяем на “”.

Свойство “Caption” объекта “CommandButton1” изменяем на “Вычислить”.

Тогда форма примет вид:

На нажатие объекта “CommandButton1” определим следующую процедуру:

Private Sub CommandButton1_Click()

a = Val(TextBox1.Text)

b = Val(TextBox2.Text)

eps = Val(TextBox3.Text)

n = 10

S2 = 0

Do

S1 = S2

S2 = 0

For x = a To b Step (b - a) / n

S2 = S2 + (b - a) / n * (x * x)

Next x

Label6.Caption = Label6.Caption & n & Chr(13)

Label7.Caption = Label7.Caption & S2 & Chr(13)

n = 2 * n

Loop While Abs(S2 - S1) > eps

Label5.Caption = S2

End Sub

Запуск программы: “Run” – “Run

Программирование на языке Borland C++

#include <iostream.h>

#include <math.h>

int main() {

float a, b, c;

float eps;

cout << "Введите числа a, b и eps: ";

cin >>a>>b>>eps;

int n=10;

float S2=0;

float S1;

do {

 S1=S2;

 S2=0;

 For (i = 1; i <= n; i++)

   S2=S2+(b-a)/n*(a+i*(b-a)/n) *(a+i*(b-a)/n);

 cout <<n<<S2;

 cout << endl;

 n:=2*n;

} while (fabs(S2-S1) < eps);

cout << S2;

cout << endl;

return 0;

}

Запуск программы: “Run” – “Run”

Программирование на языке Borland Delphi (консольный режим)

Program z4;

Var a,b,eps,x,f:real;

Begin

Write(‘Введите числа a, b и eps : ’);

Readln(a,b,eps);

n:=10;

S2:=0;

repeat

 S1:=S2;

 S2:=0;

 For i:=1 to n do

   S2:=S2+(b-a)/n*(a+i*(b-a)/n) *(a+i*(b-a)/n);

 Writeln(’n= ’,n, ’ S2= ’,S2);

 n:=2*n;

until abs(S1-S2)<=eps

writeln( Интеграл =  ,S2);

End.

Запуск программы: “Run” – “Run




1. Поняття про аберації Монохроматичні і хроматичні аберації
2. первых это может быть первым сигналом со стороны организма что чтото не в порядке и в работе какогото внут
3. Тема9 Товар и жизненный цикл товара Три уровня товаров в маркетинге Товар все что может удовлетв
4. Вариант 1 А1 В каком ряду в обоих словах на месте пропуска пишется буква И лаур
5. Угорщина
6. варианта ответа из которых только один правильный
7. Лекция 2 Правовые основы стандартизации- категории стандартов 1
8. Курсовая работа- Особенности эмоциональной структуры личности
9. Содержание.html
10. тематизація найважливіших відомостей з синтаксису і стилістики
11. инфекции инфекционного процесса
12. Основы решения эконометрических задач
13. ция выступает страхователем
14. Финансовые риски предприятия
15. ліс лісомеліорація.
16. Экономические идеи социал-демократии
17. Организация и порядок деятельности нотариата
18. Тема 4 ЭКОНОМИЧЕСКАЯ ИНФОРМАЦИОННАЯ И ЭКОЛОГИЧЕСКАЯ БЕЗОПАСНОСТЬ РФ В СИСТЕМЕ МИРОХОЗЯЙСТВЕННЫХ СВЯЗЕЙ
19. доц Плеханов Вадим Викторович Центральным для МЧП являются коллизии
20. Руководство по психологической работе в Вооруженных Силах РФ