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

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

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

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

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

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

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

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

1272
0 / 0 / 0
Регистрация: 10.04.2011
Сообщений: 4
11.04.2011, 16:47
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от NightmareZ Посмотреть сообщение
Mr.X, тесты оно прошло?
Штоэто за кусорт? Зачем?
А, вообще, мне кажется, как-то ну совсем не хорошо разбирать подобные задачи на форуме. Люди ж там типа соревнуются, а ты приходишь и выпрашиваешь готовые ответы.
Я разве выпрашивал код?просил объяснить.
0
32 / 34 / 3
Регистрация: 27.12.2009
Сообщений: 106
13.04.2011, 21:17
Две олимпиадные задачи:
1. Дан целочисленный массив. Не используя дополнительного массива переместить все отрицательные элементы в начало массива, положительные - в конец с сохранением порядка следования.
2. Дана шахматная доска. Пользователь вводит с клавиатуры координаты начальной клетки и конечной клетки. Вывести на экран передвижения шахматного коня от нач. клетки до конечной. Пример данных, вводимых пользователем: A5 H8.
0
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
13.04.2011, 21:21
ailia, ну первая задача - явно не олимпиадная)
0
32 / 34 / 3
Регистрация: 27.12.2009
Сообщений: 106
13.04.2011, 21:31
У нас была такая
0
Freelance
Эксперт С++
 Аватар для asics
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
13.04.2011, 21:40
Цитата Сообщение от ailia Посмотреть сообщение
1. Дан целочисленный массив. Не используя дополнительного массива переместить все отрицательные элементы в начало массива, положительные - в конец с сохранением порядка следования.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <string>
#include <algorithm>
#include <fstream>
#include <boost/lambda/lambda.hpp>
 
using namespace boost::lambda;
 
int main(){
  int a[] = {4, 6, -2, -1, 6, 1, -3};
  std::sort(a, a + sizeof(a) / sizeof(*a), _1 < 0 && _2 >= 0 || _1 == 0 && _2 > 0);
  std::for_each(a, a + sizeof(a) / sizeof(*a), std::cout << _1 << ' ');
  return 0;
}
4
114 / 114 / 13
Регистрация: 29.04.2010
Сообщений: 240
13.04.2011, 21:48
Вторая вроде обычной волной решается... лень кодить)
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21285 / 8310 / 637
Регистрация: 30.03.2009
Сообщений: 22,671
Записей в блоге: 30
15.04.2011, 14:11
C
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
#include <string.h>
 
int main (void)
{
  int len;
 
  len = strlen ("??=");
  printf ("len=%d\n", len);
 
  return 0;
}
Что напечатает программа в режиме строгого соответствия стандарту ANSI C? Про строгое соответсвие пишу из тех соображений, что большинство современных промышленных компиляторов по умолчанию работают в некотором своём собственном расширении языка, а в некоторых по умолчанию ставится Си-99 и т.п.

Тем, кто хочет пораскинуть мозгами, но не видит, в каком месте закавыка, в подсказке приведена выдача из-под компилятора gcc в режиме по умолчанию (т.е. он работает в предположении языка GNU-C) и в режиме ANSI (т.е. на вход принимает C89). В обоих случаях в компилятор подана опция -w для подавления предупреждений

Подсказка
Code
1
2
3
4
5
6
$ gcc t.c -w
$ ./a.out
len=3
$ gcc t.c -ansi -w
$ ./a.out
len=1
1
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
15.04.2011, 14:36
Evg,
не уверен, но возможно это
триграф, следовательно длина строки должна быть единица.
2
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21285 / 8310 / 637
Регистрация: 30.03.2009
Сообщений: 22,671
Записей в блоге: 30
15.04.2011, 14:41
ога
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
18.04.2011, 22:55  [ТС]
Является ли данный код переносимым, т.е. скомпилируется-ли он на любом компиляторе, поддерживающем современный стандарт?
И если нет - то почему?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <numeric>
 
namespace NS
{
    struct X { };
}
int operator +(int i, NS::X) {return i+1;}
 
int main()
{
    NS::X c[10];
    std::accumulate(c, c+10, 0);
}
1
 Аватар для taras atavin
4226 / 1799 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
19.04.2011, 13:15
g++ этот тект проглотил.
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
19.04.2011, 14:43  [ТС]
taras atavin, Вопрос был про любой компилятор. Подсказка : MSVS не проглотит. По какой причине?
0
Эксперт С++
623 / 467 / 57
Регистрация: 28.01.2011
Сообщений: 605
19.04.2011, 16:45
ForEveR
Нехилая задачка, долго пришлось думать и заодно хорошенько перечитать стандарт Компилятор при разрешении перегрузки имен должен следовать принципу Koenig lookup( кстати, Кёниг это не какой-нибудь член комитета, случаем? ), то есть если в вызове функции присутствуют параметры class/enum типов , то впридачу к обычному поиску имен в охватывающих пространствах он еще должен будет заглянуть в пространства имен, в которых содержатся типы этих самых параметров(кстати, порядок явно не оговаривается( хотя , может, я не увидел), по этому поводу никаких особых указаний нет?). А самое интересное, что как только компилятор находит в просматриваемом пространстве имен хотя бы одно объявление , в данном случае operator+, то в пространство имен на уровень выше он уже не полезет!

Таким образом, если чуток подправить пример и отправить объявление operator+ в то же пространство имен, в котором находится X, то std::accumulate должен будет заглянуть в пространство имен NS и найти там нужный operator+.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <numeric>
namespace NS
{
        struct X { };
    int operator +(int i, X) {return i+1;}
}
 
int main()
{
        NS::X c[10];
        std::accumulate(c, c+10, 0);
        return 0;
}
такой код должен скомпилироваться на любом компиляторе, а вот исходный вовсе не должен, так как в процессе обхода пространства имен ::std компилятор вполне вероятно может наткнуться на какое-то определение operator+, не важно, с какой сигнатурой, и просто-напросто дальше в глобальном пространстве искать не будет. Следовательно, код непереносимый, так как, вообще говоря, зависит от реализации stl, либо могут быть подключены заголовки в <numeric>, которые объявляют operator+, либо в самом <numeric> может быть объявление какого-то operator+( может, специализация там какая интересная для стандартных типов stl или еще что ). В студии как раз реализуется первый случай, подключается серия заголовков <utility>, <xutility> в которых есть определения operator+ для типов разности различных итераторов, поэтому в сообщениях об ошибке фигурируют всякие _String_Iterator, _difference_type и прочие.
2
19.04.2011, 17:20

Не по теме:

Ma3a, Koenig, он самый.

He served as the Project Editor of the ISO/ANSI standards committee for C++
То есть работал в комитете.

1
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
19.04.2011, 20:22  [ТС]
Ma3a, Верно да.
0
 Аватар для Fafle
34 / 34 / 9
Регистрация: 19.03.2010
Сообщений: 136
20.04.2011, 01:50
Вот такое есть
//Написать "Морской бой" для игры человека против компьютера. Предусмотреть за человека возможность автоматической (расстановку осуществляет кораблей компьютер случайным образом) и ручной расстановки своих кораблей. Стоимость задания существенно повышается, если компьютер при стрельбе будет обладать логикой (т. е. не производить выстрелы "рандомайзом").

Все средствами языка Си
У меня уже 300 строк
0
Заблокирован
20.04.2011, 02:32
Цитата Сообщение от Fafle Посмотреть сообщение
У меня уже 300 строк

Не по теме:

Ухты! Сразу видно - профессионал.

0
9 / 9 / 0
Регистрация: 05.04.2011
Сообщений: 67
22.04.2011, 00:48
[QUOTE=nikkka;860867]а я проверил без фаилов, и работает...
ничего не понимаю...


Lavroff, вот вам (а может и не только), ещё несколько задач.

Паук и Муха

В пустой прямоугольной комнате размерами АхВхС (длина, ширина, высота) на пол упала уснувшая муха. Паук, находившийся на одной из стен, или на полу комнаты, начал двигаться к ней по кратчайшему пути.
На какое расстояние он при этом переместится?
входные данные - переменные a, b, c.
Задача не сложная, но интерестная.


Змей Горыныч

А вот с этоы вы вряд ли справитесь так быстро. Я её писал целый вечер...
В некотором царстве жил Змей Горыныч. У него было N голов и M хвостов. Иван-царевич решил уничтожить губителя человеческих душ, для чего ему его кума Баба Яга подарила волшебный меч, так как только им можно убить Змея Горыныча. Если отрубить одну голову, то на её месте вырастает новая, если отрубить хвост, то вместо него вырастет 2 хвоста. Если отрубить два хвоста, то вырастает 1 голова, и только когда отрубить 2 головы, то не вырастет ничего. Змей Горыныч гибнет только в том случае, когда ему отрубить все головы и все хвосты. Определить минимальное количество ударов мечом, нужное для уничтожения Змея Горыныча.
Вход. переменные - m, n.


Добавлено через 11 минут

ну я бы сделал так, для начала предположим что у змея горыныча 4 головы и 4 хвоста, сразу берем одни ударом срубаем 2 головы-ничего не вырастает, потом срубаем 2 хвоста-вырастает голова, еще срубаем два хвоста- плюс еще одна голова...и того у нас получается 3 головы, сносим их тоже...==>>итого 6 ударов, сейчас попробую написать прогу=)
0
1080 / 1007 / 107
Регистрация: 28.02.2010
Сообщений: 2,889
22.04.2011, 05:27
Uxxzz, про змея горыныча уже было в этой теме. Я даже успел решение написать.
http://em92.uni.cc/rozp/e-olimp36.html

Добавлено через 6 минут
Про паука и муху. Свое решение можно проверить здесь:
http://www.e-olimp.com/problems/13
0
 Аватар для taras atavin
4226 / 1799 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
22.04.2011, 09:05
Цитата Сообщение от Uxxzz Посмотреть сообщение
Иван-царевич ... его кума Баба Яга
. Капец.

Добавлено через 1 минуту
Цитата Сообщение от Uxxzz Посмотреть сообщение
.и того у нас получается 3 головы
голов будет 4.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.04.2011, 09:05

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
1260
Закрытая тема Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru