- •Билет №1:
- •I,j:Integer;
- •Билет №2:
- •Билет №3:
- •I,j:Integer;
- •//Логические константы
- •2) //Сравнения
- •3) //Логические операции
- •Билет №4:
- •Билет №6
- •Цикл с постусловием
- •3) Для того чтобы досрочно завершить виток цикла используется оператор Continue, для завершения цикла полностью – оператор Break.
- •Билет№7
- •Циклы с пред условиями
- •3)Отличие состоит в том что в цикле с постусловием цикл завершится в случае когда условие станет истинным, в цикле же с предустловием наоборот – ложным.
- •Билет №8:
- •Билет №9:
- •Program _Case;
- •1:Goto Met1;
- •2:Goto Met2;
- •Билет №10:
- •Многомерные массивы
- •I,j:Integer;
- •I:Integer;
- •IMax,iMin:Integer; {Наибольший и наименьший}
- •I:Integer;
- •Билет №11, 12:
- •Билет №13, 14:
- •Var //Раздел описаний подпрограммы
- •I:Integer;
- •Var //Раздел описаний подпрограммы
- •I:Integer;
- •X:String; //Раздел описаний основной программы
- •Билет №20: Оконные диалоги. Обработка ошибок
- •Билет №21:
- •Inherited Create; //Вызываем старый конструктор
- •Var I,j,k:Integer;
- •I,j:Integer;
- •I,j:Integer;
- •Inherited Destroy; //Вызываем старый деструктор
- •Билет №22:
- •Var //переменные:
- •Билет №23,24:
- •Билет №25: Битовые карты
- •3) Копирование изображений
- •Билет №26,27:
- •Билет №28:
- •Билет №29:
Билет №10:
Опр. Массивом называется совокупность относительных данных, которые: 1) обладают общим именем 2) имеют различные индексы. Массив может обладать несколькими размерами, (например длинна, высота, ширина) в этом смысле в массиве отражается структура многомерного параллелепипеда. Например матрица является двумерным массивом, т.к её элементы снабжаются двумя индексами. В качестве индексов элемента массива могут использоваться целые числа, символы, логические значения, т.е. любые данные порядкового типа, главное чтобы значения каждого индекса образовывали отрезок в соседних значениях, такие отрезки называются диапазонами и обладают квадратными скобками, например: [-2..5]; [‘A’..’D’]; [False..True]. Диапазон представляет собой группу элементов порядкового типа. При описании массива используется слово Array, различают статистические и динамические массивы. Статистический массив в начале выполнения программы занимает определённое место в памяти и не осовбождает его до конца программы, число элементов и диапозон индексов назначается 1 раз и не изменяются.
Он строится по схеме: Имя: Array[диапазон] of (тип данных массива). Массив может описываться вместе с начальными значениями или без них, примеры ниже в конце билета.
Динамический массив первоначально не индексируется и не содержит элементов, он приобретает элементы только в процессе выполнения программы, индексами служат исключительно целые числа от 0. Такой массив можно разрушать и создавать снова. Участок памяти, занимаемый массивом находится за пределом области программы («в куче»).
Динамический массив описывается без диапазона и без начальных значений. d: Array of integer; Количество элементов массива называется ДЛИНОЙ. Длина статистического массива определяется в момент описания, длину динамического массива надо задавать, например: SetLength(d,10). Отдельный элемент массива указывается при помощи массива и индекса в квадратных скобках: d[1]; s[‘A’]. При работе с массивом важно выяснить некоторые характеристики массива, например размер элемента массива или всего массива (число байт). Оператор Size of возвращает размер своего массива, оператор Length возвращает число элементов массива: Size of (d[0]*Length(d0,0); функции Low и High возвращают наименьший и наибольший индексы в массиве. В целом элементы массивов являются обычными переменными, но они не могут служить счётчиками цикла For, например: For a[1]:=1 To 10 Do – ошибка!
Многомерные массивы
program Poly_Array;
{$APPTYPE CONSOLE}
uses
SysUtils;
Var
//Статические массивы
a,b:Array[1..4,1..8] Of Integer; //Совместное описание двух массивов
c:Array[1..2,1..3] Of Integer= //Описание с начальными значениями
((3, 2,-1),
(4, 5, 0));
m,n,k:Array[1..2,1..2]Of Integer;//Для хранения матриц
//Динамические массивы
d:Array Of Array Of Char;
p:Array Of Array Of Integer;
//
I,j:Integer;
Begin
//Задание статического массива
WriteLn('Array a:'); // Array a:
For i:=1 To 4 Do // 0 3 86 20 27 67 31 16
Begin // 37 42 8 47 7 84 5 29
For j:=1 To 8 Do // 91 36 77 32 69 84 71 30
Begin // 16 32 46 24 82 27 48 14
a[i,j]:=Random(100);
Write(a[i,j]:5);
End;
WriteLn;
End;
//----------------------------
//Задание статического массива
b:=a; //Присваивание возможно, т.к. описаны вместе
WriteLn('Array b:'); // Array b:
For i:=1 To 4 Do // | 87| 28| 77| 97| 49| 88| 82| 2|
Begin // | 14| 14| 50| 2| 59| 0| 77| 65|
Write('|'); // | 77| 70| 55| 20| 68| 59| 95| 64|
For j:=1 To 8 Do // | 99| 24| 67| 29| 8| 77| 49| 88|
Begin
b[i,j]:=Random(100);
Write(a[i,j]:4,'|');
End;
WriteLn;
End;
//----------------------------
//Задание двух матриц и вычисление суммы
WriteLn('Arrays m,n,k:');
For i:=1 To 2 Do
Begin
For j:=1 To 2 Do
Begin
m[i,j]:=Random(10); // Arrays m,n,k:
n[i,j]:=Random(10); // | 5 9| | 5 6| | 10 15|
k[i,j]:=m[i,j]+n[i,j]; // | 3 7| | 0 9| | 3 16|
End;
Write('|');
For j:=1 To 2 Do
Write(m[i,j]:2);
Write('| |');
For j:=1 To 2 Do
Write(n[i,j]:2);
Write('| |');
For j:=1 To 2 Do
Write(k[i,j]:3);
WriteLn('|');
End;
//----------------------------
//Задание динамического прямоугольного массива
SetLength(d,3,4);
WriteLn('Array d:'); // Array d:
For i:=0 To 2 Do // N O Y R
Begin // I A S Z
For j:=0 To 3 Do // U T F D
Begin //
d[i,j]:=Char(Ord('A')+Random(26));
Write(d[i,j]:4);
End;
WriteLn;
End;
//----------------------------
//Задание динамического треугольного массива (треугольник Паскаля)
SetLength(p,5); //Столько будет строк
For i:=0 To 4 Do //Формирование остальных строк
Begin
SetLength(p[i],i+2); //Столько элементов в i-й строке
p[i,0]:=1; p[i,i+1]:=1; //Задание крайних элементов
For j:=1 To i Do //Вычисление средних элементов
p[i,j]:=p[i-1,j-1]+p[i-1,j];
End;
WriteLn('Array p:'); // Array p:
For i:=0 To 4 Do // 1 1
Begin // 1 2 1
Write('':8-i*2); // 1 3 3 1
For j:=0 To i+1 Do // 1 4 6 4 1
Write(p[i,j]:4); // 1 5 10 10 5 1
WriteLn;
End;
//----------------------------
WriteLn('Len p = ',Length(p));// Len p = 5
WriteLn('Low p = ',Low(p)); // Low p = 0
WriteLn('Hig p = ',High(p)); // Hig p = 4
//----------------------------
ReadLn;
End.
{---------------------}
{ ОПИСАНИЕ МАССИВОВ }
{---------------------}
Var {Статические массивы} s:Array['A'..'C'] Of Boolean; //Логический массив c:Array[1..5] Of Char= //Символьный массив 'ABCDE'; //с начальными данными a:Array[5..10] Of Integer= //Числовой массив (3,5,4,2,6,7); //с начальными данными {Динамические массивы} d:Array Of Integer; //Числовой динамический массив
|