Скачать презентацию Лектор к т н ассистент Клименков Юрий Сергеевич Скачать презентацию Лектор к т н ассистент Клименков Юрий Сергеевич

f631993fc89131059c75bf5ee19b5f08.ppt

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

Лектор: к. т. н. ассистент Клименков Юрий Сергеевич Алгоритмические языки Теоретический курс Лектор: к. т. н. ассистент Клименков Юрий Сергеевич Алгоритмические языки Теоретический курс

СОДЕРЖАНИЕ КУРСА Часть I. 1. Устройство компьютера. Процессор, оперативная память 2. Кодирование информации в СОДЕРЖАНИЕ КУРСА Часть I. 1. Устройство компьютера. Процессор, оперативная память 2. Кодирование информации в компьютере 3. Разработка программ, алгоритмы Часть II. 1. Программирование на языке Паскаль Часть III. 1. Введение в объектно-ориентированное программирование 2. Программирование в среде Delphi

Лекция № 1 • Устройство компьютера. Типы компьютеров • Процессор и его характеристики • Лекция № 1 • Устройство компьютера. Типы компьютеров • Процессор и его характеристики • Память. Виды памяти. Характеристики

Типы компьютеров Супер ЭВМ Серверные системы Персональные компьютеры Ноутбуки КПК Типы компьютеров Супер ЭВМ Серверные системы Персональные компьютеры Ноутбуки КПК

Процессор АЛУ Регистры Устройство управления Шины данных и адресов КЭШ-память L 1 - первого Процессор АЛУ Регистры Устройство управления Шины данных и адресов КЭШ-память L 1 - первого уровня L 2 - второго уровня Счётчик команд

Операции выполняемые процессором 1. Арифметические и логические 2. Управляет вычислительным процессом 3. Координирует работу Операции выполняемые процессором 1. Арифметические и логические 2. Управляет вычислительным процессом 3. Координирует работу всех устройств ПК

Характеристики процессора 1. Производительность (кол-во оп-ийсек 2. Тактовая частота (Гц, КГц, МГц, ГГц) 3. Характеристики процессора 1. Производительность (кол-во оп-ийсек 2. Тактовая частота (Гц, КГц, МГц, ГГц) 3. Разрядность (бит)

Виды памяти Оперативная Временное хранение и обработка программ и данных BIOS Хранит программы инициирования Виды памяти Оперативная Временное хранение и обработка программ и данных BIOS Хранит программы инициирования загрузки ОС и проверки оборудования ПК CMOS Хранит Параметры конфигураци и ПК

Структура оперативной памяти Структура оперативной памяти

Характеристики памяти 1. Объём (Б, КБ, МБ, ГБ) 2. Максимальная частота работы (Гц, КГц, Характеристики памяти 1. Объём (Б, КБ, МБ, ГБ) 2. Максимальная частота работы (Гц, КГц, МГц, ГГц) 3. Время доступа (мс)

Лекция № 2 • Понятие информации • Системы исчисления • Кодирование чисел, текста, изображения, Лекция № 2 • Понятие информации • Системы исчисления • Кодирование чисел, текста, изображения, звука

Схема взаимосвязи основных понятий информации Источник информации Сигнал Потребитель информации Схема взаимосвязи основных понятий информации Источник информации Сигнал Потребитель информации

Системы счисления (СС) Позиционная Непозиционная арабская римская – запись числа А в СС D Системы счисления (СС) Позиционная Непозиционная арабская римская – запись числа А в СС D – символ системы, образующий – цифры системы счисления – число целых и дробных разрядов пример базу

Виды системы счисления (СС) Q Название Цифры 2 Двоичная 0, 1 3 Троичная 0, Виды системы счисления (СС) Q Название Цифры 2 Двоичная 0, 1 3 Троичная 0, 1, 2 8 Восьмеричная 0… 7 10 десятичная 0… 9 16 Шестнадцатиричная 0… 9, А…F Представление числа через его цифры в позиционной СС A=a 1*q 0+a 2*q 1+. . . +an*qn (1) Воспользуемся схемой Горнера A=(. . . ((an*q+an-1)*q+an-2)*q+. . . )*q+a 1

Преобразование чисел из 10 в 2 и наоборот 10 --›› 2 2 --›› 10 Преобразование чисел из 10 в 2 и наоборот 10 --›› 2 2 --›› 10 100112 = 1*24 + 0*23 + 0*22 + 1*21 + 1*20 = 16+0+0+2+1 = 19. Таким образом, 100112 = 19.

Преобразование чисел из 10 в 16 и наоборот 10 --›› 16 16 --›› 10 Преобразование чисел из 10 в 16 и наоборот 10 --›› 16 16 --›› 10 1316 = 1*161 + 3*160 = 16 + 3 = 19. Таким образом, 1316 = 19.

Правила перевода правильных дробей 10 --›› 2 2 --›› 10 0, 11012 = 1*2 Правила перевода правильных дробей 10 --›› 2 2 --›› 10 0, 11012 = 1*2 -1 + 1*2 -2 + 0*2 -3 +1*2 -4 = 0, 5 + 0, 25 + 0, 0625 = 0, 8125.

10 --›› 16 16 --›› 10 0, D 8 D 16 = 13*16 -1 10 --›› 16 16 --›› 10 0, D 8 D 16 = 13*16 -1 + 8*16 -2 + 13*16 -3 = 13*0, 0625 + 8*0, 003906 + 13* 0, 000244 = 0, 84692.

Представление чисел в компьютере Целые числа Знаковые Беззнаковые Отрицательные числа Неотрицательные числа Формат с Представление чисел в компьютере Целые числа Знаковые Беззнаковые Отрицательные числа Неотрицательные числа Формат с фиксированной запятой Представление числа Прямой код Совпадает с записью Самого числа в ячейке Дополнительный код отрицательного числа m k – кол-во разрядов в ячейке

Алгоритм получения дополнительного кода отрицательного числа 1. модуль отрицательного числа представить прямым кодом в Алгоритм получения дополнительного кода отрицательного числа 1. модуль отрицательного числа представить прямым кодом в k двоичных разрядах; 2. значение всех бит инвертировать: все нули заменить на единицы, а единицы на нули; 3. к полученному обратному коду прибавить единицу. Пример Получим 8 -разрядный дополнительный код числа -52: 00110100 - число |-52|=52 в прямом коде 11001011 - число -52 в обратном коде 1100 - число -52 в дополнительном коде

Представление вещественных чисел в компьютере Нормализованная запись a= m*Pq q - целое число m Представление вещественных чисел в компьютере Нормализованная запись a= m*Pq q - целое число m - правильная P-ичная дробь, у которой первая цифра после запятой не равна нулю, то есть 1/P m<1. m -мантисса числа, q - порядком числа. примеры • 3, 1415926 = 0, 31415926 * 101; • 1000=0, 1 * 104; • 1000, 00012 = 0, 10000001 * 24. С плавающей запятой Формула записи смещённого порядка: 2 a-1+СП, a - количество разрядов, отводимых под порядок. пример Если истинный порядок равен -5, тогда смещённый порядок для 4 -байтового числа будет равен 127 -5=122

Алгоритм представления числа с плавающей запятой 1. Перевести число из p-ичной системы счисления в Алгоритм представления числа с плавающей запятой 1. Перевести число из p-ичной системы счисления в двоичную; 2. представить двоичное число в нормализованной экспоненциальной форме; 3. рассчитать смещённый порядок числа; 4. разместить знак, порядок и мантиссу в соответствующие разряды сетки. пример 1) 2510=1000112 0, 62510=0, 1012 -25, 62510= -100011, 1012 2) -100011, 1012 = -1, 000111012 * 24 3) СП=127+4=131 4)

Представление текстовых данных Системы кодировки символов ASCII Windows-1251 Базовая 0… 127 0… 32 – Представление текстовых данных Системы кодировки символов ASCII Windows-1251 Базовая 0… 127 0… 32 – управляющие коды аппаратных средств Расширенная 128… 255 КОИ-8 ISO Российский сектор интернета UNICODE 65536 символов

Базовая таблица кодировки ASCII Базовая таблица кодировки ASCII

Кодировка Windows 1251 Кодировка Windows 1251

Представление изображений растровые Используется разбивка на прямоугольную матрицу элементов - пикселей Используемые цветовые модели Представление изображений растровые Используется разбивка на прямоугольную матрицу элементов - пикселей Используемые цветовые модели RGB, CMYG Параметры растрового изображения разрешение Разрядность пикселя векторные Используется разбивка изображений на примитивы (прямые линии, многоугольники, окружности и т. д. ) Примеры двухмерных векторных форматов Post. Script, PDF, WMF, PCL Используются для представления чертежей диаграмм, шрифтов, текстов в САПР и для генерации фотореалистических изображений методами трассировки лучей

Примеры векторных изображений двухмерное трёхмерное Примеры векторных изображений двухмерное трёхмерное

Пример растрового изображения Пример растрового изображения

Представление звуковой информации Метод FM (Frequency Modulation Звук раскладывается на последовательность простейших гармонических сигналов Представление звуковой информации Метод FM (Frequency Modulation Звук раскладывается на последовательность простейших гармонических сигналов разных частот (правильная синусоида) и описывается числовыми параметрами, т. е. кодом Метод таблично волнового (Wave-Table) В заранее подготовленных таблицах хранятся образцы звуков (сэмплы) для различных музыкальных инструментов. Числовые коды выражают тип инструмента, номер его модели, высоту тона, продолжительность и т. д. Способы звукозаписи Цифровая MIDI

Лекция № 3 • • • Этапы разработки программы Понятие алгоритма и его свойства Лекция № 3 • • • Этапы разработки программы Понятие алгоритма и его свойства Представление алгоритма Блок схемы Классификация языков программирования. Компиляция.

Этапы разработки программы: • Определение требований к программе • Разработка алгоритма решения поставленной задачи Этапы разработки программы: • Определение требований к программе • Разработка алгоритма решения поставленной задачи • Написание команд • Отладка • Тестирование

ПОНЯТИЕ АЛГОРИТМА Алгоритм – точное предписание определяющее процесс перехода от исходных данных к результату ПОНЯТИЕ АЛГОРИТМА Алгоритм – точное предписание определяющее процесс перехода от исходных данных к результату Свойства алгоритма: 1. Однозначность 2. Массовость 3. Результативность Представление алгоритма: 1. Словесное описание 2. Блок-схемы

Основные элементы для изображения блок-схем Основные элементы для изображения блок-схем

Блок схема алгоритма вычисления кв. уравнения Блок схема алгоритма вычисления кв. уравнения

Классификация языков программирования Языком программирования называется (формальный) язык, предназначенный для записи программ, исполняемых на Классификация языков программирования Языком программирования называется (формальный) язык, предназначенный для записи программ, исполняемых на ЭВМ. Синтаксис языка программирования – это набор правил построения конструкций языка. Семантика языка программирования – это совокупность значений (смысл) всех конструкций языка. языки программирования Алгоритмический предназначен для записи алгоритмов, исполняемых на ЭВМ Неалгоритмический для них алгоритм решения задачи формируется в процессе исполнения программы

языки программирования Компилируемые Программа на компилируемом языке при помощи специальной программы компилятора преобразуется в языки программирования Компилируемые Программа на компилируемом языке при помощи специальной программы компилятора преобразуется в набор инструкций для данного типа процессора (машинный код) и далее записывается в исполняемый файл, который может быть запущен на выполнение как отдельная программа Интерпретируемые Интерпретатор непосредственно выполняет (интерпретирует) текст программы без предварительного перевода. При этом программа остается на исходном языке и не может быть запущена без интерпретатора. Можно сказать, что процессор компьютера — это интерпретатор машинного кода.

Достоинства и недостатки интерпретируемых языков Достоинства 1. Бо льшая переносимость интерпретируемых программ — программа Достоинства и недостатки интерпретируемых языков Достоинства 1. Бо льшая переносимость интерпретируемых программ — программа будет работать на любой платформе, на которой есть соответствующий интерпретатор. 2. Более совершенные и наглядные средства диагностики ошибок в исходных кодах. 3. Упрощение отладки исходных кодов программ. 4. Меньшие размеры кода по сравнению с машинным кодом, полученным после обычных компиляторов. Недостатки 1. Интерпретируемая программа не может выполняться отдельно без программы-интерпретатора. 2. Интерпретируемая программа выполняется медленнее, поскольку промежуточный анализ исходного кода и планирование его выполнения требуют дополнительного времени в сравнении с непосредственным исполнением машинного кода, в который мог бы быть скомпилирован исходный код. 3. Практически отсутствует оптимизация кода, что приводит к дополнительным потерям в скорости работы интерпретируемых программ.

Схема работы компилятора Схема работы компилятора

Уровни языков программирования Низкого уровня ориентирован на конкретный тип процессора и учитывает его особенности. Уровни языков программирования Низкого уровня ориентирован на конкретный тип процессора и учитывает его особенности. Ассемблер применяют для написания небольших системных приложений, драйверов устройств, модулей стыковки с нестандартным оборудованиям, Высокого уровня имитируют естественные языки, обладают укрупненными командами, ориентированы на решение прикладных содержательных задач Паскаль, Бейсик, СИ, Фортран.

Особенности языков высокого уровня • Алфавит значительно шире машинного, что делает его гораздо более Особенности языков высокого уровня • Алфавит значительно шире машинного, что делает его гораздо более выразительным и существенно повышает наглядность и понятность текста; • Набор операций, допустимых для использования, не зависит от набора машинных операций, а выбираются из соображений удобства формулирования алгоритмов решения задач определенного класса; • Конструкция команд (операторов) отражает содержательные виды обработки данных и задаются в удобном для человека виде; • Используется аппарат переменных и действия над ними; • Поддерживается широкий набор типов данных

Классификация языков программирования программирование процедурное операционное Ассемблер Фортран Бейсик Си непроцедурное объектное структурное Смолток Классификация языков программирования программирование процедурное операционное Ассемблер Фортран Бейсик Си непроцедурное объектное структурное Смолток Си++ Делфи Паскаль Модула декларативное логическое Пролог функциональное Лисп

Лекция № 4 • • Структура программы на яз. Паскаль Величины и их типы Лекция № 4 • • Структура программы на яз. Паскаль Величины и их типы Ввод, вывод выражения Алгебраические операции

Структура программы на языке Паскаль PROGRAM имя LABEL - раздел меток; CONST - раздел Структура программы на языке Паскаль PROGRAM имя LABEL - раздел меток; CONST - раздел констант; TYPE - раздел типов; VAR - раздел переменных; PROCEDURE, FUNCTION – раздел процедур и функций; BEGIN оператор 1; оператор 2; Раздел операторов ……. . оператор n; END. ПРАВИЛА: Раздел описаний 1. После каждого описания ставится символ ; 2. После END ставится точка 3. Комментарии к программе заключаются в {*} 4. Не все перечисленные разделы обязательны в каждой программе

Семантическое разбиение данных входные выходные промежуточные Величина имеет: Тип Значение Имя Величина постоянная переменная Семантическое разбиение данных входные выходные промежуточные Величина имеет: Тип Значение Имя Величина постоянная переменная пример описания 1. целые 2. вещественные 3. логические 4. символьные const M=10 пример описания Var D, C, N : Integer; A, B : Real;

Типы переменных величин Идентификатор Длина, байт Диапазон (множество) значений Операции Целые типы +, –, Типы переменных величин Идентификатор Длина, байт Диапазон (множество) значений Операции Целые типы +, –, /, *, Div, Mod, >=, <=, =, <>, <, > +, –, /, *, Div, Mod, >=, <=, 0. . 255 =, <>, <, > +, –, /, *, Div, Mod, >=, <=, 0. . 65535 =, <>, <, > +, –, /, *, Div, Mod, >=, <=, – 128. . 127 =, <>, <, > +, –, /, *, Div, Mod, >=, <=, – 2147483648. . 2147483647 =, <>, <, > Вещественные типы integer 2 byte 1 word 2 shortint 1 longint 4 real 6 2, 9× 10– 39 — 1, 7× 1038 +, –, /, *, >=, <=, =, <>, <, > single 4 1, 5× 10– 45 — 3, 4× 1038 +, –, /, *, >=, <=, =, <>, <, > double 8 5× 10– 324 — 1, 7× 10308 +, –, /, *, >=, <=, =, <>, <, > extended 10 3, 4× 10– 4932 — 1, 1× 104932 +, –, /, *, >=, <=, =, <>, <, > – 32768. . 32767 Логический тип Boolean char 1 1 true, false Not, And, Or, Xor, >=, <=, =, <>, <, > Символьный тип все символы кода ASCII +, >=, <=, =, <>, <, >

Операции над логическими данными Оператор Операция Описание NOT НЕ Отрицание-изменение состояния на противоположное AND Операции над логическими данными Оператор Операция Описание NOT НЕ Отрицание-изменение состояния на противоположное AND И OR ИЛИ Логическое умножение Логическое сложение XOR ИСКЛЮЧАЮЩ ЕЕ ИЛИ При совпадении значений операндов результат равен нулю

Определение булевых операций А В A and B A or B Not A false Определение булевых операций А В A and B A or B Not A false False false true False true true false

Процедуры ввода и вывода данных Ввод данных Read(список переменных) пример Read. Ln(A, B, C); Процедуры ввода и вывода данных Ввод данных Read(список переменных) пример Read. Ln(A, B, C); Read. Ln(X); Read. Ln(Log. Per); Вывод данных Write(‘текст’, X) пример Write(A, B, C); Write. Ln('Корнем уравнения является ', X); Write. Ln(Log. Per); Вывод данных c форматом Write. Ln(A : N, B : M, C : L) N, M, L — выражения целого типа, задающие ширину поля вывода значений

Оператор присваивания Запись в общем виде: переменная: = выражение примеры Z: =10 X : Оператор присваивания Запись в общем виде: переменная: = выражение примеры Z: =10 X : = (Y + Z) / (2 + Z * 10) - 1/3 Операции целочисленного деления (DIV) и нахождения остатка от деления (MOD) примеры 15 div 3 = 5; 18 div 5 = 3; 123 div 10 = 12, 7 div 10 = 0 15 mod 3 = 0; 18 mod 5 = 3; 123 mod 10 = 3, 7 mod 10 = 7 Порядок действий при вычислении значения выражения 1. 2. 3. 4. 5. Вычисляются значения в скобках Вычисляются значения функций Выполняются унарные операции (унарный минус-смена знака) Выполняются операции умножения и деления Выполняются операции сложения и вычитания

Встроенные математические функции яз. Паскаль Математическая запись Запись на Pascal cos x sin x Встроенные математические функции яз. Паскаль Математическая запись Запись на Pascal cos x sin x ex [x] |x| x 2 √х {x} arctg x ln x p пример cos(x) sin(x) exp(x) trunc(x) abs(x) sqrt(x) frac(x) arctan(x) ln(x) Pi x 2 – 7 x + 6 Назначение Косинус x радиан Синус x радиан Значение e в степени x Целая часть числа x Модуль числа x Квадратный корень из x Дробная часть x Арктангенс числа x Натуральный логарифм x Число p Sqr(x) - 7 * x + 6

Лекция № 5 • Оператор условного выполнения IF • Оператор выбора CASE • Операторы Лекция № 5 • Оператор условного выполнения IF • Оператор выбора CASE • Операторы циклов в Паскале

Оператор условного выполнения IF Полная форма Сокращённая форма IF - если Then – то Оператор условного выполнения IF Полная форма Сокращённая форма IF - если Then – то Else - иначе

Блок схема оператора IF Блок схема оператора IF

Составной оператор условия If A>0 then X 1: =sgrt(A)/2; X 2: =sqrt(A)+2 Else if Составной оператор условия If A>0 then X 1: =sgrt(A)/2; X 2: =sqrt(A)+2 Else if A=0 then X 1: =0 ЭТО НЕПРАВИЛЬНО!!! Begin <последовательность операторов> End – cоставной оператор. Операторные скобки If A>0 then Begin X 1: =sgrt(A)/2; X 2: =sqrt(A)+2 end Else if A=0 then X 1: =0 ЭТО ПРАВИЛЬНО!!!

Блок схема составного оператора Блок схема составного оператора

Примет использования сокращённой формы оператора IF Пример 1: Пусть дано целое число i. Требуется Примет использования сокращённой формы оператора IF Пример 1: Пусть дано целое число i. Требуется оставить его без изменения, если оно делится на 2, и вычесть из него 1, если это не так. var i: integer; . . . . if i mod 2 = 1 then i: =i-1; {else - ничего не делать}

Пример использования составного оператора Пример 2: Пусть даны две переменные типа real. Требуется поменять Пример использования составного оператора Пример 2: Пусть даны две переменные типа real. Требуется поменять местами значения этих переменных, если a 1>a 2. var a 1, a 2, buf : real; . . if a 1>a 2 then begin buf: =a 1; a 1: =a 2; a 2: =buf; end;

Пример использования вложенного оператора Пример 3: пользователь вводит натуральное число, задача программы — поставить Пример использования вложенного оператора Пример 3: пользователь вводит натуральное число, задача программы — поставить слово «ученик» в нужную форму в сочетании с числительным (например: 1 ученик, 3 ученика, 9 учеников и т. п. ) begin write('Число учеников (1. . 20) --> '); readln(n); write(n, ' ученик'); if n<5 then begin if n>1 then writeln('а'); end else writeln('ов'); readln; end.

Оператор выбора CASE case <селектор> of <Вариант1>: <Оператор1>; <Вариант2>: <Оператор2>; . . . <Вариант. Оператор выбора CASE case <селектор> of <Вариант1>: <Оператор1>; <Вариант2>: <Оператор2>; . . . <Вариант. N>: <Оператор. N>; [else Оператор. N 1; ] end;

Пример оператора CASE program School. Children; var n: integer; begin write('Число учеников --> '); Пример оператора CASE program School. Children; var n: integer; begin write('Число учеников --> '); readln(n); write(n, ' ученик'); case n of 2. . 4: write('а'); 5. . 10: write('ов'); end; readln; end.

Цикл с постусловием Repeat repeat <последовательность операторов> until <условие> Цикл с постусловием Repeat repeat <последовательность операторов> until <условие>

Блок схема оператора Repeat Блок схема оператора Repeat

Пример использования оператора Repeat Пример1 (подсчет суммы натуральных чисел от 1 до 100): var Пример использования оператора Repeat Пример1 (подсчет суммы натуральных чисел от 1 до 100): var i, sum: integer; begin sum: =0; i: =0; repeat i: =i+1; sum: =sum+i; until i=100; writeln('Сумма равна: ', sum); readln; end.

Цикл с предусловием While while <условие> do <оператор> Цикл с предусловием While while <условие> do <оператор>

Блок схема оператора While Блок схема оператора While

Пример использования оператора While var i, sum: integer; begin sum: =0; i: =0; while Пример использования оператора While var i, sum: integer; begin sum: =0; i: =0; while i<100 do begin i: =i+1; sum: =sum+i; end; writeln('Сумма равна: ', sum); readln; end.

Цикл со счётчиком For for <переменная>: =<начало> to <конец> do <последовательность операторов> Пример. требуется Цикл со счётчиком For for <переменная>: =<начало> to <конец> do <последовательность операторов> Пример. требуется вывести на экран таблицу квадратов натуральных чисел от 2 до 20. var i: integer; begin for i: =2 to 20 do writeln(i, ' ', sqr(i)); end. for i: =20 downto 2 do writeln(i, ' ', sqr(i));

Пример программы с использованием For Пример. программа о подсчете суммы чисел от 1 до Пример программы с использованием For Пример. программа о подсчете суммы чисел от 1 до 100 с помощью for: var i, sum: integer; begin sum: =0; for i: =1 to 100 do sum: =sum+i; writeln(sum); end.

Лекция № 6 • Метки и переходы • Функция и её вызовы • Процедуры Лекция № 6 • Метки и переходы • Функция и её вызовы • Процедуры • Модули • Подпрограммы и библиотеки подпрограмм

Метки и переходы Метка : <оператор> Пример 10: AS: =25; 20: А: =SQRT(B); Определение Метки и переходы Метка : <оператор> Пример 10: AS: =25; 20: А: =SQRT(B); Определение меток Label <список меток через запятую> Пример label 10, 8. 4…. . Оператор перехода GOTO <метка>

Общий вид функции Function имя (определение параметров) : тип; <раздел описания функции> Здесь описываются Общий вид функции Function имя (определение параметров) : тип; <раздел описания функции> Здесь описываются те переменные, которые участвуют только в функции, но не участвуют в основной программе Begin <последовательность операторов> End; *В отличии от основной программы после end ставится точка с запятой

задача Вычислить минимальное расстояние между точками плоскости A(x 1; y 1), B(x 2; y задача Вычислить минимальное расстояние между точками плоскости A(x 1; y 1), B(x 2; y 2), C(1; 2) Алгоритм решения: 1. Вычислить расстояние d 1=AB, d 2=AC, d 3=BC 2. Вычислить m=min{d 1, d 2, d 3}

Расстояние между двумя точками можно определить по теореме Пифагора Расстояние между двумя точками можно определить по теореме Пифагора

Пример вызова функции Раздел описаний основной программы Var x 1, y 1, x 2, Пример вызова функции Раздел описаний основной программы Var x 1, y 1, x 2, y 2, d 1, d 2, d 3, m: real: Заголовок функции Тело основной программы Function dd(a 1, b 1, a 2, b 2: real): real; Begin dd: =sqrt(sqr(a 1 -a 2)+sqr(b 1 -b 2)) Тело функции end; Формальные пар-ры begin a 1, b 1, a 2, b 2 writeln(‘введите координаты’); readln(x 1, y 1, x 2, y 2); Фактические пар-ры d 1: =dd(x 1, y 1, x 2, y 2); x 1, y 1, x 2, y 2 d 2: =dd(x 1, y 1, 1, 2); d 3: =dd(x 2, y 2, 1, 2); if d 1

Общий вид процедуры Procedure имя (определение параметров); <Раздел описаний> Begin <последовательность операторов> End. Общий вид процедуры Procedure имя (определение параметров); <Раздел описаний> Begin <последовательность операторов> End.

Пример вызова процедуры Заголовок процедуры PROCEDURE SUMMA (A, B, C: INTEGER); где A, B, Пример вызова процедуры Заголовок процедуры PROCEDURE SUMMA (A, B, C: INTEGER); где A, B, C – формальные параметры Вызов процедуры SUMMA(5, M, 7); где 5, M, 7 – фактические параметры

Параметры процедуры Параметры-значения Могут получать значения фактических параметров но не могут передавать свои значения Параметры процедуры Параметры-значения Могут получать значения фактических параметров но не могут передавать свои значения фактическим параметрам Пример: Procedure имя (A, B, C: real) Параметры-переменные Могут получать значения фактических параметров, изменять их в процедуре и возвращать новые значения фактическим параметрам Пример: Procedure имя (var A, B, C, real)

Задача. Оформить в виде процедуры sumpr вычисление суммы и произведения от 1 до n Задача. Оформить в виде процедуры sumpr вычисление суммы и произведения от 1 до n Тело основной программы Тело процедуры var n: integer; sum, pr: real; Заголовок проц-ры procedure sumpr(k: integer; var x, y: real); var i: integer; begin Формальные параметры x: =0; y: =1; k, x, y for i: =1 to k do Причём k – параметр-значение begin x, y – параметры -переменные x: =x+i; y: =y*i; end; begin writeln('vvedite n'); readln(n); sumpr(n, sum, pr); writeln('summa', sum: 2); writeln('proizvedenie', pr: 2); Фактические параметры readln n, sum, pr end.

Отличие функции от процедуры 1. В заголовке процедуры нет имени типа для значения Procedure Отличие функции от процедуры 1. В заголовке процедуры нет имени типа для значения Procedure имя (определение параметров): тип 2. Вызов процедуры состоит из имени и аргументов в скобках, а в теле процедуры не может быть операторов присваивания с её именем в левой части

модули Интерфейсная часть (interface) Реализация (Implementation) Unit <имя модуля> модули Интерфейсная часть (interface) Реализация (Implementation) Unit <имя модуля>

Лекция № 7 • Типы данных • Ограниченные и перечисляемые типы • Понятие массива. Лекция № 7 • Типы данных • Ограниченные и перечисляемые типы • Понятие массива. Типы массивов.

Переменные типы данных Простые Перечисляемые Ограниченные Сложные Массивы Множества Записи Файлы Переменные типы данных Простые Перечисляемые Ограниченные Сложные Массивы Множества Записи Файлы

Описание перечисляемого типа TYPE ИМЯ = (список констант); VAR имя переменной : имя типа: Описание перечисляемого типа TYPE ИМЯ = (список констант); VAR имя переменной : имя типа: Пример описания перечисляемого типа TYPE ГОД = (ЗИМА, ВЕСНА, ЛЕТО, ОСЕНЬ); VAR А, B: ГОД;

Правила написания ограниченного типа данных 2. Целого типа: INDEX=0. . 63 Символьного типа: LETTER=’A’. Правила написания ограниченного типа данных 2. Целого типа: INDEX=0. . 63 Символьного типа: LETTER=’A’. . ’Z’ Перечисляемого типа: ОСЕНЬ=СЕНТЯБРЬ. . НОЯБРЬ 4. VAR CHAR 1, CHAR 2 : LETTER; ПОЛЕШАХМАТНОЙДОСКИ : INDEX; 5. VAR CHAR 1, CHAR 2 : ’A’. . ’Z’ ПОЛЕШАХМАТНОЙДОСКИ : 0. . 63

Обозначение элементов линейного массива А[1]=2, А[2]=4, А[3]=6, . . . , А[К]=2*(К+1), где К Обозначение элементов линейного массива А[1]=2, А[2]=4, А[3]=6, . . . , А[К]=2*(К+1), где К — номер элемента, 2, 4, 6, . . . , N — значения. А[2] – второй элемент массива *Индекс (порядковый номер элемента) записывается в квадратных скобках

Описание массива имя массива : Array [начальное значение индекса. . конечное значение индекса] Of Описание массива имя массива : Array [начальное значение индекса. . конечное значение индекса] Of базовый тип; Пример Var B : Array [1. . 5] Of Real – массив вещественных чисел из пяти элементов, R : Array [1. . 34] Of Char – массив символов из 34 элементов

Операции с массивами B[5]: = B[3]+1; SUM: =SUM-C[K]; P 1: =A[2*I+1] Ввод числовых значений Операции с массивами B[5]: = B[3]+1; SUM: =SUM-C[K]; P 1: =A[2*I+1] Ввод числовых значений массива FOR I: =1 TO 9 DO READ (A[I]); Вывод числовых значений массива FOR I: =1 TO 9 DO WRITE (A[I]); *Пример заполнения массива генератором случайных чисел см. в методичке к лабораторным работам

Ввод элементов массива с клавиатуры Program Vvod; Var N, I : Integer; A: Array[1. Ввод элементов массива с клавиатуры Program Vvod; Var N, I : Integer; A: Array[1. . N] оf Integer; Begin Write('Введите количество эл-ов массива '); Read. Ln(N); FOR I : = 1 TO N DO Begin Write('Введите A[', I, '] '); Read. Ln(A[I]) End.

Вычислить сумму всех элементов линейного массива из 10 чисел Количество чисел Const N=10; Type Вычислить сумму всех элементов линейного массива из 10 чисел Количество чисел Const N=10; Type mas = array[1. . N] of real; Описание массива Var B : mas; I : 1. . N; S : real; {сумма} Begin Writeln (‘введите значения массива’); Ввод значений For I: =1 To N Do массива Read (B[I]); S: =0; Вычисление For I: =1 To N Do суммы S: =S+ B[I]; Вывод посчитанной Writeln (‘сумма=’, S: 2: 2) суммы End.

Пример описания матрицы TYPE MAS = ARRAY [1. . 3, 1. . 4] OF Пример описания матрицы TYPE MAS = ARRAY [1. . 3, 1. . 4] OF INTEGER; VAR A : MAS; Описание упакованного массива VAR <имя массива>: PACKED ARRAY[N. . M] OF CHAR; Заполнение матрицы Writeln (‘введите значения матрицы’); Заполнение строк For I: =1 To N Do Заполнение столбцов For J: =1 To M Do Read (B[I, J])

Произведение всех элементов массива Const N=3; M=5; Type mas = array[1. . N, 1. Произведение всех элементов массива Const N=3; M=5; Type mas = array[1. . N, 1. . M] of real; Var B : mas; I : 1. . N; J : 1. . M; P : real; {произведение} Begin Writeln (‘введите значения матрицы’); For I: =1 To N Do For J: =1 To M Do Read (B[I, J]); P: =1; For I: =1 To N Do For J: =1 To M Do P: =P* B[I, J]; Writeln (‘произведение=’, P) End.

Алгоритм лабораторной работы 5. 2 Задача: Подсчитать общее количество введённых символов строки И сколько Алгоритм лабораторной работы 5. 2 Задача: Подсчитать общее количество введённых символов строки И сколько раз встречается символ «+» , начиная с 5 -го по 15 -й Ввод данных Ввод констант: 1. знак PLUS = ‘+’ 2. k 1=5, k 2=15 Ввод упакованного массива sim[i] типа char Ввод счётчиков: 1. Всех введённых символов 2. символов «+» Ввод и подсчёт символов строки 1. 2. 3. 4. 5. Счётчику 1 присвоить значение ноль Используется цикл while not eoln- пока не закончится строка Увеличивать счётчик 1 на единицу Записывать массив (оператор read (sim[i]) Выводим через оператор writeln счётчик 1 Подсчёт символов «+» 1. Счётчику 2 присвоить значение ноль 2. Используется цикл for от k 1 до k 2 do 3. Используется условие If sim[i] = plus then увеличиваем счётчик на единицу. 4. Выводим через writeln счётчик 2

Лекция № 8 • Сортировка массива. Методы сортировки • Поиск элементов в массиве. Методы Лекция № 8 • Сортировка массива. Методы сортировки • Поиск элементов в массиве. Методы поиска • Понятие множества • Понятие записи

Сортировка массива – процесс перестановки элементов, с целю упорядочивания их в соответствии с каким Сортировка массива – процесс перестановки элементов, с целю упорядочивания их в соответствии с каким либо критерием Методы сортировки массивов Метод прямого выбора: Алгоритм: 1. Просматривая массив от первого элемента найти минимальный элемент и поместить его на место первого, а первый на место минимального 2. Просматривая массив от второго элемента найти минимальный элемент и поместить его на место второго элемента, а второй на место минимального 3. И т. д. до последнего элемента Метод прямого обмена Алгоритм: 1. Каждый элемент массива, начиная с первого сравнивается со следующим и если он больше следующего, то элементы меняются местами. Т. о. элементы с меньшим значением продвигаются к началу массива, а элементы с большим значением к концу массива 2. Процесс повторяется на единицу меньше раз чем элементов в массиве.

Пример программы сортировки методом прямого выбора Const S: =5; Var A: array[1. . S] Пример программы сортировки методом прямого выбора Const S: =5; Var A: array[1. . S] of integer; i : integer; {номер Эл-та от которого вед-ся поиск} min : integer; {номер минимального эл-та} j : integer; {номер эл-та, сравниваемого с минимальным} buf : integer; {буфер, для обмена элементов массива} k : integer; begin For k: =1 to S do read(A[k]); {ввод массива} For k: =1 to S-1 do Begin {поиск минимального эл-та в части массива От А[i] до [S}}

min: =i; For j: =i+1 to S do begin If A[j]<A[min] then min: =j; min: =i; For j: =i+1 to S do begin If A[j]

Пример процесса сортировки массива I=1 I=2 I=3 I=4 I=5 Пример процесса сортировки массива I=1 I=2 I=3 I=4 I=5

Методы поиска элементов в массиве Алгоритм простого перебора Применяется, если элементы массива неупорядочены) Бинарный Методы поиска элементов в массиве Алгоритм простого перебора Применяется, если элементы массива неупорядочены) Бинарный поиск Применяется, если элементы массива упорядочены Поиска минимального(макс имального значения)

Выбор среднего элемента массива при бинарном поиске Выбор среднего элемента массива при бинарном поиске

Множества – неупорядоченный набор различных элементов одинакового типа Объявление множеств разделе переменных VAR <имя Множества – неупорядоченный набор различных элементов одинакового типа Объявление множеств разделе переменных VAR <имя множества>: SET OF <базовый тип>; Объявление множеств с использованием раздела типов TYPE <имя типа>= SET OF <базовый тип>; VAR <имя множества>: <имя типа>

Пример множества TYPE радиодеталь=(резистор, конденсатор, диод, транзистор и т. д. ); Радиосхема = SET Пример множества TYPE радиодеталь=(резистор, конденсатор, диод, транзистор и т. д. ); Радиосхема = SET OF радиодеталь

Запись -Совокупность ограниченного числа данных различного типа Пример записи № Фамилия И. О. Оценка Запись -Совокупность ограниченного числа данных различного типа Пример записи № Фамилия И. О. Оценка 1 Иванов 534 2 3 Петров Сидоров 554 222 Пример объявления записи VAR B : RECORD N : Integer ФИО : PACKED ARRAY [1. . 20] of char; ОЦЕНКА : ARRAY [1. . 3] OF integer End;

Введение в объектноориентированное программирование Теоретический курс Введение в объектноориентированное программирование Теоретический курс

Лекция № 9 Понятие классов и методов Инкапсуляция и свойства объекта Наследование, полифоризм и Лекция № 9 Понятие классов и методов Инкапсуляция и свойства объекта Наследование, полифоризм и абстракция

Основные понятия ООП Объектно-ориентированное программирование (ООП) — это методика разработки программ, в основе которой Основные понятия ООП Объектно-ориентированное программирование (ООП) — это методика разработки программ, в основе которой лежит понятие объект. Объект — это некоторая структура, соответствующая объекту реального мира, его поведению. Задача, решаемая с использованием методики ООП, описывается в терминах объектов и операций над ними, а программа при таком подходе представляет собой набор объектов и связей между ними. Класс — это сложная структура, включающая, помимо описания данных, описание процедур и функций, которые могут быть выполнены над представителем класса — объектом. Данные класса называются полями, процедуры и функции — методами.

Пример объявления простого класса TPerson = class private fname: string[15]; string[35]; public procedure Show; Пример объявления простого класса TPerson = class private fname: string[15]; string[35]; public procedure Show; end; Примечания faddress: TPerson — это имя класса, fname и faddress имена полей, show — имя метода. Объекты как представители класса объявляются в программе в разделе var, например: var student: TPerson; professor: TPerson;

Объявление конструктора Выделение памяти осуществляется при помощи специального метода класса — конструктора constructor Create; Объявление конструктора Выделение памяти осуществляется при помощи специального метода класса — конструктора constructor Create; // конструктор professor : = TPerson. Create; - выделяется необходимая память для данных объекта professor. Помимо выделения памяти, конструктор, как правило, решает задачу присваивания полям объекта начальных значений, т. е. осуществляет инициализацию объекта. пример реализации конструктора для объекта TPerson: constructor TPerson. Create; begin fname : = ''; faddress : = ''; end;

Применение метода Для того чтобы метод был выполнен, необходимо указать имя объекта и имя Применение метода Для того чтобы метод был выполнен, необходимо указать имя объекта и имя метода, отделив одно имя от другого точкой professor. Free; professor. Show; метод-деструктор Free. Используется для того, чтобы освободить память, занимаемую полями объекта professor вызывает применение метода show к объекту professor. пример определения метода show класса Tperson // метод Show класса TPerson procedure TPerson. Show; begin Show. Message( 'Имя: ' + fname + #13 + 'Адрес: ' + faddress ); end;

ООП характеризуется следующими свойствами Инкапсуляция Наследование Полифоризм Абстракция Под инкапсуляцией понимается скрытие полей объекта ООП характеризуется следующими свойствами Инкапсуляция Наследование Полифоризм Абстракция Под инкапсуляцией понимается скрытие полей объекта с целью обеспечения доступа к ним только посредством методов класса. Метод установки значения свойства называется методом записи свойства (write), а метод получения значения свойства — методом чтения свойства (read). В описании класса перед именем свойства записывают слово property (свойство)

Установка значения свойства В программе для установки значения свойства не нужно записывать инструкцию применения Установка значения свойства В программе для установки значения свойства не нужно записывать инструкцию применения к объекту метода установки значения свойства, а надо записать обычную инструкцию присваивания значения свойству. Например, чтобы присвоить значение свойству Address объекта student, достаточно записать student. Address : = 'С. Петербург, ул. Садовая 21, кв. 3'; Компилятор перетранслирует приведенную инструкцию присваивания значения свойству в инструкцию вызова метода student. Set. Address('С. Петербург, ул. Садовая 21, кв. 3');

Наследование Концепция ООП предполагает возможность определять новые классы посредством добавления полей, свойств и методов Наследование Концепция ООП предполагает возможность определять новые классы посредством добавления полей, свойств и методов к уже существующим классам. Такой механизм получения новых классов называется порождением. При этом новый, порожденный класс (потомок) наследует свойства и методы своего базового, родительского класса. Пример объявления нового класса TEmployee = class(TPerson) FDepartment: integer; // номер отдела constructor Create(Name: TName; Dep: integer); end; Заключенное в скобки имя класса TPerson показывает, что класс TEmployee является производным от класса TPerson. В свою очередь, класс TPerson является базовым для класса TEmployee.

Пример реализации конструктора класса TEmployee Класс TEmpioyee должен иметь свой собственный конструктор, обеспечивающий инициализацию Пример реализации конструктора класса TEmployee Класс TEmpioyee должен иметь свой собственный конструктор, обеспечивающий инициализацию класса-родителя и своих полей constructor TEmpioyee. Create(Name: Tname; Dep: integer); begin inherited Create(Name); FDepartment: =Dep; end; В приведенном примере директивой inherited вызывается конструктор родительского класса. После этого присваивается значение полю класса -потомка. После создания объекта производного класса в программе можно использовать поля и методы родительского класса. Пример engineer : = TEmployee. Create('Сидоров', 413); engineer. address : = 'ул. Блохина, д. 8, кв. 10'; Первая инструкция создает объект типа TEmployee, вторая — устанавливает значение свойства, которое относится к родительскому классу.

Директивы protected и private, public • Элементы класса, объявленные в секции protected, доступны только Директивы protected и private, public • Элементы класса, объявленные в секции protected, доступны только в порожденных от него классах. Область видимости элементов класса этой секции не ограничивается модулем, в котором находится описание класса. Обычно в секцию protected помещают описание методов класса. • Элементы класса, объявленные в секции private, видимы только внутри модуля. Эти элементы не доступны за пределами модуля, даже в производных классах. Обычно в секцию private помещают описание полей класса, а методы, обеспечивающие доступ к этим полям, помещают в секцию protected. • Элементы класса, объявленные в секции public могут быть использованы всюду в программе.

Полифоризм и абстракция Полифоризм Полиморфизм означает, что для различных родственных классов можно задать единый Полифоризм и абстракция Полифоризм Полиморфизм означает, что для различных родственных классов можно задать единый образ действия Для реализации принципа полиморфизма используют виртуальные методы в базовом классе и его наследниках Для того, чтобы объявить метод, являющийся родоначальником такой иерархии, виртуальным, после его объявления следует поместить директиву Virtual. Для всех остальных переопределенных методов этой иерархии после из объявления записывается директива Override. Информация о виртуальных методах помещается в так называемой таблице виртуальных методов класса (virtual method table – VMT). Абстракция означает, что если какой-то класс является абстрактным, то в процессе выполнения приложения не может быть создано объектов этого класса. Класс становится абстрактным, если какой-то из его методов является абстрактным. Для того, чтобы объявить метод абстрактным, после записи его заголовка нужно поставить директиву abstract, и не нужно описывать этот метод в исполнительной части.

Система визуального объектноориентированного программирования Delphi Теоретический курс Система визуального объектноориентированного программирования Delphi Теоретический курс

Лекция № 10 Что такое DELPHI Организация проекта в DELPHI Основные окна в DELPHI Лекция № 10 Что такое DELPHI Организация проекта в DELPHI Основные окна в DELPHI Ввод и вывод данных. Функции преобразования типов

Что такое DELPHI? ? ? Delphi – мощная система визуального объектноориентированного проектирования, позволяющая решать Что такое DELPHI? ? ? Delphi – мощная система визуального объектноориентированного проектирования, позволяющая решать множество задач, в частности: • Создавать законченные приложения для Windows самой различной направленности, от чисто вычислительных и логических, до графических и мультимедиа. • Быстро создавать профессионально выглядящий оконный интерфейс для любых приложений. • Создавать мощные системы работы с локальными и удаленными базами данных • Создавать справочные системы (файлы. hlp) для своих приложений.

Организация проекта в DELPHI Файлы Назначение Файл проекта (. dpr) Используется для хранения информации Организация проекта в DELPHI Файлы Назначение Файл проекта (. dpr) Используется для хранения информации о формах и модулях. В нём содержатся операторы инициализации и запуска программ на выполнение Файл модуля (. pas) Текстовый файл модуля, используемый для хранения кода Файл формы (. dfm) Двоичный или текстовый файл, используется для хранения информации о формах Файл параметров проекта(. dfo) Файл ресурсов(. res) Хранит установки параметров проекта Бинарный файл содержит используемую проектом пиктограмму и прочие ресурсы

Продолжение таблицы Файлы Назначение Файлы резервных копий (. ~dp, . ~df, . ~pa) Файлы Продолжение таблицы Файлы Назначение Файлы резервных копий (. ~dp, . ~df, . ~pa) Файлы резервных копий для файлов проекта, формы и модуля Файл конфигурации окон (. dsk) Файл хранит конфигурацию всех окон среды разработки Исполняемый файл приложения. Он является (. exe) автономным исполняемым файлом, для которого больше ничего не требуется, если только вы не используете библиотеки, содержащиеся в DLL Объектный файл модуля (. dcu) Файлы справки (. hlp) Это откомпилированный файл модуля (. pas), который компонуется в окончательный исполняемый файл. Стандартный файл справки Windows

Основные окна в DELPHI Главное окно. Меню команд, панель инструментов и палитра компонентов Окно Основные окна в DELPHI Главное окно. Меню команд, панель инструментов и палитра компонентов Окно редактирования кода (Unit 1) Окно формы (Form 1) Макет окна разрабатываемого приложения Окно инспектора объектов (Object inspector) Properties (свойства) Изменяет характеристики объектов Events (события) Указывает на некоторый метод

Ввод данных 1. Ввод из окна ввода – используется функция Input. Box Пример Переменная Ввод данных 1. Ввод из окна ввода – используется функция Input. Box Пример Переменная : = Input. Box(Заголовок, Подсказка, Значение); Где: Переменная — переменная строкового типа, значение которой должно быть получено от пользователя; Заголовок — текст заголовка окна ввода; Подсказка — текст поясняющего сообщения; Значение — текст, который будет находиться в поле ввода, когда окно ввода появится на экране. 2. Ввод из поля редактирования – это компонент Edit Пример Х: = Str. To. Float(Edit 1. Text); Где: Str. To. Float – функция преобразования типов; Edit 1. Text - означает то, что переменной Х будет присвоено значение введённое в поле редактирования Edit 1

Вывод данных 1. Вывод в поле метки – компонент Label Пример Label 1. Caption: Вывод данных 1. Вывод в поле метки – компонент Label Пример Label 1. Caption: = ‘Корни уравнения: ’ + #13+ – переход на новую строку ‘x 1=’ +Float. To. Str(x 1)+…… Задать цвет поля вывода можно: Label 1. color: = Cl. Red – красный цвет. Цвет шрифта: Label 2. font. color: = Cl. Black – чёрный цвет. 1. Вывод в окно сообщения– компонент Show. Message Пример Show. Message(Сообщение); где Cообщение — текст, который будет выведен в окне с командной кнопкой OK. Компонент Message. Dlg Пример Message. Dlg(Сообщение, Тип, Кнопки, Контекст Справки) Сообщение — текст сообщения; Тип — тип сообщения. Сообщение может быть информационным, предупреждающим или сообщением о критической ошибке Кнопки — список кнопок, отображаемых в окне сообщения контекст. Справки — параметр, определяющий раздел с справочной системы, при нажатии клавиши

Константы функции Dlg. Message (тип сообщения) Константа Тип сообщения mt. Warning Внимание mt. Error Константы функции Dlg. Message (тип сообщения) Константа Тип сообщения mt. Warning Внимание mt. Error mt Information Ошибка Информация mt. Confirmation Подтверждение mt. Custom Обычное Константы функции Dlg. Message (Кнопки) Константа Кнопка mb. Yes mb Abort mb. No No mb. Retry mb. OK OK mblgnore Ignore mb. Cancel mb. All mb. Help

Вывод данных 1. Вывод в поле компонента Memo Пример form 1. Memo 1. Lines. Вывод данных 1. Вывод в поле компонента Memo Пример form 1. Memo 1. Lines. Add('Уравнение имеет корни: X 1='+floattostr(x 1)+ ‘X 2='+floattostr(x 2));

Функции преобразования типов Функция Float. To. Str (n) Значение функции Строка, являющаяся изображением вещественного Функции преобразования типов Функция Float. To. Str (n) Значение функции Строка, являющаяся изображением вещественного n Float. To. Str(n, f , k, m) Строка, являющаяся изображением вещественного п. При вызове функции указывают: f — формат (способ изображения); k — точность (нужное общее количество цифр); m — количество цифр после десятичной точки Str. To. Int (s) Целое, изображением которого является строка s Str. To. Float (s) Вещественное, изображением которого является строка s

Лекция 11 Графика в Delphi Холст, карандаш, кисть Вывод текста Методы вычерчивания графических примитивов Лекция 11 Графика в Delphi Холст, карандаш, кисть Вывод текста Методы вычерчивания графических примитивов Вставка изображений

Координаты точек холста Form 1. Canvas. Rectangle (10, 100, 100) – инструкция вычерчивания прямоугольника Координаты точек холста Form 1. Canvas. Rectangle (10, 100, 100) – инструкция вычерчивания прямоугольника

Карандаш (canvas. Pen) используется для вычерчивания точек, линий, контуров геометрических фигур Свойство Color Width Карандаш (canvas. Pen) используется для вычерчивания точек, линий, контуров геометрических фигур Свойство Color Width Style Mode Определяет Цвет линии Толщину линии Вид линии Режим отображения Примеры Image 1. Canvas. pen. color: =clred Image 1. Canvas. pen. width: =3 Image 1. Canvas. pen. style: =ps. Solid Кисть (canvas. Brush) используется методами, обеспечивающими вычерчивание замкнутых областей, например геометрических фигур, для заливки (закрашивания) этих областей Свойство Определяет Color Цвет закрашивания Style замкнутой области Стиль (тип) заполнения области Примеры Image 1. Canvas. brush. color: =clred Image 1. Canvas. brush. style: =bsclear

Стили заполнения областей Стили заполнения областей

Вывод текста Инструкция вызова метода Text. Out в общем виде выглядит следующим образом: Объект. Вывод текста Инструкция вызова метода Text. Out в общем виде выглядит следующим образом: Объект. Canvas. Text. Out(x, у, Текст) объект — имя объекта, на поверхность которого выводится текст; х, у — координаты точки графической поверхности, от которой выполняется вывод текста ( см. рис. ); Текст — переменная или константа символьного типа, значение которой определяет выводимый методом текст

Фрагмент программы вывода текста на поверхность формы with Form 1. Canvas do begin // Фрагмент программы вывода текста на поверхность формы with Form 1. Canvas do begin // установить характеристики шрифта Font. Name : = 'Tahoma'; Font. Size : = 20; Font. Style : = [fsltalic, fs. Bold] ; Используемый шрифт Размер шрифта Стиль начертания шрифта Brush. Style : = bs. Clear; // область вывода текста не закраши. Text. Out(0, 10, 'Borland Delphi 7'); end; Text. Out(Pen. Pos. X, Pen. Pos. Y, 'Delphi 7') Координаты правой границы уже выведенного текста

Методы вычерчивания графических примитивов Компонент. Canvas. Line. To(x, у) Move. To (x, y) Poly. Методы вычерчивания графических примитивов Компонент. Canvas. Line. To(x, у) Move. To (x, y) Poly. Line (x, y) Вычерчивание линии от текущей позиции карандаша до точки (x, y) Перенос карандаша в любую точку Вычерчивает ломанную линию Объект. Canvas. Ellipse(x 1, y 1, х2, у2] – окружность, элипс. объект — имя объекта (компонента), на поверхности которого выполняется вычерчивание; x 1, y 1, х2, у2 — координаты прямоугольника, внутри которого вычерчивается эллипс или, если прямоугольник является квадратом, окружность

Методы вычерчивания графических примитивов Объект. Canvas. Arc(x 1, y 1, х2, у2, х3, у3, Методы вычерчивания графических примитивов Объект. Canvas. Arc(x 1, y 1, х2, у2, х3, у3, х4, у4) – вычерчивание дуги x 1, y 1, х2, у2 — параметры, определяющие эллипс (окружность), частью которого является вычерчиваемая дуга; х3, у3 — параметры, определяющие начальную точку дуги; П х4, у4 — параметры, определяющие конечную точку дуги.

Методы вычерчивания графических примитивов Объект. Canvas. Rectangle(x 1, y 1, x 2, y 2) Методы вычерчивания графических примитивов Объект. Canvas. Rectangle(x 1, y 1, x 2, y 2) – вычерчивает прямоугольник x 1, y 1 и х2, у2 — координаты левого верхнего и правого нижнего углов прямоугольника. Объект. Canvas. Round. Rec(x 1, y 1, х2, у2, х3, у3) - вычерчивает прямоугольник, но со скругленными углами. x 1, y 1, х2, у2 -- параметры, определяющие положение углов прямоугольника, в который вписывается прямоугольник со скругленными углами; х3 и у3 — размер эллипса, одна четверть которого используется для вычерчивания скругленного угла ( см. рис)

Методы вычерчивания графических примитивов Вид линии контура (цвет, ширина и стиль) определяется значениями свойства Методы вычерчивания графических примитивов Вид линии контура (цвет, ширина и стиль) определяется значениями свойства Реп, а цвет и стиль заливки области внутри прямоугольника — значениями свойства Brush поверхности (canvas), на которой прямоугольник вычерчивается. Есть еще два метода, которые вычерчивают прямоугольник, используя в качестве инструмента только кисть (Brush). Метод Fill. Rect вычерчивает закрашенный прямоугольник, а метод Frame. Rect — только контур. У каждого из этих методов лишь один параметр — структура типа TRect. Поля структуры TRect содержат координаты прямоугольной области, они могут быть заполнены при помощи функции Rect.

Процедура, которая на поверхности формы вычерчивает прямоугольник с красной заливкой и прямоугольник с зеленым Процедура, которая на поверхности формы вычерчивает прямоугольник с красной заливкой и прямоугольник с зеленым контуром procedure TForm 1. Button 1 Click(Sender: TObject); Var r 1, r 2: TRect; // координаты углов прямоугольников Begin // заполнение полей структуры // зададим координаты углов прямоугольников r 1 : = Rect(20, 60, 40); r 2 : = Rect(10, 40, 50); with fоrm 1. Canvas do begin Brush. Color : = cl. Red; Fill. Rect(r 1); // закрашенный прямоугольник Brush. Color : = cl. Green; Frame. Rect(r 2}; // только граница прямоугольника end;

Методы вычерчивания графических примитивов Инструкция Polygon -Вычерчивает многоугольник/ В качестве параметра метод получает массив Методы вычерчивания графических примитивов Инструкция Polygon -Вычерчивает многоугольник/ В качестве параметра метод получает массив типа TPoint процедура, которая, используя метод polygon, вычерчивает треугольник procedure TForm 1. Button 2 Click(Sender: TObject); var pol: array[1. . 3] of TPoint; // координаты точек треугольника begin pol[1]. x : = 10; Pol[1]. y : = 50; pol[2]. x : = 40; pol[2]. y : = 10; pol[3]. х : = 70; pol[3]. у : = 50; Forml. Canvas. Polygon(pol); end;

Методы вычерчивания графических примитивов Form 1. Canvas. Pixels[10, 10] - рисует точку на поверхности Методы вычерчивания графических примитивов Form 1. Canvas. Pixels[10, 10] - рисует точку на поверхности формы с координатами 10, 10 Комментарии к лабораторной № 3 Инструкция случайным образом задаёт цвет карандаша Image 1. Canvas. Pen. Color : = RGB(Random(256), Random(256)) Инструкция случайным образом задаёт рисует линии Image 1. Canvas. Line. To (Random(Client. Width), Random(Client. Height)); Инструкция случайным образом задаёт размер шрифта от 8 пт. До 16 пт. Image 1. Canvas. Font. Size : = 8 + Random(8);

Вставка изображений Инструкция загружает иллюстрацию из файла bart. bmp и выводит ее в поле Вставка изображений Инструкция загружает иллюстрацию из файла bart. bmp и выводит ее в поле вывода иллюстрации (Image 1) Form 1. Image 1. Picture. Load. From. File('e: tempbart. bmp')

Лекция 12 Файлы Объявление файла Назначение файла Вывод в файл Ошибки открытия файла Закрытие Лекция 12 Файлы Объявление файла Назначение файла Вывод в файл Ошибки открытия файла Закрытие файла Чтение данных из файла

Файл. Объявление файла Файл — это именованная структура данных, представляющая собой последовательность элементов данных Файл. Объявление файла Файл — это именованная структура данных, представляющая собой последовательность элементов данных одного типа, причем количество элементов последовательности практически не ограничено. В первом приближении файл можно рассматривать как массив переменной длины неограниченного размера. Объявление файлов в общем виде: Имя: file of Тип элементов Примеры res: file of char; // файл символов koef: file of real; // файл вещественных чисел Объявление текстового файла: Имя: Text. File; Здесь: имя — имя файловой переменной; Text. File — обозначение- типа, показывающее, что Имя — это файловая переменная, представляющая текстовый файл.

Назначение файла Процедура Assign. Fiie связывает файловую переменную с конкретным файлом. Описание процедуры Assign. Назначение файла Процедура Assign. Fiie связывает файловую переменную с конкретным файлом. Описание процедуры Assign. Fiie выглядит следующим образом: Assign. Fiie(var f, Имя. Файла: string) Примеры Assign. File(f, ‘C: студенты. db'); fname: =('otchet. txt'); Assign. Fiie(f, fname); Вывод в файл Запись в общем виде-- writeln(Файловая Переменная, Список Вывода); где: Файловая Переменная — переменная, идентифицирующая файл, в который выполняется вывод; Список Вывода- - разделенные запятыми имена переменных, значения которых надо вывести в файл. Примеры Writeln (f, 'Корни уравнения', xl, х2); Writeln (f, edit 1. text, edit 2. text); Вывод в файл текста из полей компонента TEDIT

Открытие файла для вывода Режимы открытия файла для записи в него данных Перезапись (запись Открытие файла для вывода Режимы открытия файла для записи в него данных Перезапись (запись нового файла поверх существующего или создание нового файла) Процедура Rewrite(f), где f — файловая переменная типа Text. File Добавление в существующий файл Процедура Append (f), где f — файловая переменная типа Text. File.

Ошибки открытия файла Сообщение об ошибке открытия файла Функция контроля за результатом выполнения инструкции Ошибки открытия файла Сообщение об ошибке открытия файла Функция контроля за результатом выполнения инструкции открытия файла IOResult (input-Output Result — результат ввода/вывода) IOResult =0 –успешное выполнение операции IOResult <>0 - ошибка {$I-} - директива запрещающая автоматическую обработку ошибок ввода/вывода {$I+} - директива восстанавливающая режим автоматической обработки ошибок ввода/вывода

Фрагмент программы Алгоритм открытия файла с обработкой возможной ошибки Assign. File(f, filename); {$I-} Append(f) Фрагмент программы Алгоритм открытия файла с обработкой возможной ошибки Assign. File(f, filename); {$I-} Append(f) // открыть для добавления {$I+} if IOResult<> 0 // ошибка открытия then Rewrite(f); // открыть для записи Закрытие файла – процедура Close(f), f – имя файловой переменной

Алгоритм лабораторной работы 5. 1 1. Процедура контроля открытия файла с обработкой возможной ошибки Алгоритм лабораторной работы 5. 1 1. Процедура контроля открытия файла с обработкой возможной ошибки Данная процедура пишется для события on. Activate – двойной щелчок мыши справа обеспечивает открытия окна ввода программного кода (компонент Form, закладка Events, окно Object. Inspector) 2. Процедура добавления в созданный файл данных: Данная процедура пишется для кнопки «Добавить» А) Условие IF (Если все поля заполнены то записывать в Файл если нет то выводить сообщение ‘Все поля должны быть заполнены’) В) (Length(edit 1. text)=0) or (Length(edit 2. text)=0) – отсутствие заполненных полей С) writeln(f, edit 1. text, edit 2. text, edit 3. text) – запись в файл 3. Процедура закрытия файла: Данная процедура пишется для события on. Close – двойной щелчок мыши справа обеспечивает открытия окна ввода программного кода (компонент Form, закладка Events, окно Object. Inspector) close. File(f) –программный код Примечание: автоматически закрывает и сохраняет изменения в файле при закрытии окна программы

Вывод из файла Инструкции, открывающие файл для вывода Assign. File(f, 'c: студенты. db'); -связь Вывод из файла Инструкции, открывающие файл для вывода Assign. File(f, 'c: студенты. db'); -связь файла с файловой переменной Reset(f); - непосредственно открытие файла Чтение данных из файла readln(Файловая переменная, Список переменных) ; Файловая переменная — переменная типа Text. File; Список переменных — имена переменных, разделенные запятыми Примеры readln(f, buf); // прочитать строку из файла Memo 1. Lines. Add(buf); // добавить строку в поле Memo 1 Определение конца файла Функция EOF (End of File — конец файла) while not EOF(f) do begin - Пока не закончится файл выполнять

Алгоритм лабораторной работы 5. 2 Пишется одна процедура для кнопки «Открыть» 1. В разделе Алгоритм лабораторной работы 5. 2 Пишется одна процедура для кнопки «Открыть» 1. В разделе описания переменных var вводим: А) файловую переменную f (тип Text. File) В) буфер для чтения из файла buf (тип String) C) Переменную для имени файла например Fname (тип String) 2. Пишем основную программу А) Присваиваем переменной Fname данные введённые из поля Edit Fname: =Edit 1. text B) Согласовываем файловую переменную с файлом Fname (Assign. File) C) Открываем для чтения {$I-} Reset(f); {$I+} D) Проверяем на ошибки: IF IOResult<>0 Then выводим сообщение об Ошибке (showmessage) и выходим из программы (exit) E) Пока не закончится файл (EOF(f)) : - читаем строки из файла (readln) - Добавляем в компонент Memo (Memo 1. lines. add) F) Закрываем файл (Close. File(f)).

