Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
 Аватар для Vadimushka D
2 / 2 / 0
Регистрация: 06.09.2014
Сообщений: 51

Производится одиночный выстрел по мишени в виде круга. Вывести сообщение: «попал» или «не попал»

16.09.2014, 16:02. Показов 3730. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем здраствуйте, нам по Основам программирования задали вот такую задачку:
Code
1
2
3
4
5
6
Задача 13 балла
Производится одиночный выстрел по мишени в виде круга. Вывести сообщение: «попал» или «не попал».
Задача 24 балла
Производится одиночный выстрел по мишени в виде круга. Вывести сообщение: «мишень поражена», «попадание в габарит» или «попадание в молоко».
Задача 35 баллов
Производится одиночный выстрел по мишени в виде круга, разделенного на пять колец, с шагом в 1 сантиметр. За попадание в «яблочко» начисляется 10 баллов, за попадание в каждое очередное кольцо соответственно 8, 6, 4, 2, 1 балл. За попадание в «молоко» - 0 баллов. Определить количество баллов, набранных после выстрела.
и еще схему программы(это я так понимаю алгоритм(начало-конец в тетради)) Но я никак не пойму как реализовать задачи на c++!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.09.2014, 16:02
Ответы с готовыми решениями:

Попал/ не попал в область на графике
Записать логические выражения, используя условные операторы, операции отношений и логические операции алгоритмического языка. В общем...

попал кирпич в дырку или нет
Объясните как решить задачу Условие: Нам дан кирпич с тремя параметрами высота(a) ширина(b) длина(c) и дана дырка в стене с параметрами...

Попал под фильтр или баг Яндекса?
После вчерашнего апдейта Яндекса странная вещь случилась с моим сайтом. Упало как количество страниц в индексе, так и количество страниц...

7
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
16.09.2014, 16:43
Цитата Сообщение от Vadimushka D Посмотреть сообщение
Производится одиночный выстрел по мишени в виде круга.
Вот тут хотелось бы понять как и кем производится и как должна быть представлена мишень. Потому что можно просто выводить рандомно текст в консольке про кол-во попаданий, а можно ведь и полноценную игрушку сделать, где юзер будешь мышкой стрелять.
0
 Аватар для Vadimushka D
2 / 2 / 0
Регистрация: 06.09.2014
Сообщений: 51
16.09.2014, 17:15  [ТС]
вот забыл еще вставить
Code
1
3.  Протестировать работу программы при различных наборах данных для проверки работоспособности каждой ветви.
0
0 / 0 / 0
Регистрация: 15.09.2014
Сообщений: 3
16.09.2014, 17:29
Самый простой вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<iostream>
using namespace std;
 
int main(){
     setlocale( LC_ALL,"Russian" );
    float x,y;
 
    cout<<"Введите x : ";
    cin>>x;
    cout<<"Введите y: ";
    cin>>y;
    if(x*x+y*y<=1)// проверка попадания в окружность радиусом 1
    cout<<"Попал!!!\n";
    else cout<<"промах"<<endl;
    system("pause");}
0
 Аватар для Vadimushka D
2 / 2 / 0
Регистрация: 06.09.2014
Сообщений: 51
16.09.2014, 18:52  [ТС]
ну это я понял но это на 1-3 балла, но вот на 3 – 5 баллов, одногруппники говорят что мол там еще и рандомно надо

Добавлено через 1 час 17 минут
C++
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
#include <iostream>
#include <windows.h>
 
using namespace std;
 
int main() {
    system("chcp 1251->text");
 
    float x,y; //координаты точки попадания
    float r; //задаваемый радиус
     
    cout<<"Введите x: ";
    cin>>x;
        
        if(-10>=x>=10){
        cout<<"А вот и нет! Введите x в диапозоне от -10 до 10: ";
        cin>>x; 
        }
    
    cout<<"Введите y: ";
    cin>>y;
        
        if(-10>=y>=10){
        cout<<"А вот и нет! Введите y в диапозоне от -10 до 10: ";
        cin>>y; 
        }
    
    cout<<"Введите радиус мишени: ";
    cin>>r;
    
        if(r>=10){
        cout<<"А вот и нет! Введите r в диапозоне от 0 до 10: ";
        cin>>r;
        }
    
    
    if (x*x+y*y<=r*r) {
    cout << "Ты поразил мишень\n"; // выполняется, если х меньше нуля
    } else {
     cout << "Попал, но в молоко" << endl;
    }
    if (64<x*x+y*y<81) {
    cout << "И попал практически в центр\n"; // выполняется, если х больше либо равно нуля и меньше 30
    }
 
    
    system("pause");
 
    return 0;
}
В чем ошибка??
0
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
16.09.2014, 20:11
Vadimushka D, Как-то так
C++
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#include <iostream>
#include <cmath>
#include <cstdlib>
#include <string>
#include <ctime>
 
/*
                 0       
                 1
                 2
                 4
                 6
                 8
    0 1 2 4 6 8 10 8 6 4 2 1 0
                 8
                 6
                 4
                 2
                 1
                 0
*/
 
void manual(double& x, double& y)
{
    do
    {
        system("cls");
        std::cout << "Введите значения от -7.00 до 7.00:" << std::endl;
        std::cout << "\tx: "; std::cin >> x;
        std::cout << "\ty: "; std::cin >> y;
        if (fabs(x) <= 7.0 && fabs(y) <= 7.0) break;
    } while (true);
}
 
void automatic(double& x, double& y)
{
    //Случайные значения от -7.00 до 7.00
    x = 7.0 - (rand() % 1401)/100.;
    y = 7.0 - (rand() % 1401)/100.;
}
 
int main()
{
    setlocale(LC_ALL, "");
    srand(time(0));
    double x, y;
    int points, choice;
    std::string answer;
    do
    {
        while (true)
        {
            system("cls");
            std::cout << "1 - Ручной ввод\n2 - Автоматически" << std::endl;
            std::cin >> choice;
            if (choice > 0 && choice < 3) break;
        }
        switch (choice)
        {
            case 1: manual(x, y); break;
            case 2: automatic(x, y); break;
        }
        if (x*x + y*y <= 1*1) points = 10;
        else if (x*x + y*y <= 2*2) points = 8;
        else if (x*x + y*y <= 3*3) points = 6;
        else if (x*x + y*y <= 4*4) points = 4;
        else if (x*x + y*y <= 5*5) points = 2;
        else if (x*x + y*y <= 6*6) points = 1;
        else points = 0;
        while (true)
        {
            system("cls");
            std::cout << '(' << x << ", " << y << ')' << std::endl;
            std::cout << (points ? (points == 10 ? "В яблочко!" : "Попадание!") : "Молоко!") << " Количество очков: " << points << std::endl;
            std::cout << std::endl << "Продолжить? ";
            getline(std::cin, answer);
            if (answer == "yes") break;
            if (answer == "no") return 0;
        }
    } while (true);
    return 0;
}
1
 Аватар для Vadimushka D
2 / 2 / 0
Регистрация: 06.09.2014
Сообщений: 51
16.09.2014, 23:03  [ТС]
Kerry_Jr, Спасибо, завтра буду разбирать, а то мало получить, надо бы еще и понять как он робит!! а тренарную я не додумался использовать!!!
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
16.09.2014, 23:41
Цитата Сообщение от Vadimushka D Посмотреть сообщение
одногруппники говорят что мол там еще и рандомно надо
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main(){
    srand(time(0));
   setlocale( LC_ALL,"Russian" );
  float x,y;
cout<<"Введите x : ";
 cin>>x;
  cout<<"Введите y: ";
  cin>>y;
  float z = rand() % 10 / 10.0; // воздействие ветра
  if(x*x+y*y+z<=1)// проверка попадания в окружность радиусом 1
  cout<<"Попал!!!\n";
 else cout<<"промах"<<endl;
 system("pause");}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.09.2014, 23:41
Помогаю со студенческими работами здесь

Составить программу проверки попал в точку или нет
Добрый день! Ну получается сделать программу..... Как правильно прописать в программе вот это: if (x^2+y^2&lt;=4) and x&gt;=0 and...

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

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

Что нужно переопределить у QGraphicsItem-а, чтоб самому решать, попал юзер мышкой по моему Item-у или нет?
Есть хитрый элемент - класс на сцене, унаследованный от QGraphicsItem-а. BaundaryRect возвращаю вьюверу исправно, но, этот прямоугольник...

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


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru