1. Var a,b,pr:integer; Begin pr:=1; write('Вводите числа, когда закончите - введите 0. '); readln(a); while (a<>0) do begin if (a>0) and (a<10) then begin b:=b+1; pr:=pr*a; end; readln(a) end; Writeln('Чисел, больше 0 и меньше 10: ',b,' их произведение:',pr);end.
2. Var a,b,c,i,sum,f:integer; Begin Write('Введите 10 двузначных чисел: '); repeat readln(a); until(a>=10) and (a<100); for i:=1 to 10 do begin repeat readln(a); until(a>=10) (a<100) b:=a mod 10; c:=a div 10; sum:=b+c; if (sum mod 2 = 0) then f:=f+1; end; Writeln('Кол-во цифр, удовлетворяющих условию: ',f); end.
3. Var a,b,c:integer; Begin write('Вводите целые положительные числа.'); repeat readln(a); b:=b+a; c:=c+1; until (b>100); Writeln('Кол-во введёных чисел:',c,' их сумма:',b); end.
// PascalABC.Net 3.0, сборка 1066 var s, wd: string; n, pt: integer;
begin Write('Введите строку: ');Readln(s); n := Length(s); pt := 1; repeat // Пропускаем все символы до первого непробельного while pt <= n do if s[pt] = ' ' then Inc(pt) else break; if pt <= n then begin // Выделяем очередное слово wd := ''; while pt <= n do if s[pt] <> ' ' then begin wd := wd + s[pt]; Inc(pt) end else break; if (wd <> '') and (LowCase(wd[1]) in ['м'..'я']) then Writeln(wd) end until pt > n; end.
Тестовое решение: Введите строку: **А роза упала на лапу Азора ** роза упала на
А вот так версия 3.0 позволяет решить задачу "по-современному":
// PascalABC.Net 3.0, сборка 1066 begin var s:=ReadString('Введите строку: '); Writeln('Результат: ',s.ToWords(' ').Where(x->x[1] in ['м'..'я'])) end.