ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Типы данных, используемые для обработки символьной информации
Для данных символьного и литерного типов применимы операции сцепки (соединения, конкатенации) и сравнения (<, >, <=, >=, =, <>). Сравнивать можно строки разной длины. Сравнение осуществляется слева направо в соответствии с ASCII-кодами соответствующих символов. Так, строка " стол " меньше строки " стул ", строка " teacher " больше строки " pupil ", а строка " пар " меньше строки " парад ". Функции и команды обработки строк Алгоритмический язык Функция длин(S) Возвращает количество символов в строке S. Операция вырезка позволяет "вырезать" из строки группу соседних символов. Вырезка из строки S подстроки, начинающейся с i-ой и кончающейся j-ой позицией, обозначается S [i: j]. Вырезка из строки S одного i-го символа обозначается S[i]. Команда присваивания вырезке S[N: M]:= SubS. Часть строки S, начиная с позиции N и кончая позицией M, заменяется на подстроку SubS такой же длины. Turbo Pascal Процедуры Delete (Var S: String; N, M: Integer) Удаляет M символов из строки S, начиная с позиции N. Insert (SubS: String; Var S: String; N: Integer) Вставляет подстроку SubS в строку S, начиная с позиции N. Str (X: Integer; Var S: String) Возвращает представление числа X в его символьной форме S. Val (S: String; Var X, Code: Integer) Возвращает представление символов строки S в ее числовой форме X. Параметр Code содержит признак ошибки преобразования (если Code = 0, ошибки нет). Функции Chr (X: Byte): Char Возвращает символ с заданным порядковым номером X. Сoncat (S1 [, S2,..., SN ] ): String Выполняет сцепку (конкатенацию) последовательности строк. Copy (S: String; N, M: Integer): String Возвращает подстроку из строки S, начиная с позиции N и длиной M символов. Length (S: String): Byte Возвращает количество символов в строке S. Ord (X: Char): LongInt Возвращает порядковый номер символа X в таблице кодов символов. Pos (SubS, S: String): Byte Возвращает номер позиции, начиная с которой в строке S располагается подстрока SubS (если значение функции равно нулю, то S не содержит SubS). Пример 7.1. Определить количество слов в заданном тексте. Если слова в тексте разделены одним пробелом, то задача сводится к подсчету числапробелов. Количество слов при этом равно числу пробелов плюс 1. Если же число пробелов между соседними словами произвольное, как обычно и бывает, то алгоритм усложняется. Рассмотрим оба варианта решения этой задачи. Вариант 1. Слова в тексте разделены одним пробелом.
Тест
Алгоритмический язык алг Число слов (арг лит Text, рез цел N) дано | В непустом тексте Text слова разделены одним пробелом надо | N — количество слов нач цел i N:=1 нц для i от 1 до длин (Text) |цикл по буквам текста если Text[i] = " " то N:=N+1 Все Кц Кон Исполнение алгоритма
Turbo Pascal Program Probel; Uses Crt; Var Text: String; {заданный непустой текст} i, Number: Integer; {Number — количество слов в тексте} Letter: Char; {текущая буква } BEGIN ClrScr; WriteLn('Введите текст:'); ReadLn(Text); Number:=1; For i:=1 to Length(Text) do {цикл по буквам текста} begin Letter:=Text[i]; If (Letter = ' ') then Number:=Number+1; end; WriteLn('О т в е т: количество слов в тексте равно ', Number); END.
Вариант 2. Слова в тексте разделены произвольным количеством пробелов Тест
Алгоритмический язык алг Число слов (арг лит Text, рез цел N) дано | В тексте Text слова могут быть разделены произвольным количеством пробелов надо | N — количество слов в тексте Text нач цел i, лог Flag N:=0; Flag:= да нц для i от 1 до длин (Text) | цикл по буквам текста если (Text[i]<>" ") и (Flag=да) | это условие выполняется только то N:=N+1 | для первой буквы каждого слова Все Flag:= (Text[i]=" ") | Flag= да, если очередная буква — пробел, кц | в противном случае Flag = нет Кон Исполнение алгоритма Обозначение проверяемого условия: (Text[i]<>" ") и (Flag = да)=>(1)
Turbo Pascal Program KolSlov; Uses Crt; Var Text: String; {заданный текст} i, Number: Integer; {Number - количество слов в тексте} Flag: Boolean; Letter: Char; {текущая буква } BEGIN ClrScr; WriteLn('Введите текст:'); ReadLn(Text); Number:= 0; Flag:= TRUE; For i:= 1 to Length(Text) do {цикл по буквам текста} begin Letter:= Text[i]; {текущая буква текста } If (Letter <> ' ') and Flag then Number:= Number+1; Flag:= (Letter=' '); {(Letter=' ') — логическое выражение, принимающее значения TRUE или FALSE } end; WriteLn; WriteLn('О т в е т: количество слов в тексте равно ', Number); ReadLn; END. Не нашли, что искали? Воспользуйтесь поиском:
|