Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
ChStudent
0 / 0 / 0
Регистрация: 13.01.2020
Сообщений: 5
1

Задача про мишень. Очень нужно

13.01.2020, 12:54. Просмотров 936. Ответов 8
Метки нет (Все метки)

Для десяти выстрелов, координаты которых задаются с клавиатуры, вывести текстовые сообщения о попадании в мишень, графическое представление которой дано на рисунке (использовать цикл Repeat):

Задача про мишень. Очень нужно


Не могу никак, при вводе целых чисел координат всё нормально, но вот с допустим с координатами X = -0.5; Y = 2 не получается, выдает "Не попал".

Заранее спасибо.
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.01.2020, 12:54
Ответы с готовыми решениями:

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

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

Составить закон распределения.(задача про мишень)
Составить закон распределения для числа попаданий в мишень при четырех выстрелах, если вероятность...

Задача про мишень и стрелка (построить ряд распределения и мат ожидание)
В мишени имеется один круг и два кольца. Стрелок попадает в центральный круг с вероятностью 0.2...

Задача про этажи и время. Очень надо, но не понятно(
Помогите пожалуйста написать код с++. Пользователь вводит номер этажа, а программа выводит время...

8
Puporev
Модератор
58877 / 44575 / 30766
Регистрация: 18.05.2008
Сообщений: 106,785
13.01.2020, 13:30 2
Цитата Сообщение от ChStudent Посмотреть сообщение
при вводе целых чисел координат всё нормально, но вот с допустим с координатами X = -0.5; Y = 2 не получается, выдает "Не попал".
Код покажите.
0
ChStudent
0 / 0 / 0
Регистрация: 13.01.2020
Сообщений: 5
13.01.2020, 13:43  [ТС] 3
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
program zadanie1;
uses crt;
var r,x,y:real;
  i:integer;
begin
  clrscr;
    repeat
      write('Введите радиус R=');
      readln(r);
    until r>0;
  for i:=1 to 10 do
  begin
     writeln('Введите координаты точки (X,Y)');
     readln(x,y);
     if (x*y<0) and (x+y>-R) and (x*x+y*y< R)
     then writeln('Попал') else writeln('Не попал')
     end;
  readln
end.
0
Puporev
Модератор
58877 / 44575 / 30766
Регистрация: 18.05.2008
Сообщений: 106,785
13.01.2020, 13:47 4
Лучший ответ Сообщение было отмечено ChStudent как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
uses crt;
var r,x,y:real;
    i:integer;
begin
clrscr;
repeat
write('Введите радиус R>0 R=');
readln(r);
until r>0;
for i:=1 to 10 do
 begin
  writeln('Введите координаты точки попадания');
  readln(x,y);
  if(abs(x)<=r)and(abs(y)<=r){в квадрате}
  and(sqr(x-r)+sqr(y+r)>=r*r){не в правой окружности}
  and(sqr(x+r)+sqr(y-r)>=r*r) {не в левой окружности}
  then writeln('Попал') else writeln('Не попал');
 end;
readln
end.
1
13.01.2020, 13:47
ChStudent
0 / 0 / 0
Регистрация: 13.01.2020
Сообщений: 5
13.01.2020, 13:52  [ТС] 5
Но это только часть которая находится на осях координат: -X; Y.
0
Puporev
Модератор
58877 / 44575 / 30766
Регистрация: 18.05.2008
Сообщений: 106,785
13.01.2020, 13:54 6
Какая еще часть? Это вся заштрихованная область.
0
ChStudent
0 / 0 / 0
Регистрация: 13.01.2020
Сообщений: 5
13.01.2020, 14:25  [ТС] 7
if (x*y<0) and (x+y>-R) and (x*x+y*y< R)
then writeln('Попал') else writeln('Не попал')

Вот так вся.

Но вопрос с тем, что он пишет "Не попал", при значения к примеру -0.2; 1 и наоборот, остается открытым.

Хотя я на бумаге нарисовал, должен попадать.
0
Puporev
Модератор
58877 / 44575 / 30766
Регистрация: 18.05.2008
Сообщений: 106,785
13.01.2020, 14:42 8
Цитата Сообщение от ChStudent Посмотреть сообщение
(x+y>-R)
Это что за глупость? У меня разве так?
Вот как рисуются все точки из заштрихованной области с точностью 0.1.
Радиус=5.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
x:=-r;
while x<=r do
 begin
  y:=-r;
  while y<=r do
   begin
    if(abs(x)<=r)and(abs(y)<=r)
    and(sqr(x-r)+sqr(y+r)>=r*r)
    and(sqr(x+r)+sqr(y-r)>=r*r) then setpixel(c+round(x*m),c-round(y*m),clBlue);
    y:=y+0.1;
   end;
  x:=x+0.1;
 end;
0
Миниатюры
Задача про мишень. Очень нужно  
ChStudent
0 / 0 / 0
Регистрация: 13.01.2020
Сообщений: 5
13.01.2020, 17:08  [ТС] 9
Извините какие-то глюки с загрузкой сообщений, я не видел Ваш код. Всё правильно, спасибо огромное.
0
13.01.2020, 17:08
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.01.2020, 17:08

Очень нужно сайт про школу, помогите кто чем сможет
Люди, мне плохо.... Очень нужно сайт про школу, помогите кто чем сможет Буду очень благодарен во...

Задача на Python. Очень нужно

Задача по гидравлике! Очень нужно!
Определить показание пьезометра Н, если известны: pм, h, ρ.


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.