Скачать презентацию Массивы Понятие массив Массив представляет собой группу Скачать презентацию Массивы Понятие массив Массив представляет собой группу

11_ Array.ppt

  • Количество слайдов: 16

Массивы Массивы

Понятие массив Массив представляет собой группу пронумерованных элементов одного и того же типа, последовательно Понятие массив Массив представляет собой группу пронумерованных элементов одного и того же типа, последовательно расположенных в памяти. Номер элемента массива называется индексом. Можно работать либо с массивом, либо с его элементами

Типы для массивов Type Tarr 10 int=array[1. . 10] of integer; Tarr 20 real=array[0. Типы для массивов Type Tarr 10 int=array[1. . 10] of integer; Tarr 20 real=array[0. . 19] of real; Tstr 15=String[15]; Tarr 10 Str 15=array[1. . 10] of. Tstr 15; Массивы, тип которых определен таким способом, можно использовать как параметры в подпрограммах.

Типы индексов в объявлении типа массива • • • ограниченного типа [0. . 10], Типы индексов в объявлении типа массива • • • ограниченного типа [0. . 10], [‘a’. . ’z’] логического типа [Boolean], символьного типа [Char], целого типа [byte] других перечислимых типов, но объем данных в массиве не должен превышать 2 Гб. [integer]

Type Tarr. Int 10=array[1. . 10] of integer; Var A: Tarr. Int 10; begin Type Tarr. Int 10=array[1. . 10] of integer; Var A: Tarr. Int 10; begin A[1]: =2; A[2]: =5; … A[10]: =7;

Пример1 создания массива procedure fibo 10(var a: Tarr. Int 10); var i: integer; begin Пример1 создания массива procedure fibo 10(var a: Tarr. Int 10); var i: integer; begin a[1] : = 1; a[2] : = 1; for i: =3 to 10 do a[i] : = a[ i– 2 ] + a[ i– 1 ]; end; Здесь заполнены все 10 элементов массива

Пример2 создания массива procedure random. Array (var a: Tarr. Int 100; size, modul: integer); Пример2 создания массива procedure random. Array (var a: Tarr. Int 100; size, modul: integer); var i: integer; begin randomize; for i: =1 to size do a[i] : = random(modul); end; Здесь заполнено только size элементов массива из 100

Пример обработки массива //Вычисление суммы элементов function sum. Array(const a: TArray 100; size: integer): Пример обработки массива //Вычисление суммы элементов function sum. Array(const a: TArray 100; size: integer): integer; var i: integer; begin result: =0; for i: =1 to size do result: =result + a[ i ]; end;

Операции над массивами • • • ввод массива вычисление среднего значения элементов поиск максимального Операции над массивами • • • ввод массива вычисление среднего значения элементов поиск максимального и минимального элемента массива удаление элемента из массива циклический сдвиг элементов массива сортировка массива вставка элемента в упорядоченный массив поиск элемента в упорядоченном массиве объединение упорядоченных массивов

//Преобразование строки чисел в массив procedure get. Arr. From. Str ( var a: TArr //Преобразование строки чисел в массив procedure get. Arr. From. Str ( var a: TArr 100; const s: String; var size: integer); var word. End. Pos, blank. Pos, number : integer; w : String[20]; begin size : = 0; while length( Trim( s ) ) > 0 do begin s: =Trim(s); blank. Pos: =Pos(' ', s); if blank. Pos = 0 then word. End. Pos : = length(s) else word. End. Pos : = blank. Pos -1; w: = Copy (s, 1, word. End. Pos); Delete (s, 1, word. End. Pos); number: =str. To. Int(w); size : = size + 1; a[size] : = number; end

//Ввод массива из компонента Тmеmо procedure get. Arr. From. Memo(var a: TArray 100; var //Ввод массива из компонента Тmеmо procedure get. Arr. From. Memo(var a: TArray 100; var size: integer; mem: TMemo); var i, number : integer; begin size : = 0; for i : = 0 to mem. Lines. Count - 1 do begin number: =str. To. Int(Mem. Lines[i]); size : = size + 1; a[size] : = number; end;

//Преобразование массива в строку function Array. To. Str(const a: TArray 100; size: integer): string; //Преобразование массива в строку function Array. To. Str(const a: TArray 100; size: integer): string; var i: integer; begin result: =''; for i: =1 to size do result: =result + ' ‘ + int. To. Str ( a[ i ] ); end;

//Удаление элемента в массиве procedure del. Element( element: integer; var a: TArray 100; var //Удаление элемента в массиве procedure del. Element( element: integer; var a: TArray 100; var size: integer); var i, j: integer; begin i: =1; while i <= size do begin if a[i] = element then begin size: =size - 1; for j : = i to size do a[ j ]: =a[ j+1]; end else i: =i+1; end;

//Сдвиг массива влево procedure shift. Left(var a: TArray 100; size: integer); var tmp, i //Сдвиг массива влево procedure shift. Left(var a: TArray 100; size: integer); var tmp, i : integer; begin tmp: =a[1]; for i: =2 to size do a[ i-1]: =a[ i ]; a[size]: =tmp; end;

//Транспонирование массива procedure trans(var a: TArray 100; size: integer); var tmp, i: integer; begin //Транспонирование массива procedure trans(var a: TArray 100; size: integer); var tmp, i: integer; begin for i: =1 to size div 2 do begin tmp: =a[i]; a[i]: =a[size-i+1]; a[size-i+1]: =tmp; end;

//массив в качестве счетчика Procedure stat(n, size: integer; var a: TArray 100); var i, //массив в качестве счетчика Procedure stat(n, size: integer; var a: TArray 100); var i, r : integer; begin randomize; //Обнулили массив счетчиков for i: =1 to size do a[ i ] : = 0; //Тестируем случайные числа for i : =1 to n do begin r : = random( size ); a[ r+1]: = a[ r+1] + 1; end;