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

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

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

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

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

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

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

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

1272
Эксперт С++
 Аватар для Хохол
476 / 444 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
30.07.2010, 02:38
Студворк — интернет-сервис помощи студентам
Мне казалось что (++i) не l-value.
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
30.07.2010, 02:38
Цитата Сообщение от Lavroff Посмотреть сообщение
Низзя так присваивать.
В чем именно заключается ошибка? Подробнее.
DELETED
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
30.07.2010, 02:41  [ТС]
CyBOSSeR, Можно присвоить i++; но нельзя ++i. Однако на MSVS конструкция, которую я написал - работает и выводит как и ожидалось.

ЗЫ значение для присваивания должно быть l-value.
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
30.07.2010, 02:44
Цитата Сообщение от Lavroff Посмотреть сообщение
Можно присвоить i++; но нельзя ++i.
Не понял, приведи примеры.
Цитата Сообщение от Хохол Посмотреть сообщение
Мне казалось что (++i) не l-value.
Это l-value, префиксный инкремент возвращает ссылку.
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
30.07.2010, 02:45  [ТС]
CyBOSSeR, Ошибся. И то и другое возможно. Я сейчас правда ориентируюсь не на стандарт а на конкретный компилятор.

C++
1
2
3
4
5
6
7
8
9
#include <iostream>
 
int main()
{
    int i=5,j=0;
    j=++i;
    std::cout<<j;
    return 0;
}
Результат 6

C++
1
2
3
4
5
6
7
8
9
#include <iostream>
 
int main()
{
    int i=5,j=0;
    j=i++;
    std::cout<<j;
    return 0;
}
Результат 5
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
30.07.2010, 02:47
Lavroff, для ответа не нужны знания стандарта. Нужно знать особенности форм операции инкремента и порядок выполнения операций.
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
30.07.2010, 02:48  [ТС]
А вот так:

C++
1
2
3
4
5
6
7
8
9
#include <iostream>
 
int main()
{
    int i=5,j=0;
    j=(++i++);
    std::cout<<j;
    return 0;
}
Не работает. Ибо мы пытаемся изменить временное значение(?).
0
Эксперт С++
 Аватар для Хохол
476 / 444 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
30.07.2010, 02:49
Теперь я не понимаю, почему не компилится ++i++. Ведь у префиксного инкремента приоритет выше вроде как.

Добавлено через 1 минуту
Пожалуй, лучше просто никогда в реальных программах такого не писать
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
30.07.2010, 02:50  [ТС]
Уже понял что у потфиксного выше. Тогда понятно почему не работает ++i++.
Ибо сначала должно выполнится i++, а затем по идее ++i, но так нельзя делать
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
30.07.2010, 02:52
Цитата Сообщение от Хохол Посмотреть сообщение
Ведь у префиксного инкремента приоритет выше вроде как.
Цитата Сообщение от Lavroff Посмотреть сообщение
У них же по идее одинаковый приоритет, разве нет?
У постфиксного и префиксного инкремента приоритет одинаков.
Цитата Сообщение от Lavroff Посмотреть сообщение
А если приоритеты одинаковые выполняется слева-направо
Нет. В данном случае справа налево.
Цитата Сообщение от Хохол Посмотреть сообщение
Пожалуй, лучше просто никогда в реальных программах такого не писать
В точку. Можно и рук лишится.

Каков ответ?
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
30.07.2010, 02:54  [ТС]
CyBOSSeR, Разве одинаков? оО. Вот передо мной книжка... Постфиксный - 15. Префиксный - 14... Неправильно написали?
Ну раз справа-налево, тогда мы пытаемся инкрементировать временную переменную... ++ не относится к l-value переменной...
1
Эксперт С++
 Аватар для Хохол
476 / 444 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
30.07.2010, 02:59
Ответ: в коде ошибка, так как (i++) - не l-value. Но с порядком выполнения чето ничего не ясно.
1
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
30.07.2010, 03:01
Цитата Сообщение от Lavroff Посмотреть сообщение
Вот передо мной книжка... Постфиксный - 15. Префиксный - 14... Неправильно написали?
Хм... По моим данным приоритет у них одиноков. В любом случае ответ будет тот же.
Цитата Сообщение от Lavroff Посмотреть сообщение
Ну раз справа-налево, тогда мы пытаемся инкрементировать временную переменную... ++ не относится к l-value переменной...
Если я тебя правильно понял, то все верно. Постфиксный инкремент выполнится первым и возвратит временный объект, который естественно не является l-value.
Цитата Сообщение от Хохол Посмотреть сообщение
Ответ: в коде ошибка, так как (i++) - не l-value.
Все верно.
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
30.07.2010, 03:06  [ТС]
http://www.cyberguru.ru/progra... age35.html Тут пишется что приоритет одинаков.

В нек-х других источниках пишется что приоритет на один меньше у префиксного...
А что по стандарту говорится?
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
30.07.2010, 03:10
Цитата Сообщение от Lavroff Посмотреть сообщение
А что по стандарту говорится?
По стандарту понятия приоритета просто нет. Правила более сложны и таблицей приоритетов их не описать. Поэтому и таблицы могут выглядеть по разному.
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
30.07.2010, 03:14
Цитата Сообщение от Lavroff Посмотреть сообщение
Можно вот так: int j = (++i)++;
вообще так тоже нельзя
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
30.07.2010, 12:42
Цитата Сообщение от Хохол Посмотреть сообщение
Ответ: в коде ошибка, так как (i++) - не l-value. Но с порядком выполнения чето ничего не ясно.
Ну почему же не ясно? В C++ все постфиксные операторы имеют более высокий приоритет, чем все префиксные.
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
30.07.2010, 12:44
Цитата Сообщение от Mr.X Посмотреть сообщение
В C++ все постфиксные операторы имеют более высокий приоритет, чем все префиксные.
Почему?
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
30.07.2010, 14:58
Вот такая задачка:
Какой должен быть прототип у функции func, чтобы при передаче ей статического массива функция имела информацию о типе и размере массива:
C++
1
2
int arr[2][2] = {{0, 1}, {2, 3}};
func(arr);
1
34 / 34 / 8
Регистрация: 07.06.2010
Сообщений: 118
30.07.2010, 14:59
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Почему?

Не по теме:

Может самому Страуструпу письмо отправить, спросить, он то точно знает..:D

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.07.2010, 14:59

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
360
Закрытая тема Создать тему
Новые блоги и статьи
Запрет дублирования строк в табличной части
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