12. определите значение переменной c после выполнения фрагмента программы: a: = 60; b: = 10; a: = a - b*3; if a 13. используя следующие фрагменты составьте оператор цикла с условием. а) a: =c+1; г) then; б) for; д) do; в) a> b; е) while. 14.в каком из условных операторов допущена ошибка? а) if a б) if a> b then max: =a; else max: =b; в) if b=0 then write (‘деление невозможно’); 15.определите значения переменной s после выполнения фрагмента алгоритма: а) на «4» s: = 0; m: =6: for i: =3 to m do s: =s+i; б) на «5» s: =0; i: =5; while i> 0 do begin i: =i-1; s: =s+i; end;
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.
Тестовое решение:
Введите строку: **А роза упала на лапу Азора **
Результат: [роза,упала,на]