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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
marselo_io_off
2 / 2 / 0
Регистрация: 12.02.2010
Сообщений: 53
#1

Олимпиадка для новичка на С++ - C++

06.05.2010, 18:34. Просмотров 1634. Ответов 23
Метки нет (Все метки)

Сразу влепили усиленную задачу, причем ничего не объяснили по С++. Делай как хочешь. А до сессии 3 недели. Помогите плиз. Я замаялся. Итак начитался книги, видимо до этого еще далеко. Собсно вот задача.

Дан текстовый файл input.txt в, котором содержится массив натуральных чисел от 0 до 255. Вычислить кол-во элементов меньше среднего в массиве. В файл output.txt в первую строчку записать слово Yes если кол-во элементов меньше среднего больше 10 и No если меньше 10. Во второй строке файла записать кол-во этих элементов.

Пример:

Input.txt

23

56

53

34

12

67


Output.txt

No

3
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.05.2010, 18:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Олимпиадка для новичка на С++ (C++):

Литература для новичка - C++
Добрый день уважаемые гиберчани. Кругом много литературы о вводе в программирование. Знаю что тут много литературы тоже наблюдается. ...

OpenGL для новичка - C++
Всем привет. Никак не могу найти книгу по OpenGL и C++, хотя нет, вру, находил. Но они так сказать далеко не первой свежести. Я хотел бы...

Видеокурсы для новичка - C++
Всем Привет, Подскажите пожалуйста актуальные видеокурсы(именно видуокурсы) по C++,

STL для новичка! - C++
Здравствуйте! подскажите пожалуйста мне, дураку(только начал изучать STL) ответ на такой вопрос! что нужно подставить в 19 строку? ...

Компилятор для новичка - C++
будь ласка, дайте (порекомендуйте) компилятор, которым пользуетесь, для новичка, у меня установлен: rad studio, vs studio 2012, vs studio...

Отличия в C++11 для новичка - C++
Недавно увидел что в 2011 был принят какой-то новый стандарт языка програмирования C++(C++11).Я сам сейчас изучаю этот язык по "C++ Вводный...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
09.05.2010, 23:14 #16
Цитата Сообщение от Norby Посмотреть сообщение
Преподы могут объяснить только 60% материала и 40% оставить на самостоятельное изучение. Такие вот пироги.
и правильно, программированию нельзя научить, можно только научиться, всю жизнь учить чтоли будут?
0
CyBOSSeR
09.05.2010, 23:18
  #17

Не по теме:

Цитата Сообщение от marselo_io_off Посмотреть сообщение
а вот преподов нашего универа надо повесить за такое образование!!!
Дело не в преподавателях, а в системе образования, которая в большинстве университетов с советских времен не сильно изменилась.

0
easybudda
Модератор
Эксперт CЭксперт С++
9626 / 5574 / 947
Регистрация: 25.07.2009
Сообщений: 10,709
09.05.2010, 23:27 #18
Друзья, флудить прекращаем!
1
niXman
Эксперт C++
3135 / 1447 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
10.05.2010, 00:53 #19
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
позволю себе вставить несколько копеек

ISergey, код весьма не плох. но немного упрощу
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 <algorithm>
#include <iterator>
#include <iostream>
#include <fstream>
#include <vector>
#include <numeric>
 
int main(){
   std::vector<int> vec;
   {
      std::ifstream file("filename.txt");
      vec.assign((std::istream_iterator<std::string>(file)),
                     (std::istream_iterator<std::string>())
      );
   }
   int mean =  std::accumulate(vec.begin(), vec.end(), 0) / vec.size();
   int count = std::count_if(vec.begin(), vec.end(), std::bind2nd(std::less<int>(), mean));
 
   std::ofstream file("out.txt");
   file << (count < 10 ? "No\n" : "Yes\n") << count;
 
   return 0;
}
3
marselo_io_off
2 / 2 / 0
Регистрация: 12.02.2010
Сообщений: 53
10.05.2010, 16:41  [ТС] #20
Цитата Сообщение от alex_x_x Посмотреть сообщение
и правильно, программированию нельзя научить, можно только научиться, всю жизнь учить чтоли будут?
я это сам понял ,потому что почитал книгу немного (а книжки-то большие) - знать стал больше, че м они смогут объянсить. тогда вообще нафига нужно создавать специальности типа "мы программисты"
0
marselo_io_off
2 / 2 / 0
Регистрация: 12.02.2010
Сообщений: 53
11.05.2010, 19:34  [ТС] #21
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
#include <algorithm>
#include <iterator>
#include <iostream>
#include <fstream>
#include <vector>
#include <numeric>
 
int main()
{
    1.   std::vector<int> vec;
          std::ifstream file("input.txt");
    2.    std::copy
                (
                        std::istream_iterator<int>(file),
                        std::istream_iterator<int>(),
                        std::back_inserter(vec)
                );
        file.close();
    3.    int mean = std::accumulate(vec.begin(), vec.end(), 0, std::plus<int>()) / vec.size();
    4.    int count = std::count_if(vec.begin(), vec.end(), std::bind2nd(std::less<int>(), mean));
          std::ofstream ofile("output.txt");
          ofile << (count < 10 ? "No\n" : "Yes\n") << count;
          ofile.close();
          system ("PAUSE");
}

я что-то в этом коде понимаю, но все равно многое непонятно. ну т.е. не как в книжке написано. вот те пункты, которые я пометил, объясните пожалуйста
0
ISergey
Maniac
Эксперт С++
1374 / 885 / 52
Регистрация: 02.01.2009
Сообщений: 2,658
Записей в блоге: 1
12.05.2010, 08:22 #22
marselo_io_off, Ищи книги по STL, там более понятно расписана работа с шаблонами..
0
marselo_io_off
2 / 2 / 0
Регистрация: 12.02.2010
Сообщений: 53
12.05.2010, 16:44  [ТС] #23
Цитата Сообщение от ISergey Посмотреть сообщение
marselo_io_off, Ищи книги по STL, там более понятно расписана работа с шаблонами..
да я все никак не возьму в толк, что выполняют int mean = std::accumulate(vec.begin(), vec.end(), 0, std:lus<int>()) / vec.size();
int count = std::count_if(vec.begin(), vec.end(), std::bind2nd(std::less<int>(), mean));

mean считает среднее в массиве, я же прав?
count я не могу понять. что он делает?
0
CyBOSSeR
Эксперт C++
2302 / 1672 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
12.05.2010, 17:24 #24
Цитата Сообщение от marselo_io_off Посмотреть сообщение
mean считает среднее в массиве, я же прав?
Именно так.
Цитата Сообщение от marselo_io_off Посмотреть сообщение
count я не могу понять. что он делает?
Подсчитывает количество элементов меньших mean.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.05.2010, 17:24
Привет! Вот еще темы с ответами:

Книги по c++ для новичка - C++
Подскажите книги по c++ для новичка Знаний в програмировании нет

Важно для новичка - C++
Здравствуйте уважаемые участники. Я задам вам вопрос, который является достаточно сложны для меня, по причине &quot;низкой обзорной...

Учебник для новичка по с++? - C++
Извините возможно за очередную тему с этим вопросом... но я не как не могу найти в нете книгу для меня... везде идет разговор совершенно не...

создать функцию для новичка - C++
Создать функцию которая вставляет в предложение данное слово. Новое слово должно стать в предложение n-ним (n как третий параметр...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
12.05.2010, 17:24
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru