Олимпиада. Шпион - Pascal
Формулировка задачи:
Ваня и Саша решили закодировать свои сообщения след.образов: строчные и заглавные буквы, знаки препинания ( . , : ; ? ! ) и пробел заменить на бинарные расширения коды ASCII записанные наоборот, остальные символы оставить без изменений. Помогите закодировать сообщение для Саши.
Пример:
Ввод: 2а+3B?
Вывод:210000110+30100001011111100.
Спасибо. Огромное
Решение задачи: «Олимпиада. Шпион»
textual
Листинг программы
var s,r,t:string; j,i:integer; begin readln(s); for i:=1 to length(s)do begin if s[i] in ['a'..'z','A'..'Z','а'..'я','А'..'Я','ё','Ё','.',',',':',';',' ','?','!'] then begin j:=ord(s[i]);t:=''; while j>0 do begin t:=t+chr(j mod 2+48); j:=j div 2; end; for j:=length(t) to 7 do t:=t+'0' end else t:=s[i]; r:=r+t; end; writeln(r) end.
Объяснение кода листинга программы
- Объявляются переменные:
s
,r
,t
типа string, для хранения строковых значений.j
,i
типа integer, для хранения целочисленных значений.
- Вводится значение переменной
s
с клавиатуры. - Выполняется цикл от 1 до длины строки
s
.- Если текущий символ строки
s
является буквой, цифрой, пробелом, знаком препинания или другим специальным символом, то:- Присваивается переменной
j
код текущего символа. - Очищается переменная
t
. - Используется цикл, чтобы перевести код символа в двоичную систему, добавляя остатки от деления на 2 к переменной
t
. - Добавляются нули к двоичному коду, чтобы дополнить его до 8 символов.
- Присваивается переменной
- Иначе текущий символ копируется в переменную
t
. - Значение переменной
t
добавляется к переменнойr
.
- Если текущий символ строки
- Выводится значение переменной
r
. Таким образом, данный код преобразует введенную строку, заменяя каждый символ его двоичным представлением и добавляя нули для заполнения до 8 бит, затем выводит результат.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д