PascalABC.NET
begin var (key, chrs) := ('сла', ',!?.'); var s := ReadString; foreach var w in s.Split(' ') do if w[^1] in chrs then Print(w[:^1] + key + w[^1]) else Print(w + key)end.Объявляем переменные key и chrs. Присваиваем переменной key значение 'сла' – это кодовые символы, которые должны прибавляться к каждому слову, а переменной chrs – ',!?.' – это символы, заданные в условии задания в качестве возможных знаков препинания.
Объявляем переменную s, присваиваем ей строку, полученную в результате ввода с клавиатуры, с стандартного метода ReadString.
Далее идёт конструкция foreach, пробегаем по массиву, полученного в результате разбивки строки s на некие подстроки, используя пробел в качестве разделителя.
Для каждого элемента (условно обозначенного как w) делаем:
Если последний символ элемента входит в состав символов, указанных в переменной chrs, то выводим на экран все символы обозреваемого элемента, кроме последнего + кодовые символы (key) + этот последний символ. То есть, вставляем наши кодовые символы между словом и знаком препинания.Иначе, если последний символ элемента не входит в состав символов, указанных в переменной chrs, то выводим на экран сам этот элемент + кодовые символы. То есть, знака препинания нет и мы просто добавляем наши кодовые символы к слову.Опять же стандартный метод – Print, автоматически добавляет пробел после вывода каждого значения (в нашем случае оно одно).
Объяснение:
program kalk;
var
a, b, c :integer;
begin
writeln('Введите 1 число:');
readln(a);
writeln('Введите 2 число:');
readln(b);
writeln('Введите 3 число:');
readln(c);
writeln('Cумма трех чисел равна',a+b+c);
writeln('Разность трех чисел равна',a-b-c);
writeln('Произведение трех чисел равно',a*b*c);
end.
Есть вариант поставить вместо:
writeln('Введите 1 число:');
readln(a);
writeln('Введите 2 число:');
readln(b);
writeln('Введите 3 число:');
readln(c);
поставить так:
writeln('Введите 3 числа: ');
readln(a, b, c);