15.07.2010, 05:53 | |
Ответы с готовыми решениями:
1272
Элементарные программы, для лучшего понимания языка... Задачи для тренировки и лучшего понимания языка Литература для лучшего понимания сути программирования Набор задачь для тренировки и улучшения понимания программирования |
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
04.08.2010, 15:06 | 542 |
3
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
04.08.2010, 15:10 | 547 |
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
04.08.2010, 15:12 | 551 |
0
|
04.08.2010, 15:12 | 552 |
Просто по поводу Си и Си++ мы в своё время наскребли 4 решения, два из которых являются абсолютно честными, одно теоретически честное, а одно условно хакерское. А тут по ходу ещё одно решение, только причины пока так никто и не озвучил
0
|
2 / 2 / 0
Регистрация: 22.07.2010
Сообщений: 29
|
|
04.08.2010, 15:14 | 553 |
Вот интересная штука.
Код
ПОРЯДОК РАСЧЕТА И ПРОВЕРКИ КОНТРОЛЬНОГО КЛЮЧА В НОМЕРЕ ЛИЦЕВОГО СЧЕТА В соответствии с принятой структурой номера лицевого счета Банк России разъясняет порядок расчета контрольного ключа. 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), что подтверждает правильность расчета. Таким образом, с учетом первоначального значения кода клиринговой валюты номер лицевого счета будет равен 30101_В84_6_0000_2900000. Если хотите могу дать пример на вижуалбейсике
1
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
04.08.2010, 15:17 | 554 |
Вроде того.
Добавлено через 2 минуты К сожалению, про причины говорить не могу, т.к. сам это решение где-то увидел, и почему символьные литералы занимают в С 4 байта, я не знаю. Поделишься?
0
|
04.08.2010, 15:18 | 556 |
Фигасе... хотя может быть, что тут должно быть не 4, а размер int'а. Но в этом случае решение будет неправильным, потому как в общем случае размер char'а не равен размеру int'а
0
|
2 / 2 / 0
Регистрация: 22.07.2010
Сообщений: 29
|
||||||
04.08.2010, 15:22 | 557 | |||||
0
|
476 / 444 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
|
|
04.08.2010, 15:36 | 559 |
0
|
04.08.2010, 15:37 | 560 |
1
|
04.08.2010, 15:37 | |
04.08.2010, 15:37 | |
Помогаю со студенческими работами здесь
560
Проверить на правильность и закомментировать весь код для лучшего понимания Нужны задачи для тренировки Нужны задачи для тренировки Нужны задачи для тренировки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |