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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
level9626
9 / 9 / 2
Регистрация: 23.09.2012
Сообщений: 150
#1

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

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

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

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

Почему не срабатывают условия в операторе if (работа с массивами)? - C++
Приветствую. Есть код: #include "stdafx.h" #include <iostream> #include <clocale> using namespace std; int main() { float...

помогите с операторами while и for - C++
есть программа, и мне нужно чтоб выводило информацию о файле во время оператора while. все работает, если оставить один if и к нему...

Задания с операторами - C++
Тут такая фишка оч нужна помощь 1а)Даны три различных числа. Среднее из них заменить суммой квадратов, большее ― квадратом суммы меньшего...

Проблема с операторами - C++
начинаю работаю на VC10 ввожу #include <iostream.h> почеркивает и пишет, что не удается открыть источник файла.... ввожу ...

Путаница с sftream и операторами << и >> - C++
Значит так, иду спокойно по книжке по темам &quot;Открытие и закрытие текстовых файлов&quot;, а также &quot;Чтение и запись текстовых файлов&quot; и тут я...

Функция с условными операторами - C++
x^2+y^2+arctg(x), при x&gt;y (x-y)^2+arctg(x), при x&lt;y (y-x)^2+0.5, в остальных случаях

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nixy
ComfyMobile
400 / 281 / 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
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
23.09.2012, 20:45     Работа с операторами условия #4
Цитата Сообщение от level9626 Посмотреть сообщение
if(d>0&&d<=1)
а чем вас числа больше 1 не устраивают?
а так вполне нормальный код , что еще надо?
Andrey.K
342 / 263 / 15
Регистрация: 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;
}
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
23.09.2012, 21:08     Работа с операторами условия #6
Цитата Сообщение от Andrey.K Посмотреть сообщение
if(d<0 || d>=1) std::cout<<"Неправильный ввод!"<<std::endl;
да что вы привязались к числам больше 1 они же подходят для данных функций
BRcr
4007 / 2296 / 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
400 / 281 / 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
400 / 281 / 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
400 / 281 / 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
400 / 281 / 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
400 / 281 / 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
400 / 281 / 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++
Доброго времени всем!Решаю задачки по С++ и у меня возник простой вопрос вот в этом алгоритме.Я его составил сам по условию задачи. Может...

Запись и считывание операторами << >> - C++
Ребят, прошу помочь. Нужно создать класс с 3мя полями. Имя, фамилия и номер работника. С помощью методов нужно обеспечить запись в файл и...

Задания с операторами выбора - C++
Задали две программы а материал не обьяснили сам пробывал но запутался с оператарами Задача 1 даны три различных числа,увеличить...

Ошибка. Матрица с перегруженными операторами - C++
Здравствуйте, Прошу помочь с ошибкой: Студия не принимает строку: m3 = m1 + m2; // Error 2 error C2110: '+' : cannot add two point...

Передача в шаблон класса с перегруженными операторами - C++
У меня есть класс TProc: template&lt;class Type&gt; class TProc { private: Type Lop_Res; Type Rop; string operation; public: ...


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

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

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