Компьютерные и информационные технологии

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

Рубрика Программирование, компьютеры и кибернетика
Вид методичка
Язык русский
Дата добавления 26.02.2014
Размер файла 1005,2 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Теория

Для отображения различных надписей на форме используются в основном компоненты Label, StaticText и Panel. Первые два из этих компонентов - метки, специально предназначенные для отображения текстов. Основное назначение панели Panel другое: компоновка компонентов в окне формы. Однако панель можно использовать и для вывода текстов.

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

Пример

Label1->Caption = “Текст”;

Во всех компонентах цвет фона определяется свойством Color, а цвет надписи - подсвойством Color свойства Font. Если цвет специально не задавать, то цвет фона обычно сливается с цветом контейнера, содержащего метку, так что он просто не заметен.

Для метки Label цвет и шрифт - единственно доступные элементы оформления надписи. Компоненты StaticText и Panel имеют кроме того свойство Border-Style, определяющее рамку текста - бордюр.

Компонент Panel также имеет свойства BevelInner, BevelOuter, BevelWidth, BorderWidth, которые предоставляют богатые возможности оформления надписи.

Размещение всех рассматриваемых компонентов на форме определяется, в частности, свойствами Top, Left, Height, Width, Align, общими для всех оконных компонентов.

Размер меток Label и StaticText определяется также свойством AutoSize. Если это свойство установлено в true, то вертикальный и горизонтальный размеры компонента определяются размером надписи. Если же AutoSize равно false, то выравнивание текста внутри компонента определяется свойством Alignment, которое позволяет выравнивать текст по левому краю, по правому краю или центру клиентской области метки.

В метке Label имеется свойство WordWrap - допустимость переноса слов длинной надписи, превышающей длину компонента, на новую строчку. Чтобы такой перенос мог осуществляться, надо установить свойство WordWrap в true, свойство AutoSize в false и сделать высоту компонента такой, чтобы в нем могло поместиться несколько строк.

Задание

Упражнение 1

1. Запустите C++Builder, если вы еще это не сделали, с помощью меню Windows Пуск.

2. Перенесите на пустую форму, которая открылась вам, кнопку типа TButton со страницы Standard палитры компонентов.

3. Аналогичным образом перенесите на форму с той же страницы Standard палитры компонентов компонент Label.

4. Выделите на форме компонент Button1 - кнопку. Перейдите в Инспектор Объектов и измените её свойство Caption (надпись), которое по умолчанию равно Button1 на «Пуск».

5. Сотрите текст в свойстве Caption метки Label1, чтобы он не отображался, пока пользователь не нажмет на кнопку.

6. Выделите кнопку Button1 на форме, перейдите в Инспектор Объектов, откройте в нем страницу событий (Events), найдите событие кнопки OnClick (оно первое сверху) и сделайте двойной щелчок в окне справа от имени этого события. Это стандартный способ задания обработчиков любых событий. Но перейти в обработчик события OnClick (только этого события) можно и иначе! Достаточно сделать двойной щелчок на компоненте Button1 на форме. В обоих случаях вы окажетесь в окне Редактора Кода и увидите там текст:

void_fastcall TForml::Button1Click(TObject*Sender)

{

}

Заголовок этой функции складывается из имени класса вашей формы (TForm1), имени компонента (Button1) и имени события без префикса On (Click).

7. Напишите в обработчике оператор задания надписи метки Label1.Этот оператор может иметь вид:

Label1->Caption = “Это мое первое приложение!”;

Таким образом, полностью ваш обработчик события должен иметь вид:

void_fastcall TForml::ButtonClick(TObject*Sender)

{

Label1->Caption = “Это мое первое приложение!”;

}

Оператор, который вы написали, означает следующее. Символ «=» обозначает операцию присваивания, в которой тому, что написано перед этим символом, присваивается значение того, что написано после символа присваивания. Слева вы написали: Label1->Caption. Это значит, что вы присваиваете значение свойству Caption компонента Label1. В данном случае свойству Caption вы присваиваете строку текста «Это мое первое приложение!».

