Модераторы: diadiavova, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с делегатами 
:(
    Опции темы
AndrewBarton
Дата 31.5.2015, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 5.5.2015

Репутация: нет
Всего: нет



Помогите , пожалуйста , поправить код для программы. 

Вычислить количество точек на графике функции, попадающих в квадрат с заданными координатами левого нижнего угла (c,d) и длиной стороны L.

Мне не нужно делать с помощью рисования. Как можно описать границы квадрата ? 

Код

Imports System.Math
Public Class Form1
    'Объявление делегата - типа
    Public Delegate Function Func(ByVal x As Double) As Integer
    'Объявление функций для построения таблиц
    Public Function f2(ByVal x As Double) As Double
        Return x
    End Function
    Dim MassPoints As List(Of Point)
    Dim rect As Rectangle
    Public Sub tablica(ByRef f As Func, ByVal a As Double, _
    ByVal b As Double, ByVal h As Double, _
    ByRef z As String, ByRef n As Integer)
        Dim x, y As Double
        Dim c, d, L As Integer
        c = CSng(InputBox("Введите координату X верхнего левого угла квадрата", "Ввод 1", 1))
        d = CSng(InputBox("Введите координату Y верхнего левого угла квадрата", "Ввод 2", 1))
        L = CSng(InputBox("Введите сторону квадрата", "Ввод 3", 1))
        Dim counter As Integer = 0
        Dim i As Integer
        z = ""
        n = L / h
        For i = 0 To n
            z = z + Format(x, "0.00") + Space(5) + Format(y, "0.00") + vbNewLine
            x = x + h
            n = n + 1
            rect = New Rectangle(c, d, L, L) 'Rectangle - Содержит набор из четырех целых чисел, определяющих расположение и размер прямоугольника
            MassPoints = New List(Of Point)
            For x = c To c + L
                If (rect.X < x) And (rect.Right > x) And (rect.Y > y) And (rect.Y - L < y) Then counter = counter + 1
            Next
        Next
        MsgBox(counter)
    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) _
    Handles Button1.Click
        Dim d As Double
        Dim c As Double
        Dim z As String = "" 'строка для вывода
        Dim n As Integer
        tablica(AddressOf f2, c, d, 1, z, n)
    End Sub
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        End
    End Sub
End Class

PM MAIL   Вверх
diadiavova
Дата 31.5.2015, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Цитата(AndrewBarton @  31.5.2015,  15:38 Найти цитируемый пост)
 Как можно описать границы квадрата ? 

В квадрат попадают все точки, у которых х попдает в интревал [c; c+L], а y попадает в интервал [d; d + L]. Просто напиши функцию, которая проверяет точку на попадание ее координат в  эти интервалы и все точки проверяй с ее помощью. Кроме того, с абсциссой все вообще просто, поскольку можно изначально для проверки брать только точки из интервала для х.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
AndrewBarton
Дата 2.6.2015, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 5.5.2015

Репутация: нет
Всего: нет



diadiavova, я не понимаю , как это сделать. Ничего не получается с этим заданием (
PM MAIL   Вверх
diadiavova
Дата 2.6.2015, 19:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Цитата(AndrewBarton @  2.6.2015,  16:00 Найти цитируемый пост)
я не понимаю , как это сделать

Проверяешь условие
Код

        If x >= c AndAlso x <= c + L AndAlso y >= d AndAlso y <= d + L Then

        End If
Все точки, которые пройдут, собирай, это и будет ответ. x и y  - координаты проверяемой точки.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума VB .NET
diadiavova
  • Прежде чем задать вопрос, воспользуйтесь поиском: возможно Ваш вопрос уже обсуждался и на него был получен ответ.
  • Если такой же вопрос не найден, не стоит задавать свой вопрос в любую тему, создайте новую.
  • Заголовок темы должен отображать ее суть.
  • Содержание поста должно описывать проблему понятно, но в то же время, по возможности, лаконично. Сначала следует описать суть вопроса, потом можно привести пример кода, не вынуждайте других участников угадывать в чем Ваша проблема - телепатов здесь нет.
  • Будьте взаимно вежливы и дружелюбны.
  • При оформлении сообщений используйте форматирование, примеры кода заключайте в теги [CODE=vbnet][/CODE].
  • Также ознакомьтесь с общими правилами, действующими на всем форуме.
  • Если вопрос решен, не забывайте помечать тему решенной(вверху темы есть ссылка). Кроме того, если Вы хотите отблагодарить участников, оказавших помощь в решении, можно повысить им репутацию, в случае, если у Вас менее 100 сообщений в форуме и функция изменения репутации Вам недоступна, можете написать сюда.
  • Общие вопросы по программированию на платформе .NET обсуждаются здесь.
  • Литература по VB .NET обсуждается здесь.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0712 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.