Работа со строками в Паскале. Решение задач.

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

Строковые функции

length(s);  s — строковая переменная (тип string)

Пример:

s:='Мама мыла раму';
n:=length(s);
writeln('Количество букв в строке = ',n)

В данном примере на экране мы увидим число 14 (пробел — тоже символ)


copy (s, n, l);  s — переменная типа string, n —  номер символа с которого начинается подстрока (тип integer), l — количество символов в подстроке (тип integer).

Пример:

s:='Мама мыла раму';
subs:=copy(s, 6, 4);
writeln(subs);

В данном примере на экране мы увидим слово мыла (т.к. «м» — шестой символ строки s, и в подстроке мы выделяем 4 символа)


concat(s1, s2, …); — возвращает строку, являющуюся объединением строк, указанных при вызове функции.

Пример:

s1:='Мама ';
s2:='мыла ';
s3:='раму';
s:=concat(s1, s2, s3);
writeln(s);

На экране мы увидим строку: «Мама мыла раму»


delete(s, n, l); — удаляет из строки s её часть, которая начинается с символа с номером n и состоит из l символов

Пример:

s:='Мама мыла раму';
s:=delete(s, 6, 5);
writeln(subs);

В данном примере на экране мы увидим: «Мама раму» (удаляем 5 символов: 4 буквы и 1 пробел)


chr(n); — возвращает символ с указанным кодом

Рассмотрим таблицу символов ASCII

Основные символы таблицы ASCII

Пример:

s:=chr(90);
writeln(s);

На экране мы увидим символ Z


pos(s, subs); — возвращает позицию (номер символа) подстроки в строке.


val(s, num, error); — выполняет преобразование строки s, изображающие целое или вещественное число, в число num. Если преобразование выполнен успешно, то значение переменной error=0. Если преобразование не может быть выполнено, то в переменную error записывается номер символа строки, который является причиной неудачи преобразования.


Использование массивов при работе со строками

При решении задач со стоками удобно использовать массивы: помещать элементы строки символов в массив. Для этого можно использовать цикл со счетчиком, функции length и copy :

st:="Hello";
for i:=1 to length(st) do
    ar[i]:=copy(st,i,1);

В цикле от 1 до длины строки st  каждому элементу массива ar присваивается подстрока, состоящая из одного i-го символа.

Рассмотрим полный текст программы с выводом полученного массива на экран:

var 
st:string;
i:integer;
ar: array[1..20] of string;
begin
st:='Hello'; //задается строка
for i:=1 to length(st) do 
    ar[i]:=copy(st,i,1);  //помещаем строку в массив
    
for i:=1 to length(st) do // выводим массив на экран
  write(ar[i],' ');
end.

Задача.

Заменить в строке Мама мыла раму буквы а на знак _. Вывести полученный массив на экран.

Решение

var 
st:string;
i:integer;
ar: array[1..20] of string;
begin
st:='Мама мыла раму'; //задается строка
for i:=1 to length(st) do 
    ar[i]:=copy(st,i,1);  //помещаем строку в массив
    
for i:=1 to length(st) do 
   begin
      if ar[i]='a' then ar[i]:='_'; 
       write(ar[i],' ');  // выводим массив на экран
   end;
end.

Получим: М _ м _   м ы л _   р _ м у 

Задачи для самостоятельного  выполнения:

  1. Удалить из введенной строки все гласные буквы и вывести результат на экран.
  2. Введенную строку вывести в обратном порядке (с последней буквы начинается  и первой заканчивается)
  3. Посчитать количество гласных букв в введенной строке
  4. Вывести на экран результат выражения, записанного в виде «a + b» (где а и b некоторые двухзначные числа)
Andrey K

View Comments

  • В задаче на замену буквы "а" на пробел, есть ошибка

  • Под словом будем понимать любую последовательность латинских букв, которая заканчивается пробелом или знаком препинания или стоит в конце строки. Решение задачи похоже на решение задачи 11, но в данном случае в процессе выделения очередного слова подсчитывается и его длина.

Recent Posts

Решение задачи №6 и задачи №22 ЕГЭ по информатике 2021

Настала пора написать серию мини-обучалок по решению задач ЕГЭ по информатике версии 2021 года. В…

4 года ago

Внеурочное занятие по информатике. Пишем игру «Поле чудес» на Python.

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

5 лет ago

Основные алгоритмы в помощь школьнику. Часть 1

Рассмотрим набор наиболее часто встречающихся задач на программирование в школьном курсе информатики. Добавляйте свои задачи…

6 лет ago

Школьный тур Всероссийской олимпиады школьников по информатике 9-11 класс (2018-2019). Разбор задач. Часть 2

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

6 лет ago

Школьный тур Всероссийской олимпиады школьников по информатике 9-11 класс (2018-2019). Разбор задач. Часть 1

Закончился школьный тур Всероссийской олимпиады школьников. Разберем первую и вторую задачи тура, проводимого в московских…

6 лет ago

Школьный этап Всероссийской олимпиады школьников по информатике 2017 (9-11 классы). Задача №4. «Плацкартный вагон»

Задача. В плацкартном вагоне 54 места, пронумерованных числами от 1 до 54. Вагон разбит на 9…

7 лет ago