Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
374.doc
Скачиваний:
11
Добавлен:
30.04.2022
Размер:
3.16 Mб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

«Воронежский государственный архитектурно-строительный университет»

КОМПЬЮТЕРНЫЕ ТЕХНОЛОГИИ

Лабораторный практикум

Составители:

С. А. Сазонова

С. А. Колодяжный

Е. А. Сушко

Воронеж 2015

УДК 614.841:004(07)

ББК 38.96:32.973-018я73

К 637

Рецензенты:

кафедра пожарной безопасности технологических процессов

Воронежского института ГПС МЧС России;

А.В. Некрасов, к. т. н., доцент кафедры пожарной безопасности

технологических процессов Воронежского института ГПС МЧС России

КОМПЬЮТЕРНЫЕ ТЕХНОЛОГИИ: лабораторный практикум /

К 637 сост. С.А. Сазонова, С.А. Колодяжный, Е.А. Сушко; Воронежский

ГАСУ. – Воронеж, 2015. – 143 с.

ISBN 978-5-89040-548-7

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

Предназначен для студентов, обучающихся по специальности 20.05.01 «Пожарная безопасность», и по направлению 20.03.01 «Техносферная безопасность».

Ил. 40. Табл. 15. Библиогр.: 56 назв.

Печатается по решению учебно-методического совета

Воронежского ГАСУ

УДК 614.841:004(07)

ББК 38.96:32.973-018я73

ISBN 978-5-89040-548-7

© Сазонова С. А., Колодяжный С. А.,

Сушко Е. А., составление, 2015

© Воронежский ГАСУ, 2015

Введение

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

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

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

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

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

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

В учебном пособии использованы авторские наработки, а также в учебных целях наработки из учебного пособия [1]. В библиографическом списке указаны литература рекомендуемая литература для самостоятельного изучения по курсу «Компьютерные технологии» и интернет-ресурсы (электоронные библиотеки) [2-7].

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

1. ОСНОВНЫЕ ПОНЯТИЯ ЯЗЫКА С/С++ BUILDER

1.1. C++ Builder – система визуального

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

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

Лабораторные работы могут выполняться студентами с использованием любого из доступных им компиляторов. Наиболее удобным для первоначального изучения языка С является интегрированная среда программирования Borland С версий 3.0/3.1. Хотя эти версии не позволяют создавать современные 32-разрядные приложения, они обладают другими более важными для студентов качествами:

интерфейс сред ВС 3.0/3.1 унифицирован со средой Turbo Pascal 7.0, которая, как правило, уже знакома студентам к моменту начала изучения языка С, поэтому они могут не отвлекаться на изучение новой среды;

среды ВС 3.0/3.1 предоставляют пользователям удобную справочную систему, а также эффективные средства поиска ошибок и отладки программ;

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

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

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

Если вы только осваиваете язык программирования, то следует сосредоточиться именно на языке, его возможностях, особенностях работы в DOS, в среде разработки Воrland C++ Version 3.1, которая, безусловно, может быть запущена и из Windows. Следует особо обратить внимание на то, что хотя Borland C++ и был создан довольно давно, это профессиональная, высокоэффективная среда разработки, которая наилучшим образом подходит для изучения языка программирования высокого уровня C++.

C++ Builder – одна из самых мощных систем визуального объектно-ориентированного программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного типа (класса). Программа, построенная по принципу объектной ориентации – это не последовательность операторов, реализующих некий жесткий алгоритм, а совокупность объектов и способов их взаимодействия. Объект – это совокупность свойств и методов, а также событий, на которые он может реагировать [2].

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

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

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

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

1.2. Общие сведения о программах на C++ Builder

Программа на C++ Builder состоит из объявлений переменных, констант, типов, классов, функций и описания функций [1]. Среди функций всегда имеется главная WinMain, Программа начинает работать именно с этой главной функции. Программа строится по модульному принципу и состоит из множества модулей. Все объекты компонентов размещаются на объектах – формах; для каждой формы создается отдельный модуль. Именно в модулях и размещается программа.

В обработчиках событий объектов – форм и компонентов пишутся коды программы. В процессе проектирования приложения C++ Builder автоматически создает коды головного файла, имеющего расширение (.cpp) и содержащего главную функцию проекта WinMain, коды заголовочных файлов интерфейса отдельных модулей и коды их файлов реализации. Чтобы увидеть код головного файла проекта надо в среде разработки С++ Builder в меню Project выбрать команду View Sourse. Типичный файл проекта имеет следующий вид:

Головной файл проекта:

//---------------------------------------------------------------------------

// директивы препроцессора

#include <vcl.h>

#pragma hdrstop

//---------------------------------------------------------------------------

//макросы, подключающие файлы ресурсов и форм

USEFORM("UnGraf1.cpp", Form1);

//---------------------------------------------------------------------------

//главная функция WinMain

WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)

{

try

{ //тело главной функции, инициализирующее объекты компонентов данного приложения

Application->Initialize();

Application->CreateForm(__classid(TForm1), &Form1);

Application->Run(); //начало выполнения программы

}//обработка исключений(аварийных ситуаций)

catch (Exception &exception)

{

Application->ShowException(&exception);

}

catch (...)

{

try

{

throw Exception("");

}

catch (Exception &exception)

{

Application->ShowException(&exception);

}

}

return 0; //завершение программы

}

//---------------------------------------------------------------------------

Комментарии, написанные курсивом, характеризуют назначение каждого раздела. Все описанные в головном файле операторы заносятся в него автоматически в процессе проектирования приложения. Так, что обычно ничего в головном файле изменять не надо и даже нет необходимости его смотреть. Вы можете конечно занести в головной файл программы и другие операторы, функции и т. д., но это будет плохой стиль программирования, поскольку это противоречит принципу модульности. Все необходимые для начала выполнения программы операторы и процедуры целесообразно размещать в отдельном модуле формы или в отдельный модуль без формы и включить его в приложение. Такой модуль можно включить в приложение, выполнив команду File | New | Other и щелкнув по пиктограмме Unit.

Ниже приведены тексты заголовочного файла (расширение .h), содержащего описание класса формы, и файла реализации (расширение .cpp).

Комментарии в этих текстах поясняют, что и куда в этот код можно добавлять.

Заголовочный файл модуля формы

//---------------------------------------------------------------------------

#ifndef UnRis1H

#define UnRis1H

//---------------------------------------------------------------------------

// сюда могут помещаться дополнительные директивы препроцессора( в частности, include), не включаемые в файл автоматически

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <Buttons.hpp>

#include <ExtCtrls.hpp>

#include <math.h>

//---------------------------------------------------------------------------

//

class TForm1 : public TForm

{

__published: // IDE-managed Components

//приводятся, размещенные на форме компоненты

TImage *Image1;

TBitBtn *BitBtn1;

TImage *Image2;

TLabel *Label1;

TLabel *Label2;

TLabel *Label3;

TButton *Button1;

TButton *Button2;

//функции обработки событий

void __fastcall BitBtn1Click(TObject *Sender);

void __fastcall Button1Click(TObject *Sender);

void __fastcall Button2Click(TObject *Sender);

private: // User declarations

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

//типов, переменных, функций, включаемых в класс форм и

//не доступных для других модулей

public: // User declarations

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

//типов, переменных, функций, включаемых в класс форм и

// доступных для других модулей

__fastcall TForm1(TComponent* Owner);

};

//---------------------------------------------------------------------------

extern PACKAGE TForm1 *Form1;

// сюда могут помещаться объявления типов, переменных,

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

//дополнительных условий

//---------------------------------------------------------------------------

#endif

Файл реализации модуля

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "UnRis1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

//сюда могут помещаться дополнительные директивы

// препроцессора (в частности, include),

// не включаемые в файл автоматически

// объявление объекта формы Form1

TForm1 *Form1;

//---------------------------------------------------------------------------

// вызов конструктора формы

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

// сюда могут помещаться операторы, которые должны

// выполняться при создании формы

}

//---------------------------------------------------------------------------

// сюда могут помещаться объявления типов и переменных,

// доступ к которым из других модулей возможен только

// при соблюдении некоторых дополнительных условий; тут

// же должны быть реализации всех функций, объявленных в

// заголовочном файле, а также могут быть реализации

// любых дополнительных функций, не объявленных ранее функций обработки событий

void __fastcall TForm1::BitBtn1Click(TObject *Sender)

{

const float Pi= 3.14159;

float x, y; //координаты точки функции

int px,py; // Координаты пиксела, соответствующие

//точки с координатами x,y

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

{

//x – координата, соответствующая пикселу с координатой px

x = px*4 * Pi/Image1->Width;

y = sin(x);

// y - координата пиксела, соответствующая координате y

py = Image1 -> Height - (y + 1)* Image1 -> Height/2;

// устанавливается черный цвет выбранного пиксела

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

}

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)

{

Form1->Close();

}

//---------------------------------------------------------------------------

Имена файлам модулей C++ Builder дает по умолчанию: для первого модуля оно равно Unit1, для второго Unit2 и т. д. Если в приложении несколько модулей следует сохранять их под какими-то осмысленными именами, изменяя тем самым имена модулей, заданных по умолчанию.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]