Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
Тори
1 / 1 / 0
Регистрация: 09.05.2010
Сообщений: 59
1

оператор Саse

09.05.2010, 16:46. Просмотров 1213. Ответов 27
Метки нет (Все метки)

Составить программу расчёта и печати одной из четырёх функций в зависимости от следующих условий:
u = 4,2 tg x2, при х = 1;
v = 3,14 sin2x –2x, при х = 2,3;
w = 7,11 ln x + 5x, при х = 3;
z = cos 2x – 9,15x, при х = 4.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<iostream.h>
#include<math.h>
#include<conio.h>
#include<stdio.h>
main()
{  int x;
   cout<<"vvedite x";
   cin>>x;
   switch(x)
       {
         case 1:{cout<<"u="<<(4.2*(tan(pow(x,2))));break;}
         case 2.3:{cout<<"r="<<(3.14*(pow(sin(x),2))-2*x);break;}
         case 3:{cout<<"w="<<(7.11*log(x)+5*x);break;}
         case 4:{cout<<"z="<<(cos(2*x)-9.15*x);break;};
       }
   getch();
   return 0;
}
эту задачу надо решать через case или нет?
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.05.2010, 16:46
Ответы с готовыми решениями:

Написать программу, содержащую оператор оператор for для счета от 2 до 5 через 1
В С++ я ноль, помогите пожалуйста написать прогу Написать программу,...

Условный оператор, оператор ввода/вывода; плоскость и принадлежность точки
Здравствуйте. В С++ я абсолютный новичок, поэтому с первым же заданием возникли...

Для шаблонного класса перегрузить оператор присваивания, copy-конструктор, объекты cin и cout, оператор *
Помогите в следующем: Для класса шаблона следует перегрузить оператор...

Для чего нужен оператор двоеточие, если два двоеточия - это оператор расширения области видимости
для чего нужен оператор двоеточие ( : ), если два двоеточия( :: ) - это...

Применяя оператор цикла FOR вычислить y. Оператор if в теле цикла не использовать. Значение m и n вводить с клавиатуры.
Применяя оператор цикла FOR вычислить y. Оператор if в теле цикла не...

27
Crudelis
Шаровик затейник
683 / 432 / 78
Регистрация: 06.05.2010
Сообщений: 1,109
09.05.2010, 17:08 2
Цитата Сообщение от Тори Посмотреть сообщение
case 2.3:
точно не будет работать, вообще лучше через if работать в данной программе
C++
1
2
if(x==2.3)
cout<<"r="<<(3.14*(pow(sin(x),2))-2*x);
1
Abortmaher007
-1 / 9 / 2
Регистрация: 22.01.2010
Сообщений: 67
09.05.2010, 17:16 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<iostream.h>
#include<math.h>
#include<conio.h>
#include<stdio.h>
main()
{ int x;
cout<<"vvedite x";
cin>>x;
switch(x)
{
case 1:{cout<<"u="<<(4.2*(tan(pow(x,2))));break;}
case 2.3:{cout<<"r="<<(3.14*(pow(sin(x),2))-2*x);break;}
case 3:{cout<<"w="<<(7.11*log(x)+5*x);break;}
case 4:{cout<<"z="<<(cos(2*x)-9.15*x);break;};
}
getch();
return 0;
}
Тут в принципе так и надо было, решать надо так, только печатать будет значение функции а не саму. Если делать по другому - путем сравнения, то ушло бы много времени отладчика, на идею структуры, и печатать долго!!!!
Это все за спасибо

Добавлено через 4 минуты
Цитата Сообщение от Crudelis Посмотреть сообщение
точно не будет работать, вообще лучше через if работать в данной программе
C++
1
2
if(x==2.3)
cout<<"r="<<(3.14*(pow(sin(x),2))-2*x);
Тогда нужно сделать проверку ввода.


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
main()
{ float x;
while(1){
cout<<"vvedite x";
cin>>x;
if(x==1 || x==2.3 || x==3 || x==4)
goto loop;
}
loop:switch(x)
{
case 1:{cout<<"u="<<(4.2*(tan(pow(x,2))));break;}
case 2.3:{cout<<"r="<<(3.14*(pow(sin(x),2))-2*x);break;}
case 3:{cout<<"w="<<(7.11*log(x)+5*x);break;}
case 4:{cout<<"z="<<(cos(2*x)-9.15*x);break;};
}
getch();
return 0;
}
А так же вместо целочисленного значения для х нужно использовать тип float.
1
alex_x_x
бжни
2455 / 1661 / 134
Регистрация: 14.05.2009
Сообщений: 7,162
09.05.2010, 17:19 4
Цитата Сообщение от Abortmaher007 Посмотреть сообщение
case 2.3
ну хоть убейтесь, но в int 2.3 никогда не запишеться )
1
CyBOSSeR
Эксперт С++
2313 / 1686 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
09.05.2010, 17:20 5
Abortmaher007, вас не смущает, что x должен быть вещественным числом?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<iostream.h>
#include<math.h>
 
int main() { 
  double x;
  cout<<"vvedite x";
  cin>>x;
 
  if (x == 1.0)
    cout << "u=" << 4.2 * (tan(pow(x, 2)));
  else if (x == 2.3)
    cout << "r=" << 3.14 * (pow(sin(x), 2)) - 2 * x;
  else if (x == 3.0)
    cout << "w=" << 7.11 * log(x) + 5 * x;
  else if (x == 4.0)
    cout << "z=" << cos(2 * x) - 9.15 * x;
  
  getch();
  return 0;
}
2
Crudelis
Шаровик затейник
683 / 432 / 78
Регистрация: 06.05.2010
Сообщений: 1,109
09.05.2010, 17:20 6
Цитата Сообщение от Abortmaher007 Посмотреть сообщение
ушло бы много времени отладчика
не пойму почему много времени бы ушло, всё очень просто:
C++
1
2
3
4
5
6
7
8
if(x==1.0)
cout<<"u="<<(4.2*(tan(pow(x,2))));
if(x==2.3)
cout<<"r="<<(3.14*(pow(sin(x),2))-2*x);
if(x==3.0)
cout<<"w="<<(7.11*log(x)+5*x);
if(x==4.0)
cout<<"z="<<(cos(2*x)-9.15*x);
з.ы. ушло 15 секунд на написание кода
1
Abortmaher007
-1 / 9 / 2
Регистрация: 22.01.2010
Сообщений: 67
09.05.2010, 17:26 7
Про флоат я писал!!!!! Читайте правильно!!!!!
Бессмысленно писать постоянно оператор if

Читайте внимательно еще раз вот этот кусок,
он будет всегда повторяться, пока не будет введено правильное значение!!!!!!!!
C
1
2
3
4
5
6
while(1){
cout<<"vvedite x";
cin>>x;
if(x==1 || x==2.3 || x==3 || x==4)
goto loop;
}
Что будет с вашим временем если условий будет 1000 ?
Постоянно писать if if if if ?

Ума не приложу по какой книге учите
перестаньте негативно относиться, читайте тыщщу раз внимательно!
0
CyBOSSeR
Эксперт С++
2313 / 1686 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
09.05.2010, 17:29 8
Цитата Сообщение от Abortmaher007 Посмотреть сообщение
Бессмысленно писать постоянно оператор if
Чем же лучше постоянно писать case?
0
neske
1527 / 894 / 192
Регистрация: 26.03.2010
Сообщений: 3,074
09.05.2010, 17:30 9
Если будет 1000 условий, я посмотрю на твой case.
0
Crudelis
Шаровик затейник
683 / 432 / 78
Регистрация: 06.05.2010
Сообщений: 1,109
09.05.2010, 17:31 10
Abortmaher007, если условий будет 1000 то как if будет 1000 так и case будет 1000
case 1:
..........
case 1000:
0
alex_x_x
бжни
2455 / 1661 / 134
Регистрация: 14.05.2009
Сообщений: 7,162
09.05.2010, 17:33 11
забавный холивар, когда есть четкое перечисление по enum, то case удобней и понятней выглядит, в остальных случаях по обстоятельством, тут имхо также удобно, спор на ровном месте
0
Abortmaher007
-1 / 9 / 2
Регистрация: 22.01.2010
Сообщений: 67
09.05.2010, 17:33 12
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Чем же лучше постоянно писать case?
Компилятор начнет все по порядку проверять.
Их будет тысяча - все проверит, даже если не найдет.
В казе тоже, но значительно быстрей!!!
Понятней человеку, допустим если условий будет тысяча ?????
Думаете дураки придумали этот свитч ?
0
neske
1527 / 894 / 192
Регистрация: 26.03.2010
Сообщений: 3,074
09.05.2010, 17:35 13
Abortmaher007, хватит.
1000 условий не будет, а если и представить что будет - if и else пользоваться никто не будет.
alex_x_x, +1. Кому как нравится, тот так и делает
0
Abortmaher007
-1 / 9 / 2
Регистрация: 22.01.2010
Сообщений: 67
09.05.2010, 17:36 14
Цитата Сообщение от Crudelis Посмотреть сообщение
Abortmaher007, если условий будет 1000 то как if будет 1000 так и case будет 1000
case 1:
..........
case 1000:
Допустим 566 условие нужно найти, где х=5.
Ну и как ты его будешь искать ?

По списку ?? Глаза сломаете
0
Тори
1 / 1 / 0
Регистрация: 09.05.2010
Сообщений: 59
09.05.2010, 17:37  [ТС] 15
когда преподаватель давал нам это задание,он предполагал решение через case...
0
Abortmaher007
-1 / 9 / 2
Регистрация: 22.01.2010
Сообщений: 67
09.05.2010, 17:38 16
Цитата Сообщение от neske Посмотреть сообщение
Abortmaher007, хватит.
1000 условий не будет, а если и представить что будет - if и else пользоваться никто не будет.
alex_x_x, +1. Кому как нравится, тот так и делает
Все, перестаю. А вот такое когда-нибудь вам встретится, с условиями или наподобие.

Добавлено через 42 секунды
Цитата Сообщение от Тори Посмотреть сообщение
когда преподаватель давал нам это задание,он предполагал решение через case...
Ну if else вы уже выучили, он вам предложил попробовать через казел
1
Crudelis
Шаровик затейник
683 / 432 / 78
Регистрация: 06.05.2010
Сообщений: 1,109
09.05.2010, 17:53 17
Цитата Сообщение от Тори Посмотреть сообщение
когда преподаватель давал нам это задание,он предполагал решение через case...
В Ялту через Москву я помню когда мы изучали указатели нам преподаватель задал задачку сделать сложение двух чисел через указатели) типо указатель на указатель
0
Genius Ignat
1243 / 781 / 108
Регистрация: 16.09.2009
Сообщений: 2,014
09.05.2010, 17:57 18
В Ялту через Москву я помню когда мы изучали указатели нам преподаватель задал задачку сделать сложение двух чисел через указатели) типо указатель на указатель
Смешно, могу дать ссылку где не давно эту туфь я решал, так и не понял, зачем были нужны указатели.

эту задачу надо решать через case или нет?
Хто бы знал точно, наверное через switch
1
Crudelis
Шаровик затейник
683 / 432 / 78
Регистрация: 06.05.2010
Сообщений: 1,109
09.05.2010, 18:12 19
Genius Ignat, зацени ссылку) дай вспомнить времена)
0
neske
1527 / 894 / 192
Регистрация: 26.03.2010
Сообщений: 3,074
09.05.2010, 18:13 20
Через указатели на указатели посчитать сумму двух чисел и записать в третье
она у меня даже в закладках
хотел разбираться с указателями)
0
09.05.2010, 18:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.05.2010, 18:13

Почему обращение к методам осуществляется через оператор прямого доступа, а не через оператор указателей->?
#include &lt;iostream&gt; using namespace std; class random { public: void...

Оператор break как оператор go to next
Подскажите, в этом примере break эквивалентна действию оператора go to next?

Как перегрузить оператор<< и оператор>> ?
Доброго времени суток. Застрял на двух вопросах и не как не могу найти инфу...


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

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

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