Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

C++

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 2744, средняя оценка - 4.89
ForEveR
В астрале
Эксперт С++
7972 / 4734 / 321
Регистрация: 24.06.2010
Сообщений: 10,542
Завершенные тесты: 3
#1

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

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

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

Список задач, решение которых присутствует в данной теме:
41
Лучшие ответы (59)
Сообщение: #857841 Сообщение: #857861 Сообщение: #858352 Сообщение: #859371 Сообщение: #860160 Сообщение: #860255 Сообщение: #860259 Сообщение: #860317 Сообщение: #860368 Сообщение: #860466 Сообщение: #860508 Сообщение: #860720 Сообщение: #861091 Сообщение: #862174 Сообщение: #862617 Сообщение: #867259 Сообщение: #870298 Сообщение: #872053 Сообщение: #876456 Сообщение: #880114 Сообщение: #882889 Сообщение: #884418 Сообщение: #886414 Сообщение: #886989 Сообщение: #887733 Сообщение: #888464 Сообщение: #888487 Сообщение: #888941 Сообщение: #888947 Сообщение: #889040 Сообщение: #889450 Сообщение: #889587 Сообщение: #891772 Сообщение: #891790 Сообщение: #891862 Сообщение: #897758 Сообщение: #897782 Сообщение: #906325 Сообщение: #907991 Сообщение: #943672 Сообщение: #943700 Сообщение: #967735 Сообщение: #1053777 Сообщение: #1054209 Сообщение: #1083853 Сообщение: #1083928 Сообщение: #1131058 Сообщение: #1131359 Сообщение: #1273743 Сообщение: #1275465 Сообщение: #1276743 Сообщение: #1279215 Сообщение: #1282583 Сообщение: #1309088 Сообщение: #1315633 Сообщение: #1366395 Сообщение: #1550164 Сообщение: #1603678 Сообщение: #1604364
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.07.2010, 05:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Задачи для тренировки и лучшего понимания (C++):

Прошу примеров для понимания INDY - C++ Builder
Уважаемые коллеги и братья по интересу. Прошу примеров использования Indy UDP Server (TIdUDPServer) и Indy UDP Client (TIdUDPClient) для...

Ищу примеры для понимания взаимодействия Callback + event - C++ WinAPI
Господа, подкиньте плиз какой-нибудь пример для понимания взаимодействия Callback+event С самими Callback функциями вроде разобрался, а...

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

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

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

Нужны простые задачи для тренировки - C++
Добрый день всем:) Наверное подобных тем как я тут сотни,но всё же. Начал изучать С++(так как необходим для универа)в дальнейшем...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ForEveR
В астрале
Эксперт С++
7972 / 4734 / 321
Регистрация: 24.06.2010
Сообщений: 10,542
Завершенные тесты: 3
23.07.2010, 04:59  [ТС] #181
MikeSoft, Спасибо! Продолжим?
0
MikeSoft
Эксперт С++
3799 / 1775 / 85
Регистрация: 21.11.2009
Сообщений: 2,540
23.07.2010, 05:08 #182
Lavroff, небольшая, на указатели:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//---------------------------------------------------------------------------
#include <iostream>
using namespace std;
//---------------------------------------------------------------------------
int main()
{
  int *pTest;
  *pTest = 5;
 
  cout << "Value is: " << *pTest << endl;
 
  system("pause");
  return 0;
}
//---------------------------------------------------------------------------
Будет ли работать? Если да, то правильно ли? Если нет - то почему? Присутствуют ли ошибки?
0
ForEveR
В астрале
Эксперт С++
7972 / 4734 / 321
Регистрация: 24.06.2010
Сообщений: 10,542
Завершенные тесты: 3
23.07.2010, 05:12  [ТС] #183
Мм.. Память же под указатель не выделена. Не должна бы.

А вот так корректно вроде:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
using namespace std;
//---------------------------------------------------------------------------
int main()
{
  int *pTest=new int;
  *pTest = 5;
 
  cout << "Value is: " << *pTest << endl;
 
  system("pause");
  return 0;
}
//----------------------------------------------------------------------------------------------------------------------
0
MikeSoft
Эксперт С++
3799 / 1775 / 85
Регистрация: 21.11.2009
Сообщений: 2,540
23.07.2010, 05:14 #184
Цитата Сообщение от Lavroff Посмотреть сообщение
Память же под указатель не выделена.
Правильно. Объект не инициализирован. Память не выделена.
Но указатель, тем не менее, указывает на случайную ячейку в памяти.
Поэтому, программа будет работать! Но её последствия - непредсказуемы.
1
ForEveR
В астрале
Эксперт С++
7972 / 4734 / 321
Регистрация: 24.06.2010
Сообщений: 10,542
Завершенные тесты: 3
23.07.2010, 05:17  [ТС] #185
MikeSoft, Ну да. В ВС она запускается, но тут же выдается debug ошибка, что использована неинициализированная переменная. А вот так:
int *pTest=0;
ошибку выводит только когда прогоняешь пошагово.

Еще будут?)
0
MikeSoft
23.07.2010, 05:23
  #186

Не по теме:

Lavroff, наверное хватит на сегодня ... у меня уже светать начинает, нужно поспать.

0
ForEveR
23.07.2010, 05:25  [ТС]
  #187

Не по теме:

MikeSoft, Спокойной ночи) У меня тоже светает потихоньку... Часиков в 6-7 надо будет уйти. Спасибо за задачи! Было очень интересно!

0
nikkka
Мат в 32 хода
235 / 170 / 8
Регистрация: 10.09.2009
Сообщений: 1,096
23.07.2010, 08:28 #188
Цитата Сообщение от MikeSoft Посмотреть сообщение
Перед "www" начинается область комментария, то есть дальнейшая область не учитывается.
А вот "http:" рассматривается как обычная метка.
супер!
а когда знаешь, как просто!
про коментарии догадался сразу, а потом думал пол-часа, "чо за http: ???..."

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

Не по теме:

а я не верил что кодеры "просиживают" ночи за компом...

0
[Freeman]
34 / 34 / 6
Регистрация: 07.06.2010
Сообщений: 118
23.07.2010, 10:33 #189
MikeSoft

Не корректность программы в том, что после того как память освобождается
C++
1
delete pTestObject;
в программе остается ссылка rTestObject на не существующий обьект, а ссылка всегда длжна являться псевдонимом реального обьекта, если в программе существует ссылка на нулевой обьект то мина замедленного действия уже ожидает своего часа...
1
rangerx
1933 / 1542 / 141
Регистрация: 31.05.2009
Сообщений: 2,912
23.07.2010, 10:39 #190
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <cstdio>
 
struct A
{
    A(int a) { puts("A(int)"); }
    A(int a, int b) { puts("A(int, int)"); }
};
 
struct B
{
    B(A a){}
};
 
int main()
{
    int m = 0;
    int n = 0;
 
    B b1( A(m) );
    B b2( A(m, n) );
    return 0;
}
Что быдет выведено на экран при запуске данной программы и почему?
1
Kastaneda
Форумчанин
Эксперт С++
4653 / 2862 / 228
Регистрация: 12.12.2009
Сообщений: 7,271
Записей в блоге: 2
Завершенные тесты: 1
23.07.2010, 12:26 #191
Что выводит, я посмотрел, но почему так??? Я уже не знаю что думать

Добавлено через 32 минуты
Ничего не понимаю, если сделать так:
C++
1
B b1(A((int)m));
то работает, как и предполагается
0
ForEveR
В астрале
Эксперт С++
7972 / 4734 / 321
Регистрация: 24.06.2010
Сообщений: 10,542
Завершенные тесты: 3
23.07.2010, 16:38  [ТС] #192
Быть может вызов B2(int int) перекрывает вызов B1 (int) и поэтому выводится
A(int a, int b) { puts("A(int, int)");
?

Вот что по вызову для b1 говорит :

1>c:\documents and settings\admin\мои документы\visual studio 2005\projects\перенос на ноут\ent\ent.cpp(20) : warning C4930: 'B b1(A)': prototyped function not called (was a variable definition intended?)

Вот эту строку: B b1( A(m) );
компилятор просто проходит мимо. Мол нет такой функции, с таким прототипом

А вот так работает:
кто нить объяснит почему так?

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
#include <cstdio>
#include <cstdlib>
 
struct A
{
    A(int a) { puts("A(int)"); }
    A(int a, int b) { puts("A(int, int)"); }
};
 
struct B
{
    B(A a){}
};
 
int main()
{
    int m = 0;
    int n = 0;
 
    B b1( A(0) );
    B b2( A(m, n) );
    system("pause");
    return 0;
}
0
Kastaneda
Форумчанин
Эксперт С++
4653 / 2862 / 228
Регистрация: 12.12.2009
Сообщений: 7,271
Записей в блоге: 2
Завершенные тесты: 1
23.07.2010, 17:36 #193
Цитата Сообщение от Lavroff Посмотреть сообщение
А вот так работает: ...
Я тоже так пробовал, и еще всяко разно. Эксперементальным путем пришел к выводу, что объект b1 даже не создается, по всей видимости это влияние каких-то темных сил)) Если кто-нибудь объяснит причину, буду очень признаетлен!
0
rangerx
1933 / 1542 / 141
Регистрация: 31.05.2009
Сообщений: 2,912
24.07.2010, 01:22 #194
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Kastaneda Посмотреть сообщение
Ничего не понимаю, если сделать так:
C++
1
B b1(A((int)m));
то работает, как и предполагается
На самом деле приведение типа делать не нужно, достаточно использовать скобки
C++
1
B b1( (A(m)) );
В противном случае запись
C++
1
B b1( A(m) );
будет рассматриваться, как прототип функции b1, которая возвращает объект типа B и принимает в качестве параметра переменную m типа A

Добавлено через 22 минуты
Кстати, если не ошибаюсь, в новом стандарте эта проблема решена.
5
Kastaneda
Форумчанин
Эксперт С++
4653 / 2862 / 228
Регистрация: 12.12.2009
Сообщений: 7,271
Записей в блоге: 2
Завершенные тесты: 1
24.07.2010, 07:28 #195
rangerx, а почему тогда так работает?
C++
1
B b1( A(0) );
почему компилятор понимает, что это вызов конструктора, а не переменная 0 типа А ?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.07.2010, 07:28
Привет! Вот еще темы с ответами:

Какая база требуется для понимания C++? - C++
Доброго времени суток! Возникло желание научиться работать в Си, но одолели смутные сомнения. Каюсь, ничего сложнее Pascal ABC в школьные...

Нужен пример рекурсивной функции для понимания ее назначения и практической пользы - C++
Не могу понять пользу рекурсии, может ли кто привести код в пример.

Киньте задачки для тренировки - C++
Хочу порешать задачки по C++......нужны либо книжки с задачками - либо ваши примеры.....желательно (если книжки) - чтобы там и решение...

Дайте задания для тренировки - C++
День добрый. Учу C++. Я уверен, что тут есть люди которые с ним отлично знаком и работают. Можете ли вы накидать заданий, возможно из...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
24.07.2010, 07:28
Закрытая тема Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru