Презентація на тему «Delphi»

content: Объектно-ориентированноепрограммированиеDelphi

content: Основные понятияСреда программирования DelphiПроектыОписание объектовВыход

content: Объектно-ориентированное программирование (ООП) – это программирование, основанное на составлении программ в виде совокупности объектов, каждый из которых принадлежит определенному классу, а классы составляют иерархию наследования.Язык программирования Delphi построен на концепции объектно-ориентированного программирования на основе языка Паскаль.

content: Delphi оперирует объектными типами данных, которые называют классами, а их экземпляры – объектами. Объекты характеризуются полями.Объекты имеют определённый набор свойств (атрибутов) и могут выполнять действия. Действия могут выполняться и над ними.Класс – это структура, которая, кроме описания данных, содержит описание процедур и функций, которые могут быть выполнены представителем класса – объектом.

content: Данные класса называются полями, процедуры и функции – методами.Поля класса являются переменными, которые описываются в середине класса. Они предназначены для хранения данных во время работы объекта.Методы – это процедуры и функции, описанные в классе и предназначенные для операции над его полями.От обыкновенных процедур и функций методы отличаются тем, что им во время вызова передается указатель на объект, который его вызвал, поэтому обрабатываются поля того объекта который вызывал метод.

content: зоопаркБелкаЛисицаМедведьПопугайСиницаКанарейкаЦвет шерсти - рыжийХвост – длинныйРазмер - маленькийЦвет шерсти - рыжийХвост – длинныйРазмер - среднийЦвет шерсти - рыжийХвост – длинныйРазмер - большойЦвет шерсти –Хвост –Размер -Класс БелокКласс ЛисицКласс МедведейКласс ПопугаевКлетка с птицамиКласс СиницКлассы:ОбъектыПоле (параметр объекта)

content: Объекты, которые визуализированы на стадии проектирования, называют компонентами.Работа самой операционной системы Windows и ее приложений основана на понятии событие. Если программный компонент меняет свое состояние, он генерирует соответствующее уведомление, или реагирует на него. Таким образом – событие – это уведомление, которое генерируется программой для того, чтобы проинформировать на изменение. Обработка событий выполняется соответствующими подпрограммами.Создание программ объектно-ориентированными языками состоит в том, чтобы разработать визуальные объекты и программы, для обработки событий при работе с объектами. Все составляющие данной разработки называют проектом.

content: Объектно-ориентированное программирование базируется на трех основных понятиях: инкапсуляция, наследственность, полиморфизм.Инкапсуляция – объединение данных и методов в объект, тесно связана со скрытием внутренней структурой объекта. Инкапсуляция дает возможность делать объекты похожими на программные модули, в которых внутренняя структура спрятана.Наследование . При создании нового класса, который расширяет возможности существующего, нет необходимости в повторном переписывании полей и методов. Достаточно объявить новый класс дочерним относительно существующего (родительского) и добавить к нему новые поля и методы. Создание новых классов на базе существующих называется наследованием.Полиморфизм. В дочерних классах можно модифицировать существующие в родительском классе методы. Полиморфизм – возможность использования одинаковых имен для методов которые входят в разные классы.

content: Основы проектной разработки в среде DelphiРазработка проекта в среде Delphi состоит из 5 основных этапов:1 этап. Формулировка задания, для которого реализуется проект;2 этап. Проведение проектного анализа и формирование требований к классам, объектам, компонентам, которые понадобятся в данном проекте;3 этап. Выбор необходимых компонентов и разработка алгоритмов обработки компонентов;4 этап. Компиляция программы на основании разработанного проекта;5 этап. Проверка правильности работы программы (отладка) и соответствие постановки задачи.

content: Объектно-ориентированная средаОбъектно-ориентированная программная среда предоставляет в распоряжение программиста готовые объекты – элементы интерфейса операционной системы Windows.Интегрированная среда обеспечивает высокоэффективную работу программиста за счет работы одновременно в нескольких окнах.В Delphi существует 10 окон различного назначения, но после загрузки среды появляются 4 основных окна:главное окно Delphi7 – Progect1 (имя проекта);окно с формой для проектирования программных продуктов Form1;окно инспектора объектов Object Inspector;окно редактора кода (написание программы) Unit.pas.

content: Форма – это основа окна Windows-приложения, создаваемого в среде Delphi.Форма – основной объект и, как и остальные объекты, имеет свойства, которые можно задавать и менять.Увидеть свойства объекта и изменить их можно в окне Инспектора объектов. (Не забудьте предварительно объект выделить!)Компоненты (готовые объекты) – элементы интерфейса операционной системы Windows.Компоненты могут быть визуальные и невизуальные.Напримеркнопка – визуальный компонент.таймер, компоненты построения диалога – невизуальные компоненты, но дающие видимый результат.

content: Окно проектаОкно Редактора кодовОкно главной формыОкно ИнспектораобъектовПанели инструментов(«быстрые» кнопки)Кнопки компонентов

content: Кроме этих окон полезно иметь под рукой окно дерева объектов Object TreeView (открывается горячими клавишами Shift+Alt+F11), с помощью которого можно не только видеть объекты, но и перемещаться между ними.Главное окно содержит:строка заголовка;строка главного меню;панель инструментов;палитра компонентов.Все визуальные компоненты отображаются на палитре компонентов Component Palett, они разделены на группы Standart, Win32, System, Data Access и т.д. по своему назначению.Основные элементы управления Windows можно выбрать из панели Standart (Базовые компоненты).

content: Все компоненты Delphi хранятся в библиотеке визуальных компонентов VCL (Visual Componenet Library). Каждый из компонентов, а также форма описаны соответствующими классами Паскаля: к названию компонента добавляется буква T.Например:форма (Form) описывается классом TForm;компонент «кнопка» (Button) описывается классом TButton.

content: файл проекта (.dpr) – содержит код проекта, для сохранения информации о формах и модулях;файл модуля формы (.pas) - содержит код модуля формы (именно файлы модулей доступны для редактирования в Редакторе Кода, остальные файлы проекта с расширением, отличающимся от .pas, редактировать не рекомендуется).файл описания формы (.dfm) – содержит описание формы, включающее данные о ее свойствах, о помещенных в нее компонентах и т.п.;файл параметров проекта (.dof) – для хранения установок параметров проекта, содержит параметры, устанавливаемые для проекта в пункте главного меню Project => Options;файл ресурсов (.res) – хранит используемую в проекте пиктограмму;файлы резервных копий (.~dp, .~df, .~ра) - файлы резервных копий файлов проектов, форм и программных модулей.файл настроек проекта (.cfg) - содержит данные о конфигурации проекта ;файлы модулей также имеют расширение .pas и являются обычными модулями, написанными на языке Pascal. Обычно они служат в качестве библиотек процедур и функций.Проект Delphi состоит из нескольких частей, которые размещены в файлах:

content: Компилятором создается:исполняемый файл (.ехе) – (автономный, если не используются библиотеки DLL и т.д.);объектный файл модуля (.dcu) – результат компиляции программных модулей (.pas) компонуется в исполняемый файл;файл справки (.hlp);файлы изображений (.wmf,.bmp,.ico).

content: Адресация к полям объектаИмя поля объекта является сложно-подчиненной структурой, которая состоит из:Имени класса;Имени объекта;Имени поля (или действия).например:Имя процедуры:TForm1.Button1ClickОбращение к имени поля заданного объекта:Label1.Caption tttButton1.CaptionИмяклассаИмяобъекадействиеИмяобъектаИмяполяИмяобъектаИмяполя

content: Компонент Form (Форма)Изучение свойств формыСоздание нового проекта - команда FileNewApplication, при этом создается пустая форма, она отображается в окне формы.Форма – основной объект и, как и остальные объекты, имеет свойства, которые можно задавать и менять. Окно инспектора объектов Object Inspector отображает свойства этой формы, где описываются все необходимые свойства формы. Свойства могут быть установлены по умолчанию автоматически или настраиваться разработчиком самостоятельно.Форма – это основа окна Windows-приложения, создаваемого в среде Delphi.На форме располагают все другие компоненты.

content: Align (выравнивание): отвечает за способ выравнивания внутри контейнера. Возможные значения свойства: alNone (нет выравнивания), alTop, alBottom, alLeft, alRight, alClient (выравнивание по верху, низу, левому, правому краю и во весь контейнер).Constraints (ограничения): ограничивает минимальный и максимальный размер компонента в случае масштабирования. Для этого необходимо задать Constraints.MaxHeight, Constraints.MinHeight, Constraints.MaxWidth, Constraints.MinWidth значениями, отличными от нуля.Свойства компонентаForm (Форма)

content: AlphaBlend – прозрачность фона (FalseTrue);AlphaBlendValue – степень прозрачности (0-255);AutoScroll – установка скроллинга прокрутки (FalseTrue);AutoSize – установка автоматического подбора размера (FalseTrue);BorderIcons – ВклВыкл системных кнопок;BorderStyle – стиль оформления рамки;Caption (заголовок):– строка текста, служащая заголовком или поясняющая назначение компонента.Color – цвет; определяет цвет компонента. Цвета в Delphi можно задавать с помощью констант clBlack, clNavy, clGreen, clTeal, clMaroon, clPurple, clOlive, clSilver, clGray, clBlue, cLime, clAqua, clRed, clFuchsia, clYellow, clWhite и других.Ctl3D – установка объемного изображения (FalseTrue);Cursor (курсор): задает, как будет выглядеть указатель мыши, когда он проходит над компонентом. Возможные значения crDeafult, crCross, crHandPoint и другие.Enabled (доступен): определяет доступность компонента (на недоступную кнопку нельзя нажать, в недоступное поле ввода нельзя ничего ввести и т.д.). Возможные значения: true или false;Font – установка параметров шрифта;Name – имя формы.

content: На форме можно располагать различные компоненты, которые размещены на панелях Standard, Additional,Win32, Sistem и др.Компоненты располагаются методом методом drag and drop (перетащи и оставь) . Информация о размещенных компонентах на форме отображается в окне Object TreeView. С помощью информации этого окна можно активировать (выделять) ту или иную компоненту на форме. Во время активации компоненты меняется содержимое окна Object Inspector в соответствии с выбранным объектом, его свойствами.В этом окне и можно менять свойства (вкладка Properties) и события (Events) компоненты.Свойства компоненты описываются указанием их возможных значений и списка.Например:Cвойство Caption описываетзаголовок компоненты и стандартноему присваивается имя компонентыButton1, его можно изменить.(например «Нажми на меня!»)Свойство Color определяет цветкомпоненты, стандартно имеет значение цвета формы, можно по своему усмотрению из предлагаемого списка.

content: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs;typeTForm1 = class(TForm)Button1: TButton;Label1: TLabel;private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;implementation{$R *.dfm}end.При размещении компоненты на форме и описании его свойств в окне Unit формируется программное описание формы и входящих в нее компонентов(объявляется класс Tform1 из стандартного класса TForm, в его состав входят объекты:Button1 из класса TButton,Label1 из класса TLabel1и пр.)

content: Каждой компоненте можно описать событие.Событие можно определить по нажатию кнопкой мыши на компоненту (OnClick), по наведению (OnMouseMove), по нажатию кнопки Enter (OnEdit) и др. Это определяется в окне Events (двойным щелком в соответствующем поле).Одновременно с этим в окне Unit появляется описание процедуры в которой и можно записывать программу обработки события.procedure TForm1.Button1Click(Sender: TObject);beginend;procedure TForm1.Label1MouseMove(Sender: TObject; Shift: TShiftState);beginend;Процедура для описания события по нажатию (Button1Click) на кнопкуПроцедура для описания события по движению мыши (Label1MouseMove) на текстовое поле

content: Визуальные компоненты среды Delphi можно выбрать из вкладок, которые содержат группы компонентов.Панель Standard содержит ряд часто используемых компонентов общего назначениякнопкаКомпонентТипОписаниеметкаLabelИспользуется для размещения на формах и других контейнерах текста, который не изменяется пользователем.окно редактированияEditИспользуется для ввода пользователем однострочных текстов. Может использоваться для отображения текста.многострочное окно редактированияMemoИспользуется для ввода и отображения многострочных текстов.Панель Additional является дополнением страницы Standard и содержит ряд часто используемых компонентов общего назначения

content: кнопкаКомпонентТипОписаниекомандная кнопкаButtonИспользуется для создания кнопок, которыми пользователь выбирает команды в приложении.изображениеImageИспользуется для отображения графикиСписок строкListBoxКомпонента используется для формирования списка ввода и выбора строки из нее.Выпадающий списокComboBoxКомпонента используется для формирования выпадающего списка и выбора строки из нее.индикатор с флажкомCheckboxПозволяет пользователю включать и выключать различные опции.радиокнопкаRadioButtonПредлагают пользователю набор альтернатив, из которых выбирается одна.таблица строкStringGridИспользуется для отображения текстовой информации в таблице из строк и столбцов.

content: Компонент Label (Текстовое поле)Label (Текстовое поле) – это объект, с помощью которого на форму можно нанести разнообразные надписи, тексты.Объект Labelотносится к классу ТLabel . Ее компонента относится к разряду визуальных и расположена на панели Standart.

content: Aligment – выравнивание текста внутри компоненты;Align – выравнивание;AutoSize – установка автоматического подбора размера (FalseTrue);Caption – заголовок;Color – цвет;Cursor – установка вида курсора;Enabled – установка активной надписи (FalseTrue);Font – установка параметров шрифта;Name – имя текстового поля;Height – высота текстового поля;Width– ширина текстового поля.Свойства компоненты Label

content: Компонент Button (Кнопка)Объект Button (Кнопка) предназначен для управления процессами, которые происходят на форме.Объект Button относится к классу ТButton. Ее компонента относится к разряду визуальных и расположена на панели Standart.

content: Caption – заголовок;Cursor – установка вида курсора;Enabled – установка активной кнопки;Font – установка параметров шрифта;Name – имя кнопки;Height – высота кнопки;Width– ширина кнопки.Свойства компоненты Button

content: Компонент Edit (поле редактирования, однострочное поле ввода)Объект Edit (поле редактирования) предназначен для введения, отображения и редактирования одной текстовой строки, длинной до 256 символов.Объект Edit относится к классу ТEdit. Ее компонента относится к разряду визуальных и расположена на панели Standart.

content: Свойства компоненты EditAutoSize – установка автоматического подбора размера (FalseTrue);Color – цвет;Ctl3D – установка объемного изображения (FalseTrue);Cursor – установка вида курсора;Enabled – установка активной компоненты (FalseTrue);Font – установка параметров шрифта;Name – имя компоненты;Text – текст внутри поля;Height – высота поля;Width– ширина поля.

content: Компонент Image (картинка)Объект Image (Картинка) предназначен для вставки картинок в форму.Объект Image относится к классу ТImage. Ее компонента относится к разряду визуальных и расположена на панели Additional.

content: Свойства компоненты ImageAlign – расположение, выравнивание;AutoSize – установка автоматического подбора размера (FalseTrue);Cursor – установка вида курсора;Enabled – установка активной компоненты (FalseTrue);Name – имя компоненты;Picture – выбор рисунка;Stretch – отображение рисунка внутри рамки:True - рисунок вписывается в рамку;False - рисунок сохраняет свои размеры;Height – высота поля;Width– ширина поля.

content: Компонент Memo (поле для ввода/вывода длинного многострочного текста)Объект Memo (поле многострочного текста) предназначен для введения, отображения и редактирования текста, длинной до 64 000 символов.Объект Memo относится к классу ТMemo. Ее компонента относится к разряду визуальных и расположена на панели Standart.

content: Свойства компоненты MemoAlign – расположение, выравнивание;Cursor – установка вида курсора;Enabled – установка активной компоненты (FalseTrue);Name – имя компоненты;Lines – запуск окна для ввода и редактирования текста;

content: Компонент ListBox (Список строк)Объект ListBox (список строк) предназначен для выбора строки из списка.Объект ListBox относится к классу ТListBox. Ее компонента относится к разряду визуальных и расположена на панели Standart.

content: Свойства компоненты ListBoxItems – запуск окна для ввода и редактирования списка строк;

content: Компонент ComboBox (Выпадающий список )Объект ComboBox (выпадающий список) предназначен для выбора строки из выпадающего списка.Объект ComboBox относится к классу ТComboBox. Ее компонента относится к разряду визуальных и расположена на панели Standart.

content: Свойства компоненты ListBoxItems – запуск окна для ввода и редактирования списка;

content: Компонент CheckBox (индикатор с флажком)Объект CheckBox (индикатор с флажком) используются в приложениях для того, чтобы пользователь мог включать и выключать какие-то опции, или для индикации состояния.При каждом щелчке пользователя на индикаторе его состояние может принимать три значения:выделение (появление черной галочки),не выделенное (пустое окно индикатора),промежуточное (серое окно индикатора и серая галочка).Объект CheckBox относится к классу ТCheckBox. Ее компонента относится к разряду визуальных и расположена на панели Standart.

content: Свойства компоненты CheckBoxCaption – заголовок;Color – цвет;Ctl3D – установка объемного изображения (FalseTrue);Cursor – установка вида курсора;Enabled – установка активной компоненты (FalseTrue);Font – установка параметров шрифта;Name – имя компоненты;Height – высота компоненты;Width– ширина компоненты.State - выбор состояния компонента:cbChecked - выделенное,cbGrayed - промежуточное,cbUnchecked - не выделенное.Эти три состояния допускаются когда свойство AllowGrayed = true. Если же AllowGrayed = false (значение по умолчанию), то допускается только два состояния: выделенное и не выделенное.

content: Компонент RadioButton (радиокнопка)Объект RadioButton (радиокнопка) используется для выбора пользователем одной из нескольких взаимоисключающих альтернатив.Радиокнопки образуют группы взаимосвязанных индикаторов, из которых обычно может быть выбран только один.Объект RadioButton относится к классу ТRadioButton. Ее компонента относится к разряду визуальных и расположена на панели Standart.

content: Свойства компоненты RadioButtonAlignment - определяет, с какой стороны от кнопки появится надпись;Caption – надпись, появляющаяся около кнопки;Color – цвет;Checked - определяет, выбрана (True) ли данная кнопка пользователем, или нет (False); можно установить true в значение Checked только у одной кнопки из группы!Cursor – установка вида курсора;Enabled – установка активной компоненты (FalseTrue);Font – установка параметров шрифта;Name – имя компоненты;Height – высота компоненты ;Width– ширина компоненты .

content: Компонент StringGrid (таблица строк)Объект StringGrid (таблица строк) используется для отображения текстовой информации в таблице из строк и столбцов. Данные таблицы могут быть только для чтения или редактируемыми.Объект StringGrid относится к классу ТStringGrid. Ее компонента относится к разряду визуальных и расположена на панели Additional.Таблица может иметь полосы прокрутки, причем заданное число первых строк и столбцов может быть фиксированным и не прокручиваться.Можно задать заголовки столбцов и строк, постоянно присутствующие в окне компонента. Каждой ячейке таблицы может быть поставлен в соответствие некоторый объект.

content: Свойства компоненты StringGridColCount - определяет число столбцов;RowCount - определяет число строк;Enabled – установка активной компоненты (FalseTrue);FixedColor - цвет фона фиксированных ячеек;FixedCols - количество зафиксированных слева столбцов таблицы. Зафиксированные столбцы выделяются цветом и при горизонтальной прокрутке таблицы остаются на месте ;FixedRows - количество зафиксированных сверху строк таблицы. Зафиксированные строки выделяются цветом и при вертикальной прокрутке таблицы остаются на месте;ScrollBars - наличие в таблице полос прокрутки;Options - множество, определяющее свойства таблицы:goEditing - признак допустимости редактирования содержимого ячеек таблицы. True — редактирование разрешено, False — запрещено;goFixedVertLine - наличие разделительных вертикальных линий в фиксированных ячейках;goFixedHorzLine - наличие разделительных горизонтальных линий в фиксированных ячейках;goVertLine - наличие разделительных вертикальных линий в не фиксированных ячейках;goHorzLine - наличие разделительных горизонтальных линий в не фиксированных ячейках;goColSizing - возможность изменять с помощью мыши размеры столбцов;goRowSizing - возможность изменять с помощью мыши размеры строки др.

content: ВыходРаздел 1Раздел 4Раздел 7Раздел 10Раздел 2Раздел 5Раздел 8Раздел 11Раздел 3Раздел 9Раздел 6Раздел 12

content: Создание проекта №1, используя компоненты вывода.Линейные алгоритмы.1 этап. Формулировка задания, для которого реализуется проектСоздать форму, в которой по нажатию кнопки должна появиться надпись с приветствием.

content: 2 этап. Проведение проектного анализа и формирование требований к объектамНеобходимо разработать форму на которой будет размещен текст и кнопка.Разработать модуль, который обрабатывает событие: по нажатию на кнопку на ней появляется текст с приветствием.Form (форма)Button (кнопка)Label (текст)

content: компонентObject InspectorСвойство (Properties) Событие (Events)Значение свойства Обработка событияForm1PropertiesName (имя формы)F1Caption (заголовок)проект №1Color (цвет формы)По выборуLabel1PropertiesCaption (надпись)Моя первая программаColor (цвет текстового поля)По выборуFont (установка параметров шрифта)По выборуButton1PropertiesCaption (надпись на кнопке)ПриветствиеCursor (установка вида курсора)crHandPointFont (установка параметров шрифта)По выборуEventsOnClickButton1.Caption:='Привет!';Установим значения свойств компонент и опишем порядок выполнения событий для проекта3 этап. Выбор необходимых компонентов и разработка алгоритмов обработки компонентов

content: Написание модуля.Активизируйте двойным щелком компоненту кнопка. При этом открывается окно редактора кода (написание программы) Unit.pas на котором автоматически записывается процедура с именем компоненты .Button1 из класса Tf1 - Tf1.Button1Click, эта процедура пока еще пустая, в ней можно записывать алгоритм обработки ситуации.procedure Tf1.Button1Click(Sender: TObject);Beginend;Запишем следующее:procedure Tf1.Button1Click(Sender: TObject);beginButton1.Caption:='Привет!';Beep;end;Добавьте в процедуру строку Button1.Top:=10; - это означает указание свойства Top значение 10 (кнопка переместится на позицию 10).Выполните программу (F9).21345

content: Постановка задачиСоздайте форму Моя визитная карточка, которая по нажатию кнопки высвечивала бы на ней вашу Фамилию.Дополните программу несколькими кнопками: Имя, Отчество, Школа, Класс, Выход.Практическая работа №1_1

content: компонентObject InspectorСвойство (Properties) Событие (Events)Значение свойства Обработка событияForm1PropertiesNameF1CaptionПрактическая работа №1_1ColorclSkyBlueLabel1PropertiesCaptionМоя визитная карточкаColorclMoneyGreenFontTahoma, жирный курсив, 16 пт, красного цветаButton1PropertiesCaptionФамилияCursorcrHandPointFontArial, курсив, 14 птEventsOnClickButton1.Caption:=‘{Ваша фамилия}';Button2PropertiesCaptionИмяCursorcrHourGlassFontArial, курсив, 14 птEventsOnClickButton2.Caption:=‘{Ваше имя}';Установим значения свойств компонент и опишем порядок выполнения событий для проекта

content: компонентObject InspectorСвойство (Properties) Событие (Events)Значение свойства Обработка событияButton3PropertiesCaptionОтчествоCursorcrHandPointFontArial, курсив, 14 птEventsOnClickButton3.Caption:=‘{Ваше отчество}';Button4PropertiesCaptionШколаCursorcrHandPointFontCourier New, жирный, 16 птEventsOnClickButton4.Caption:=‘{номер вашей школы}';Button5PropertiesCaptionКлассCursorcrHourGlassFontCourier New, жирный, 16 птEventsOnClickButton5.Caption:=‘{номер вашего класса}';Button6PropertiesCaptionВыходCursorcrAppStartFontTahoma, жирный курсив, 14 птEventsOnClickClose;

content: Практическая работа №1-2Постановка задачи: по выбору цвета вывести характеристику человека.FormEditLabel

content: компонентObject InspectorСвойство (Properties) Событие (Events)Значение свойства Обработка событияForm1PropertiesNameF1_2CaptionПрактическая работа №1_2ColorПо выборуLabel1PropertiesCaptionВыбери цвет, который тебе больше нравитсяFontCourier New, жирный курсив, 20 птLabel2PropertiesColorclRedCursorcrHandPointEventsOnClicklabel6.Caption:='Ты выбрал красный цвет';label6.Color:=clRed;Memo1.Text:='Красны цвет - цвет активности';Label3PropertiesColorclGreenCursorcrHandPointEventsOnClicklabel6.Caption:='Ты выбрал зеленый цвет';label6.Color:=clGreen;Memo1.Text:='Зеленый цвет - цвет уравновешенности';Установим значения свойств компонент и опишем порядок выполнения событий для проекта

content: компонентObject InspectorСвойство (Properties) Событие (Events)Значение свойства Обработка событияLabel4PropertiesColorclYellowCursorcrHandPointEventsOnClicklabel6.Caption:='Ты выбрал желтый цвет';label6.Color:=clYellow;Memo1.Text:='Желтый цвет - цвет устремленности';Label5PropertiesColorclBlueCursorcrHandPointEventsOnClickLabel6.Caption:='Ты выбрал синий цвет';Label6.Color:=clBlue;Memo1.Text:='Синий цвет - цвет спокойствия';Label6PropertiesCaption<пусто>Memo1PropertiesEnabledFalse

content: Практическая работа №1-3Постановка задачи: по нажатию на кнопку формы появляется окно сообщений.На форме необходимо расположить объект Button.Для вызова окна сообщений используется команда ShowMessage(‘сообщение');

content: Практическая работа №1-4Постановка задачи: на форме разместить несколько названий цветов. По наведению на название цветка, рядом отображать картинку с его изображением.На форме необходимо расположить объекты Label1-4 с названием цветов, рядом расположить объект Image1-4 с соответствующими рисунками. Чтобы картинки первоначально не отображать, объектам Image1-4 необходимо установить параметру Visible (отображать) значение False.

content: procedure TForm1.Label2MouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);beginImage1.Visible:=true;Image2.Visible:=false;Image3.Visible:=false;Image4.Visible:=false;end;Каждой компоненте Label необходимо описать событие по наведению мыши, для этого в окне Events выполнить двойной щелк мышью в поле OnMouseMove.В окне Unit нужно менять значения свойства Visible (True, False) соответствующих объектов Image.

content: Практическая работа №1-5Постановка задачи: Имитировать прыжки двух жабок. Считая, что они прыгают через одну клеточку.procedure TForm1.Button1Click(Sender: TObject);beginEdit3.Text:=Edit1.Text;Edit1.Text:='';end;Для решения этой задачи необходимо присваивать компоненте Edit значение параметра Text той, компоненты с которой жабка делает прыжок.

content: Создание проекта № 2, используя компоненты ввода и вывода.Алгоритмы ветвления.1 этап. Формулировка задания, для которого реализуется проектОрганизуем диалог между пользователем и проектом.Вариант диалога:Пользователь: «Привет» - Программа: «Прриветиик!!!»;Пользователь: «Как тебя зовут?» - Программа: «Тамгоча»;Пользователь: «Как дела?» - Программа: «Суппер!»;Пользователь: «Программировать любишь?» - Программа: «Конечно!!!»

content: 2 этап. Проведение проектного анализа и формирование требований к объектамНеобходимо разработать форму, на которой будет размещены текст, окно ввода вопроса, место вывода ответа и кнопка.Разработать модуль, который обрабатывает событие: по нажатию на кнопку происходит вывод ответа.Form (форма)Button (кнопка)Label (текст)Image (картинка)Edit (поле редактирования)

content: Установим значения свойств компонент и опишем порядок выполнения событий для проекта3 этап. Выбор необходимых компонентов и разработка алгоритмов обработки компонентовкомпонентObject InspectorСвойство (Properties) Событие (Events)Значение свойства Обработка событияForm1PropertiesNameF1CaptionПроект №2ColorПо выборуLabel1PropertiesCaptionТамагочаColorПо выборуFontПо выборуLabel2PropertiesCaptionВопросColorПо выборуFontПо выборуLabel3PropertiesCaption<пусто>ColorПо выборуFontПо выборуImage1PropertiesPictureПо выборуStretchTrueEdit1PropertiesText<пусто>FontПо выбору

content: выражениеОператор 1Оператор 2данетОбщий вид оператора:if <логическое выражение> then <оператор 1>else <оператор 2>;Полная форма оператора условного переходаСокращенная форма оператора условного переходаОбщий вид оператора:If <логическое выражение>then <оператор 1>;выражениеОператор 1данетДля реализации диалога необходимо использовать базовый алгоритм ветвления

content: 2компонентObject InspectorСвойство (Properties) Событие (Events)Значение свойства Обработка событияButton1PropertiesCaptionОтветCursorcrHandPointFontПо выборуEventsOnClickif Edit1.Text= 'Привет!' then Label3.Caption:='Приветтик!';if Edit1.Text= 'Как тебя зовут?' then Label3.Caption:='Тамагоча!';if Edit1.Text= 'Как дела?' then Label3.Caption:='Суппер!';if Edit1.Text= 'Программировать любишь?' then Label3.Caption:='Конечно!!!';Продолжите разработку проекта, дополнив диалог.1

content: Постановка задачи:Создать проект Переводчик, который после ввода слова на русском языке, выводит его перевод на украинском и английском языках.Практическая работа №2_1

content: Самостоятельно:Дополните программу кнопкой Выход и рисунком.Разработайте проект, в котором при нажатии на одну кнопку, одновременно выводится перевод слова на двух языках.

content: компонентObject InspectorСвойство (Properties) Событие (Events)Значение свойства Обработка событияForm1PropertiesNameF2CaptionПрактическая работа №2_1ColorclSkyBlueLabel1PropertiesCaptionПереводчикFontTahoma, жирный курсив, 24 пт, малинового цветаLabel2PropertiesCaptionРусскийFontArial, курсив, 14 птLabel3PropertiesCaption<пусто>FontTahoma, жирный курсив, 24 пт, малинового цветаLabel4PropertiesCaption<пусто>FontArial, курсив, 14 птEdit1PropertiesText<пусто>FontArial, курсив, 14 пт

content: компонентObject InspectorСвойство (Properties) Событие (Events)Значение свойства Обработка событияButton1PropertiesCaptionУкраинскийCursorПо выборуFontПо выборуEventsOnClickif Edit1.Text='карандаш' then Label3.Caption:='олівець';if Edit1.Text='тетрадь' then Label3.Caption:='зошит';if Edit1.Text='доска' then Label3.Caption:='дошка';if Edit1.Text='расписание' then Label3.Caption:='розклад';if Edit1.Text='учебник' then Label3.Caption:='підручник';Button2PropertiesCaptionАнглийскийCursorПо выборуFontПо выборуEventsOnClickif Edit1.Text='карандаш' then Label4.Caption:='pencil';if Edit1.Text='тетрадь' then Label4.Caption:='notebook';if Edit1.Text='доска' then Label4.Caption:='board';if Edit1.Text='расписание' then Label4.Caption:='time-table';if Edit1.Text='учебник' then Label4.Caption:='textbook';

content: Постановка задачи:Создать проект Цвет - Характер, который после ввода цвета, отображает его на форме и дает анализ характера.Практическая работа №2-2

content: компонентObject InspectorСвойство (Properties) Событие (Events)Значение свойства Обработка событияForm1PropertiesNameForm2_2CaptionПрактическая работа №2_2Label1PropertiesCaptionВыбери цвет, который тебе больше нравитсяLabel2PropertiesCaptionУкажите цветLabel3PropertiesCaption<пусто>Edit1PropertiesText<пусто>Memo1PropertiesLines<пусто>Font<пусто>EnabledFalseButton1PropertiesCaptionРезультатEventsOnClickif Edit1.Text=красный' thenbeginLabel3.Color:=clRed;Memo1.Text:=‘красный цвет – цвет активности';end;if Edit1.Text=зеленый' thenbeginLabel3.Color:=clGreen;Memo1.Text:=зеленый цвет – цвет уравновешенности';end;

content: Создание проекта №3, используя компоненты ввода, вывода и операции вычисления.Постановка задачи:Создать проект Калькулятор, который позволит выполнять сложение, вычитание и умножение двух целых чисел.

content: 1 этап. Формулировка задания, для которого реализуется проектПроект предполагает ввод двух чисел и вывод результата арифметических действий: сложения, вычитания, умножения. Числа будем вводить целыми, поэтому операцию деления выполнять пока не будем.Анализ задачи:Необходимо разработать форму, на которой будет размещен: текст, окна ввода чисел, место вывода ответа и кнопки, по нажатию на которые происходит вывод результата вычисления.

content: 2 этап. Проведение проектного анализа и формирование требований к объектамСоздайте чистую форму.На форме разместите и настройте компоненты: Label1 - название проекта; Label2, Label3 – комментарий «Число1», «Число2»; Label4, Label5 – комментарий и место вывода результата вычислений.Необходимо организовать окна ввода чисел – Edit1 и Edit2.Разместите кнопки Button1, Button2, Button3 – для выполнения арифметических операций; предусмотрим кнопку Button4 предназначенную для очищения окон ввода чисел.Все компоненты оформите по своему усмотрению: цвет, шрифт, размер.Form (форма)Button (кнопка)Label (текст)Edit (поле ввода)

content: 3 этап. Выбор необходимых компонентов и разработка алгоритмов обработки компонентовДля написания модуля нужно знать, что компоненты Edit вводят текст а не числа, поэтому необходимо предусмотреть перевод текстовой информации в числовую. Для этого воспользуемся встроенными функциямиStrToInt – перевод строки в целое число, илиStrToFloat — преобразование строки в значение с плавающей запятой.Результат вычисления в нашем случае числовой, для отображения его в текстовом поле Label нужно перевести числовое значение в текстовую строку. Для этого воспользуемся встроенными функциямиIntToStr - перевод целого числа в строку,FloatToStr - перевод числа с плавающей запятой в строку.В процедурах обработки кнопки опишем целочисленные переменные, присвоим им введенные значения компоненты Edit, выполним арифметическую операцию и компоненте Label присвоим полученное значение.

content: компонентObject InspectorСвойство (Properties) Событие (Events)Значение свойства Обработка событияForm1PropertiesNameForm1CaptionПроект №3Label1PropertiesCaptionТамагоча умеет считатьColorПо выборуFontПо выборуLabel2PropertiesCaptionЧисло 1ColorПо выборуFontПо выборуLabel3PropertiesCaptionЧисло 3ColorПо выборуFontПо выборуLabel4PropertiesCaptionРезультатColorПо выборуFontПо выборуLabel5PropertiesCaption<пусто>ColorПо выборуFontПо выборуEdit1PropertiesText<пусто>Установим значения свойств компонент и опишем порядок выполнения событий для проекта

content: компонентObject InspectorСвойство (Properties) Событие (Events)Значение свойства Обработка событияButton1PropertiesCaption+EventsOnClicka:=StrToInt(Edit1.Text);b:=StrToInt(Edit2.Text);c:=a+b;Label5.Caption:=IntToStr(c);Button2PropertiesCaption-EventsOnClicka:=StrToInt(Edit1.Text);b:=StrToInt(Edit2.Text);c:=a-b;Label5.Caption:=IntToStr(c);Button3PropertiesCaption*EventsOnClicka:=StrToInt(Edit1.Text);b:=StrToInt(Edit2.Text);c:=a*b;Label5.Caption:=IntToStr(c);Button4PropertiesCaptionCEventsOnClickEdit1.Text:='';Edit2.Text:='';ЗаданиеПродолжите разработку проекта, дополнив возведения первого числа в квадрат.

content: Глобальные и локальные переменные.Постановка задачи:Создать проект Деньги, который позволит накапливать сумму денег, при нажатии на соответствующие кнопки.

content: 1 этап. Формулировка задания, для которого реализуется проектПроект предполагает нажатие пользователем на кнопки на которых написаны номинации купюр: 1 грн, 2 грн, 5 грн и т.д. На окне отображается сумма набранных купюр.Анализ задачи:Необходимо разработать форму, на которой будут размещены кнопки с номинациями купюр, место для вывода суммы и кнопка очищения.

content: 2 этап. Проведение проектного анализа и формирование требований к объектамСоздайте чистую форму.На форме разместите кнопки Button1, Button2, Button3 и т.д. – для отображения купюр; предусмотрим кнопку Button предназначенную для очищения.На форме разместите объект Label для отображения результата набора купюр.Все компоненты оформите по своему усмотрению: цвет, шрифт, размер.3 этап. Выбор необходимых компонентов и разработка алгоритмов обработки компонентовВ процедурах обработки каждой кнопки необходимо наращивать переменную, например: s:=s+10 и отображать ее значение присваиванием компоненте Label полученное значение.

content: Однако, если переменную описать внутри процедуры, то на момент активации кнопки резервируется память компьютера под эту переменную и она обнуляется. Такая переменная называется Локальной. Доступ к ней возможен только в той процедуре, где она описана.procedure TForm1.Button4Click(Sender: TObject);s: integer;begins:=s+10;Label2.Caption:=IntToStr(s);end;Локальная переменнаяПонятие локальных и глобальных переменныхЧтобы переменная сохраняла свое значение на протяжении всей работы программы и передавала значение из одной процедуры в другую, ее необходимо объявить Глобальной. Для этого ее описывают до описания всех процедур.Такая переменная будет видна и доступна в любой процедуре.unit Unit1;uses Windows, ...typeTForm1 = class(TForm)Button1: TButton;...procedure Button1Click(Sender: TObject);...varForm1: TForm1;s:integer;procedure TForm1.Button1Click(Sender: TObject);вegin …… end;…Глобальная переменная

content: компонентObject InspectorСвойство (Properties) Событие (Events)Значение свойства Обработка событияButton1PropertiesCaption1 грнEventsOnClicks:=s+1;Label2.Caption:=IntToStr(s);…..Button7PropertiesCaption100 грнEventsOnClicks:=s+100;Label2.Caption:=IntToStr(s);Button8PropertiesCaptionСначалаEventsOnClicks:=0;Label2.Caption:=‘';свойства компонентов Button и их события2134

content: Практическая работа №3_1Постановка задачи:Разработайте проект, который вычисляет процентное содержание рыбок в аквариуме.Необходимо вводить количество рыбок и вычислять общее количество и процент.Дополнительно: Предусмотреть очищение данных и анализ деления на 0.

content: Постановка задачи:Разработайте проект по вычислению задачи: перевести гривны в доллары. Предположить окно ввода курса валюты и исходное количество денег.Практическая работа №3_2

content: Практическая работа №3_3Постановка задачи:Разработайте проект по вычислению стоимости поездки на дачу.Предусмотреть поле ввода расстояния до дачи, цены бензина и потребление бензина.

content: Практическая работа №3_4Постановка задачи:Разработайте проект по вычислению суммарного веса пассажирского лифта.Предусмотреть поле для ввода веса каждого пассажира, грузоподъемность лифта. Программа должна анализировать возможность подъема лифта и сообщать суммарный вес пассажиров.

content: Создание проекта №4, используя компоненты ввода, вывода.Алгоритмы выбора варианта.1 этап. Формулировка задания, для которого реализуется проектПроект предполагает по номеру месяца в году вывод названия времени года и вывод соответствующего рисунка.Анализ задачи:Необходимо разработать форму, на которой будет размещен: текст, окна ввода числа, место вывода ответа и рисунка, кнопки, по нажатию на которые происходит вывод результата.

content: 2 этап. Проведение проектного анализа и формирование требований к объектамСоздайте чистую форму.На форме разместите и настройте компоненты: Label1 – «Номер месяца года»; Label2 –место вывода времени года.Необходимо организовать окна ввода номер месяца года– Edit1.Разместите кнопку Button1 – для выполнения обработки числа.Разместите картину Image1 – для вывода рисунка с изображением соответствующего времени года.Все компоненты оформите по своему усмотрению: цвет, шрифт, размер.Form (форма)Button (кнопка)Label (текст)Edit (поле ввода)Image (картинка)

content: 3 этап. Выбор необходимых компонентов и разработка алгоритмов обработки компонентовДля написания модуля нужно знать, что компоненты Edit вводят текст а не числа, поэтому необходимо предусмотреть перевод текстовой информации в числовую. Для этого воспользуемся встроенными функциямиStrToInt – перевод строки в целое число.Результат вычисления в нашем случае числовой, для отображения его в текстовом поле Label нужно перевести числовое значение в текстовую строку. Для этого воспользуемся встроенными функциямиIntToStr - перевод целого числа в строку.В процедурах обработки кнопки опишем целочисленные переменные, присвоим им введенные значения компоненты Edit, выполним арифметическую операцию и компоненте Label присвоим полученное значение.Если произошла ошибка ввода, то обратимся к процедуре ShowMessage, которая и вызовет окно комментария с текстом предупреждения:ShowMessage('Введите целое число от 1 до 12');

content: Для реализации проектов данного раздела необходимо использовать базовый алгоритм выбора вариантаcase переменная ofметка1: команда1;метка2: команда2;метка3: команда3;…else командаК;end;Где:переменная - переменная перечисляемого типа (integer, Car);метка1 – предполагаемые значения переменной;команда1– оператор языка программирования;Меткой может быть диапазон значений, например 1..5, и перечислением 1,2,3.Если по метке необходимо выполнить несколько операторов, то они берутся в операторные скобки Begin … End.Порядок выполнения оператора:В списке меток осуществляется поиск значения переменной.Если метка найдена, то выполняется оператор, стоящий после :Если в списке меток нет значения, то выполняется команда, стоящая по ветке Else.

content: компонентObject InspectorСвойство (Properties) Событие (Events)Значение свойства Обработка событияForm1PropertiesNameForm1CaptionВремена годаLabel1PropertiesCaptionНомер месяца годаLabel2PropertiesCaption<пусто>Edit1PropertiesText<пусто>Image1PropertiesPicture<пусто>StretchTrueButton1PropertiesCaptionОпределить время годаEventsOnClicki:=StrToInt(Edit1.Text);case i of1..2,12: beginLabel2.Caption:='ЗИМА'; Image1.Picture.LoadFromFile('zima.bmp'); end;3..5: beginLabel2.Caption:='ВЕСНА'; Image1.Picture.LoadFromFile('vesna.bmp'); end;Установим значения свойств компонент и опишем порядок выполнения событий для проектаЗадание. Продолжите разработку проекта для остальных месяцев.21

content: Постановка задачи:Разработайте проект поздравительной открытки с Новым годом. Предусмотреть поле ввода для обращения и поле ввода языка поздравления.Практическая работа №4_1

content: Практическая работа №4_2Постановка задачи:Разработайте проект определения знака зодиака по номеру года.Предусмотреть поле ввода для номера года.

content: Создание проекта №5, используя компоненты выбора строки из списка.Алгоритм ветвления.1 этап. Формулировка задания, для которого реализуется проектПроект предполагает выбор строки из списка.Анализ задачи:Необходимо разработать форму, на которой будет размещен: текст, окно списка, место вывода текста и рисунка, кнопки, по нажатию на которые происходит вывод из программы.

content: 2 этап. Проведение проектного анализа и формирование требований к объектамСоздайте чистую форму.На форме разместите и настройте компоненты: Label1 – «На каком языке Вас поздравить?»; Label2 – «Выбери язык»; Label3 –место вывода текста.Разместите кнопку Button1 – для выхода из программы.Разместите картину Image1 – для вывода рисунка.На форме разместите компоненту ListBox1, которая содержит строки – разговорные языки.Все компоненты оформите по своему усмотрению: цвет, шрифт, размер.Form (форма)Button (кнопка)Label (текст)Image (картинка)ListBox (список)

content: Для реализации проектов данного раздела необходимо использовать базовый алгоритм выбора варианта (Case).Переменной перечисляемого типа (integer) необходимо присвоить номер выбранной строки t:=ListBox1.ItemIndex.Первая строка списка имеет индекс 0,вторая – 1,третья – 2, и т.д.Оператор Case позволит реализовать сложное ветвление в форме выбора варианта.case t of0: begin Label2.Font.Color:=clpurple;Label2.Caption:='З Новим Роком!';image1.Picture.LoadFromFile('ukr.bmp'); end;1: begin Label2.Font.Color:=clblue;Label2.Caption:='С Новым Годом!';image1.Picture.LoadFromFile('Rus.bmp'); end;…else begin Label2.Font.Color:=clmaroon;Label2.Caption:='Язык не известен!';image1.Picture.LoadFromFile('not.bmp'); end;end;3 этап. Выбор необходимых компонентов и разработка алгоритмов обработки компонентов12

content: Практическая работа №5_1Постановка задачи:Разработайте проект вывода информации о ученике класса из списка.(Проект выполнить используя ComboBox)

content: Практическая работа №5_2Постановка задачи:Разработайте проект вывода ежедневник на неделю. (Проект выполнить используя ListBox)

content: Постановка задачи:Составить проект, который анализирует вид уравнения и вычисляет его корни. Предусмотреть поля ввода для коэффициентов.Создание проекта № 6, используя компоненты ввода, вывода и операции вычисления.

content: 1 этап. Формулировка задания, для которого реализуется проектПроект предполагает ввод трех коэффициентов уравнения и вывод текстовых сообщений, которые определяют вид уравнения и вывод результатов вычисления его корней.Анализ задачи:Необходимо разработать форму, на которой будет размещены: тексты, окна ввода чисел, место вывода ответа, кнопки, по нажатию на которые происходит вывод результата вычисления.

content: 2 этап. Проведение проектного анализа и формирование требований к объектамСоздайте чистую форму (Form).Разместите на форме комментарии (Label).Разместите на форме окна ввода, для ввода коэффициентов (Edit).Кнопки для обработки ситуации определения вида уравнения и вычисления корней уравнения (Buton).Зарезервируйте место вывода типа уравнения, его вид, вычисление дискриминанта и корней уравнения (Label).Разместите кнопку «Очистить ввод». (Buton)Все компоненты оформите по своему усмотрению: цвет, шрифт, размер.

content: 3 этап. Выбор необходимых компонентов и разработка алгоритмов обработки компонентовКоэффициенты квадратного уравнения будем задавать вещественными числами и научимся выявлять ошибки ввода. Опишем переменные типа real:var code1, code2, code3: integer;a, b, c, d, x1, x2: real;Коэффициенты квадратного уравнения вводятся в поля Text компоненты Edit, а значит эти данные текстового типа, их необходимо перевести в вещественный. Для этого воспользуемся стандартной процедурой val, она имеет три параметра val(Edit1.Text, a,code1)Edit1.Text - текст, который переводится в число;a – переменная числового типа, куда заносится результат перевода;code1 - переменная целого типа, где содержится код перевода. tЕсли текст не соответствует числовому представления, то код tперевода отличен от нуля.Воспользуемся этим параметром и проанализируем код перевода.Если произошла ошибка ввода, то обратимся к процедуре ShowMessage, которая и вызовет окно комментария с текстом предупреждения:if (code1<>0) or (code2<>0) or (code3<>0) then ShowMessage ('Коэффициенты должны быть числовыми');

content: Анализ типа уравненияif (a=0) and (b=0) and (c=0) thentwriteln ('Уравнение не задано‘)elsebeginif (a=0) and (b<>0) and (c<>0) then ttttwriteln t(' линейное‘);If (a<>0) and (b=0) thenttttwriteln (' неполное квадратное');if (a<>0) and (c=0) thenttttwriteln ('неполное квадратное ‘);if (a<>0) and (b<>0) and (c<>0) thenttttwriteln (‘полное квадратное');end;Фрагмент программы на Pascal:a=0 и b=0 и c=0a=0 и b<>0 и c<>0a<>0 и b=0a<>0 и c=0a<>0 и b<>0 и c<>0Уравнениене заданоЛинейноеНеполноеквадратноеНеполноеквадратноеПолноеквадратноедададададанетнетнетнет

content: a=0D не опреде-леноb=0Решений нетx1:=-c/bx1d:=sqr(b)-4*a*cd<0корней нетd>0x1:=(-b+sqrt(d))/(2*a)x2:=(-b-sqrt(d))/(2*a)d, x1, x2x1:=-b/(2*a)d, x1дадададанетнетнетнетВычисление корней уравнения

content: If (code1<>0) and (code2<>0) and (code3<>0)then Writeln(‘Коэффициенты должны быть числовыми')elseif a=0thenbeginwriteln ('не определено');if b=0 then writeln ('Решений нет')elsebeginx1:=-c/b;writeln (x1);end;endelsebegind:=sqr(b)-4*a*c;if d<0 thenbeginwriteln (d);writeln ('корней нет');endelseif d>0 thenbeginx1:=(-b+sqrt(d))/(2*a);x2:=(-b-sqrt(d))/(2*a);writeln (d);writeln (x1);writeln (x2);endelsebeginx1:=-b/(2*a);writeln (d);writeln (x1);end;end;Фрагмент программы на Pascal:21ЗаданиеПродолжите разработку проекта, дополнив его выводом уравнения и кнопкой для очистки полей.

content: Практическая работа №6_1Постановка задачи:Составить проект, который анализирует вид треугольника и вычисляет его периметр и сумму. Предусмотреть поля ввода для значений сторон.

content: 1 этап. Формулировка задания, для которого реализуется проектПроект предполагает ввод трех сторон треугольника и вывод текстовых сообщений, которые определяют вид треугольника и вывод результатов вычисления периметра и площади.Анализ задачи:Необходимо разработать форму, на которой будет размещен: тексты, окна ввода коэффициентов, место вывода ответа и рисунка, кнопки, по нажатию на которые происходит вывод результата вычисления.

content: If (abeginwriteln(‘треугольник существует');p:=(a+b+c);s:=sqrt(p/2*(p/2-a) *(p/2-b) *(p/2-c)){определение вида треугольника: блок1};{определение вида треугольника: блок2}writeln(‘треугольник существует');end;Признак существования треугольникаФрагмент программы на Pascal:abcТреугольник не существуетТреугольник существуетНайти периметр и площадь треугольниканетдаОпределениевида треугольника:блок1Определениевида треугольника:блок2

content: Определение вида треугольника: блок 1If (a=b) or (b=c) or (c=a) thenwriteln(‘треугольник равнобедренный');If (a=b) and (b=c) thenwriteln(‘треугольник равносторонний');a=b или b=c или a=ca=b и b=cравнобедренныйравностороннийдаданетнетФрагмент программы на Pascal:

content: If (sqr(a)=sqr(b)+sqr(c)) or (sqr(b)=sqr(a)+sqr(c)) or (sqr(c)=sqr(b)+sqr(a)) thenwriteln(‘треугольник прямоугольный');If (sqr(a)>sqr(b)+sqr(c)) or (sqr(b)>sqr(a)+sqr(c)) or (sqr(c)>sqr(b)+sqr(a)) thenwriteln(‘треугольник тупоугольный');If (sqr(a)Определение вида треугольника: блок 2a^2=b^2+c^2 илиb^2=a^2+c^2 илиc^2=a^2+b^2a^2>b^2+c^2 илиb^2>a^2+c^2 илиc^2>a^2+b^2a^2прямоугольныйтупоугольныйостроугольныйнетнетнетдададаФрагмент программы на Pascal:

content: Практическая работа №5_2 (1 вариант)Постановка задачи:Составить проект, который по значению суммы покупки определяет размер предоставляемой скидки или отображает рисунок с изображением подарка.Предусмотреть поле ввода для суммы покупки.сумма покупкискидкаподарокдо 20005%калькулятордо 50008%принтердо 800010%телефондо 2000015%фотоаппарат>2000020%компьютер

content: Практическая работа №5_2 (2 вариант)Постановка задачи:Составить проект, который по значению суммы покупки определяет размер предоставляемой скидки или отображает рисунок с изображением подарка.Предусмотреть поле ввода для суммы покупки.сумма покупкискидкаподарокдо 20005%калькулятордо 50008%принтердо 800010%телефондо 2000015%фотоаппарат>2000020%компьютер

content: Создание проекта №9, используя циклические алгоритмы .1 этап. Формулировка задания, для которого реализуется проектСоставим проект, который вычисляет факториал числа.Анализ задачи:Факториал числа равен произведению всех натуральных чисел от 1 до данного: n!=1*2*3*4*…*n. Факториал числа, большего, чем 16 очень большое число, по разрядам более 5 и не может быть предъявляться типом integer, поэтому ограничим пользователя в воде чисел от 1 до 16.

content: Цикл с параметромОбщий вид оператора:for <параметр цикла> :=Xн to Xк do <тело цикла> ;Параметр цикла = Xн, Xк, ΔXТело циклаДля реализации проекта необходимо использовать базовый алгоритм циклаПеребор всех натуральных чисел от 1 до n организуем стандартным алгоритмом, используя цикл с параметром (оператор For).

content: Логическое выражениеТело цикладанетЦикл-покаОбщий вид оператора:while <логическое выражение> do < тело цикла >;Цикл-доОбщий вид оператора:repeat <тело цикла> until < логическое выражение>;Логическое выражениеТело цикладанет

content: Создайте чистую форму (Form).Разместите на форме комментарии (Label).Разместите на форме окно ввода, для ввода числа(Edit).Кнопку для вычисления факториала числа (Buton).Зарезервируйте место вывода результата вычисление факториала (Label).Разместите кнопку «Очистить» (Buton).2 этап. Проведение проектного анализа и формирование требований к объектамВсе компоненты оформите по своему усмотрению: цвет, шрифт, размер.

content: компонентObject InspectorСвойство (Properties) Событие (Events)Значение свойства Обработка событияForm1PropertiesCaptionВычисление факториалаLabel1PropertiesCaptionНахождение факториала заданного числаLabel2PropertiesCaptionВведите натуральное число от 1 до 16Label3PropertiesCaption<пусто>Edit1PropertiesText<пусто>Button1PropertiesCaptionФакториал числа равенEventsOnClickprocedure TForm1.Button1Click(Sender: TObject);var n, i, code: integer;p: integer;Beginn:=StrToInt(Edit1.Text);p:=1;for i:=1 to n dop:=p*i;Label3.Caption:= IntToStr(p);end;Button2PropertiesCaptionФакториал числа равенEventsOnClickEdit1.Text:='';Label3.Caption:='';Установим значения свойств компонент и опишем порядок выполнения событий для проекта21345

content: Практическая работа №9_1Постановка задачи:Составим проект, который вычисляет сумму квадратов чисел от 1 до n. Предусмотреть поле ввода для значения n.

content: 1 этап. Формулировка задания, для которого реализуется проектПроект предполагает ввод количества слагаемых и вывод результата вычисления суммы.Анализ задачи:Необходимо разработать форму, на которой будет размещены: тексты, рисунок с формулой, окно ввода числа n, место вывода ответа и кнопки, по нажатию на которые происходит вывод результата вычисления.

content: 2 этап. Проведение проектного анализа и формирование требований к объектамСоздайте чистую форму (Form).Разместите на форме комментарии (Label).Разместите изображение формулы. (Image)Разместите на форме окна ввода, для ввода числа n (Edit).Кнопки для вычисления суммы чисел (Buton).Зарезервируйте место вывода результата вычисления суммы(Label).Все компоненты оформите по своему усмотрению: цвет, шрифт, размер.

content: 3 этап. Выбор необходимых компонентов и разработка алгоритмов обработки компонентовЧисло n задаем целого типа. Компоненты Edit вводят текст а не числа, поэтому необходим перевод текстовой информации в числовую. Для этого воспользуемся встроенными функциямиStrToInt – перевод строки в целое число.Перебор всех натуральных чисел от 1 до n организуем стандартным алгоритмом, используя цикл со счетчиком (оператор For).Результат вычисления числовой, для отображения его в текстовом поле Label нужно перевести числовое значение в текстовую строку. Для этого воспользуемся встроенными функциямиIntToStr - перевод целого числа в строку.В процедурах обработки кнопки опишем целочисленные переменные, присвоим им введенные значения компоненты Edit, выполним арифметическую операцию и компоненте Label присвоим полученное значение.

content: компонентObject InspectorСвойство (Properties) Событие (Events)Значение свойства Обработка событияForm1PropertiesCaptionПрактическая работа №6_1Label1PropertiesCaptionВычислить сумму по формулеImage1PropertiesPictureформула.bmpStretchTrueLabel2PropertiesCaptionВведите значение n:Label3PropertiesCaption<пусто>Edit1PropertiesText<пусто>Button1PropertiesCaptionОтветEventsOnClickprocedure TForm1.Button1Click(Sender: TObject);var n, s, a: integer;Beginn:=StrToInt(Edit1.Text);s:=0;for a:=1 to n dos:=s+sqr(a);Label3.Caption:='Сумма +IntToStr(s);end;Установим значения свойств компонент и опишем порядок выполнения событий для проекта

content: Практическая работа №9_2Постановка задачи:Составить проект, который вычисляет произведение квадратов разности чисел а и в. Предусмотреть поле ввода для значения а и в.

content: Практическая работа №9_3Постановка задачи: Составить проект, который вычисляет количество кроликов и плотность их населения на 1 кв.метр, считая, что первоначально их было 6 и каждый год их численность возрастает в 3 раза.Результат вычисления необходимо отображать в компоненте Memo. Начальное значение параметра Lines обнулите.Компонентой Memo можно управлять с помощью внутренних функций: Add-добавить, Clear-очистить и пр.Для формирования столбцов вывода можно использовать коды управляющих клавиш: Enter - #13, Tab - #9 и др.Например:Memo1.Lines.add(IntToStr(i) + #9+#9 + IntToStr(k) + #9+#9+ FloatToStrF(k / 1000,ffFixed,7,5));

content: Практическая работа №9_4Постановка задачи:Составим проект, в котором будет участвовать в работе две формы. На первой форме разместим кнопку вызова вторую. Разместим на второй форме рисунок, комментарии с помощью компоненты Memo.В этом проекте необходимо создать еще одну форму: File-New-Form. Обратите внимание на появление Unit2, который описывает форму2.

content: Перейдите на форму1, вызовите Unit1 для этой формы.Двойным щелчком активизируйте кнопку «Автор». В процедуре, которая обрабатывает эту кнопку нужно написать команду вызова Формы2: Form2.show. Так будет выглядеть процедура:procedure TForm1.Button2Click(Sender: TObject);beginForm2.show;end;Аналогично на форме2, двойным щелчком активизируйте кнопку «До свидания». В процедуре, которая обрабатывает эту кнопку нужно написать команду закрытия формы: Close; и вызова Формы1: Form1.show. Так будет выглядеть процедура:procedure TForm2.Button1Click(Sender: TObject);beginClose;Form1.Show;end;

content: Практическая работа №9_5Постановка задачи:Составить проект, который по указанному числу n вычисляет сумму квадратов натуральных чисел от 1 до n.

content: Создание проекта №7, используя компоненты индикатор с флажком и радиокнопку.Постановка задачи:Указывая на наличие желания и возможностей, определить, можно ли выполнить покупку.

content: 1 этап. Формулировка задания, для которого реализуется проектАнализ задачи:Если два флажка будут включены, то по нажатию на кнопку «И» необходимо вывести текст «Покупай», в других комбинациях – «Не покупай». В программировании это можно реализовать стандартной связкой «И».Если хотя бы один из флажков будет включен, то по нажатию на кнопку «ИЛИ» необходимо вывести текст «Покупай», в других комбинациях – «Не покупай». В программировании это можно реализовать стандартной связкой «ИЛИ».

content: 2 этап. Проведение проектного анализа и формирование требований к объектамСоздайте чистую форму.На форме разместите и настройте компоненты: Label1 - название проекта; Label2, Label3 – место вывода результата логических вычислений.Разместите на форме переключатели CheckBox1 и CheckBox2 - для обработки ситуации.Разместите кнопки Button1 «И» , Button2 «ИЛИ» – для выполнения логических вычислений.Все компоненты оформите по своему усмотрению: цвет, шрифт, размер.FormButtonLabelCheckBox

content: компонентObject InspectorСвойство (Properties) Событие (Events)Значение свойства Обработка событияForm1PropertiesNameForm1CaptionПроект №7Label1PropertiesCaptionМои возможности и желанияLabel2PropertiesCaption<пусто>Label3PropertiesCaption<пусто>CheckBox1PropertiesCaptionМои желанияEventsOnClickprocedure TForm1.CheckBox1Click(Sender: TObject);beginend;CheckBox2PropertiesCaptionМои возможностиEventsOnClickprocedure TForm1.CheckBox2Click(Sender: TObject);beginend;3 этап. Выбор необходимых компонентов и разработка алгоритмов обработки компонентов

content: компонентObject InspectorСвойство (Properties) Событие (Events)Значение свойства Обработка событияЕсли обе компоненты CheckBox1 и CheckBox2 имеют значение true, то Button1 «И» определяет значение «Покупай», в любой другой комбинации – «Не покупай!»Button1PropertiesCaptionИEventsOnClickprocedure TForm1.Button1Click(Sender: TObject);beginif (CheckBox1.Checked=True) and (CheckBox2.Checked=True)then Label2.Caption:='покупай‘else Label2.Caption:='Не покупай';end;Если хоть одна компонента CheckBox1 или CheckBox2 имеют значение true, то Button2 «ИЛИ» определяет значение «Покупай», в любой другой комбинации – «Не покупай!».Button2PropertiesCaptionИЛИEventsOnClickprocedure TForm1.Button2Click(Sender: TObject);Beginif (CheckBox1.Checked=True) or (CheckBox2.Checked=True)then Label3.Caption:='покупай‘else Label3.Caption:=' Не покупай';end;321

content: Постановка задачи:Составим проект, который вычисляет пройденное телом расстояние в зависимости от вида движения (равномерное или равноускоренное).Практическая работа №7_1

content: 1 этап. Формулировка задания, для которого реализуется проектАнализ задачи:Необходимо разработать форму, на которой будет размещены: тексты, переключатели для выбора исходных значений, окна ввода значений v, t, a, место вывода ответа и кнопки, по нажатию на которые происходит вывод результата вычисления s и анализа результата.Проект предполагает ввод начальной скорости тела, его ускорение и время перемещения; вывод результата вычисления перемещения и его вида.

content: компонентObject InspectorСвойство (Properties) Событие (Events)Значение свойства Обработка событияForm1PropertiesCaptionПеремещениеLabel1PropertiesCaptionВычисление перемещения телаLabel2PropertiesCaption<пусто>Label3PropertiesCaption<пусто>Edit1PropertiesTextEdit2PropertiesTextEdit3PropertiesTextЕсли переключатель CheckBox1 включен (CheckBox1.Checked=True), то компонент Edit1 активен (Edit1.Enabled:=True), в противном случае (Edit1.Enabled:=False) – неактивен, компонент Edit1 принимает значение 0 (Edit1.Text:='0').CheckBox1PropertiesCaptionначальная скорость V0 (м/с)EventsOnClickprocedure TForm1.CheckBox1Click(Sender:TObject);beginif CheckBox1.Checked=False thenbeginEdit1.Enabled:=False;Edit1.Text:='0';endelse Edit1.Enabled:=True;end;3 этап. Выбор необходимых компонентов и разработка алгоритмов обработки компонентов

content: компонентObject InspectorСвойство (Properties) Событие (Events)Значение свойства Обработка событияЕсли переключатель CheckBox2 включен (CheckBox2.Checked=True), то компонент Edit2 активен (Edit1.Enabled:=True), в противном случае (Edit2.Enabled:=False) – неактивен, компонент Edit2 принимает значение 0 (Edit2.Text:='0').CheckBox2PropertiesCaptionускорение a (м/с.кв.)EventsOnClickprocedure TForm1.CheckBox2Click(Sender:TObject);beginif CheckBox2.Checked=False thenbeginEdit2.Enabled:=False;Edit2.Text:='0';endelse Edit2.Enabled:=True;end;Если переключатель CheckBox3 включен (CheckBox3.Checked=True), то компонент Edit3 активен (Edit3.Enabled:=True), в противном случае (Edit3.Enabled:=False) – неактивен, компонент Edit1 принимает значение 0 (Edit3.Text:='0').CheckBox3PropertiesCaptionвремя t (с)EventsOnClickprocedure TForm1.CheckBox3Click(Sender:TObject);beginif CheckBox3.Checked=False thenbeginEdit3.Enabled:=False;Edit3.Text:='0';endelse Edit3.Enabled:=True;end;

content: компонентObject InspectorСвойство (Properties) Событие (Events)Значение свойства Обработка событияButton1PropertiesCaptionВычислитьEventsOnClickprocedure TForm1.Button1Click(Sender: TObject);beginv0:=StrToFloat(Edit1.Text);a:=StrToFloat(Edit2.Text);t:=StrToFloat(Edit3.Text);s:= v0*t+ a*sqr(t)/2;Label2.Caption:='s='+FloatToStr(s)+' м';if a=0 then Label3.Caption:='равномерное'elseif a>0 then Label3.Caption:='равноускоренное'else Label3.Caption:='равнозамедленное‘end;

content: Практическая работа №7_2Постановка задачи:Вычислять силу тока по известному напряжению и сопротивлению.Вычислять напряжение тока по известному сопротивлению и силе тока.Вычислять сопротивление проводника по известному напряжению и силе тока.

content: 1 этап. Формулировка задания, для которого реализуется проектАнализ задачи:В задаче необходимо использовать переключатель-радиокнопку, в зависимости от включения которой, производится необходимое вычисление.Если включена «Сила тока», то запрашивать напряжению и сопротивлению, вычислять силу тока.Если включено «Напряжение тока», то запрашивать силу тока и сопротивлению, вычислять напряжение тока.Если включено «Сопротивление», то запрашивать силу тока и напряжение, вычислять сопротивление.

content: компонентObject InspectorСвойство (Properties) Событие (Events)Значение свойства Обработка событияForm1PropertiesCaptionЗакон ОмаLabel1PropertiesCaptionНапряжение (вольт)Label2PropertiesCaptionСопротивление (ом)Label3PropertiesCaption<пусто>Edit1PropertiesText<пусто>Edit2PropertiesText<пусто>Если выбран переключатель CheckBox1 «Ток», то компонент Edit1 и Edit2 очищаются (Edit1.Text:= ' '), компонент Label1 принимает значение 'Напряжение (вольт)‘, а компонент Label2 принимает значение 'Сопротивление (ом)‘.CheckBox1PropertiesCaptionТокEventsOnClickLabel1.Caption:='Напряжение (вольт)';Label2.Caption:='Сопротивление (ом)';Label3.Caption:=‘ ';Edit1.Text:=‘ ';Edit2.Text:=‘ ';3 этап. Выбор необходимых компонентов и разработка алгоритмов обработки компонентов

content: компонентObject InspectorСвойство (Properties) Событие (Events)Значение свойства Обработка событияЕсли выбран переключатель CheckBox2 «Напряжение», то компонент Edit1 и Edit2 очищаются (Edit1.Text:= ' '), компонент Label1 принимает значение Ток(ампер)', а компонент Label2 принимает значение 'Сопротивление (ом)‘.CheckBox2PropertiesCaptionНапряжениеEventsOnClickLabel1.Caption:='Ток(ампер)';Label2.Caption:= 'Сопротивление (ом)';Label3.Caption:=' ';Edit1.Text:=' ';Edit2.Text:=' ';Если выбран переключатель CheckBox3 «Сопротивление», то компонент Edit1 и Edit2 очищаются (Edit1.Text:= ' '), компонент Label1 принимает значение 'Напряжение (вольт)‘, а компонент Label2 принимает значение Ток(ампер)'CheckBox3PropertiesCaptionСопротивлениеEventsOnClickLabel1.Caption:='Напряжение (вольт)';Label2.Caption:= 'Ток(ампер)';Label3.Caption:=‘ ';Edit1.Text:=‘ ';Edit2.Text:=‘ ';

content: компонентObject InspectorСвойство (Properties) Событие (Events)Значение свойства Обработка событияButton1PropertiesCaptionВычислитьEventsПрограммная обработка выбранной кнопки производится проверкой параметра Checked компоненты RadioButton: Если RadioButton1.Checked=true, то кнопка включена.OnClickif RadioButton1.Checked=true thenbeginU:= StrToFloat(Edit1.Text);R:= StrToFloat(Edit2.Text);I:= U/R;Label3.Caption:= 'Ток: ' + FloatToStrF(I,ffFixed,4,2) + 'А';end;if RadioButton2.Checked=true thenbeginI:= StrToFloat(Edit1.Text);R:= StrToFloat(Edit2.Text);U:= I*R;Label3.Caption:= 'Напряжение: ' + FloatToStrF(I,ffFixed,4,2) + ' Вольт';end;if RadioButton3.Checked=true thenbeginU:= StrToFloat(Edit1.Text);i:= StrToFloat(Edit2.Text);r:= U/i;Label3.Caption := 'Сопротивление ' + FloatToStrF(r,ffFixed,4,2) + ' ом';end;

content: Практическая работа №7_3Постановка задачи:Составить проект, который позволяет выбрать страну из перечисленных, указать какие сведения о стране необходимы и вывести их.

content: 23Создание проекта №8, используя компоненты индикатор с флажком и радиокнопку.Практическая работа №8_1Постановка задачи:Составим проект, который загадает головоломку: какой набор чисел даст в сумме 50. (Ответ: 25, 6, 19)

content: Практическая работа №8_2 (1 вариант)Постановка задачи:Разработайте проект по вычислению общего сопротивления участка электрической цепи. Организовать выбор вида соединения сопротивлений и их количество (максимально 2 шт).

content: Практическая работа №8_2 (2 вариант)Постановка задачи:Разработайте проект по вычислению общего сопротивления участка электрической цепи. Организовать выбор вида соединения сопротивлений и их количество (максимально 3 шт).

content: Практическая работа №8_3Постановка задачиСоставить проект, который позволяет выводить информацию и рисунки по празднованию русского праздника «Масленица».В зависимости от выбранного дня выводится название дня, рисунок и текст с описанием традиции этого дня праздника.

content: Создание проекта №10, работа с одномерными массивами.Информация, объединенная единым смыслом или математическим содержанием (списки фамилий, матрица коэффициентов) относится к структурированному типу данных.Для представления таких данных используются массивы.Массив – совокупность однотипных элементов, с каждым из которых связан упорядоченный набор индексов (номеров).Каждый массив имеет свое имя.Общий вид имени элемента массива - A[i],гдеA - имя массива,i – имя индекса. Индекс может быть целым, переменным, арифметическим выражением.

content: Объявление массиваМассив перед использованием должен быть объявлен в разделе объявления переменных.В общем виде инструкция объявления одномерного массива выглядит следующим образом:имя: array [нижний_индекс. .верхний_индекс] of типгде:имя — имя массива;array — зарезервированное слово языка Delphi, обозначающее, что объявляемое имя является именем массива;нижний_индекс и верхний_индекс — целые константы, определяющие диапазон изменения индекса элементов массива и количество элементов (размер) массива;тип — тип элементов массива.Примеры объявления массивов:temper: array [1..31] of real;коef: array [0. .2] of integer;name: array [1..30] of string [25];

content: Если массив не является локальным, т. е. объявлен не в процедуре обработки события, а в разделе переменных модуля, то одновременно с объявлением массива можно выполнить его инициализацию, т. е. присвоить начальные значения элементам массива. Инструкция объявления массива с одновременной его инициализацией в общем виде выглядит так:Имя: array [нижний_индекс..верхний_индекс] of тип = (список);гдесписок — разделенные запятыми значения элементов массива.Например:a: array [1..10] of integer = (0,0,0,0,0,0,0,0,0,0);day: array [1..7] of String [10]=(‘Пн',‘Вт','Ср',‘Чт',‘Пт',‘Сб',‘Вс');Количество элементов списка инициализации должно соответствовать размерности массива. Если это будет не так, то компилятор выведет сообщения об ошибке: Number of elements differs from declaration (количество элементов не соответствует указанному в объявлении).

content: Вывод массиваПод выводом массива понимается вывод на экран монитора (в диалоговое окно) значений элементов массива.Один из вариантов организации вывода массива - использование компонента Label.Основной цикл процедуры вывода массива А с использованием компоненты Label может выглядеть так:Для одномерного массиваfor i:=1 to n doLabel1.Caption:=Label1.Caption + IntToStr(i)+ ' '+ a[i]+ #13;где #13 – перевод курсора на новую строку

content: Постановка задачи:Создать программу вывода пронумерованного списка школьных предметов.Листинг программы. Инициализация и вывод массиваconstn = 5;vara: array[1..n] of string[10] =('История', 'Алгебра', 'Физика', 'Химия', 'География');procedure TForm1.Button1Click(Sender: TObject);vari: integer;beginfor i:=1 to n doLabel1.Caption:=Label1.Caption+IntToStr(i)+' '+a[i]+#13;end;FormButtonLabel

content: Ввод массиваПод вводом массива понимается процесс получения от пользователя во время работы программы значений элементов массива.Последовательность чисел удобно вводить в строку таблицы, где каждое число находится в отдельной ячейке.Два варианта организации ввода массива:с использованием компонента StringGridс использованием компонента Memo.

content: Использование компонента MemoКомпонент Memo позволяет вводить текст, состоящий из достаточно большого количества строк, поэтому его удобно использовать для ввода символьного массива.При использовании компонента Memo для ввода массива значение каждого элемента массива следует вводить в отдельной строке и после ввода каждого элемента массива нажимать клавишу .Получить доступ к находящейся в поле Memo строке текста можно при помощи свойства Lines, указав в квадратных скобках номер нужной строки (строки нумеруются с нуля).Основной цикл процедуры ввода символьного массива из компонента Memo может выглядеть так:for i:=1 to N doa[i]:= Memo1.Lines[i];Lines — свойство компонента Memo, представляющее собой массив, каждый элемент которого содержит одну строку находящегося в поле Memo текста.

content: Постановка задачи:Создать программу ввода пронумерованного списка названий месяцев.Листинг программы. Ввод массива строк из компонента Memoprocedure TForm1.Button1Click(Sender: TObject);constSIZE=5;vara: array[1..SIZE]of string [30];n: integer;i: integer;beginLabel2.Caption:='';n:=Memo1.Lines.Count;for i:=1 to n doa[i]:=Form1.Memo1.Lines[i-1];for i:=1 to n doLabel2.Caption:=Label2.Caption+IntToStr(i)+') '+a[i]+#13;end;FormButtonLabelMemo

content: Использование компонента StringGridсвойство Cells - соответствующий таблице двумерный массив. Ячейка таблицы, находящаяся на пересечении столбца номер col и строки номер row определяется элементом cells [col, row]Основной цикл процедуры ввода массива из компонента StringGrid может выглядеть так:Для одномерного массива:for i:=1 to N doa[i]:= StrToInt(StringGrid1.Cells[i-1,0]);

content: Постановка задачи:Создать программу ввода пронумерованного списка целых чисел.Листинг программы.Ввод массива чисел из компонента StringGridprocedure TForm1.Button1Click(Sender: TObject);constn=5;vara: array [1..n] of integer;i: integer;beginfor i:=1 to n doa[i]:=StrToInt(StringGrid1.Cells[i-1,0]);for i:=1 to n doLabel2.Caption:=Label2.Caption+'a['+IntToStr(i)+']=' +IntToStr(a[i])+#13;end;СвойствоЗначениеColCount5FixedColsRowCount1DefaultRowHeight24DefaultColWidth64Options . goEditingTrueOptions . AlwaysShowEditingTrueOptions .goTabsTrueЗначения свойств компонента StringGrid1StringGrid1

content: Постановка задачи:Разработайте проект по вычислению суммы и среднего арифметического значения одномерного массива целых чисел.Практическая работа №10_1

content: Создание проекта №11, работа с двумерными массивами.Для представления табличных данных используются двумерные массивы.Двумерный массив – совокупность однотипных элементов, с каждым из которых связан упорядоченный набор индексов, первый из которых определяет порядковый номер строки, второй – номер столбцы, на пересечении которых находится элемент.Каждый массив имеет свое имя.Общий вид имени элемента массива - A[i,j],гдеA - имя массива,I, j – имя индексов. I – номер строки, j – номер столбца. Индексы могут быть целыми числами, переменными, арифметическими выражениями.I,j12341786285136732

content: Объявление массиваМассив перед использованием должен быть объявлен в разделе объявления переменных.В общем виде инструкция объявления одномерного массива выглядит следующим образом:имя: array [н_инд_строк. .в_инд_ строк, н_инд_столбцов. .в_инд_столбцов] of типгде:имя — имя массива;array — зарезервированное слово языка Delphi, обозначающее, что объявляемое имя является именем массива;нижний_индекс и верхний_индекс — целые константы, определяющие диапазон изменения индексов элементов массива и количество элементов (размер) массива;тип — тип элементов массива.Примеры объявления массивов:temper: array [1..31, 1..10] of real; - таблица вещественных чисел(31х10)коef: array [0. .2, 0..5] of integer; - таблица целых чисел(3х6)name: array [1..30, 1..15] of string [25]; - таблица строк (30х15)

content: Если массив не является локальным, т. е. объявлен не в процедуре обработки события, а в разделе переменных модуля, то одновременно с объявлением массива можно выполнить его инициализацию, т. е. присвоить начальные значения элементам массива. Инструкция объявления массива с одновременной его инициализацией в общем виде выглядит так:Имя: array [н_индСтр..в_индСтр, н_индСтолб..в_индСтолб] of тип = (список);гдесписок — разделенные запятыми значения элементов массива.Например:a: array [1..2, 1..3] of integer = ((0,0,0),(0,0,0));day: array [1..3, 1..2] of String [10]=((‘Пн',‘Вт‘),('Ср',‘Чт‘),(‘Пт',‘Сб‘));Количество элементов списка инициализации должно соответствовать размерности массива. Если это будет не так, то компилятор выведет сообщения об ошибке: Number of elements differs from declaration (количество элементов не соответствует указанному в объявлении).

content: Вывод массиваПод выводом массива понимается вывод на экран монитора (в диалоговое окно) значений элементов массива.Один из вариантов организации вывода массива - использование компонента Label.Основной цикл процедуры вывода массива А с использованием компоненты Label может выглядеть так:Для двумерного массиваfor j :=1 to 2 dobeginfor i :=1 to 5 doLabel1.Caption := Label1.Caption + IntToStr(a[i,j])+' ';Label1.Caption := Label1.Caption + #13;end;

content: Использование компонента StringGridсвойство Cells - соответствующий таблице двумерный массив. Ячейка таблицы, находящаяся на пересечении столбца номер col и строки номер row определяется элементом cells [col, row]Основной цикл процедуры ввода массива из компонента StringGrid может выглядеть так:Для двумерного массива:for i:=1 to N dofor j:=1 to M doa[i, j]:= StrToInt(StringGrid1.Cells[i-1,j-1]);

content: Постановка задачи:Разработайте проект по вычислению суммы и среднего арифметического значения двумерного массива целых чисел.Практическая работа №11_1

content: Создание проекта №12Игровые ситуацииБольшинство игр сопровождаются движением объектов. Чтобы заставить двигаться объекты, необходимо менять координаты объекта в определенные моменты времени. Таким образом, в программе необходимо подключить счетчик времени.Таймер находит многочисленные применения: в мультипликации, закрытие каких-то окон, с которыми пользователь долгое время не работает, включение хранителя экрана или закрытие связей с удаленным сервером при отсутствии действий пользователя, регулярный опрос каких-то источников информации, задание времени на ответ в обучающих программах — все это множество задач, в которых требуется задавать интервалы времени, решается с помощью таймера.

content: Таймер — невизуальный компонент, который может размещаться в любом месте формы. Он имеет два свойства, позволяющие им управлять: Interval — интервал времени в миллисекундах и Enabled — доступность. Свойство Interval задает период срабатывания таймера. Через заданный интервал времени после предыдущего срабатывания, или после программной установки свойства Interval, или после запуска приложения, таймер срабатывает, вызывая событие OnTimer. В обработчике этого события записываются необходимые операции.На панели инструментов во вкладке System расположен компонент Timer.

content: Если задать Interval = 0 или Enabled = false, то таймер перестает работать. Чтобы запустить отсчет времени надо или задать Enabled = true и задать положительное значение свойству Interval .Например, если требуется, чтобы через 5 секунд после запуска приложения закрылась форма — заставка, отображающая логотип приложения, на ней надо разместить таймер, задать в нем интервал Interval = 5000, а в обработчик события OnTimer вставить оператор Close, закрывающий окно формы.213

content: Практическая работа №12_1Постановка задачи:Разработать игру угадывания чисел из заданного диапазона.Игроки вводят диапазон чисел, компьютер случайным образом определяет число. Игроки вводят предполагаемые числа. Компьютер сравнивает с загаданным и считает количество попыток.procedure TForm1.Button1Click(Sender: TObject);begind1:=strToInt(Edit1.Text);d2:=strToInt(Edit2.Text);Edit3.Text:='';Edit4.Text:='';Label6.Caption:='';p:=1;zagchoslo:=random(d2-d1)+d1;end;Кнопка «Новая игра» принимает диапазон числа и инициализирует выбирает случайное число из датчика случайных чисел randomize.

content: procedure TForm1.Button2Click(Sender: TObject);beginif StrToInt(Edit3.Text)= zagchoslothen Label6.Caption:='Первый игрок угадал используя '+IntToStr(p)+' попыток 'elseif StrToInt(Edit4.Text)= zagchoslothen Label6.Caption:='Второй игрок угадал используя '+IntToStr(p)+' попыток 'elsebeginp:=p+1;lABEL6.Caption:='CДЕЛАЙТЕ ЕЩЕ ПОПЫТКУ';end;end;Основная процедура «Принять вариант» проверяет введенные игроками числа и тем, которое загадано и выводит соответствующее сообщение.Датчик случайных чисел инициализируется при запуске программы, т.е. в процедуре TForm1.FormCreateДо всех процедур необходимо описать глобальную переменную (р) для подсчета количества попыток.procedure TForm1.FormCreate(Sender: TObject);beginp:=1;randomize;end;

content: Постановка задачи:Разработать игру «Попади в мишень», которая выводит на экран графический объект. Этот объект движется по экрану, необходимо игроку попадать мышкой на объект. Программа считает количество попаданий.Практическая работа №12_2Для реализации проекта на форме расположите необходимые объекты: Label1 (заголовок), Label2 (для вывода числа попаданий), Button1 (начало игры), Button2 (остановка игры), Image1 (движущийся объект). Все объекты оформляются по усмотрению разработчика.

content: 1. Необходимо описать глобальные переменные для определения координат движущегося объекта и подсчета баллов (попаданий).varForm1: TForm1;Ball,x,y:integer;implementation2. По запуску программы необходимо инициализировать датчик случайных чисел randomizeprocedure TForm1.FormCreate(Sender: TObject);beginrandomize;end;3. Каждый такт установленного времени должно меняться положение движущегося объекта. Для этого запишем процедуру для компоненты Timer1. В этой процедуре определяются новые координаты движущегося объекта из датчика случайных чисел.procedure TForm1.Timer1Timer(Sender: TObject);beginx:=random(400);y:=random(400);Image1.Left:=x;Image1.Top:=y;end;end;

content: 4. Если игрок сделал клик на объекте, то количество баллов наращивается. Это событие для компоненты Image.procedure TForm1.Image1Click(Sender: TObject);beginBall:=ball+1;Label2.Caption:=IntToStr(Ball);end;5. Событие для кнопки «Начать игру» - обнуление баллов, запуск таймераprocedure TForm1.Button1Click(Sender: TObject);beginBall:=0;Timer1.Enabled:=True;end;6. Событие для кнопки «Конец игры» - отображение результатов игры и остановка таймера.procedure TForm1.Button2Click(Sender: TObject);beginLabel2.Caption:=IntToStr(Ball);Timer1.Enabled:=False;end;

content: Дополнительное задание к игре «Попади в мишень».Определить выбор уровня игры, для первого уровня оставить задачу в прежнем виде, для второго уровня можно игру усложнить тем, что если игрок попал на объект, то такт времени уменьшается (Timer1.Interval:= Timer1.Interval-100).В этом случае измениться программный код компоненты Image:procedure TForm1.Image1Click(Sender: TObject);beginBall:=ball+1;if RadioButton2.Checked=True then Timer1.Interval:= Timer1.Interval-100;Label2.Caption:=IntToStr(Ball);end;

content: Постановка задачи:Разработать игру «Кот и мышь». На форме случайно располагаются Кот и Мышь. Они двигаются по форме в любом направлении. Если Кот определяет, что Мышь рядом, то он начинает двигаться за ней.Игра считается законченной, если:Кот догнал Мышь;Мышь спряталась в одну из двухнорок;нажата кнопка «Закончить игру».Практическая работа №12_3