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

Переделать else if на switch - C++

Восстановить пароль Регистрация
 
Tolstou
0 / 0 / 0
Регистрация: 30.11.2011
Сообщений: 4
30.11.2011, 15:39     Переделать else if на switch #1
Задание: Написать программу вычисления следующих функций:
y= |q|,q<1
y= 0,q=-1
y=q+2q,q<-1

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<iostream.h>
#include<math.h>
#include<conio.h>
void main()
{
clrscr();
double y,q;
cout<<"\n q=";cin>>q;
if (q<1 && q>-1) y=fabs(q) ;
else if (q==-1) y=0;
else if (q<-1) y=q+2*q;
cout<<"\q="<<q<<" y="<<y;
getch();
}
Я написал программу, это работает на ура!
Но мне нужно ее переделать со Switch!!!
Как ее сделать со switch!?!?!
Help!))
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2011, 15:39     Переделать else if на switch
Посмотрите здесь:

C++ switch
C++ Switch C++
Switch C++
switch C++
C++ switch
C++ оператор switch нужно переделать
Переделать меню через switch / case C++
C++ if в switch
Переделать через switch C++
C++ Как переделать через switch?
C++ Switch
C++ Переделать for в switch

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Humanoid
Почетный модератор
 Аватар для Humanoid
9870 / 3765 / 147
Регистрация: 12.06.2008
Сообщений: 11,346
30.11.2011, 15:44     Переделать else if на switch #2
Для double нельзя использовать switch.
Tolstou
0 / 0 / 0
Регистрация: 30.11.2011
Сообщений: 4
30.11.2011, 15:45  [ТС]     Переделать else if на switch #3
Это я знаю что Switch только для целых и символьных
Но мне сказали переделай как хочешь(
Сыроежка
Заблокирован
30.11.2011, 16:00     Переделать else if на switch #4
Tolstou,

Выражение в switch должно иметь целочисленным тип ии тип перечисления. Так как переменная q у вас имеет тип double, то ее можно использовать в switch лишь при условии, что она применяется в выражении, которое преобразуется к целочисленному типу.
Кроме того, у вас в задаче ничего не сказано, а что делать, если q больше или равно 1?!

Поэтому трудно придумать какое-нибудь осмысленное условие для вашего предложения switch, разве лишь используя тип выражения bool

Например:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
switch ( q == -1 )
{
   case true:
      y = 0;
      break;
   case false:
      switch ( -1 < q )
      {
         case true:
            if ( q < 1 ) y = abs( q );
            break;
         case false:
            y = q + 2 *q;
            break;
      }
      break;
}
Tolstou
0 / 0 / 0
Регистрация: 30.11.2011
Сообщений: 4
30.11.2011, 16:07  [ТС]     Переделать else if на switch #5
Благодарю!)
Yandex
Объявления
30.11.2011, 16:07     Переделать else if на switch
Ответ Создать тему
Опции темы

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