Проверка и изменение пароля
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Смотрим функцию
change_password
: ввели новый пароль, ввели новый пароль ещё раз, сравнили — совпадает, вывели сообщение «Пароль успешно изменен» и... И всё. Локальные переменные с новым паролем умерли при выходе из функции. Это раз.Смотрим функцию
valid_passport
и её вызов. Вызов осуществляется с одним аргументом. Следовательно правильный пароль берётся как значение второго аргумента по умолчанию, т.е."qwerty123"
. При таком раскладе смена пароля невозможна в принципе. Это два.В этой программе если уж что-то и хранить в глобальной переменной, то текущий правильный пароль. Для введённого (проверяемого) пароля лучше использовать локальную переменную и передавать её в функцию проверки пароля как параметр.
За неоправданное использование рекурсии вместо цикла надо руки отбивать. Переделай на
do-while
.Спасибо)
Поняла, что можно было сделать все гораздо проще, теперь стыдно показывать предыдущий код))
Почему предпочтение отдается циклам, а не рекурсии в подобных случаях?
Я совсем новичок в программировании и для меня это пока не очевидно)
Пожалуйста ))
Не ошибается тот, кто ничего не делает. Простите за банальность.
Всё можно было сделать и гораздо проще... и гораздо сложнее. Не то, что бы сложнее, но с бОльшей функциональностью. Кстати, такая программка — неплохой полигон для тренировки. Например: