Страницы: 1
RSS
VBA Определить площадь части прямоугольника в первой четверти
 
Доброго времени.
Нужна помощ', гугл осмотрен, сделаны десяток попыток, но все равно не то(
Буду сил'но благодарен!
Заданы координаты вершин, нужно определит' площад' части прямоугол'ника в 1 четверти

Вот одна из моих последних попыток, однако все равно не то,, буду благодарен за помощ'.
Код
Sub Zadanie()
Dim x1, x2, x3, x4, y1, y2, y3, y4, z As Integer 'Задаем тип данных переменным
 
x1 = Val(InputBox("Введите x1")) 'Ввод значния переменной x1
y1 = Val(InputBox("Введите y1")) 'Ввод значния переменной y1
x2 = Val(InputBox("Введите x2")) 'Ввод значния переменной x2
y2 = Val(InputBox("Введите y2")) 'Ввод значния переменной y2
x3 = Val(InputBox("Введите x3")) 'Ввод значния переменной x3
y3 = Val(InputBox("Введите y3")) 'Ввод значния переменной y3
x4 = Val(InputBox("Введите x4")) 'Ввод значния переменной x4
y4 = Val(InputBox("Введите y4")) 'Ввод значния переменной y4

 
If ((x1 = x2) And (y1 = y4) And (y2 = y3) And (x3 = x4)) Then
If ((x1 > 0) And (y1 > 0) And (x2 > 0) And (y2 < 0) And (x3 < 0) And (y3 < 0) And (x4 < 0) And (y4 > 0)) Then z = x1 * y1
If ((x1 > 0) And (y1 > 0) And (x2 > 0) And (y2 > 0) And (x3 < 0) And (y3 < 0) And (x4 < 0) And (y4 > 0)) Then z = Abs((x1 * y1) - (x1 * y2))
If ((x1 > 0) And (y1 > 0) And (x2 > 0) And (y2 > 0) And (x3 > 0) And (y3 > 0) And (x4 > 0) And (y4 > 0)) Then z = Abs((x1 * y1) - (x4 * y4) - (x2 * y2) + (x3 * y3))


End If
MsgBox ("z = " & z)
End Sub
 
Axbanet, кажется даже название похоже... https://www.cyberforum.ru/pascal/thread271481.html
Изменено: Mershik - 04.04.2020 18:48:58
Не бойтесь совершенства. Вам его не достичь.
 
Цитата
Mershik написал:
https://www.cyberforum.ru/pascal/thread271481.html
Там не так, Вы попробуйте почитать и попробовать запустить, не робит, точней плохо
Изменено: Axbanet - 04.04.2020 19:49:28
 
Цитата
Axbanet написал:
ты попробуй почитать
Axbanet, у нас на форуме к незнакомым людям принято обращаться на Вы.  
 
Прошу прощения
Изменено: Axbanet - 04.04.2020 22:03:11
 
Так как форму по Excel, то:
Код
With Application.WorksheetFunction
    z = .Max(.Max(0, x1), .Max(0, x2), .Max(0, x3), .Max(0, x4)) * .Max(.Max(0, y1), .Max(0, y2), .Max(0, y3), .Max(0, y4))
End With
Изменено: БМВ - 04.04.2020 20:09:19
По вопросам из тем форума, личку не читаю.
 
Тезка, а кто сказал, что стороны прямоугольника параллельны координатным осям?  ;)
Соблюдение правил форума не освобождает от модераторского произвола
 
Да я думал об этом, но при таком вводе - кто сказал что там будет прямоугольник? :-)
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
Так как форму по Excel, то:
Если честно даже не понял что это, мне нужно на VBA в Excel
 
шнуровка Гауса находит площадь фигуры ограниченной замкнутой ломаной
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Я пробовал и уже сделал много попыток, но единственное что работает так это случай, когда точка x1,y1 находится в первой четверти
 
Axbanet, создаёте темы на нескольких форумах - информируйте об этом прямыми ссылками.
 
Юрий М, Юр, ты на календарь то давно смотрел? :-)
По вопросам из тем форума, личку не читаю.
 
Что не так?
 
на кибере тема 11го года :-). Я понимаю что для тебя время пролетело как один день, но …..  :D
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
на кибере тема 11го года
А у Димы сегодня )
 
тоды ой, я там редко бываю :-)
По вопросам из тем форума, личку не читаю.
 
За испуг саечка!
Страницы: 1
Наверх