АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Пояснення до алгоритму. 1.Перевірка якщо TSL - враховує кілька розділових знаків, що ідуть підряд, як один

Читайте также:
  1. Загальні пояснення до виконання реферату
  2. Ілюстрації. Кількість ілюстрацій повинна бути достатньою для пояснення тексту, що викладається.
  3. На відміну від прогнозу і гіпотеза і версія можуть бути націлені (і в більшості випадків націлюються) не на повідомлення про якесь явище, а на його пояснення, хоча і можливе.
  4. Покрокове виконання алгоритму
  5. Поняття алгоритму
  6. Поняття алгоритму. Основні властивості алгоритмів
  7. Пояснення вчителя.
  8. Пояснення гри. Вибір способу шикування гравців для пояснення гри і місце керівника.
  9. Пояснення до алгоритму
  10. Пояснення до алгоритму
  11. Пояснення до алгоритму
  12. Пояснення до алгоритму

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 можна використовувати символ # перед числовим кодом символа.

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.)