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

Организация циклов. Условные и безусловные переходы. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
julian3045
0 / 0 / 0
Регистрация: 10.01.2012
Сообщений: 22
20.01.2012, 14:37     Организация циклов. Условные и безусловные переходы. #1
Помогите пожалуйста сделать
Миниатюры
Организация циклов. Условные и безусловные переходы.  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2012, 14:37     Организация циклов. Условные и безусловные переходы.
Посмотрите здесь:

C++ условные операторы
Условные переходы и циклы C++
Организация циклов в C++ C++
Условные переходы и циклы C++
C++ Организация циклов. Условные и безусловные переходы.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,108
20.01.2012, 14:42     Организация циклов. Условные и безусловные переходы. #2
1)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
using namespace std;
 
main ()
{
double a, b, c, x;
//ввод
if (x < 0 && b != 0)
   cout << a * x * x + b;
else if (x > 0 && b == 0)
   cout << (x-a)/(x-c);
else
   cout << (x*10)/(c-4);
//system(PAUSE > NULL);
}
Melkor
30 / 30 / 1
Регистрация: 15.12.2011
Сообщений: 108
20.01.2012, 16:24     Организация циклов. Условные и безусловные переходы. #3
Цитата Сообщение от dimcoder Посмотреть сообщение
#include <iostream>
using namespace std;
main ()
{
double a, b, c, x;
//ввод
if (x < 0 && b != 0)
* *cout << a * x * x + b;
else if (x > 0 && b == 0)
* *cout << (x-a)/(x-c);
else
* *cout << (x*10)/(c-4);
//system(PAUSE > NULL);
}
если позволите, то маленькое поправление, ибо double числа нельзя сравнивать на == и !=.
это нужно делать с использованием точности:
C++
1
2
3
4
5
const double eps = 0.00000001;
double a;
 
if(fabs(a) < eps)// проверка на ноль
if(fabs(a) > eps)// проверка на != 0
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,108
20.01.2012, 16:44     Организация циклов. Условные и безусловные переходы. #4
Цитата Сообщение от Melkor Посмотреть сообщение
double числа нельзя сравнивать на == и !=
Почему? Проверка на равенство\неравенство на 0:
C++
1
2
3
4
5
double a = 0.0000000001;
if (a == 0)
   cout << "Equal" << endl;
else
   cout << "Not equal" << endl;
Вывод "Not equal"
Работает. Прошу привести пример нерабочей программы на сравнение.

double и float - не стоит сравнивать.
Melkor
30 / 30 / 1
Регистрация: 15.12.2011
Сообщений: 108
20.01.2012, 16:54     Организация циклов. Условные и безусловные переходы. #5
Цитата Сообщение от dimcoder Посмотреть сообщение
Работает. Прошу привести пример нерабочей программы на сравнение.
вот пожалуйста несколько ссылочек:
http://forum.ixbt.com/topic.cgi?id=26:40010
http://forum.shelek.ru/index.php/topic,6441.0.html
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,108
20.01.2012, 17:21     Организация циклов. Условные и безусловные переходы. #6
Да согласен, неточность вполне возможна и предложенный вариант, с точностью, подходит для решения. Но все же где вы можете применить данный способ в моей программе? Сравнения 2 даблов (которые кстати вводятся) не происходит, происходит сравнивание с константами.
Melkor
30 / 30 / 1
Регистрация: 15.12.2011
Сообщений: 108
20.01.2012, 17:33     Организация циклов. Условные и безусловные переходы. #7
если есть гарантия что вы введете 1.0 и не получите в результате 0.99999999999 , то мой способ избыточен, но на практике луче не сравнивать даблы на == или != , потом очень тяжело определить где неработает программа. в этой маленькой проге легко найти где неверные входные данные, а представьте что в программе тысячи строк кода... так же легко тогда будет найти где потерялась 1 трилионная часть числа, которая привела к неправильному выполнению условия ?
Paporotnik
383 / 227 / 7
Регистрация: 06.07.2011
Сообщений: 512
20.01.2012, 17:35     Организация циклов. Условные и безусловные переходы. #8
То, что они вводятся, не гарантирует, что они хранятся в том виде, в котором ты предполагаешь. И все типы с плавающей точкой (в том представлении, что обычно используется в компьютере) можно сравнивать с чем-то на равенство/неравенство только с какой-то точностью. И не важно с чем сравнивать.
x1Mike7x
 Аватар для x1Mike7x
214 / 127 / 6
Регистрация: 06.11.2010
Сообщений: 234
20.01.2012, 18:20     Организация циклов. Условные и безусловные переходы. #9
2)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
int main()
{
    double S, D;
    S = D = 16.0;
    for ( int day = 2; day <= 10; ++day )
    {
        D += 0.15 * D;
        S += D;
    }
    std::cout << S << std::endl;
}
-=ЮрА=-
Заблокирован
Автор FAQ
20.01.2012, 23:23     Организация циклов. Условные и безусловные переходы. #10
Цитата Сообщение от julian3045 Посмотреть сообщение
Помогите пожалуйста сделать
Миниатюры
Вот просто на плюсах
Задание 1
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
#include <iostream>
using namespace std;
 
int main()
{
    double a,b,c,x,f;
    while(true)//Да бесконечный цикл, 
               //для выхода из приложения просто закрываем окно консоли
               //зачем так построил - вычислять можно сколь угодно долго
               //для сколь угодно разных вводимых значений
               //а вводить к примеру _getch с целью вопроса - продолжить или нет
               //считаю просто бессмысленным для данного алгоритма
    {
        cout<<"Enter a : ";cin>>a;
        cout<<"Enter b : ";cin>>b;
        cout<<"Enter c : ";cin>>c;
        cout<<"Enter x : ";cin>>x;
 
        f = a*x*x + b;//x < 0 && b != 0
        //a*x*x + b всегда существует, дефалтим именно его
        if(b == 0)
        if(x < 0)
            f = 10*x/(c - 4);//x < 0 && b == 0 - вот и остальные случаи
        else
            f = (x - a)/(x - c);//0 < x && b == 0
        cout<<"f = "<<f<<endl;
    }
    return 0;
}
Миниатюры
Организация циклов. Условные и безусловные переходы.  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.01.2012, 23:31     Организация циклов. Условные и безусловные переходы.
Еще ссылки по теме:

C++ Условные операторы
Изучение С++ (переходы с консолей на винапи) C++
C++ Организация циклов в С

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

Или воспользуйтесь поиском по форуму:
-=ЮрА=-
Заблокирован
Автор FAQ
20.01.2012, 23:31     Организация циклов. Условные и безусловные переходы. #11
Задача 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <cstdlib>
using namespace std;
 
int main()
{
    int nDays;
    double len, percent, distance = 0;
    cout<<"Enter distance of the first day in KM: ";
    cin>>len;
    cout<<"Enter percent of increase : ";
    cin>>percent;
    cout<<"Enter number of Days : ";
    cin>>nDays;
    for(int i = 1; i <= nDays; i++)
    {
        distance += len;
        len *= (1 + percent/100.0);
    }
    cout<<"Total distance in KM : "<<distance<<endl;
    system("pause");
    return 0;
}
Миниатюры
Организация циклов. Условные и безусловные переходы.   Организация циклов. Условные и безусловные переходы.  
Yandex
Объявления
20.01.2012, 23:31     Организация циклов. Условные и безусловные переходы.
Ответ Создать тему
Опции темы

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