Хмм... Ну...
0 = треуг треуг треуг
1 = треуг треуг квадрат
2 = треуг квадрат треуг
3 = треуг квадрат квадрат
4 = квадрат треуг треуг
5 = квадрат треуг квадрат
6 = квадрат квадрат квадрат
7 = треуг треуг круг
8 = треуг круг треуг
9 = треуг круг круг
10 = круг треуг треуг
11 = круг треуг круг
12 = круг круг круг
13 = квадрат квадрат круг
14 = квадрат круг круг
15 = круг квадрат круг
Фух....
Потому что со вкусом и запахом поступает информация о предмете
Если сверху стена и снизу стена
то
нц пока справа свободно
вправо
кц
иначе
нц пока слева свободно
влево
кц
все
..... Вроде бы так если правильно условие понял
<u>1. Программа в одной из современных версий Паскаля:</u>
// PascalABC.NET 3.1, сборка 1211 от 31.03.2016
begin
var s:=ReadlnString('Исходная строка:');
Writeln('Результат: ',s.MatchValues('[a-zA-ZА-Яа-яёЁ]').JoinIntoString(''));
end.
<u>Тестовое решение:</u>
Исходная строка: // PascalABC.NET 3.1, сборка 1211 от 31.03.2016
Результат: PascalABCNETсборкаот
<u>2. Программа в "школьной версии"</u>
// PascalABC.NET 3.1, сборка 1211 от 31.03.2016
const
legal=['A'..'Z','a'..'z','А'..'Я','а'..'я','Ё','ё'];
var
s:string;
i:integer;
begin
Write('Исходная строка: '); Readln(s);
for i:=Length(s) downto 1 do
if not(s[i] in legal) then Delete(s,i,1);
Writeln('Результат: ',s);
end.