Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
otvety_na_kt_informatika_1.doc
Скачиваний:
39
Добавлен:
09.02.2015
Размер:
110.08 Кб
Скачать

11. Тип данных массив, описание, возможные действия с массивами

Массив-набор однотипных переменных

Объявление одномерного массива(объявляют в разделе объявления переменных):

Имя: array[нижнийИндекс..верхнийИндекс] of типДанных;

Объявление двумерного массива

Имя: array[нижнийИндекс..верхнийИндекс, нижнийИндекс1..верхнийИндекс1] of типДанных;

Если необходимо объявить несколько элементов типа «массив», целесообразно создать новый тип «массив» в разделе описания типов, а в разделе описания переменных указать в качестве типа созданный тип. В этом случае описание массива будет следующим:

type {Раздел описания типов}

ИмяТипа = array [нижний_индекс..верхний_индекс] of тип;

var {Раздел описания переменных}

Имя : ИмяТипа;

Действия с массивами:

Вывод массива; ввод массива; поиск максимального или минимального элемента массива; поиск в массиве заданного элемента; сортировка массива.

Все это совершается через цикл FOR

12.Алгоритм поиска элементов в массиве. Алгоритмы сортировки

Алгоритм поиска элементов в массиве

Самый простой способ- способ поэлементного перебора. Однако при роботе с крупным массивом могут возникнуть проблемы с временем выполнения

Наиболее оптимальным является метот бинарного поиска(предполагается, что массив отсортирован). Суть метода в следующем:

  1. поиск начинается с серединного элемента(S=(НИ+КИ/2)+НИ),

  2. если он не подходит, то проверка больше или меньше элемент массива искомого числа.

  3. Если больше, то НИ=S+1 иначе КИ=S-1.

  4. Далее проверка больше или меньше НИ КИ.

  5. Если меньше, то выполнение действия 1

Алгоритм сортировки пузырьком

В основе алгоритма лежит обмен соседних элементов массива. Каждый элемент массива, начиная с первого, сравнивается со следующим и если он больше следующего, то элементы меняются местами.

for I:=L downto 1 do

for j :=1 to L-1 do

if(M [j]>M[j+1]) then

begin

st:=M [j+1];

M[j+1]:=M[j];

M [j]:=st;

end;

M-массив

L-длина массива

13. Графические примитивы; пропорциональная печать изображения с экрана

Холст задаётся свойством Canvas(позволяет выводить графические примитивы и задавать их параметры). Холст представляет собой систему координат, начало отсчета которой в левом верхнем углу. Для рисования графический объектов используют карандаш(Pen). Для заполнения замкнутых областей- кисть(Brush).

Для задания цвета используют свойство .Color. Цвет в делфи можно задавать 2мя способами: стандартные цвета(cl+цвет, если цвет фона, то clbtnface) и RGB цвета(функция RGB())

Пример: Pen.color:=clBlue;

Графические примитивы:

  1. LineTo(x,y);-рисует линию от Х до У

MoveTo(x,y);-до какой точки рисует. Устанавливает там курсор

  1. Ellipse(x1,y1,х2,у2);-эллипс, вписанный в прямоугольник с корд(x1,y1,х2,у2)

  2. Arc(x1,y1,x2,y2,x3,y3,x4,y4);-вычеркивают дугу эллипса, вписанного в прямоугольник с вершинами (x1,y1,х2,у2); х3,у3-точка начала дуги;х4,у4-точка конца дуги

  3. Pie(x1,y1,x2,y2,x3,y3,x4,y4);-cтроит сектор

  4. Rectangle(x1,y1,х2,у2);-строит четырехугольник

!!!Координаты принадлежат к типу данных Integer

Пропорциональная печать изображения с экрана

Необходимо предусмотреть умножение всех размеров используемых объектов на константу, определяющую различие между размерами окна и размерами бумаги.

Для этого необходимо использовать свойства принтера Printer.PageWidth и Printer.PageHeight, дающие размеры бумаги – ширину и высоту.

Получить коэффициенты пересчета можно, поделив самые короткие размеры печатаемой страницы на самые короткие размеры отображаемой формы:

.

Для пропорциональной печати нужно умножать все размеры на эту константу.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]