Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Теоретическая часть. Стандартный тип строка (string) – последовательность символов длиной до 255 символов



Стандартный тип строка (string) – последовательность символов длиной до 255 символов. Строку можно рассматривать как массив символов.

У строки в квадратных скобках может быть указан ее размер (от 1 до 255). Если размер строки не указан, то он считается равным 255.

Пример 13: описание строковых переменных

var Str: String[80]; MaxStr: String; const January: String[10]='Январь';

Конкатенация строк

Данная операция объединяет (или добавляет к первой строке вторую).

Пример 14:

var Str, Str1, Str2: String; begin Str1:= 'Turbo'; Str2:= 'Pascal'; Str:= Str1 + Str2; end;

Результатом работы программы примера 14 будет значение переменной Str='TurboPascal'.

Сравнение строк

Можно сравнивать строки разной длины. Сравнение осуществляется слева направо в соответствии с ASCII-кодами символов. Отсутствующие символы в короткой строке имеют меньший код, чем любой действительный символ.

Пример 15:

const Str1: string='X'; Str2: string='XS'; var S1, S2: String; begin if Str1 > Str2 then writeln('Str1>Str2') else writeln('Str1<=Str2'); S1:= '10'; S2:= '9'; if S1 > S2 then Writeln('S1>S2') else Writeln('S1<=S2'); end.

Результатом работы программы в примере 15 являются сообщения Str1<=Str2 и S1<=S2.

Следует отметить, что результаты сравнения чисел как строковых переменных отличаются от обычного сравнения чисел, например, '10'<'9', так как первый символ строки '10' имеет меньший код, чем первый символ строки '9'.

Функции, применяемые при работе со строками (модуль System)

Функция Описание
Length(S: String): Integer возвращает длину строки
Copy(S: String; iStart: Integer; iLen: Integer): String выделение подстроки в строке S, начиная с позиции iStart длиной iLen
Concat(S1 [, S2, …, Sn]: String): String объединение n строк в одну
Pos(SubStr, S: String) поиск подстроки SubStr в строке S. Возвращает 0, если вхождение не найдено
   

Процедуры, применяемые при работе со строками (модуль System)

Процедура Описание
Delete(var S: String; Index: Integer; Count: Integer) удаление подстроки длиной Count, начиная с Index из строки S
Insert(Source: String; var S: String; Index: Integer) помещение подстроки Source в строку S, начиная с позиции Index
Str(X [:M[:N]]; var S: String) преобразование числа X в строковую переменную S; M, N – форматы вывода, аналогичные используемым в процедуре Write
Val(S: String; var V; var ErrCode: Integer) преобразование символьного представления числа S в двоичное V. Code – номер неправильного символа (0 – успешное преобразование).

Фактически строка N символов представляет собой массив из N+1 символов:

String[N]=array [0..N] of Char;

Однако данная запись условна и строка не эквивалентна такому массиву.

Нулевой символ хранит действительно используемое количество символов строки.

Пример 16:

var S, S1: String; I, ErrCode: Integer; begin S:= 'Привет мир'; writeln(copy(S,8,3)); {удалим пробелы} S1:= ''; for I:= 1 to length(S) do if S[i] <> ' ' then S1:= S1 + S[i]; S:= S1; writeln(S); {заменим "и" на "а"} for I:= 1 to length(S) do if S[i] = 'и ' then S[i]:= 'а'; writeln(S); Str(1/3:4:2, S); writeln(S); S:= '4.6'; Val(S, I, ErrCode); if ErrCode <> 0 then writeln('Успешная конвертация, I=',I) else writeln('Ошибка конвертации!'); end.  

Программа в примере 16 сначала выводит строку 'мир', затем удаляет из строки S пробелы и выводит строку 'Приветмир', затем заменяет символы 'и' на 'а' и выводит строку 'Праветмар'. Далее конвертирует число 1/3 в строку '0.33'. Затем конвертирует строку '4.6' в число и выводит на экран "Успешная конвертация, I=4.6".

Варианты заданий

  Удвоить каждый пробел в строке.
  Убрать лишние пробелы из строки.
  Вывести статистику вхождения гласных букв в строку.
  Выделить из текста предложения (они отделены точкой) и занести каждое предложение в массив строк. Затем вывести массив на экран.
  Заменить вхождения подстроки 'ног' на букву 'л'.
  Удалить из строки все кратные рядом стоящие одинаковые символы, оставив по одному.
  Ввести 2 строки. Подсчитать, сколько раз первая встречается во второй.
  Инверсировать строку (переписать ее символы в обратном порядке).
  Определить, является ли строка правильным скобочным выражением. Для определенности можно ограничиться только круглыми скобками.
  Слова в строке отделены пробелами. Подсчитать количество слов, в которых буква 'а' встречается ровно 3 раза.
  Слова в строке отделены пробелами. Подсчитать количество слов, в которых буква 'а' встречается хотя бы 1 раз.
  Слова в строке отделены пробелами. Подсчитать количество слов, которые начинаются и заканчиваются одной и той же буквой.
  Слова в строке отделены пробелами. Подсчитать количество слов, оканчивающихся на гласную букву.
  Слова в строке отделены пробелами. Подсчитать длину самого длинного и самого короткого слова, а также вывести их.
  Удалить из строки заданное слово.
  Определить, является ли содержимое строки вещественным числом.
  Слова в строке отделены пробелами. Подсчитать количество слов, в которых гласных больше, чем согласных.
  Слова в строке отделены пробелами. Поменять местами самое длинное и самое короткое слова.

Требования к оформлению отчета приведены в разделе "Содержание и оформление отчета".

Содержание и оформление отчета

1. Титульный лист с названием лабораторной работы.

2. Номер и формулировка задачи.

3. Блок-схема алгоритма и ее описание.

4. Листинг программы.

5. Результаты тестирования.

6. Выводы.

Литература

1. Епанешников А.М. Программирование в среде Turbo Pascal 7.0 / А.М. Епанешников, В.А. Епанешников. М.: “ДИАЛОГ-МИФИ”, 2000. – 367 с.

2. Фаронов В.В. Основы Турбо Паскаля / В.В. Фаронов. М.: Учебно-инженерный центр "МВТУ-ФЕСТО ДИДАКТИК", 1992. – 304 с.

3. Марченко А.И. Программирование в среде Borland Pascal 7.0 / А.И. Марченко, Л.А. Марченко. К.: ЮНИОР, 1998. – 480 с.

4. Гусева А.И. Учимся программировать: PASCAL 7.0. Задачи и методы их решения. – М.: "Диалог-МИФИ", 1997. – 256 с.

5. Грызлов В.И. Турбо Паскаль 7.0 / В.И. Грызлов, Т.П. Грызлова. М.: ДМК, 1998. – 400 с.


Паскаль: операторы ветвления,





Дата публикования: 2015-04-07; Прочитано: 457 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...