Если вы написали первый идентификатор оператора - Label1, поставили символы стрелки и ненадолго задумались, то вам всплывет подсказка, содержащая список всех свойств и методов метки. Это начал работу Знаток Кода, который стремится подсказать вам свойства и методы компонентов, аргументы функций и их типы, конструкции операторов. Вы можете выбрать из списка нужное ключевое слово, нажать клавишу Enter, и выбранное слово (свойство, метод) окажется вписанным в текст. Можете поступить иначе: начать писать нужное свойство, тогда Знаток Кода сам найдет по первым введенным символам нужное свойство. Когда вы увидели, что нужное слово найдено, можете его не дописывать, а нажать Enter, и Знаток Кода допишет его за вас.

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

8. Откомпилируйте и выполните свое приложение.

Упражнение 2

1. Откройте новое приложение. Перенесите на него со страницы библиотеки Additional два окна редактирования с присоединенными к ним метками LabeledEdit, а со страницы библиотеки Standard - одну панель Panel, одну кнопку Button и одну метку Label для надписи.

2. Измените надписи в метках компонентов LabeledEdit на что-то осмысленное. Для этого щелкните на символ «+» в свойстве EditLabel этих компонентов и измените надпись в свойстве Caption.

3. Измените свойство Caption вашей кнопки, например, на «Расчет». Очистите свойство Caption у панели. В свойстве Text окон редактирования измените значение на «1» - начальное значение текста.

4. Напишите обработчик события для кнопки. Единственный оператор этого события имеет вид:

5. Panel1->Caption = LabeledEdit1->Text + “*” + LabeledEdit2->Text + “=” + FloatToStr(StrToFloat(LabeledEdit1->Text)* StrToFloat(LabeledEdit2->Text));

6. Запустите программу.

Упражнение 3

Переделайте консольные приложения, разработанные вами в лабораторных работах 2, 3, 4, 5 в оконные приложения Windows (вывод результатов работы программы должен осуществляться в различные компоненты библиотеки VCL).

Лабораторная работа 14

Изучение обработчиков событий компонентов библиотеки VCL

Цель работы - освоить использование обработчиков событий для различных компонентов библиотеки VCL.

Теория

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

Событие (Event) -- это то, что происходит во время работы программы. В C++ Builder каждому событию присвоено имя. В таблице приведены некоторые события Windows.

Событие

Происходит

OnClick

При щелчке кнопкой мыши

OnDb1Click

При двойном щелчке кнопкой мыши

OnMouseDown

При нажатии кнопки мыши

OnMouseUp

При отпускании кнопки мыши

OnMouseMove

При перемещении мыши

OnKeyPress

При нажатии клавиши клавиатуры

OnKeyDown

При нажатии клавиши клавиатуры. События OnKeyDown и OnKeyPress - это чередующиеся, повторяющиеся события, которые происходят до тех пор, пока не будет отпущена удерживаемая клавиша (в этот момент происходит событие OnKeyUp)

OnKeyUp

При отпускании нажатой клавиши клавиатуры

OnCreate

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

OnPaint

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

OnEnter

При получении элементом управления фокуса

OnExit

При потере элементом управления фокуса

Например, щелчок кнопкой мыши -- это событие Onclick, двойной щелчок мышью -- событие OnDb1Click.

Реакцией на событие должно быть какое-либо действие. В C++ Builder реакция на событие реализуется как функция обработки события. Таким образом, для того чтобы программа выполняла некоторую работу в ответ на действия пользователя, программист должен написать функцию обработки соответствующего события. Следует обратить внимание на то, что значительную часть обработки событий берет на себя компонент. Поэтому программист должен разрабатывать функцию обработки события только в том случае, если реакция на событие отличается от стандартной или не определена. Например, если по условию задачи ограничений на символы, вводимые в поле Edit, нет, то процедуру обработки события onKeyPress писать не надо, т. к. во время работы программы будет использована стандартная (скрытая от программиста) процедура обработки этого события.

Страница событий (Events) инспектора объектов показывает список событий, распознаваемых компонентом (программирование для операционных систем с графическим пользовательским интерфейсом, в частности, Windows NT предполагает описание реакции приложения на те или иные события, а сама операционная система занимается постоянным опросом компьютера с целью выявления наступления какого-либо события). Каждый компонент имеет свой собственный набор обработчиков событий. В C++ Builder следует писать функции, называемые обработчиками событий, и связывать события с этими функциями. Создавая обработчик того или иного события, вы поручаете программе выполнить написанную функцию, если это событие произойдет.

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

