Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
9 / 9 / 2
Регистрация: 23.09.2012
Сообщений: 150
1

Работа с операторами условия

23.09.2012, 20:21. Показов 1588. Ответов 22
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вводим число x. и потом программа должна поставить в порядке возрастания числа: sinx, cosx. lnx. Если при каком-либо x некоторые из выражений не имеют смысла, вывести сообщение об этом и сравнивать значения только тех, которые имеют смысл.
Как такое сделать? помогите, людиии)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.09.2012, 20:21
Ответы с готовыми решениями:

Работа с операторами(+,-) в С++
Доброго времени суток, имеются 2 вектора типа int, например: vector<int> v1 {1,2,3,4};...

Работа с операторами класса
#include <iostream> using namespace std; class X { private: int j; public: X() ...

Работа с битовыми операторами
Здравствуйте, С Новым Годом! Решил за новогодние празники познакомиться с языком C++. Попалась на...

Работа с побитовыми операторами и масками
есть программа, она заменяет в шестнадцатеричном числе все нечетные цифры нулями. при написании...

22
ComfyMobile
401 / 282 / 34
Регистрация: 24.07.2012
Сообщений: 916
23.09.2012, 20:35 2
что нибудь сами пробовали?
0
9 / 9 / 2
Регистрация: 23.09.2012
Сообщений: 150
23.09.2012, 20:36  [ТС] 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#define swap(a,b) do{float t=a; a=b; b=t;}while(0) 
#include<stdio.h> 
#include<math.h> 
int main()
{ 
float a,b,c,d; 
while(1){scanf("%f",&d); 
if(d>0&&d<=1)
    break; 
printf("once more!\n");} 
a=sin(d); 
b=cos(d); 
c=log(d); 
if(a>b)swap(a,b); 
if(b>c)swap(b,c); 
if(a>b)swap(a,b); 
printf("%.5f\n%.5f\n%.5f\n",a,b,c); 
return 0;
}
но походу все можно сделать намного легче.. только вот что убрать, а что добавить?
0
ComfyMobile
401 / 282 / 34
Регистрация: 24.07.2012
Сообщений: 916
23.09.2012, 20:45 4
Цитата Сообщение от level9626 Посмотреть сообщение
if(d>0&&d<=1)
а чем вас числа больше 1 не устраивают?
а так вполне нормальный код , что еще надо?
1
348 / 269 / 128
Регистрация: 14.11.2010
Сообщений: 482
23.09.2012, 21:05 5
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
#include <iostream> 
#include <cmath>
void Swap(float& a,float& b,float& c)
{
    float t=0;
    if(a<b) { a=t;a=b;b=t; }
    if(b<c)  { b=t;b=c;c=t; }
}
int main()
{ 
    setlocale(0,"rus");
    float a,b,c,d;
    do
    {
        std::cout<<"Введите d: ";std::cin>>d;
        if(d<0 || d>=1) std::cout<<"Неправильный ввод!"<<std::endl;
    }
    while(d<0 || d>=1);
    a=sin(d); 
    b=cos(d); 
    c=log(d);
    Swap(a,b,c);
    std::cout<<"a="<<a<<std::endl;
    std::cout<<"b="<<b<<std::endl;
    std::cout<<"c="<<c<<std::endl;
    system("pause");
    return 0;
}
0
ComfyMobile
401 / 282 / 34
Регистрация: 24.07.2012
Сообщений: 916
23.09.2012, 21:08 6
Цитата Сообщение от Andrey.K Посмотреть сообщение
if(d<0 || d>=1) std::cout<<"Неправильный ввод!"<<std::endl;
да что вы привязались к числам больше 1 они же подходят для данных функций
1
4043 / 2332 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
23.09.2012, 21:34 7
Цитата Сообщение от Nixy Посмотреть сообщение
да что вы привязались к числам больше 1 они же подходят для данных функций
+1

А если покрасивше надо, то вот еще пять копеек:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    typedef pair <float, string> func_info;
    float x = -1;
    func_info funcs[3], tmp;
 
    while ( x < 0 ) {
        printf( "\ninput x: " );
        scanf( "%f", &x );
    }
    funcs[0] = func_info( sin( x ), "(sin)" );
    funcs[1] = func_info( cos( x ), "(cos)" );
    funcs[2] = func_info( log( x ), "(log)" );
    for ( int i = 1, j; i < sizeof( funcs ) / sizeof( funcs[0] ); ++i ) {
        tmp = funcs[i];
        for ( j = i - 1; j >= 0 && funcs[j].first > tmp.first; funcs[j-- + 1] = funcs[j] );
        funcs[j + 1] = tmp;
    }
    for ( int i = 0; i < sizeof( funcs ) / sizeof( funcs[0] ); ++i ) {
        printf( "%.5f%s\n", funcs[i].first, funcs[i].second.c_str( ) );
    }
Миниатюры
Работа с операторами условия  
0
ComfyMobile
401 / 282 / 34
Регистрация: 24.07.2012
Сообщений: 916
23.09.2012, 21:47 8
BRcr, во все правильно сделал) , я свой код не выложил так как вначале просто записал вывод максимального из, а потом уже решение дали)
1
9 / 9 / 2
Регистрация: 23.09.2012
Сообщений: 150
23.09.2012, 21:56  [ТС] 9
Andrey.K, так ln0 не существует. только больше 0 нужно. а мне выбивает ошибку. воспринимает только 0 и все.

Добавлено через 2 минуты
да и когда ввожу число меньше либо равно 0, то ln этого числа вообще не должно считать, а только сравнить между собой синус и косинус.
Вот задание: Если при каком-либо x некоторые из выражений не имеют смысла, вывести сообщение об этом и сравнивать значения только тех, которые имеют смысл.

Добавлено через 1 минуту
мы вообще только выучили if, else) библиотеки math.h и stdio.h. еще легче нельзя сделать эту прогу?

Добавлено через 1 минуту
два задания есть: одной я уже сделал:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# include <stdio.h>
# include <math.h>
int main()
{
float x,z;
printf ("Vvedite x: ");
scanf ("%f", &x);
    
if (x>=9)
{
z=sin(x);
}
else
{
z=x*x/(x-9);
}
printf ("z=%f",z);
return 0;
}
а второе так же легко я так понял, нельзя сделать)
0
ComfyMobile
401 / 282 / 34
Регистрация: 24.07.2012
Сообщений: 916
23.09.2012, 22:00 10
Цитата Сообщение от level9626 Посмотреть сообщение
math.h и stdio.h.
эти библиотеки нужны для
1 функций sin cos log
2 вывода на экран

Добавлено через 1 минуту
Цитата Сообщение от level9626 Посмотреть сообщение
так же легко
через if else все сделать можно
0
9 / 9 / 2
Регистрация: 23.09.2012
Сообщений: 150
23.09.2012, 22:02  [ТС] 11
ну вот. больше не учили. и дали такое задание...

Добавлено через 1 минуту
и как вот только через if else then сделать это задание? напишите, пожалуйста)
0
ComfyMobile
401 / 282 / 34
Регистрация: 24.07.2012
Сообщений: 916
23.09.2012, 22:04 12
Цитата Сообщение от level9626 Посмотреть сообщение
then
а вам точно в c++,ни паскаль ни делфи?
1
9 / 9 / 2
Регистрация: 23.09.2012
Сообщений: 150
23.09.2012, 22:05  [ТС] 13
да, точно.
0
ComfyMobile
401 / 282 / 34
Регистрация: 24.07.2012
Сообщений: 916
23.09.2012, 22:07 14
а процедуры/функции или массивы проходили?
1
9 / 9 / 2
Регистрация: 23.09.2012
Сообщений: 150
23.09.2012, 22:18  [ТС] 15
нет, нет, нет.

вот с помощью того что проходили и я написал первое задание. код вылаживал.
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# include <stdio.h>
# include <math.h>
int main()
{
float x,z;
printf ("Vvedite x: ");
scanf ("%f", &x);
    
if (x>=9)
{
z=sin(x);
}
else
{
z=x*x/(x-9);
}
printf ("z=%f",z);
return 0;
}


Добавлено через 7 минут
так поможете ? кто-нибууууууууудь) пожалуйстааааа. при помощи одних if, else, then...
0
ComfyMobile
401 / 282 / 34
Регистрация: 24.07.2012
Сообщений: 916
23.09.2012, 22:20 16
если меня не обгонят то я щас ваяю
1
9 / 9 / 2
Регистрация: 23.09.2012
Сообщений: 150
23.09.2012, 22:30  [ТС] 17
о, спасибо Вам)
0
ComfyMobile
401 / 282 / 34
Регистрация: 24.07.2012
Сообщений: 916
23.09.2012, 22:45 18
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
#include <windows.h>
#include <stdio.h>
#include <iostream>
#include <math.h>
 
using namespace std;
 
 
 
void main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    float x;
    printf("\n Введите х: ");
    scanf("%f",&x);
    char *first,*second,*third=" log(x) ";
    float a=cos(x);
    float b=sin(x);
 
    if (x<=0) {
       if (a>b)
           printf("%s%.5f%s%.5f\n","1. cos(x)",b,"\n2. sin(x)",a);
        else
           printf("%s%.5f%s%.5f\n","1. sin(x)",a,"\n2. cos(x)",b);
    }  else {
        float c=log(x);
        float t=0;
            // проверка косинуса с синусом
            if(a>b) {
            t=a;a=b;b=t;
            first="cos(x)";second=" sin(x) ";}
           //проверка косинуса с логарифмом либо с синусом
           // если произошел обмен
            if(b>c) { t=b;b=c;c=t;
                if (first==" cos(x) ") {third=" sin(x) ";second=" log(x) ";} //проверка на обмен
                else {third=" cos(x) ";second=" log(x) ";}}
            // сравнение косинуса и логарифма если
            // произошел обмен
            if(a>b) {t=a;a=b;b=t;
                first=" log(x) ";second=" cos(x) ";}
           printf("%s%.5f%s%.5f%s%.5f\n",first,a,second,b,third,c);
        }
        system("pause");
    }
не забудьте про кнопку спасибо
1
9 / 9 / 2
Регистрация: 23.09.2012
Сообщений: 150
23.09.2012, 22:50  [ТС] 19
оо, работает. Спасибо, правда я тут и половину не понимаю, но ладно))
0
ComfyMobile
401 / 282 / 34
Регистрация: 24.07.2012
Сообщений: 916
23.09.2012, 22:51 20
спрашивай по строчкам я отвечу
0
23.09.2012, 22:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.09.2012, 22:51
Помогаю со студенческими работами здесь

Работа с операторами
Как многие идущие к своей цели програмисты я встретился с таким делом как операторы. Вот для...

Работа с операторами....
Определить операторы, которые позволяют записывать выражения, заданные в соответствии с вариантом....

работа с операторами while и do-while
Есть такая проблема: написал код с помощью оператора do-while: { float x, a, s=0; int f, i, k=1;...

Работа с линейными операторами
Проекция на плоскость XOY. Вектор а = (-2,0,1). Найти матрицу линейного оператора А в базисе...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru