С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.54/2345: Рейтинг темы: голосов - 2345, средняя оценка - 4.54
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562

Задачи для тренировки и лучшего понимания

15.07.2010, 05:53. Показов 501275. Ответов 1272
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят. Кто-нибудь может дать задачу для тренировки? Приблизительно по всему курсу С++. Буду благодарен за сложную задачу, но которую способен сделать новичок-любитель. Затраты сил-времени не важно. Главное, чтобы это было интересно и не слишком рутинно. + Если найдется человек который даст задачу просьба помогать с кодом, который я буду себя скидывать. Не переписывать за меня, но указывать на ошибки и желательно объяснять. Заранее спасибо.

Список задач, решение которых присутствует в данной теме:
44
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.07.2010, 05:53
Ответы с готовыми решениями:

Элементарные программы, для лучшего понимания языка...
Здравствуйте. Вот сегодня решил что пора изучать с++. Есть пару задач. Начал решать и уже на первой запоролся( суть в том чтобы определить...

Задачи для тренировки и лучшего понимания языка
Предлагаю в этой теме размещать задачи, которые помогут новичкам (и не только) более детально разобраться в основах языка. При размещении...

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

1272
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
04.11.2010, 23:56
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от #pragma Посмотреть сообщение
Как,изменив один символ в исходном коде задачи,вызвать предупреждение в gcc
Поскольку один раз используется только N, то i > N заменить на i > 0
1
10 / 10 / 3
Регистрация: 05.11.2010
Сообщений: 30
05.11.2010, 00:51
Цитата Сообщение от nikkka Посмотреть сообщение
есть ещё одно очень интересное задание. вывести найбольшее из двух заданных чисел. смешно? а если
так
НИКАКИХ while, do, for, if!!!!! только арифметика!
?
Не знаю, была ли уже решена, все равно выложу. Заставила подумать, спасибо.
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <cmath>
 
int main()
{
 int ch1=0,ch2=0,a=0;
 std::cin>>ch1>>ch2;
 a=ch1-ch2;
 std::cout<<(ch1-fabs(a)+ch2)/2+fabs(a)<<"\n";
 return 0;
}
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
05.11.2010, 03:34
Zyoma, можно несколько проще:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//////////////////////////////////////////////////////////////////////////////////////
#include <cmath>
#include <iostream>
//////////////////////////////////////////////////////////////////////////////////////
int main()
{
    for(;;)
    {
        std::cout << "-> ";
        double a;
        std::cin >> a;
 
        std::cout << "-> ";
        double b;
        std::cin >> b;
 
        std::cout << "max: "                  
                  << (a + b + abs(a - b)) / 2.0
                  << std::endl
                  << std::endl;    
    }
}
0
10 / 10 / 3
Регистрация: 05.11.2010
Сообщений: 30
05.11.2010, 09:34
Ну, смысл один и тот же) Просто я по другому к этому пришел)
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
05.11.2010, 11:40
Ребята, вы использовали функцию abs, которая внутри себя использует ветвление. А почему бы не сделать ещё проще и использовать функции min и max? Чем такое решение принципиально будет отличаться от решения с использованием abs?
0
10 / 10 / 3
Регистрация: 05.11.2010
Сообщений: 30
05.11.2010, 11:48
В задаче сказано с помощью арифметики. Функция модуля вписывается под понятие арифметики) Мало того, выше страниц на 40 предлагали решение через max) Не интересно короче.
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
05.11.2010, 11:50
Цитата Сообщение от Zyoma Посмотреть сообщение
В задаче сказано при помощи арифметики. Функция модуля вписывается под понятие арифметики)
ну а почему бы тогда не использовать max? По твоей логике, это тоже "вписывается под понятие арифметики"
0
Эксперт С++
 Аватар для Хохол
476 / 444 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
05.11.2010, 12:17
Вот совсем без ветвлений на всякий:
C++
1
cout << (a >= b)*a + (a < b)*b;
1
10 / 10 / 3
Регистрация: 05.11.2010
Сообщений: 30
05.11.2010, 13:24
Цитата Сообщение от Nameless One Посмотреть сообщение
ну а почему бы тогда не использовать max? По твоей логике, это тоже "вписывается под понятие арифметики"
Ээээ, а ты в арифметике видел max? А вот абсолютное значение числа(тобишь модуль) там точно есть.
0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
05.11.2010, 13:31
Zyoma, что вы подразумеваете под арифметикой? Речь здесь идёт не о той арифметике, что в школе изучают (хотя и там модуля нет, его понятие вводится в алгебре, если не ошибаюсь). Так что функция (в чисто математическом смысле) модуля в стандартные арифметические операции не входит так же, как взятие интеграла.
0
10 / 10 / 3
Регистрация: 05.11.2010
Сообщений: 30
05.11.2010, 13:44
Ну вообще да, Вы правы. Арифметика включает в себя ровно 4 операции. Развели флуда на ровном месте. В любом случае правильно. Просто с max примитивно что ли...
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
05.11.2010, 15:19
Цитата Сообщение от Хохол Посмотреть сообщение
Вот совсем без ветвлений на всякий:
C++
1
cout << (a >= b)*a + (a < b)*b;
(int)(a >= b) - это по сути и есть условное исполнение. Т.е. в зависимости от результата сравнения результат есть 0 или 1.

