Сложные типы данных языка Паскаль презентация

Содержание


Презентации» Информатика» Сложные типы данных языка Паскаль
Сложные типы данных языка Паскаль (Pascal)
 Парамонов А.И.Производные (структурные) типы
 В Паскале производные типы данных делятся на:
 –Структурные типы данныхМАССИВЫ
 Массив – это упорядоченная совокупность фиксированного количества (конечного числа) компонентовМассивы 
 Количество индексных выражений определяется количеством измерений массива.
 Количество элементовОписание массива
 Форма объявления массива:
 ТYРЕ Т = ARRAY [ T1Пример: описание массива
 TYPE 
 	ТА = ARRAY [1 .. 10]Пример: описание массива
 Type
 	Diapazon = 1 .. 20;
 	Vector =Пример: Доступ к элементам массива
 Примеры обращений к элементам массивов, объявленныхПример: Объявление многомерного массива
 1-й способ
 
 Type
 	arrM2 = ArrayПример: Объявление многомерного массива
 ВАРИАНТ 1:
 Type
 	Den = 1 ..Массивы в Оперативной Памяти 
 Размерность (мерность) массива синтаксисом языка ПаскальДиректива компилятора Delphi
 {SREALCOMPATIBILITY ON}
 Устанавливает размер типа данных Real вМассивы в оперативной памяти
 Компилятор размещает массив (в том числе иРабота с массивами
 НЕЛЬЗЯ в Паскале использовать массивы с переменными границами.Работа с массивами
 Над элементами массивов допускаются операции те же, чтоПример работы с массивом
 Описание двумерного массива.
 Type
 	Mas = ArrayПример работы с массивом
 Ввод исходных значений в массив.
 
 	ForПрисвоение значения одного массива другому:
 For I := 1 To 10Типизованные константы типа массив
 Для инициализации массива в языке Паскаль могутПример: Работа с константами-массивами
 Type
 	Mas = Array [1..10] Of Integer;
Пример: Работа с константами-массивами
 { Инициализация массива с помощью структурной константы-массиваВ задачах по программированию очень часто встречается необходимость заполнить массив даннымиПрограмма на языке Паскаль: 
 Const 	N = 10;   
 TypeСамостоятельная работа по теме МАССИВЫ
 ЗАДАЧА:
 Задан массив случайных целых чисел,Program sampleTask; {$APPTYPE CONSOLE} Uses SysUtils;
 Program sampleTask; {$APPTYPE CONSOLE} UsesСамостоятельная работа по теме МАССИВЫ
 ЗАДАЧА:
 Имеются два упорядоченных по возрастаниюАлгоритм и особенности решения задачи
 Определяем и задаем длину третьего массива.
Программа на языке Паскаль: 
 Const N = 7; 
 Var 	arr1,строки
 Парамонов А.И.Структурные типы данныхСтроковые данные
 Для обработки группы символов в среде Pascal используется структурированныйСтроковые данные
 Строка хранится в поле основной памяти, состоящем из смежныхСТРОКОВЫЕ КОНСТАНТЫ – это последовательность любых символов, допускаемых для представления вПРАВИЛА записи строковых констант в программе:
 1)    Если в строке необходимоПРАВИЛА записи строковых констант в программе:
 3)    Допускаются пустые символьные константы,Например
 ‘TURBO’#13#10’TEKST’
  Здесь #13#10 – это управляющие символы,  осуществляющие переходСтроковый тип данных
 Строка – это последовательность символов. 
 Ее можноСтроковые переменные
 В языке Паскаль существует два способа задания строковых переменных:
1-ый способ задания строковых переменных
 Array [1 .. N] Of Char
Пример. Работа со строковыми переменными постоянной длины.
 Type
 	{Одномерный массив символовПример. Работа со строковыми переменными постоянной длины.
 Begin
 	------------------------------------
 	{K этомуПример. Особенности строковых переменных в виде массива
 Строковым переменным могут бытьПример. Особенности строковых переменных в виде массива
 Над значениями строковых 2-ой способ задания строковых переменных
 Определение типа
 Var S : String[n];
2-ой способ задания строковых переменных
 С помощью типа String определяются строкиСвойства строк
 Переменной типа String может быть присвоено значение другой строкиСвойства строк
 Доступ к отдельным символам строки типа String: возможен путемРабота со строками в Delphi
 Delphi поддерживает старый строковый тип языка Pascal,Работа со строками в Delphi
 Значение зарезервированного слова string можно изменятьРабота со строками в Delphi
 При присваивании строки типа string другойРабота со строками в Delphi
 Delphi создает реальную копию строки только приОперации над строками
 Строковым выражением называется выражение, результатом вычисления которого являетсяСлияние строк - конкатенация
 Операция сцепления обозначается символом «+». 
 ПриСлияние строк - конкатенация
 Пример:
 Var 
 	S1,S2,S3: string;
 		...
 	S1:=Сравнение строк
 Сравнение производится в соответствии с упорядочением символов в кодеСравнение строк
 Большей считается строка, у которой первый несовпадающий символ имеетПримеры сравнения строкВстроенные функции, определенные над данными типа String
 Var S1,S2,S3: string;
 K:byte;
Встроенные функции, определенные над данными типа String
 Var S1,S2,S3: string;
 K:byte;
Встроенные функции, определенные над данными типа String
 Var S1,STR1: string;
 K:byte;
Процедуры обработки строк
 Var S1,S2,S3:string;
 K:byte;
 ...
 S1:=’12345’;
 S2:=’67890’;Процедуры обработки строк
 Var S1,S2,S3 : string;
   K, CodСамостоятельная работа по теме СТРОКИ
 Задача:
 	Удалить половину строки, введенной сСамостоятельная работа по теме СТРОКИ
 Задача:
 	В предложении произвольной длины (строке,Самостоятельная работа по теме СТРОКИ
 Задача:
 	Посчитать сумму всех целых чисел,Самостоятельная работа по теме СТРОКИ
 Program _sample3;
 Var s : string;



Слайды и текст этой презентации
Слайд 1
Описание слайда:
Сложные типы данных языка Паскаль (Pascal) Парамонов А.И.


Слайд 2
Описание слайда:
Производные (структурные) типы В Паскале производные типы данных делятся на: – стандартные (предопределенные) например, типы String, Text и др. – описанные например, массивы, записи и др. Значения производных типов в общем случае имеют иерархическую структуру, на самом нижнем уровне которой присутствуют отдельные данные скалярного типа.

Слайд 3
Описание слайда:
Структурные типы данных

Слайд 4
Описание слайда:
МАССИВЫ Массив – это упорядоченная совокупность фиксированного количества (конечного числа) компонентов (элементов) одного и того же типа, имеющих общее имя. Общее имя называется полной переменной. Тип элементов массива называется базовым типом. Он может быть любым: простым или сложным. Каждый элемент массива имеет индекс, который определяет его местоположение в ОП. Элементы массива упорядочены по индексам.

Слайд 5
Описание слайда:
Массивы Количество индексных выражений определяется количеством измерений массива. Количество элементов массива, их упорядоченность и тип должны задаваться явно при описании массива до начала выполнения программы и не могут изменяться в процессе выполнения программы.

Слайд 6
Описание слайда:
Описание массива Форма объявления массива: ТYРЕ Т = ARRAY [ T1 ] OF T2; Массивы можно определить в разделах Type или Var.

Слайд 7
Описание слайда:
Пример: описание массива TYPE ТА = ARRAY [1 .. 10] OF INTEGER; {Тип массива А } MN = SET OF 2 ..100; {Тип множества } VAR { Массивы данных : } А : ТА; {А - целого типа } В : ARRAY [1 .. 20] OF REAL; {В - вещественного} С : ARRAY [1..10,1..20] OF REAL; {С - двумерный, веществ.} D : ARRAY [-10 .. 10] OF BOOLEAN; {D - логического } E : ARRAY [0 .. 30] OF CHAR; {E - символьного } F : ARRAY [1 .. 15] OF STRING[30]; {F - строковых данных } G : ARRAY [1 .. 20] OF MN; {G - множеств } Тип индексов – любой простой порядковый (ординальный) тип данных, кроме стандартного типа Longint и его диапазона.

Слайд 8
Описание слайда:
Пример: описание массива Type Diapazon = 1 .. 20; Vector = Array [Diapazon] Of Real; {Явное задание типа. Одномерный массив из 20 элементов вещественного типа} Matritca = Array [–5 .. 40, Diapazon] Of 0 .. 100; {Явное задание типа. Двумерный массив из 46 строк и 20 столбцов, содержащий элементы ограниченного типа} Var I: Diapazon; A, B: Vector; E, F: Matritca; C, D: Array [1 .. 20] Of Char; {Неявное задание типа. Одномерный массив из 20 элементов типа Char} Mes: Array [1 .. 4] Of (Pn, Vt, Sr, Ch, Pt, Sb, Vs); {Неявное задание типа. Одномерный массив из 4 элементов перечислимого типа}

Слайд 9
Описание слайда:
Пример: Доступ к элементам массива Примеры обращений к элементам массивов, объявленных в примере:  A [1] – 1-ый элемент массива А. E [–1, 18] – обращение к элементу с номером строки «–1» и номером столбца «18» матрицы Е. C [2 * I – 5] – использование индексного выражения. Полная форма задания многомерных массивов образуется на основании задания массивов меньшей размерности. Например, двумерный массив – матрица из N строк и M столбцов – может быть представлен как одномерный массив, состоящий из N элементов, а каждый элемент этого массива в свою очередь является одномерным массивом, состоящим из M элементов.

Слайд 10
Описание слайда:
Пример: Объявление многомерного массива 1-й способ Type arrM2 = Array [1 .. 10] Of Array [1 .. 20] Of Integer; Var A: arrM2; 2-й способ   Type arrM1 = Array [1 .. 20] Of Integer; arrM2 = Array [1 .. 10] Of arrM1; Var A: arrM2;

Слайд 11
Описание слайда:
Пример: Объявление многомерного массива ВАРИАНТ 1: Type Den = 1 .. 31; Mes = (Yan, Feb, Mar, Apr, May, Iyn, Iyl, Avg, Sen, Okt, Nob, Dec); God = 1900 .. 2000; Data = Array [Den, Mes, God] Of (Pn, Vt, Sr, Ch, Pt, Sb, Vs); ВАРИАНТ 2: Type Data = Array [1 .. 31, (Yan, Feb, Mar, Apr, May, Iyn, Iyl, Avg, Sen, Okt, Nob, Dec), 1900 .. 2000] Of (Pn, Vt, Sr, Ch, Pt, Sb, Vs); ВАРИАНТ 3: ?

Слайд 12
Описание слайда:
Массивы в Оперативной Памяти Размерность (мерность) массива синтаксисом языка Паскаль не ограничена. Ограничение только в объеме памяти. Максимально допустимый размер массива равен 65 520 байт (размер сегмента данных).

Слайд 13
Описание слайда:
Директива компилятора Delphi {SREALCOMPATIBILITY ON} Устанавливает размер типа данных Real в 6 байт.

Слайд 14
Описание слайда:
Массивы в оперативной памяти Компилятор размещает массив (в том числе и многомерный) в сплошной области памяти «линейно» Например: Пусть есть массив А – двухмерный целых чисел (типа Integer).

Слайд 15
Описание слайда:
Работа с массивами НЕЛЬЗЯ в Паскале использовать массивы с переменными границами. ЗАПРЕЩЕНЫ в Паскале операции над массивами. Нельзя, также и сравнивать массивы. ЕСЛИ массивы однотипные, то можно скопировать все элементы одного массива в другой с помощью одного оператора присваивания.

Слайд 16
Описание слайда:
Работа с массивами Над элементами массивов допускаются операции те же, что и над простыми переменными его базового типа. ВВОД-ВЫВОД элементов массивов можно производить только поэлементно, т. е. с помощью циклов. Инициализация массива – это присвоение всем элементам массива исходного значения.

Слайд 17
Описание слайда:
Пример работы с массивом Описание двумерного массива. Type Mas = Array [1 .. 10, 1 .. 20] Of Integer; Var J, I : Integer; Mas1, Mas2 : Mas; ---------------------------------- Инициализация двумерного массива. { установка начального значения, равного 0 } For I := 1 To 10 Do For J := 1 To 20 Do Mas1[I, J] := 0;

Слайд 18
Описание слайда:
Пример работы с массивом Ввод исходных значений в массив. For I := 1 To 10 Do For J := 1 To 20 Do Read (Mas1[I, J]); ---------------------------------- Вывод значений элементов массива. For I := 1 To 10 Do For J := 1 To 20 Do Writeln (Mas2[I, J]);

Слайд 19
Описание слайда:
Присвоение значения одного массива другому: For I := 1 To 10 Do For J := 1 To 20 Do Mas2[I, J] := Mas1[I, J]; ---------------------------------- For I := 1 To 10 Do Mas2[I] := Mas1[I]; ---------------------------------- Mas2 := Mas1; ---------------------------------- (!) к этому моменту массив Mas1 уже должен быть определен, Т.Е. всем его элементам должны быть присвоены значения.

Слайд 20
Описание слайда:
Типизованные константы типа массив Для инициализации массива в языке Паскаль могут быть использованы типизованные константы типа массив. Типизованные константы-массив объявляются в разделе констант. С помощью структурной константы-массив может производиться инициализация массива.

Слайд 21
Описание слайда:
Пример: Работа с константами-массивами Type Mas = Array [1..10] Of Integer; Mas3 = Array [1..2, 1..2, 1..2] Of Integer; Const { Для присваивания типа типизованной константе-массив используется имя типа } M: Mas = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10); M3: Mas3 = (((0,1), (2,3)), ((4,5), (6,7)));

Слайд 22
Описание слайда:
Пример: Работа с константами-массивами { Инициализация массива с помощью структурной константы-массива } ------------------ Var M1: Mas; MM: Mas3; ----------------- Begin M1 := M; MM := M3; ... End.

Слайд 23
Описание слайда:
В задачах по программированию очень часто встречается необходимость заполнить массив данными и вывести их потом на экран. Методов этого не так уж много и особым разнообразием они не отличаются. Поэтому хорошо бы их оформить в виде процедур и использовать по мере необходимости

Слайд 24
Описание слайда:
Программа на языке Паскаль:  Const N = 10;   Type myArr = array[1..N] of integer;   Var a, b: myArr; Procedure arr_rand (k: Integer; var arr: myArr ); Var i: byte; Begin writeln ('Заполнение массива случайными числами.'); randomize; for i := 1 to k do arr[i] := random (100); End; Procedure arr_user (k: Integer; var arr: myArr ); Var i: byte; Begin write ('Введите ', k, ' чисел через пробел: '); for i := 1 to k do read(arr[i]); End;

Слайд 25
Описание слайда:
Самостоятельная работа по теме МАССИВЫ ЗАДАЧА: Задан массив случайных целых чисел, величина которых, по модулю, не превышает 300 (-300 ... 300). Число элементов массива равно 10. Найти максимальное и минимальное числа в массиве и вывести на экран.

Слайд 26
Описание слайда:
Program sampleTask; {$APPTYPE CONSOLE} Uses SysUtils; Program sampleTask; {$APPTYPE CONSOLE} Uses SysUtils; Var   ar: array [1..10] of integer; {Объявляем массив} min, max, c, x: integer;  Begin   Randomize; {включаем генератор случайных чисел}  For z := 1 to 10 Do begin     x:= random(600);      If (x > 300) Then x:= (x * -1) + 300; ar[z]:= x; {Заполняем значениями массив}     writeln(z, '= ', ar[z]);   end; min:= ar[1]; max:= ar[1]; For z:= 2 to 10 Do begin      if min > ar[z] then min:= ar[z];      if max < ar[z] then max:= ar[z];    end; Writeln('Minimum = ', min);   Writeln('Maximum = ', max); End.

Слайд 27
Описание слайда:

Слайд 28
Описание слайда:
Самостоятельная работа по теме МАССИВЫ ЗАДАЧА: Имеются два упорядоченных по возрастанию массива (т.е. предыдущий элемент меньше последующего). Требуется получить третий упорядоченный по возрастанию массив, путем слияния первых двух. Длина каждого массива не превышает 7. Например: Если 1-й массив: 4, 8, 12, 14, 23, 85 2-й массив: 2, 4, 8, 9, 12, 16 тогда 3-й массив будет: 2, 4, 4, 8, 8, 9, 12, 12, 14, 16, 23, 85

Слайд 29
Описание слайда:
Алгоритм и особенности решения задачи Определяем и задаем длину третьего массива. Она равна сумме двух первых. Далее определимся, как будут формироваться первые два массива. Использование Random нам не подходит, т.к. массивы должны быть упорядоченными. Будем вводить данные с клавиатуры (пример есть). Элементы под текущими для каждого массива индексами сравниваются, и меньший по значению записывается в третий массив. При этом индекс массива, из которого элемент был скопирован в третий массив, должен увеличиться. Может возникнуть ситуация, когда один массив закончился, а второй еще нет. Для этого в программе должен быть организован цикл записи возможного окончания (копирования остатка) как первого, так и второго массива.

Слайд 30
Описание слайда:
Программа на языке Паскаль:  Const N = 7; Var arr1, arr2 : array [1..N] of Integer; arr3 : array [1..N+N] of Integer; i, j, k : byte; Begin … {ввод массивов} i:= 1; j:= 1; k:= 1; while (i <= N) and (j <= N) do begin if arr1[i] < arr2[j] then begin arr3[k]:=arr1[i]; i:=i+1 end else begin arr3[k]:=arr2[j]; j:=j+1 end; k := k + 1; end; while i<=N do begin arr3[k]:=arr1[i]; i:=i+1; k:=k+1 end;   while j<=N do begin arr3[k]:=arr2[j]; j:=j+1; k:=k+1 end; … {вывод массива} End.

Слайд 31
Описание слайда:
строки Парамонов А.И.

Слайд 32
Описание слайда:
Структурные типы данных

Слайд 33
Описание слайда:
Строковые данные Для обработки группы символов в среде Pascal используется структурированный тип String. Строковый тип данных используется для обработки текстов. СТРОКА – это последовательность любых символов кода обмена информацией (в компьютерах – это код ASCII). Строка наряду со знаками алфавита языка Паскаль может содержать русские буквы.

Слайд 34
Описание слайда:
Строковые данные Строка хранится в поле основной памяти, состоящем из смежных байтов. Каждый байт содержит один символ. Максимальная длина строки, допускаемая компилятором Pascal = 255 байт. СТРОКИ

Слайд 35
Описание слайда:
СТРОКОВЫЕ КОНСТАНТЫ – это последовательность любых символов, допускаемых для представления в компьютере, заключенная в апострофы.

Слайд 36
Описание слайда:
ПРАВИЛА записи строковых констант в программе: 1)    Если в строке необходимо поместить апостроф, то его повторяют дважды. При подсчете длины строки два рядом стоящих апострофа считаются одним символом. 2)    При подсчете длины строки учитываются пробелы.

Слайд 37
Описание слайда:
ПРАВИЛА записи строковых констант в программе: 3)    Допускаются пустые символьные константы, т.е. константы, не содержащие ни одного символа. ‘’ – это пустая строка нулевой длины. 4)    Паскаль разрешает вставлять в строку символов управляющие символы. Символ # с целой константой без знака (от 0 до 255) обозначает соответствующий этому значению символ в коде ASCII. Между # и целой константой не должно быть никаких разделителей. Если несколько управляющих символов входят в строковую константу, то между ними не должно быть разделителей.

Слайд 38
Описание слайда:
Например ‘TURBO’#13#10’TEKST’  Здесь #13#10 – это управляющие символы, осуществляющие переход к началу следующей строки.   #7#7’MAKE’#7#7  Здесь #7 – это управляющий символ «Звонок».   #13#10  Эта строковая константа состоит только из управляющих символов. Управляющие символы пишутся вне апострофа.

Слайд 39
Описание слайда:
Строковый тип данных Строка – это последовательность символов. Ее можно рассматривать как скалярное значение (простой тип) или как совокупность символов - массив (сложный тип) Соответственно, строка имеет свойства и простых (использовать только имя при вв/выв) и сложных типов (обращение к элементам).

Слайд 40
Описание слайда:
Строковые переменные В языке Паскаль существует два способа задания строковых переменных: Строковая переменная определяется как одномерный массив символов Array [1 .. N] Of Char Способом задания строковых переменных является использование типа String.

Слайд 41
Описание слайда:
1-ый способ задания строковых переменных Array [1 .. N] Of Char где N – длина строки (N ≥ 1), определяемая как целое число без знака. <Тип_индекса> может быть задан только с помощью типа диапазон При таком способе объявления строка обладает всеми свойствами массивов. Например: строковой переменной можно присвоить значение другой строковой переменной той же длины; возможно обращение к отдельным символам строковой переменной, используя индексные переменные.