Рис. 11

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

Задание

Упражнение 1

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

Упражнение 2

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

Упражнение 3

Создайте приложение, добавьте на форму компоненты: Edit, Label, Button компоненты, используя событие OnClick для компонента Button, сделайте так, чтобы текст введенный в Edit появлялся в Label.

Упражнение 4

Создайте приложение, добавьте на форму компонент: Button используя событие OnMouseMove, сделайте так, чтобы на кнопку было невозможно нажать мышкой, т.е. при наведении мышкой кнопка перемещалась по форме.

Лабораторная работа 15

Использование таймера для создания различных эффектов

Цель работы - освоить работу таймером из библиотеки VCL, научиться создавать приложения с использованием этого компонента.

Теория

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

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

Если задать Interval = 0 или Enabled = false, то таймер перестает работать. Чтобы запустить отсчет времени надо или задать Enabled = true, если установлено положительное значение Interval, или задать положительное значение Interval, если Enabled = false.

Например, если требуется, чтобы через 5 секунд после запуска приложения закрылась форма-заставка, отображающая логотип приложения, на ней надо разместить таймер, задать в нем интервал Interval = 5000, а в обработчик события OnTimer вставить оператор Close, закрывающий окно формы.

Если необходимо в некоторой процедуре запустить таймер, который отсчитал бы заданный интервал, например, 5 секунд, после чего надо выполнить некоторые операции и отключить таймер, это можно сделать следующим образом. При проектировании таймер делается доступным (Enabled = true), но свойство Interval задается равным 0. Таймер не будет работать, пока в момент, когда нужно запустить таймер, не выполнится оператор:

Timerl->Interval = 5000;

Через 5 секунд после этого наступит событие OnTimer. В его обработчике надо задать оператор, который отключит таймер:

Timerl->Interval = 0;

После этого можно выполнять требуемые операции. Другой эквивалентный способ решения задачи - использование свойства Enabled. Во время проектирования задается значение Interval = 5000 и значение Enabled = false. В момент, когда надо запустить таймер выполняется оператор Timerl->Enabled = true;

В обработчик события OnTimer, которое наступит через 5 секунд после запуска таймера, можно вставить оператор:

Timerl->Enabled = false;

который отключит таймер.

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

Задание

Упражнение 1

Создайте приложение, добавьте в проект вторую форму. Используя компонент таймер сделайте так, чтобы 1-е окно показывалось 3 секунды, затем скрывалось, показывалось 2-е окно, через 3 секунды снова первое и так далее.

Упражнение 2

Создайте приложение, используя свойства формы AlphaBlend и AlphaBlendValue сделайте так, чтобы форма постепенно становилась прозрачной, затем постепенно становилась видимой и так далее.

Упражнение 3

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

Лабораторная работа 16

Рисование в канве. Построение графиков функций

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

Теория

Довольно часто появляется необходимость разместить в приложении графики, чертежи, рисунки. Для этой цели используются компоненты, имеющие свойство Canvas (канва, холст): Image, PaintBox, Bitmap и другие. Канва представляет собой область компонента, на которой можно рисовать или отображать готовые изображения. Каждая точка канвы имеет свои координаты x и y, которые измеряются в пикселях, отсчет ведется от левого верхнего угла канвы.

Рисование по пикселям осуществляется с помощью оператора:

Image1->Canvas->Pixels[x][y]=clBlack;

где x и y - координаты пикселя, задающиеся переменными типа int, которые до этого в программе должны быть описаны и инициализированы, или целыми числами; clBlack - описание цвета, которым будет рисоваться точка, в данном случае цвет - черный.

Пример

Для того чтобы нарисовать точку синего цвета с координатами (20,30) можно использовать следующие операторы:

int x = 20, y = 30;

Image1->Canvas->Pixels[x][y]=clBlue;

или:

Image1->Canvas->Pixels[20][30]=clBlue;

Для того чтобы нарисовать график функции f(x), которая имеет диапазон изменения значений от ymin до ymax, а ее аргумент изменяется от xmin до xmax, можно использовать следующий код:

float x,y, px, py;

for (int px=0; px<=Image1->Width; px++)

{

x = xmin+px*(xmax-xmin)/Image1->Width;

y=f(x);

py=Image1->Height-(y-ymin)*Image1->Height/(ymax-ymin);

Image1->Canvas->Pixels[px][py]=clBlue;

}

Здесь ввелись переменные x и y, соответствующие аргументу и значению функции и переменные px и py, являющиеся координатами пикселов, соответствующих x и y. Цикл проходит по всем горизонтальным координатам px компонента Image. В цикле px пересчитывается в соответствующее значение x, затем вызывается функция и вычисляется y, после этого у пересчитывается в вертикальную координату пикселя py.

Например, возьмем функцию у = sin(x), пусть нам нужно нарисовать график функции на промежутке от 0 до 4р, тогда xmin = 0, xmax = 4 р, ymin = -1, ymax = 1.

Рисовать можно не только попиксельно, но и с помощью пера. Перо (Pen) - свойство канвы. Перо в свою очередь тоже имеет ряд свойств - цвет (Color), ширину (Width), стиль (Style). Перо проводит линию, соединяющую соседние точки. Для рисования пером используется оператор:

Image2->Canvas->LineTo(x,y);

Перо можно переместить в точку с координатами (x,y) без прорисовывания линии с помощью оператора:

Image2->Canvas->MoveTo(x,y);

Цвет пера можно задать следующим образом (в нашем случае он будет красным):

Image2->Canvas->Pen->Color = clRed;

Чтобы нарисовать график функции пером зеленого цвета, необходимо использовать следующий код:

Image2->Canvas->MoveTo(xbegin,ybegin);

Image2->Canvas->Pen->Color = clGreen;

float x,y, px, py;

for (int px=0; px<=Image2->Width; px++)

{

x = xmin+px*(xmax-xmin)/Image2->Width;

y=f(x);

py=Image2->Height-(y-ymin)*Image2->Height/(ymax-ymin);

Image2->Canvas->LineTo(px,py);

}

Задание

1. Поместите в форму компонент Image, он будет иметь Name = Image1. Поместите в форму кнопку. В обработчике события для кнопки onClick введите код, позволяющий нарисовать график функции попиксельно. В результате ваш исходный файл должен выглядеть так:

#include <vcl.h>

#pragma hdrstop

# define Pi 3.14

#include "Unit1.h"

#include <math.h>

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

void __fastcall TForm1::Button1Click(TObject *Sender)

{

float x,y, xy, xmin = 0, xmax = 4*Pi, ymin = -1, ymax = 1;

for (int i=0; i<=Image1->Width; i++)

{

x = xmin+px*(xmax-xmin)/Image1->Width;

y=f(x);

py=Image1->Height-(y-ymin)*Image1->Height/(ymax-ymin);

Image1->Canvas->Pixels[px][py]=clBlue;

}

}

Откомпилируйте и запустите программу, посмотрите, что у вас получилось.

2. Поместите в форму еще один компонент Image, он будет иметь Name = Image2. Добавьте в функцию обработчика события onClick для кнопки код, позволяющий нарисовать график функции с помощью пера. После добавления кода ваш исходный файл должен выглядеть так:

#include <vcl.h>

#pragma hdrstop

# define Pi 3.14

#include "Unit1.h"

#include <math.h>

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

void __fastcall TForm1::Button1Click(TObject *Sender)

{

float x,y, xy, xmin = 0, xmax = 4*Pi, ymin = -1, ymax = 1;

for (int i=0; i<=Image1->Width; i++)

{

x = xmin+px*(xmax-xmin)/Image1->Width;

y=sin(x);

py=Image1->Height-(y-ymin)*Image1->Height/(ymax-ymin);

Image1->Canvas->Pixels[px][py]=clBlue;

}

Image2->Canvas->MoveTo(0,Image2->Height/2);

Image2->Canvas->Pen->Color = clGreen;

for (int px=0; px<=Image2->Width; px++)

{

x = xmin+px*(xmax-xmin)/Image2->Width;

y = sin(x);

py = Image2->Height-(y-ymin)*Image2->Height/(ymax-ymin);

Image2->Canvas->LineTo(px,py);

}

}

Откомпилируйте и запустите программу, посмотрите, что у вас получилось.

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

Лабораторная работа 17

Изучение принципа работы текстового редактора

Цель работы - понять основы работы простейшего текстового редактора.

Теория

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

Различают два типа текстовых редакторов.

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

Второй тип текстовых редакторов имеет расширенные функции форматирования текста, внедрения в него графики и формул, таблиц и объектов. Такие редакторы часто называют текстовыми процессорами и предназначены они для создания различного рода документов, от личных писем до официальных бумаг. Классический пример - Microsoft Word.

Задание

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

#include <vcl.h>

#pragma hdrstop

#include "lab15_task1.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

AnsiString FileName;

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

FileName = "Безымянный";

Form1->Caption = "Текстовый редактор - " + FileName;

ComboBox1->Items->Assign(Screen->Fonts);

}

void __fastcall TForm1::N8Click(TObject *Sender)

{

Form1->Close();

}

void __fastcall TForm1::N6Click(TObject *Sender)

{

if (OpenDialog1->Execute())

{

RichEdit1->Lines->LoadFromFile(OpenDialog1->FileName);

FileName = OpenDialog1->FileName;

Form1->Caption = "Текстовый редактор - " +

OpenDialog1->FileName;

}

}

void __fastcall TForm1::N7Click(TObject *Sender)

{

if(RichEdit1->Modified)

{

if (SaveDialog1->Execute())

{

RichEdit1->Lines->SaveToFile(SaveDialog1->FileName);

RichEdit1->Modified = false;

}

}

}

void __fastcall TForm1::N5Click(TObject *Sender)

{

if(RichEdit1->Lines->Count > 0)

{

int answer;

answer = MessageBox(0,"Сохранить содержимое

окна?","Сохранить?",MB_YESNOCANCEL);

if(answer==IDYES)

{

N7Click(Sender);

RichEdit1->Clear();

}

else if(answer==IDNO)

{

RichEdit1->Clear();

}

}

}

void __fastcall TForm1::N9Click(TObject *Sender)

{

if(FileName == "Безымянный.txt")

{

N7Click(Sender);

}

else

{

RichEdit1->Lines->SaveToFile(FileName);

}

}

void __fastcall TForm1::N10Click(TObject *Sender)

{

PrinterSetupDialog1->Execute();

}

void __fastcall TForm1::N11Click(TObject *Sender)

{

if (PrintDialog1->Execute())

{

RichEdit1->Print(OpenDialog1->FileName);

}

}

void __fastcall TForm1::N12Click(TObject *Sender)

{

RichEdit1->CutToClipboard();

}

void __fastcall TForm1::N13Click(TObject *Sender)

{

RichEdit1->CopyToClipboard();

}

void __fastcall TForm1::N14Click(TObject *Sender)

{

RichEdit1->PasteFromClipboard();

}

void __fastcall TForm1::N16Click(TObject *Sender)

{

if(N16->Checked)

{

RichEdit1->WordWrap = false;

N16->Checked = false;

}

else

{

RichEdit1->WordWrap = true;

N16->Checked = true;

}

}

void __fastcall TForm1::N15Click(TObject *Sender)

{

if(FontDialog1->Execute())

{

RichEdit1->Font = FontDialog1->Font;

}

}

void __fastcall TForm1::N17Click(TObject *Sender)

{

RichEdit1->Clear();

}

void __fastcall TForm1::N19Click(TObject *Sender)

{

RichEdit1->Undo();

}

void __fastcall TForm1::N20Click(TObject *Sender)

{

N19Click(Sender);

}

void __fastcall TForm1::N21Click(TObject *Sender)

{

N12Click(Sender);

}

void __fastcall TForm1::N22Click(TObject *Sender)

{

N13Click(Sender);

}

void __fastcall TForm1::N23Click(TObject *Sender)

{

N14Click(Sender);

}

void __fastcall TForm1::N24Click(TObject *Sender)

{

N17Click(Sender);

}

void __fastcall TForm1::N31Click(TObject *Sender)

{

RichEdit1->SelectAll();

}

void __fastcall TForm1::N32Click(TObject *Sender)

{

N31Click(Sender);

}

void __fastcall TForm1::ComboBox1Change(TObject *Sender)

{

RichEdit1->SelAttributes->Name = ComboBox1->Text;

}

void __fastcall TForm1::ComboBox2Change(TObject *Sender)

{

RichEdit1->SelAttributes->Size = StrToInt(ComboBox2->Text);

}

void __fastcall TForm1::N33Click(TObject *Sender)

{

MessageBox(NULL, "Лабораторная работа № 17\n", "О программе...", MB_OK | MB_ICONINFORMATION);

}

void __fastcall TForm1::ToolButton1Click(TObject *Sender)

{

N9Click(Sender);

}

void __fastcall TForm1::ToolButton3Click(TObject *Sender)

{

N5Click(Sender);

}

void __fastcall TForm1::ToolButton2Click(TObject *Sender)

{

N6Click(Sender);

}

void __fastcall TForm1::N34Click(TObject *Sender)

{

RichEdit1->Paragraph->Alignment = taLeftJustify;

N34->Checked = true;

N35->Checked = false;

N36->Checked = false;

}

void __fastcall TForm1::N35Click(TObject *Sender)

{

RichEdit1->Paragraph->Alignment = taCenter;

N34->Checked = false;

N35->Checked = true;

N36->Checked = false;

}

void __fastcall TForm1::N36Click(TObject *Sender)

{

RichEdit1->Paragraph->Alignment = taRightJustify;

N34->Checked = false;

N35->Checked = false;

N36->Checked = true;

}

void __fastcall TForm1::ToolButton4Click(TObject *Sender)

{

N34Click(Sender);

}

void __fastcall TForm1::ToolButton6Click(TObject *Sender)

{

N35Click(Sender);

}

void __fastcall TForm1::ToolButton7Click(TObject *Sender)

{

N36Click(Sender);

}

void __fastcall TForm1::ToolButton10Click(TObject *Sender)

{

N10Click(Sender);

}

Список рекомендуемой литературы

1. Архангельский А.Я. Программирование в C++ Builder 6 и 2006 / А.Я. Архангельский, М.А. Тагин - М.: Бином, 2007.

2. Дейтел Х.М. Как программировать на С++ / Х.М. Дейтел, П.Дж. Дейтел. - М.: Бином, 2007.

3. Павловская Т.А. C/C++. Программирование на языке высокого уровня / Т.А. Павловская. - СПб.: Питер, 2005.

4. Подбельский В.В. Язык С++ / В.В. Подбельский. - М.: Финансы и статистика, 2006.

5. Труб И.И. Объектно-ориентированное моделирование на С++: учебный курс / И.И. Труб. - СПб.: Питер, 2006.

6. Франка П. С++: учебный курс / П. Франка. - СПб.: Питер, 2006.

Размещено на Allbest.ru

...

Подобные документы

  • Общие данные об основных операторах языка SQL. Интерактивный режим работы. Использование языка SQL для выбора информации из таблиц, для вставки, редактирования и удаления данных в них. Связь между операциями реляционной алгебры и операторами языка SQL.

    реферат [146,5 K], добавлен 06.02.2015

  • Анализ операторов ввода и вывода, а также характеристика форматов, используемых в этих операторах. Оформление законченной программы с применением этих операторов. Структура программы. Алфавит языка и типы данных. Ввод и вывод информации. Форматный вывод.

    лабораторная работа [62,0 K], добавлен 15.07.2010

  • Конструкции условных операторов if-else и простые типы языка Си. Общая схема работы компилятора. Алгоритм построения дерева разбора, строки вывода синтаксического разбора. Построение обратной польской записи как формы внутреннего представления программы.

    курсовая работа [1,3 M], добавлен 01.06.2013

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

    курсовая работа [400,6 K], добавлен 10.11.2016

  • Строгая типизация и наличие средств структурного (процедурного) программирования императивного языка Pascal. Структура программы, выражения, строки. Правила и описание типов, процедур и функций, операторов ввода - вывода, модулей и подпрограмм.

    курсовая работа [37,3 K], добавлен 28.06.2008

  • Характеристика языка программирования С++. Описание классов и методов. Выполнение решения вычислительных процессов по заданным формулам. Создание диалогового приложения. Разработка инструкции пользователя. Операции над одномерными и двумерными массивами.

    дипломная работа [2,0 M], добавлен 16.04.2017

  • Принцип работы основных операторов языка программирования Turbo-Paskal: оператор присваивания, выбора Case, безусловного перехода, цикла, уловный, составной. Формальное описание и вызов функции и процедуры. Требования к списку фактических параметров.

    реферат [261,8 K], добавлен 09.02.2011

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

    курсовая работа [782,3 K], добавлен 06.02.2016

  • Внутренний язык СУБД для работы с данными. Результат компиляции DDL-операторов. Описание DML-языка, содержащего набор операторов для поддержки основных операций манипулирования содержащимися в базе данными. Организация данных и управление доступом в SQL.

    лекция [131,0 K], добавлен 19.08.2013

  • Изучение циклических операторов: оператора цикла, управляемого счетчиком, оператора цикла с предусловием и постусловием. Минимизированные функции, текст программы. Алгоритм работы приложения по нахождению функции с помощью операторов break и continue.

    лабораторная работа [474,2 K], добавлен 23.11.2014

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

    курсовая работа [305,9 K], добавлен 03.07.2011

  • Встроенные типы данных, основные конструкции, структуры и применение языка Javа. Введение в интегрированную среду разработки Eclipse. Листинг программы, иллюстрирующей работу с одномерными массивами (создание массива). Спецификация класса Figure.

    методичка [1,4 M], добавлен 30.06.2009

  • Язык структурированных запросов SQL (Structured Query Language) и его место в сфере доступа к информации в реляционных базах данных. Структура и основные типы данных языка. Синтаксис и семантика главных операторов SQL, последние стандарты языка.

    реферат [98,7 K], добавлен 29.03.2012

  • Построение базовой линейной структуры и организация ввода с формы переменной. Определение значения функции и построение блок-схемы базовой структуры "ветвление". Использование цикла со счетчиком. Рассмотрение особенностей работы с одномерными массивами.

    контрольная работа [1,4 M], добавлен 10.12.2021

  • Ознакомление с понятием, особенностями объявления, инициализацией и принципами работы с одномерными и двумерными массивами. Изучение смысла тернарной операции вывода элементов матрицы. Рассмотрение сущности и способов использования указателей переменных.

    лабораторная работа [22,1 K], добавлен 15.07.2010

  • Изучение функций и возможностей среды разработки языка программирования Pascal. Рассмотрение работы с одномерными и двумерными массивами, со строками и числами. Математическая формулировка задач. Разработка алгоритмов, описание структуры программ.

    курсовая работа [879,8 K], добавлен 11.02.2016

  • Общая характеристика интерфейса языка программирования Delphi. Рассмотрение окна редактора кода, конструктора формы, инспектора объектов и расширения файлов. Ознакомление с основными этапами создания и сохранения простого приложения; проверка его работы.

    презентация [184,3 K], добавлен 18.03.2014

  • Понятие и характеристика операторов ввода и вывода информации, случаи их применяется в программах и основные виды: составной оператор Begin ... end, условный оператор If. Суть операторов безусловного перехода и циклических процессов, примеры применения.

    реферат [27,9 K], добавлен 03.03.2010

  • Введение в API-программирование. Структура API-программ. Организация ввода-вывода в консольном приложении Windows. Организация низкоуровнего консольного ввода-вывода. Расширенная поддержка клавиатуры в консоли. Поддержка работы с мышью в консоли.

    курсовая работа [91,0 K], добавлен 10.02.2015

  • Программирование линейных алгоритмов. Процедуры ввода READ и READLN и вывода WRITE и WRITELN. Примеры решения задач на языке Паскаль. Оператор присваивания и выражения. Основные способы формирования структурных операторов. Операторы вызова процедур.

    курсовая работа [44,3 K], добавлен 18.03.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.