Адекватная версия:
PascalABC.NET
begin
var expr := Readstring();
expr.Split(' ')[0].Println;
end.
Версия "Нас так учили"
var
expression: string;
s_index: byte;
begin
s_index := 1;
readln(expression);
while expression[s_index] <> ' ' do begin
write(expression[s_index]);
s_index := s_index + 1;
end;
end.
Объяснение:
Т.к по условию слово - последовательность непробельных символов, ограниченная пробелами или концами строки, то данная программа полностью игнорирует пунктуацию и считает любой символ частью того слова, с которым он не разделён пробелом.
1.
использовать Робот
алг 3 полоски
нач
нц пока снизу стена
закрасить
влево
кц
нц пока снизу свободно
влево
кц
нц пока слева свободно
закрасить
влево
кц
закрасить
нц пока слева стена
закрасить
вверх
кц
нц пока слева свободно
вверх
кц
нц пока слева стена
закрасить
вверх
кц
кон
2.
использовать Робот
алг
нач
нц пока сверху стена
закрасить
влево
кц
нц пока сверху свободно
влево
кц
нц пока слева свободно
закрасить
влево
кц
закрасить
нц пока слева стена
закрасить
вниз
кц
нц пока слева свободно
вниз
кц
нц пока слева стена
закрасить
вниз
кц
кон
3.
использовать Робот
алг
нач
нц пока слева стена
вверх
кц
влево
вниз
нц пока справа стена
закрасить
вниз
кц
нц пока справа свободно
вправо
кц
нц пока справа стена
закрасить
вниз
кц
кон
4.
использовать Робот
алг
нач
нц пока сверху стена
вправо
кц
вверх
нц пока слева стена
вверх
кц
влево
вниз
нц пока справа стена
вниз
кц
нц пока слева свободно
закрасить
влево
кц
кон
Объяснение: лишние циклы добавлены в случае изменений условия, а именно разной длины стенок и пропастей