Войти

Показать полную графическую версию : [решено] Помогите решить. VBA


zena
18-12-2010, 16:16
Понимаю...задачи очень простые, но я даже основ не знаю, а препод сказал чтобы всё составили к понидельнику. Помогие плз...

Условие:
1)17 вариант:
http://www.fotohost.by/pic_b/10/12/18/199d14614bb89153918c11582d7d6b58.jpg
2) Определить является ли введённое число чётным-нечётным, положительным-отрицательным.

Нужно решить с обработкой ошибок и диалоговами окнами.

lxa85
18-12-2010, 17:16
zena, учи основы. Для этого найди в интернете книгу по VBA. Помочь с выбором может тема Теория - Книги по программированию для начинающего (http://forum.oszone.net/showthread.php?t=160548&page=all)

zena
18-12-2010, 17:37
ну основы (и не только) конечно придётся учить...а вот пока время нету....не могу врубится в Basic пока...в голове сидит только паскаль:(((
Второе задание вроде как получилось, а вот с первым ну не как:(

lxa85
18-12-2010, 18:04
zena, на паскале можешь программу написать? Напиши ее код здесь, а те кто дружит с VBA и видя что решение то в принципе готово, помогут перевести его на требуемый.
С этим здесь проблем нет.

zena
18-12-2010, 19:26
На паскале...да запросто:
Program pr;
var
a,b,c,d: integer;
y:real;
begin
Writeln('Введи значение a');
Readln(a);
Writeln('Введи значение b');
Readln(b);
Writeln('Введи значение c');
Readln(c);
Writeln('Введи значение d');
Readln(d);
y:=sqrt(abs(3*a*a-b))-sqr((c-d))*(c-d);
writeln(y);
end.

zena
19-12-2010, 09:05
мде...негусто помощи пришло((((

Medic84
19-12-2010, 20:15
Ну как то так...
Module Module1

Sub Main()
Dim a, b, c, d As Integer
Dim y As Long
a = InputBox("Введи значение a", "Введите значение")
b = InputBox("Введи значение b", "Введите значение")
c = InputBox("Введи значение c", "Введите значение")
d = InputBox("Введи значение d", "Введите значение")
y = System.Math.Sqrt(System.Math.Abs(3 * a * a - b)) - System.Math.Pow((c - d), 3)
MsgBox("Ваше значение" & Chr(13) & Chr(10) & y)

End Sub

End Module
Писал в Visual Studio 2010 -> Консольное приложение

zena
19-12-2010, 22:34
Выдаёт ошибку:
Compile error:
Method or data member not found
Вот здесь:
y = System.Math.Sqrt(System.Math.Abs(3 * a * a - b))

Medic84
19-12-2010, 22:47
Вы скажите - какая у Вас программа, я скажу - что делать

zena
19-12-2010, 22:49
Microsoft Word (2007)

Medic84
19-12-2010, 23:08
Моя плохая... Это же VBA)))
Dim a, b, c, d As Integer
Dim y As Long
Sub Main()
a = InputBox("Введи значение a", "Введите значение")
b = InputBox("Введи значение b", "Введите значение")
c = InputBox("Введи значение c", "Введите значение")
d = InputBox("Введи значение d", "Введите значение")
y = (Abs(3 * a * a - b)) ^ (1 / 2) - (c - d) ^ 3
MsgBox("Ваше значение" & Chr(13) & Chr(10) & y)

End Sub


Насчет 2. Задам наводящие вопросы.
Как проверить четность - нечетность?
Нечетное - это если при делении на 2 есть остаток. (это операция MOD)

Как проверить положительность - отрицательность?
Если чиcло > 0 - положительное
Менньше - отрицательное
(If Then Else)

zena
20-12-2010, 08:09
ага....спасибо большое...а как устроить вывод ответа с точностью , например, 7 цифр после запятой???

Medic84
20-12-2010, 10:39
Вместо Long напишите Double

Dim a, b, c, d As Integer
Dim y As Double
Dim param As String
Dim param2 As String
Sub Main()
a = InputBox("Введи значение a", "Введите значение")
b = InputBox("Введи значение b", "Введите значение")
c = InputBox("Введи значение c", "Введите значение")
d = InputBox("Введи значение d", "Введите значение")
y = (Abs(3 * a * a - b)) ^ (1 / 2) - (c - d) ^ 3
If y < 0 Then param = "Отрицательное" Else: param = "Положительное"
If y Mod 2 <> 0 Then param2 = "Нечетное" Else: param2 = "Четное"
MsgBox ("Ваше значение" & Chr(13) & Chr(10) & y & " " & param & " " & param2)

End Sub


А вот уже как это число преобразовать я не помню




© OSzone.net 2001-2012