- •1.Использование компьютерных технологий в медицине
- •2. Языки программирования. Этапы разработки программ
- •3. Оболочка среды программирования; структура и назначение компонентов оболочки. Особенности построения rad программ
- •4. Стандартные и производные от них типы данных. Константы, их назначение, определение
- •5. Операции с переменными и возвращаемый результат
- •6. Условные операторы, структура, обозначения, возможные проблемы использования
- •7. Стандартные функции, функции преобразования типов
- •8. Операторы цикла, структура, обозначение, возможные проблемы использования
- •9. Этапы отладки программы
- •10. Создание и описание новых типов данных
- •11. Тип данных массив, описание, возможные действия с массивами
- •Вывод массива; ввод массива; поиск максимального или минимального элемента массива; поиск в массиве заданного элемента; сортировка массива.
- •12.Алгоритм поиска элементов в массиве. Алгоритмы сортировки
- •13. Графические примитивы; пропорциональная печать изображения с экрана
- •14. Способы построения мультипликации
- •15. Символы и строки, операции со строками
- •16. Тестовая информация, принципы работы с текстовым файлом
- •17. Составные типы данных, принципы работы
- •18. Процедуры и функции, структура, передача параметров
- •19. Область действия идентификаторов при использовании процедур, функций
- •20. Классификация способов передачи параметров
- •21. Процедурные директивы, назначение
11. Тип данных массив, описание, возможные действия с массивами
Массив-набор однотипных переменных
Объявление одномерного массива(объявляют в разделе объявления переменных):
Имя: array[нижнийИндекс..верхнийИндекс] of типДанных;
Объявление двумерного массива
Имя: array[нижнийИндекс..верхнийИндекс, нижнийИндекс1..верхнийИндекс1] of типДанных;
Если необходимо объявить несколько элементов типа «массив», целесообразно создать новый тип «массив» в разделе описания типов, а в разделе описания переменных указать в качестве типа созданный тип. В этом случае описание массива будет следующим:
type {Раздел описания типов}
ИмяТипа = array [нижний_индекс..верхний_индекс] of тип;
var {Раздел описания переменных}
Имя : ИмяТипа;
Действия с массивами:
Вывод массива; ввод массива; поиск максимального или минимального элемента массива; поиск в массиве заданного элемента; сортировка массива.
Все это совершается через цикл FOR
12.Алгоритм поиска элементов в массиве. Алгоритмы сортировки
Алгоритм поиска элементов в массиве
Самый простой способ- способ поэлементного перебора. Однако при роботе с крупным массивом могут возникнуть проблемы с временем выполнения
Наиболее оптимальным является метот бинарного поиска(предполагается, что массив отсортирован). Суть метода в следующем:
поиск начинается с серединного элемента(S=(НИ+КИ/2)+НИ),
если он не подходит, то проверка больше или меньше элемент массива искомого числа.
Если больше, то НИ=S+1 иначе КИ=S-1.
Далее проверка больше или меньше НИ КИ.
Если меньше, то выполнение действия 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;
Графические примитивы:
LineTo(x,y);-рисует линию от Х до У
MoveTo(x,y);-до какой точки рисует. Устанавливает там курсор
Ellipse(x1,y1,х2,у2);-эллипс, вписанный в прямоугольник с корд(x1,y1,х2,у2)
Arc(x1,y1,x2,y2,x3,y3,x4,y4);-вычеркивают дугу эллипса, вписанного в прямоугольник с вершинами (x1,y1,х2,у2); х3,у3-точка начала дуги;х4,у4-точка конца дуги
Pie(x1,y1,x2,y2,x3,y3,x4,y4);-cтроит сектор
Rectangle(x1,y1,х2,у2);-строит четырехугольник
!!!Координаты принадлежат к типу данных Integer
Пропорциональная печать изображения с экрана
Необходимо предусмотреть умножение всех размеров используемых объектов на константу, определяющую различие между размерами окна и размерами бумаги.
Для этого необходимо использовать свойства принтера Printer.PageWidth и Printer.PageHeight, дающие размеры бумаги – ширину и высоту.
Получить коэффициенты пересчета можно, поделив самые короткие размеры печатаемой страницы на самые короткие размеры отображаемой формы:
.
Для пропорциональной печати нужно умножать все размеры на эту константу.