Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/25: Рейтинг темы: голосов - 25, средняя оценка - 4.68
0 / 0 / 2
Регистрация: 12.10.2017
Сообщений: 50
GraphABC

Мишень

10.11.2017, 09:32. Показов 4678. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Друзья, привет.
Нужно составить программу, решающую следующую задачу. В квадратном графическом окне высота и ширина, которого задаются одной константой, нарисуйте мишень, занимающую всю высоту и ширину графического окна. Эта мишень должна состоять из четырех кругов различных цветов (от края к центру: красный, синий, желтый, зеленый). Центры всех этих кругов совпадают, а радиусы различны. По мишени производят выстрел. След от выстрела на мишени отображается белым кругом (см. рисунок). С помощью датчика случайных чисел в программе определяется целочисленное значение от 0 до 100. Если случайное значение оказалось в диапазоне от 0 до 24, то белый круг отображается в красной зоне, слева от центра мишени, а центр белого круга по вертикали совпадает с центром мишени по вертикали. Если случайное значение оказалось в диапазоне от 25 до 49, то белый круг отображается в синей зоне, слева от центра мишени, а центр белого круга по вертикали совпадает с центром мишени по вертикали. Если случайное значение оказалось в диапазоне от 50 до 74, то белый круг отображается в желтой зоне, слева от центра мишени, а центр белого круга по вертикали совпадает с центром мишени по вертикали. И, наконец, если случайное значение оказалось в диапазоне от 75 до 99, то белый круг отображается в зеленой зоне, а центр белого круга совпадает с центром мишени, как по вертикали, так и по горизонтали. Все координаты центров кругов и их радиусы в программе должны задаваться в частях ширины (высоты) графического окна. Графическое окно должно появляться в центре экрана и иметь заголовок «Мишень».
Миниатюры
Мишень  
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.11.2017, 09:32
Ответы с готовыми решениями:

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

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

В тире нужно попасть в мишень ограниченную линиями
Всем доброго времени суток! Помогите, пожалуйста, решить задачу: В тире надо попасть в квадратную мишень, ограниченную линиями ...

12
0 / 0 / 2
Регистрация: 12.10.2017
Сообщений: 50
10.11.2017, 09:57  [ТС]
У самого получилось так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
Program Mishen;
Uses GraphABC;
Const
   S = 500;
    xc = windowwidth div 2;
    yc = windowheight div 2;
    r = windowwidth;
Var T:Integer;
Begin
SetWindowSize(S, S);
centerwindow;
setwindowcaption('Мишень');
Writeln('Введите число от 0 до 100 ');
   Readln(T);
Writeln('Вы ввели: ', T);
SetPenColor(clRed);
SetBrushColor(clRed);
Circle(xc,yc,r div 2);
SetPenColor(clBlue);
SetBrushColor(clBlue);
Circle(xc,yc, (r div 8 + r div 4));
SetPenColor(clYellow);
SetBrushColor(clYellow);
Circle(xc,yc,r div 4);
SetPenColor(clGreen);
SetBrushColor(clGreen);
Circle(xc,yc,r div 8);
  If (T >= 0)and (T <= 24) Then
  begin
  SetPenColor(clWhite);
  SetBrushColor(clWhite);
  Circle(r div 16,yc,r div 16);
  end  
      Else
      If (T >= 25) and (T <= 49) Then
      begin
      SetPenColor(clWhite);
      SetBrushColor(clWhite);
      Circle(3*(r div 16),yc,r div 16);
      end      
        Else
        If (T >= 50) and (T <= 74) Then
        begin
        SetPenColor(clWhite);
        SetBrushColor(clWhite);
        Circle(5*(r div 16),yc,r div 16);
        end 
            Else
            If (T >= 75) and (T <= 100) Then
            begin
            SetPenColor(clWhite);
            SetBrushColor(clWhite);
            Circle(xc,yc,r div 16);
            end 