Лекция 13 Базы данных. Понятие Классификация баз данных Структура базы данных Создание каталога, псевдонима, Лекция 13 Базы данных. Понятие Классификация баз данных Структура базы данных Создание каталога, псевдонима, таблиц. Программа управления базой данных

База данных - это программа, которая обеспечивает работу с информацией. При запуске такой программы База данных - это программа, которая обеспечивает работу с информацией. При запуске такой программы на экране, как правило, появляется таблица, просматривая которую пользователь может найти интересующие его сведения. Если система позволяет, то он может внести изменения в базу данных: добавить новую информацию или удалить ненужную. Классификация баз данных Локальные Paradox, d. Base, Fox. Pro и Access Данные локальной базы данных (файлы данных) находятся на одном (локальном) устройстве, в качестве которого может выступать диск компьютера или сетевой диск (диск другого компьютера, работающего в сети). Удалённые Interbase, Oracle, Sysbase, Infomix, Microsoft SQL Server Данные (файлы) удаленной базы данных находятся на удаленном компьютере. (Следует обратить внимание, что каталоги удаленного компьютера не могут рассматриваться как сетевые диски. )

Создание базы данных 1. Создание каталога. 2. Создание псевдонима. 3. Создание таблиц. Псевдоним (Alias) Создание базы данных 1. Создание каталога. 2. Создание псевдонима. 3. Создание таблиц. Псевдоним (Alias) — это короткое имя, поставленное в соответствие реальному, полному имени каталога базы данных. Программа работы с базой данных для доступа к данным использует не реальное имя, а псевдоним BDE Administrator – утилита для создания псевдонимов

Создание таблиц Таблица создаётся при помощи утилиты Database Desktop Создание таблиц Таблица создаётся при помощи утилиты Database Desktop

Заполнение таблицы Заполнение таблицы

Type (Тип поля) - определяет тип данных, которые могут быть помещены в поле Тип Type (Тип поля) - определяет тип данных, которые могут быть помещены в поле Тип Констан та Содержимое поля Alpha A Строка символов. Максимальная длина строки определяется характеристикой Size, значения которой находятся в диапазоне 1— 255 Number N Число из диапазона 10 -307— 10308 с 15 -ю значащими цифрами Date D Дата Graphic G Графика Logical L Логическое значение "истина" (True) или "ЛОЖЬ" (False)

Свойства таблицы Required Field – устанавливается флажок если данные, для хранения которых предназначено поле, Свойства таблицы Required Field – устанавливается флажок если данные, для хранения которых предназначено поле, должны обязательно присутствовать в записи Minimum value (Минимальное значение) и Maximum value (Максимальное значение) - используется если значение, записываемое в поле, должно находиться в определенном диапазоне Default value - позволяет задать значение по умолчанию, которое будет автоматически записываться в поле при добавлении к таблице новой записи Picture - позволяет задать шаблон, используя который можно контролировать правильность вводимой в поле информации. Шаблон представляет собой последовательность обычных и специальных символов. пример ##-##-##. При вводе информации в поле «телефон» будут появляться только цифры (нажатия клавиш с другими символами игнорируются), причем после ввода 2 -ой и 4 -ой цифр в поле будут автоматически добавлены дефисы.

Специальные символы, используемые при записи шаблонов Символ шаблона Допустимый при вводе символ & Любой Специальные символы, используемые при записи шаблонов Символ шаблона Допустимый при вводе символ & Любой символ (если введена буква, то она автоматически преобразуется в прописную) @ Символ, следующий за символом "точка с запятой", интерпретируется как обычный символ, а не символ шаблона * Любое количество повторяющихся, определяемых следующим за "звездочкой" символом шаблона

Доступ к базе данных Компонент Data. Sourse Свойство Значение Что определяет Name Data. Source Доступ к базе данных Компонент Data. Sourse Свойство Значение Что определяет Name Data. Source 1 Используется для доступа к свойствам компонента Data. Set Table 1 Имя компонента, представляющего собой входные данные Компонент Table Свойство Значение Name Table 1 Database. Name Студенты Table. Name Students. db Active True Что определяет Псевдоним базы данных Таблица базы данных Признак активации таблицы

Значения свойств компонентов DBEdit 1 -DBEdit 3 и DBMemo 1 Свойство Компонент DBEdit 1 Значения свойств компонентов DBEdit 1 -DBEdit 3 и DBMemo 1 Свойство Компонент DBEdit 1 DBEdit 2 DBEdit 3 DBEdit 4 DBMemo 1 Data. Source 1 Data. Fieid Фамилия Имя Дата Рождения Номер телефона Место жительства

Взаимодействие компонентов отображения и доступа к данным Взаимодействие компонентов отображения и доступа к данным

Запрос на выборку из таблицы SELECT Список-Полей FROM Таблица WHERE Критерий ORDER BY Список. Запрос на выборку из таблицы SELECT Список-Полей FROM Таблица WHERE Критерий ORDER BY Список. Полей SELECT — команда выбора записей из таблицы и вывода содержимого полей, имена которых указаны в списке; FROM — параметр команды, который определяет имя таблицы, из которой нужно сделать выборку; WHERE — параметр, который задает критерий выбора. В простейшем случае критерий — это инструкция проверки содержимого поля; ORDER BY - параметр, который задает условие, в соответствии с которым будут упорядочены записи, удовлетворяющие критерию запроса.

Программный код запроса информации о конкретном человеке procedure TForm 1. Button 1 Click(Sender: TObject); Программный код запроса информации о конкретном человеке procedure TForm 1. Button 1 Click(Sender: TObject); var fam: string[30]; begin fam: =Input. Box('Выборка информации из БД', 'Укажите фамилию и щелкните на OK. ', ''); if fam <> '' // пользователь ввел фамилию then begin with form 1. Query 1 do begin Close; // закрыть файл-результат выполнения предыдущего запроса SQL. Clear; // удалить текст предыдущего запроса // записываем новый запрос в свойство SQL. Add('SELECT Fam, Name, Nomer'); SQL. Add('FROM ": Students. db"'); SQL. Add('WHERE'); SQL. Add('(Fam = "'+ fam + '")'); SQL. Add('ORDER BY Name, Fam'); Open; // активизируем выполнение запроса end;

THE END Спасибо за внимание!!! THE END Спасибо за внимание!!!