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.
Вообще это очень объемная тема. Много зависит от типа носителя. Привычный носитель бумага - текст, рисунок-график-схему, 3D форму (оригами), нотную запись (тоже может считаться текстом, так же как текст может считаться рисунком) Магнитная пленка (видио и аудио кассеты) - звук, видео, рисунки и текст (как часть видео) Цифровые носители - текст, видео, аудио, графика, анимация, бинарные данные (которые человек напрямую интерпритировать не может, например архивы, шифры, ключи и тп) Говорится, что еще числовая информация, но по-моему она относится или к тексту или к бинарным данным Человеческая память - самый старый и самый уникальный носитель, хранит разнообразную информацию, но не имеет возможности передавать ее напрямую и не отвечает за точность данных Может хранить текст, числа, знаки, рисунки, звуки, запахи, ощущения, эмоции, видео, компиляцию из всего перечисленного