Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Хочу разобраться с задачей / 13 сообщений из 13, страница 1 из 1
13.03.2015, 11:59
    #38903602
dikey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хочу разобраться с задачей
Задали решить нелинейное уравнение методом итераций в pascal и basic(+построить график)
Ln(x)-x+1.8 = 0 На отрезке [2;3]
Pascal решил дабы изучал его, а вот в visual basic не бум бум
Помогите пожалуйста привести Basic к нормальному виду(вывод) и как мне добавить вывести результат на графике(basic)
Решение мат методом
x = ln(x) + 1,8;
f ’(x) = (ln(x) + 1,8)’ = 1/x;
f ’(x) = 1/2 = 0,5;
f ’(x) = 1/3 = 0,3333333;
f ’(x) <1;
xo = 2;
x k F(x k+1 )2 2.4931471812.493147181 2.713545842.71354584 2.7982562082.798256208 2.828996442.82899644 2.8399220342.839922034 2.8437765992.843776599 2.8451329572.845132957 2.84560982.8456098 2.8457773862.845777386 2.8458362772.845836277 2.845856972.84585697 2.8458642422.845864242 2.8458667972.845866797 2.8458676952.845867695 2.8458680112.845868011 2.8458681212.845868121 2.845868162.84586816 2.8458681742.845868174 2.8458681792.845868179 2.845868181


Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
Паскаль
Program pr1;
var x0,x1,a,b,e:real; 
 iteraz:integer; 
function fun(x:real):real; 
 begin 
 fun:=ln(x)+1.8; 
 end; 
begin 
 write('Введите приближённое(1) значение X='); 
 readln(x1); 
 write('Введите точность(0.0001) e='); 
 readln(e); 
 iteraz:=0; 
 repeat 
 iteraz:=iteraz+1; 
 x0:=x1; 
write(x1:7:4); 
 x1:=fun(x0); 
write(x1:7:4); 
writeln; 
 until (abs(x1-x0)<=e); 
 writeln('Решение уравнения ln(x)+1.8=0:'); 
 writeln('Вычисленное значение корня…',x1:6:5); 
 writeln('Число итераций..…………....',iteraz); 
 readln; 
 end.


А вот то что получилось в Basic
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Private Sub Command1_Click()
Dim x0 As Double, x1 As Double, a As Double, b As Double, e As Double
Dim iteraz As Integer, s As String
x1 = Text3
e = Text4
iteraz = 0
Do
iteraz = iteraz + 1
x0 = x1
x1 = fun(x0)
s = s & "x(k) = " & x0 & vbTab & "F(x(k+1)) = " & x1 & vbCrLf
Loop Until (Abs(x1 - x0) <= e)
s = s & "&#208;&#229;&#248;&#229;&#237;&#232;&#229; &#243;&#240;&#224;&#226;&#237;&#229;&#237;&#232;&#255; ln(x)+1.8=0:" & vbCrLf
s = s & "&#194;&#251;&#247;&#232;&#241;&#235;&#229;&#237;&#237;&#238;&#229; &#231;&#237;&#224;&#247;&#229;&#237;&#232;&#229; &#234;&#238;&#240;&#237;&#255;…" & x1 & vbCrLf
s = s & "&#215;&#232;&#241;&#235;&#238; &#232;&#242;&#229;&#240;&#224;&#246;&#232;&#233;..…………...." & iteraz
Picture2.Print s
End Sub

Private Function fun(x As Double) As Double
fun = Log(x) + 1.8
End Function


...
Рейтинг: 0 / 0
13.03.2015, 12:10
    #38903619
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хочу разобраться с задачей
dikeyПомогите пожалуйста привести Basic к нормальному виду(вывод)В чем вопрос?
Сама программа правильно работает? (правильно считает?) Проблема только с отображением результатов?
Какой вид хотелось бы получить?

Что касается графика, тут различные варианты могут быть, но вы, по идее, ограничены рамками, которые вам преподавали (обрисуйте их).
...
Рейтинг: 0 / 0
13.03.2015, 12:22
    #38903642
dikey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хочу разобраться с задачей
Shocker.Pro,
Программа работает правильно. Хотелось бы вывод в виде таблицы результатов x(k) и F(x(k+1))
По счет графика, дело в том что преподаватель не коснулся графиков, поэтому я даже не знаю как ответить на ваш вопрос.
...
Рейтинг: 0 / 0
13.03.2015, 12:44
    #38903688
Казанский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хочу разобраться с задачей
Зачем один и тот же вопрос на разных форумах? http://www.cyberforum.ru/visual-basic/thread1393932.html
...
Рейтинг: 0 / 0
13.03.2015, 12:45
    #38903692
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хочу разобраться с задачей
dikeyХотелось бы вывод в виде таблицы результатов x(k) и F(x(k+1))Через Components добавьте в проект Microsoft FlexGrid
Добавьте на форму контрол MSFlexGrid
Задайте количество столбцов и строк через свойства Rows и Cols
Заполните ячейки нужными значениями через свойство TextMatrix
...
Рейтинг: 0 / 0
13.03.2015, 12:45
    #38903693
dikey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хочу разобраться с задачей
Исходник
...
Рейтинг: 0 / 0
13.03.2015, 12:47
    #38903697
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хочу разобраться с задачей
dikeyПо счет графика, дело в том что преподаватель не коснулся графиков, поэтому я даже не знаю как ответить на ваш вопрос.тогда рисуйте график с помощью Line прямо на форме или в PictureBox
...
Рейтинг: 0 / 0
13.03.2015, 13:47
    #38903833
43210
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хочу разобраться с задачей
dikey,

препод снизит оценку хотя бы за то, что в заголовке указано одно уравнение, а в распечатке решения - другое.
...
Рейтинг: 0 / 0
13.03.2015, 14:31
    #38903930
dikey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хочу разобраться с задачей
43210, Ln(x)-x+1.8 = 0 представим через x: x=Ln(x)+1.8
...
Рейтинг: 0 / 0
13.03.2015, 14:41
    #38903945
dikey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хочу разобраться с задачей
Можно про график как нибудь поподробнее
...
Рейтинг: 0 / 0
13.03.2015, 15:00
    #38903986
43210
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хочу разобраться с задачей
dikey43210, Ln(x)-x+1.8 = 0 представим через x: x=Ln(x)+1.8Я это прекрасно понимаю. В программе же 'Решение уравнения ln(x)+1.8=0:'. Минус балл за невнимательность.
...
Рейтинг: 0 / 0
13.03.2015, 15:08
    #38904004
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хочу разобраться с задачей
dikeyМожно про график как нибудь поподробнеенеужто в яндексе забанили? http://informatika-1332.ru/progr/progr_16.html
...
Рейтинг: 0 / 0
14.03.2015, 10:56
    #38904791
dikey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хочу разобраться с задачей
Еще вопрос
Для сохранения данных по кнопке в excel есть следующий код, задан диапазон и заголовки...
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Private Sub mnuFileSave_Click()
 Dim oExcel As Object
   Dim oBook As Object
   Dim oSheet As Object
   Set oBook = WorkBooks.Open("C:\Book1.xls")
   Set oSheet = oBook.Worksheets(1)
   oSheet.Range("A1:B1").Value = Array("x(k)", "F(x(k+1))")
   oSheet.Range("A2").Resize(100, 3).Value = x1
   oBook.SaveAs "C:\Book1.xls"
   oExcel.Quit
End Sub 


Как мне его применить к своей программе? чтобы результаты x0 и x1 сохранялись в excel в заданном диапазоне
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Хочу разобраться с задачей / 13 сообщений из 13, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]