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

Задачи по функциям. Объясните задачу по функциям) - C++

Восстановить пароль Регистрация
 
Dinara_rakipova
0 / 0 / 0
Регистрация: 30.04.2013
Сообщений: 13
16.05.2013, 09:16     Задачи по функциям. Объясните задачу по функциям) #1
Вводится последовательность из N целых чисел. Для каждого числа последовательности вывести новое число, которое получится после записи цифр числа в обратном порядке (функцией оформить определение нового числа для заданного).
...Где в данной программе определение,вызов функции? И есть ли сдеть функция вообще?)
C++
1
2
3
for_each(coll.begin(), coll.end(), [](int &elem) { elem = 100 + rand() % 201; });
copy(coll.begin(), coll.end(), ostream_iterator<int>(cout, " "));
cout << endl;
C++
1
for_each(coll.begin(), coll.end(), [](int &elem)
-что означают данные строчки, можно ли сделать проще?)
Заранее спасибо!

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
#include <iostream>
#include <algorithm>
#include <iterator>
#include <vector>
#include <time.h>
#include <cstdlib>
using namespace std;
 
int main()
{
  setlocale (LC_CTYPE, "Russian");
    int N;
    cout<<"Введите количество элементов последовательности из N целых чисел:";
cin>>N;
    srand(time(NULL));
    vector<int> coll(N);
 
    for_each(coll.begin(), coll.end(), [](int &elem) { elem = 100 + rand() % 201; });
  copy(coll.begin(), coll.end(), ostream_iterator<int>(cout, " "));
    cout << endl;
     for_each(coll.begin(), coll.end(), [](int &elem)
    {
        int value(0);
        while(elem != 0){
            if(value == 0){
                value = elem % 10;
                elem /= 10;
            }
            else{
                value *= 10;
                value += elem % 10;
                elem /= 10;
            }
        }
         elem = value;
    });
     copy(coll.begin(), coll.end(), ostream_iterator<int>(cout, " "));
    cout << endl;
     cout << "\n\n";
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.05.2013, 09:16     Задачи по функциям. Объясните задачу по функциям)
Посмотрите здесь:

Вопрос по функциям C++
C++ Справочник по функциям C/C++
C++ Подскажите по функциям.
C++ Вопрос по функциям
C++ Вопрос по функциям
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vua72
410 / 410 / 83
Регистрация: 28.11.2010
Сообщений: 1,158
16.05.2013, 10:27     Задачи по функциям. Объясните задачу по функциям) #2
можно проще, здесь используются возможности стандарта с++11
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
16.05.2013, 10:29     Задачи по функциям. Объясните задачу по функциям) #3
Dinara_rakipova, vua72, Что значит "проще"? Стандарт С++11 создан именнго для того, чтобы упростить/сделать более удобной разработку кода на С++
vua72
16.05.2013, 10:56
  #4

Не по теме:

ForEveR, вы же сами прекрасно понимаете смысл вопроса и фразы "проще" у автора топика.

Biggs
16 / 10 / 0
Регистрация: 12.03.2011
Сообщений: 52
16.05.2013, 11:35     Задачи по функциям. Объясните задачу по функциям) #5
Добавьте в самом верху
#include<stdio.h>
#include<conio.h>

И еще
Перед return поставьте getch();
Чтобы картинка не исчезала
call.begin начало вектора, возвращает итератор на на первый элемент вектора
call.end конец вектора
Функция переворота цифр не определена отдельной функцией, а реализуется внутри программы
Что такое [](int &elem) не знаю
Возможно специалисты расскажут
vua72
410 / 410 / 83
Регистрация: 28.11.2010
Сообщений: 1,158
16.05.2013, 11:42     Задачи по функциям. Объясните задачу по функциям) #6
Строки, которые вызвали у вас затруднение производят обход по коллекции элементов.
В С++11 "проще" записать так
C++
1
2
3
4
    for (int & elem : coll) {
        elem = 100 + rand() % 201;
        cout << elem << " ";
    }
или в старом стиле (до C++11)
C++
1
2
3
4
5
    typedef std::vector<int>::iterator vecit;
    for (vecit it=coll.begin(); it!=coll.end(); ++it){
        *it=100 + rand() % 201;
        cout << *it << " ";
    }
Добавлено через 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
#include <iostream>
#include <algorithm>
#include <iterator>
#include <vector>
#include <time.h>
#include <cstdlib>
using namespace std;
 
void solve(vector<int>& coll);
 
int main() {
    setlocale(LC_CTYPE, "Russian");
    int N;
    cout << "Введите количество элементов последовательности из N целых чисел:";
    cin >> N;
    srand(time(NULL));
    vector<int> coll(N);
    // заполнение массива
    for (int & elem : coll) {
        elem = 100 + rand() % 201;
        cout << elem << " ";
    }
    cout << endl;
    // функция
    solve(coll);
    // вывод на экран
    copy(coll.begin(), coll.end(), ostream_iterator<int>(cout, " "));
    cout << endl;
    cout << "\n\n";
    return 0;
}
 
void solve(vector<int>& coll) {
    for (int &elem : coll) {
        int value(0);
        while (elem != 0) {
            if (value == 0) {
                value = elem % 10;
                elem /= 10;
            } else {
                value *= 10;
                value += elem % 10;
                elem /= 10;
            }
        }
        elem = value;
    };
}

Не по теме:

Biggs, к чему ваши советы, если вы не понимаете о чем речь?



Добавлено через 1 минуту
Вообще, если можно вместо vector использовать просто массив int, но с переделкой кода (значительной)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.05.2013, 20:22     Задачи по функциям. Объясните задачу по функциям)
Еще ссылки по теме:

Консультация по функциям C++
Задача по функциям C++
C++ Расписать по функциям

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

Или воспользуйтесь поиском по форуму:
Biggs
16 / 10 / 0
Регистрация: 12.03.2011
Сообщений: 52
16.05.2013, 20:22     Задачи по функциям. Объясните задачу по функциям) #7

Не по теме:

Biggs, к чему ваши советы, если вы не понимаете о чем речь?


Спасибо за код
Я надеялся, что кто нибудь расскажет про лямбда функции в C++
Yandex
Объявления
16.05.2013, 20:22     Задачи по функциям. Объясните задачу по функциям)
Ответ Создать тему
Опции темы

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