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

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

Содержание:

ВВЕДЕНИЕ

С быстрым развитием вычислительной техники в середине ХХ ст. появился специальный машинный язык, который давал возможность программистам вводить команды для выполнения их процессором, напрямую – оперируя ячейками памяти - Ассемблер.

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

Языки программирования тех годов, как и компьютеры, были созданы для специфичных таких задач: научные вычисления, экономические и математические расчеты и т.д. Поскольку ЕОМ были дорогостоящими и однозадачными, то и, так называемое, «машинное время» было дорогим – поэтому скорость выполнения инструкций программы стояла на первом месте.

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

В нынешнее время актуальной проблемой является создания программных продуктов с оконным интерфейсом, чем и обеспечивается удобность использования интерфейса «пользователь-система».

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

Исходя из цели работы необходимо решить такие основные задачи:

– рассмотреть понятия и классификацию языков программирования;

  • описать основы языка программирования высокого уровня С++;
  • раскрыть методы написания программы, комментарии в С++;
  • рассмотреть интерфейс среды разработки C++ Builder;
  • создать графическое приложение для демонстрации методов разработки графических программ.

Объектом исследования является программное обеспечение персонального компьютера.

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

В связи с развитием вычислительной техники возникали различные методики создания программ: структурный, объектно-ориентированный, функциональный подходы. Развитием теоретических и практических основ языков программирования занимались отечественные и зарубежные программисты: П.Голдинг, Королюк В.С., С.Прата, Б. Стауструп и многие другие.

1. Языки программирования и их классификация

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

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

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

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

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

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

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

– наличие совершенных методов обнаружения ошибок на этапе трансляции;

– различных макрокоманд ввода-вывода;

– уменьшение трудовых затрат на составление программ.

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

Языки первого и второго уровней относятся к машинно-ориентированным языкам. Машинно-ориентированный язык - язык программирования, который отображает структуру данной ЭВМ или данного класса ЭВМ.

Начиная с четвертого уровня расположены машинно-независимые языки.

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

Проблемно-ориентированный язык - язык программирования, предназначенный для решения определенного класса задач. Язык по возможности использует символику и систему понятий соответствующей проблемной области. К этому типу языков относятся Лисп [Lisp], РПГ [RPG от Report Program Generator], Симула. Эти языки используются для записи задач в терминологии потребителя. Алфавит этих языков – символы и понятия тех отраслей науки и техники, для которых составляется программа. Эти языки не требуют записи алгоритма в виде связанной логической последовательности действий. Достаточно иметь входные данные, указать действия, которые должны проводиться над ними, и какие результаты нужно получить на выходе. Все остальные функции возлагаются на транслятор, который определяет, какая логическая схема нужна для решения задачи.

Программа, написанная проблемно-ориентированным языком, - компактная, понятна специалисту в данной области знаний. Для ее сборки не требуется предварительных знаний техники программирования.

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

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

В этих языках вычислительный процесс записывается как подробная последовательность определенных процедур. Использование процедурно-ориентированных языков позволило:

–упростить написание программ;

– сократить время их настройки;

– выполнять программу, составленную для одной машины, на другой.

Параллельно со специализацией как в разрезе классов задач существуют универсальные языки, которые можно использовать для программирования задач нескольких классов. К таким языкам относятся языки ПЛ/1, Паскаль, С.

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

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

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

Язык функционального программирования - декларативный язык программирования, основанный на понятии функции. Функции в языке задают зависимость, но не определяют порядок вычислений.

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

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

Объектно-ориентированный язык - язык программирования, который поддерживает объектно-ориентированное программирование. К данной группе языков принадлежат C ++, Smalltalk.

Все языки ООП основаны на трех основных концепциях - инкапсуляция, полиморфизм и наследование. Инкапсуляция - это механизм, который объединяет данные и код, манипулирует этим данным, защищает их от внешнего вмешательства или неправильного использования. В ООП данные и программный код, который обрабатывает их, могут быть объединены вместе, тогда говорят, что создается объект.

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

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

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

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

2. Язык программирования С++

2.1 Основные понятия о С++

С момента своего создания язык программирования C ++ потерпел три значительных совершенствования, то есть каждый раз он как дополнялся новыми средствами, так и в чем-то менялся.

Первой ревизии язык C ++ был подвергнут в 1985 г., а второй он получил в 1990 г. Третья ревизия состоялась в процессе его стандартизации которая активизировалась в начале 1990-х. Специально для этого был сформирован объединенный ANSI/ISO-комитет, который 25 января 1994 принял первый проект предложенного на рассмотрение стандарта. В этот проект были внесены все средства, впервые определенные Б. Страуструпом, и добавлены новые. Но в целом он отражал состояние языка программирования C++ на тот момент времени.

Вскоре после завершения работы над первым проектом стандарта языка программирования C++, произошло событие, которое заставило значительно расширить имеющийся стандарт. Речь идет о создании Стандартной Библиотеки Шаблонов (Standard Template Library - библиотека STL). Библиотека STL - набор обобщенных функций, которые можно использовать для обработки данных. Комитет ANSI/ISO проголосовал за внесение библиотеки STL в спецификацию языка программирования C++. Добавление библиотеки расширило сферу применения средств языка C++ далеко за пределами первоначального его определения.

Необходимо отметить, что стандартная библиотека языка программирования C++ содержит стандартную библиотеку языка С с небольшими изменениями, которые делают ее более соответствующим языку C++. Другая большая часть библиотеки C++ базируется на библиотеке STL. Она предоставляет такие важные инструменты, как контейнеры (например, векторы и списки) и итераторы (обобщенные указатели), предоставляющих доступ к этим контейнерам как к массивам.

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

Так же, как и в языке программирования С, возможности библиотек активизируются использованием директивы #include для включения стандартных файлов. Всего в стандарте языка программирования C++ определено 50 таких файлов.

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

Транслятор - это программа, предназначенная для перевода текста программы с одного языка программирования на другой. Процесс перевода называется трансляцией.

Различают два типа трансляторов:

- Компиляторы;

- Интерпретаторы.

Компилятор - это программа, предназначенная для перевода в машинные коды программы, написанной на языке высокого уровня. Процесс такого перекладывания называется компиляцией.

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

Существует другой способ сочетания процессов трансляции и выполнения программ. Он называется интерпретацией. Интерпретатор - это программа, предназначенная для трансляции и выполнения исходной программы по командам (в отличие от транслятора, который этот процесс выполняет в целом). Такой процесс называется интерпретацией.

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

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

2.2 Методика создания программ на языке высокого уровня С++

Процедура создания программы зависит от текстового редактора, компилятора и операционной системы.

Однако в целом ее основные этапы остаются неизменными.

- Создание исходного кода.

- Компиляция.

- Редактирование связей.

- Выполнение.

Первый этап - создание текста программы - практически не зависит от компилятора и операционной системы. Для создания и редактирования текста программы можно применять любой доступный текстовый редактор. Однако поскольку этот текст имеет особое назначение, на файл, содержащий исходный код программы, накладываются некоторые ограничения. Во-первых, этот файл должен быть текстовым, то есть должен содержать ASCII-коды. Никакие другие форматы файлов не допускаются. Во-вторых, файл, содержащий исходный код, должен иметь расширение, предусмотрено компилятором (.cpp, .cp или .cxx). Рассмотрим следующий пример:

int main ()

{

 return 0;

}

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

Тело функции main () начинается и заканчивается фигурными скобками. Внутри этих скобок перечисляются операторы, что, собственно, и определяют содержание программы.

В данном случае эта программа после запуска сразу возвращает управление операционной системе с помощью оператора return. Функция main() возвращает целое число, анализируется операционной системой.

Если программисту не важно, как завершена программа, и он не предусматривает определенной реакции операционной системы, перед именем main() следует поставить ключевое слово void. Для того чтобы вернуть управление операционной системе можно или выполнить оператор return, или дождаться, пока поток управления достигнет последней фигурной скобки.

В таком варианте программа может выглядеть так.

void main ()

{

  return; // Возвращение управления

 }

или

void main ()

{

 } // Возвращение управления

Тривиальная программа, рассмотренная выше, конечно, исключение. Каждая реальная программа выполняет, по крайней мере, операции ввода и вывода, а для этого ей нужны стандартные функции, входящие в процедурную систему ввода-вывода языка С, или операторы, которые являются частью объектно-ориентированной системы ввода-вывода языка С++. Чтобы использовать эти функции и операторы, необходимо включить в программу заголовочный файл <stdio.h> или заголовок <iostream>.

Для этого в директиве #include указывается имя соответствующего заголовочного файла, заключенное в угловые скобки.

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

Для этого нужно включить в программу заголовочный файл iostream, содержащий определение операторов ввода и вывода. Каждый раз, когда нам нужно вызвать какую-нибудь стандартную функцию или обратиться к встроенной константе, необходимо включать в программу соответствующий заголовочный файл. Для этого, в частности, предназначен препроцессор языка С ++.

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

Препроцессор не выполняет синтаксический анализ текста. Он просто распознает макроподстановки и выполняет их.

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

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

Рассмотрим в качестве примера фрагмент программы, содержащий очень распространенную директиву #include.

#include <iostream>

#include <math.h>

# Include <string.h>

#include <conio.h>

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

Вторую строка правильная, поскольку символ # является отдельной лексемой. Между первой и второй лексемами директивы препроцессора могут располагаться только пробелы и символы горизонтальной табуляции. Любые другие разделители запрещены. Несмотря на то что символ # - отдельная лексема, он является неотъемлемой частью имени директивы.

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

#include <stdio.h>

main ()

{

#include "file1.txt"

#include "С: \ text \ file2.txt"

 return 0;

}

Этот фрагмент иллюстрирует одно интересное свойство директивы #include. С ее помощью можно вставлять в текст программы не только стандартные, но и собственные текстовые файлы. Для этого следует применять лапки, а не угловые скобки. В этом случае поиск файла выполняется в текущем каталоге, а не в каталоге INCLUDE. Если такого файла в текущем каталоге нет, выполняется поиск в каталоге INCLUDE. Регистр букв при наборе имени файла не имеет значения. Кроме того, в директиве #include можно явно указывать путь к файлу. Имена каталогов в системе Windows разделяются обратной косой чертой, а в системе UNIX - косой чертой.

2.3. Использование комментариев в С++

Как правило, программу читает не только ее автор, но и его коллеги. Однако даже если программа написана для себя, то даже в скором времени можно забыть, для чего предназначена та или иная функция, а также тот или иной оператор.

Чтобы этого не случилось, программу документируют, вставляя в нее комментарии. В языке С++ есть два вида комментариев - многострочные и однострочные.

Многострочные комментарии, унаследованные от языка С и представляют собой объяснение, заключенные в символы /* и */. Эти комментарии называются многострочными, так как компилятор игнорирует все, что находится между символами /* и */, включая самые ограничители, и следовательно, между ними можно вставлять сколько угодно строк текста.

Однострочный комментарий слева ограничен символами //, а справа - концом строки программы. Итак, комментарии этого вида могут находиться только справа от оператора. Конечно вложенные комментарии не используются, однако, компиляторы, как правило, допускают вложения многострочных комментариев. Вложения однострочных операторов не имеет смысла, поскольку левый ограничитель вложенного комментария при этом ничем не отличается от других символов.

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

"Закомментировав" подозрительный фрагмент программы, можно достаточно быстро найти место возможной ошибки.

Пример оформления программы с помощью комментариев

/ *

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

* /

 #include <iostream> // Директива препроцессора

 int plus (int, int); // Прототип функции plus ()

 int minus (int, int); // Прототип функции minus ()

 int multiply (int, int); // Прототип функции multiply ()

 int main ()

 {

 int a, b, c, d, e; // Объявления локальных переменных

 cin >> a; // Введение первого аргумента

 cin >> b; // Введение второго аргумента

 c = plus (a, b) // Добавление двух аргументов

 d = minus (a, b) // Вычисление двух аргументов

 e = multiply (a, b) // Умножение двух аргументов

 // Вывод результатов

 cout << "Сумма =" << c << endl;

 cout << "Разница =" << d << endl;

 cout << "Произведение =" << e << endl;

 return 0;

 }

 int plus (int a, int b)

 / *

Функция получает два целых аргументы a и b.

Функция вычисляет сумму аргументов, не меняя их значения.

 * /

 {

 return a + b;

 }

 int minus (int a, int b)

 / *

Функция получает два целых аргументы a и b.

Функция вычисляет разницу аргументов, не меняя их значения.

 * /

 {

 return a - b;

 }

 int multiply (int a, int b)

 / *

Функция получает два целых аргументы a и b.

Функция вычисляет произведение аргументов, не меняя их значения.

 * /

 {

 return a * b;

 }

Разумеется, программист может сам решать, насколько подробными должны быть комментарии.

3. Создание графического приложения на языке С++

3.1. Характеристика среды разработки C++ Builder

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

Визуальными языками программирования можно разрабатывать как оболочки к программам, которые уже существуют, так и создавать новые. Для этого в языках визуального программирования разработан удобный механизм написания и подключения на базовом языке программирования высокого уровня, такого как Бейсик, Паскаль, C++. К этой группе языков принадлежат Visual Basic, PowerBuilder, Borland C++ Builder.

Дадим краткую характеристику среды интегрированной разработки приложений C++ Builder.

C++ Builder – это современная технология визуального программирования, которая применяет максимальную автоматизацию ее трудоемкой части – создание оконных программ с графическими элементами.

Оболочка среды C++ Builder предоставляет возможности для использования большого набора готовых визуальных компонентов, пиктограммы которых находятся на соответствующих вкладках панели компонентов.

В среде С++ Builder используется почти 150 стандартных компонент. Все они собраны в специальной библиотеке визуальных компонентов - Visual Class Library. Рассматриваемая интегрированная среда разработки предназначена для написания программ с помощью языка программирования C++ и при этом сочетает библиотеку VCL и непосредственного среду программирования (Integrated Development Environment), которая написана для языка программирования Delphi с использованием компилятора C++.

Процесс создания программных продуктов в среде C++ Builder аналогичный Delphi, но также присутствуют существенные улучшения. Большинство компонентов, созданных в Delphi, используют и в C++ Builder без модификации, но обратное утверждение не всегда справедливо.

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

Главным объектом визуального программирования считают компонент. Компонентами в среде C ++ Builder являются классы объектов или объекты. При запуске программы их видно на экране (кроме группы невидимых компонентов), их можно легко передвигать мышью, они реагируют на щелчки клавиатуры, мыши. [14]

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

Методы выполняют определенные действия над компонентным объектом, даже такие сложные, как, например, перемотка или воспроизведение устройства мультимедиа.

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

В качестве примера визуального объекта рассмотрим компонент Button (кнопка), который имеет ряд свойств: определение границ, размеры (высота и ширина), имя, расположение на форме, надпись на кнопке, стиль, размер и цвет надписи, шрифт, видимость и др. [14]

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

Программирование в среде С++ Builder состоит из основных двух этапов:

– проектирование визуального интерфейса посредством компонентов;

– написания кода программного продукта, выполнение команд которого и обеспечит функционирование.

Рассмотрим интерфейс среды C ++ Builder.

Окно состоит из таких элементов (рис. 1):[18]

– палитра компонентов;

– окно формы;

– кнопки инструментальных панелей;

– главное меню;

– окно кода программы;

– окно инспектора объектов.

Рисунок 1 – Интерфейс среды C++ Builder

Форма занимает самое большое место и является серым прямоугольным "контейнером" (рис. 1) для размещения компонентов (надписи, кнопки, окна редакторов, панели и т.д.) при проектировании формы. Форма сама является визуальным компонентом с названием Form1.

Без указаний при проектировании заголовок компонента (то есть, свойство Caption) совпадает с названием (свойство Name), к которому добавляется порядковый номер, что начинается с единицы (например, Button1, Button2). Сам заголовок можно изменять с помощью свойства Caption. Аналогично, размеры формы можно изменить или в окне Object Inspector, или просто перетаскивая мышкой линии границы проектированной формы.

Для размещенных визуальных компонентов на форме можно вызывать контекстную справку, для чего следует, выделив нужный визуальный компонент, и нажать клавишу F1. [19]

После запуска среду C++ Builder в редакторе кода содержится минимальный набор инструкций, который обеспечивает функционирование в качестве Windows окна пустой формы. При создании своего проекта программисты вносят в него нужный код.

3.2. Создания программы с графическим интерфейсом

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

Оконная программа предназначена для вычисления стоимости покупки пользователя хлебобулочных изделий (батона и бородинского хлеба). Менеджер по продажам должен выбрать с выпадающего списка один с двух хлебобулочных изделий, при этом, если выбран один их продуктов, второй добавляется автоматически во второе поле. При вводе количества купленных товаров автоматически будет подсчитана стоимость покупки. Если стоимость выше 200 денежных единиц, то покупателю предоставляется скидка. [15]

Кнопка «Очистить» выполняет очистку полей формы.

Кнопка «Выход» предназначена для выхода из программы.

Написания какой-нибудь графической программы имеет несколько этапов.

Первый шаг – проектирование внешнего вида окна программного продукта. [13]

Для этого нужно запустить среду C++ Builder, создать проект графического приложения и поместить на форме такие компоненты (таблица 1):

Таблица 1 – Компоненты, что используются в программном продукте

№ п/п

Название компонента

Предназначение

1

Form1

Форма для оконного приложения

2

Edit10, Edit2, Edit3, Edit4, Edit5, Edit6, Edit7, Edit8, Edit8

Поля для ввода данных

3

BitBtn1

Кнопка для выхода из программы

4

Button1

Кнопка для вычисления результата

5

Button2

Кнопка для очистки полей формы

6

Label1 – Label7

Надписи

7

ComboBox1

Выпадающий список

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

Таблица 2 – Перечень свойств компонентов

№ п/п

Название компонента

Свойство компонента

Значение свойства

1

Form1

Caption

Хлебобулочные изделия

2

Edit1

Text

“”

3

Edit2 – Edit8

Text

0

4

Label1

Caption

Выберите товар

5

Label2

Caption

Количество

6

Label3

Caption

Цена

7

Label4

Caption

Стоимость

8

Label5

Caption

Сумма покупки

9

Label6

Caption

Скидка

10

Label7

Caption

Конечная сумма

11

ComboBox1

Text

Выберите товар

12

BitBtn1

Caption

Выход

13

Button1

Caption

Вычислить

14

Button1

Caption

Очистить

После выполненных действий с помощью Object Inspector внешний вид примет такое значение: (рис. 2):

Рисунок 2 – Интерфейс программы «Хлебобулочные изделия»

Второй этап проектирования – это написание программного кода для программного продукта. Рассмотрим функции разрабатываемой программы.

Для автоматического ввода данных в поля ComboBox1 и Edit1 нужно набрать следующий код:

if (ComboBox1->Text=="Бородинский")

{

Edit1->Text="Батон";

Edit4->Text="23,50";

Edit5->Text="24,00";

}

if (ComboBox1->Text=="Батон")

{

Edit1->Text="Бородинский";

Edit5->Text="23,50";

Edit4->Text="24,00";

}

Ввод количества первого продукта:

Edit6->Text=FloatToStr(StrToFloat(Edit2->Text)*StrToFloat(Edit4->Text));

Ввод количества второго продукта:

Edit7->Text=FloatToStr(StrToFloat(Edit3->Text)*StrToFloat(Edit5->Text));

При этом результат вычисления отображается в компонентах Edit5, Edit6.

Запустим программу и введем параметры (рис.3):

Рисунок 3 – Ввод данных в программу

После нажатия на кнопку «Вычислить», получим результат (рис.4):

Рисунок 4 – Вывод данных

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

При нажатии на кнопку Очистить поля программы будут очищены.

ЗАКЛЮЧЕНИЕ

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

Например, сегодня многие программисты комментируют свои программы для объяснения того, какие классы реализуют какой-либо абстрактный бизнес объект. C# позволяет использовать типизированные, расширяемые метаданные, которые могут быть прикреплены к объекту.

Архитектурой проекта могут определяться локальные атрибуты, которые будут связанны с любыми элементами языка - классами, интерфейсами и т.д.

В процессе выполнения работы были получены и закреплены практические навыки разработки программ с использованием баз данных в написании программы в среде визуального программирования Borland C++ Builder.

В процессе написания курсовой работы были реализованы следующие задачи:

– рассмотрено понятия и классификацию языков программирования;

  • описано основы языка программирования высокого уровня С++;
  • раскрыто методы написания программы, комментарии в С++;
  • рассмотрено интерфейс среды разработки C++ Builder;
  • создано графическое приложение для демонстрации методов разработки графических программ.

В процессе анализа вышеизложенной информации выявлены следующие достоинства графических программ:

  • удобность введения и просмотра информации пользователем;
  • структурированное отображение данных;
  • формирование дружественного интерфейса «пользователь - система».

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

  1. Бобровский С. Самоучитель програмирования на языке C++ в среде Borland C++ Builder М.: ИНФРА-М, 2011.–251 c.
  2. Бруно Бабэ. Просто и ясно о Borland C++: Пер. с англ. - Москва: БИНОМ, 2014. – 400с.
  3. Заварыкин В.М.. Основы информатики и вычислительной техники. — М.: Просвещение, М.: - 2011. 180 с.
  4. Задачи по программированию / С. А. Абрамов, Г. Г. Гнездилова, Е. Н. Капустина, М. И. Селюн. — М.: Наука, 2011. – 344 с.
  5. Зубов В. С. Программирование на языке С++. — М.: Информационно-издательский дом «Филинъ», 2013. – 452 с.
  6. 3yeв Е. А. Практическое программирование на языке С++. — М.: Радио и связь, 2014. – 406 с.
  7. Информатика. Задачник-практикум: В 2 т. / Под ред. И. Г. Семакина, Е.К.Хеннера. — М.: Лаборатория Базовых Знаний, 2011. – 182 с.
  8. Йенсен К. С++ — руководство для пользователей и описание языка. — М.: Мир, 2012. – 402 с.
  9. Касаткин В. Н. Информация. Алгоритмы. ЭВМ. — М.: Просвещение, 2011. – 210 с.
  10. Керниган Б. Язык программирования Си: Пер. с англ. — М.: Финансы и статистика, 2011. – 322 c.
  11. Культин Н.Б. Визуальное программирование.— СПб.: BHV — Санкт-Петербург, 2013. – 266 c.
  12. Культин Н.Б. С++ Buider в задачах и примерах – СПб.:БХВ-Петербург, 2012. – 336с.: ил.
  13. Лаптев В.В. C++. Экспресс-курс . М.: 2014.–322 с.
  14. Оллисон Ч. Философия С++. Практическое программирование. С.Петербург 2014. – 608 с.:ил.
  15. Послед Б.С. Borland C++ Builder 6. Разработка приложений баз. М.: 2013г. -360 г.
  16. Стенли Б. Липпман. C++ для начинающих: Пер. с англ. 2тт. - Москва: Унитех; Рязань: Гэлион, 2012. – 345с.
  17. Строуструп Б. Справочное руководство по языку C++ с комментариями: Пер. с англ. - Москва: Мир, 2012. – 445с.
  18. Технология разработки приложения на языке С++. Методическое указание к лабораторным работам для студентов первого курса специальности 080801.65 “Прикладная информатика”. МГУ. – М.: – 2013.–222 с.
  19. Холингворт Д. Учебник по программированию в среде С++ Builder 5. – Наука.–М.: 2011. –865 с.
  20. Юпашников A.M. Программирование в среде C++ Builder. — М.: МИФИ, 2014. – 360 c.