Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
1 / 1 / 4
Регистрация: 04.03.2009
Сообщений: 83
1

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

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

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

В написанном выражении ((((1?2)?3)?4)?5)?6 вместо каждого знака ? вставить знак одной из 4 арифметических операций +,-,*,/ так, чтобы результат вычислений равнялся 35 (при делении дробная часть в частном отбрасывается). Достаточно найти одно решение.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.06.2009, 12:06
Ответы с готовыми решениями:

нехватает в коде что-то.Логическое задание
Нашел задачу,которая идеально подходит.Нам сказали взять любую задачу логическую.И решить ее в...

Логическое задание про кучки спичек
Уважаемы форумчане, выручите! Нужно решить задачу на прологе, но даже незнаю с чего начать( ...

Выполнить операцию "логическое И" и операцию "логическое ИЛИ" над числами массива
Помогите пожалуйста, нужно очень срочно написать программу. Теорию знаю, а вот с практикой не...

Задание исходного значения параметра эксперимента (задание интенсивности прибытия заявок)
Доброго времени! Вопрос в следующем: можно ли сделать так, чтобы в блоке source число генерируемых...

9
Evg
Эксперт CАвтор FAQ
21115 / 8131 / 628
Регистрация: 30.03.2009
Сообщений: 22,447
Записей в блоге: 30
17.06.2009, 12:11 2
Это на бумажке надо решить или прогу сочинить?
0
121 / 121 / 14
Регистрация: 14.03.2009
Сообщений: 462
17.06.2009, 12:15 3
на бумажке проблем нет: (1+2+3)*4+5+6
скобки лишние просто убрал
0
1 / 1 / 4
Регистрация: 04.03.2009
Сообщений: 83
17.06.2009, 12:15  [ТС] 4
Желательно рабочую консольку
0
Evg
Эксперт CАвтор FAQ
21115 / 8131 / 628
Регистрация: 30.03.2009
Сообщений: 22,447
Записей в блоге: 30
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;
}
 
И так далее
2
1 / 1 / 4
Регистрация: 04.03.2009
Сообщений: 83
17.06.2009, 13:14  [ТС] 6
Спасибо, буду пробывать

Добавлено через 36 минут 31 секунду
Гм, можно ли ее решить без использования массива? Оказывается есть еще такое ограничение.
0
Evg
Эксперт CАвтор FAQ
21115 / 8131 / 628
Регистрация: 30.03.2009
Сообщений: 22,447
Записей в блоге: 30
17.06.2009, 13:18 7
Не совсем понимаю, при чём тут массив, но вместо "char op[5]" сделай "char op1, op2, op3, op4, op5". Или что ещё сие ограничение может означать?
0
1 / 1 / 4
Регистрация: 04.03.2009
Сообщений: 83
21.06.2009, 19:26  [ТС] 8
Evg - даже так, я так и не понял как ее доделать, ты предлагаешь через цикл каждую комбинацию проверять? Напиши пожалуйста если не трудно..
0
Evg
Эксперт CАвтор FAQ
21115 / 8131 / 628
Регистрация: 30.03.2009
Сообщений: 22,447
Записей в блоге: 30
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;
        }
        ...
      }
0
1 / 1 / 4
Регистрация: 04.03.2009
Сообщений: 83
22.06.2009, 01:03  [ТС] 10
Ага, сейчас это испробую
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.06.2009, 01:03

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

Переписать коды командных файлов, выполняющих одно задание, так, чтобы они выполняли другое задание
задание №1 нужно каким-то образом переделать в задание №2 Задание №1: Написать командный...

Разделить пакетное задание на пакет и задание.
Допустим, есть некая консольная программа, для примера translate.exe. Нужно выполнить несколько...

Задание по Паскалю ( задание на фото) Номер - 25
Буду благодарен.


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

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

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