Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Задачи по циклам Добавлено: 20.05.06 18:55  

Автор вопроса:  GlooM | Web-сайт: newlc.info | ICQ: 348453688 
Задача 1.
Необходимо найти минимальное значеие фун-ии y=sin(x)*x на отрезке CD (задаем сами) с шагом 0.001.
Решаю так:
Option Explicit
Const pi=3.1415
Public Sub L3Ex5()
Dim x, Xn, Xk, y, c As Double
Dim str As Integer
Xn = InputBox("Xn")
Xk = InputBox("Xk")
str = 1
Debug.Print "Y"
Cells(1, 1) = "Y"
For x = Xn To Xk Step 0.001
c = x*pi/180
y = sin(c)*x
str = str + 1
Debug.Print y
Cells(str, 1) = y
Next x
End Sub

Вопрос, как определить минимальное?

2. Вычислить значния фун-ии, представленной в виде ряда:
y = 1 + x + x^2/2! + x^3/3! + ... + x^n/n!

Ответить

  Ответы Всего ответов: 3  

Номер ответа: 1
Автор ответа:
 GlooM



ICQ: 348453688 

Вопросов: 88
Ответов: 356
 Web-сайт: newlc.info
 Профиль | | #1
Добавлено: 20.05.06 20:09
Так..Первую я сделал следующим образом:
Option Explicit
Const pi = 3.14159265
Public Sub L3Ex3()
Dim x, Xn, Xk, y, c, b As Double
Dim str As Integer
Dim min As Double
Xn = InputBox("Xn";)
Xk = InputBox("Xk";)
str = 1
b = Xn * pi / 180
y = Sin(b) * Xn
min = y
For x = Xn To Xk Step 0.001
c = x * pi / 180
y = Sin(c) * x
str = str + 1
Debug.Print y
Cells(str - 1, 1) = y
If min > y Then min = y
Next x
Cells(1, 5) = "Min"
Cells(2, 5) = min
End Sub

Вроде все находит, а вот со второй что-то не получается...
Option Explicit
Public Sub L3Ex4()
Dim x As Double, y As Double
Dim F, i, n As Long
x = InputBox("x";)
n = InputBox("n";)
F = 1
For i = 1 To n
F = F * i
y = 1 + x ^ i / F
Next i
MsgBox y
End Sub

Когда ввожу х=3 и n=5, то все считает, а вот при х=2.5 - нет.. как сделать?! :)))
Заранее спасибо!

Ответить

Номер ответа: 2
Автор ответа:
 Nj



ICQ: 223663115 

Вопросов: 21
Ответов: 285
 Профиль | | #2 Добавлено: 21.05.06 01:54
1. Часом не это
Dim F As Long, i As Long, n As Long
задумывалось вместо
Dim F, i, n As Long
- в ВБ6 все отмечать надо.. Но это не относится к проблеме.

2. Формат цифр зависит от региональных настроек - короче, у меня например разделитель чисел - это запятая, ввожу 2,5 - проглатывает, 2.5 - несоответствие типов. (В коде проблем нет у х=2.5 т.к. ВБ Английский и у них точка все разделяет ) - Думается что от этого, так что предупреждай пользователя о корректности ввода или пользуй VAL(InputBox("x";)) - у меня работает.
тоже и с n.

3. Проверять лучше, если вдруг пользователь нажмет отмену на вводе, то получишь 0 в переменную, т.е. я бы сделал еще вот что
if x=0 then
msgbox "Bad Input"
exit sub
end if
в таком роде после ввода.

Ответить

Номер ответа: 3
Автор ответа:
 GlooM



ICQ: 348453688 

Вопросов: 88
Ответов: 356
 Web-сайт: newlc.info
 Профиль | | #3
Добавлено: 21.05.06 16:06
Dim F, i, n As Long

это не существенно в данной программе...
а так - спасибо!

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам