2 / 2 / 3
Регистрация: 15.11.2014
Сообщений: 187
1

Цикл с параметром: решить функцию

13.01.2015, 22:18. Показов 1519. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Делаю лабораторную, тема "Цикл с параметром". Необходимо решить функцию y = f(x) с х нач и х кон.
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Dim n, a, z As Integer
        Dim x, y, xn, xk As Decimal
 
        z = 1
        xn = 1
        xk = 2
        n = 10
        a = 1.1
        x = xn
 
 
 
        For x = xn To n
            x = x + (xk - xn) / n
            y = Exp(x + 1.7 * a)
 
 
            Label1.Text = Label1.Text + "Шаг:" + CStr(z) + "    Значение фукции: " + CStr(Round(y, 5)) + vbCrLf
            z = z + 1
 
        Next
На выходе получаю не те данные (как мне кажица ). Во первых всего 9 шагов а не 10, и данные не правильные, ибо сделана она и с циклом с предусловием, циклом с постусловием, там у обоих данные одинаковые.
Подскажите пожалуйста в чем проблема.
Миниатюры
Цикл с параметром: решить функцию  
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.01.2015, 22:18
Ответы с готовыми решениями:

Решить 2 способами: используя цикл с параметром и goto
Есть некоторая зависимость у(х). Х . Задача: вывести для каждого х соответствующий у. Х с шагом...

Создать программу по всем 3 видам циклов...цикл с параметром,цикл с условием,цикл,и цикл с предусловием...
Найти сумму чисел 1 в квадрате до 10 c квадрате...операцию возведению в степень не использовать...

Цикл с предусловием, цикл с постусловием и цикл с параметром
Объясните пожалуйста как делать эти циклы. У меня не получается. Можете сделать как на фото, или на...

Написать в турбо паскале, Цикл с параметром, Цикл, с постусловием, и с предусловием пожалуйста

10
2 / 2 / 3
Регистрация: 15.11.2014
Сообщений: 187
13.01.2015, 22:42  [ТС] 2
"x = x + (xk - xn) / n " это тот х который меняется с xn до xk . При использование Step программа виснет
Необходимо решить уравнение https://www.cyberforum.ru/cgi-bin/latex.cgi?y = {e}^{x + 1.7a} на отрезке x нач = 1 и x кон =2 с интервалом 10
0
2 / 2 / 2
Регистрация: 22.04.2014
Сообщений: 18
14.01.2015, 08:15 3
чтобы 10 шагов было цикл должен начинаться с 0 т.е. xn = 0
0
1708 / 1196 / 227
Регистрация: 23.12.2010
Сообщений: 1,526
14.01.2015, 10:23 4
Цитата Сообщение от foxkid Посмотреть сообщение
чтобы 10 шагов было цикл должен начинаться с 0 т.е. xn = 0
ну тогда n должно быть равным 9. А имеем цикл от 1 до 10.
Дело в следующем: после шага 9 значение x = 9,9. И потом при заходе на шаг 10 x становится равным 10,9, что вызывает прерывание цикла.
Вот смотри:
VB.NET
1
Label1.Text = Label1.Text & "Шаг:" & CStr(z) & "    Значение фукции: " & CStr(Math.Round(y, 5)) & " при х =" & x & vbCrLf
Шаг:1 Значение фукции: 16,44465 при х =1,1
Шаг:2 Значение фукции: 49,40245 при х =2,2
Шаг:3 Значение фукции: 148,41316 при х =3,3
Шаг:4 Значение фукции: 445,85777 при х =4,4
Шаг:5 Значение фукции: 1339,43076 при х =5,5
Шаг:6 Значение фукции: 4023,87239 при х =6,6
Шаг:7 Значение фукции: 12088,38073 при х =7,7
Шаг:8 Значение фукции: 36315,50267 при х =8,8
Шаг:9 Значение фукции: 109097,79928 при х =9,9
А так:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
'Необходимо решить уравнение  y = e^(x + 1.7a) на отрезке x нач = 1 и x кон =2 с интервалом 10.
 'КАК может быть интервал 10 между 1 и 2 ?????????????????
'Может имелось в виду интервал между 1 и 2 поделен на 10 участков? Тогда (включая и крайние точки):
Dim s, x, a, y As Single
s = 0.1
a = 1.1
Label1.Text = String.Empty
For x = 1 To 2 + s Step s
    y = Math.Exp(x + 1.7 * a)
    Label1.Text = Label1.Text & "y=" & CStr(Math.Round(y, 5)) & " при х =" & x & vbCrLf
Next
My.Computer.Clipboard.SetText(Label1.Text) ' это чтоб на форум результаты взять :)
y=17,63702 при х =1
y=19,49192 при х =1,1
y=21,5419 при х =1,2
y=23,80749 при х =1,3
y=26,31134 при х =1,4
y=29,07853 при х =1,5
y=32,13675 при х =1,6
y=35,5166 при х =1,7
y=39,25191 при х =1,8
y=43,38008 при х =1,9
y=47,9424 при х =2
если последний шаг (при х=2) не нужен, в коде замени ...To 2+s... на ...To 2...