Слайд 42
Описание слайда:
Пример. Работа со строковыми переменными постоянной длины. Type {Одномерный массив символов (строка)} Stroka = Array [1 .. 9] Of Char; {Двумерный массив символов (одномерный массив строк)} myPage = Array [1 .. 30] Of Stroka; Var Stroka1, Stroka2: Stroka; Page1, Page2: myPage; I, K, J: 1..30; X, Y: Boolean; Const Literal = ‘Программа’;

Слайд 43
Описание слайда:
Пример. Работа со строковыми переменными постоянной длины. Begin ------------------------------------ {K этому моменту Stroka2 должна быть определена:} Stroka1 := Stroka2; {Одной строке может быть присвоено значение другой строки той же длины. Здесь К-ой строке страницы присваивается значение строки:} Page1[K] := Stroka2; {Обращение к отдельным символам строковой переменной:} Stroka1[I] := ‘A’; Stroka1[J] := Stroka2[I]; {J-ому символу I-ой строки страницы присваивается значение К-ого символа строки:} Page1[I, J] := Stroka1[K];

Слайд 44
Описание слайда:
Пример. Особенности строковых переменных в виде массива Строковым переменным могут быть присвоены значения строковых констант (литералов), если длина строки равна длине литерала.   Stroka1 := Literal; Page1[I] := Literal; Stroka1 := ‘ПРОГРАММА’;

Слайд 45
Описание слайда:
Пример. Особенности строковых переменных в виде массива Над значениями строковых переменных одинаковой длины можно выполнять операции сравнения (=, <>, >, <, >=, <=) ..   X := Stroka1 = Stroka2; Y := Page1[I] >= Stroka2; Строковые переменные различной длины сравнивать нельзя.

Слайд 46
Описание слайда:
2-ой способ задания строковых переменных Определение типа Var S : String[n]; где n - длина строки (целое число без знака из интервала 1..255).

Слайд 47
Описание слайда:
2-ой способ задания строковых переменных С помощью типа String определяются строки переменной длины. Текущая длина строки может изменяться в процессе выполнения программы, но не должна превышать указанной в описании. Если длина строки не указана в описании, то по умолчанию она принимается равной 255 символов.

Слайд 48
Описание слайда:
Свойства строк Переменной типа String может быть присвоено значение другой строки любой длины. Текущая длина строки определяется длиной последнего занесенного в нее значения. Переменной типа String выделяется количество байтов памяти на единицу превышающее максимальную длину, указанную в определении типа. В левом байте (с номером 0) хранится текущая длина строки в двоичном коде.

Слайд 49
Описание слайда:
Свойства строк Доступ к отдельным символам строки типа String: возможен путем использования индексных переменных. Правила индексации аналогичны массиву символов с диапазоном индексов 1 .. <Текущая_длина_строки> Обращение к отдельным символам строки за пределами текущей длины строки, считанные символы будут случайными; Присваивание элементам строки, находящимся вне длины, не повлияет на значение строковой переменной.

Слайд 50
Описание слайда:
Работа со строками в Delphi Delphi поддерживает старый строковый тип языка Pascal, но этот строковый тип называется ShortString. Тип ShortString может содержать не более 255 символов. Первый символ (индекс которого равен 0) содержит длину строки – действительное количество символов в типе ShortString Для объявления строки с явно указанной длиной используется зарезервированное слово string, которое обычно служит для объявления переменных типа AnsiString (длинная строка). По умолчанию зарезервированное слово string может содержать до 2 Гбайт символов.

Слайд 51
Описание слайда:
Работа со строками в Delphi Значение зарезервированного слова string можно изменять директивами компилятора $Н и SLONGSTRINGS. Различие между ShortString и string состоит в том, что память для строк динамически резервируется в куче. Для выяснения количества байтов, занимаемых переменной, можно использовать функцию SizeOf(). Следует помнить: При каждом присваивании строки типа ShortString другой строке типа ShortString компилятор копирует все 256 байт.

Слайд 52
Описание слайда:
Работа со строками в Delphi При присваивании строки типа string другой строке типа string строка не копируется. После выполнения операции присваивания целевая строка только указывает на первый символ исходной строки, а значение «счетчика ссылок» исходной строки увеличивается на 1. т.е., в памяти хранится только одна копия строкового значения, но ее используют несколько переменных.

Слайд 53
Описание слайда:
Работа со строками в Delphi Delphi создает реальную копию строки только при изменении ее содержимого. При этом строка становится "автономной" и «счетчик ссылок» исходной строки уменьшается. Когда значение счетчика становится равным 0, Delphi автоматически освобождает память, занятую строкой. 

Слайд 54
Описание слайда:
Операции над строками Строковым выражением называется выражение, результатом вычисления которого является строковое значение. Строковые выражения состоят из строковых констант, строковых переменных, имен функций и знаков операций. Над данными типа String определены 2 операции: операция конкатенации (сцепления); операции сравнения (=, <>, >, <, >=, <=).

Слайд 55
Описание слайда:
Слияние строк - конкатенация Операция сцепления обозначается символом «+». При ее выполнении строки соединяются в одну результирующую строку. Длина результирующей строки не должна превышать 255 символов.

Слайд 56
Описание слайда:
Слияние строк - конкатенация Пример: Var S1,S2,S3: string; ... S1:= ’-PASCAL’; S2:= ’FREE’; S3:= S2+S1; Writeln(S3); { результат: FREE-PASCAL }

Слайд 57
Описание слайда:
Сравнение строк Сравнение производится в соответствии с упорядочением символов в коде ASCII. Сравниваются символы строк начиная с первого символа последовательно слева направо до первого несовпадающего символа.

