Pascaler
О проекте Теоретический материал Тестирование Архив задач
Войти в личный кабинет



О проекте


Преподавателям


Тема: Стандартные функции для работы со строками (concat,copy,length, pos,upcase).

Функция Length

Встроенная функция Length (длина) позволяет определить фактическую длину текстовой строки, хранящейся в указанной переменной (а не величину предельного размера строки, установленную при декларации):

Program DemoFunctionLength;
Var
  Word : string;
Begin
  write ('Введите слово :');
  readln(Word);
  writeln('Это слово состоит из ',Length (Word),' букв');
End.

Примечание. При подсчете фактической длины строки учитываются все входящие в нее символы, в том числе и пробелы.

Функция Upcase

Функция Upcase позволяет преобразовывать символ любой литеры из строчного в прописной. Эта функция рассчитана на обработку отдельного символа. Поэтому для обработки строки символов с помощью этой функции приходится организовывать цикл.

Program DemoFunctionUpcase;
Var
  Word : string;
  i : Byte;
Begin
  Word := 'фирма Microsoft';
  for i := 1 to Length (Word) do
    Word[i] := UpCase (Word[i]);
    writeln(Word); {выводится текст 'фирма MICROSOFT'}
End.

В результате работы программы на терминал выдается строка, содержащая большие английские буквы и маленькие русские.

Примечание. Русские литеры не могут обрабатываться этой функцией.

Для того, чтобы преобразовать в заглавные строчные буквы русского алфавита, применяют оператор выбора Case:

  . . .
    case Word[i] of
      'a' : Word[i] := 'A';
      'б' : Word[i] := 'Б';
      'в' : Word[i] := 'В';
      . . .
end;
. . .

Функция Copy

Функция Copy позволяет копировать фрагмент некоторой строки из одной переменной в другую. Вызывая эту функцию нужно указать следующие параметры:

  • имя строки, из которой должен извлекаться копируемый фрагмент,


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


  • число копируемых символов.
Program DemoFunctionCopy;
Var
  Word : string;
  Word1 : string[20];
Begin
  Word := 'фирма Microsoft';
  writeln(Word); {выводится текст 'фирма MICROSOFT'}
  Word1 := Copy (Word,1,5);
  writeln(Word1); {выводится текст 'фирма'}
End.

Примечание. Если начальная или конечная позиции копируемого текста находятся вне пределов исходной строки символов, то сообщение об ошибке не выдается. Результатом выполнения операции в первом случае будет строка нулевой длины, во втором - фрагмент от начальной позиции копирования до конца исходной строки.

Функция Pos

C помощью функции Pos Вы можете осуществить поиск некоторого фрагмента в строке. Если заданный фрагмент в строке присутствует, то функция возвращает номер позиции, с которой он начинается. Если фрагмент не найден, то функция возвращает нуль.

Program DemoFunctionPos;
Var
  Word : string;
  SearchWord : string[20];
  Position : Byte;
Begin
  Word := 'фирма Microsoft';
  writeln(Word); {выводится текст 'фирма MICROSOFT'}
  writeln ('Введите искомый текст ');
  readln (SearchWord);
  Position := Pos(SearchWord, Word);
  if Position <> 0
    then
      begin
        write ('Фрагмент <',SearchWord,'> содержится в строке <',Word);
        writeln ('>, начиная с позиции ',Position );
      end
    else
      writeln('Фрагмент <',SearchWord,'> не содержится в строке <',Word); End.

Примечание. Функция Pos требует полного совпадения искомого фрагмента и фрагмента строки, в которой производится поиск. Причем большие и маленькие буквы считаются различными символами.

Функция Concat

Функция Concat (Str1,Str2,...,StrN) выполняет конкатенацию (или сцепление) строк Str1,Str2,...,StrN в том порядке, в каком они указаны в списке параметров. Сумма символов всех сцепленных строк не должна превышать 255.

Program DemoFunctionConcat;
Var
  Word : string;
  Word1, Word2 : string[20];
Begin
  Word1 := 'фирмы ';
  Word2 := 'Microsoft';
  Word := Concat('Компьютеры ',Word1,Word2);
  writeln(Word); {выводится текст 'Компьютеры фирмы Microsoft'}
End.

Задачи для самостоятельного решения

  1. Задано существительное 1-го склонения, оканчивающееся на “а”. Проверьте правильность ввода. Напечатайте это слово во всех падежах. Применяйте подпрограммы.


  2. Проверьте правописание “ча” и “ща” в тексте. Выведите на экран количество сделанных ошибок и исправленную строку. Применяйте подпрограммы.


  3. Напишите алгоритм, подсчитывающий, сколько раз в данном слове х встречается данное слово у. Если слово у длиннее, чем х, то результат должен быть равен нулю. Применяйте подпрограммы.


  4. Выясните, сколько раз встречается каждая буква алфавита в предложенном тексте. Применяйте подпрограммы.


  5. Запишите строку а в обратном порядке в строку б. Посчитайте, сколько одинаковых букв находятся на одинаковых местах в этих строках. Применяйте подпрограммы.


  6. Заданы фамилия, имя и отчество учащегося, разделенные пробелом. Напечатайте его фамилию и инициалы. Применяйте подпрограммы.


  7. Проверьте правописание “жи” и “ши” в тексте. Выведите на экран количество сделанных ошибок и исправленную строку. Применяйте подпрограммы.


  8. Запросите произвольное предложение и имя. Найдите ошибки употребления имени и исправьте их. Выведите на экран количество сделанных ошибок и исправленную строку. Применяйте подпрограммы.


  9. Посчитайте количество цифр в веденной строке символов. Применяйте подпрограммы.


  10. Посчитайте количество букв в введенной строке символов. Применяйте подпрограммы.


  11. Запросите несколько символов и строку для выяснения, сколько заданных символов встречается в строке. Применяйте подпрограммы.
Вернуться назад
2003—2012 © Группа «Vimedia»
Проект «Pascaler» — лучший на ХI Всероссийской конференции молодых исследователей с международным участием «Шаг в будущее», Россия, Москва, 12 – 16 апреля 2004г.