#8.1 Строковый тип данных String в Паскаль. Начало работы со строками
Primary tabs
Строковый тип данных позволяет использовать в программе последовательности из многих символов, которые также называют "строками".
Строковые литералы
Мы уже говорили о строковых литералах ранее.
Строковые литералы -- это последовательности символов взятые в кавычки, но в отличии от символьных литералов, в строковых может быть много символов (а в символьных только один).
Пример оформления строкового литерала:
'СПО ВГУ' // строка из 7 символов
Строковые переменные
Строковые переменные объявляются следующих образом:
var a, b, c: string; // объявляем три переменные строкового типа
Как и переменным других типов строковым переменным можно присваивать значения -- строковые литералы, другие строковые переменные или значения, возвращающие строковый тип.
Приведём пример присваивания литерала переменной и одной переменной другой переменной:
var a, b, c: string; // объявляем списком три переменные строкового типа begin a := 'abc'; // строковый литерал из 3 символов b := a; // теперь b равно 'abc' (хранит в себе строку 'abc') с := b; // теперь c равно 'abc' end.
Операции со строками
Конкатенация -- сложение строк
Пожалуй, самой распространённой операцией в Паскале является конкатенация строк. Эта операция состоит в том, что из двух "суммируемых" строк получается одна.
Рассмотрим пример:
var a,b,c : string; begin a := 'SPO '; b := 'VSU'; c := a + b; // конкатенация строк writeln(c); // смотрим чему равно c readln(); end.
-- запустите этот код. В консоли в качестве значения переменной $c$ мы получим строку:
SPO VSU
Таким образом: для конкатенации строк мы используем оператор суммы $+$.
В строке:
c := a + b; // конкатенация строк
фрагмент:
a + b
является строковым выражением, так как его результат обладает типом strign.
Сравнение строк
Как и переменные всех простых типов (есть ещё т.н. сложные типы, о которых мы будем говорить в следующих уроках) строки можно сравнивать, для чего используются, в частности операторы $\lt>$ и $=$.
Далее рассмотрим примеры небольших программ, работающих со строками, в т.ч. их сравнивающие.
Разбор примеров
Пример №1 -- считывание строк
Задача:
Пользователь вводит произвольную строку. Cчитайте её, сложите саму с собой и выведите на экран.
Решение:
var s:string; begin writeln('vvedite stroku:'); // выводим пояснение для пользователя readln(s); // считываем строку s := s + s; // сложение строк writeln('Poluchaem: ', s); readln(); end.
Пример №2 -- считывание строки и её сложение с литералом
Задача:
Пользователь вводит произвольную строку. Cчитайте её, сложите со строкой '123' и выведите на экран.
Решение:
var s:string; begin writeln('vvedite stroku:'); // выводим пояснение для пользователя readln(s); // считываем строку writeln('Poluchaem: ', s + '123'); // подставляем выражение как второй аргумент процедуры вывода readln(); end.
-- в данном решении мы не записывали значение литерала в переменную, хотя могли бы, например:
var s, b:string; // объявим две переменные begin writeln('vvedite stroku:'); // выводим пояснение для пользователя readln(s); // считываем строку b := '123'; writeln('Poluchaem: ', s + b); // подставляем выражение как второй аргумент процедуры вывода readln(); end.
Также мы могли бы объявить отдельную переменную для хранения результата, записать в неё результат конкатенации и затем вывести её значение:
var s, b, e :string; // объявим три переменные строкового типа begin writeln('vvedite stroku:'); // выводим пояснение для пользователя readln(s); // считываем строку b := '123'; e := s + b; writeln('Poluchaem: ', e); // подставляем переменную в качестве второго аргумента процедуры readln(); end.
Пример №3 -- считывание двух строк и их сложение с записью в переменную
Задача:
Получите от пользователя две произвольных строки, сложите их, запишите результат конкатенации в переменную и выведите результат на экран.
Решение:
var s1, s2 :string; begin writeln('Vvedite pervuy stroku:'); readln(s1); writeln('Vvedite vtoruy stroku:'); readln(s2); s1 := s1 + s2; // сложение строк, запишем в первую переменную, чтобы не объявлять третью write('Poluchaem: ', s1); readln(); end.
Пример №4
Задача:
Получите от пользователя три строковых значения, выведете на экран результат проверки условия:
""первое значение равно второму или первое НЕ равно третьему""
Используя логическую операцию OR, и оператор сравнения $=$, можем решить так:
program Project1; var a, b, c: string; // секция объявления переменных begin // начало тела программы //получим значения переменных от пользователя writeln('vvedite pervuy stroku: '); readln(a); writeln('vvedite vtoruy stroku: '); readln(b); writeln('vvedite tretiy stroku: '); readln(c); writeln('otvet:', (a = b) OR (a <> c)); readln(); // удерживаем консоль end.
Видео-пояснения
Для этого урока есть следующие видео:
Самостоятельная работа
Вопросы
- Что такое оператор?
- Что такое конкатенация строк? Какой оператор используется для конкатенации?
- Объявите 5 переменных строкового типа. Одной из них присвойте значение и выведете значение этой переменной на экран.
- Получите от пользователя 5 строк, сложите их и выведите полученный результат на экран.
- Получите от пользователя три произвольных строки, одним выражением выполните конкатенацию следующим образом:
""первая строка + произвольный литерал + вторая строка + третья строка""
Результат конкатенации выведите на экран.
Подсказка: если не получается решить, или для самопроверки - см. этот разбор решения.
- Получите от пользователя четыре строковых значения, выведете на экран результат проверки условия:
""первое значение равно третьему и первое НЕ равно четвертому или четвертое равно третьему"".
Подсказка: если не получается решить, или для самопроверки - см. этот разбор решения.
Задачи
- Log in to post comments
- 19472 reads