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

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

15.07.2010, 05:53. Показов 503002. Ответов 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
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 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
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 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 / 1796 / 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 / 1796 / 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
Закрытая тема Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru