В позиционной системе каждый разряд стоит на своей позиции. Например, в 10-ной системе, число 235 означает, что в нем 2 сотни, 3 десятка и 5 единиц. В 2-ной системе число 10010 означает, что в нем 1 число 2^4 = 16 и 1 число 2^1 = 2. Таким образом, эта запись означает число 16 + 1 = 18. В непозиционной системе разные единицы могут быть в разных местах, а их значение определяется взаимным расположением. Самая известная непозиционная система - это римские цифры. Запись IV означает 5 - 1 = 4, запись VI означает 5 + 1 = 6. Запись IX означает 10 - 1 = 9, запись XI означает 10 + 1 = 11. То есть значение значка I означает то +1, то -1, в зависимости от того, стоит он перед или после более старшего значка.
Procedure GetWord(s:string; var p:integer; var w:string; delim:string:=' '); { Получает в w слово из строки s, которое начинается не ранее позиции p. Возвращает новое значение p, указывающее на первый разделитель delim, который следует за найденным словом или 0, если такой разделитель не найден. По умолчанию слова разделяются не менее чем одним пробелом } var i,n:integer; fBreak:boolean; { флажок для прерывания циклов } begin n:=Length(s); fBreak:=False; {ищем первый символ, отличный от разделителя - начало слова } while ((p<=n) and (not fBreak)) do if (p=n) or (s[p]<>delim) then fBreak:=True else Inc(p); { ищем очередной разделитель - конец слова } if p<n then begin i:=p; Inc(p); fBreak:=False; while (p<=n) and (not fBreak) do begin if (p=n) or (s[p]=' ') then fBreak:=True else Inc(p) end; { теперь слово находится между позициями i и p } w:=Copy(s,i,p-i) end; if p>=n then p:=0 end;
function CountG(w:string):integer; { возвращает количество гласных в слове w} var i,k:integer; begin k:=0; for i:=1 to length(w) do if w[i] in ['а','е','ё','и','о','у','ы','э','ю','я'] then Inc(k); CountG:=k end;
var s,w,wmax:string; p,k,gmax:integer; begin Writeln('Введите текст, разделяя слова пробелами'); Readln(s); s:=LowerCase(s); p:=1; gmax:=0; while p>0 do begin GetWord(s,p,w); k:=CountG(w);; if gmax<k then begin gmax:=k; wmax:=w end end; if gmax>0 then Writeln('В слове "',wmax,'" максимум гласных, равный ',gmax) else Writeln('Во введенной строке гласных букв не найдено') end.
Например, в 10-ной системе, число 235 означает, что в нем 2 сотни, 3 десятка и 5 единиц.
В 2-ной системе число 10010 означает, что в нем 1 число 2^4 = 16 и
1 число 2^1 = 2. Таким образом, эта запись означает число 16 + 1 = 18.
В непозиционной системе разные единицы могут быть в разных местах, а их значение определяется взаимным расположением.
Самая известная непозиционная система - это римские цифры.
Запись IV означает 5 - 1 = 4, запись VI означает 5 + 1 = 6.
Запись IX означает 10 - 1 = 9, запись XI означает 10 + 1 = 11.
То есть значение значка I означает то +1, то -1, в зависимости от того, стоит он перед или после более старшего значка.