Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Dioxis
1 / 1 / 0
Регистрация: 04.03.2009
Сообщений: 83
#1

Логическое задание на С++ - C++

17.06.2009, 12:06. Просмотров 1051. Ответов 9
Метки нет (Все метки)

Помогите пож-та еще с вот такой задачкой:

В написанном выражении ((((1?2)?3)?4)?5)?6 вместо каждого знака ? вставить знак одной из 4 арифметических операций +,-,*,/ так, чтобы результат вычислений равнялся 35 (при делении дробная часть в частном отбрасывается). Достаточно найти одно решение.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.06.2009, 12:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Логическое задание на С++ (C++):

Логическое и - C++
Это ведь && ? Тогда можете объяснить, в чем разница? пояснение после кода (весь привел на всякий случай) #include "stdafx.h" #include...

Логическое выражение - C++
Записать логическое выражение, которое является истинным, когда число N чётное делится на 7, но не делится на 11 и 13 без остатка. ...

Логическое выражение - C++
Здравствуйте. Запишите логическое выражение, которое принимает значение "истина" тогда и только тогда, когда точка с координатами (x, y)...

ЛВ(ЛОГИЧЕСКОЕ ВРОЖЕНИЯ) - C++
Помогите составить ЛВ в схеме if допустим int a; cin>>a; if(6>12) { cout<<"Hello ifloud"; }

Задание на массив и задание на матрицу. - C++
1.Удалить из массива A(n) нулевые элементы, передвигая на их место следующие элементы, не нарушая порядка их следования. В результате...

выполняет логическое умножение - C++
Написать программу, которая вводит с клавиатуры два натуральных числа и выполняет логическое умножение и сложение этих чисел. На экран...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Evg
Эксперт CАвтор FAQ
17634 / 5858 / 378
Регистрация: 30.03.2009
Сообщений: 16,160
Записей в блоге: 26
17.06.2009, 12:11 #2
Это на бумажке надо решить или прогу сочинить?
EnzoMatrix
120 / 120 / 5
Регистрация: 14.03.2009
Сообщений: 462
17.06.2009, 12:15 #3
на бумажке проблем нет: (1+2+3)*4+5+6
скобки лишние просто убрал
Dioxis
1 / 1 / 0
Регистрация: 04.03.2009
Сообщений: 83
17.06.2009, 12:15  [ТС] #4
Желательно рабочую консольку
Evg
Эксперт CАвтор FAQ
17634 / 5858 / 378
Регистрация: 30.03.2009
Сообщений: 16,160
Записей в блоге: 26
17.06.2009, 12:27 #5
Ну грубо говоря можно сделать так. У тебя есть 5 операций, делаешь перебором все комбинации, а дальше вычисляешь выражение. Если бы задание ставилось так, что решать надо для произвольного выражения, но нужно было бы писать программу по разбору и вычислению выражения. Но здесь такой задачи не стоит, а потому делаем попросту тупо. Грубо гворя есть у тебя 5 операций, а потому пишем 5 кусков кода. Полагаем, что в массиве char op[5] мы имеем одну из комбинаций операций.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
switch (op[0])
{
  case '+': r1 = 1 + 2; break;
  case '-': r1 = 1 - 2; break;
  case '*': r1 = 1 * 2; break;
  case '/': r1 = 1 / 2; break;
  default: abort(); break;
}
 
switch (op[1])
{
  case '+': r2 = r1 + 3; break;
  case '-': r2 = r1 - 3; break;
  case '*': r2 = r1 * 3; break;
  case '/': r2 = r1 / 3; break;
  default: abort(); break;
}
 
И так далее
Dioxis
1 / 1 / 0
Регистрация: 04.03.2009
Сообщений: 83
17.06.2009, 13:14  [ТС] #6
Спасибо, буду пробывать

Добавлено через 36 минут 31 секунду
Гм, можно ли ее решить без использования массива? Оказывается есть еще такое ограничение.
Evg
Эксперт CАвтор FAQ
17634 / 5858 / 378
Регистрация: 30.03.2009
Сообщений: 16,160
Записей в блоге: 26
17.06.2009, 13:18 #7
Не совсем понимаю, при чём тут массив, но вместо "char op[5]" сделай "char op1, op2, op3, op4, op5". Или что ещё сие ограничение может означать?
Dioxis
1 / 1 / 0
Регистрация: 04.03.2009
Сообщений: 83
21.06.2009, 19:26  [ТС] #8
Evg - даже так, я так и не понял как ее доделать, ты предлагаешь через цикл каждую комбинацию проверять? Напиши пожалуйста если не трудно..
Evg
Эксперт CАвтор FAQ
17634 / 5858 / 378
Регистрация: 30.03.2009
Сообщений: 16,160
Записей в блоге: 26
21.06.2009, 21:39 #9
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
for (a1 = 0; a1 < 3; a1++)
  for (a2 = 0; a2 < 3; a2++)
    ...
    for (a5 = 0; a5 < 3; a5++)
      {
        /* для a1, a2, a3, a4, a5 значение 0 соотвествует плюсу, 1 - минусу,
         * 2 - умножить, 3 - делать */
         ...
 
        /* Далее код из поста 5 */
        switch (a1)
        {
          case 0: r1 = 1 + 2; break;
          case 1: r1 = 1 - 2; break;
          case 2: r1 = 1 * 2; break;
          case 3: r1 = 1 / 2; break;
          default: abort(); break;
        }
        ...
      }
Dioxis
1 / 1 / 0
Регистрация: 04.03.2009
Сообщений: 83
22.06.2009, 01:03  [ТС] #10
Ага, сейчас это испробую
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.06.2009, 01:03
Привет! Вот еще темы с ответами:

Записать логическое выражение - C++
Записать логическое выражение, которое принимает значение TRUE, если точка с заданными координатами x и y попадает в заштрихованную...

Вычислить логическое выражение - C++
Помогите написать программу!!!

Написать логическое выражение - C++
как написать формулы на с++ формула во вложении Когда же, наконец, Вы запомните П.5.18.Правил Запрещено размещать задания и решения...

Логическое выражение в условном операторе - C++
На поле (k, l) расположен слон. Угрожает ли он полю (m, n)?


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
22.06.2009, 01:03
Ответ Создать тему
Опции темы

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