Что такое string в паскале

Что такое string в паскале

Программирование постоянно связано с работой с некоторыми данными, в частности, со строками. Строковый оператор задаётся одинаково в большинстве языков, в том числе в Pascal: string. Но в Паскале есть свои особенности и свойства, которые необходимо знать перед началом работы.

Что есть строка в Паскале?

Перед тем как разбираться с синтаксисом строкового типа данных в Паскале, следует понимать, что может являться строкой. Фактически в Pascal string — это массив символов, каждый из которых может являться любым элементом из ASCII-таблицы. То есть в качестве строки может использоваться любая буква, цифра, знак препинания или пробел.

Максимальное число символов в одной строке составляет 255 единиц, и каждый из них получает соответствующий порядковый номер. Поэтому, если необходимо записать большой текст в переменную, следует создать массив string. Pascal корректно обработает данный запрос, и можно будет сохранять значительно более длинные текстовые данные.

Строковый тип данных

За строки отвечает тип String. Pascal позволяет программисту указать точное число символов или же оставить её длину по умолчанию — в этом случае она будет равна 255. Для объявления строковой переменной, перечислив одинаковые аргументы, необходимо после двоеточия указать ключевое слово — string и, при необходимости, в квадратных скобках прописать длину строки. В приведённом ниже примере задаётся строка "str", длиной 10 символов:

В коде программы Pascal string можно задавать любые значения — для этого необходимо лишь заключить их в одинарные кавычки.

Операции со строками

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

Операция слияния (другими словами конкатенация или сцепление) выполняется для объединения нескольких строк в одну. Она реализована с помощью знака сложения: "+". С его помощью можно выстраивать единую строку, состоящую из ряда выражений, констант и переменных.

Стоит отметить, что при объединении слов в предложение путём конкатенации строк, между каждым элементом пробел будет отсутствовать. Поэтому, желая получить грамотно выстроенную конструкцию, следует в нужных местах явно указывать наличие промежутка, добавляя символ пробела, например, так: " ".

Ещё одна операция, поддержваемая в Pascal, — string compare или сравнение строк. Для неё также используются простейшие математические знаки:

  • равенства (=);
  • больше/меньше (> и );
  • а также больше или равно и меньше или равно (>= и 21 февраля, 2017
Читайте также:  Стив возняк состояние форбс

Строки в Паскале – это данные типа string. Они используются для хранения последовательностей символов. В Паскале длина стандартной строки ограничена 255 символами. Под каждый символ отводится по одному байту, в котором хранится код символа. Кроме того, каждая строка содержит еще дополнительный байт, в котором хранится длина строки.

Если заранее известно, что длина строки будет меньше 255 символов, то программист может сам задать максимальную длину строки.

Примеры описания строк:

Длина строки хранится в первом ее байте, индекс которого равен 0.
Объявление типизированной константы для типа string осуществляется так:

Существует понятие пустой строки, т.е. строки, которая не имеет элементов. Пустая строка обозначается двумя рядом стоящими апострофами (например, st = "color : #339 933 ; "> : = / span> = "color : #ff0000 ; "> » / span> ).

Операции над строками

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

Строки можно объединять с помощью операции конкатенации, которая обозначается знаком +.

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

Имя строки может использоваться в процедурах ввода-вывода. При вводе в строку считывается из входного потока количество символов, равное длине строки или меньшее, если символ перевода строки (который вводится нажатием клавиши Enter) встретится раньше. При выводе под строку отводится количество позиций, равное ее фактической длине.

К отдельному символу строки можно обращаться как к элементу массива символов, например s1 = "color : #009 900 ; "> [ / span> = "color : #cc66cc ; "> 3 / span> = "color : #009 900 ; "> ] / span> . Символ строки совместим с типом char, их можно использовать в выражениях одновременно, например:

Читайте также:  Rx 580 red devil golden sample

Можно осуществлять коррекцию любого символа строковой переменной, для чего в соответствующем операторе достаточно указать имя переменной типа string, вслед за которым в квадратных скобках задается номер ее элемента (например, str [ 3 ] : = ‘j’ ).

Элементы строки нумеруются с единицы, т.к. в каждой строковой переменной имеется элемент с номером 0, в котором в виде символа хранится длина текущей строки. Чтобы узнать текущую длину, достаточно применить функцию ord к нулевому элементу строки. Например:

Нулевой элемент строковой переменной можно корректировать. При этом будет изменяться текущая длина строки. Например, выражение str [ 0 ] : = #50 устанавливает текущую длину равной 50.

лабораторные работы и задачи по программированию и информатике, егэ по информатике

Символьный тип char в Паскале

Символьной переменной соответствует тип char:

Инициализация символьной переменной:

Основные функции для работы с символами

Функция преобразует целое число, имеющее тип BYTE, в один символ ASCII-кода:

Функция возвращает порядковый номер символа параметра в таблице ASCII:

var i: integer; begin for i:=32 to 255 do write(chr(i):3); end.

Строковые переменные в Паскаль

Строковые переменные в Паскале имеют тип String

Объявление и инициализация строковой переменной:

var a:string; begin a:=’Привет всем!’; writeln(a); end.

Ввод значения строковой переменной с клавиатуры:

var a:string; begin writeln(‘Введите слово’); readln(a); writeln(‘Вы ввели слово ‘,a); end.

Строка «рассматривается» компилятором, как массив букв:

Функции работы со строками в Pascal

Исходные данные Операция Результат
s3=’Мотороллер’
s4= ‘трон’
s5=’Корочка’
s6=’Рубашка’
s8=’2.73′

var s:string[30]; n,i:integer; begin writeln(‘введите текст’); readln(s); n:=0; for i:=1 to length(s) do if s[i]=’f’ then n:=n+1; write(‘в тексте букв f = ‘,n) end.

const m = [‘1’..’9′]; var s: string; i, k: byte; begin read(s); k := 0; for i := 1 to length(s) do if s[i] in m then inc(k); writeln(‘цифр = ‘, k); readln; end.

var a,b,c:string; i:longint; begin write(‘введите слово:’); readln(a); b:=»; for i:=1 to length(a) do b:=a[i]+b; if a=b then write(‘перевертыш’) else write(‘не перевертыш’); end.

  • После того как строка считывается (вводится), измеряется ее длина (функция length).
  • Далее стока просматривается посимвольно в цикле while или for .
  • Если символ строки входит в множество букв ( const letters=[‘a’..’z’]; ), то этот символ прибавляется к первому элементу массива слов строки ( . array [1..100] of string ).
  • Если символ равен пробелу, то увеличиваем счетчик для массива слов и переходим к следующей итерации цикла.
  • Пока не достигнем пробела, формируем элемент массива b (строковый массив — будущий массив из слов предложения). Добавляя каждую букву в переменную d.
  • При достижении пробела чистим переменную d для слова и начинаем формировать следующее слово.
  • После того, как массив из всех слов сформирован: начиная со второго элемента, сравниваем его длину с длиной предыдущего элемента. При необходимости меняем элементы местами. Проходим алгоритм до конца массива b.
  • Примечание:
    Использовать функции: Pos, Copy, Delete

    Посимвольный ввод до пробела

    Посимвольный ввод удобен для «мгновенной» обработки символов в строке.

    Для организации массива символьных строк:

    1. Все данные разделяются одним пробелом. Нужно подсчитать, сколько студентов получили отметку 5.
    2. Вывести фамилии студентов, у которых оценка 2.
    3. Вывести фамилии студентов, родившихся в 1996 году.

    Пример:
    Входной текст: Алгоритм — это правила выполнения определенных действий!, предписание исполнителю! совершить последовательность действий!, набор команд для компьютера!
    Выходной текст: Алгоритм — это правила выполнения определенных действий, предписание исполнителю! совершить последовательность действий, набор команд для компьютера!

    Трудность низкая:
    Программа должна формировать в памяти вторую строковую переменную с измененным текстом, а потом выводить ее на экран.

    Трудность высокая:
    Программа должна преобразовывать исходную строку без использования дополнительных переменных, и затем выводить ее на экран.

    И напоследок рассмотрим олимпиадное задание по Паскалю:

    * Решить ту же задачу, в которой сдвиг будет не на 3 позиции, а на k, причем отрицательное значение является признаком сдвига влево, положительное — вправо.

    var a:char; i,n:byte; s,s1:string; begin s1:=»; readln(s); for i:=1 to length(s) do begin n:=ord(. ); n:=n+3; if n=123 then n:=97; <в ASCII 120 — x, 97 — a>if . ; <в ASCII 121 — y, 98 — b>if . ; <в ASCII 122 — z, 99 — c>a:=chr(. ); s1:=. ; end; writeln(s1) end.

    Потренируйтесь в решении задач по теме, щелкнув по пиктограмме:

    Ссылка на основную публикацию
    Adblock detector