program z1;//имя программы
var a:real;b,c,d:integer;//объявление глобальных переменных
function M (x,y:integer): integer;//название функции, параметры, тип результата
begin//тело функции
if x>y then M:=x else M:=y//неполный условный оператор
end;
begin//тело программы
read (a,b);//ввод значений переменных
if frac(a) >= 0.5 then c:=trunc(a)+1 else c:=trunc(a);//математическое округление
d:= M (b,c);//вызов функции
write(d)//вывод результата
end.
Объяснение:
картинка 1 - блок-схема программы
картинка 2 - блок-схема функции
математическое округление, чтобы 2,5 было равно 3, а не 2 как при использовании функции round
words, nums, chars, i, sen: integer;
begin
readln(a);
words := 1;
For i := 1 to Length(a) do
begin
If (a[i] = ' ') then inc(words);
if (a[i] in ['0'..'9']) then inc(nums);
if (a[i] = #13) then inc(sen);
if (a[i] in ['a'..'z', 'A'..'Z', 'а'..'я', 'А'..'Я']) then inc(chars);
end;
writeln(Words, ' words', #13, Chars, ' chars (', Nums, ' Numbers)', #13, Sen, ' sentences');
end.
Разве что на строки проверить не могу, т.к. у меня только PascalABC, но должно работать =)