Слайд 58
Описание слайда:
Сравнение строк Большей считается строка, у которой первый несовпадающий символ имеет больший код в таблице ASCII. Если строки имеют разную длину и их символы совпадают в общей части, то более короткая строка считается меньшей. Строки считаются равными, если они имеют одинаковую текущую длину и одни и те же символы.

Слайд 59
Описание слайда:
Примеры сравнения строк

Слайд 60
Описание слайда:
Встроенные функции, определенные над данными типа String Var S1,S2,S3: string; K:byte; ... S1:=’12345’; S2:=’67890’;

Слайд 61
Описание слайда:
Встроенные функции, определенные над данными типа String Var S1,S2,S3: string; K:byte; ... S1:=’12345’; S2:=’67890’;

Слайд 62
Описание слайда:
Встроенные функции, определенные над данными типа String Var S1,STR1: string; K:byte; ... S1:= ’12345’; STR1:= ’minsk, bsuir’;

Слайд 63
Описание слайда:
Процедуры обработки строк Var S1,S2,S3:string; K:byte; ... S1:=’12345’; S2:=’67890’;

Слайд 64
Описание слайда:
Процедуры обработки строк Var S1,S2,S3 : string; K, Cod : byte; X : real;

Слайд 65
Описание слайда:
Самостоятельная работа по теме СТРОКИ Задача: Удалить половину строки, введенной с клавиатуры. Program _sample; Var s: string; Begin Writeln(‘введите строку _’); Readln(s); Delete(s, length(s) div 2 + 1, length(s) div 2); Writeln(‘новая строка = ’, s); End.

Слайд 66
Описание слайда:
Самостоятельная работа по теме СТРОКИ Задача: В предложении произвольной длины (строке, введенной с клавиатуры) все цифры заменить на «*». Program _sample2; Var s: string; i: integer; Begin Writeln(‘введите строку _’); Readln(s); For i:= 1 to length(s) Do If (ord(s[i])>=ord(’0’)) and (ord(s[i])<=ord(’9’)) Then s[i]:= ’*’; Writeln(‘новая строка = ’, s); End.

Слайд 67
Описание слайда:
Самостоятельная работа по теме СТРОКИ Задача: Посчитать сумму всех целых чисел, встречающихся в строке, введенной с клавиатуры.

Слайд 68
Описание слайда:
Самостоятельная работа по теме СТРОКИ Program _sample3; Var s : string; sum, x, I : integer; Begin Writeln(‘введите строку _’); Readln(s); sum:=0; x:=0; For i:= 1 to length(s) Do If (ord(s[i]) >= 48) and (ord(s[i]) <= 57) Then x:= x*10 + (ord(s[i]) - 48) Else If (x>0) Then begin sum:=sum + x; x:=0; end; Writeln(‘сумма = ’, sum); End.

Слайд 69
Описание слайда:


Скачать презентацию на тему Сложные типы данных языка Паскаль можно ниже:

Похожие презентации