|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Пояснення до алгоритму. 1.Перевірка якщо TSL - враховує кілька розділових знаків, що ідуть підряд, як один1.Перевірка якщо TSL - враховує кілька розділових знаків, що ідуть підряд, як один. 2.За умовою завдання не сказано, що текст закінчується розділовим знаком, треба після виходу із циклу врахувати останнє слово. Ви, напевно, помітили, що формування слів з тексту має незмінний набір команд: dl:= довжин (Т) { визначення довжини тексту } SL:=’ ‘ { чищення слова літерним нулем } для і від 1 до dl { цикл від 1 до довжини тексту } пц s:=T[i, l] { вирізання одного символа з тексту } якщо Razd(s)=0 { перевірка на роздільник } то SL:=SL+T[i, l] { формування слова } Інакше якщо SL ‘ ‘ { кілька розділових знаків, що записані підряд, враховуються як один } то { дії до сформованого слова } Все SL:=’ ‘ { чищення слова літерним нулем } кц З літерними величинами можна працювати, використовуючи таблицю кодування символів. Як відомо, кожний символ має свій числовий код, причому коди символів упорядковані і набувають значення від 0 до 255. Цей факт зручно використовувати у розв’язанні завдань. У наведеному нижче прикладі 4 покажемо, як це робиться. Приклад 4. Визначте, скільки разів у тексті зустрічається кожний символ. АЛГ Приклад 4(літ t, ціл таб a[ літ ] АРГ t РЕЗ а ПОЧ ціл і, dlt, літ s, sp dlt:= довжин (t) для sp від chr(0) до chr(255) пц a[sp]:=0 кц для і від 1 до dl пц s:=t[i]; a[s]:=a[s]+1; кц для sp від chr(0) до chr(255) якщо a[sp] то ДРУКУВАТИ (sp, ‘ ‘, a[sp]) Все КІН
У масиві а підраховується кількість повторюваності символів у тексті. Спочатку масив а обнулюється. Потім у циклі з тексту береться символ, що надалі служить індексом, для звертання до потрібного елементу масиву, у якому здійснюється підрахунок. Зверніть увагу, що цілочисельний масив а індексується за допомогою символьного індексу (дотепер як індекс масиву ми використовували тип «діапазон»). Як бачите, розв’язання завдання дуже ефективне, і це досягнуто шляхом використання символьного індексу масиву. Багато мов програмування допускають індексування масивів будь-яким порядковим типом. В алгоритмі використано функцію chr(x), що є у всіх алгоритмічних мовах програмування. Вона за кодом символа визначає сам символ. Подамо це мовою Паскаль: Program Example4; var S: string; сount: array [char] of byte; i: byte; ch: char; Begin write (‘ введіть рядок ‘); readln (s); for ch:=chr(0) to chr(255) do count [ch]:=0; for i:=1 to length(S) do count[s[i]:=count[S[i]]+1; for ch:=#0 to #255 do if count [ch]<>0 then writeln (ch, ‘?’, count[ch]); end. Зверніть увагу, що у мові Паскаль замість функції ord можна використовувати символ # перед числовим кодом символа.
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.) |