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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
marselo_io_off
2 / 2 / 0
Регистрация: 12.02.2010
Сообщений: 53
06.05.2010, 18:34     Олимпиадка для новичка на С++ #1
Сразу влепили усиленную задачу, причем ничего не объяснили по С++. Делай как хочешь. А до сессии 3 недели. Помогите плиз. Я замаялся. Итак начитался книги, видимо до этого еще далеко. Собсно вот задача.

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

Пример:

Input.txt

23

56

53

34

12

67


Output.txt

No

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

C++ Учебник для новичка по с++?
Среда разработки для новичка C++
Компилятор для новичка C++
OpenGL для новичка C++
Важно для новичка C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrRockchip
 Аватар для MrRockchip
3 / 3 / 0
Регистрация: 30.05.2009
Сообщений: 27
07.05.2010, 15:07     Олимпиадка для новичка на С++ #2
А в какой среде ты программируешь?
Просто в C++ Builder такую программу написать намного легче, чем в Visual Studio
(там можно создать TMemo для работы с текстовыми файлами)
marselo_io_off
2 / 2 / 0
Регистрация: 12.02.2010
Сообщений: 53
07.05.2010, 15:11  [ТС]     Олимпиадка для новичка на С++ #3
Цитата Сообщение от MrRockchip Посмотреть сообщение
А в какой среде ты программируешь?
Просто в C++ Builder такую программу написать намного легче, чем в Visual Studio
(там можно создать TMemo для работы с текстовыми файлами)
в Dev C++
ISergey
Maniac
Эксперт С++
 Аватар для ISergey
1330 / 863 / 50
Регистрация: 02.01.2009
Сообщений: 2,621
Записей в блоге: 1
08.05.2010, 03:20     Олимпиадка для новичка на С++ #4
Цитата Сообщение от MrRockchip Посмотреть сообщение
А в какой среде ты программируешь?
Просто в C++ Builder такую программу написать намного легче, чем в Visual Studio
Сам язык к разным средам не должен иметь ни какого отношения...
marselo_io_off
2 / 2 / 0
Регистрация: 12.02.2010
Сообщений: 53
08.05.2010, 07:09  [ТС]     Олимпиадка для новичка на С++ #5
так поможете или нет? я вряд ли успею осилить весь материал
MrRockchip
 Аватар для MrRockchip
3 / 3 / 0
Регистрация: 30.05.2009
Сообщений: 27
08.05.2010, 12:28     Олимпиадка для новичка на С++ #6
Цитата Сообщение от ISergey Посмотреть сообщение
Сам язык к разным средам не должен иметь ни какого отношения...
Это правда. Но ведь в С++ Builder есть элемент TMemo,
в котором, используя специальные билдеровские функции,
такие как TMemo1->Strings->String[5]=S
намного легче работать с текстом, чем используя seek'и и cur'ы :
они хоть и входят в стандарт языка, но работать с ними довольно таки сложно.
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
08.05.2010, 12:35     Олимпиадка для новичка на С++ #7
MrRockchip, fscanf для дураков?

Не по теме:

олимпиадные задачки, вот умора

ISergey
Maniac
Эксперт С++
 Аватар для ISergey
1330 / 863 / 50
Регистрация: 02.01.2009
Сообщений: 2,621
Записей в блоге: 1
08.05.2010, 14:48     Олимпиадка для новичка на С++ #8
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
#include <algorithm>
#include <iterator>
#include <iostream>
#include <fstream>
#include <vector>
#include <numeric>
 
int main(){
    std::vector<int> vec;
    std::ifstream file("file.txt");
 
    std::copy
        (
            std::istream_iterator<int>(file),
            std::istream_iterator<int>(),
            std::back_inserter(vec)
        );
    file.close();
 
    int mean = 
        std::accumulate(vec.begin(), vec.end(), 0, std::plus<int>()) / vec.size();
    int count = 
        std::count_if(vec.begin(), vec.end(), std::bind2nd(std::less<int>(), mean));
 
 
//  std::copy(vec.begin(), vec.end(), std::ostream_iterator<int>(std::cout, " "));
//  std::cout << "\nMean: " << mean << "\nCount: " << count << std::endl;
 
    std::ofstream ofile("out.txt");
    ofile << (count < 10 ? "No\n" : "Yes\n") << count;
    ofile.close();
 
    return 0;
}
marselo_io_off
2 / 2 / 0
Регистрация: 12.02.2010
Сообщений: 53
08.05.2010, 16:55  [ТС]     Олимпиадка для новичка на С++ #9
спасибо, но вот как запускаю экзешник, система выдает ошибку "maiт.exe не работает".
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16821 / 5242 / 318
Регистрация: 30.03.2009
Сообщений: 14,118
Записей в блоге: 26
08.05.2010, 17:04     Олимпиадка для новичка на С++ #10
Цитата Сообщение от marselo_io_off Посмотреть сообщение
причем ничего не объяснили по С++
А что объясняли?
ISergey
Maniac
Эксперт С++
 Аватар для ISergey
1330 / 863 / 50
Регистрация: 02.01.2009
Сообщений: 2,621
Записей в блоге: 1
08.05.2010, 17:05     Олимпиадка для новичка на С++ #11
спасибо, но вот как запускаю экзешник, система выдает ошибку "maiт.exe не работает".
создай файл "file.txt" и запиши в него примером это...
Цитата Сообщение от file.txt
23
56
53
34
12
67
23
marselo_io_off
2 / 2 / 0
Регистрация: 12.02.2010
Сообщений: 53
08.05.2010, 20:33  [ТС]     Олимпиадка для новичка на С++ #12
Цитата Сообщение от Evg Посмотреть сообщение
А что объясняли?
кое-какой синтаксис, а дальше говорят читайте книгу и занимайтесь. спрашивается, на кой хер тогда я поступал в универ??? высшей степени идиотизм

Добавлено через 2 часа 39 минут
Цитата Сообщение от ISergey Посмотреть сообщение
создай файл "file.txt" и запиши в него примером это...

спасибо, друг, спасибо тебе большое!!!!!! прям не знаю, что сказать!!! а вот преподов нашего универа надо повесить за такое образование!!!

СПАСИБО тебе еще раз!
FireNovel
09.05.2010, 22:03
  #13

Не по теме:

Что за универ и специальность? Очень интересно и любопытно

CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
09.05.2010, 22:36     Олимпиадка для новичка на С++ #14
Цитата Сообщение от marselo_io_off Посмотреть сообщение
кое-какой синтаксис, а дальше говорят читайте книгу и занимайтесь. спрашивается, на кой хер тогда я поступал в универ??? высшей степени идиотизм
Если ты думаешь, что в университете тебя всему научат и обучат, то ты жестоко ошибаешься. Так что литературу в руки и вперед.
Norby
 Аватар для Norby
64 / 64 / 2
Регистрация: 12.03.2008
Сообщений: 392
09.05.2010, 22:43     Олимпиадка для новичка на С++ #15
Это все "болванская" (болонская) система. Преподы могут объяснить только 60% материала и 40% оставить на самостоятельное изучение. Такие вот пироги.
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
09.05.2010, 23:14     Олимпиадка для новичка на С++ #16
Цитата Сообщение от Norby Посмотреть сообщение
Преподы могут объяснить только 60% материала и 40% оставить на самостоятельное изучение. Такие вот пироги.
и правильно, программированию нельзя научить, можно только научиться, всю жизнь учить чтоли будут?
CyBOSSeR
09.05.2010, 23:18
  #17

Не по теме:

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

easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
09.05.2010, 23:27     Олимпиадка для новичка на С++ #18
Друзья, флудить прекращаем!
niXman
Эксперт C++
 Аватар для niXman
3133 / 1445 / 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;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.05.2010, 16:41     Олимпиадка для новичка на С++
Еще ссылки по теме:

STL для новичка! C++
C++ Книги по c++ для новичка
C++ Отличия в C++11 для новичка

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

Или воспользуйтесь поиском по форуму:
marselo_io_off
2 / 2 / 0
Регистрация: 12.02.2010
Сообщений: 53
10.05.2010, 16:41  [ТС]     Олимпиадка для новичка на С++ #20
Цитата Сообщение от alex_x_x Посмотреть сообщение
и правильно, программированию нельзя научить, можно только научиться, всю жизнь учить чтоли будут?
я это сам понял ,потому что почитал книгу немного (а книжки-то большие) - знать стал больше, че м они смогут объянсить. тогда вообще нафига нужно создавать специальности типа "мы программисты"
Yandex
Объявления
10.05.2010, 16:41     Олимпиадка для новичка на С++
Ответ Создать тему
Опции темы

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