Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 16.01.2014
Сообщений: 49

Попадание в мишень и DataGrid

03.10.2015, 19:04. Показов 2192. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.
Задание:Для десяти выстрелов, координаты которых задаются с клавиатуры, вывести текстовые сообщения о попадании в мишень
У меня есть написанная программа, для попадания одного выстрела :
C#
1
2
3
4
5
6
7
8
9
10
11
12
                double a=15, b=10, r, x, y;
                r = Convert.ToDouble(textBox3.Text);
                x = Convert.ToDouble(textBox5.Text);
                y = Convert.ToDouble(textBox6.Text);
                if (x <= a && x >= 0 && y >= 0 && y <= b && x * x + y * y >= r * r ||
                    x <= 0 && y <= 0 && y >= -b && x * x + y * y <= r * r)
                {
 
                    textBox4.Text = "Точка (" + x.ToString() + " ; " + y.ToString() + ") Попадает";
                }
                else
                    textBox4.Text = "Точка (" + x.ToString() + " ; " + y.ToString() + ")  Не Попадает";
Как мне теперь её переделать для 10 выстрелов?Чтобы каждый раз вводить "x","y". А "R" один раз. Так же я хочу вывести результат в DataGrid. я так понимаю нужен цикл для 10 выстрелов. for (int i = 0; i < 10;i++ ) . Потом в DataGrid я сделал 3 столбца : "x","y", и попадание. Помогите пожалуйста с выводом в DataGrid и с циклом.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.10.2015, 19:04
Ответы с готовыми решениями:

Попадание снаряда в мишень
Добрый день! Проблема следующая: необходимо реализовать попадание снаряда(imagebox) в мишень(тоже imagebox). Размер мишени 50*50. ...

Попадание выстрелов в мишень: добавить в код десять попыток
Уважаемые товарищи программисты, я построил на консольке приложение, &quot;попасть в заштрихованную область&quot;(код ниже), наверное многие...

мишень
Построить программу, которая вводит координаты точки (x,y) и определяет, попадает ли точка в заштрихованную область на рисунке. Попадание...

3
 Аватар для ViterAlex
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
03.10.2015, 23:18
Лучший ответ Сообщение было отмечено rom4ikps как решение

Решение

Смотри вложение
Вложения
Тип файла: zip ShootingApplication.zip (18.9 Кб, 21 просмотров)
1
0 / 0 / 0
Регистрация: 16.01.2014
Сообщений: 49
04.10.2015, 00:04  [ТС]
ViterAlex ,Спасибо большое. Классная задумка с выбором числа,понравилось. Но честно говоря, для меня реализуемый метод данной задачи пока сложноватый чтобы разобраться. Я так понимаю ,что сделана программа с применением класса.Мы класс ещё не проходили.Поэтому я не понимаю как реализована данная программа,что вызовет трудности при объяснении преподавателю да и сам я не понимаю. Можно код сделать более проще? скажем для "новичка".
0
 Аватар для ViterAlex
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
04.10.2015, 05:29
Лучший ответ Сообщение было отмечено rom4ikps как решение

Решение

Если ты думаешь, что тебя смогут всему научить, то ты глубоко заблуждаешься. Без самообразования дальше HelloWorld ты не продвинешься. То, что вы классы ещё не проходили — лишний повод начать их проходить прямо сейчас
Создан класс с тремя свойствами и двумя полями и двумя константами:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class Shot {
    //Свойство X
    public double X { get; set; }
    //Свойство Y
    public double Y { get; set; }
    //Свойство GotIt. DisplayName используется, чтобы задать имя столбца в DataGridView.
    //Это не обязательно, можно задать его вручную, после привязки bindingSource к DataGridView
    [DisplayName("Результат")]
    public string GotIt { get { return gotIt ? "Попал!" : "Не попал!"; } }
    //Константы
    private const int a = 15, b = 10;
    //Поле
    private bool gotIt;
    //Поле
    private double R;
    //Конструктор
    public Shot(double x, double y, double r) {
        X = x; Y = y;
        R = r;
        gotIt = X <= a && X >= 0 && Y >= 0 && Y <= b && X * X + Y * Y >= R * R 
                || X <= 0 && Y <= 0 && Y >= -b && X * X + Y * Y <= R * R;
    }
}
При создании экземпляра класса в него передаются координаты выстрела и значение R. Полю gotIt присваивается результат выстрела (true — попал, false — не попал). Затем, используя это поле, возвращается соответствующая строка в свойстве GotIt.
На форму добавлен bindingSource, для которого в качестве DataSource указан источник данных на основе класса Shot. Это всё делается интерактивно. В свойствах bindingSource выбираешь DataSource→Add Project Data Source→Object→Твой класс.
После этого помещаем bindingSource в DataSource для DataGridView. На этом работа с привязкой данных закончена.
Теперь при нажатии на кнопку «Пли!» в bindingSource добавляется новый экземпляр класса Shot с соответствующими значениями:
C#
1
2
3
private void button1_Click(object sender, EventArgs e) {
    bindingSource1.Add(new Shot((double)numericUpDown1.Value, (double)numericUpDown2.Value, (double)numericUpDown3.Value));
}
За счёт привязки все изменения bindingSource отображаются в DataGridView.
Всё!

Не по теме:

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

1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.10.2015, 05:29
Помогаю со студенческими работами здесь

Мишень
Получил задание &quot;Мишень&quot; оно представляет из себя консольное приложение и в основе лежит условие если точка попадает в выделенную область...

Попадение в мишень
Для десяти выстрелов, координаты которых задаются с клавиатуры, вывести текстовые сообщения о попадании в мишень.Помогите...

Задача про мишень
Здравствуйте! Мне в колледже задали такую задачу по C#: В системе координат X, Y «нарисована» мишень на 10 кругов с центром в начале...

Определение попадений в мишень
В системе координат X, Y «нарисована» мишень на 10 кругов с центром в начале координат и шагом радиуса 10 единиц. Кругу с радиусом 10...

Вывести текстовые сообщения о попадании в мишень
Уважаемые программисты помогите мне пожалуйста с лабораторными работами. Я начинающая программистка учусь на первом курсе и нам...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru