SlideShare a Scribd company logo
Массивы

Строки
Массивы
Массивы
Массив – это группа однотипных элементов, имеющих
 общее имя и расположенных в памяти рядом.
Особенности:
  • все элементы имеют один тип
  • весь массив имеет одно имя
  • все элементы расположены в памяти рядом
Примеры:
  • список учеников в классе
  • квартиры в доме
  • школы в городе
  • данные о температуре воздуха за год
                                                    3
Массивы
                                                    НОМЕР
                                               элемента массива
                                                   (ИНДЕКС)
 A   массив
      1         2      33         4           5
      5        10      15
                       15         20         25


     A[1]     A[2] ЗНАЧЕНИЕ элемента
                      A[3]      A[4]      A[5]
                        массива

                                  НОМЕР (ИНДЕКС)
                                  элемента массива: 2

          A[2]
                                       ЗНАЧЕНИЕ
                                  элемента массива: 10
                                                              4
Объявление массивов
Зачем объявлять?
  • определить имя массива
  • определить тип массива
  • определить число элементов
  • выделить место в памяти
Массив целых чисел:
                      начальный   конечный      тип
         имя            индекс     индекс    элементов

     var A : array[ 1 .. 5 ] of integer ;
Размер через константу:

      const N=5;
     var A: array[1.. N ] of integer;
                                                         5
Объявление массивов
Массивы других типов:
   var X, Y: array [1..10] of real;
       C: array [1..20] of char;
Другой диапазон индексов:
   var Q: array [0..9] of real;
       C: array [-5..13] of char;
Индексы других типов:
   var A: array ['A'..'Z'] of real;
       B: array [False..True] of integer;
   ...
      A['C'] := 3.14259*A['B'];
      B[False] := B[False] + 1;             6
A = (а1 а2 … аn)
 Имя Элементы массива
массива
          Примеры
    Массив оценок по предмету,
         массив фамилий,
             алфавит
b11    b12 … b1m
   B = b21      b22 … b2m
  Имя    …      … … …      Примеры
массива                Ведомость оценок,
                        меню в столовой,
Элементы b
 массива   n1   bn2 … bnm
Нельзя вводить
(выводить) массив как единое
           целое.
       Ввод-вывод значений
элементов массива производится
     поэлементно в цикле.
Пример

const n = 15;
var m : array[1..n] of integer;
     i : byte;
randomize;       {обновление
          последовательности случайных чисел}
for i :=1 to n do
m[i] :=random(50);{ ввод целыми
                 случайными числами в [0;50) }
Для заполнения целыми случайными
числами в диапазоне [a ; b] используется
выражение: random(b-a+1) + a .
– таблицы   (матрицы).

         Каждый элемент матрицы
     определяется номерами строки и
    столбца, на пересечении которых он
                  стоит.

mas [i, j]– элемент двумерного массива.
 Имя      N N
массива строки столбца
Пример

const n = 3; m=5;
var mas : array[1..n,1..m] of integer;
     i , j : byte;
– это таблица, у
которой число строк
     равно числу
столбцов, т.е. n = m.
Главная         i+j < n+1     Побочная
диагональ b11   b12 … b1n     диагональ
  i = j b21     b22 … b2n     i+j = n+1
          …     … … …
    i>j b       bn2 … bnn
                              j>i
           n1

                  i+j > n+1
Строки
Строка в Паскале – упорядоченная
 последовательность символов. Количество
 символов в строке называется ее длиной.
Длина строки в Паскале может лежать в диапазоне
от 0 до 255. Каждый символ строковой величины
занимает 1 байт памяти и имеет числовой код в
соответствии с таблицей кодов ASCII.
32 пробел   48 0   64 @   80 P   96 `    112 p

33 !        49 1   65 A   81 Q   97 a    113 q

34 "        50 2   66 B   82 R   98 b    114 r

35 #        51 3   67 C   83 S   99 c    115 s

36 $        52 4   68 D   84 T   100 d   116 t

37 %        53 5   69 E   85 U   101 e   117 u

38 &        54 6   70 F   86 V   102 f   118 v

39 ‘        55 7   71 G   87 W   103 g   119 w

40 (        56 8   72 H   88 X   104 h   120 x

41 )        57 9   73 I   89 Y   105 i   121 y

42 *        58 :   74 J   90 Z   106 j   122 z

43 +        59 ;   75 K   91 [   107 k   123 {

44 ,        60 <   76 L   92    108 l   124 |

45 -        61 =   77 M   93 ]   109 m   125 }

46 .        62 >   78 N   94 ^   110 n   126 ~

47 /        63 ?   79 O   95 _   111 o   127
В Паскале строки это упакованные массивы символов;
   следовательно, они имеют фиксированную длину



   i   0   1    2    3       4      5   6    7    8   9   10    .     .        .   255
  St   n   М    А    М       А          М    Ы    Л   А


           n -длинна стоки

для работы со строками используется встроенный тип string,
поддерживающий операции конкатенации (+) и сравнения (> < = <> >= <=).

  Строковая константа Паскаля – последовательность символов, заключенная в
  апострофы.

  Например: ‘строковая           константа’, ‘243’.
  Два следующих друг за другом апострофа (‘’) обозначают пустую строку, т.е.
  строку с нулевой длиной.
Для описания строковых переменных в Паскале существует
   предопределенный тип string.

Var <имя_переменной>: string*<максимальная длина строки>+

Например:
   Var s1: string[10];
      s2: string[20];
      smax: string;
 строковая переменная s1 может содержать не более 10
 символов, переменная s2 – не более 20 символов.
 Если же при описании строки ее максимальная длина не указывается, то по
 умолчанию принимается максимально допустимая длина, равная 255
 символам (переменная smax)..
i   0   1   2    3   4    5      6   7      8   9   10   .    .     .   255


St   n   М   А   М    А         М     Ы      Л   А

Символы в строке упорядочены, каждый из них имеет порядковый
номер, начиная с первого.
Имеется возможность обратиться к любому элементу строки, указав его номер.
Например, St[7+ позволяет обратиться к седьмому символу в строке St

при этом мы можем поменять это значение, выполнив оператор присваивания
St[7+:= ‘е’
Строка принимает вид ‘мама мела’

можем вывести на экран это значение
Write (St);
присвоить его другой переменной
Q:=St;
Ввести с клавиатуры или задать в программе
Read (st);
Tmp:=‘Informatica’;
Функция Length (s) возвращает длину (тип integer) строки символов s.

Функция Copy (s,p,n) возвращает подстроку длины n из строки символов s, начиная с
символа, находящегося на позиции с номером р.

Функция Concat (s1, s2, . . ., sn) возвращает строку символов, представляющую собой
сцепление строк s1+s2. . . +sn.

Функция Pos (sub, s) возвращает 0, если строка символов sub не является подстрокой строки
s, или возвращает номер (тип integer) позиции, с которой начинается первое вхождение
подстроки sub в строку s.

Процедура Delete (s,p,n) удаляет л символов из строки символов s, начиная с
символа, находящегося на позиции с номером р.

Процедура Insert (sub, s, р) вставляет подстроку sub в строку символов S, начиная с
символа, находящегося на позиции с номером р.

Процедура Str (х, s) преобразует число х (целого или действительного типа) в строку
символов, которая присваивается строке s.

Процедура Val (s, х, cod) преобразует строку символов s в число, которое присваивается целой
или действительной переменной х. Значение параметра cod равно 0, если преобразование
выполнено успешно, иначе - номеру позиции, где обнаружен ошибочный символ. Строка
символов s может содержать и ведущие пробелы.
Значение параметра s                      Результат функции или окончательное значение
                          Выражение
 (или переменной х)                              параметров (в случае процедуры)

 'Informatica'            Length(s)                           11

'A sosit iarna!'          Length(s)                           14

 'Informatica'           Copy(s,3,5)                       'forma'
    'Tractor'            Copy(s,3,5)                       'actor'
    'Tractor'          Concat(s,'ist')                  'Tractorist'
 'Informatica'         Pos('forma',s)                          3
 'Informatica'         Pos('Forma',s)                          0
    'Tractor'           Delete(s,1,2)                   s <— 'actor'
 'Informatica'          Delete(s,3,8)                     s <—'Ina'

      'bine'           Insert('ul',s,2)                s<— 'buline'

      x<-28               Str(x,s)                         s<—'28'
    s<— '341'           Val(s,x,cod)                   x<-341 cod<— 0

s<— '3,14' x<—10        Val(s,x,cod)                    x<—10 cod<—2
Program Str1;
Var
   S : String;
   n:integer;

Begin
 Writeln('Введите последовательность символов');
 Readln(S);
 n:=Length(S);
 Writeln('Вы ввели строку из ',n, ' символов');
End.

More Related Content

What's hot

Лекция №1. Введение. Предмет "Теория вычислительных процессов"
Лекция №1. Введение. Предмет "Теория вычислительных процессов"Лекция №1. Введение. Предмет "Теория вычислительных процессов"
Лекция №1. Введение. Предмет "Теория вычислительных процессов"Nikolay Grebenshikov
 
Квадратичная математика
Квадратичная математикаКвадратичная математика
Квадратичная математика
DEVTYPE
 
Линейная алгебра ll. Разбор задач второго модуля
Линейная алгебра ll. Разбор задач второго модуляЛинейная алгебра ll. Разбор задач второго модуля
Линейная алгебра ll. Разбор задач второго модуля
DEVTYPE
 
0. основы r
0. основы r0. основы r
0. основы rmsuteam
 
Скорость роста функций
Скорость роста функцийСкорость роста функций
Скорость роста функций
DEVTYPE
 
Алгоритмы и структуры данных осень 2013 лекция 8
Алгоритмы и структуры данных осень 2013 лекция 8Алгоритмы и структуры данных осень 2013 лекция 8
Алгоритмы и структуры данных осень 2013 лекция 8Technopark
 
Линейная алгебра - I. Разбор задач
Линейная алгебра - I. Разбор задачЛинейная алгебра - I. Разбор задач
Линейная алгебра - I. Разбор задач
DEVTYPE
 
Математическая индукция
Математическая индукцияМатематическая индукция
Математическая индукция
DEVTYPE
 
Тригонометрические функции числового аргумента
Тригонометрические функции числового аргументаТригонометрические функции числового аргумента
Тригонометрические функции числового аргументаFormula.co.ua
 
Основы комбинаторики - I
Основы комбинаторики - IОсновы комбинаторики - I
Основы комбинаторики - I
DEVTYPE
 
Основы теории графов - I
Основы теории графов - IОсновы теории графов - I
Основы теории графов - I
DEVTYPE
 
Use of eliptic curves for generating digital signature
Use of eliptic curves for generating digital signatureUse of eliptic curves for generating digital signature
Use of eliptic curves for generating digital signature
Andrei Poliakov
 
07 string
07 string07 string
07 string
pogromskaya
 
Разбор задач модуля Комбинаторика l
Разбор задач модуля Комбинаторика lРазбор задач модуля Комбинаторика l
Разбор задач модуля Комбинаторика l
DEVTYPE
 
Функции в языках программирования
Функции в языках программированияФункции в языках программирования
Функции в языках программированияkvlar
 
Идиоматичный функциональный код
Идиоматичный функциональный кодИдиоматичный функциональный код
Идиоматичный функциональный код
Alexander Granin
 
Презентация на тему: Методические особенности подготовки учащихся к выполнени...
Презентация на тему: Методические особенности подготовки учащихся к выполнени...Презентация на тему: Методические особенности подготовки учащихся к выполнени...
Презентация на тему: Методические особенности подготовки учащихся к выполнени...2berkas
 

What's hot (20)

Лекция №1. Введение. Предмет "Теория вычислительных процессов"
Лекция №1. Введение. Предмет "Теория вычислительных процессов"Лекция №1. Введение. Предмет "Теория вычислительных процессов"
Лекция №1. Введение. Предмет "Теория вычислительных процессов"
 
Квадратичная математика
Квадратичная математикаКвадратичная математика
Квадратичная математика
 
Линейная алгебра ll. Разбор задач второго модуля
Линейная алгебра ll. Разбор задач второго модуляЛинейная алгебра ll. Разбор задач второго модуля
Линейная алгебра ll. Разбор задач второго модуля
 
0. основы r
0. основы r0. основы r
0. основы r
 
Скорость роста функций
Скорость роста функцийСкорость роста функций
Скорость роста функций
 
Алгоритмы и структуры данных осень 2013 лекция 8
Алгоритмы и структуры данных осень 2013 лекция 8Алгоритмы и структуры данных осень 2013 лекция 8
Алгоритмы и структуры данных осень 2013 лекция 8
 
Линейная алгебра - I. Разбор задач
Линейная алгебра - I. Разбор задачЛинейная алгебра - I. Разбор задач
Линейная алгебра - I. Разбор задач
 
Математическая индукция
Математическая индукцияМатематическая индукция
Математическая индукция
 
Тригонометрические функции числового аргумента
Тригонометрические функции числового аргументаТригонометрические функции числового аргумента
Тригонометрические функции числового аргумента
 
Основы комбинаторики - I
Основы комбинаторики - IОсновы комбинаторики - I
Основы комбинаторики - I
 
Основы теории графов - I
Основы теории графов - IОсновы теории графов - I
Основы теории графов - I
 
Use of eliptic curves for generating digital signature
Use of eliptic curves for generating digital signatureUse of eliptic curves for generating digital signature
Use of eliptic curves for generating digital signature
 
07 string
07 string07 string
07 string
 
Разбор задач модуля Комбинаторика l
Разбор задач модуля Комбинаторика lРазбор задач модуля Комбинаторика l
Разбор задач модуля Комбинаторика l
 
Функции в языках программирования
Функции в языках программированияФункции в языках программирования
Функции в языках программирования
 
Идиоматичный функциональный код
Идиоматичный функциональный кодИдиоматичный функциональный код
Идиоматичный функциональный код
 
Презентация на тему: Методические особенности подготовки учащихся к выполнени...
Презентация на тему: Методические особенности подготовки учащихся к выполнени...Презентация на тему: Методические особенности подготовки учащихся к выполнени...
Презентация на тему: Методические особенности подготовки учащихся к выполнени...
 
Soboland Sat
Soboland SatSoboland Sat
Soboland Sat
 
Алгоритмы сортировки
Алгоритмы сортировкиАлгоритмы сортировки
Алгоритмы сортировки
 
ООП_лекция_11
ООП_лекция_11ООП_лекция_11
ООП_лекция_11
 

Similar to массивы.строки

строковые величины
строковые величиныстроковые величины
строковые величиныmetodkopilka
 
Cpp/cli particularities
Cpp/cli particularitiesCpp/cli particularities
Cpp/cli particularitiesmcroitor
 
Дополнительные возможности Javascript
Дополнительные возможности JavascriptДополнительные возможности Javascript
Дополнительные возможности Javascript
Denis Latushkin
 
Процедуры и функции для работы со строками
Процедуры и функции для работы со строкамиПроцедуры и функции для работы со строками
Процедуры и функции для работы со строкамиDaria Romanova
 
04 array
04 array04 array
04 array
pogromskaya
 
String
StringString
Classes: Number, String, StringBuffer, StringBuilder
Classes: Number, String, StringBuffer, StringBuilderClasses: Number, String, StringBuffer, StringBuilder
Classes: Number, String, StringBuffer, StringBuilder
Alexey Bovanenko
 
08 set
08 set08 set
08 set
pogromskaya
 
Основы NumPy
Основы NumPyОсновы NumPy
Основы языка Питон: типы данных, операторы
Основы языка Питон: типы данных, операторыОсновы языка Питон: типы данных, операторы
Основы языка Питон: типы данных, операторы
Theoretical mechanics department
 
9. java lecture library
9. java lecture library9. java lecture library
9. java lecture libraryMERA_school
 
291 цикл уроков на тему массивы
291 цикл уроков на тему  массивы291 цикл уроков на тему  массивы
291 цикл уроков на тему массивыsany0507
 

Similar to массивы.строки (20)

строковые величины
строковые величиныстроковые величины
строковые величины
 
Cpp/cli particularities
Cpp/cli particularitiesCpp/cli particularities
Cpp/cli particularities
 
Дополнительные возможности Javascript
Дополнительные возможности JavascriptДополнительные возможности Javascript
Дополнительные возможности Javascript
 
6.0a
6.0a6.0a
6.0a
 
одномерные массивы
одномерные массивыодномерные массивы
одномерные массивы
 
Процедуры и функции для работы со строками
Процедуры и функции для работы со строкамиПроцедуры и функции для работы со строками
Процедуры и функции для работы со строками
 
04 array
04 array04 array
04 array
 
лекция 6
лекция 6лекция 6
лекция 6
 
String
StringString
String
 
Classes: Number, String, StringBuffer, StringBuilder
Classes: Number, String, StringBuffer, StringBuilderClasses: Number, String, StringBuffer, StringBuilder
Classes: Number, String, StringBuffer, StringBuilder
 
лек7
лек7лек7
лек7
 
лек7
лек7лек7
лек7
 
лек8
лек8лек8
лек8
 
08 set
08 set08 set
08 set
 
лекция 6
лекция 6лекция 6
лекция 6
 
Основы NumPy
Основы NumPyОсновы NumPy
Основы NumPy
 
Основы языка Питон: типы данных, операторы
Основы языка Питон: типы данных, операторыОсновы языка Питон: типы данных, операторы
Основы языка Питон: типы данных, операторы
 
9. java lecture library
9. java lecture library9. java lecture library
9. java lecture library
 
291 цикл уроков на тему массивы
291 цикл уроков на тему  массивы291 цикл уроков на тему  массивы
291 цикл уроков на тему массивы
 
9
99
9
 

More from dasha2012

таблицы остинности.законы логики
таблицы остинности.законы логикитаблицы остинности.законы логики
таблицы остинности.законы логикиdasha2012
 
основные понятия
основные понятияосновные понятия
основные понятияdasha2012
 
основные логические операции
основные логические операцииосновные логические операции
основные логические операцииdasha2012
 
егэ часть а
егэ часть аегэ часть а
егэ часть аdasha2012
 
егэ часть в
егэ часть вегэ часть в
егэ часть вdasha2012
 
единицы измерения
единицы измеренияединицы измерения
единицы измеренияdasha2012
 
тема 2.операторы.линейный алгоритм
тема 2.операторы.линейный алгоритмтема 2.операторы.линейный алгоритм
тема 2.операторы.линейный алгоритмdasha2012
 
как измерить информацию
как измерить информациюкак измерить информацию
как измерить информациюdasha2012
 
ветвление.условный оператор.циклы
ветвление.условный оператор.циклыветвление.условный оператор.циклы
ветвление.условный оператор.циклыdasha2012
 
тема 1.введение в pascal
тема 1.введение в pascalтема 1.введение в pascal
тема 1.введение в pascaldasha2012
 

More from dasha2012 (10)

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

массивы.строки

  • 3. Массивы Массив – это группа однотипных элементов, имеющих общее имя и расположенных в памяти рядом. Особенности: • все элементы имеют один тип • весь массив имеет одно имя • все элементы расположены в памяти рядом Примеры: • список учеников в классе • квартиры в доме • школы в городе • данные о температуре воздуха за год 3
  • 4. Массивы НОМЕР элемента массива (ИНДЕКС) A массив 1 2 33 4 5 5 10 15 15 20 25 A[1] A[2] ЗНАЧЕНИЕ элемента A[3] A[4] A[5] массива НОМЕР (ИНДЕКС) элемента массива: 2 A[2] ЗНАЧЕНИЕ элемента массива: 10 4
  • 5. Объявление массивов Зачем объявлять? • определить имя массива • определить тип массива • определить число элементов • выделить место в памяти Массив целых чисел: начальный конечный тип имя индекс индекс элементов var A : array[ 1 .. 5 ] of integer ; Размер через константу: const N=5; var A: array[1.. N ] of integer; 5
  • 6. Объявление массивов Массивы других типов: var X, Y: array [1..10] of real; C: array [1..20] of char; Другой диапазон индексов: var Q: array [0..9] of real; C: array [-5..13] of char; Индексы других типов: var A: array ['A'..'Z'] of real; B: array [False..True] of integer; ... A['C'] := 3.14259*A['B']; B[False] := B[False] + 1; 6
  • 7. A = (а1 а2 … аn) Имя Элементы массива массива Примеры Массив оценок по предмету, массив фамилий, алфавит
  • 8. b11 b12 … b1m B = b21 b22 … b2m Имя … … … … Примеры массива Ведомость оценок, меню в столовой, Элементы b массива n1 bn2 … bnm
  • 9. Нельзя вводить (выводить) массив как единое целое. Ввод-вывод значений элементов массива производится поэлементно в цикле.
  • 10. Пример const n = 15; var m : array[1..n] of integer; i : byte;
  • 11. randomize; {обновление последовательности случайных чисел} for i :=1 to n do m[i] :=random(50);{ ввод целыми случайными числами в [0;50) } Для заполнения целыми случайными числами в диапазоне [a ; b] используется выражение: random(b-a+1) + a .
  • 12. – таблицы (матрицы). Каждый элемент матрицы определяется номерами строки и столбца, на пересечении которых он стоит. mas [i, j]– элемент двумерного массива. Имя N N массива строки столбца
  • 13. Пример const n = 3; m=5; var mas : array[1..n,1..m] of integer; i , j : byte;
  • 14. – это таблица, у которой число строк равно числу столбцов, т.е. n = m.
  • 15. Главная i+j < n+1 Побочная диагональ b11 b12 … b1n диагональ i = j b21 b22 … b2n i+j = n+1 … … … … i>j b bn2 … bnn j>i n1 i+j > n+1
  • 17. Строка в Паскале – упорядоченная последовательность символов. Количество символов в строке называется ее длиной. Длина строки в Паскале может лежать в диапазоне от 0 до 255. Каждый символ строковой величины занимает 1 байт памяти и имеет числовой код в соответствии с таблицей кодов ASCII.
  • 18. 32 пробел 48 0 64 @ 80 P 96 ` 112 p 33 ! 49 1 65 A 81 Q 97 a 113 q 34 " 50 2 66 B 82 R 98 b 114 r 35 # 51 3 67 C 83 S 99 c 115 s 36 $ 52 4 68 D 84 T 100 d 116 t 37 % 53 5 69 E 85 U 101 e 117 u 38 & 54 6 70 F 86 V 102 f 118 v 39 ‘ 55 7 71 G 87 W 103 g 119 w 40 ( 56 8 72 H 88 X 104 h 120 x 41 ) 57 9 73 I 89 Y 105 i 121 y 42 * 58 : 74 J 90 Z 106 j 122 z 43 + 59 ; 75 K 91 [ 107 k 123 { 44 , 60 < 76 L 92 108 l 124 | 45 - 61 = 77 M 93 ] 109 m 125 } 46 . 62 > 78 N 94 ^ 110 n 126 ~ 47 / 63 ? 79 O 95 _ 111 o 127
  • 19. В Паскале строки это упакованные массивы символов; следовательно, они имеют фиксированную длину i 0 1 2 3 4 5 6 7 8 9 10 . . . 255 St n М А М А М Ы Л А n -длинна стоки для работы со строками используется встроенный тип string, поддерживающий операции конкатенации (+) и сравнения (> < = <> >= <=). Строковая константа Паскаля – последовательность символов, заключенная в апострофы. Например: ‘строковая константа’, ‘243’. Два следующих друг за другом апострофа (‘’) обозначают пустую строку, т.е. строку с нулевой длиной.
  • 20. Для описания строковых переменных в Паскале существует предопределенный тип string. Var <имя_переменной>: string*<максимальная длина строки>+ Например: Var s1: string[10]; s2: string[20]; smax: string; строковая переменная s1 может содержать не более 10 символов, переменная s2 – не более 20 символов. Если же при описании строки ее максимальная длина не указывается, то по умолчанию принимается максимально допустимая длина, равная 255 символам (переменная smax)..
  • 21. i 0 1 2 3 4 5 6 7 8 9 10 . . . 255 St n М А М А М Ы Л А Символы в строке упорядочены, каждый из них имеет порядковый номер, начиная с первого. Имеется возможность обратиться к любому элементу строки, указав его номер. Например, St[7+ позволяет обратиться к седьмому символу в строке St при этом мы можем поменять это значение, выполнив оператор присваивания St[7+:= ‘е’ Строка принимает вид ‘мама мела’ можем вывести на экран это значение Write (St); присвоить его другой переменной Q:=St; Ввести с клавиатуры или задать в программе Read (st); Tmp:=‘Informatica’;
  • 22. Функция Length (s) возвращает длину (тип integer) строки символов s. Функция Copy (s,p,n) возвращает подстроку длины n из строки символов s, начиная с символа, находящегося на позиции с номером р. Функция Concat (s1, s2, . . ., sn) возвращает строку символов, представляющую собой сцепление строк s1+s2. . . +sn. Функция Pos (sub, s) возвращает 0, если строка символов sub не является подстрокой строки s, или возвращает номер (тип integer) позиции, с которой начинается первое вхождение подстроки sub в строку s. Процедура Delete (s,p,n) удаляет л символов из строки символов s, начиная с символа, находящегося на позиции с номером р. Процедура Insert (sub, s, р) вставляет подстроку sub в строку символов S, начиная с символа, находящегося на позиции с номером р. Процедура Str (х, s) преобразует число х (целого или действительного типа) в строку символов, которая присваивается строке s. Процедура Val (s, х, cod) преобразует строку символов s в число, которое присваивается целой или действительной переменной х. Значение параметра cod равно 0, если преобразование выполнено успешно, иначе - номеру позиции, где обнаружен ошибочный символ. Строка символов s может содержать и ведущие пробелы.
  • 23. Значение параметра s Результат функции или окончательное значение Выражение (или переменной х) параметров (в случае процедуры) 'Informatica' Length(s) 11 'A sosit iarna!' Length(s) 14 'Informatica' Copy(s,3,5) 'forma' 'Tractor' Copy(s,3,5) 'actor' 'Tractor' Concat(s,'ist') 'Tractorist' 'Informatica' Pos('forma',s) 3 'Informatica' Pos('Forma',s) 0 'Tractor' Delete(s,1,2) s <— 'actor' 'Informatica' Delete(s,3,8) s <—'Ina' 'bine' Insert('ul',s,2) s<— 'buline' x<-28 Str(x,s) s<—'28' s<— '341' Val(s,x,cod) x<-341 cod<— 0 s<— '3,14' x<—10 Val(s,x,cod) x<—10 cod<—2
  • 24. Program Str1; Var S : String; n:integer; Begin Writeln('Введите последовательность символов'); Readln(S); n:=Length(S); Writeln('Вы ввели строку из ',n, ' символов'); End.