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

Задачи - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Несколько условий в одном if http://www.cyberforum.ru/cpp-beginners/thread354522.html
например в паскале можно if (a>b)and(a<10) в с++ как этосделать?
C++ Решение неравенства Помогите с решением следующей задачи. Необходимо составить программу решения неравенства a*x^2+b<=0. Значения a и b вводятся с клавиатуры. При отсутствии решения или бесчисленном множестве решений должен быть напечатан соответствующий текст. http://www.cyberforum.ru/cpp-beginners/thread354520.html
Перегрузка оператора new и delete C++
привет! подскажите, каким образом можно перегрузить операторы new и delete? заранее спасибо!
Запись, чтение объектов в файл через указатели. C++
не могу прочитать объекты из файла. Сломал голову. Все перепробовал. Препод отправил гуглить))). Писать что то вроде пишет? Но что? А читать при перезапуске программы отказывается. Говорит что в файле (0) объектов. И ошибка сегментирования (как правило выход за пределы цикла)??? #include<iostream> #include<cstdlib> #include<fstream> using namespace std;
C++ Пример из MSDN не компилируется Dev-C++ http://www.cyberforum.ru/cpp-beginners/thread354514.html
Уважаемые Коллеги, возможно из-за недостатка опыта не могу понять причину возникновения ошибок при компиляции Dev-C++ файла-примера печати окна, взятого из http://support.microsoft.com/kb/186736/ru Вот его фрагменты: .... // Create a copy of the current system palette. HPALETTE GetSystemPalette() { HDC hDC; HPALETTE hPal; HANDLE hLogPal; LPLOGPALETTE...
C++ Буквы из текста Дан текст из строчных латинских букв, за которым следует точка. Напечатать: а) первые вхождения букв в текст, сохраняя их исходный порядок; б) все буквы, входящие в текст не менее 2 раз; в) все буквы, входящие в текст по 1 разу. подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
3042 / 1687 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
22.09.2011, 12:08     Задачи
Nameless One,
-=ЮрА=-,
попробуйте запустить свои программы со значениями, например, M = 0 и P = 0.000000001.
Мое решение:
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
/////////////////////////////////////////////////////////////////////////////////////////
#include <cassert>
#include <cmath>
#include <iostream>
#include <limits>
/////////////////////////////////////////////////////////////////////////////////////////
const double  double_eps = std::numeric_limits<double>::epsilon();
/////////////////////////////////////////////////////////////////////////////////////////
double  count_sec
    (
        double  voltage_start,
        double  voltage_finish,
        double  _2_sec_factor
    )
{
    return  ceil
                ( 
                    log
                        (
                             voltage_finish * ( 1.0 + double_eps )
                             / voltage_start
                        ) 
                    / log(_2_sec_factor) 
                ) * 2.0;
}
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));
    
    double        voltage_start   = 200;
    double        voltage_finish  = 220;    
    assert(voltage_finish - voltage_start > double_eps * voltage_start);
 
    double  percents_minus = 0;
    do
    {
        std::cout << "Введите процент уменьшения >= 0, < 100:"
                  << '\t';
        std::cin >> percents_minus;
    }while(   percents_minus < 0
           || percents_minus >= 100);  
 
    double  percents_plus  = 0;
    double  _2_sec_factor  = 0;
 
    for(;;)
    {
        std::cout << "Введите процент увеличения: "
                  << '\t'
                  << '\t'; 
 
        std::cin >> percents_plus;
        _2_sec_factor  = (100 - percents_minus) * (100 + percents_plus) / 100.0 / 100.0;        
        if( _2_sec_factor < 1.0 + double_eps )
        {
            std::cout << std::endl
                      << "Введите большее значение!"
                      << std::endl;
        }
        else
        {
            break;
        }
    }    
 
    std::cout << std::endl
              << "Если первоначальное напряжение в цепи было равно "
              << voltage_start
              << " Вольт"
              << std::endl
              << "и каждую нечетную секунду оно уменьшалось на "
              << percents_minus
              << " %, "
              << std::endl 
              << "а каждую четную увеличивалось на "
              << percents_plus
              << " %, "
              << std::endl
              <<"то оно превысило "
              << voltage_finish
              << " Вольт через "
              << count_sec
                     (
                        voltage_start,
                        voltage_finish,
                        _2_sec_factor                        
                     )
 
              << " секунд."
              << std::endl;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru