Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 20.11.2013
Сообщений: 16
1

Как зашифровать слова по позициям букв в файле?

20.12.2013, 16:45. Показов 3384. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Программа с помощью прочитанного файла должна каждой букве русского алфавита сопоставить числовой код следующим образом: каждой букве соответствует последняя по счёту позиция этой буквы в файле. Коды всех букв нужно вывести на экран.

Написать шифровальную программу. Программа должна спрашивать у пользователя слова, пока тот не введёт пустое слово. После этого она должна распечатать эти слова в зашифрованном виде: вместо каждой буквы должен быть напечатан её код, полученный на предыдущем шаге. Коды букв каждого слова нужно печатать на одной строке через пробел.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.12.2013, 16:45
Ответы с готовыми решениями:

Найти в файле f все слова, которые можно сложить из букв слова р
Дано слово р и файл f .найтти в файле f все слова которые можна сложить с букв слова р Не знаю как...

Найти в файле f все слова, которые можно сложить из букв слова р
Дано слово р и файл f.найти в файле f все слова которые можна сложить с букв слова р. ФАЙЛ...

Найти в файле все слова, которые можно сложить из букв заданного слова
Дано слово р и файл f.найти в файле f все слова которые можна сложить с букв слова р.

Если слова в файле начинаются с заданных букв, то занести эти слова в массив
Вот задание записать в массив IDN типа STRING все идентификаторы переменных начинаются с букв I,...

Найти в файле слова, начинающиеся на заданную букву, и слова с заданным количеством букв
создать тестовый файл ,найти в в ньом слова которые начинаются на заданую букву и слова с заданым...

2
Z3JheSBoYXQ=
342 / 237 / 83
Регистрация: 08.07.2012
Сообщений: 577
20.12.2013, 19:10 2
Лучший ответ Сообщение было отмечено Anastasiaa как решение

Решение

Python
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
#!/usr/bin/env python
#coding: utf-8
 
# Программа с помощью прочитанного файла должна
# каждой букве русского алфавита сопоставить числовой код следующим образом:
#  каждой букве соответствует последняя по счёту позиция этой буквы в файле.
#  Коды всех букв нужно вывести на экран.
#
# Написать шифровальную программу.
# Программа должна спрашивать у пользователя слова,
#  пока тот не введёт пустое слово.
#  После этого она должна распечатать эти слова в зашифрованном виде:
#  вместо каждой буквы должен быть напечатан её код,
# полученный на предыдущем шаге.
# Коды букв каждого слова нужно печатать на одной
# строке через пробел.
 
 
def make_file(fname):
  with open(fname,'wb') as f:
    res=[unichr(x) for x in range(1040,1104)]
    [f.write(x.encode('utf-8')+' ') for x in res]
    f.write('\n')
    [f.write(str(x)+' ') for x in range(0,64)]
  with open(fname,'rb') as f:
    r=f.readlines()
    crypt_book= {key.decode('utf-8'):value.decode('utf-8') for key,value in zip(r[0].split(), r[1].split())}
    if len(crypt_book.keys()) == len(crypt_book.values()):
      return crypt_book
    else:
      print 'Ошибочная длина входящей и выходящей сетки.'
      return False
 
def easy_crypt_IO(crypt_book={}):
  if not crypt_book:
    print 'crypt book empty. abort'
    return False
  while True:
    word=raw_input("[exit - для выхода] слово на русском:=>").decode('utf-8')
    if 'exit' in word:
      print 'Выходим из цикла'
      break
    if word:
      crypt=[]
      for sym in word:
        try:
          crypt.extend(crypt_book[sym])
        except KeyError as e:
          print 'ошибка-> в сетке нет подходящего символа для замены' ,e
          crypt.extend(sym)
      print ''.join(crypt)
    else:
      print 'Word is empty'
 
 
fname='crypt_table'
easy_crypt_IO(make_file(fname))
Код
[exit - для выхода] слово на русском:=>привет
474840343750
[exit - для выхода] слово на русском:=>тунедцы
50514537365459
[exit - для выхода] слово на русском:=>лентяи
433745506340
[exit - для выхода] слово на русском:=>студентики
49505136374550404240
[exit - для выхода] слово на русском:=>exit
Выходим из цикла
Добавлено через 7 минут
добавлю некоторые пояснения по программке. Функция make_file создает файл crypt_table имеющего в себе строки первая из которых представлена 2 байтовыми значениями кириллицы, вторая - символы для замены. ЗАмечу, что во второй можно пихать что угодно, даже
сегменты, главное правило, чтобы количество элементов у каждой сетки совпадала. Строки разбиваются по пробелу. Так, что общее
правило для каждого элемента - обязательно наличие пробела от соседа.

Вторая функция получает книженцию формата ключ значение, ключом выступает любой символ, полученный из первой строки, заменой
выступит значение ключа. Все очень просто.

зы. Объяснение для тех, кто в танке. Алгоритм предельно прост.
1
0 / 0 / 0
Регистрация: 16.03.2015
Сообщений: 5
18.03.2015, 11:26 3
да, я видел данную программу, но я начал только учить питон, и может быть есть способ ее написать проще?
0
18.03.2015, 11:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.03.2015, 11:26
Помогаю со студенческими работами здесь

Дано слово р и файл f. Найти в файле f все слова, которые можно составить из букв слова р
Дано слово р и файл f. Найти в файле f все слова, которые можно составить из букв слова р.

Дано слово р и файл f. Найти в файле f все слова, которые можно составить из букв слова р
Дано слово р и файл f. Найти в файле f все слова, которые можно составить из букв слова р.

В символьном файле записаны слова, разделенные пробелами. Удалить из файла слова состоящие менее чем из трех букв, и лишние пробелы.
В символьном файле записаны слова, разделенные пробелами. Удалить из файла слова состоящие менее...

1. Построить три множества: одно из букв данного слова H и второе из букв данного слова L, третье из букв слова K. Вывести на экран те буквы, которые
1. Построить три множества: одно из букв данного слова H и второе из букв данного слова L, третье...

В файле F заменить на звездочку(*) слова в которых нету букв слова "word"
В файле F заменить на звездочку(*) слова в которых нету букв слова "word" #include <stdio.h>...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru