Строки символов типа String . Операции над строками символов
Поиск на других ресурсах:
1. Представление строк символов в языке Pascal. Тип String . Общие сведения
В языке Паскаль определены два типа строк:
- строки типа String ;
- строки типа PChar . Более подробно о строках типа PChar можно прочесть здесь .
Строки символов есть не что иное как массив символов. Этот составный тип данных занимает важное место при разработке различных программ на Pascal-ориентированных языках. Исходя из этого контекста, стандартный Паскаль допускает два способа сохранения символьных массивов в памяти компьютера:
- распакованный;
- упакованный.
Описание распакованного массива символов выглядит примерно следующим образом:
var M: Array[1..Max] of char;
- M – имя массива;
- Max – максимально-возможное количество элементов в массиве.
Описание упакованного массива символов содержит дополнительное слово packed
Программа Паскаль, в которой для введенной с клавиатуры буквы на экран выводится ASCII код символа
var M: Packed Array[1..Max] of char;
Для преобразования символьного массива из распакованной формы в упакованную и наоборот, в языке Pascal имеются стандартные функции Pack , UnPack .
Любая символьная строка не что иное как упакованный (packed) массив символов. Для удобного описания и использования одномерных упакованных массивов символов в языке Pascal введен тип String . Работу с типом String поддерживают многие стандартные функции языка Pascal. Эти функции упрощают выполнение рутинных (базовых) операций над строками символов.
Строка символов типа String может быть присвоена как константе так и переменной. Любая константа или переменная может объявлять строку символов одним из двух способов:
- с заданной длиной строки;
- без указания длины строки. В этом случае устанавливается длина строки, равная 255 символам. Это максимально возможная длина строки типа String .
Если задается длина строки, то объявление переменного типа String выглядит приблизительно так:
var s : String[50];
- s – объявляемая строка;
- 50 – максимально-возможная длина строки.
Если строка s объявляется без указания длины, то вид такого объявления следующий:
var s : String;
Такие же правила объявлений действуют для констант и типов.
В памяти строка типа String занимает на 1 байт больше его длины. В нулевой позиции строки указывается длина строки (рисунок 1) – количество символов в строке.
Рисунок 1. Представление строки типа String в памяти компъютера
Тип String без указания длины совместим со всеми типами строк. Отдельный символ строки является типом Char .
2. Примеры объявления строк типа String
type // Объявление типов строк MySting20 = String[20]; IdCode = String[10]; // Идентификационный код Character = String[1]; // Единичный символ как строка const // Объявление строк как типизированных констант Mon : String = ‘Monday’; Jan : String = ‘January’; var // Объявление строк как переменных s1 : String[50]; s2 : String;
3. Перечень операций, процедур и функций, работающих со строками символов
Для строк типа String определены следующие операции:
последний символ строки в паскале
- := – присваивание;
- + – слияние (конкатенации);
- сравнение. Для сравнения строк применяются любые операции отношения ( = , <> , > , , >= , ). Сравнение строк происходит посимвольно, начиная с первого символа. Строки равны, если они имеют одинаковую длину и посимвольно эквивалентны.
Для доступа к отдельному символу в строке определена операция индексирования
Со строками символов используются следующие процедуры и функции:
- Concat – сцепляет (конкатенирует) две строки;
- Copy – возвращает подстроку из строки;
- Delete – удаляет подстроку из строки;
- Insert – вставляет (добавляет) подстроку в строку;
- Length – возвращает длину строки;
- Pos – осуществляет поиск подстроки в строке;
- Val – конвертирует строку в число;
- Str – конвертирует число в строку.
4. Доступ к отдельному символу в строке S[i] . Операция индексирования
Для получения отдельного символа строки используется операция индексирования. В наиболее простом виде общий вид операции получения символа
c := S[index];
- c – символ типа Char ;
- s – исходная строка;
- index – позиция символа в строке. Нумерация index начинается с 1.
Операция индексирования может использоваться и в левой части оператора присвоения. Это означает, что допускается изменять значение в строке. Приблизительный код изменения значения следующий
S[index] := c;
- s – строка типа String ;
- index – позиция в изменяемой строке. Значение index нумеруется с 1;
- c – символ типа Char , заменяющий символ S[index] .
Приклад.
program Project1; uses SysUtils; var c : Char; s : String; begin // Заданная строка S := ‘Hello, world!’; // Получить символ с индексом 5 c := S[5]; Writeln(‘c = ‘, c); // c = o // Получить символ с індексом 1 c := S[1]; Writeln(‘c = ‘, c); // c = H // Получить последний символ строки c := S[Length(s)]; Writeln(‘c = ‘, c); // c = ! // Попытка изменить значение S[8] S[8] := ‘W’; // допускается Writeln(S); // Hello, World! Readln; end.
Результат выполнения программы
c = o c = H c = ! Hello, World!
5. Операция присваивания строк :=
Полезной операцией для работы со строками является операция := , которая осуществляет присваивание строк. Общий вид использования операции следующий:
S1 := S2;
- S1 – строка-приемник, получающая значение строки S2 . Предыдущее значение строки S1 теряется;
- S2 – строка-источник.
При присвоении строк делается полная копия строки-источника. Это означает, что строки размещаются на разных участках памяти.
Пример.
program Project1; uses SysUtils; var s1 : String; s2 : String; begin // Задать значение строкам S1 := ‘Pascal’; S2 := ‘Delphi’; // Присвоить строке S1 новое значение S1 := S2; // Вывести результат Writeln(‘S1 = ‘, S1); Writeln(‘S2 = ‘, S2); // Изменить строку S2 S2 := ‘JavaScript’; // Вывести S1 и S2 Writeln(‘S1 = ‘, S1); Writeln(‘S2 = ‘, S2); Readln; end.
Результат выполнения программы
S1 = Delphi S2 = Delphi S1 = Delphi S2 = JavaScript
6. Операция + . Конкатенация строк
Добавление (конкатенацию) строк можно производить с помощью операции + (плюс). В наиболее общем случае реализация сложения строк выглядит следующим образом:
s := s1 + s2 + . + sN;
- s – строка, что есть результатом конкатенации строк s1 , s2 , …, sN ;
- s1 , s2 , sN – некоторые строки.
Пример.
program Project1; uses SysUtils; var S1, S2, S3 : String; begin // Конкатенация строк S1 := ‘Hello’; S2 := ‘world’; S3 := S1 + ‘, ‘ + S2 + ‘!’; Writeln(S3); // Hello, world! S1 := ‘ABCD’; S1 := S1 + S1; Writeln(S1); // ABCDABCD Readln; end.
7. Операции = , <> . Сравнение строк на равенство (неравенство)
В языке Паскаль строки допускают сравнение на равенство/неравенство. Для сравнения строк используются операции = , <> по следующему образцу
S1 = S2 S1 <> S2
Результатом выполнения операций является логическое значение True или False . Сравнение строк применяется в операторах, допускающих выполнение логических операций.
Пример.
program Project1; uses SysUtils; var S1, S2 : String; begin // Сравнение строк Write(‘S1 = ‘); Readln(S1); Write(‘S2 = ‘); Readln(S2); // Операция = if S1 = S2 then Writeln(‘Strings are equal’) else Writeln(‘Strings are not equal’); // Операция <> (не равно) if S1 <> S2 then Writeln(‘Strings are not equal’) else Writeln(‘Strings are equal’); Readln; end.
Результат выполнения программы
S1 = abcd S2 = abcd Strings are equal Strings are equal
8. Операции > , < , >= ,
Для сравнения строк в лексикографическом порядке используются операции > , >= , , . В наиболее общем случае сравнение двух строк S1 и S2 имеет следующий вид
S1 < S2 S1 S2 S1 >= S2
Результатом операций является значение True или False . Лексикографический порядок знаков в строках определяется числовым значением кодов этих знаков.
Так, например, код символа ‘A’ следует перед кодом символа ‘B’ . Соответственно выражение
вернет результирующее значение True .
Пример.
. // Сравнение строк S1 := ‘ABC’; S2 := ‘ABCD’; res := S1 >= S2; // res = False res := S1 > S2; // res = False res := S1 // res = True res := S1 < S2; // res = True .
Связанные темы
- Функции работы со строками символов. Функции Concat , Copy , Delete , Insert , Length , Pos , Val , Str
- Логические типы. Символьные типы. Строчные типы
Источник: www.bestprog.net
Введите строку символов; определите и выведите на экран ее длину. выведите на экран первый и последний символ этой строки (через Паскаль)
Получи верный ответ на вопрос «Введите строку символов; определите и выведите на экран ее длину. выведите на экран первый и последний символ этой строки (через Паскаль) . » по предмету Информатика, используя встроенную систему поиска. Наша обширная база готовых ответов поможет тебе получить необходимые сведения!
Новые вопросы по информатике
Напиши обратные действия. Снять — Открыть — Прилететь —
Перевести число 2-чной системы счисления в 10-чную: 1110000/2, 10001101/2
Какими знаками можно обозначить на письме звонкий и глухой удары в барабан?
1) В поезде 17 вагонов, 10-17-купейные, остальные-плацкарт. Ввести № вагона. напечатать вид. 2) Ввести 2 числа. Напечатать их частное или сообщить, что на 0 делить нельзя
Товар стоит a руб. b коп. За него заплатили c руб. d коп. Сколько сдачи требуется получить? программа паскаль
Главная » Информатика » Введите строку символов; определите и выведите на экран ее длину. выведите на экран первый и последний символ этой строки (через Паскаль)
Источник: 4i5.ru
Тест по языку программирования Паскаль 2 варианта задания с выбором от
5) Слова, которые не используются в теле программы (в разделе операторов).
6) Операция вычисления остатка от целочисленного деления.
7) Самая старшая логическая операция.
8) Символы, используемые в операторе присваивания.
9) Этот символ используется в экспоненциальной форме записи вещественного числа.
10) Оператор вывода данных на экран (или на принтер).
11) Слово, которое по-русски означает «Если».
12) Оператор цикла с предусловием.
13) С этих служебных слов начинаются подразделы в разделе описаний (объявлений) программы.
14) Между этими символами записывается аргумент функции.
15) Этот символ используется для разделения слов в тексте программы.
16) Слова, которые составляют условный оператор в неполной форме.
17) Знаки логических отношений.
18) Слова, означающие типы данных Pascal.
19) Символ, используемый в программе для разделения перечисляемых элементов в списке.
20) Слова, которые могут использоваться при программировании как идентификаторы.
21) Слово, которым обозначается функция случайного числа.
22) Этот символ используется в операторе вывода как ограничитель текста, выводимого на экран.
Тест по языку программирования Паскаль
К заданиям выберите и запишите номера ответа (ответов)
1) Логическая операция – «логическое сложение».
2) Слова – операторы в одно слово (например, for-to-do является оператором в три слова).
3) Оператор цикла с постусловием.
4) Слово, с которого начинается заголовок программы.
5) Эти символы используются в арифметических выражениях для изменения порядка действий.
6) Оператор ввода данных с клавиатуры.
7) Символ, которым заканчивается любое предложение на языке Pascal.
8) Слова, которые используются для выделения тела цикла.
9) Слова – модули Turbo Pascal?
10) Оператор цикла с параметром-счетчиком.
11) Символ, который используется для разделения целой и дробной части вещественного числа.
13) Знаки, используемые для выделения комментариев в программе.
14) Знак, который запрещено использовать в идентификаторах.
15) Операторы, которые используются вместе при программировании ввода пользователя с клавиатуры.
16) Слово, которое встречается только в полной форме условного оператора.
17) Знаки арифметических операций.
18) Эти слова являются частью логического выражения (условия).
19) Знак (не буква и не цифра), который можно использовать в идентификаторах.
20) Слова, которыми обозначаются стандартные функции Pascal.
21) Это оператор мы используем в программе, чтобы задержать окно результатов.
22) Слово, с которого начинается раздел подключения модулей Turbo Pascal к программе.
Источник: izi-otvet.ru