End.
Добавлено через 23 минуты
А если учесть это:
Цитата Сообщение от AndreykaD Посмотреть сообщение
С помощью датчика случайных чисел в программе определяется
то так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Program Mishen;
Uses GraphABC;
Const
   S = 500;
    xc = windowwidth div 2;
    yc = windowheight div 2;
    r = windowwidth;
Var T:Integer;
Begin
SetWindowSize(S, S);
centerwindow;
setwindowcaption('Мишень');
SetPenColor(clRed);
SetBrushColor(clRed);
Circle(xc,yc,r div 2);
SetPenColor(clBlue);
SetBrushColor(clBlue);
Circle(xc,yc, (r div 8 + r div 4));
SetPenColor(clYellow);
SetBrushColor(clYellow);
Circle(xc,yc,r div 4);
SetPenColor(clGreen);
SetBrushColor(clGreen);
Circle(xc,yc,r div 8);
T:= Random(0,100);
  If (T >= 0)and (T <= 24) Then
  begin
  SetPenColor(clWhite);
  SetBrushColor(clWhite);
  Circle(r div 16,yc,r div 16);
  end
      Else
      If (T >= 25) and (T <= 49) Then
      begin
      SetPenColor(clWhite);
      SetBrushColor(clWhite);
      Circle(3*(r div 16),yc,r div 16);
      end      
        Else
        If (T >= 50) and (T <= 74) Then
        begin
        SetPenColor(clWhite);
        SetBrushColor(clWhite);
        Circle(5*(r div 16),yc,r div 16);
        end 
            Else
            If (T >= 75) and (T <= 100) Then
            begin
            SetPenColor(clWhite);
            SetBrushColor(clWhite);
            Circle(xc,yc,r div 16);
            end 
End.
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
10.11.2017, 16:21
Лучший ответ Сообщение было отмечено ZX Spectrum-128 как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Program Mishen;
Uses GraphABC;
Const
    S = 500;
    xc = windowwidth div 2;
    yc = windowheight div 2;
Var r,t:Integer;
Begin
SetWindowSize(S, S);
centerwindow;
setwindowcaption('Мишень');
SetPenColor(clRed);
SetBrushColor(clRed);
Circle(xc,yc,S div 2);
SetPenColor(clBlue);
SetBrushColor(clBlue);
Circle(xc,yc, 3*S div 8);
SetPenColor(clYellow);
SetBrushColor(clYellow);
Circle(xc,yc,S div 4);
SetPenColor(clGreen);
SetBrushColor(clGreen);
Circle(xc,yc,S div 8);
randomize;//чтобы каждый раз выпадало разное число
T:= Random(0,100);
SetPenColor(clWhite);
SetBrushColor(clWhite);
case T of
0..24: Circle(S div 16,yc,S div 16);
25..49:Circle(3*(S div 16),yc,S div 16);
50..74:Circle(5*(S div 16),yc,S div 16);
75..100: Circle(xc,yc,S div 16);
end
End.
0
0 / 0 / 2
Регистрация: 12.10.2017
Сообщений: 50
13.11.2017, 09:14  [ТС]
оператор case не изучали...
строки с 28 по 32 не понятны
в строке 7 t - строчная
в строке 28 T - заглавная
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
13.11.2017, 09:51
Цитата Сообщение от AndreykaD Посмотреть сообщение
оператор case не изучали...
Изучи дорогой, это 5 минут.
Цитата Сообщение от AndreykaD Посмотреть сообщение
в строке 7 t - строчная
в строке 28 T - заглавная
Это роли в Паскале не играет, не нравится, сделай одинаково.
Цитата Сообщение от AndreykaD Посмотреть сообщение
строки с 28 по 32 не понятны
то же что у тебя if then else с 26 строки и до конца, только короче.
0
0 / 0 / 2
Регистрация: 12.10.2017
Сообщений: 50
13.11.2017, 10:50  [ТС]
переменная r - нигде не используется, строка 7
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
13.11.2017, 10:52
Это наследство твоего кода, убери. Ты что совсем тупой?
0
0 / 0 / 2
Регистрация: 12.10.2017
Сообщений: 50
13.11.2017, 11:10  [ТС]
Цитата Сообщение от Puporev Посмотреть сообщение
Ты что совсем тупой?
Хамство и грубость разрешены только модераторам?

Добавлено через 45 секунд
И если отмечаете код программы как ОТВЕТ - следите сами за ошибками в нем...
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
13.11.2017, 11:19
Цитата Сообщение от AndreykaD Посмотреть сообщение
Хамство и грубость разрешены только модераторам?
Это просто вопрос о Ваших умственных способностях. Я например туповат.
Цитата Сообщение от AndreykaD Посмотреть сообщение
если отмечаете код программы как ОТВЕТ
Я никогда не отмечаю свои ответы.

Добавлено через 2 минуты
Цитата Сообщение от Puporev Посмотреть сообщение
Я никогда не отмечаю свои ответы.
Кстати такой опции и нет чтобы отметить свой ответ, глазки слегка открой.
0
0 / 0 / 2
Регистрация: 12.10.2017
Сообщений: 50
13.11.2017, 11:20  [ТС]
Цитата Сообщение от Puporev Посмотреть сообщение
Я никогда не отмечаю свои ответы.
смотрите как отмечено...
Миниатюры
Мишень  
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
13.11.2017, 11:23
И вы думаете что в разделе всего 1 модератор? Вот попробуйте отметить свой ответ. Не получается, у меня тоже.
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
13.11.2017, 11:31
Цитата Сообщение от AndreykaD Посмотреть сообщение
переменная r - нигде не используется, строка 7
Это не ошибка, а предупреждение…
Ошибка, это когда программа не компилируется!
P.S. А программу можно подсократить (в т.ч. и в расчётах ;–)
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Uses GraphABC;
const s = 500;
begin
  Randomize;
  Window.Caption := 'Мишень';
  Window.SetSize(s,s);
  SetCoordinateOrigin(s div 2,s div 2);
  SetPenStyle(psClear);
  var r := s div 8;
  SetBrushColor(clRed   );Circle(0,0,r*4);
  SetBrushColor(clBlue  );Circle(0,0,r*3);
  SetBrushColor(clYellow);Circle(0,0,r*2);
  SetBrushColor(clGreen );Circle(0,0,r  );
  SetBrushColor(clWhite );
  r := r div 2;
  case Random(100) of
     0..24 : Circle(-r*7,0,r);
    25..49 : Circle(-r*5,0,r);
    50..74 : Circle(-r*3,0,r);
    75..100: Circle(   0,0,r);
  end;
end.
1
0 / 0 / 2
Регистрация: 12.10.2017
Сообщений: 50
13.11.2017, 11:47  [ТС]
JuriiMW, спасибо,
только начал изучать и пишу теми операторами которые прошли
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.11.2017, 11:47
Помогаю со студенческими работами здесь

Определить, сколько очков выбил спортсмен, если мишень представляет собой концентрические окружности
Даны координаты точек попадания в мишень: Y|13|-20|25|-30|50|111|35|26|-67|-98|53|41|-75 X|7|-20|40|28|43|90|59|-18|39|-93|33|-38|23...

Дана "мишень" в виде закрашенной области. Создать алгоритм для определения попадания точки с координатами (х,у) в мишень
Здравствуйте, форумчане. Помогите немного пожалуйста, а то программа ошибку выдает, а я что то не вкуриваю в чем проблема то... Дана...

Мишень
На форме есть два таймера Первый контролирует время игры 10с. Второй таймер выводит картинку в случайных местах экрана: procedure...

Мишень С++
Здравствуйте, помогите пожалуйста, вылетело из головы как сделать мишень в С++.

Мишень
Дана «мишень» в виде закрашенной области, изображенной на рисунке. Создать алгоритм для определения попадания точки с координатами (x, y) в...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в конфигурации КА2. Данные берутся из регистра сведений, по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru