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

Попадание точки. Массивы чисел. Массивы записей. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ количество глассных и согласных и сравнить каких больше http://www.cyberforum.ru/cpp-beginners/thread129104.html
Добрый день, есть програма на паскале, которая считает количество глассных и согласных и сравнивает каких больше uses crt; const sogl = ; glas = ; var sgl,gl,i:byte; stroka:string; begin
C++ Линейный динамический список 1. Напишите программу, создающую линейный динамический список, указанный в задании. Значения элементов вводятся с консоли. Вам понадобятся функции «создать», «добавить», «удалить список», «просмотр списка», а также переменная-указатель на начало списка. 2. Реализуйте указанную в задании функцию и продемонстрируйте ее работу. Задание: Односвязный список. Поиск минимального элемента в списке.... http://www.cyberforum.ru/cpp-beginners/thread129082.html
Создать одномерный массив, содержащий индексы элементов матрицы C++
Помогите пожалуйста решить Дана матрица 6х8 целого типа. Создать одномерный массив, содержащий индексы элементов матрицы, меньших числа, введенного с клавиатуры.
C++ Перемещение курсора в консоли
Помогите реализовать новичку перемещение курсора в консоли.Т.е. есть меню например Создать базу Редактировать Удалить И нужно передвигатся по нему курсором
C++ Выполнить сортировку строк файла в обратном лексикографическом порядке http://www.cyberforum.ru/cpp-beginners/thread129033.html
Имеется текстовый файл, содержащий не более 100 строк. Выполнить сортировку строк файла в обратном лексикографическом порядке. Результаты сортировки записать в новый файл. Помогите пожалуйста!)) Заранее благодарен!
C++ программа для шифрования и расшифровки текстовых файлов программа для шифрования и расшифровки текстовых файлов. подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,390
30.08.2010, 10:59     Попадание точки. Массивы чисел. Массивы записей.
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <iostream>
#include <cstdlib>
#include <cmath>
 
/*
 * Даны числа a и b. Определить, попадет ли точка с координатами (a, b) в заштрихованную область и вывести на экран соответствующее сообщение.
 * Если точка попадет в эту область, вычислить z по формуле
 
 * Если точка не попадет в эту область, вычислить z согласно условию
 
 * . . . [ 0.1*a если a>b
 *   z= <|
 * . . . [ 0.1*b если a=<b
 */
 
struct point
{
    double x;
    double y;
};
 
bool hit(const point& givenPoint)
{
    static const double rad = 20;
    static const double lim = 10;
    return ((fabs(givenPoint.x) <= lim) &&
            (givenPoint.x * givenPoint.x + givenPoint.y * givenPoint.y <= rad * rad));
}
 
int main()
{
    point pt;
    double z;
    std::cout << "Input the coordinates of the point" << std::endl;
    std::cout << "Input the x-coordinate: ";
    std::cin >> pt.x;
    std::cout << "Input the y-coordinate: ";
    std::cin >> pt.y;
    std::cout << "The point (" << pt.x << "; " << pt.y << ") ";
    if(hit(pt))
        std::cout << "hit the specified area" << std::endl;
    else
    {
        std::cout << "didn\'t hit the specified area" << std::endl;
        std::cout << "Calculating z..." << std::endl;
        z = 0.1 * (pt.x > pt.y ? pt.x : pt.y);
        std::cout << "z = " << z << std::endl;
    }
    return EXIT_SUCCESS;
}
3:
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#include <iostream>
#include <cstdlib>
#include <string>
#include <deque>
#include <fstream>
#include <iterator>
#include <sstream>
 
/*
 * Дан список товаров, содержащий следующие данные: название товара, стоимость
 * покупки, стоимость продажи, количество проданного товара. Найти прибыль от
 * каждого товара. Вывести список товаров с прибылью выше средней.
 */
 
class goods
{
 
public:
 
    goods(const std::string& name, double buyPrice, double sellPrice, size_t cnt)
        : m_sName(name), m_fbPrice(buyPrice), m_fsPrice(sellPrice), m_nCnt(cnt)
    {}
 
    double profit() const
    {
        return (m_fsPrice - m_fbPrice) * m_nCnt;
    }
 
    std::string name() const
    {
        return m_sName;
    }
 
private:
 
    std::string m_sName;
    double      m_fbPrice;
    double      m_fsPrice;
    size_t      m_nCnt;
};
 
class goodsList
{
 
public:
 
    goodsList()
    {}
 
    typedef std::deque<goods>::size_type        size_type;
    typedef std::deque<goods>::reference        reference;
    typedef std::deque<goods>::iterator         iterator;
 
    size_type size() const
    {
        return m_dGoods.size();
    }
 
    reference operator[](size_t index)
    {
        return m_dGoods.at(index);
    }
 
    iterator begin()
    {
        return m_dGoods.begin();
    }
 
    iterator end()
    {
        return m_dGoods.end();
    }
 
    double averageProfit()
    {
        double retVal = 0;
        for(std::deque<goods>::const_iterator it = m_dGoods.begin();
            it != m_dGoods.end();
            ++it)
            retVal += it->profit();
        return retVal / m_dGoods.size();
    }
 
    void push_back(const goods& rhs)
    {
        m_dGoods.push_back(rhs);
    }
 
private:
 
    std::deque<goods>   m_dGoods;
};
 
int main()
{
    const std::string inFile("input.txt");
    std::cout << "Opening file \'" << inFile << "\' for input." << std::endl;
    std::ifstream ifs(inFile.c_str());
    goodsList glist;
    if(!ifs)
    {
        std::cerr << "Can't open file \'" << inFile << "\' for input." << std::endl;
        return EXIT_FAILURE;
    }
    std::string line;
    while(std::getline(ifs, line))
    {
        if(ifs.bad())
        {
            std::cerr << "Error reading from file \'" << inFile << "\'" << std::endl;
            exit(EXIT_FAILURE);
        }
        std::istringstream iss(line);
        std::string name;
        double bP;
        double sP;
        size_t cnt;
        iss >> name >> bP >> sP >> cnt;
        goods g(name, bP, sP, cnt);
        glist.push_back(g);
    }
    double average = glist.averageProfit();
    std::cout << "Average profit = " << average << std::endl;
    std::cout << "Displaying goods names with profit above average:" << std::endl;
    for(goodsList::iterator it = glist.begin(); it != glist.end(); ++it)
        if(it->profit() > average)
            std::cout << it->name() << " : " << it->profit() << std::endl;
    return EXIT_SUCCESS;
}
Входной файл содержит записи в формате:
Код
название цена_покупки цена_продажи количество
Естественно, цена_покупки < цена_продажи
 
Текущее время: 05:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru