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

Можно ли еще сократить код? - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.62
Nikko12
 Аватар для Nikko12
1 / 1 / 0
Регистрация: 07.06.2013
Сообщений: 162
07.07.2013, 21:30     Можно ли еще сократить код? #1
Есть программа, которая должна считать данные из файла input.txt и записать ответ в фаил output.txt. Программа должна сложить 2 числа не превосходящих 10^9. Можно ли еще уменьшить код??
C++
1
2
3
4
5
6
7
8
9
#include <fstream>
long a,b; 
main()
{
    std::ifstream cin("input.txt");
    std::ofstream cout("output.txt");
    cin>>a>>b;
    cout<<a+b;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.07.2013, 21:30     Можно ли еще сократить код?
Посмотрите здесь:

C++ сократить код, добавить функцию
C++ сократить код
Сократить код на два символа C++
сократить код C++
C++ сократить код
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
07.07.2013, 21:33     Можно ли еще сократить код? #2
Файловым птокам не нужно давать такие имена. Это имена страндартных потоков для консольного ввода\вывода.
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
07.07.2013, 21:38     Можно ли еще сократить код? #3
C++
1
2
3
4
   freopen("input.txt","r",stdin);
   freopen("output.txt","w",stdout);
   cin >> a >> b;
   cout << a + b;
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
07.07.2013, 21:39     Можно ли еще сократить код? #4
Thinker, и в чём уменьшение?
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
07.07.2013, 21:41     Можно ли еще сократить код? #5
Цитата Сообщение от alsav22 Посмотреть сообщение
в чём уменьшение?
это более логично. хотя, уменьшения кода нет. короче сделать вряд ли можно
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
07.07.2013, 21:44     Можно ли еще сократить код? #6
Цитата Сообщение от Thinker Посмотреть сообщение
это более логично
Если не трудно, объясните в чём? Не догоняю...
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
07.07.2013, 21:45     Можно ли еще сократить код? #7
Цитата Сообщение от Nikko12 Посмотреть сообщение
Можно ли еще уменьшить код??
Уберите 10 и 11 строки А вообще, по какому критерию уменьшить надо?
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
07.07.2013, 21:49     Можно ли еще сократить код? #8
alsav22, легче отлаживать программы. достаточно закомментировать freopen и выводить на консоль. хм... там тоже так можно, но называть собственные потоки именами стандартных как то не то (внутренние убеждения )
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
07.07.2013, 22:01     Можно ли еще сократить код? #9

Не по теме:

Немного хочется сказать о перенаправлении потоков. Есть такая рекомендацпия, что код должен быть легко читаем и понимаем. В частности, имена переменных должны подсказывать из назначение. Если в коде встречается поток с именем cin, то первая буква его имени подсказывает, что чтение с консоли, если - cout, то вывод на консоль. При перенаправлении стандартных потоков только добавляется лишняя путаница. А что это, собственно, добавляет к эфективность (или чему-либо ещё) кода?



Цитата Сообщение от Tulosba Посмотреть сообщение
Уберите 10 и 11 строки
Можно ещё одной строкой всё записать...

Добавлено через 3 минуты
Цитата Сообщение от Tulosba Посмотреть сообщение
А вообще, по какому критерию уменьшить надо?
Может предложить вариант хоть по какому-либо?
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
07.07.2013, 22:04     Можно ли еще сократить код? #10
alsav22, freopen чаше используется для олимпиадных задач для уменьшения кода.
Nikko12
 Аватар для Nikko12
1 / 1 / 0
Регистрация: 07.06.2013
Сообщений: 162
07.07.2013, 22:13  [ТС]     Можно ли еще сократить код? #11
Цитата Сообщение от Tulosba Посмотреть сообщение
Уберите 10 и 11 строки А вообще, по какому критерию уменьшить надо?
Критерий уменьшения: чем меньше символов тем лучше, символ пробела не учитывается их можно ставить сколько душе угодно.

Добавлено через 1 минуту
Т. Е. нужно помаксимуму минимизировать кол-во символов. Правильно ли я понимаю, что на с++ уменьшить размер кода больше нет возможности???
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
07.07.2013, 22:18     Можно ли еще сократить код? #12
Цитата Сообщение от Nikko12 Посмотреть сообщение
уменьшить размер кода
Файла .cpp или файла .exe?
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
07.07.2013, 22:19     Можно ли еще сократить код? #13
Цитата Сообщение от Nikko12 Посмотреть сообщение
нужно помаксимуму минимизировать кол-во символов
тогда можно как минимум long заменить на int (если гарантировать 32 разряда), и имена переменных изменить на однобуквенные.
Nikko12
 Аватар для Nikko12
1 / 1 / 0
Регистрация: 07.06.2013
Сообщений: 162
07.07.2013, 22:22  [ТС]     Можно ли еще сократить код? #14
Цитата Сообщение от alsav22 Посмотреть сообщение
Файла .cpp или файла .exe?
Фаил срр

Добавлено через 1 минуту
Tulosba, Long на int заменить не получится
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
07.07.2013, 22:23     Можно ли еще сократить код? #15
Цитата Сообщение от Nikko12 Посмотреть сообщение
Фаил срр
C++
1
2
3
4
std::ifstream r("i");
std::ofstream w("o");
r>>a>>b;
w<<a+b;
Nikko12
 Аватар для Nikko12
1 / 1 / 0
Регистрация: 07.06.2013
Сообщений: 162
07.07.2013, 22:23  [ТС]     Можно ли еще сократить код? #16
Цитата Сообщение от Tulosba Посмотреть сообщение
имена переменных изменить на однобуквенные.
Что имеется ввиду, переменные и так из одной буквы?
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
07.07.2013, 22:26     Можно ли еще сократить код? #17
Цитата Сообщение от Nikko12 Посмотреть сообщение
Что имеется ввиду, переменные и так из одной буквы?
Так файловые потоки это тоже переменные
Nikko12
 Аватар для Nikko12
1 / 1 / 0
Регистрация: 07.06.2013
Сообщений: 162
07.07.2013, 22:26  [ТС]     Можно ли еще сократить код? #18
Цитата Сообщение от alsav22 Посмотреть сообщение
std::ifstream r("i");
std::ofstream w("o");
f>>a>>b;
w<<a+b;
C++
1
f>>a>>b;//может r>>a>>b; ??
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
07.07.2013, 22:28     Можно ли еще сократить код? #19
alsav22,
Цитата Сообщение от Nikko12 Посмотреть сообщение
из файла input.txt и записать ответ в фаил output.txt.
Добавлено через 1 минуту
Цитата Сообщение от Nikko12 Посмотреть сообщение
Long на int заменить не получится
почему?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.07.2013, 22:30     Можно ли еще сократить код?
Еще ссылки по теме:

C++ Сократить код до 89 символов
Скажите, пожалуйста, возможно ли код сократить еще? C++
Поделитесь советом. Как сократить еще 1 символ. =) C++

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

Или воспользуйтесь поиском по форуму:
Nikko12
 Аватар для Nikko12
1 / 1 / 0
Регистрация: 07.06.2013
Сообщений: 162
07.07.2013, 22:30  [ТС]     Можно ли еще сократить код? #20
Цитата Сообщение от Tulosba Посмотреть сообщение
Сообщение от Nikko12
Long на int заменить не получится
почему?
Иначе программа если ввести значение больше чем int, выведет не верный ответ
Yandex
Объявления
07.07.2013, 22:30     Можно ли еще сократить код?
Ответ Создать тему
Опции темы

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