Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] Помогите решить. VBA (http://forum.oszone.net/showthread.php?t=194333)

zena 18-12-2010 16:16 1568881

Помогите решить. VBA
 
Понимаю...задачи очень простые, но я даже основ не знаю, а препод сказал чтобы всё составили к понидельнику. Помогие плз...

Условие:
1)17 вариант:

2) Определить является ли введённое число чётным-нечётным, положительным-отрицательным.

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

lxa85 18-12-2010 17:16 1568907

zena, учи основы. Для этого найди в интернете книгу по VBA. Помочь с выбором может тема Теория - Книги по программированию для начинающего

zena 18-12-2010 17:37 1568920

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

lxa85 18-12-2010 18:04 1568939

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

zena 18-12-2010 19:26 1569007

На паскале...да запросто:
Код:

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 1569378

мде...негусто помощи пришло((((

Medic84 19-12-2010 20:15 1569802

Ну как то так...
Код:

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 1569947

Выдаёт ошибку:
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 1569956

Вы скажите - какая у Вас программа, я скажу - что делать

zena 19-12-2010 22:49 1569959

Microsoft Word (2007)

Medic84 19-12-2010 23:08 1569975

Моя плохая... Это же 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 1570127

ага....спасибо большое...а как устроить вывод ответа с точностью , например, 7 цифр после запятой???

Medic84 20-12-2010 10:39 1570232

Вместо 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

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


Время: 02:30.

Время: 02:30.
© OSzone.net 2001-