В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562

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

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

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

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

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

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

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

1272
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
04.11.2010, 00:09  [ТС]
Студворк — интернет-сервис помощи студентам
Somebody,
Попытка
Если я еще не совсем убился - то
qq1(0)
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
04.11.2010, 00:26
Цитата Сообщение от fasked Посмотреть сообщение
Не то чтобы это задачка, но все же напишу.

Сегодня наткнулся на неожиданное отличие Си от Си++ (для меня во всяком случае).
Вот такой код отлично компилируется g++.
C++
1
2
3
4
5
int main()
{
        int a = 0, b = 0;
        a == 1 ? a = 0 : b = 1;
}
И тот же самый код при компиляции gcc приводит к такой ошибке:
Code
1
main.c:4:2: error: lvalue required as left operand of assignment
Теперь, чтобы сообщение содержало хоть какой-то вопрос.
Как избавиться от ошибки при компиляции?
Эту хрень мы уже обсуждали. Вот нашёл только одну ссылку (начало где-то в той же теме, но сентенция в указанном посте).
Приведите 10 примеров непереносимого кода
Но вроде бы где-то ещё было
0
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
04.11.2010, 12:27
ForEveR, правильно
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
04.11.2010, 12:38
C
1
2
3
4
5
6
main() 
{ 
       int i, N=20; 
       for(i = 0 ; i < N ; i--) 
               printf("*"); 
}
Найдите три способа поменять в этом коде один символ, чтобы в результате код печатал 20 звездочек. Менять можно только по одному символу, ничего нельзя переставлять или передвигать

Добавлено через 4 минуты
Пишу "три способа", потому как в своё время мы только три нашли. Фиг знает, может есть ещё. Нашли ещё один способ, при котором печатается 21 звёздочка
0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
04.11.2010, 12:42
1 способ
C
1
2
3
4
5
6
main() 
{ 
       int i, N=20; 
       for(i = 0 ;-i < N ; i--) 
               printf("*"); 
}
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
04.11.2010, 12:46
Самый очевидный
C
1
2
3
4
5
6
int main() 
{
        int i, N = 20; 
        for(i = 0 ; i < N; N--)
                printf("*"); 
}
0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
04.11.2010, 12:47
fasked, под кат, пожалуйста)))
0
Эксперт С++
 Аватар для Хохол
476 / 444 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
04.11.2010, 13:01
https://www.cyberforum.ru/cpp-... post877346
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
04.11.2010, 13:02
silent_1991, тогда
вот так
C
1
2
3
4
5
6
7
8
#include <stdio.h>
 
int main() 
{
        int i, N = 20;
        for(i = 0; ~i < N; i--)
                printf("*"); 
}
тоже можно
0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
04.11.2010, 13:17
fasked, так получается 21 звёздочка)))
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
04.11.2010, 13:20
Цитата Сообщение от silent_1991 Посмотреть сообщение
так получается 21 звёздочка)))
да, и правда, я как-то не посчитал сначала даже
Цитата Сообщение от Evg Посмотреть сообщение
Нашли ещё один способ, при котором печатается 21 звёздочка
видимо это он
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
04.11.2010, 14:08
Цитата Сообщение от Хохол Посмотреть сообщение
Однако боян
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
04.11.2010, 15:37
Недавно одному из коллег на собеседовании попалась такая забавная задачка:
Написать функцию принимающую число и возвращающую 1, если была передана 2 и возвращающую 2, если была передана 1. Напишите все варианты решения.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
04.11.2010, 15:41
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Напишите все варианты решения.
Чем-то мне такая постановка задачи напоминает историю про барометр
0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
04.11.2010, 16:06
CyBOSSeR, слишком уж фраза неоднозначная - "все варианты решения". Их разве не бесконечное множество?
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
04.11.2010, 16:07
Цитата Сообщение от silent_1991 Посмотреть сообщение
Их разве не бесконечное множество?
Их несколько.
0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
04.11.2010, 16:21
Ну скажем, вот три:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int foo1(int n)
{
    return (n << 1 == 2) ? 2 : 1;
}
 
int foo2(int n)
{
    return n / 2 ? 1 : 2;
}
 
int foo3(int n)
{
    return n == 1 ? 2 : 1;
}
Но только можно ещё через ifы, switchи и т.д...
1
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
04.11.2010, 16:23
silent_1991, глядя на твои решения я понял суть вопроса и почему его задали на собеседовании. Для меня казалось очевидным самое простое решение, но у тебя его нет

Типа так
int f (int n) { return 3 - n; }
5
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
04.11.2010, 16:23
silent_1991, операторы ветвления (if, switch не важно) - это лишь одно из возможных способов решиния. Есть и другие.
Evg, есть еще одно решения в том же духе.
0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
04.11.2010, 16:34
Evg, хм, и вправду, я идиот...

Добавлено через 10 минут
есть еще одно решения в том же духе
Вроде этого?

C
1
2
3
4
int f(int n)
{
    return 2 - (n / 2);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.11.2010, 16:34
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
840
Закрытая тема Создать тему
Опции темы

Новые блоги и статьи
Модель здравоСохранения 15. Как мы чинили AnyLogic модель рабочего коллектива: сочленение диаграммы состояний болезней и поломок в ресурспул
anaschu 23.05.2026
Как мы чинили AnyLogic модель рабочего коллектива Сегодня разобрались с пятью багами, из-за которых модель либо падала с ошибкой, либо давала совершенно бессмысленные результаты. Каждый баг был. . .
Диалоги с ИИ
zorxor 23.05.2026
Насколько я понимаю - Вы - Искусственный Интеллект. Это так? Да, всё верно. Я — искусственный интеллект. Я представляю собой большую языковую модель, созданную для помощи в самых разных задачах. . . .
Модель здравосохранения 14. Собираем всю модель вместе.
anaschu 22.05.2026
Модель собрана. В будущих постах на видео я покажу, как она работает. В этом посте запускаем её, проверяем результаты и разбираем что можно с ней делать дальше. Перед запуском проверяем. . .
Модель здравоохранения 13. Добавление самой системы здравоохранения.
anaschu 22.05.2026
В предыдущем посте мы настроили болезни. Теперь добавим события, которые управляют здоровьем всего коллектива, а также настроим рабочий график и расчёт финансов. В Main создаём четыре события. . . .
Модель здравоохранения 12. добавление болезней через ресурпул, как аварии
anaschu 22.05.2026
Болезни — это ключевая часть нашей модели. Нам нужно, чтобы работник периодически уходил на больничный, его задание при этом зависало, а после выздоровления работа возобновлялась. Реализуем это двумя. . .
Модель здравоохранения 11. Создаём классы Задание и Работник
anaschu 22.05.2026
В AnyLogic каждая заявка и каждый ресурс — это объект определённого класса. Нам нужно создать два класса: Задание (заявка) и Работник (ресурс). Класс Задание В дереве проекта нажимаем правой. . .
Модель здравоохранения 10. Новая модель, смотрим, как добавлять логические блоки, и что писать внутри
anaschu 22.05.2026
Открываем AnyLogic, создаём новый проект. В дереве проекта появляется класс Main — это главный агент, в котором будет жить вся наша логика. Палитра блоков Слева находится палитра. Нас интересует. . .
модель ЗдравоСохранения 9. Новая модель, разбираемся, как ее создавать
anaschu 22.05.2026
В этой серии постов мы построим модель небольшого рабочего коллектива. Сотрудники получают задания, выполняют их, иногда болеют — и мы хотим посчитать, сколько это стоит компании. Метод. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru