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

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

Восстановить пароль Регистрация
 
 
level9626
9 / 9 / 2
Регистрация: 23.09.2012
Сообщений: 150
23.09.2012, 20:21     Работа с операторами условия #1
Вводим число x. и потом программа должна поставить в порядке возрастания числа: sinx, cosx. lnx. Если при каком-либо x некоторые из выражений не имеют смысла, вывести сообщение об этом и сравнивать значения только тех, которые имеют смысл.
Как такое сделать? помогите, людиии)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.09.2012, 20:21     Работа с операторами условия
Посмотрите здесь:

Задания с операторами C++
Работа с битовыми операторами C++
C++ Проблема с операторами
помогите с операторами while и for C++
Выражение с математическими операторами C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 8
Регистрация: 24.07.2012
Сообщений: 916
23.09.2012, 20:35     Работа с операторами условия #2
что нибудь сами пробовали?
level9626
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;
}
но походу все можно сделать намного легче.. только вот что убрать, а что добавить?
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 8
Регистрация: 24.07.2012
Сообщений: 916
23.09.2012, 20:45     Работа с операторами условия #4
Цитата Сообщение от level9626 Посмотреть сообщение
if(d>0&&d<=1)
а чем вас числа больше 1 не устраивают?
а так вполне нормальный код , что еще надо?
Andrey.K
 Аватар для Andrey.K
338 / 259 / 15
Регистрация: 14.11.2010
Сообщений: 480
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;
}
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 8
Регистрация: 24.07.2012
Сообщений: 916
23.09.2012, 21:08     Работа с операторами условия #6
Цитата Сообщение от Andrey.K Посмотреть сообщение
if(d<0 || d>=1) std::cout<<"Неправильный ввод!"<<std::endl;
да что вы привязались к числам больше 1 они же подходят для данных функций
BRcr
 Аватар для BRcr
4003 / 2292 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 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( ) );
    }
Миниатюры
Работа с операторами условия  
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 8
Регистрация: 24.07.2012
Сообщений: 916
23.09.2012, 21:47     Работа с операторами условия #8
BRcr, во все правильно сделал) , я свой код не выложил так как вначале просто записал вывод максимального из, а потом уже решение дали)
level9626
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;
}
а второе так же легко я так понял, нельзя сделать)
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 8
Регистрация: 24.07.2012
Сообщений: 916
23.09.2012, 22:00     Работа с операторами условия #10
Цитата Сообщение от level9626 Посмотреть сообщение
math.h и stdio.h.
эти библиотеки нужны для
1 функций sin cos log
2 вывода на экран

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

Добавлено через 1 минуту
и как вот только через if else then сделать это задание? напишите, пожалуйста)
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 8
Регистрация: 24.07.2012
Сообщений: 916
23.09.2012, 22:04     Работа с операторами условия #12
Цитата Сообщение от level9626 Посмотреть сообщение
then
а вам точно в c++,ни паскаль ни делфи?
level9626
9 / 9 / 2
Регистрация: 23.09.2012
Сообщений: 150
23.09.2012, 22:05  [ТС]     Работа с операторами условия #13
да, точно.
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 8
Регистрация: 24.07.2012
Сообщений: 916
23.09.2012, 22:07     Работа с операторами условия #14
а процедуры/функции или массивы проходили?
level9626
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...
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 8
Регистрация: 24.07.2012
Сообщений: 916
23.09.2012, 22:20     Работа с операторами условия #16
если меня не обгонят то я щас ваяю
level9626
9 / 9 / 2
Регистрация: 23.09.2012
Сообщений: 150
23.09.2012, 22:30  [ТС]     Работа с операторами условия #17
о, спасибо Вам)
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 8
Регистрация: 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");
    }
не забудьте про кнопку спасибо
level9626
9 / 9 / 2
Регистрация: 23.09.2012
Сообщений: 150
23.09.2012, 22:50  [ТС]     Работа с операторами условия #19
оо, работает. Спасибо, правда я тут и половину не понимаю, но ладно))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.09.2012, 22:51     Работа с операторами условия
Еще ссылки по теме:

C++ Путаница с sftream и операторами << и >>
Задания с операторами C++
Функция с условными операторами C++

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

Или воспользуйтесь поиском по форуму:
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 8
Регистрация: 24.07.2012
Сообщений: 916
23.09.2012, 22:51     Работа с операторами условия #20
спрашивай по строчкам я отвечу
Yandex
Объявления
23.09.2012, 22:51     Работа с операторами условия
Ответ Создать тему
Опции темы

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