Изучение визуальной среды
Определение и анализ роли атрибута в объектно-ориентированном программировании. Изучение и характеристика сущности алгоритмической части. Исследование представления и главных особенностей в визуальных средах. Ознакомление с планом разработки программы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 09.04.2018 |
Размер файла | 779,2 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Министерство образования и науки РФ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«СЕВЕРО-КАВКАЗСКАЯ ГОСУДАРСТВЕННАЯ ГУМАНИТАРНО-ТЕХНОЛОГИЧЕСКАЯ АКАДЕМИЯ»
КАФЕДРА «ИНФОРМАТИКА И ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ»
Контрольная работа по дисциплине: «Визуальные среды»
Выполнил: студент 5 курса
направления 09.03.03 ПИЮ ЗФО
Боташова Х.Я.
Приняла: Батчаева З.Б.
Черкесск, 2018
Содержание
Задание
1. Что такое алгоритмическая часть? Её представление и особенности в визуальных средах
2. Что такое свойство (атрибут)? Какие виды свойств Вам известны? Какова их роль в объектно-ориентированном программировании? Приведите примеры
Задача
Список использованной литературы
Задание
Вариант № 5.
1. Что такое алгоритмическая часть? Её представление и особенности в визуальных средах.
2. Что такое свойство (атрибут)? Какие виды свойств Вам известны? Какова их роль в объектно-ориентированном программировании? Приведите примеры
3. Создайте программу, с помощью которой пользователь мог бы увидеть в зависимости от значений насыщенности красного, зеленого и синего результирующий цвет.
1. Что такое алгоритмическая часть? Её представление и особенности в визуальных средах
Алгоpитм - это точное и понятное предписание исполнителю совершить последовательность действий, направленных на решение поставленной задачи. Название "алгоритм" произошло от латинской формы имени среднеазиатского математика аль-Хорезми - Algorithmi.
Исполнитель алгоритма - это некоторая абстрактная или реальная (техническая, биологическая или биотехническая) система, способная выполнить действия, предписываемые алгоритмом. Исполнителя характеризуют: среда, элементарные действия, система команд, отказы.Среда (или обстановка) - это "место обитания" исполнителя. Каждый исполнитель может выполнять команды только из некоторого строго заданного списка -системы команд исполнителя. Для каждой команды должны быть заданы условия применимости (в каких состояниях среды может быть выполнена команда) и описаны результаты выполнения команды. После вызова команды исполнитель совершает соответствующее элементарное действие. Отказы исполнителя возникают, если команда вызывается при недопустимом для нее состоянии среды.
В информатике универсальным исполнителем алгоритмов является компьютер.
Наиболее распространенными формами представления алгоритмов являются: словесная, графическая, псевдокоды и программная.
1) Словесная форма записи представляет собой описание последовательных этапов обработки данных на естественном языке (например, на русском).
Пример. Записать алгоритм нахождения наибольшего общего делителя (НОД) двух натуральных чисел.
Алгоритм: 1) задать два числа; 2) если числа равны, то взять любое из них в качестве ответа и остановиться, в противном случае продолжить выполнение алгоритма; 3) определить большее из чисел; 4) заменить большее из чисел разностью большего и меньшего из чисел; 5) повторить алгоритм с шага 2.
Описанный алгоритм применим к любым натуральным числам и должен приводить к решению поставленной задачи за конечное число шагов.
Словесный способ не имеет широкого распространения, поскольку такие описания:
а) строго не формализуемы;
б) страдают многословностью записей;
в) допускают неоднозначность толкования отдельных предписаний.
2) Графический способ представления алгоритмов является более компактным и наглядным по сравнению со словесным. При графическом исполнении алгоритм изображается в виде последовательности связанных между собой функциональных блоков, каждый из которых соответствует выполнению одного из действий. Такое графическое представление называется схемой алгоритма или блок-схемой. В блок-схеме каждому типу действий соответствует геометрическая фигура, называемая блочным символом. Блочные символы соединяются линиями переходов, определяющими очередность выполнения действий.
Начало - конец |
||
Процесс |
||
Ввод-вывод |
||
Типовой процесс |
||
Решение (условие) |
3) Псевдокод представляет собой систему обозначений и правил, предназначенную для единообразной записи алгоритмов. Он занимает промежуточное место между естественным и формальным языками.
С одной стороны, он близок к обычному естественному языку, поэтому алгоритмы могут на нем записываться и читаться как обычный текст. С другой стороны, в псевдокоде используются служебные слова и математическая символика, что приближает запись алгоритма к общепринятой математической записи. Служебные слова выделяются в печатном тексте жирным шрифтом, а в рукописном тексте подчеркиваются для того, чтобы их можно было отличить от остального текста.
Пример. 1) задать два числа x и y; 2) ЕСЛИ x=y, ТО НОД=x и КОНЕЦ; 3) ЕСЛИ x>y, ТО x=x-y, ИНАЧЕ y=y-x; 4) ПЕРЕЙТИ в пункт 2.
4) Программная форма представляет собой тексты программ, написанных на различных языках программирования.
Ниже приведены графические обозначения на блок-схемах.
Структура “следование” |
Полная развилка |
Неполная развилка |
|
Цикл с предусловие (цикл ПОКА) |
Цикл с постусловием (цикл ДО) |
Цикл с параметром |
На схемах СЕРИЯ обозначает один или несколько любых операторов; УСЛОВИЕ есть логическое выражение (ЛВ) (если его значение ИСТИНА, переход происходит по ветви ДА, иначе -- по НЕТ). На схеме цикла с параметром использованы обозначения: ПЦ -- параметр цикла, НЗ -- начальное значение параметра цикла, КЗ -- конечное значение параметра цикла, Ш -- шаг изменения параметра цикла.
Начало и конец алгоритма на блок-схемах обозначают овалом, вводимые и выводимые переменные записываются в параллелограмме.
Простейшие задачи имеют линейный алгоритм решения. Это означает, что он не содержит проверок условий и повторений.
Пример 1.Пешеход шел по пересеченной местности. Его скорость движения по равнине 1 км/ч, в гору --2 км/ч и под гору -- 3 км/ч. Время движения соответственно 1, 2 и 3 ч. Какой путь прошел пешеход?
1. Ввести v1, v2, v3, t1, t2, t3. 2. S1 := v1 * t1. 3. S2 := v2 * t2. 4. S3 := v3 * t3. 5. S := S1 + S2 + S3. 6. Вывести значение S. 7. Конец. |
Для проверки работоспособности алгоритма необходимо задать значения входных переменных, вычислить конечный результат по алгоритму и сравнить с результатом ручного счета.
2. Что такое свойство (атрибут)? Какие виды свойств Вам известны? Какова их роль в объектно-ориентированном программировании? Приведите примеры
Атрибут?--?поименованное свойство класса, определяющее диапазон допустимых значений, которые могут принимать экземпляры данного свойства. Атрибуты могут быть скрыты от других классов, это определяет видимость атрибута: рublic (общий, открытый); private (закрытый, секретный); protected (защищенный).
Все объекты одного и того же класса описываются одинаковыми наборами атрибутов. Однако объединение объектов в классы определяется не наборами атрибутов, а семантикой. Так, например, объекты "конюшня" и "лошадь" могут иметь одинаковые атрибуты: цена и возраст. При этом они могут относиться к одному классу, если рассматриваются в задаче просто как товар, либо к разным классам, если в рамках поставленной задачи будут использоваться по-разному, т.е. над ними будут совершаться различные действия.
Объединение объектов в классы позволяет рассмотреть задачу в более общей постановке. Класс имеет имя (например, "лошадь"), которое относится ко всем объектам этого класса. Кроме того, в классе вводятся имена атрибутов, которые определены для объектов. В этом смысле описание класса аналогично описанию типа структуры или записи (record), широко применяющихся в процедурном программировании; при этом каждый объект имеет тот же смысл, что и экземпляр структуры (переменная или константа соответствующего типа).
Требуемое поведение системы реализуется через взаимодействие объектов. Взаимодействие объектов обеспечивается механизмом пересылки сообщений. Определенное воздействие одного объекта на другой с целью вызвать соответствующую реакцию называется операцией или посылкой сообщения. Сообщение может быть послано только вдоль соединения между объектами. В терминах программирования соединение между объектами существует, если один объект имеет ссылку на другой.
Свойства объектно-ориентированного программирования на PHP это обычные переменные, которые определяются в классе. При этом очень часто свойства класса, так же называют переменными-полями, содержимое которых может изменяться в каждом создаваемом объекте. Напомню, что определение свойств очень похоже на создание простых переменных, единственное, что обязательно необходимо указывать один из спецификаторов доступа, то есть ключевых слов характеризующих область его видимости. В Вашем распоряжении следующие спецификаторы: public, protected и private, но рассматривать данные элементы мы с Вами будем тогда, когда познакомимся с таким важным понятием как наследование.
Теперь давайте создадим новый класс для работы с пользователями и определим несколько свойств.
view sourceprint?
01.<?php
02.
03.class User {
04.public $name;
05.public $login;
06.public $email;
07.}
08.
09.?>
При этом были созданы три свойства, у которых не определено значение, то есть, по сути, они пусты. При объявлении свойств были выбраны спецификаторы доступа public, что в свою очередь обеспечит полный доступ к ним извне, контекста объекта.
Обратите внимание, что спецификаторы доступа, были введены в PHP, только начиная с версии 5, соответственно, если Вы используете их в приложении, написанном под более раннюю версию - могут возникнуть ошибки.
Далее давайте создадим объект, только что сформированного класса.
view sourceprint?
1.$newUser = new User();
Таким образом, у нас есть новый объект - новый пользователь, но его данные не определены, а значит, давайте укажем значения для его свойств.
view sourceprint?
1.$newUser->name = "Ben";
2.$newUser->login = "ben";
3.$newUser->login = "email@mail.com";
Если помните, в прошлой статье мы создавали класс, у которого в свойствах изначально были прописаны значения, так называемые данные по умолчанию. Для класса по работе с пользователями, согласитесь, нет смысла, что то задавать, так как каждый новый объект - это новый пользователь, данные которого уникальны. Таким образом, после создания объекта мы обращаемся к его интересующим нас свойствам и определяем их значения. Как Вы помните, для доступа необходимо использовать сочетание символов “->”, которые так же позволяют вызвать на исполнение определенный метод класса, но сейчас не об этом.
Конечно, определив значения свойств, мы можем их считать при необходимости, или же присвоить новые -- то есть работать как с обычными переменными.
view sourceprint?
1.echo $newUser->name;
2.$newUser->name = 'Bob';
Так же хотел бы напомнить, что для указанного класса мы можем определить сколько угодно объектов и для каждого из них значения вышеуказанных свойств нужно указывать отдельно, так как нет данных по умолчанию. Таким образом, каждый следующий объект, будет по сути уникальным (отдельный пользователь, если мыслить сущностями).
view sourceprint?
1.$secondUser = new User();
2.$newUser->name = "John";
3.$newUser->login = "john";
4.$newUser->login = "john@mail.com";
Свойства объектно-ориентированного подхода не обязательно объявлять в самом классе, так как их можно добавить динамически к интересующему объекту.
view sourceprint?
1.$newUser->address = "Moscow";
Применив данную манипуляцию, мы создадим свойство address для объекта $newUser и только для него. Но обратите внимание, данный способ хоть и вполне работоспособен, но считается плохим тоном в программировании, потому как тип объекта задает класс. То есть именно он определяет, какие свойства будут использоваться для хранения информации и какие методы, будут манипулировать ими. Создавая свойство динамически, мы как бы отступаем от заданной структуры класса, или можно сказать иначе -- создаем, что то без чертежа, а это еще и противоречит общему принципу объектно-ориентированного подхода.
Так же хотел бы обратить Ваше внимание, что свойства ООП подхода могут быть статическими. Конечно, сразу же возникает вопрос, что это значит? Смотрите, мы с Вами говорили, что класс это шаблон для построения объекта и последние - это некие активные элементы, с которыми ведется определенная работа - обращение к свойствам, вызов на исполнение методов и т.д. Но достаточно часто для реализации конкретных задач, необходимо получать доступ к свойствам не из объекта, а из контекста класса. В этом случае, необходимо создать так называемое статическое свойство, класса, используя ключевое слово statiс.
Давайте рассмотрим следующий класс:
view sourceprint?
1.class Core {
2.static public $numb = 0;
3.}
Как Вы видите вполне обычный класс, но у него есть всего лишь одно статическое свойство, доступ к которому можно получить без создания объекта, то есть, обращаясь к нему из класса. Соответственно для этого следует указать имя класса, далее двойное двоеточие и имя интересующего статического свойства:
view sourceprint?
1.Core::$numb = 1;
Таким образом, в данном примере мы обратились к статическому свойству класса и изменили его значение. Если помните, все обычные свойства класса, уникальны для каждого создаваемого объекта, но значение статического свойства не привязывается к объекту, соответственно изменив его значение, Вы, по сути, изменили значение статического свойства для конкретного класса. Соответственно статические свойства еще называют переменными и свойствами класса, а не объекта. Вы спросите, а зачем же нужны данные свойства. Более подробный ответ на данный вопрос, будет приведен, когда мы познакомимся с методами объектов. Но кратко все же отмечу. Статические свойства полезны тем, что они доступны в любом месте приложения, если конечно доступен класс. То есть, Вы можете обратиться к свойству, не создавая объект класса, что очень удобно. Так же статические свойства доступно абсолютно каждому объекту класса, то есть мы можем определить некие общие данные для создаваемых объектов.
Задача
Создайте программу, с помощью которой пользователь мог бы увидеть в зависимости от значений насыщенности красного, зеленого и синего результирующий цвет
Рис.1
Новым в этой работе являются:
* использование для ввода данных полосы прокрутки ScrollBar вкладки палитры компонентов Standard,
* компонента панель Panel вкладки палитры компонентов Standard,
* функция преобразования значений цветовых составляющих - TColorRef.
План разработки программы
1. Откройте новый проект.
2. Разместите в форме экземпляры компонентов в соответствии с рис.2
Рис. 2
Полоса прокрутки ScrollBar может быть горизонтальной (по умолчанию) или вертикальной. Это определяется свойством Kind. В нашем случае используется вертикальная полоса прокрутки.
3. Сохраните код программы и проект под именами, например, Unit1.pas и Pr1.dpr. программирование визуальный алгоритмический
4. Выполните следующие действия:
Рис. 3
Аналогично задайте значения для ScrollBar2, Panel2, Label2, присвоив им имена GreenBar, GreenPanel, GreenLabel и ScrollBar3, Panel3, Label3, присвоив им имена BlueBar, BluePanel, BlueLabel.
5. Когда на форме много компонентов, ручное выравнивание становится весьма утомительным занятием. Для этого случая в среде Lazarus предусмотрены средства автоматизированного выравнивания компонентов. Выделите компоненты, которые собираетесь выровнять, в нашем случае это RedLabel (Label1), RedPanel (Panel1), RedBar (ScrollBar1). Во всех четырех углах каждого выделенного компонента появятся небольшие квадратики-маркеры. А затем вызовите команду главного меню Edit/Align, в результате откроется окно Alignment (рис.4).
Рис.4
Выберите в списке нужный режим выравнивания и нажмите клавишу «OK». Повторите эту же операцию для других групп компонент (GreenBar, GreenPanel, GreenLabel и BlueBar, BluePanel, BlueLabel).
6. Выполните следующие действия:
Рис. 5
Аналогично задайте значения для GreenBar и BlueBar, проследите за правильностью записи параметров в функции RGB.
7. Сохраните проект окончательно, запустите и протестируйте его.
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs;
type
TForm1 = class(TForm)
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
end.
object Form1: TForm1
Left = 663
Height = 236
Top = 249
Width = 320
Caption = 'Form1'
ClientHeight = 236
ClientWidth = 320
LCLVersion = '1.2.6.0'
object Panel1: TPanel
Left = 24
Height = 58
Top = 24
Width = 44
Color = clRed
ParentColor = False
TabOrder = 0
OnClick = Panel1Click
end
object Panel2: TPanel
Left = 104
Height = 58
Top = 24
Width = 44
Color = clLime
ParentColor = False
TabOrder = 1
end
object BluePanel: TPanel
Left = 184
Height = 58
Top = 24
Width = 44
Color = clBlue
ParentColor = False
TabOrder = 2
end
object Panel4: TPanel
Left = 240
Height = 90
Top = 112
Width = 52
TabOrder = 3
end
object RedLabel: TLabel
Left = 24
Height = 1
Top = 90
Width = 1
ParentColor = False
end
object GreenLabel: TLabel
Left = 104
Height = 1
Top = 90
Width = 1
ParentColor = False
end
object BlueLabel: TLabel
Left = 184
Height = 1
Top = 90
Width = 1
ParentColor = False
end
object RedBar: TScrollBar
Left = 24
Height = 121
Top = 112
Width = 17
Kind = sbVertical
Max = 255
Min = 122
PageSize = 0
Position = 122
TabOrder = 4
OnChange = RedBarChange
end
object GreenBar: TScrollBar
Left = 104
Height = 121
Top = 112
Width = 17
Kind = sbVertical
Max = 255
Min = 122
PageSize = 0
Position = 122
TabOrder = 5
end
object BlueBar: TScrollBar
Left = 184
Height = 122
Top = 112
Width = 17
Kind = sbVertical
Max = 255
Min = 122
PageSize = 0
Position = 122
TabOrder = 6
end
end.
Список использованной литературы
1. Иан Грэхем Объектно-ориентированные методы. Принципы и практика = Object-Oriented Methods: Principles& Practice.-- 3-е изд. -- М.: «Вильямс», 2014. -- С. 880. -- ISBN 0-201-61913-X
2. Антони Синтес Освой самостоятельно объектно-ориентированное программирование за 21 день = SamsTeach Yourself Object-Oriented Programming in 21 Days. -- М.: «Вильямс», 2015. -- С. 672. -- ISBN 0-672-32109-2
3. Томас Х. Кормен, Чарльз И. Лейзерсон, Рональд Л. Ривест, Клиффорд Штайн. Алгоритмы: построение и анализ, 3-е издание = Introduction to Algorithms, Third Edition. -- М.: «Вильямс», 2013. -- 1328 с. -- ISBN 978-5-8459-1794-2.
4. Дональд Кнут. Искусство программирования, том 1. Основные алгоритмы = The Art of Computer Programming, vol. 1. Fundamental Algorithms. -- 3-е изд.. -- М.: «Вильямс», 2016. -- С. 720. -- ISBN 0-201-89683-4.
5. Томас Х. Кормен. Алгоритмы: вводный курс = Algorithms Unlocked. -- М.: «Вильямс», 2014. -- 208 с. -- ISBN 978-5-8459-1868-0.
6. Игошин В. И. Математическая логика и теория алгоритмов. -- 2-е изд., стер.. -- М.: ИЦ «Академия», 2015. -- 448 с. -- ISBN 5-7695-1363-2.
Размещено на Allbest.ru
Подобные документы
Использование языка программирования Delphi для записи программ, представляющих собой последовательность инструкций. Классы и директивы в объектно-ориентированном программировании. Разработка демонстрационной программы. Процесс настройки Windows XP.
дипломная работа [917,4 K], добавлен 15.01.2014Виртуальные функции, статические и абстрактные классы, шаблоны: элементы и члены класса, их роль в объектно-ориентированном программировании; механизм осуществления виртуального вызова при выполнении программы; обработка исключительных ситуаций в C++.
реферат [27,2 K], добавлен 06.12.2010Что такое класс в объектно-ориентированном программировании. Какую структуру имеет модуль в С++. Какими средствами осуществляется консольный ввод данных в языке Си, С++. Инкапсуляция, полиморфизм, наследование. Использование библиотеки "
".
контрольная работа [1,9 M], добавлен 13.11.2016Основные типы шаблонов проектирования. Типы связей, которые могут применяться при объектно-ориентированном программировании. Обзор и реализация порождающих, структурных и поведенческих шаблонов проектирования. Шаблоны "Command", "Front Controller".
курсовая работа [3,1 M], добавлен 01.06.2014Использование скриптового языка программирования для разработки web-приложений (сценариев). Изучение основ объектно-ориентированного программирования в языке PHP. Ознакомление со специальными методами для работы с классами. Назначение интерфейсов.
контрольная работа [25,1 K], добавлен 14.03.2015Изучение базовых понятий объектно-ориентированного программирования. Исследование принципов работы с классами и объектами. Построение системы классов для описания плоских геометрических фигур. Анализ методов создания объектов, перемещения на плоскости.
лабораторная работа [212,0 K], добавлен 10.03.2013Общая характеристика объектно-ориентированного подхода в программировании, его основные свойства и принципы. Разработка программы для автоматизация деятельности кафе на основе объектно-ориентированного подхода, проектирования и реализации схемы данных.
курсовая работа [1,2 M], добавлен 22.01.2012Рассмотрение особенностей среды программирования Delphi, анализ клиент-серверной версии. Знакомство с библиотекой визуальных компонентов. Основные функции интеллектуального редактора. Характеристика требований к базам данных. Функции программы "Магистр".
дипломная работа [1,5 M], добавлен 10.03.2013Исследование особенностей среды разработки мультиагентных систем JADE. Изучение набора графических инструментов, позволяющего управлять и следить за активностью запущенных агентов. Анализ настройки параметров запуска проекта, написания кода, компиляции.
презентация [513,1 K], добавлен 21.04.2012Основная цель технологии СОМ (объектная модель компонентов) - обеспечение возможности экспорта объектов. Объектно-ориентированное программирование и его место в программировании. Принципы и применение описаний информационных систем (UML и аналоги).
курсовая работа [698,3 K], добавлен 09.12.2013