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

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

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

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

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

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

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

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

1272
 Аватар для Kastaneda
5232 / 3206 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
24.10.2010, 13:48
Студворк — интернет-сервис помощи студентам
silent_1991, я думаю TrenAr имел ввиду, чтоб выделить задачи, на которые есть рабочий код, чтоб знать какие задачи остались не доделанные.

Добавлено через 1 минуту
а в посте ТС слово "решение", я думаю, подразумевает процесс.
2
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21285 / 8310 / 637
Регистрация: 30.03.2009
Сообщений: 22,671
Записей в блоге: 30
24.10.2010, 16:03
Я так же поддерживаю идею, что в первом посте надо коллекционировать не только решёные назади, но и нерешённые
2
 Аватар для Vlad_IT
1452 / 360 / 61
Регистрация: 03.04.2010
Сообщений: 2,096
24.10.2010, 17:25
Есть книга М.В Мозговой С++ Мастер класс. 85 Нетривиальных проектов, решений и задач. Книга одно удовольствие. Там лишь дают задачу и немного подсказки, а код надо самому думать.
1
Эксперт С++
 Аватар для MikeSoft
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
24.10.2010, 19:31
При составлении содержания было просмотрено 58 страниц темы.
На днях я постараюсь пересмотреть остальные страницы и выяснить, решение к каким задачам отсутствует.
Все те задачи, которые на данный момент присутствуют в содержании являются решёнными.

Всем спасибо за советы
4
C/C++
93 / 93 / 18
Регистрация: 01.07.2010
Сообщений: 281
29.10.2010, 17:09
Я решил задачу "Игра Жизнь"! Написал движок и консольную реализацию. Правда на краях поля немного подглючивает. Завтра напишу Open-GL и выложу здесь.

Добавлено через 3 минуты
Цитата Сообщение от Kastaneda Посмотреть сообщение
Не по теме:
По игре "Жизнь" одно время проводились соревнования (если мне изменяет память где-то в 70-80х годах), победитель до сих пор не превзойден, он реализовал эту игру в 23 байта (могу ошибаться) на ассемблере под ДОС.

Это я прочитал в какой-то книге по АСМу, где-то с год назад, поэтому мож чего и подзабыл)

Добавлено через 4 минуты
Пардон - в 23 КилоБайта)))
А я реализовал её в 9.5 байт на C++))))
0
Эксперт С++
 Аватар для Хохол
476 / 444 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
29.10.2010, 17:11
Крут.
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
29.10.2010, 19:20
Цитата Сообщение от МаксимМВ Посмотреть сообщение
А я реализовал её в 9.5 байт на C++))))
Ты ничего не путаешь?
0
C/C++
93 / 93 / 18
Регистрация: 01.07.2010
Сообщений: 281
30.10.2010, 19:42
Цитата Сообщение от Nameless One Посмотреть сообщение
Ты ничего не путаешь?
А у меня Linux!!! А нассчёт размера сами смотрите: http://static.itmages.ru/i/10/... 0c04bf.png

Цитата Сообщение от Хохол Посмотреть сообщение
Крут.
Да, Linux крутой.
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
30.10.2010, 19:45
Цитата Сообщение от МаксимМВ Посмотреть сообщение
А я реализовал её в 9.5 байт на C++))))
Цитата Сообщение от МаксимМВ Посмотреть сообщение
9.5 байт
Цитата Сообщение от МаксимМВ Посмотреть сообщение
байт
Блин, я ведь спросил:
Цитата Сообщение от Nameless One Посмотреть сообщение
Ты ничего не путаешь?
Не надо путать байты с килобайтами. 1 байт - это один символ (буква). А ты говоришь, что твоя программа состоит из 9.5 символов?
0
C/C++
93 / 93 / 18
Регистрация: 01.07.2010
Сообщений: 281
30.10.2010, 20:11
а да я описался в 9,5 килобайт. Невнимательность, как и в программе была)) Еле исправил с помощью отладчика.
0
31.10.2010, 06:34

Не по теме:

Если я не ошибаюсь, то про эту игру я прочитал в книге Зубкова "Ассемблер что-то там", я перелистаю ее на досуге и уточню, какой рекордно минимальный объем екзешника (правда там данные на момент написания книги, конец 80х - начало 90х)

0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21285 / 8310 / 637
Регистрация: 30.03.2009
Сообщений: 22,671
Записей в блоге: 30
31.10.2010, 10:26
Два кода сравнивать по размеру уместно только тогда, когда они работают на одной и той же платформе или близких по реализации платформах. Грубо говоря, код printf ("Hello world") может занимать (условно говоря) 100 байт, потому как код функции printf находится в динамической библиотеке и в программу не включается. А может занимать и 100 килобайт, потому что программа слинкована статически. Ну и так далее.

Глядя на код на скриншоте из поста #808, я тупо не верю, что он занимает 9.5 килобайт, потому как одна только реализация new весит куда больше. Объём исходников - может быть и 9.5 килобайт, но никак не объём кода. Т.е. сравнивать такой код с ассемблерной программой под DOS, где скорее всего не было вообще никаких библиотечных вызовов - это сравнивать пипиську и жёлтый цвет, ибо это абсолютно перпендикулярные вещи
1
C/C++
93 / 93 / 18
Регистрация: 01.07.2010
Сообщений: 281
31.10.2010, 20:21
Вот моё решение задачи игра "Жизнь" в консольной и OpenGl реализации. Смотрите архив.
Вложения
Тип файла: zip livegame.zip (8.0 Кб, 31 просмотров)
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21285 / 8310 / 637
Регистрация: 30.03.2009
Сообщений: 22,671
Записей в блоге: 30
02.11.2010, 18:58
Задача на знание синтаксиса языка Си

Функция ожидает параметром указатель на двумерный массив [4][5]. Фактически мы вместо этого можем подать указатель на одномерный массив [20]. Т.е. исходник будет выглядеть как:

C
1
2
3
4
5
6
7
8
extern f (int a[4][5]);
 
int b[20];
 
void func (void)
{
  f (b);
}
Т.е. это совершенно рабочий код (при условии что внутренности массива b у нас будут разложены так, как они были бы в двухмерном массиве). Однако при компиляции будет выдаваться предупреждение (из-за несоответсвия типов):

Code
1
2
3
$ gcc t.c -c
t.c: In function 'func':
t.c:7: warning: passing argument 1 of 'f' from incompatible pointer type
Напишите оператор приведения типа, чтобы предупреждение пропало. Т.е. как с точки зрения языка Си написать правильное приведение типа в данном случае. Я бы рекомендовал при ответе на вопрос НЕ пользоваться компилятором, потому как в некоторых компиляторах выдаётся более детализованная диагностика, чем в gcc, а такая диагностика может дать подсказку
1
Временно недоступен
 Аватар для #pragma
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
02.11.2010, 22:57
Evg, интересно )
Моё предположение
C
1
2
3
4
5
6
7
8
extern f (int a[4][5]);
 
int b[20];
 
void func (void)
{
  f ((&[][])b);
}
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21285 / 8310 / 637
Регистрация: 30.03.2009
Сообщений: 22,671
Записей в блоге: 30
02.11.2010, 23:12
#pragma, у тебя gcc, так что можно с компилятором экспериментировать. Хз может последние версии и болтливые, но в таких случаях gcc ограничивается фразой, что дескать тут тип указателя не тот
1
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
03.11.2010, 21:58
Не то чтобы это задачка, но все же напишу.

Сегодня наткнулся на неожиданное отличие Си от Си++ (для меня во всяком случае).
Вот такой код отлично компилируется 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
Теперь, чтобы сообщение содержало хоть какой-то вопрос.
Как избавиться от ошибки при компиляции?
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
03.11.2010, 22:01  [ТС]
Вот так)
C
1
2
3
4
5
int main()
{
        int a = 0, b = 0;
        a == 1 ? (a = 0) : (b = 1);
}
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
03.11.2010, 22:06
Цитата Сообщение от ForEveR Посмотреть сообщение
Вот так
достаточно было бы скобок в одном выражении, в том, что справа.
C
1
a == 1 ? a = 0 : (b = 1);
0
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
04.11.2010, 00:07
Цитата Сообщение от Evg Посмотреть сообщение
Напишите оператор приведения типа, чтобы предупреждение пропало.
Вроде так
Долго до меня доходило... Эта четвёрка просто сбивает с толку.
C
1
f((int(*)[5])b);


Добавлено через 30 минут
Наверное, не для всех это очевидно, поэтому:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
 
using namespace std;
 
class qq0
{
public:
    virtual void msg(int n = 0)
    {
        cout << "qq0(" << n << ")" << endl;
    }
};
 
class qq1 : public qq0
{
public:
    virtual void msg(int n = 1)
    {
        cout << "qq1(" << n << ")" << endl;
    }
};
 
int main()
{
    qq0* c = new qq1;
    c->msg();
    delete c;
    cin.peek();
}
Что будет выведено?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.11.2010, 00:07

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
820
Закрытая тема Создать тему
Новые блоги и статьи
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru