1)
var
str : string;
begin
readln (str);
writeln (length (str) - pos (':', str));
end.
2)
var
str, s : string;
count, i : integer;
begin
readln (str);
s := copy (s, pos ('(', str) + 1, pos (')', str) - pos ('(', str) - 1);
count := 0;
for i := 1 to length (s) do
if s[i] = ' ' then inc (count);
writeln (count + 1);
end.
3)
var
str : string;
count : integer;
begin
readln (str);
count := 0;
while pos (',', str) > 0 do
begin
inc (count);
delete (str, pos (',', str), 1);
end;
writeln (str);
writeln (count);
end.
Сделано без проверки на соответствие условию.
рассмотрим выражение x< 5. оно истинно для всех ответов рассмотрим выражение x< 3. оно истинно для 1, 2 и ложно для 3, 4 рассмотрим первую импликацию: две истины истину, значит для ответов 1,2 вторую импликацию (после или) можно не рассматривать, поскольку первая часть истинна.для вариантов 3,4 рассмотрим вторую импликацию.выражения x< 2 и x< 1 для вариантов 3,4 ложь. импликация, где оба аргумента ложь, истинна. получается, что для ответов 3,4 истинна вторая импликация, а значит значение первой несущественно (для оператора или).отсюда следует, что выражение "((x < 5)→(x < 3)) или ((x < 2)→(x < 1))" истинно при всех перечисленных значениях х: 1, 2, 3, 4
program z1;
var k:integer;
begin
writeln('введите класс ');readln(k);
if k=1 then ('Привет,первоклассник');
if k=2 then ('Привет,второклассник');
if k=3 then ('Привет,третеклассник');
if k=4 then ('Привет,четвероклассник');
if k=5 then ('Привет,пятиклассник');
if k=6 then ('Привет,шестиклассник');
if k=7 then ('Привет,семиклассник');
if k=8 then ('Привет,восьмиклассник');
if k=9 then ('Привет,девятиклассник');
if k=10 then ('Привет,десятиклассник');
if k=11 then ('Привет,одинадцатиклассник');
end.