Var s:string; k:real; begin readln(s); var ars:=s.Split; foreach var x in ars do if x[length(x)]='л' then k:=k+1; k:=k/(length(ars)/100); writeln(k); end.
Пример ввода: Съел что-то лол Пример вывода: 66.6666666666667
// PascalABC.NET 3.1, сборка 1256 от 21.06.2016 begin var s:=ReadlnString('Введите строку:').ToWords; Writeln(s.Where(w->RightStr(w,1)='л').Count/s.Count*100:6:2,'%') end.
Тестовое решение Введите строку: Вася шел и что-то напевал 40.00%
Var s:string; n,k,i:integer; begin for n:=1 to 2 do begin writeln('Введите строку ',n,':'); readln(s); k:=0; for i:=1 to length(s) do begin case s[i] of '[': k:=k+1; ']': k:=k-1; end; end; if k=0 then writeln('В строке ',s,' количество [ и ] одинаково') else writeln('В строке ',s,' количество [ и ] не одинаково'); end; end.
Пример: Введите строку 1: c:=a[imax,j]; a[imax,j]:=a[imin,j]; a[imin,j]:=c В строке c:=a[imax,j]; a[imax,j]:=a[imin,j]; a[imin,j]:=c количество [ и ] одинаково Введите строку 2: Просто [ пример ]] со [[ скобками В строке Просто [ пример ]] со [[ скобками количество [ и ] не одинаково
// PascalABC.NET 3.1, сборка 1219 от 16.04.2016 begin var a:=ReadLines('m17.txt').JoinIntoString.ToIntegers; a.Println; var b:=a.Select((x,i)->Rec(x,i)).Where(x->x.Item1<0) .Select(x->x.Item2).ToArray; if b.Count<>2 then Writeln('Количество отрицательных элементов не равно двум') else begin a:=SeqFill(b[0],0).Concat(a.Skip(b[0]).Take(b[1]-b[0]+1)) .Concat(SeqFill(a.Length-b[1]-1,0)).ToArray; a.Println end end.
Файл с исходными данными имеет имя m17.txt. Тестовый файл находится во вложении. Разбивка на строки сделана по 5 значений, но может быть совершенно произвольной. Также нет привязки именно к 17 числам, главное - чтобы отрицательных чисел было ровно два, иначе будет выдано сообщение о их неверном количестве.
Var
s:string;
k:real;
begin
readln(s);
var ars:=s.Split;
foreach var x in ars do
if x[length(x)]='л' then k:=k+1;
k:=k/(length(ars)/100);
writeln(k);
end.
Пример ввода:
Съел что-то лол
Пример вывода:
66.6666666666667