Добавлено через 7 минут
Давай-ка засвети оригинальный текст задания лабы
0
2 / 2 / 3
Регистрация: 15.11.2014
Сообщений: 187
14.01.2015, 13:18  [ТС] 5
Цитата Сообщение от foxkid Посмотреть сообщение
чтобы 10 шагов было цикл должен начинаться с 0 т.е. xn = 0
xn это Хначальное которое по условию должно равняться 1 а не 0.

блин у меня вообще все не правильно
VB.NET
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
[BImports System.Math
 
Public Class Form1
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 
        Dim n, a, z As Integer
        Dim x, y, xn, xk As Decimal
 
        z = 1
        xn = 1
        xk = 2
        n = 10
        a = 1.1
        x = xn
 
        Do While x < xk
 
 
            x = x + (xk - xn) / n
 
 
            y = Exp(x + 1.7 * a)
            Label1.Text = Label1.Text + "Шаг:" + CStr(z) + "    Значение фукции: " + CStr(Round(y, 5)) + vbCrLf
            z = z + 1
        Loop
 
 
 
    End Sub
 
 
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim n, a, z As Integer
        Dim x, y, xn, xk As Decimal
 
        z = 1
        xn = 1
        xk = 2
        n = 10
        a = 1.1
        x = xn
        Do
 
 
            x = x + (xk - xn) / n
 
 
            y = Exp(x + 1.7 * a)
            Label1.Text = Label1.Text + "Шаг:" + CStr(z) + "    Значение фукции: " + CStr(Round(y, 5)) + vbCrLf
            z = z + 1
        Loop While x < xk
 
 
 
    End Sub
 
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Dim n, a, z As Integer
        Dim x, y, xn, xk As Decimal
 
        z = 1
        xn = 1
        xk = 2
        n = 10
        a = 1.1
        x = xn
 
 
 
        For x = xn To n
            x = x + (xk - xn) / n
            y = Exp(x + 1.7 * a)
 
 
            Label1.Text = Label1.Text + "Шаг:" + CStr(z) + "    Значение фукции: " + CStr(Round(y, 5)) + vbCrLf
            z = z + 1
 
        Next
 
    End Sub
End Class
[/B]
Добавлено через 35 минут
Вычислите и выведите на экран значения функции y = f(x) в точках x0=xнач, x1=x0+h, x2=x1+h, … xN = xкон, где h =(xкон – xнач)/N. (Иными словами: затабулируйте функцию y = f(x) на отрезке [xнач ; xкон ] с шагом h.) Функция y = f(x) зависит от параметра a.
0
1708 / 1196 / 227
Регистрация: 23.12.2010
Сообщений: 1,526
14.01.2015, 13:29 6
Ну что тебе надо-то?
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Dim x, y, x_start, x_end, a As Single
        Dim count As Integer
        Dim sn As Integer
 
        x_start = 1 ' начало отрезка
        x_end = 2 ' конец отрезка
        count = 10 ' количество разбиений
        a = 1.1
        sn = 1 ' это чтоб шаги считать
        Label1.Text = String.Empty
        For x = x_start To x_end + (x_end - x_start) / count Step (x_end - x_start) / count
            y = Math.Exp(x + 1.7 * a)
            Label1.Text = Label1.Text & "Шаг" & sn & ". y=" & CStr(Math.Round(y, 5)) & " (при х =" & x & ")" & vbCrLf
            sn = sn + 1
        Next
Шаг1. y=17,63702 (при х =1)
Шаг2. y=19,49192 (при х =1,1)
Шаг3. y=21,5419 (при х =1,2)
Шаг4. y=23,80749 (при х =1,3)
Шаг5. y=26,31134 (при х =1,4)
Шаг6. y=29,07853 (при х =1,5)
Шаг7. y=32,13675 (при х =1,6)
Шаг8. y=35,5166 (при х =1,7)
Шаг9. y=39,25191 (при х =1,8)
Шаг10. y=43,38008 (при х =1,9)
Шаг11. y=47,9424 (при х =2)
Добавлено через 4 минуты
Цитата Сообщение от desant Посмотреть сообщение
Вычислите и выведите на экран значения функции y = f(x) в точках x0=xнач, x1=x0+h, x2=x1+h, … xN = xкон, где h =(xкон – xнач)/N. (Иными словами: затабулируйте функцию y = f(x) на отрезке [xнач ; xкон ] с шагом h.) Функция y = f(x) зависит от параметра a.
Ну и в чем проблема? Смотри мой последний код
1
2 / 2 / 3
Регистрация: 15.11.2014
Сообщений: 187
14.01.2015, 13:31  [ТС] 7
Цитата Сообщение от Юпатов Дмитрий Посмотреть сообщение
Ну что тебе надо-то?
Как раз цикл с параметром у вас правильный, просто я ошибся с вводом данных (из за не знания ) но похоже я так понял я не знаю цикл с предусловием, цикл с постусловием ))
0
1708 / 1196 / 227
Регистрация: 23.12.2010
Сообщений: 1,526
14.01.2015, 13:40 8
Лучший ответ Сообщение было отмечено desant как решение

