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

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

15.07.2010, 05:53. Показов 510786. Ответов 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
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 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
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 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
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 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
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 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
Закрытая тема Создать тему
Новые блоги и статьи
FSharp: interface of module
DevAlt 16.05.2026
Интерфейс модуля F# позволяет управлять доступностью членов, содержащихся в реализации модуля. По-умолчанию все члены модуля доступны: module Foo let x = 10 let boo () = printfn "boo" . . .
Хитросплетение родственных связей пантеона греческих богов.
russiannick 14.05.2026
Однооконник, позволяющий узреть и изучить отдельных героев древней Греции. <!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible". . .
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов. import "math" func angleClock(hour int, minutes int) float64 { . . .
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html и его же старой инструкции по установке Lazarus с gtk2. . .
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru