Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Обзор языков программирования высокого уровня ( Java )

Содержание:

ВВЕДЕНИЕ

Программирование - это умение создавать программные продукты, которые написаны на языке программирования. Язык программирования – это формальная знаковая система, которая создана для написания программ, ясной для исполнителя.

Язык программирования (англ. Programming language) - система обозначений для описания алгоритмов и структур данных, определенная искусственная формальная система, средствами которой можно выражать алгоритмы. Язык программирования характеризует набор лексических, синтаксических и семантических правил, задающих внешний вид программы и действия, которые выполняет исполнитель (компьютер) под ее управлением.

Со времени создания первых программируемых машин было создано более двух с половиной тысяч языков программирования. Ежегодно их количество дополняется новыми. Некоторыми языками умеет пользоваться лишь маленькое количество их собственных разработчиков, другие становятся знамениты миллионам людей. Профессиональные программисты традиционно используют в собственной работе несколько языков программирования.Языки программирования высокого уровня, можно сказать, более понятны человеку, нежели компьютеру. Специфики определенных компьютерных архитектур в них не учитываются, поэтому созданные программы просто переносятся с компьютера на компьютер.

В основном довольно легко перекомпилировать программу под некую компьютерную архитектурную и операционную систему. Разрабатывать программы на этих языках гораздо легче и ошибок допускается меньше. Существенно уменьшается время исследования программки, собственно в особенности принципиально при работе над большими программными проектами.

Актуальность. На сегодняшний день графика имеет немаловажное значение для языков программирования. Она разрешает визуализировать всевозможные программы, что придает яркость и удобство использования. Так как мы живем в трехмерном мире, то создание графических приложений в языках программирования высокого уровня на сегодняшний день считается актуальной задачей, и разработчики языков программирования не в состоянии оставить данную тему в стороне.

Объект исследования – программирование на языке высокого уровня.

Предмет исследования – графические приложения в языках программирования высокого уровня.

Цель курсовой работы: создание графических приложений в языках программирования высокого уровня.

Задачи, направленные на достижение цели курсовой работы:

  • проанализировать системы программирования;
  • изучить графические возможности языка программирования Delphi;
  • изучить графические возможности языка программирования Java;
  • изучить языковые особенности;
  • изучить графические методы Delphi и Java 3D

Рассмотрению вопроса графических приложений в языках программирования высокого уровня посвящены работы авторов И. А. Бабушкиной, С. М. Окулова, О. Е. Масленниковой, И. В. Гавриловой, Л. Г. Гагариной, Е. В. Кокоревой и других.

ГЛАВА 1. СИСТЕМЫ ПРОГРАММИРОВАНИЯ

1.1 Становление языков программирования

Первые Первые языки программирования появились сравнительно не так давно. Разные исследователи предписывают в качестве времени их создания 20-е, 30-е и даже 40-е годы XX столетия. Нашей задачей считается не установление самого раннего языка, а поиск закономерностей в их развитии.

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

Программа, которая была полностью трудоспособной на одной вычислительной машине, часто не имела возможности выполняться на другой. Таким образом, ранние языки программирования значительно находились в зависимости от того, что принято называть средой вычислений и примерно соответствовали современным машинным кодам либо языкам ассемблера [4].

Следующее десятилетие ознаменовалось возникновением языков программирования так называемого «высокого уровня», по сравнению с раньше рассмотренными предшественниками, соответственно называемыми низкоуровневыми языками. При этом отличие состоит в увеличении производительности труда разработчиков с помощью абстрагирования от определенных деталей аппаратного обеспечения. Одна инструкция (оператор) языка высокого уровня отвечала последовательности из нескольких низкоуровневых руководств, либо команд. Отталкиваясь от того, что программа, на самом деле, представляла собой набор директив, обращенных к компьютеру, такой подход к программированию получил название императивного. Очередной спецификой языков высокого уровня была возможность повторного применения раньше написанных программных блоков, исполняющих какие-нибудь действия, посредством их идентификации и последующего обращения к ним, например по имени. Эти блоки получили название функций либо процедур, и программирование получило более упорядоченный характер [17].

1.2 Виды языков программирования

Имеющиеся языки программирования можно разделить на две группы: процедурные и непроцедурные.

Процедурные (или алгоритмические) программы представляют собой систему предписаний для решения конкретной задачи. Процедурные языки разделяют на языки низкого и высокого уровня.

Языки низкого уровня практически не похожи на обычный для человека язык. Это могут быть разные виды языка ассемблера либо сами машинные коды. Используются они для воплощения особых частей программ для обеспечения большей производительности.

Машинные коды представляют собой набор двоичных данных и достаточно трудоемкую структуру. Сейчас на них практически не пишут.

Программы на языках высокого уровня близки к натуральному (английскому) языку и предполагают набор этих команд. Перечислим наиболее известные системы программирования [6].

Фортран (FORmula TRANslating system – система трансляции формул); старейший и до настоящего времени обширно распространенный язык, в особенности посреди пользователей, которые занимаются численным моделированием. Это разъясняется несколькими причинами:

  • существованием больших фондов прикладных программ на Фортране, скопленных за данные годы, а также наличием множества разработчиков программного обеспечения, отлично использующих данный язык;
  • наличием действенных трансляторов Фортрана на всех типах ЭВМ, при этом версии для разных машин довольно стандартизированы и перенесение программ с машины на машинку, традиционно не составляет огромных проблем;
  • первоначальной тенденцией Фортрана на физико-математические и технические приложения; а именно, данное проявилось в том, что на протяжении длительного времени он оставался единственным языком со встроенным комплексным типом переменных и огромным комплектом интегрированных функций для работы с этими переменными.

За прошедший период сложилась новая методология и философия программирования. С начала 70-х годов Фортран подвергся заслуженной критике. Выпущенный в 1990 году транслятор MS-Fortran 5.0 фактически стопроцентно соответствует стандарту Fortran-90.

Большая часть крупных технологических прикладных программ прописано на Фортране поскольку он владеет переносимостью и стабильностью, а также благодаря наличию интегрированных математических и тригонометрических функций [8].

Бейсик (Basic – Beginner’s All-Purpose Symbolic Instruction Code – «многоцелевой условный код инструкций для новичков»). Прямой отпрыск Фортрана и до сего времени самый популярный язык программирования для персональных компьютеров. Возник Бейсик в 1963 году (назвать создателя было бы тяжело, но главная награда в его возникновении, непременно, принадлежит американцам Джону Кемени и Томасу Курцу). Как и всевозможные достоинства, простота Бейсика оборачивалась, особенно в ранних версиях проблемами структурирования; помимо всего этого, Бейсик не допускал рекурсию – интересный прием, позволяющий составлять действенные и вмести с этим короткие программы.

Разработаны массивные компиляторы Бейсика, которые гарантируют не только лишь богатую лексику и высокое быстродействие, но и возможность структурного программирования. Учитывая мнение неких разработчиков программного обеспечения, более увлекательными версиями считаются GWBASIC, Turbo-Basic и Quick Basic.

Когда-то возникновение Quick Basic ознаменовало рождение второго поколения систем программирования на языке Бейсик. Он предоставлял возможность модульного и процедурного программирования, создания библиотек, компиляции готовых программ и многое другое, что вывело его на уровень таких традиционных языков программирования, как Си, Паскаль, Фортран и другие. Более того, в связи с неимением официального стандарта языка Бейсик, его реализация в виде Quick Basic стала практическим стандартом. Бесспорными фаворитами среди разных версий Бейсика были Quick Basic 4.5 и PDS 7.1 компании Microsoft, появившиеся в конце 80-х годов [1].

В 1960 году командой во главе с Петером Науром (Peter Naur) был создан язык программирования Algol. Данный язык дал начало целому роду Алгол-подобных языков (важный представитель – Pascal). Алгол (ALGOrithmic Language – алгоритмический язык); сыграл огромную роль в теории, хотя для фактического программирования на данный момент почти не употребляется.

ПЛ/1 (PL/I Programming Language – язык программирования первый) разработан в 1964-1965 годах компанией IBM. ПЛ/1 относится к количеству многоцелевых языков, т. е. позволяет решать задачи из различных областей: численные расчеты, текстовая обработка, финансовые задачи и т. д. По собственным возможностям он перекрывает такие языки, как Фортран, Алгол-60 (предназначенный для численных расчетов), Кобол (для финансовых задач), хотя в силу ряда обстоятельств вытеснить данные языки ПЛ/1 не сумел.

ПЛ/1 содержит все главные сборки, характерные для так именуемых языков высокого уровня, а также ряд специфичных средств, комфортных для практического программирования. Язык напоминает конструктор с огромным количеством элементов – пользователю достаточно изучить исключительно те доли языка, которые ему фактически нужны.

Тогда как, ПЛ/1 имеет и ряд недочетов, затрудняющих изучение и внедрение языка. Главные из них таковы, во-первых, имеется большое количество дублирующих друг друга средств их трудно запомнить, не понятно, что когда использовать, помимо всего этого, это снижает как скорость трансляции, так и скорость исполнения программ. Во-вторых, программы получаются не совершенно машинно-независимыми [11].

В 1972 году в период сотрудничества с Кеном Томпсоном Работник компании Bell Labs Денис Ритчи создал язык Си (С – «си»), как инструментальное средство для реализации операционной системы Unix, но известность данного языка стремительно переросла рамки определенной операционной системы и определенных задач системного программирования.

В текущее время любая инструментальная и операционная система не имеет возможности считаться абсолютной, в случае если в ее состав не входит компилятор языка Си.

Ритчи не придумывал Си просто из головы – прототипом служил язык Би созданный Томпсоном. Язык программирования Си был разработан как инструмент для программистов-практиков. Согласно с данным основной целью его создателя было создание комфортного и нужного во всем языка.

Си считается орудием системного программиста и разрешает глубоко влезать в самые изящные механизмы обработки информации на ЭВМ. Хотя язык просит от программиста высокой выдержки, он не жесток в формальных претензиях и допускает короткие формулировки.

Си – прогрессивный язык. Он содержит в себе те управляющие конструкции, которые рекомендованы теорией и практикой программирования. Его структура вдохновляет программиста применять в собственной работе нисходящее проектирование, структурное программирование и пошаговую разработку модулей. В некотором смысле язык Си – самый многоцелевой, так как не считая комплекта средств, свойственных прогрессивным языкам программирования высокого уровня (структурность, модульность, конкретные разновидности данных). Большой набор операторов и средств требуют от программиста осмотрительности, аккуратности и хорошего знания языка со всеми иго превосходствами и недочетами [19].

Язык C появился в начале 80-х годов, созданный Бьерном Страуструпом с начальной целью освободить себя и собственных приятелей от программирования на Си либо разных других языках высокого уровня.

Разумеется, что более всего C позаимствовал из языка Си, а также из конкретного его предшественника языка BCPL. Данные заимствования обеспечили C мощными средствами низкого уровня, позволяющие решать трудоемкие задачи системного программирования. Но что в первую очередь различает C от Си – это различная степень внимания к типам и структурам данных. Это связанно с возникновением понятий класса, производного класса и виртуальной функции, перенятых к тому же из языка Симула. Это выделяет в C более эффективные возможности для контроля типов и гарантирует модульность программы.

Учитывая мнение создателя языка, отличие между идеологией Си и C заключается примерно в следующем: программа на Си отображает «метод мышления» микропроцессора, а C – метод мышления программиста.

Основной целью разработчика языка доктора Бьерна Страустрапа было оснащение языка С конструкциями, позволяющими увеличить производительность труда разработчиков программного обеспечения и упростить процесс овладения большими программными продуктами [21].

Язык программирования Паскаль был разработан профессором кафедры вычислительной техники Швейцарского Федерального института технологии Николасом Виртом в 1968 году как альтернатива имеющимся и все усугубляющимся языкам программирования, таким, как PL/1, Algol, Fortran. Насыщенное развитие Паскаля привело к возникновению уже в 1973 году его стандарта в виде пересмотренного сообщения, а количество трансляторов с данного языка в 1979 году переступило за 80.

Сначала 80-х годов Паскаль еще больше упрочил собственные позиции с возникновением трансляторов MS-Pascal и Turbo Pascal для ПЭВМ. С этого времени Паскаль становится одним из более принципиальных и обширно применяемых языков программирования. Существенно то, что язык давно вышел за рамки академического и узкопрофессионального энтузиазма и употребляется в большинстве институтов высокоразвитых государств не только лишь как рабочий инструмент пользователя. Важной спецификой Паскаля считается выраженная мысль структурного программирования. Другой значимой спецификой считается концепция структуры данных как одного из базовых понятий [7].

Главные причины известности Паскаля содержатся в следующем:

  • простота языка разрешает быстро его изучить и делать алгоритмически трудоемкие программы;
  • развитые средства представления структур данных гарантируют удобство работы, как с числовой, так и с символьной и битовой информацией;
  • наличие особых методологий создания трансляторов с Паскаля упростило их разработку и способствовало широкому распространению языка;
  • оптимизирующие характеристики трансляторов с Паскаля позволяют создавать действенные программы. Это явилось одной из причин применения Паскаля в виде языка системного программирования;
  • в языке Паскаль реализуются мысли структурного программирования, что делает программу приятной и выделяет отличные способности для исследования и отладки.

Достоинства данного языка значительны при написании довольно трудных и мобильных программ [20].

Кобол (COmmon Business Oriented Language – язык, направленный на общий бизнес) – данное сравнительно старый язык, созданный, сначала для исследовательских работ в финансовой сфере. Язык разрешает эффективно действовать с огромным числом данных, он насыщен различными способностями поиска, сортировки и распределения. О программах на Коболе, основанных на широком применении английского языка, говорят, что они понятны в том числе и тем, кто не владеет Коболом, так как слова на данном языке программирования не нуждаются в каких-то особых комментариях. Похожие программы принято называть самодокументирующимися.

К количеству других плюсов Кобола обыкновенно относят его структурированность. Достаточно массивные компиляторы с данного языка разработаны для персональных компьютеров. Некоторые из них настолько эффективны, что программу, отлаженную на компьютере, несложно перенести на большие ЭВМ.

Перечисляя минусы невозможно не вспомнить о том, что на Коболе возможно запрограммировать только простые алгебраические вычисления. Для инженерных расчетов данный язык не годится [2].

Дельфи (Delphi) – язык объектно-ориентированного «визуального» программирования; на этот момент очень востребован. История Delphi наступает с 60-х годов.

Когда возникла первая версия Windows – Windows 3.10, программисты Borland создали Delphi 1. Это уже была объектно-ориентированная среда для зрительной разработки программ, базирующаяся на языке Object Pascal.

С возникновением Windows 95 была замечена Delphi 2, потом Delphi 3, 4, 5. Язык программирования Object Pascal, который считался стержнем Delphi, претерпел эти значительные конфигурации, что с возникновением Delphi 6 фирма Borland, которая уже превратилась в корпорацию, официально заявила о переименовании Object Pascal в Delphi. Поэтому правы те, кто говорит, что Delphi – это визуальная среда разработки программ. Хотя кроме того правы и другие, кто признаёт, что Delphi – это один из лучших языков программирования.

Delphi 7 более размеренная версия языка программирования для Win32 другими словами 32-разрядных версий Windows. Возникли и новые версии Delphi, хотя они ориентированны на технологию .NET, за какую начинающим программистам браться рановато. Базу Delphi составляет не только лишь сам язык, но и RAD (Rapid Application Development) – среда быстрой разработки программ. Благодаря визуальному программированию, а также довольно большой библиотеке визуальных компонент, Delphi разрешает создавать программы более стремительно и эффективно, принимая на себя главную работу, и оставляя программисту творческий процесс [5].

Язык Джава (Java) зародился как часть плана создания передового программного обеспечения (ПО) для разных бытовых устройств. Реализация плана была начата на языке С, но вскоре возник ряд проблем, лучшим средством борьбы с которыми было изменение самого инструмента – языка программирования.

Язык Java понадобился для сотворения интерактивных товаров для сети Internet. Практически, большая часть архитектурных решений, принятых при разработке Java, было продиктовано желанием дать синтаксис, сходный с Си. В Java используются фактически схожие соглашения для объявления переменных, передачи характеристик, операторов и для управления потоком выполнением кода. В Java добавлены все хорошие черты C [1].

Среди непроцедурных языков более знамениты: язык Лисп, Пролог, Оккам. Язык Лисп (Lisp) был предложен Дж. Маккарти в работе в 1960 году и нацелен на разработку программ для решения задач не численного характера. Английское заглавие данного языка – LISP считается аббревиатурой выражения LISt Processing (обработка списков) и хорошо акцентирует внимание главную область его внедрения. Понятие «список» оказывается довольно вместительным. В виде списков удобно представлять алгебраические выражения, графы, элементы конечных групп, множества, правила вывода и прочие трудные объекты. Списки считаются более эластичной формой представления информации в памяти компьютеров.

В последствии возникновения Лиспа разными создателями был предложен целый ряд других алгоритмических языков нацеленных на решение задач в сфере искусственного интеллекта, среди которых можно отметить Плэнер, Снобол, Рефал, Пролог. Однако данное не помешало Лиспу остаться наиболее пользующимся популярностью языком для решения этих задач. На протяжении почти сорокалетней истории его существования возник ряд диалектов данного языка: Common LISP, Mac LISP, Inter LISP, Standard LISP.

Огромным достоинством Лиспа считается его многофункциональная тенденция, т. е. программирование проводится при помощи функций. При этом функция понимается, как правило, сопоставляющее элементам некоторого класса надлежащие элементы иного класса. Сам процесс сравнения не оказывает практически никакого воздействия на работу программы, важен исключительно его итог – значение функции. Это разрешает сравнительно просто писать и отлаживать огромные программные комплексы. Язык программирования Лисп предназначен в первую очередь для обработки символьной информации. Поэтому естественно, что во всем мире Лиспа числа играют далеко не основную роль [8].

Пролог (PROgramming in LOGic) – язык логического программирования предназначен для представления и применения знаний о некой предметной области. Программы на данном языке состоят из некоторого множества отношений, а ее выполнение сводится к выводу нового отношения на основе данных. В Прологе реализован декларативный подход, при котором достаточно обрисовать задачу при помощи правил и утверждений относительно данных объектов. В случае если данное описание считается довольно четким, то ЭВМ сможет без помощи других отыскать требуемое решение.

Оккам (назван в честь философа У. Оккама) – язык был создан в 1982 году и предназначен для программирования транспьютеров – многопроцессорных систем распределенной обработки данных. Он описывает взаимодействие параллельных действий в виде каналов – методов передачи информации от одного процесса к другому. Стоит отметить необыкновенность синтаксиса языка Оccam – в нем поочередный и параллельный порядки выполнения операторов равноправны, и их нужно явно предписывать ключевыми PAR и SEQ [9].

PHP (англ. PHP: Hypertext Preprocessor — «PHP: препроцессор гипертекста») — язык программирования, предназначенный для генерации HTML-страниц на веб-сервере и работы с базами данных. В текущее время поддерживается основным количеством хостинг-провайдеров. Входит в LAMP — «типовой» набор для создания сайтов (Linux, Apache, MySQL, PHP (Python либо Perl)). Группа создателей PHP состоит из огромного количества людей, добровольно работающих над ядром и расширениями PHP и смежными проектами, в том числе PEAR либо документация языка.

В сфере программирования для Сети PHP — один из популярнейших скриптовых языков (наряду с JSP, Perl и языками, применяемыми в ASP.NET) благодаря собственной простоте, скорости исполнения, богатой функциональности и распространению исходных кодов на базе лицензии PHP. PHP выделяется наличием ядра и подключаемых модулей, «расширений»: для работы с базами данных, сокетами, динамической графикой, криптографическими библиотеками, документами формата PDF и т. п.

Любой желающий имеет возможность создать своё личное расширение и подключить его. Есть сотни расширений, но в обычную поставку входит только несколько десятков отлично показавших себя. Интерпретатор PHP подключается к веб-серверу или через модуль, сделанный именно для данного сервера (к примеру, для Apache либо IIS), или в виде CGI-приложения.

Помимо этого, у него есть возможность использоваться для решения административных задач в операционных системах UNIX, GNU/Linux, Microsoft Windows, Mac OS X и AmigaOS. Но в этом качестве он не стал популярен, отдавая пальму первенства Perl, Python и VBScript. В текущее время PHP используется сотнями тысяч разработчиков. Около 20 млн. веб-сайтов сообщают о работе с PHP, что составляет более пятой доли доменов Интернета [13].

ГЛАВА 2. ОБЗОР ВОЗМОЖНОСТЕЙ ОСНОВНЫХ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ВЫСОКОГО УРОВНЯ

2.1. Графические возможности Delphi

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

Языковые специфики языка Delphi/Pascal таковы, что используют в виде ключевых слов просто читаемые и интерпретируемые символьные очередности. Это разрешает «проговаривать» тексты программ, и это поддерживается при использовании Delphi/Pascal [12].

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

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

Delphi на базе Pascal имеет слишком маленький порог вхождения. Зрительная среда, поддерживающая функции форматирования, подсветки синтаксиса и отладки. Среда считается эргономически равновесной и комфортной как для молодых, так и для опытных пользователей [18].

Delphi принадлежит к роду RAD-инструментов. Ручной ввод программного текста сочетается с манипуляциями в интерактивном режиме с готовыми составляющими. Педагог имеет возможность разнообразить методологию, начиная как с «чистого» программирования, так и с «быстрой разработки».

Всё зависит от возрастной, психофизических отличительных черт определенной категории учеников. Можно даже разделять единый урок на две части – «классическое программирование» и интерактивное изучение в игровой форме для сохранения концентрации внимания.

Актуальной версией считается Delphi XE5, хотя она поддерживает работу в режиме «канонических» учебных образцов (консольное приложение с текстовым либо файловым вводом/выводом).

Delphi XE5 имеет интегрированный набор визуальных 3D-компонентов. Программирование на самом деле становится интерактивным. Это не «мучительный набор слова программы», а живое взаимодействие со средой исследования [4].

Delphi дает возможность программисту разрабатывать программы, которые могут выводить графику: схемы, чертежи, картинки.

Программа выводит графику на плоскость объекта (формы либо компонента Image). Плоскости объекта соответствует свойство canvas. Для того чтобы вывести на плоскость объекта графический элемент (прямую линию, окружность, прямоугольник и т. д.), нужно применить к свойству canvas данного объекта соответствующий способ. К примеру, инструкция Form1.Canvas.Rectangle (10,10,100,100) вычерчивает в окне программы прямоугольник.

К тому же, свойство canvas — это объект вида TCanvas. Способы данного вида гарантируют вывод графических примитивов (точек, линий, окружностей, прямоугольников и т. д.), а характеристики позволяют установить свойства выводимых графических примитивов: цвет, толщину и стиль линий; расцветка и вид заполнения областей; свойства шрифта при выводе текстовой информации [6].

Способы вывода графических примитивов рассматривают свойство Canvas как некий абстрактный холст, на котором они могут рисовать (canvas переводится как «плоскость», «холст для рисования»). Холст состоит из отдельных точек — пикселов.

Положение пиксела характеризуется его горизонтальной (X) и вертикальной (Y) координатами. Левый верхний пиксел имеет координаты (0, ). Координаты возрастают сверху вниз и слева направо (рисунок 1). Значения координат правой нижней точки холста находятся в зависимости от размера холста.

Рисунок 1 – Холст

Размер холста можно получить, обратившись к свойствам Height и width области картинки (image) либо к свойствам формы: ClientHeight и Clientwidth.

Художник в собственной работе использует карандаши и кисти. Способы, обеспечивающие вычерчивание на плоскости холста графических примитивов, также используют карандаш и кисть. Карандаш используется для вычерчивания линий и контуров, а кисть — для закрашивания областей, ограниченных контурами.

Карандашу и кисти, применяемым для вывода графики на холсте, отвечают характеристики Реn (карандаш) и Brush (кисть), которые представляют собой объекты вида Tреn и TBrush, соответственно. Значения параметров данных объектов характеризуют вид выводимых графических элементов [15].

Для вывода текста на поверхность графического объекта используется метод TextOut. Инструкция вызова метода TextOut в общем виде выглядит так:

Объект.Canvas.TextOut(x, у, Текст)

где:

  • объект — имя объекта, на поверхность которого выводится текст;
  • х, у — координаты точки графической поверхности, от которой производится вывод текста (рисунок 2);
  • Текст — переменная либо константа символьного вида, значение которой описывает выводимый способом текст.

Рисунок 2 - Координаты области вывода текста

Шрифт, который употребляется для вывода текста, определяется значением свойства Font соответствующего объекта canvas. Свойство Font представляет собой объект вида TFont.

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

Вычерчивание графических примитивов на плоскости компонента (формы либо области вывода картинки) осуществляется использованием соответствующих способов к свойству Canvas этого компонента.

Более просто вывести картинку, которая располагается в файле с расширением bmp, jpg либо ico, возможно с помощью компонента image, значок которого располагается на вкладке Additional палитры (рисунок 3).

Рисунок 4 - Вкладка Additional. Значок компонента Image

Иллюстрацию, которая станет выведена в поле компонента image, можно задать как в период разработки формы приложения, так и в период работы программы [16].

В период разработки формы иллюстрация задается установкой значения характеристики picture методом выбора файла иллюстрации в шаблонном диалоговом окне, которое появляется в результате щелчка на командной кнопке Load окна Picture Editor (рисунок 5).

Рисунок 5 – Окно Picture Editor

Чтобы запустить Image Editor, необходимо в окне Object Inspector выбрать свойство Picture и щелкнуть на кнопке с тремя точками.В случае если размер картинки больше объема компонента, то свойству strech необходимо присвоить значение True и установить значения параметров width и Height пропорционально настоящим размерам иллюстрации. Чтобы вывести иллюстрацию в поле компонента image в период работы программы, необходимо применить способ LoadFromFile к свойству Picture, указав в качестве параметра название файла иллюстрации. Например, инструкция

Form1.Image1.Picture.LoadFromFile('e:\temp\bart.bmp')

загружает иллюстрацию из файла bart.bmp и выводит ее в поле вывода иллюстрации (imagel).

Способ LoadFromFile разрешает отображать иллюстрации разных графических форматов: BMP, WMF, JPEG (файлы с расширением jpg).

Следующая программа использует компонент image для просмотра иллюстраций, которые находятся в обозначенном пользователем каталоге. Диалоговое окно программы приведено на рисунке 6 [5].

Рисунок 6 - Слайд-проектор

2.2. Возможности языка программирования Java

Для разработки прикладного программного обеспечения на языке Java, а точнее графического интерфейса приложений, традиционно употребляются пакеты AWT и Swing.

AWT (для доступа загружается пакет java.awt) имеет набор классов, позволяющих выполнять графические операции и создавать оконные составляющие управления, аналогично тому, как это делается в VBA и Delphi;

Swing (для доступа загружается пакет javax.swing) имеет новые классы, в основном подобные AWT. К именам классов добавляется J (JButton, JLabel и другие) [3].

Сейчас главные классы для возведения визуальных интерфейсов находятся в пакете Swing. Из пакета AWT используются классы для обработки сообщений.

  • Разработка Swing предоставляет механизмы для управления следующими качествами представления:
  • Клавиатура (Swing предоставляет метод перехвата пользовательского ввода);
  • Цвета (Swing предоставляет метод менять расцветки, которые вы видите на дисплее);
  • Текстовое поле для ввода (Swing предоставляет текстовые составляющие для обработки всех ежедневных задач) [19].

JComponent

Базовым классом всей библиотеки визуальных компонентов Swing считается JComponent. Это суперкласс других визуальных компонентов. Он считается абстрактным классом, поэтому в реальности нельзя сделать JComponent, хотя он имеет сотни функций, которые любой компонент Swing применяет как результат иерархии классов. Класс JComponent гарантирует инфраструктуру окрашивания для всех компонент, он знает, как обрабатывать все нажатия кнопок на клавиатуре, его подклассы, следовательно, обязаны лишь прослушивать конкретные кнопки. Класс JComponent кроме того имеет способ add(), который разрешает прибавить иные объекты класса JComponent, так можно прибавить любой Swing-компонент к любому иному для создания вложенных компонентов (к примеру, JPanel, содержащую JButton, либо даже более необычные комбинации, к примеру JMenu, содержащее JButton).

JLabel

Самым обычным и вмести с этим главным визуальным компонентом в библиотеке Swing считается JLabel, либо «метка». К методам данного класса относится установка текста, изображения, выравнивания и прочих компонентов

JButton

Главным активным компонентом в Swing считается Jbutton.

Способы, применяемые для конфигурации параметров JButton, подобны способам JLabel. Они управляют текстом, изображениями и ориентацией

JFrame

КлассJFrame считается контейнером, позволяющим добавлять к для себя иные составляющие для их организации и предоставления пользователю.

JFrame выступает в качестве моста между независящими от определенной операционной системы Swing-частями и настоящей операционной системой, на которой они трудятся. JFrame регистрируется как окно и таким образом получает многие свойств окошка операционной системы: минимизация/максимизация, изменение размеров и движение [14].

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

1. Схемы (layout). Swing содержит огромное количество схем, которые представляют собой классы, управляющие размещением компонентов в приложении и тем, что обязано случится с ними при изменении объемов окна приложения либо при удалении либо добавлении компонентов.

2. События (event). Программа обязана обращать внимание на нажатия клавиш, нажатия клавиши мыши и на все другое, что пользователь может сделать.

3. Модели (model). Для наиболее сложных компонентов (перечни, таблицы, деревья) и даже для некоторых более простых, например, JComboBox, модели – это самый действенный метод работы с данными. Они убирают огромную часть работы по обработке данных из самого компонента и дают оболочку для совместных объектных классов данных (к примеру, Vector и ArrayList) [2].

Почти все из поверхностей, на которых отображается графика, — к примеру, экраны мониторов либо листы бумаги — считаются плоскими. Программирование 3D графики разрешает воссоздавать близкие к реальности модели большого мира на поверхностях в двухмерном облике.

3D графика имеет достоинства в том смысле, что фактически все, что видно вокруг, можно моделировать — цифровым образом представить форму и объемы, а также показать — нарисовать на экране компьютера [7].

В настоящее время присутствует огромное количество приложений, позволяющих трудиться с трехмерной графикой — от игр и медицинского оборудования до трехмерных игр и хранителей экранов. Заслуги в сфере компьютерного аппаратного обеспечения дали почву значительному подъему энтузиазма к трехмерной графике. Успех в разработке высокопроизводительного аппаратного обеспечения содействовали исследованиям высокоэффективных интерфейсов прикладного программирования 3D графики — от сделанного в 70-х годах API CORE от Siggraph и создания в 80-х годах прошлого века OpenGL фирмой SGI, до нынешних средств программирования 3d графики, включая Microsoft DirectSD и Java3D.

3D графика требует графических алгоритмов, использующих непростой математический аппарат. Java 3D дает разработчикам верные и развитые возможности для работы с трехмерной графикой, в этот момент оставляя за сценой арифметику, нужную для реализации графических алгоритмов. Java 3D — это высокоуровневый API программирования 3D графики. Java 3D управляет всеми нужными низкоуровневыми операциями для работы с графикой, поэтому разработчики имеют все шансы создавать трудоемкие трехмерные сцены, не задумываясь о применяемом аппаратном обеспечении. Аналогично Java, код Java 3D, будучи прописанным, однажды, действует везде. Приложения Java 3D будут работать подобным образом на разных графических платформах [11].

Sun Microsystems разрабатывала Java 3D API, имея в виду четыре главные цели: переносимость приложений, автономия от аппаратного обеспечения, масштабирование производительности и способность работать с трехмерной графикой через сеть. Упрощение трудоемких графических операций играло главную роль при разработке Java 3D API.

Вот некие области и сферы внедрения API Java 3D:

  • визуализация трехмерных данных;
  • взаимодействующие между собой приложения;
  • игры (в особенности сетевые с несколькими соучастниками);
  • деловая графика;
  • интерактивные обучающие системы;
  • моделирование и визуализация молекулярных структур;
  • разработка трехмерных Web-приложений;
  • разработка трехмерных графических пользовательских интерфейсов.

Java 3D предлагает несколько многофункциональных способностей, которые имеют все шансы использоваться для исследования трехмерных графических приложений:

  • Поведения. Java 3D поддерживает огромное количество поведений, включая анимацию и движение, обнаружение столкновений (выявление, когда два объекта сталкиваются) и морфинг (трансформацию одного изображения в иное изображение).
  • Вуалирование. Java 3D поддерживает вуалирование содержимого, собственно ограничивает возможность просмотра конкретных объектов в сцене. К примеру, вуалирование помогает сделать близкую к реальности модель дождя либо урагана в игре.
  • Геометрия. Java 3D имеет интегрированные трехмерные графические примитивы для сотворения геометрических фигур. В Java 3D можно показывать сцены, сделанные в других приложениях 3D графики, к примеру, SDStudio Мах, VRML и LightwaveSD.
  • Освещение. Java 3D разрешает освещать объекты трехмерной сцены. Java 3D поддерживает разные виды освещения и управления его расцветкой, направлением и интенсивностью.
  • Звук. Оригинальной необыкновенностью Java 3D является поддержка SD-звука.
  • Текстуры. Java 3D поддерживает наложение текстур на плоскости трехмерных фигур [14].

Изображения, отображаемые при помощи Java 3D, именуют сценами. Сцену кроме того именуют виртуальной вселенной – это трехмерное пространство, которое имеет набор фигур. Корнем сцены Java 3D считается объект VirtualUniverse.

Объект VirtualUniverse имеет систему координат для расположения графов сцены, которые она имеет. Любая трехмерная сцена Java 3D описывается вблизи графов сцены – иерархических структур, которые задают атрибуты трехмерной среды. Любой граф сцены закреплен к объекту VirtualUniverse в конкретной точке системы координат виртуальной системы.

Граф сцены состоит из внутренней системы координат и графов – веток. Любой граф сцены имеет внутреннюю систему координат. Класс Locale считается корневым узлом графа сцены и имеет вложенные системы координат для виртуальной вселенной и ряд графов-ветвей. В Java 3D имеется два вида графов-ветвей: графы-ветви содержимого и графы-ветви представления. Графы-ветви содержимого задают содержимое в трехмерных сценах, включая геометрию, освещение, текстуры, вуалирование и поведение. Графы-ветви представления содержат платформы исследования — коллекции объектов, которые характеризуют перспективу, позицию, ориентацию и масштаб в трехмерных сценах. Платформу исследования также именуют точкой зрения.

Класс SceneGraphObject Java 3D — базовый класс для всех объектов в графе-ветви. Объект SceneGraphObject имеет возможность содержать группу Group, которая представляет из себя узел, имеющий огромное количество дочерних узлов. Дочерними узлами группы Group могут быть категории (объект Group), листья (объект Leaf) либо узлы-компоненты (объект NodeComponents). Узлы-листья Leaf задают геометрию, освещение и звук в графах-ветвях содержимого и составляющие платформы наблюдения в графе-ветви представления.

Объекты NodeComponent задают разные составляющие в объектах Group и Leaf, в том числе текстуру и атрибуты расцветки [8].

ЗАКЛЮЧЕНИЕ

В данной курсовой работе было рассмотрено создание графических приложений в языках программирования высокого уровня.

При рассмотрении данной темы были решены такие задачи:

  • проанализированы системы программирования;
  • изучены графические возможности языка программирования Delphi;
  • изучены графические возможности языка программирования Java;
  • изучены языковые особенности;
  • изучены графические методы Delphi и Java 3D.

Из проделанной работы, можно сделать следующие выводы.

Языки низкого уровня практически не похожи на обычный для человека язык. Это могут быть разные виды языка ассемблера либо сами машинные коды. Используются они для воплощения особых частей программ для обеспечения большей производительности.

Программы на языках высокого уровня близки к натуральному (английскому) языку и предполагают набор этих команд. Перечислим наиболее известные системы программирования.

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

Языковые специфики языка Delphi/Pascal таковы, что используют в виде ключевых слов просто читаемые и интерпретируемые символьные очередности. Это разрешает «проговаривать» тексты программ, и это поддерживается при использовании Delphi/Pascal.

Для разработки прикладного программного обеспечения на языке Java, а точнее графического интерфейса приложений, традиционно употребляются пакеты AWT и Swing.

AWT (для доступа загружается пакет java.awt) имеет набор классов, позволяющих выполнять графические операции и создавать оконные составляющие управления, аналогично тому, как это делается в VBA и Delphi.

Swing (для доступа загружается пакет javax.swing) имеет новые классы, в основном подобные AWT. К именам классов добавляется J (JButton, JLabel и другие).

В настоящее время присутствует огромное количество приложений, позволяющих работать с трехмерной графикой — от игр и медицинского оборудования до трехмерных игр и хранителей экранов. Заслуги в сфере компьютерного аппаратного обеспечения дали почву значительному подъему энтузиазма к трехмерной графике.

Недочетом языков высокого уровня считается больший размер программ в сравнении с программами на языке низкого уровня. Поэтому в основном языки высокого уровня используются для разработок программного обеспечения компьютеров и приборов, которые имеют большой размер памяти.

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

  1. Алгоритмизация и программирование: Учебное пособие / С.А. Канцедал. - М.: ИД ФОРУМ: НИЦ ИНФРА-М, 2014. - 352 с.
  2. Бабушкина, И. А. Практикум по объектно-ориентированному программированию / И. А. Бабушкина, С. М. Окулов. - 3-е изд. (эл.). - М. : БИНОМ. Лаборатория знаний, 2012. - 366 с.
  3. Базовые средства программирования/ В.Н. Шакин. - М.: Форум: НИЦ ИНФРА-М, 2015. - 304 с.
  4. Введение в специальность программиста: Учебник / В.А. Гвоздева. - 2-e изд., испр. и доп. - М.: ИД ФОРУМ: НИЦ Инфра-М, 2013. - 208 с.
  5. Голицына О.Л. Языки программирования: Учебное пособие / О.Л. Голицына, Т.Л. Партыка, И.И. Попов. - 3-e изд., перераб. и доп. - М.: Форум: ИНФРА-М, 2015. - 400 с
  6. Ездаков, А. Л. Функциональное и логическое программирование: учебное пособие / А.Л.Ездаков. - 2-е изд. - М. : БИНОМ. Лаборатория знаний, 2011. - 119 с.
  7. Информатика, автоматизированные информационные технологии и системы: Учебник / В.А. Гвоздева. - М.: ИД ФОРУМ: НИЦ ИНФРА-М, 2015. - 544 с.
  8. Каймин В.А.Информатика: Учебник/ Каймин В. А., 6-е изд. - М.: НИЦ ИНФРА-М, 2015. - 285 с
  9. Культин Н. Б. Основы программирования в Delphi XE. — СПб.: БХВ-Петербург, 2011. — 405 с.
  10. Культин, Н. Б. Основы программирования в Delphi 7 / Н.Б. Культин. — 2-е изд., перераб. и доп. — СПб.: БХВ-Петербург, 2011. — 640 с.
  11. Масленникова, О. Е. Основы искусственного интеллекта: учеб. пособие / О. Е. Масленникова, И. В. Гаврилова. - 2-е изд., стер. - М.: ФЛИНТА, 2013. - 282 c.
  12. Машнин Т. С. Современные Java-технологии на практике. — СПб.: БХВ-Петербург, 2010. — 560 с.
  13. Монахов В. В. Язык программирования Java и среда NetBeans. — 3-е изд., перераб. и доп. — СПб.: БХВ-Петербург, 2011. — 703 с.
  14. Окулов, С. М. Основы программирования / С. М. Окулов. - 5-е изд., испр. - М.: БИНОМ. Лаборатория знаний, 2011. - 440 с.
  15. Осипов Д. Л. Базы данных и Delphi. Теория и практика. — СПб.: БХВ-Петербург, 2011. — 746 с.
  16. Основы алгоритмизации и программирования: Учебное пособие / В.Д. Колдаев; Под ред. Л.Г. Гагариной. - М.: ИД ФОРУМ: ИНФРА-М, 2015. - 416 с.
  17. Программирование на языке Object Pascal: Учеб. пос. / Т.И.Немцова и др; Под ред. Л.Г.Гагариной. - М.: ИД ФОРУМ: НИЦ ИНФРА-М, 2013. - 496 с.
  18. Программирование на языке высокого уровня. Учебное пособие / Т.И. Немцова; Под ред. Л.Г. Гагариной. - М.: ФОРУМ: ИНФРА-М, 2015. - 496 с.
  19. Программирование на языке Си/А.В.Кузин, Е.В.Чумакова - М.: Форум, НИЦ ИНФРА-М, 2015. - 144 с.
  20. Технология разработки программного обеспечения: Учеб. пос. / Л.Г.Гагарина, Е.В.Кокорева, Б.Д.Виснадул; Под ред. проф. Л.Г.Гагариной - М.: ИД ФОРУМ: НИЦ Инфра-М, 2013. - 400 с.
  21. Языки программирования: Учебное пособие / О.Л. Голицына, Т.Л. Партыка, И.И. Попов. - 3-e изд., перераб. и доп. - М.: Форум: ИНФРА-М, 2015. - 400 с.