Решение

постусловие
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
        Dim x, y, x_start, x_end, a As Single
        Dim count As Integer
        Dim sn As Integer
 
        x_start = 1 ' начало отрезка
        x_end = 2 ' конец отрезка
        count = 10 ' количество разбиений
        a = 1.1
        sn = 1 ' это чтоб шаги считать
        Label1.Text = String.Empty
        x = x_start
        Do
            y = Math.Exp(x + 1.7 * a)
            Label1.Text = Label1.Text & "Шаг" & sn & ". y=" & CStr(Math.Round(y, 5)) & " (при х =" & x & ")" & vbCrLf
            sn = sn + 1
            x = x + (x_end - x_start) / count
        Loop Until x > (x_end + (x_end - x_start) / count)
предусловие
вариант 1 - описан ранее при помощи for...next
вариант 2
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
        Dim x, y, x_start, x_end, a As Single
        Dim count As Integer
        Dim sn As Integer
 
        x_start = 1 ' начало отрезка
        x_end = 2 ' конец отрезка
        count = 10 ' количество разбиений
        a = 1.1
        sn = 1 ' это чтоб шаги считать
        Label1.Text = String.Empty
        x = x_start
        Do Until x > (x_end + (x_end - x_start) / count)
            y = Math.Exp(x + 1.7 * a)
            Label1.Text = Label1.Text & "Шаг" & sn & ". y=" & CStr(Math.Round(y, 5)) & " (при х =" & x & ")" & vbCrLf
            sn = sn + 1
            x = x + (x_end - x_start) / count
        Loop
1
2 / 2 / 3
Регистрация: 15.11.2014
Сообщений: 187
14.01.2015, 13:53  [ТС] 9
Добавлено через 6 минут
Юпатов Дмитрий, СПС, все понятно
0
1708 / 1196 / 227
Регистрация: 23.12.2010
Сообщений: 1,526
14.01.2015, 14:07 10
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Dim x, y, x_start, x_end, a As Single
        Dim count As Integer
        Dim sn As Integer
        x_start = 1 ' начало отрезка
        x_end = 2 ' конец отрезка
        count = 10 ' количество разбиений
        a = 1.1
        sn = 1 ' это чтоб шаги считать
        Label1.Text = String.Empty
        x = x_start
        Do While x < x_end + (x_end - x_start) / count
            y = Math.Exp(x + 1.7 * a)
            Label1.Text = Label1.Text & "Шаг" & sn & ". y=" & CStr(Math.Round(y, 5)) & " (при х =" & x & ")" & vbCrLf
            sn = sn + 1
            x = x + (x_end - x_start) / count
        Loop
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Dim x, y, x_start, x_end, a As Single
        Dim count As Integer
        Dim sn As Integer
        x_start = 1 ' начало отрезка
        x_end = 2 ' конец отрезка
        count = 10 ' количество разбиений
        a = 1.1
        sn = 1 ' это чтоб шаги считать
        Label1.Text = String.Empty
        x = x_start
        Do
            y = Math.Exp(x + 1.7 * a)
            Label1.Text = Label1.Text & "Шаг" & sn & ". y=" & CStr(Math.Round(y, 5)) & " (при х =" & x & ")" & vbCrLf
            sn = sn + 1
            x = x + (x_end - x_start) / count
        Loop While x < x_end + (x_end - x_start) / count
А почему у препода вычисление У за циклом?
0
2 / 2 / 3
Регистрация: 15.11.2014
Сообщений: 187
14.01.2015, 14:08  [ТС] 11
Юпатов Дмитрий, Вы это у меня спрашиваете, был бы нормальный препод, я бы на форум бы не заходил )))
0
14.01.2015, 14:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.01.2015, 14:08
Помогаю со студенческими работами здесь

Задание на цикл с параметром и цикл с постусловием
Помогите пожалуйста написать программу с этими циклами. 1. Вычислить и напечатать таблицу...

Цикл с предусловием преобразовать в цикл с параметром
Необходимо переделать цикл с предусловием в цикл с параметром, но я не понимаю как Задание:...

Цикл с параметром и цикл с условием
1. Составить программу вычисления суммы первых 10 непарных чисел 2. Дано числовой ряд и...

Вычислить сумму ряда, используя цикл с параметром, используя цикл с предусловием
решить задачу двумя способами 1. используя цикл с параметром. 2 используя цикл с предусловием.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru