Как сделать отступ в паскале

Обновлено: 03.07.2024

Символы имеют тип char, занимают 2 байта и хранятся в кодировке Unicode (UTF-16).

Для преобразования символа c в код используется функция Ord(c) , для обратного преобразования кода i в символ используется функция Chr(i) .

Классический способ определить символ, следующий за данным в кодовой таблице, - это преобразовать символ в код, прибавить к коду число и потом преобразовать полученный код снова в символ:

Аналогично определяется предыдущий символ

Методы типа char

Методы, встроенные в тип char, делятся на две категории:

  • проверяющие, принадлежит ли символ указанной категории: c.IsDigit , c.IsLetter , c.IsLower , c.IsUpper
  • преобразующие символ: c.ToUpper , c.ToLower , c.ToDigit .

Отметим, что c.IsDigit эквивалентно (c >= '0') and (c и эквивалентно c in '0'..'9' Для c.IsLower , c.IsLower , c.IsUpper такой простой аналогии нет. Дело в том, что в этих методах проверяются все символы, являющиеся буквами в каком-то алфавите народов мира (в частности, английские и русские)

Отметим также, что c.IsLower возвращает True только если это буква в нижнем регистре - для не букв возвращается False .

Строки

Введение

Отметим, что для строк имеется много операций и методов, не все из которых мы рекомендуем для школьников.

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

Индексация строк

Строки в Паскале индексируются с 1. К символам строк можно обращаться по индексам - s[i] .

Символы строк можно менять:

Можно использовать индексацию с конца: s[^i] обозначает i-тый символ с конца

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

1. Определение длины строки. Вычисление текущей длины строки производится с помощью функции Length . Ее общий вид следующий: Результатом данной функции является целое число, равное текущему количеству символов в строке. Например, при выполнении следующих конструкций: значение целой переменной K будет равно 12.

  • 'Паскаль '>'Паскаль' (первая строка будет больше второй, так как в первой строке еще присутствует пробел),
  • 'Balkon' (первая строка меньше второй, так как код символа 'b' больше кода символа 'B': Ord ('b')>Ord ('B')) ,
  • 'Паскаль'='Паскаль' (строки совпадают посимвольно и равны по длине).

2. Удаление части символов строки. Для удаления из строки фрагмента используется процедура Delete , общий вид которой следующий:


Рис.1. Общий вид процедуры Delete

Например, при выполнении процедуры Delete('Язык Паскаль',5 ,8) из строки будут удалены 8 символов, начиная с пятого, и исходная строка будет иметь вид: 'Язык'.

3. Вставка символов в строку. Для вставки символов в строку используется процедура Insert . Ее общий вид следующий:


Рис.2. Общий вид процедуры Insert

Например, в результате выполнения процедуры Insert('111', 'ABC',2); результирующая строка будет такой:'A111BC'.

4. Поиск подстроки в строке. Для определения позиции подстроки в строке используется функция Pos , общий вид которой следующий:


Рис.3. Общий вид функции Pos

Результат этой функции целое число. Оно определяет номер элемента, с которого начинается первое вхождение подстроки в строку. Если подстрока в строку не входит, то значение функции равно нулю. Например, при выполнении конструкции k1:=Pos('BC','ABCD'); значение переменной k1 равно 2, так как функция Pos возвращает номер элемента, с которого подстрока первый раз встречается в строке. При выполнении оператора k1:=Pos('ABCD',' BC'); значение переменной k будет равно нулю.

Приведем пример программы, иллюстрирующей выше описанные конструкции. Пусть в заданном тексте нужно заменить все вхождения подстроки 'del' на 'insert' .

Решение и комментарии вы можете посмотреть здесь.

5. Склеивание строк. Для "склеивания" строк используется функция Concat , общий вид которой следующий:

Замечание .
"Склеивание" строк можно производить, используя символ "+", например, C:=A+'о'+B; в результате строка C будет иметь вид: 'Пароход'.

6. Копирование строк. Для копирования строк или их фрагментов используется функция Copy . Ее общий вид:


Рис.4. Общий вид функции Copy

Часто возникает необходимость получить строковое представление числа и наоборот (например, получить строку '13' из числа 13). Для работы с числами и строками применяются следующие две процедуры.

7. Перевод числа в строку. Для перевода числа в строку используется процедура Str , общий вид которой следующий:


Рис.5. Общий вид процедуры Str

Например, Str(1.21, St); в результате выполнения процедуры строка будет такой: St='1.21'.

8. Перевод строкового выражения в число. Для перевода строки в число используется процедура Val . Ее общий вид:


Рис.6. Общий вид процедуры Val

Если данная строка действительно является записью числа (целого или действительного), то значение признака будет равно нулю , иначе значение признака будет равно номеру первого символа, с которым процедура Val "не справилась", то есть преобразование этого символа является невозможным.

Например, при выполнении процедуры Val ('1234',N,K); значение переменной N будет равно 1234, а переменная K будет равна нулю, так как строка '1234' является записью целого числа. При выполнении конструкции Val('12-34',N,K); значение переменной N не изменится, а переменная K будет равна трем, то есть номеру символа, с которого преобразование невозможно, так как знак "-" в записи чисел может быть только на первом месте.

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

Решение и комментарии вы можете посмотреть здесь.

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

В Pascal существует специальный тип данных для упрощения работы со строками, называемый – строковым. Он специально разработан для обработки информации, представленной символами.
Переменная st определяется как строка символов, содержащая максимальное количество элементов (256). Каждый символ занимает 1 байт.
Строка представляет собой одномерный массив из символов. Индексы в нем начинаются не с единицы, а с нуля. В нулевом байте строкового типа данных содержится номер количества символов в строке.

Операции над переменными строкового типа.

Доступ к символам строки в Pascal.

Доступ к символа строк реализуется также, как и в массиве. Например st[i] или s[i]. Так как строки является разновидностью массива, то они могут обрабатываться по правилам обработки массива -
Строки в Pascal вводятся с помощью оператора
и выводятся
Над переменной строкового типа данных могут применяться операции сравнения и сцепления. Операция присвоения стандартна, и реализуется так:

Сцепление строк.

Сцепление используется, когда необходимо соединить две строки в одну или присоединить к строке какой-либо символ. При этом длина строки становится равной сумме двух данных.
Пример:

Отношения строк.

Над строками можно выполнять операции отношения: = , <> , > , , >= , . Сравнение происходит по кодам символов в таблице ASCII. Больше та строка, чей символ (неравный символу другой строки) больше чем сравниваемый.

Специальные функции строки в Pascal

При работе со строками в Pascal, применяются специальные функции, работающие только с ними.

\u00a0 \u00a0\u00a0 for i:=l downto 1 do
\u00a0 \u00a0 \u00a0 \u00a0 \u00a0if(i mod 2 = 0)then
\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 Insert(' ', s1, i);
\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 writeln(s1);
\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 readkey; \n

\u00a0 \u00a0 \u00a0 \n

archery

var
s, s_new: string;
i: integer;

begin
read(s);
for i := 1 to length(s) do
s_new := s_new + s[i] + ' ';
writeln(s_new);
end.

for i:=l downto 1 do
if(i mod 2 = 0)then
Insert(' ', s1, i);
writeln(s1);
readkey;

Новые вопросы в Информатика

В) Значение выражения A0DC6+110, 1116-1060+10000-5000+1204 Вычислите в 10-чной системе счисления и результат вычисления переведите в 16-чную систему с … числения.​

Сканируется цветное изображение размером 33,02×33,02 см. Разрешающая способность сканера — 600×1200 dpi, глубина цвета — 24 бита. Какой информационный … объём будет иметь полученный графический файл?Помогите пожалуйстаааа!!

1. Выведи числа от 1 до 100, используя цикл Forи цикл While 2. Выведи все четные числа от 1 до 100, используя цикл Forи цикл While 3. Выведи все нечет … ные числа от 1 до 100, используя цикл Forи цикл While

Определи порядок выполнения кода. num = 3 if num > 0: print(num, 'is a positive number) print("This is always printed.') num = -1 if num > 0: pr … int(num, "is a positive number.") print("This is also always printed.') І Когда переменная лит равна 3, тестовое выражение истинно и выполняются операторы Внутри тела if. ТЕсли переменная num равна – 1, тестовое выражение локно, а операторы внутри тела іf пропускаются. 1 Оператор print () находится за пределами блока іf (без отступов), 1 Тело if выполняется только в том случае, если оно имеет значение истина. Т В данном примере пит О – это тестовое выражение. 1 Следовательно, он выполняется независимо от тестового выражения.​

Читайте также: