|
0 / 0 / 0
Регистрация: 23.11.2024
Сообщений: 6
|
|
Необходимо разработать программу для валидации банковских карт30.11.2024, 09:15. Показов 2258. Ответов 11
Задание
Необходимо разработать программу для валидации банковский карт. Программа должна проверять корректность введенного номера и выводить название платежной системы и банка эмитента, входящего в топ 10 банков РФ. Отдельной переменной DEBUG должна включаться трассировка, выводящая все шаги алгоритма валидации банковской карты. Программа должна быть реализована на языке Pascal Критерии оценки Программа выполняет указанныев задании требованияв полном объеме Программа может обрабатывать все возможные ошибки при выполнении Чистота кода и отсутствиеcodesmells - Названия переменных отражают хранящиесятам данные - Названия переменных безтранслита - Отступы 4 пробела для выделения вложений в блоках кода (тело if или цикла) - Скобки, ограничивающие блоки кода, расположены правильно - Разделение пустыми строками кода отвечающий за разный функционал программы Пример корректной работы программы Ввод: Введите номер банковской карты: 4897 9803 1885 1582 Вывод: Номер корректен Платежнаясистема: VISA Банк эмитент: Сбер Вопросы длязащиты Объяснить предметную терминологию: банк-эквайер, банк-эмитент, платежнаясистема, БИН. ОбъяснитьIT терминологию: Программа, язык программирования, программный код, компилятор, машинный код, исполняемый файл, частота процессора, такт, переменная, типы данных в Pascal, условные конструкции Pascal, Циклы Pascal,блок кода, Умение детально объяснить принцип работы программы и ее алгоритмов. Какаябывает память у компьютера Почему числовые переменные ограничены по размеру памяти Дополнительно все разбить на функции и процедуры
0
|
|
| 30.11.2024, 09:15 | |
|
Ответы с готовыми решениями:
11
Алгоритм Луна для валидации кредитных карт Рефакторинг кода для генерации, валидации и записи в файл номеров платежных карт Считыватель UID банковских карт |
|
Модератор
10361 / 5635 / 3394
Регистрация: 17.08.2012
Сообщений: 17,197
|
|
| 30.11.2024, 13:59 | |
|
Ничего сложного. Разбить на цифры, проверить корректность номера карты алгоритмом Луна, расшифровать БИН.
Только вот загвоздка: мы ни разу не банкиры, и нам доступно не всё. Выложите таблицу БИН для Ваших десяти банков. Помните, так как у нас используются карты "МИР", для них БИН должен состоять из восьми цифр, а не из шести. Да, и с какой целью Вы выложили вопросы, на которые придётся отвечать Вам? Здесь не обучающий сайт, потрудитесь всё найти и выучить сами.
1
|
|
|
Модератор
10361 / 5635 / 3394
Регистрация: 17.08.2012
Сообщений: 17,197
|
|
| 01.12.2024, 22:32 | |
|
Какого лешего Вы мне "спасибку" поставили? С какого перепуга? Я ещё Вам не помог, потому что у меня нет БИНов. Я не банкир. Но Вы-то почти банкир, может, у Вас БИНы есть? Они, если что, не секретные, просто их знают только те, кому это действительно нужно.
Я нашёл базу БИНов на сайте какого-то американского банка, но там даже СБЕРа нет, по понятным причинам. Выкладывайте БИНы и названия 10 ведущих банков РФ, тогда помогу.
0
|
|
|
0 / 0 / 0
Регистрация: 23.11.2024
Сообщений: 6
|
|
| 16.12.2024, 18:49 [ТС] | |
|
Cyborg Drone, Первая цифра БИН указывает на платежную систему (для карт «Мир» — первые две цифры):
- 4 — Visa; - 5 — MasterCard; - 6 — UnionPay; - 22 — «Мир». 1)Альфа-Банк: 521178, 548673, 548601, 45841, 415428, 676371, 477964 2)Газпромбанк: 548999, 526483 3)МТС Банк — 533736/540616 4)Открытие — 434146, 405870, 544573, 532301 5) Райффайзен Банк: 462730, 462729 6)Тинькофф банк: 521324, 437773 7) Сбербанк: 427683, 63900, 67758, 427901, 54693, 427644, 427601, 427901, 427631 8) Хоум Кредит: 445435 9) Яндекс-Деньги: 518901 10) Промсвязьбанк: 447817, 447818, 476208 , 476206, 554759, 520373
0
|
|
|
Модератор
10361 / 5635 / 3394
Регистрация: 17.08.2012
Сообщений: 17,197
|
||||||
| 16.12.2024, 21:55 | ||||||
Сообщение было отмечено mikhlop100 как решение
Решение
Долго не отвечал, потому что программа, хоть и простая, но муторная, и потребовала внимательного подхода.
Вот программа согласно требований к Вашему заданию:
Среди БИНов, которые Вы указали, есть пятизначные, чего быть не может. Обычно БИН состоит из 6 или из 7 цифр. Я решил, что это БИНы платёжной системы "Мир", и добавил им 22 в начало. В номере банковской карты из примера содержится БИН, который Вы не указали. Добавил этот БИН к Сбербанку. Количество БИНов для разных банков разное, поэтому для хранения БИНов была применена строка. Конечно, по уму нужно было сделать список, но это очень сильно усложнило бы программу. БИНы с обеих сторон ограничены пробелами для того, чтобы поиск был корректен. Иначе возможно спутать семизначный и шестизначный БИН, если они различаются только наличием дополнительной двойки. Если что не так, подправьте массивы payment_system и/или banks. При добавлении/удалении банков в/из banks не забудьте скорректировать константу bank_count. При добавлении/удалении БИНов в/из banks просто добавьте или удалите БИНы, следите, чтобы они были шестизначными или семизначными, и были ограничены пробелами и в начале, и в конце. Так как в примере нет ввода переменной DEBUG, я сделал вывод отладочной информации с помощью директив компилятора (это специальные комментарии, начинающиеся с {$). Если нужно выводить отладочную информацию, то уберите первые два символа // в первой строке. Тогда переменная DEBUG будет определена, и отладочная информация будет выводиться. Для отключения вывода отладочной информации, естественно, эти два символа нужно добавить в начало первой строки. Тогда переменная DEBUG не будет определена, и отладочная информация выводиться не будет. В программе то, что относится к выводу отладочной информации, располагается между директивами компилятора {$Ifdef DEBUG} и {$Endif}.Разбирайтесь, там всё просто, на самом деле. И пишите, если что не так. Подрихтуем. Добавлено через 17 минут Ах, да, чуть не забыл. Программа обрабатывает только 16-значные номера карт (15 рабочих и 1 проверочная цифра). Поэтому часть алгоритма Луна для чётного количества рабочих цифр не реализована за ненадобностью.
1
|
||||||
|
0 / 0 / 0
Регистрация: 21.02.2022
Сообщений: 3
|
|||||||||||||||||
| 13.01.2025, 06:45 | |||||||||||||||||
|
из истории
https://www.freeformatter.com/... dator.html
0
|
|||||||||||||||||
|
0 / 0 / 0
Регистрация: 21.02.2022
Сообщений: 3
|
|
| 13.01.2025, 06:58 | |
|
Код на Delphi 10.4
0
|
|
|
Модератор
10361 / 5635 / 3394
Регистрация: 17.08.2012
Сообщений: 17,197
|
||||||||||||||||
| 13.01.2025, 20:35 | ||||||||||||||||
|
ndenis, не торопитесь возмущаться, я сейчас Вам всё поясню.
Добавлено через 4 часа 57 минут ndenis, пожалуйста, проверяйте Ваш код перед публикацией, если не желаете прослыть лжецом и/или троллем. Внимательнее отностиесь к Вашим словам, если их оценивают миллионы людей. Но, не расстраивайтесь, всё не так плохо: я по своим каналам разузнал, что индусские программисты торжественно выбросили Ваш код в Ганг, и во время этого сакрального действа выпили по стаканчику фенни в Вашу честь. Ладно-ладно, чур не обижаться, пошутил я, точнее, это такой у меня сарказм .Разбор полётов, в общих чертах. Все мои матюки разрешаю додумать Вам в процессе разбора. Достоинства Вашей программы:
Об причинах. Источник "из истории" Вас обманул, и, скорее всего, Вы его немножко неверно поняли. Получается, что Вы недостаточно изучили материал по теме. Правильный алгоритм: Википедия - Алгоритм Луна. Хотя, конечно, описан алгоритм этот хоть и правильно, но через пень-колоду, ну что тут поделаешь, Википедия. Лун вёл отсчёт (всех) цифр номера карты справа, а не слева, поэтому ему не было смысла разделять длину номера на чётную и нечётную. Оригинальный алгоритм, созданный и описанный Луном, реализован мной в виде функции на паскале (номер должен содержать только цифры, длина номера может быть любая, потому что так у Луна):
Моя реализация полного (и так называемого упрощённого) алгоритма Луна для (не слишком старых) Delphi или для Lazarus, и очень подходящая для замены Вашей неверной функции:
Вот, как-то так... Надеюсь, это всё будет Вам полезным. P.S: Архив Ваш посмотрел. Всё то же самое, что и в Вашем сообщении #6, только немножко страшнее.
0
|
||||||||||||||||
|
Модератор
|
|||||||
| 13.01.2025, 21:19 | |||||||
0
|
|||||||
|
Модератор
10361 / 5635 / 3394
Регистрация: 17.08.2012
Сообщений: 17,197
|
|
| 13.01.2025, 21:41 | |
|
bormant, дружище, рад тебя видеть. Так у меня то же самое написано, что и у тебя, как ты порой говоришь, что совой об пень, что пнём об сову.
Но у меня есть "оправдание": я хотел
0
|
|
| 13.01.2025, 22:05 | |
|
Не по теме: Ну, тогда со Старым Новым годом, что ли...
0
|
|
| 13.01.2025, 22:05 | |
|
Помогаю со студенческими работами здесь
12
Вакансия: Специалист по доставке банковских карт Как реализовать систему банковских кредитных карт? Необходимо реализовать джейсонсхему для валидации данных программы Необходимо разработать программу для вычисления значений функции f(x) на интервале от xn до xk с шагом h Необходимо разработать программу для получения почтовых сообщений по протоколу POP3 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга,
Ты же видел моря и метели.
Как сменялись короны и стяги,
Как эпохи стрелою летели.
- Этот мир — это крылья и горы,
Снег и пламя, любовь и тревоги,
И бескрайние. . .
|