мальчики играли в шпионов и закодировали сообщение придуманным шифром. В сообщении присутствуют только буквы из приведённого фрагмента кодовой таблицы
// Паскаль // Программа поддерживает латиницу, кириллицу и дефисы
const // Первая буквы, англ. "a" - 65, но может быть дефис #45 first_letter = #45; // Последняя буквы, рус. "я" last_letter = #1103;
var x: string; i: integer; c: char; // Сколько раз встречает буква в слове count: array[first_letter..last_letter] of integer; begin readln(x); // Обнуляем массив for c := first_letter to last_letter do count[c] := 0; // Подсчитываем буквы в слове for i := 1 to length(x) do inc(count[x[i]]); // Выводим слово без букв, встречающихся 3 раза for i := 1 to length(x) do if count[x[i]] <> 3 then write(x[i]) end.
// PascalABC.NET 3.1, сборка 1172 от 19.02.2016 begin var s:=ReadlnString('Введите двухзначное 16-ричное число'); var mH:array['A'..'F'] of integer:=(10,11,12,13,14,15); if s.Length=1 then s:='0'+s; var c:=s.ToCharArray; var n:=0; for var i:=0 to 1 do case c[i] of '0'..'9':n:=16*n+StrToInt(c[i]); 'A'..'F':n:=16*n+mH[c[i]]; else begin Writeln('Недопустимый символ: ',c[i]); Exit end end; Writeln('Десятичный эквивалент: ',n) end.
Тестовое решение: Введите двухзначное 16-ричное число 3A Десятичный эквивалент: 58
// Программа поддерживает латиницу, кириллицу и дефисы
const
// Первая буквы, англ. "a" - 65, но может быть дефис #45
first_letter = #45;
// Последняя буквы, рус. "я"
last_letter = #1103;
var
x: string;
i: integer;
c: char;
// Сколько раз встречает буква в слове
count: array[first_letter..last_letter] of integer;
begin
readln(x);
// Обнуляем массив
for c := first_letter to last_letter do
count[c] := 0;
// Подсчитываем буквы в слове
for i := 1 to length(x) do
inc(count[x[i]]);
// Выводим слово без букв, встречающихся 3 раза
for i := 1 to length(x) do
if count[x[i]] <> 3 then
write(x[i])
end.
begin
var s:=ReadlnString('Введите двухзначное 16-ричное число');
var mH:array['A'..'F'] of integer:=(10,11,12,13,14,15);
if s.Length=1 then s:='0'+s;
var c:=s.ToCharArray;
var n:=0;
for var i:=0 to 1 do
case c[i] of
'0'..'9':n:=16*n+StrToInt(c[i]);
'A'..'F':n:=16*n+mH[c[i]];
else begin
Writeln('Недопустимый символ: ',c[i]);
Exit
end
end;
Writeln('Десятичный эквивалент: ',n)
end.
Тестовое решение:
Введите двухзначное 16-ричное число 3A
Десятичный эквивалент: 58