Общая психология и история психологии

Тема 7. Программирование строчных величин.

1. Понятие строчной величины.

Величиной строчной типа ( strings ) называется последовательность символов,  заключенная  в одинарные кавычки. Этот тип данных является стандартным для языка Паскаль, хотя он структурированным. Величины могут быть как константами, так и переменными. При задании переменных символьного типа можно указать количество символов в этой величине.

ПРИМЕР:

type

message = string;

list = string [10];

 

Описание типа message задает тип строчных величин с максимально возможной длиной строки (255 символов), а описание типа list - строчные величины с максимальной длиной строки 10 символов.

Строчные величины можно обрабатывать как единое целое, и поэлементно. При обработке строки поэлементно он рассматривается как одномерный массив с типом индекса  byte и типом элементов  char . Строчные величины могут содержать произвольные символы. Да. в строке может  содержаться  и одинарная лапка. Для того, чтобы поместить одинарную лапку в строку, нужно написать две последовательно расположенные одинарные кавычки. Строки, в которых содержится только один символ, представляют собой данные  стандартного  символьного  типа ( char ). Строку можно сравнить с массивом данных  символьного  типа, который имеет такую ​​же длину.  Все  строчные константы совместимы со всеми строчными типами ( string ).

Примеры:

"TURBO"

'П "пятница"

"" "

';

Для строчных величин определена операция конкатенации (объединения) строк. Операция обозначается символом "+". Тип результата - тоже строчная величина. Язык Турбо Паскаль позволяет использовать оператор + для объединения двух строчных  операндов . Если длина результирующей строки превышает 255 символов, то она  усекается  до 255 символов.

Операторы  отношения  =, <>, <>, <=,  или  > =  могут применяться для сравнения строк в соответствии с порядком расширенного набора символов кода ASCII.  Любые  два значения строчной типа данных можно сравнить, поскольку  все  значения строчных данных совместимы. Значение строчного типа совместимы со значениями  символьного типа, и при их сравнении  символьное  значение обрабатывается  как строковое значение длиной 1 Да величина считается "большим", которая имеет на своем месте символ с большим ASCII кодом. Следует заметить, что пробел является полноправным символом строчной величины и он обрабатывается аналогично другим символам величины.

Примеры:

"Turbo"> "Turbo";

"Turbo"> "pascal";

"Turbo" <"turbo pascal ';

'123' <> '123';

2. Основные процедуры и функции обработки строчных величин.

Строчные величины можно вводить с клавиатуры. Для этого можно использовать стандартную процедуру ввода  read . Однако при этом есть такая особенность: необходимо ввести столько символов, сколько было объявлено при определении этой величины. Так, если величина была объявлена ​​как величина типа  string  [10], то необходимо ввести 10 символов (если их количество меньше, свободные места необходимо заполнить пробелами). Если же величина описана как  string , то количество пробелов будет очень большой.Чтобы избавиться от этого недостатка, для ввода строчных величин следует использовать другую процедуру ввода -  readln . В этом случае дополнять пробелами строчную величину нужно.

Функция  Соncat  - выполняет  конкатенацию  последовательности строк. Ее действие аналогично действию операции конкатенации.

Функция  Copy  - возвращает подстроку (часть) строчной величины.

Процедура  Delete  - удаляет из строки его часть заданной длины, начиная с заданной позиции.

Процедура  Insert  - добавляет в строку подстроку, начиная с определенной позиции строки.

Функция  Length  - возвращает динамическую длину строки.

Функция  РОS  -  осуществляет  поиск  подстроки  в строке.

Процедура  Str  - превращает численное значение в его строчное  представление .

Процедура  Val  - преобразует строчную величину, которая является числом, в ее численное значение.

Примеры

var

 s, t, x: string;

 n, m, k: integer;

begin

 ...

 readln (s); {Предположим, что введена величина 'программа'}

 readln (t); {Предположим, что введена величина 'рог'}

 n = length (s); {N = 8}

 x = concat (s, t); {X = 'програмарог'}

 x = copy (s, 4,3); {X = 'игра'}

 m = pos (t, s); {M = 2}

 delete (s, 4,3); {S = 'прома "}

 ...

end.

 

 

Рассмотрим пример алгоритмов обработки строчных величин с применением приведенных функций.

Заданный текст (строчная величина), слова которой разделены символом "пробел".

1. Найти количество слов в тексте.

2. Печать отдельно с новой строки каждое слово текста.

3. Найти i напечатать длинное слово текста.

 

 

program strings;

uses crt;

var s, t: string;

 i, k: integer;

procedure kol (s: string; var k: integer);

{Процедура нахождения количества слов в тексте (текст содержит хотя бы одно слово}

var i, n: integer;

begin

 k = 1;

 n = length (s);

 for i: = 1 to n do

 if s [i] = '' then k = k + 1;

end;

procedure druk (s: string);

{Процедура печатания слов текста}

var n: integer;

 s1: string;

begin

 n = pos ('', s);

 while n <> 0 do

 begin

 s1 = copy (s, 1, n-1);

 writeln (s1);

 delete (s, 1, n);

 n = pos ('', s)

 end;

 writeln (s)

end;

procedure max_word (s: string; var s1: string);

{Процедура нахождения наибольшего слова текста}

var m, n, max: integer;

 s2: string;

begin

 s1 = ";

 max = 0;

 n = pos ('', s);

 while n <> 0 do

 begin

 s2 = copy (s, 1, n-1);

 m = length (s2);

 if m> max then

 begin

 max = m;

 s1 = s2

 end;

 delete (s, 1, n);

 n = pos ('', s)

 end;

 m = length (s);

 if m> max then s1 = s

end;

{Основная программа}

begin

 write ('Введите текст, разделяя слова одним символом "пробел": ");

 readln (s);

 writeln;

 writeln ('Результаты');

 kol (s, k);

 writeln ('количество слов в тексте k =', k);

 writeln;

 writeln ('Слова текста:');

 druk (s);

 writeln;

 writeln ('длинное слово текста);

 max_word (s, t);

 writeln (t);

end.

 

 

Обобщение по теме.

Величиной строчной типа ( strings ) называется последовательность символов,  заключенная  в одинарные кавычки. Этот тип данных является стандартным для языка Паскаль, хотя он структурированным. Величины могут быть как константами, так и переменными. При задании переменных символьного типа можно указать количество символов в этой величине.

Строчные величины предполагают обработку и как единого целого, так и поэлементно. При обработке строки поэлементно он рассматривается как одномерный массив с типом индекса  byte  и типом элементов  char . Строчные величины могут содержать произвольные символы. Так, в строке может  содержаться  и одинарная лапка. Для того, чтобы поместить одинарную лапку в строку, нужно написать две последовательно расположенные одинарные кавычки. Строки, в которых содержится только один символ, представляют собой данные  стандартного  символьного  типа ( char ). Строку можно сравнить с массивом данных символьного  типа, который имеет такую ​​же длину.  Все строчные константы совместимы со всеми строчными типами ( string ).

Для строчных величин определены операция конкатенации (объединения) строк и операции  отношения   Они  могут применяться для сравнения строк в соответствии с порядком расширенного набора символов кода ASCII.  Любые  два значения строчной типа данных можно сравнить, поскольку  все  значения строчных данных совместимы.Значение строчного типа совместимы со значениями символьного  типа, и при их сравнении  символьное  значение  обрабатывается  как строковое значение длиной 1 Да величина считается "большим", которая имеет на своем месте символ с большим ASCII кодом. Следует заметить, что пробел является полноправным символом строчной величины и он обрабатывается аналогично другим символам величины.

Строчные величины можно вводить с клавиатуры. Для этого можно использовать стандартную процедуру ввода  read . Однако при этом есть такая особенность: необходимо ввести столько символов, сколько было объявлено при определении этой величины. Чтобы избавиться необходимости ввода 255 символов при объявлении строчной величины как  strings  , следует использовать другую процедуру ввода -  readln .

Среди других процедур и функций над строками стоит отметить процедуры выделения (копирование) части строки, удаление части строки, функцию нахождения позиции вхождения одной строки в другой, функцию определения длины строки, и тому подобное.

Вопрос темы:

·  процедуры-операторы;

·  процедуры-функции.

 

Основные сроки темы:  процедура, функция пользователя, формальный параметр, фактический параметр, локальный параметр, глобальный параметр, вызов вспомогательного алгоритма, принцип локализации

 

Зацікавило?

Змiст

Нові надходження

Всього підручників:

292