4.1 Материалы модуля
4.2 k-перестановки из n элементов
4.3 Урновые схемы и схемы раскладки по ящикам.
4.4 Подсчет отображений конечных множеств
4.5 Рекуррентные соотношения
4.1 Материалы модуля
4.2 k-перестановки из n элементов
4.3 Урновые схемы и схемы раскладки по ящикам.
4.4 Подсчет отображений конечных множеств
4.5 Рекуррентные соотношения
Для чтения не требуется почти никаких предварительных знаний, по крайней мере, ничего выходящего за рамки школьной программы. Исключение составляет только последний раздел.
Для чтения не требуется почти никаких предварительных знаний, по крайней мере, ничего выходящего за рамки школьной программы. Исключение составляет только последний раздел.
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
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.
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.