DIM c(1 TO 5), d(1 TO 5), m(1 TO 5) CLS PRINT "c(5):" FOR i = 1 TO 5 INPUT c(i) NEXT i PRINT "d(5):" FOR i = 1 TO 5 INPUT d(i) NEXT i PRINT "m(5)="; s = 0 FOR i = 1 TO 5 m(i) = c(i) - d(i) IF m(i) > 0 THEN s = s + m(i) PRINT m(i); NEXT i PRINT PRINT "s="; s
Http://planetcalc.ru/1434/ Шифр Цезаря один из наиболее древнейших известных шифров. Схема шифрования очень проста - используется сдвиг буквы алфавита на фиксированное число позиций. Используемое преобразование обычно обозначают как ROTN, где N - сдвиг, ROT - сокращение от слова ROTATE, в данном случае "циклический сдвиг".
Алфавит действительно зацикливается, то есть буквы в конце алфавита преобразуются в буквы начала алфавита. Например, обозначение ROT2 обозначает сдвиг на 2 позиции, то есть "а" превращается в "в", "б" в "г", и так далее, и в конце "ю" превращается в "а" а "я" - в "б". Число разных преобразований конечно и зависит от длины алфавита. Для русского языка возможно 32 разных преобразования (преобразования ROT0 и ROT33 сохраняют исходный текст, а дальше начинаются уже повторения). В связи с этим шифр является крайне слабым и исходный текст можно восстановить просто проверив все возможные преобразования.
Калькулятор выдает таблицу всех возможных в шифре Цезаря преобразований введенного текста. Неалфавитные символы - знаки препинания, пробелы, цифры - не меняются.
m = n
DO WHILE n <> -777
INPUT n
IF n > m THEN m = n
LOOP
PRINT m
Пример
? 42
? 39
? -50
? 127
? 0
? 14
? -777
127
DIM a(1 TO 100)
CLS
i = 0
DO
INPUT n
IF n <> -777 THEN
i = i + 1
a(i) = ABS(n)
END IF
LOOP UNTIL n = -777
n = i
FOR i = 1 TO n
PRINT a(i); " ";
NEXT i
Пример
? 45
? -12
? 0
? 23
? -5
? 14
? -777
45 12 0 23 5 14
DIM c(1 TO 5), d(1 TO 5), m(1 TO 5)
CLS
PRINT "c(5):"
FOR i = 1 TO 5
INPUT c(i)
NEXT i
PRINT "d(5):"
FOR i = 1 TO 5
INPUT d(i)
NEXT i
PRINT "m(5)=";
s = 0
FOR i = 1 TO 5
m(i) = c(i) - d(i)
IF m(i) > 0 THEN s = s + m(i)
PRINT m(i);
NEXT i
PRINT
PRINT "s="; s
Пример
c(5):
? 5
? 12
? -6
? 0
? 17
d(5):
? -2
? 7
? 13
? -11
? -5
m(5)= 7 5 -19 11 22
s= 45