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

Используя объект — функцию, удалите из вектора все числа, синус которых меньше 0,5 - C++

Восстановить пароль Регистрация
 
Tsyklop
 Аватар для Tsyklop
3 / 3 / 2
Регистрация: 01.01.2014
Сообщений: 267
19.07.2014, 15:15     Используя объект — функцию, удалите из вектора все числа, синус которых меньше 0,5 #1
Заполните вектор vector<double> числами, представляющими собой углы в радианах. Используя объект — функцию, удалите из вектора все числа, синус которых меньше 0,5.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.07.2014, 15:15     Используя объект — функцию, удалите из вектора все числа, синус которых меньше 0,5
Посмотрите здесь:

C++ Заменить все значения элементов матрицы нулями, значения которых меньше числа k
C++ [C++] Создать функцию, которая печатает все натуральные числа, меньше N, являющиеся полиндромом.
Напечатать все строки, длина которых меньше заданного числа C++
Найти все дроби и их количество, знаменатель которых меньше заданного числа C++
Найти все простые числа из интервала от 100 до 1000, используя логическую функцию C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
porshe
 Аватар для porshe
52 / 46 / 17
Регистрация: 18.07.2014
Сообщений: 194
19.07.2014, 16:49     Используя объект — функцию, удалите из вектора все числа, синус которых меньше 0,5 #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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <iostream>
#include <vector>
#include <cmath>
#include <ctime>
#include <cstdlib>
 
using namespace std;
 
void func( vector<double>& );
 
int main()
{
    srand ( (unsigned)time( NULL ) );
    setlocale( 0, "" );
    vector<double> angles;
    register int i;
    double temp;
    cout << "ÈñõîäГ*ûå Г§Г*Г*Г·ГҐГ*ГЁГї: " << endl;
    for ( i = 0; i < 50; i++ )
    {
        temp = static_cast<double>( 0 + rand() % 360 );
        cout << "ß÷åéêГ*[ " << i+1 << " ] = " << temp << endl;
        angles.push_back( temp );
    }
    func( angles );
    cout << "-------------\nГЋГ±ГІГ*ГўГёГЁГҐГ±Гї ÿ÷åéêè Г± Г±ГЁГ*óñîì áîëüøå 0.5: " << endl;
    for ( i = 0; i < angles.size(); i++ )
        cout << "ß÷åéêГ*[ " << i+1 << " ] = " << angles[i] << endl;
    return 0;
}
 
void func( vector<double> &vec )
{
    for ( int i = 0; i < vec.size(); i++ )
    {
        if ( sin( vec[i] ) < 0.5 )
           vec.erase( vec.begin() + i );
    }
}
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11820 / 6799 / 769
Регистрация: 27.09.2012
Сообщений: 16,874
Записей в блоге: 2
Завершенные тесты: 1
19.07.2014, 17:25     Используя объект — функцию, удалите из вектора все числа, синус которых меньше 0,5 #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <vector>
#include <functional>
#include <cmath>
#include <iterator>
#include <algorithm>
 
struct MyFunctor : public std::unary_function<double,bool>
{
    result_type operator() ( const argument_type & x )
    {
        return std::sin(x) < 0.5 ;
    }
} ;
 
int main()
{
    std::vector < double > vec ( std::istream_iterator<double>(std::cin) , (std::istream_iterator<double>()) ) ;
    vec.erase ( std::remove_if ( vec.begin() , vec.end() , MyFunctor() ) , vec.end() ) ;
    std::copy ( vec.begin() , vec.end() , std::ostream_iterator<double>(std::cout , " ") ) ;
}
Tsyklop
 Аватар для Tsyklop
3 / 3 / 2
Регистрация: 01.01.2014
Сообщений: 267
19.07.2014, 18:28  [ТС]     Используя объект — функцию, удалите из вектора все числа, синус которых меньше 0,5 #4
Благодарю всех.
Yandex
Объявления
19.07.2014, 18:28     Используя объект — функцию, удалите из вектора все числа, синус которых меньше 0,5
Ответ Создать тему
Опции темы

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