Цитата Сообщение от Zyoma Посмотреть сообщение
Ну вообще да, Вы правы. Арифметика включает в себя ровно 4 операции. Развели флуда на ровном месте. В любом случае правильно. Просто с max примитивно что ли...
Подобные ответы канают для учителей и преподавателей, которые попросту не втыкают. Т.е. юридически ответ правильный, но по здравому смыслу - нет.

Пару дней назад была задача про реализацию функции, которая для значение 2 возвращает 1, а для значения 1 возвращает 2. Реализация "n == 1 ? 2 : 1" - содержит условное исполнение, а реализация "3 - n" - нет. Вот здесь действительно два разных типа решения. Разных по существу, а не по юридической формулировке

Добавлено через 1 час 19 минут
В общем, если кого-то ответ с abs'ом удовлетворяет - как говорится, бог в помощь. А кому интересно по сути - ответ уже давался: Нетривиальные задачи по программированию
0
Мат в 32 хода
 Аватар для nikkka
237 / 172 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
05.11.2010, 16:13
а так можно? (сильно не бейте...)
C++
1
return ~n+4
Добавлено через 15 минут
а так?
C++
1
return !bool(n-1)+1
Добавлено через 1 минуту
или так?
C++
1
return ~bool(n-1)+3
0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
06.11.2010, 14:45
nikkka, мы уже согласились, что в пределах одного способа решения можно придумать кучу вариантов (в данном случае комбинируется арифметика и побитовые операции).
0
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
09.11.2010, 15:32
Вот такая вот несложная задачка:
есть следующий класс
C++
1
2
3
4
5
6
7
template <typename T>
class SomeClass
{
    public:
        struct data { ... };
        ...
};
где в следующем коде ошибка, почему, и как исправить?
C++
1
2
3
4
5
6
7
template <typename T>
void func()
{
    SomeClass<int>::data d1;
    SomeClass<T>::data d2;
    ...
}
P.S. компилятором естественно не пользоваться т.к. он может дать подсказку
1
Эксперт С++
 Аватар для Хохол
476 / 444 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
09.11.2010, 15:55
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
template <typename T>
class SomeClass
{
    public:
        struct data {};
};
 
template <typename T>
void func()
{
    SomeClass<int>::data d1;
    SomeClass<T>::data d2;
}
 
int main()
{
 
}
Построение успешно завершено. Ошибок: 0. Предупреждений: 0.
0
09.11.2010, 17:58

Не по теме:

Хохол, компилироваться это не должно
codepad

0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
09.11.2010, 18:15
Цитата Сообщение от rangerx Посмотреть сообщение

Не по теме:

Хохол, компилироваться это не должно
codepad

А так?
1
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
09.11.2010, 18:15  [ТС]
rangerx, А вообще так разве можно? Вроде ведь только к статическим членам класса и typedef-ам так обращаться можно? Или к структурам тоже?
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
09.11.2010, 18:24
Цитата Сообщение от ForEveR Посмотреть сообщение
rangerx, А вообще так разве можно? Вроде ведь только к статическим членам класса и typedef-ам так обращаться можно? Или к структурам тоже?
Можно, эта одна из особенностей языка

Добавлено через 1 минуту
У Хохла, видать, компилятор сам смог разрешить двусмысленность в этом определении, поэтому все удачно скомпилировалось

Добавлено через 1 минуту
Цитата Сообщение от ForEveR Посмотреть сообщение
Вроде ведь только к статическим членам класса и typedef-ам так обращаться можно? Или к структурам тоже?
Если внимательно посмотреть, там объявляется структура данных (а не экземпляр структуры), причем с спецификатором public, поэтому (за некоторым исключением) имя класса здесь играет роль пространства имен
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.11.2010, 18:24
Помогаю со студенческими работами здесь

Набор задачь для тренировки и улучшения понимания программирования
Добрый вечер всем. Если кто знает модскажите где можно найти подобный набор задачь...

Проверить на правильность и закомментировать весь код для лучшего понимания
Всем здравствуйте. Условие задачи - Заданная матрица целых чисел размером (N, N). Найти среднее арифметическое элементов в окрашенной...

Нужны задачи для тренировки
Киньте задачки на классы......а то в самоучителе, по которому я учу Сишку....приведены задачки, касающиеся только математики.....сами...

Нужны задачи для тренировки
Здравствуйте киньте пожалуйста задания по с++ для человека начинающего изучать Turbo с++

Нужны задачи для тренировки
Вот не давно был школьный этап по программирование в школе(олимпиады). Меня закинули на городскую, вот только писал ту олимпиаду на...


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

Или воспользуйтесь поиском по форуму:
880
Закрытая тема Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru