Войдите как ученик, чтобы получить доступ к материалам школы
Упражнения по внутреннему языку программирования 1С 8.3: шифры и пароли
Автор упражнений и преподаватель школы: Владимир Милькин
Упражнение №10. Программа читает текстовый файл «c:in.txt», шифрует (то есть делает совершенно отличным от оригинального) его содержимое и выводит результат в файл «c:out.txt». Способ шифрования придумайте сами.
// запись текстового файла Документ = Новый ТекстовыйДокумент; Документ.УстановитьТекст(«Привет, Мир!»); Документ.
Записать(«c:Пример.txt»); // чтение текстового файла Документ = Новый ТекстовыйДокумент; Документ.Прочитать(«c:Пример.txt»); Текст = Документ.ПолучитьТекст(); Сообщить(Текст);
Пример текстового файла для шифрования возьмите любой, но обратите внимание, что у любого текстового файла есть своя кодировка, благодаря которой компьютер может переводить байты в символы и обратно.
В зависимости от способа, которым вы будете создавать текстовый файл он может получиться в разной кодировке, но скорее всего это будет Windows-1251 или UTF-8.
Крутой заказ на фрилансе | Подбираем забытый пароль к Excel файлу с помощью Python
При необходимости в своём коде укажите один из этих вариантов явно, вот так:
Документ.Записать(«c:Пример.txt», «UTF-8»); Документ.Прочитать(«c:Пример.txt», «UTF-8»);
Документ.Записать(«c:Пример.txt», «windows-1251»); Документ.Прочитать(«c:Пример.txt», «windows-1251»);
Иначе у вас будут считываться и записываться крякозябры вместо букв.
Сначала придумайте как будете шифровать строку — тогда сможете легко зашифровать весь текст. Ведь текст — это и есть строка.
Зашифровать строку — значит сделать преобразование каждого из её символов. Преобразование должно быть однозначным, чтобы мы потом смогли сделать обратное преобразование — дешифрование.
Возможно вам понадобятся функции КодСимвола и Символ, которые используется при работе со строками (ссылка).
Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь.
Для того, чтобы стало возможным использование функций чтения и записи файла в нашей учебной базе выполните следующие инструкции:
Показать инструкции
1. Нажмите правой кнопкой мыши на элементе «Конфигурация» и выберите пункт «Свойства».
2. Внизу открывшейся справа панели найдите пункт «Режим использования синхронных вызовов. «. Установите его значение в «Использовать».
3. Нажмите на значок дискеты, чтобы сохранить изменения.
Python l Программа задания пароля с помощью цикла While
Скорее всего вы не сможете создать файл «in.txt» в корне системного диска С (обычно это место имеет защиту от записи новых файлов пользователем). Поэтому выберите себе другой каталог для хранения этого текстового файла и укажите его в программе.
Например, у себя на компьютере я расположил файл «in.txt» на рабочем столе и указал в программе путь до него как «C:UsersПользовательDesktopin.txt» (у вас этот путь будет другим). Соответственно путь для файла с результатом шифрования я указал как «C:UsersПользовательDesktopout.txt».
Общий план
Читаем файл в строку. Бежим по каждому символу этой строки. Узнаём код символа строки, меняем этот код (к примеру, прибавляем к нему число 5), снова превращаем код в символ и прибавляем этот символ (уже шифрованный) к другой строке.
В итоге получаем зашифрованный вариант строки, которую записываем в файл.
объявить текстовый документ Документ прочитать в Документ файл «c:in.txt» Текст = получить текст из Документ цикл для А от 1 до (длина строки Текст): { Символ = символ строки Текст под номером А КодСимвола = код Символ ШифрованныйКод = КодСимвола + 5 ШифрованныйСимвол = символ с кодом ШифрованыйКод ШифрованныйТекст = ШифрованныйТекст + ШифрованныйСимвол } установить ШифрованныйТекст в Документ записать Документ в файл «c:out.txt»
Эталонное решение. Сначала пишем код сами, проверяем на компьютере (как и все примеры программ из уроков), только потом сверяемся
Войдите на сайт как ученик
Авторизуйтесь, чтобы получить доступ ко всем материалам школы
Упражнение №11. Напишите программу, которая читает текстовый файл «c:out.txt» из предыдущего упражнения, дешифрует его и выводит результат в текстовый файл «c:res.txt». Если программа будет написана верно, файл «c:res.txt» будет полностью совпадать с файлом «c:in.txt».
Дешифрование — это преобразование обратное тому, которое вы делали в предыдущем упражнении. То есть, если вы при шифровании, к примеру, прибавляли к коду каждого символа число 5, то при дешифровании его нужно отнимать.
Общий план
Читаем файл в строку. Бежим по каждому символу этой строки. Узнаём код символа строки, меняем обратным способом этот код (отнимаем число 5), снова превращаем код в символ и прибавляем этот символ (уже дешифрованный) к другой строке.
В итоге получаем дешифрованный вариант строки, которую записываем в файл.
объявить текстовый документ Документ прочитать в документ файл «c:out.txt» Текст = получить текст из Документ ДешифрованныйТекст = «» цикл для А от 1 до (длина строки Текст): { Символ = символ из строки Текст под номером А КодСимвола = код Символ ДешифрованныйКодСимвола = КодСимвола — 5 ДешифрованныйСимвол = символ с кодом ДешифрованныйКодСимвола ДешифрованныйТекст = ДешифрованныйТекст + ДешифрованныйСимвол } установить ДешифрованныйТекст в Документ записать Документ в файл «c:res.txt»
Эталонное решение. Сначала пишем код сами, проверяем на компьютере (как и все примеры программ из уроков), только потом сверяемся
Войдите на сайт как ученик
Авторизуйтесь, чтобы получить доступ ко всем материалам школы
Упражнение №12. У системных администраторов часто возникает задача придумывания большого количества паролей для пользователей. Напишите программу, которая вводит от пользователя длину и количество паролей, а затем случайным образом генерирует нужное количество паролей нужной длины. Пароли могут включать в себя цифры, знаки подчеркивания и буквы латинского алфавита.
Составьте строку включающую в себя все возможные символы для паролей, а затем генерируйте число от 1 до длины строки.
ГСЧ = Новый ГенераторСлучайныхЧисел(); Сообщить(ГСЧ.СлучайноеЧисло(1, 10))
Общий план
Вводим от пользователя количество и длину паролей. Генерируем нужное количество паролей следующим образом: объявляем алфавит (строку со всеми возможными символами для паролей), случайным образом (при помощи генератора случайных чисел) берём символы из алфавита для образования новых паролей.
Выводим пользователю получившийся список паролей.
ввести от пользователя КоличествоПаролей ввести от пользователя ДлинаПаролей Алфавит = «1234567890_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ» объявить генератор случайных чисел ГСЧ ВсеПароли = «» цикл для А от 1 до КоличествоПаролей: { НовыйПароль = «» цикл для Б от 1 до ДлинаПаролей: { Индекс = случайное число из ГСЧ от 1 до (длина Алфавит) СимволАлфавита = символ из Алфавит под номером Индекс НовыйПароль = НовыйПароль + СимволАлфавита } ВсеПароли = ВсеПароли + НовыйПароль + (символ переноса строки) } вывести ВсеПароли
Эталонное решение. Сначала пишем код сами, проверяем на компьютере (как и все примеры программ из уроков), только потом сверяемся
Войдите на сайт как ученик
Авторизуйтесь, чтобы получить доступ ко всем материалам школы
Для учеников
Второй модуль — самый сложный в школе. Если вы не программировали ранее — приготовьтесь к тому, что не сможете решить некоторые из задач с первого раза и без подсказок.
Поэтому вовремя останавливайтесь и спрашивайте преподавателя, если что-то не понятно даже с подсказками.
В крайнем случае, пройдите все оставшиеся модули школы, а затем вернитесь с новыми силами к решению задач второго модуля.
На вопросы учеников — отвечаю по почте, но прежде загляните в ЧАВО (ссылка) .
Источник: helpme1s.ru
Составить программу которая будет запрашивать пароль
Составить программу которая будет запращивать пароль до тех пор пока не введут правильный или кол-во попыток не превысит 5. С каждым вводом пароля выводится кол-во оставшихся попыток. Спасибо.
Made In USSR!
Регистрация: 01.09.2010
Сообщений: 3,657
const pass=’password’; k=5; var i:integer; s:string; begin i:=0; s:=»; repeat Writeln(‘InpuT pass’); writeln(‘Remaining ‘,k-i,’ attempts’); Write(‘Pass:’);readln(s); i:=i+1; until (i=k) or (s=pass); if S=pass then Writeln(‘Access is restricted’) else Writeln(‘Access Denied’); readln; readln; end.
«. В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал. »
(c) Юрий Клинских aka «Хой»
Форумчанин
Регистрация: 23.11.2010
Сообщений: 530
а можно таким способом
uses crt; var a: string; function chek(const pas: string; att: integer): boolean; var c, f: char; s: string; k: integer; charsLt: set of char; charsK: set of char; numbers: set of char; begin k := 1; charsLt := [‘А’..’я’]; numbers := [‘0’..’9′]; charsK := [‘A’..’z’]; while k #13 do begin write(s); c := readkey; if (c in charsLt) or (c in charsk) or (c in numbers) then s := s + c; if c = #8 then delete(s, length(s), 1); clrscr; writeln(‘Введите пароль:’); end; k := k + 1; writeln(s); if s = pas then begin writeln(‘Пароль верный’); result := true; break; end else begin if k — 1 <> att then begin writeln(‘Пароль не верный, повторите ввод’); writeln(‘Осталось ‘, (att + 1) — k, ‘ попытки(-ок). ‘); if k = 2 then writeln(‘Для повтора ввода нажмите любую клавишу, для выхода нажмите «Esc»‘); f := readkey; if f = #27 then begin result := false; exit; end; end else begin writeln(‘Пароль не верный, попытки исчерпаны’); writeln(‘Для выхода нажмите любую клавишу’); readkey; exit; end; end; clrscr; end; end; begin a := ‘password’; chek(a, 5); end.
Последний раз редактировалось unbanned; 19.01.2012 в 22:35 .
Источник: www.programmersforum.ru
(Решено) Даны k целых чисел. Напишите программу, которая на входе получает строку с k числами, разделенными пробелами, а на выходе выводит число, которое ЧАЩЕ …
Даны k целых чисел. Напишите программу, которая на входе получает строку с k числами, разделенными пробелами, а на выходе выводит число, которое ЧАЩЕ ВСЕГО встречается в списке, при этом:
– если наиболее часто встречается только одно число, то выводить только его,
– если наиболее часто встречаются сразу несколько чисел, то выводить их всех в порядке возрастания.
Доп. требования:
1. не использовать методы и библиотеки, упрощающие реализацию задачи,
2. обратить внимание на оптимальность алгоритма с точки зрения расхода памяти при работе с переменными
Не закрывайте страницу. Нейросеть пишет ответ. Он появится тут.
Этот ответ написан нейросетью.
Искуственный интеллект во многом преуспевает, но в некоторых областях может давать неточные ответы.
Если вам не понравился ответ, попробуйте задать его более развёрнуто и конкретно, используя точные параметры.
Ответ нейросети:
Для решения данной задачи можно использовать простой алгоритм подсчета количества повторений каждого числа и выбора наиболее часто встречающихся чисел.
Алгоритм может выглядеть следующим образом:
1. Разбиваем входную строку на отдельные числа и сохраняем их в список.
2. Создаем словарь, где ключами будут числа из списка, а значениями — количество повторений каждого числа.
3. Проходим по списку и для каждого числа увеличиваем соответствующее значение в словаре.
4. Находим максимальное количество повторений числа в словаре.
5. Создаем новый список, в который будем сохранять числа с максимальным количеством повторений.
6. Проходим по словарю и для каждой пары (число, количество повторений) проверяем, равно ли количество повторений максимальному значению. Если равно, добавляем число в новый список.
7. Сортируем новый список с числами в порядке возрастания.
8. Выводим отсортированный список чисел.
Такой алгоритм обеспечит оптимальность по памяти, так как мы используем только две структуры данных — список и словарь, которые занимают пропорциональное количество памяти от количества чисел.
Пример реализации на языке Python:
numbers = input(«Введите числа через пробел: «).split() # разбиваем входную строку на список чисел counts = <> # словарь для хранения количества повторений каждого числа # подсчитываем количество повторений каждого числа for number in numbers: if number in counts: counts[number] += 1 else: counts[number] = 1 # находим максимальное количество повторений max_count = max(counts.values()) result_numbers = [] # список для хранения чисел с максимальным количеством повторений # добавляем в список числа с максимальным количеством повторений for number, count in counts.items(): if count == max_count: result_numbers.append(int(number)) result_numbers.sort() # сортируем список чисел в порядке возрастания # выводим результат print(«Наиболее часто встречающиеся числа:», result_numbers)
Таким образом, предложенный алгоритм решения задачи обеспечивает оптимальность по памяти и позволяет найти наиболее часто встречающиеся числа в списке в порядке возрастания.
Чтобы оставить комментарий, необходимо авторизоваться.
Задай любой вопрос нейросети!
она справится с любой поставленной задачей быстрее чем поиск в Яндекс.
Для того, чтобы задать вопрос нейросети, необходимо войти на сайт.
Последние вопросы
Искусственный интеллект ChatGPT на русском: полный обзор, возможности и использование
(Решено) Стратегию продаж автокредитов на 2023 накидай пжл …
(Решено) Приведите пример когда вы брали на себя ответственность …
(Решено) Напиши игры для детей 6-12 в летний лагерь…
(Решено) идеи для названия телеграмм канала о творчестве, самопознании, арт-терапии для женщин…
(Решено) Разработка плана психологического консультирование при работе c переживанием горя…
(Решено) Мне нравится девушка по имени Настя. Она рыжая, худая и мудрая.Сделай ей большой ласковый комплимент, вырази симпатию. Напиши что надеешься на общее …
(Решено) 1. Как доказать Артему что BMW гавно, а не машина. А вот мерседес лучшая машина в мире. Приведи 20 аргументов.2. Составь и опиши план по заработку на…
(Решено) Есть две таблицы: 1. late_collection_clients с полями: id_city, amt_loan, date_loan, credit_type (CC, POS-1, POS-2, RC, TOP-UP).2. region_dict с поля…
(c) ChatGPT по русски 2023. Все права защищены. При обнаружении неправомерного контента пишите на [email protected]
Хотите задать любой вопрос нейросети?
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет»
Форма репорта неправомерного контента.
Обратная связь с администрацией проекта
Уведомление об использовании cookie файлов
При использовании данного сайта, вы подтверждаете свое согласие на использование файлов cookie и других похожих технологий в соответствии с настоящим Уведомлением.
Если Вы не согласны, чтобы мы использовали данный тип файлов, Вы должны соответствующим образом установить настройки Вашего браузера или не использовать наш сайт.
Обращаем Ваше внимание на то, что при блокировании или удалении cookie файлов, мы не можем гарантировать корректную работу нашего сайта в Вашем браузере.
Cookie файлы, которые сохраняются через веб-сайт, не содержат сведений, на основании которых можно Вас идентифицировать.
Что такое файл cookie и другие похожие технологии
Файл cookie представляет собой небольшой текстовый файл, сохраняемый на вашем компьютере, смартфоне или другом устройстве, которое Вы используете для посещения интернет-сайтов.
Некоторые посещаемые Вами страницы могут также собирать информацию, используя пиксельные тэги и веб-маяки, представляющие собой электронные изображения, называемые одно-пиксельными (1×1) или пустыми GIF-изображениями.
Файлы cookie могут размещаться на вашем устройстве нами («собственные» файлы cookie) или другими операторами (файлы cookie «третьих лиц»).