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

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

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

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

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

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

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

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

1272
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
04.08.2010, 15:05
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Nameless One Посмотреть сообщение
Сравнить размер какого-нибудь символа с размером char?
Что подразумевается под символом? Если тут замашка на юникод, то это не оно
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
04.08.2010, 15:06
Цитата Сообщение от Evg Посмотреть сообщение
Что подразумевается под символом? Если тут замашка на юникод, то это не оно
sizeof(char)==sizeof('a')
3
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
04.08.2010, 15:08
Цитата Сообщение от Evg Посмотреть сообщение
Думаю, что далеко не всем очевидно, что такое 2[a]
никогда такого не видел
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
04.08.2010, 15:09
Цитата Сообщение от Nameless One Посмотреть сообщение
sizeof(char)==sizeof('a')
Ох...ть. Поясни?
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
04.08.2010, 15:09
Цитата Сообщение от Evg Посмотреть сообщение
Ох...ть. Поясни?
C и C++
2
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
04.08.2010, 15:09
Цитата Сообщение от niXman Посмотреть сообщение
никогда такого не видел
Курили не только авторы телепузиков, но и разработчики Си
1
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
04.08.2010, 15:10
Цитата Сообщение от niXman Посмотреть сообщение
никогда такого не видел
Согласен. Впервые такое вижу.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
04.08.2010, 15:10
Цитата Сообщение от Nameless One Посмотреть сообщение
C и C++
Да не, мне нужен не код, а пояснение того, почему sizeof('a') на Си не равно единице.
0
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
04.08.2010, 15:11
Цитата Сообщение от Nameless One Посмотреть сообщение
sizeof(char)==sizeof('a')
это справедливо для с++, но не для Си.
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
04.08.2010, 15:12
Цитата Сообщение от Evg Посмотреть сообщение
Да не, мне нужен не код, а пояснение того, почему sizeof('a') на Си не равно единице.
в Си символьный литерал преобразуется в 4байтовое целое?
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
04.08.2010, 15:12
Цитата Сообщение от niXman Посмотреть сообщение
это справедливо для с++, но не для Си.
Это я привел критерий сравнения С и С++
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
04.08.2010, 15:12
Просто по поводу Си и Си++ мы в своё время наскребли 4 решения, два из которых являются абсолютно честными, одно теоретически честное, а одно условно хакерское. А тут по ходу ещё одно решение, только причины пока так никто и не озвучил
0
2 / 2 / 0
Регистрация: 22.07.2010
Сообщений: 29
04.08.2010, 15:14
Вот интересная штука.
Code
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
   ПОРЯДОК РАСЧЕТА И ПРОВЕРКИ
                   КОНТРОЛЬНОГО КЛЮЧА В НОМЕРЕ ЛИЦЕВОГО СЧЕТА
 
          В соответствии с принятой структурой номера лицевого  счета  Банк
     России разъясняет порядок расчета контрольного ключа.
 
          1. Номер  лицевого счета должен включать в себя контрольный ключ,
     обеспечивающий возможность проверки правильности номера лицевого счета
     при автоматизированной обработке документов.
          2. Для  расчета  контрольного  ключа  в  номере  лицевого   счета
     используется  совокупность двух реквизитов - условного номера РКЦ (или
     кредитной организации) и номера лицевого счета.
 
 
                                   1-ый разряд кода валюты
                                ---------------------------
                                │         контрольный ключ
                                │        ------------------
                                │        │
          А Б В    Г Д Е Ж З    И К Л    М    Н О П Р    С Т У Ф Х Ц Ш
          --T--    -------------------T-------------------------------
            │                         │
            │                         │   Номер лицевого счета
            │                         L------------------------
            │
            │ Условный номер РКЦ или кредитной организации
            L----------------------------------------------
 
 
          3. Значение условного номера РКЦ соответствует  разрядам  5  и  6
     девятизначного  банковского  идентификационного  кода (БИК);  условный
     номер РКЦ дополняется слева нулем до трех разрядов.
          4. Значение  условного номера кредитной организации соответствует
     разрядам 7, 8 и 9 БИК.
          5. Контрольный   ключ   рассчитывается  на  основе  приписываемых
     каждому разряду весовых коэффициентов:
 
          А Б В    Г Д Е Ж З    И К Л    М    Н О П Р    С Т У Ф Х Ц Ш
          ------------------------------------------------------------
          7 1 3    7 1 3 7 1    3 7 1    3    7 1 3 7    1 3 7 1 3 7 1
 
          6. В случае  использования  в  номере  счета  алфавитно-цифрового
     значения  кода  клиринговой  валюты  первый  разряд  этого  кода  (И),
     заданный алфавитным значением,  заменяется на соответствующую цифру:
     А- 0, В - 1,  С - 2,  Е - 3, Н - 4, К - 5, М - 6, Р - 7, Т - 8, Х - 9.
     Любая другая буква в данном разряде является ошибкой.  В качестве букв
     могут   использоваться  символы  кириллицы  и  соответствующие  им  по
     написанию латинские буквы,  которые могут набираться как  на  верхнем,
     так   и  на  нижнем  регистре.  7.  На  основе  весовых  коэффициентов
     рассчитывается сумма произведений отдельных разрядов на  свой  весовой
     коэффициент  без учета контрольного ключа,  который принимается равным
     нулю ( М=0 ):
 
         А * 7 + Б * 1 + В * 3 + Г * 7 + Д * 1 + Е * 3 + Ж * 7 + З * 1 +
         И * 3 + К  * 7 +   Л * 1 + 0 * 3 + Н * 7 + О * 1 + П * 3 + Р * 7 +
         С * 1 + Т * 3 + У * 7 +  Ф * 1 + Х * 3 + Ц * 7 + Ш * 1
 
          8. Младший   разряд   полученной   суммы  умножается  на  весовой
     коэффициент контрольного ключа (т.е. на 3).
          9. Младший разряд полученного произведения принимается в качестве
     значения контрольного ключа.
 
          Примеры расчета контрольного ключа
 
          1. Пример расчета контрольного  ключа  в  лицевом  счете  клиента
     кредитной организации, сформированного с использованием цифрового кода
     валюты
 
           Условный номер кредитной организации                 7 4 6
           Весовые коэффициенты соответствующих разрядов        7 1 3
 
           Номер лицевого счета с нулевым значением
        контрольного ключа                        30101 002 0  0000 3100000
        Весовые коэффициенты                      71371 371 3  7137 1371371
 
          Рассчитывается сумма  произведений  отдельных  разрядов  на  свой
     весовой коэффициент без учета контрольного ключа (М=0)
 
           7 * 7 + 4 * 1 + 6 * 3 + 3 * 7 + 0 * 1 + 1 * 3 + 0 * 7 + 1 * 1 +
           0 * 3 + 0 * 7 + 2 * 1 + 0 * 3 + 0 * 7 + 0 * 1 + 0 * 3 + 0 * 7 +
           3 * 1 + 1 * 3 + 0 * 7 + 0 * 1 + 0 * 3 + 0 * 7 + 0 * 1 = 104
 
          Младший разряд равен 4. Умножая его на 3, получаем 4 * 3=12.
          Младший разряд  полученного  произведения  (2)  и  будет являться
     значением контрольного ключа.  В результате номер лицевого счета будет
     равен 30101 002 2 0000 3100000.
 
          Правильность расчета     контрольного     ключа    осуществляется
     обязательным  повторным  расчетом  суммы  произведений   разрядов   на
     приписанные  им  весовые  коэффициенты  с  учетом полученного значения
     контрольного ключа:
 
           7 * 7 + 4 * 1 + 6 * 3 + 3 * 7 + 0 * 1 + 1 * 3 + 0 * 7 + 1 * 1 +
           0 * 3 + 0 * 7 + 2 * 1 + 2 * 3 + 0 * 7 + 0 * 1 + 0 * 3 + 0 * 7 +
           3 * 1 + 1 * 3 + 0 * 7 + 0 * 1 + 0 * 3 + 0 * 7 + 0 * 1 = 110
 
          В результате получилось число,  кратное 10 (младший разряд  равен
     0), что подтверждает правильность расчета.
 
 
          2. Пример расчета контрольного ключа в лицевом счете клиента РКЦ,
     сформированного с использованием алфавитно-цифрового кода валюты
 
            Условный номер РКЦ                                    0 0 5
            Весовые коэффициенты соответствующих разрядов         7 1 3
 
          Номер лицевого счета с нулевым значением
          контрольного ключа                 30101 В84 0  0000 2900000
 
          Заменяем букву В соответствующей ей цифрой (1) и получаем:
 
          Номер лицевого счета  с преобразованным
          значением первого разряда кода валюты  30101 184  0  0000 2900000
          Весовые коэффициенты                   71371 371  3  7137 1371371
 
          Рассчитываем сумму  произведений  отдельных  разрядов   на   свой
     весовой коэффициент без учета контрольного ключа (М=0)
 
       0 * 7 + 0 * 1 + 5 * 3 + 3 * 7 + 0 * 1 + 1 * 3 + 0 * 7 + 1 * 1 +
       1 * 3 + 8 * 7 + 4 * 1 + 0 * 3 + 0 * 7 + 0 * 1 + 0 * 3 + 0 * 7 + 2 *
       1 + 9 * 3 + 0 * 7 + 0 * 1 + 0 * 3 + 0 * 7 + 0 * 1 = 132
 
          Младший разряд равен 2. Умножая его на 3, получаем 2 * 3=6.
          Младший разряд полученного  произведения  (6)  и  будет  являться
     значением  контрольного  ключа.  В  результате  номер лицевого счета с
     учетом представления первого разряда исходного кода клиринговой валюты
     в виде цифры будет равен
 
                            30101 184 6 0000 2900000
 
          Правильность расчета  контрольного ключа проверяется обязательным
     повторным расчетом  суммы  произведений  разрядов  на  приписанные  им
     весовые коэффициенты с учетом полученного значения контрольного ключа:
 
           0 * 7 + 0 * 1 + 5 * 3 + 3 * 7 + 0 * 1 + 1 * 3 + 0 * 7 + 1 * 1 +
           1 * 3 + 8 * 7 + 4 * 1 + 6 * 3 + 0 * 7 + 0 * 1 + 0 * 3 + 0 * 7 +
           2 * 1 + 9 * 3 + 0 * 7 + 0 * 1 + 0 * 3 + 0 * 7 + 0 * 1 = 150
 
          В результате  получилось число,  кратное 10 (младший разряд равен
     0),  что подтверждает правильность расчета.  Таким образом,  с  учетом
     первоначального  значения кода клиринговой валюты номер лицевого счета
     будет равен
 
                            3010184_6_0000_2900000.
Вот. На си написать программу для вычисления этого самого Ключа.
Если хотите могу дать пример на вижуалбейсике
1
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
04.08.2010, 15:17
Цитата Сообщение от fasked Посмотреть сообщение
в Си символьный литерал преобразуется в 4байтовое целое?
Вроде того.

Добавлено через 2 минуты
Цитата Сообщение от Evg Посмотреть сообщение
только причины пока так никто и не озвучил
К сожалению, про причины говорить не могу, т.к. сам это решение где-то увидел, и почему символьные литералы занимают в С 4 байта, я не знаю.

Цитата Сообщение от Evg Посмотреть сообщение
Просто по поводу Си и Си++ мы в своё время наскребли 4 решения, два из которых являются абсолютно честными, одно теоретически честное, а одно условно хакерское.
Поделишься?
0
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
04.08.2010, 15:17
Цитата Сообщение от Evg Посмотреть сообщение
пояснение того, почему sizeof('a') на Си не равно единице.
хз почему... но знаю, что в Си, символы трактуются как целые.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
04.08.2010, 15:18
Цитата Сообщение от Nameless One Посмотреть сообщение
К сожалению, про причины говорить не могу, т.к. сам это решение где-то увидел, и почему символьные литералы занимают в С 4 байта, я не знаю.
Фигасе... хотя может быть, что тут должно быть не 4, а размер int'а. Но в этом случае решение будет неправильным, потому как в общем случае размер char'а не равен размеру int'а
0
2 / 2 / 0
Регистрация: 22.07.2010
Сообщений: 29
04.08.2010, 15:22
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Function GetKey(account As String, bic As String) as Byte
  Dim temp As String
  Dim wght(0 to 2) As Byte
  Dim i As Byte
  Dim s As integer
 
  wght(0) = 3:wght(1) = 7:wght(2) = 1
  temp = Right(bic,3) & Left(account,8) & "0" & Right(account,11)
 
  s = 0
  For i = 1 to 32
    s = s + CByte(Mid(temp,i,1)) * wght(i Mod 3)
  Next i
 
 GetKey = ((s Mod 10)*3) Mod 10
End Function
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
04.08.2010, 15:22
Цитата Сообщение от Evg Посмотреть сообщение
Фигасе... хотя может быть, что тут должно быть не 4, а размер int'а. Но в этом случае решение будет неправильным, потому как в общем случае размер char'а не равен размеру int'а
почему же неправильно, если в Си sizeof('a') == sizeof(int), а в Си++ sizeof('a') == sizeof(char)
0
Эксперт С++
 Аватар для Хохол
476 / 444 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
04.08.2010, 15:36
Цитата Сообщение от Evg Посмотреть сообщение
C++
1
2
3
int a[10];
int x;
x = 2[a];
Evg, объясните же, втфиго?
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
04.08.2010, 15:37
Цитата Сообщение от Хохол Посмотреть сообщение
объясните же, втфиго?
It is alive!
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.08.2010, 15:37
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
560
Закрытая тема Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru