SlideShare une entreprise Scribd logo
1  sur  7
Télécharger pour lire hors ligne
Лабораторная работа №8 для дисциплин: «Прикладное программирование» и
«Языки программирования»
1
Лабораторная работа 8
Структура программы на языке С++
Цель: Научиться составлять программы по средствам форм Visual C++ Builder
Общая постановка задачи
• Постановка задачи вычисления значений функции по формулам содержит функцию
),....,()( 21 nxxxFxFY == , определенную на n-мерном евклидовом пространстве Rn
.
• Требуется разработать функциональное приложение, в котором задаются значения
nxxx ,...., 21 и на основании заданных значений производятся вычисления функции )(xF .
Результаты решения должны быть отображены на экране.
Стратегия решения задачи
Производится анализ задачи. На этом этапе анализируется вычислительная сторона задачи,
определяются входные и выходные данные. В соответствии с этим формируется набор
компонент и внешний вид или интерфейс программы. Затем на форму выставляются визуальные
компоненты. В перечне компонент обязательно должны быть такие, которые предоставляют
пользователю возможность задавать вручную исходные данные и просматривать результаты
вычислений. На этом этапе обучения эти компоненты рекомендуется располагать в том виде, как
это показано на рисунках, сопровождающих решение задачи. С помощью инспектора объектов
устанавливаются свойства этих компонентов. После чего формируются тесты обработчиков
событий с целью обеспечения функциональности приложения. На завершающем этапе
производится тестирование работоспособности приложения, и исправляются обнаруженные
ошибки.
Пример задачи 1.1. Требуется вычислить значения функции nxknxkF ++=),,( для
заданных вещественных значений k, x, n.
Решение
1. Анализ задачи
Лабораторная работа №8 для дисциплин: «Прикладное программирование» и
«Языки программирования»
2
Следует определиться с типом переменных. Так как по условию задачи k, x, n –
вещественные, то, соответственно, и результат – вещественный.
В соответствии с условием задачи пользователю нужно предоставить возможность
вводить вручную значения исходных данных k, x, n и отражать результаты вычислений –
значение ),,( nxkFy = .
2. Разработка интерфейса и задание свойств компонентов
Для ввода/вывода данных можно воспользоваться визуальным компонентом – Edit
(однострочный редактор). Для отображения поясняющего статического текста необходимо
использовать визуальный компонент – Label. Программа должна быть функциональной.
Она должна принять от пользователя две команды:
- произвести вычисления;
- прекратить выполнение программы.
Для того чтобы пользователь мог задать эти команды необходимо воспользоваться
визуальными компонентами – кнопками Button (событие OnClick).
Все перечисленные компоненты можно расположить на одной форме. Расположение
кнопок может быть таким как показано на рисунке 1.1, а. Исходные данные и результаты
вычислений будут отображаться в области редактирования компонента Edit, доступ к
которой обеспечивается свойством Text редактора. Это поле представляет собой
стандартную строку на языке С++ с классовым типом AnsiString.
AnsiString реализован как класс, представляющий строки с нулевым символом в
конце. При объявлении переменной типа AnsiString инициализируются пустыми
строками. Для данного типа определены отношения ==, !=, >, <, >=, <=, а также операция
присваивания =, += и операция склеивания строк (конкатенация) +. Определена также
операция индексации [ ]. Индексы начинаются с 1.
Все переменные программы хранятся во внутреннем формате, поэтому использование
компонента Edit при вводе данных требует преобразования строки в вещественное число
(StrToFloat), а при выводе – преобразование числа в строку (FloatToStr).
Лабораторная работа №8 для дисциплин: «Прикладное программирование» и
«Языки программирования»
3
Value в строку тика AnsiString, используя заданный формат Format, точность Precision
и число цифр Digits.Здесь возможны следующие типы формата:
СВОЙСТВА КОМПОНЕНТОВ
· Компонент Lable1 (статический текст): Caption (заголовок метки) – «Х=»; Name
(наименование) – «XLabel».
· Компонент Lable2 :Caption – «K=»; Name – «KLabel».
· Компонент Lable3 :Caption – «N=»; Name – «NLabel».
· Компонент Lable4 :Caption – «F(K,N,X)=»; Name – «YLabel».
· Компонент Edit1 (однострочный редактор): Text (поле ввода, значение по умолчанию) –
«»; Name (наименование) –«XEdit»
· Компонент Edit2: Text – «»; Name –«KEdit»
· Компонент Edit3: Text – «»; Name –«NEdit»
· Компонент Edit4: Text – «»; Name –«YEdit»
Лабораторная работа №8 для дисциплин: «Прикладное программирование» и
«Языки программирования»
4
· Компонент Button1 (кнопка) : Caption (текст на кнопке) - «&Вычислить»; Name
(наименование компонента) – «CalcButton»
· Компонент Button2 : Caption - «&Выход»; Name – «CloseButton»
3. Подготовка кодов программ.
После установки свойств необходимо подготовить текст для обработчика событий
OnClick под кнопки.
Выделяем соответствующий компонент, в окне Object Inspektor выбираем страницу
Events. В свободном поле строки OnClick производим двойной щелчок левой клавишей
мыши. В открывшемся окне Code Editor будет автоматически создана процедура -
обработчик события OnClick имеющая один параметр Sender объектного типа TObject.
Параметр Sender является стандартным входным параметром процедуры обработчика
событий. Он указывает на компонент, который является инициатором события,
подлежащего обработке.
Алгоритм решения задачи сводится к следующим шагам.
1. Из окон однострочных редакторов (свойство Text) читаются исходные данные. При
чтении необходимо преобразование информации из типа AnsiString в тип float.
2. Производиться вычисление по формуле.
3. После оператора вычисления производит запись результата в поле Text
соответствующего редактора с преобразованием в тип AnsiString из типа float.
Тексты обработчиков событий представлены в листингах 1.1 и 1.2
Листинг 1.1. Описание действий команды «Вычислить»
Листинг 1.2. Описание действий команды «Выход»
При вводе числовых вещественных данных в строку Edit для последующего
преобразования в число, дробную часть от целой следует отделять не точкой, а запятой.
Лабораторная работа №8 для дисциплин: «Прикладное программирование» и
«Языки программирования»
5
Задачи для обязательного, самостоятельного решения
Задачи
Решение
Отличием от первой задачей является, то, что все исходные данные для ввода данных
располагаются в окне одного редактора Edit. Поэтому основное отличие только по способу ввода
данных и вычислительной формулой.
Лабораторная работа №8 для дисциплин: «Прикладное программирование» и
«Языки программирования»
6
Лабораторная работа №8 для дисциплин: «Прикладное программирование» и
«Языки программирования»
7

Contenu connexe

Tendances

Tendances (7)

презентация Microsoft power point
презентация Microsoft power pointпрезентация Microsoft power point
презентация Microsoft power point
 
лр4
лр4лр4
лр4
 
лек12 2
лек12 2лек12 2
лек12 2
 
пр3 (2часа)b pwin
пр3 (2часа)b pwinпр3 (2часа)b pwin
пр3 (2часа)b pwin
 
Issledov 10
Issledov 10 Issledov 10
Issledov 10
 
Prezentatsia
Prezentatsia Prezentatsia
Prezentatsia
 
лек11 5
лек11 5лек11 5
лек11 5
 

Similaire à лр8

вспомогательные алгоритмы
вспомогательные алгоритмывспомогательные алгоритмы
вспомогательные алгоритмы
Елена Ключева
 
C++ теория
C++ теорияC++ теория
C++ теория
tank1975
 
Основы работы в BPwin.pdf
Основы работы в BPwin.pdfОсновы работы в BPwin.pdf
Основы работы в BPwin.pdf
ssuser117705
 
оп.05 основы программирования
оп.05 основы программированияоп.05 основы программирования
оп.05 основы программирования
Stepan1234
 
Изучение кода с использованием инструментов архитектуры в Visual Studio Ultim...
Изучение кода с использованием инструментов архитектуры в Visual Studio Ultim...Изучение кода с использованием инструментов архитектуры в Visual Studio Ultim...
Изучение кода с использованием инструментов архитектуры в Visual Studio Ultim...
Александр Шамрай
 

Similaire à лр8 (20)

вспомогательные алгоритмы
вспомогательные алгоритмывспомогательные алгоритмы
вспомогательные алгоритмы
 
лек11 2
лек11 2лек11 2
лек11 2
 
C++ теория
C++ теорияC++ теория
C++ теория
 
C++ теория
C++ теорияC++ теория
C++ теория
 
C++ теория
C++ теорияC++ теория
C++ теория
 
Основы работы в BPwin.pdf
Основы работы в BPwin.pdfОсновы работы в BPwin.pdf
Основы работы в BPwin.pdf
 
Презентация по разработке схем в пакете OrCAD 9.2.ppt
Презентация по разработке схем в пакете OrCAD 9.2.pptПрезентация по разработке схем в пакете OrCAD 9.2.ppt
Презентация по разработке схем в пакете OrCAD 9.2.ppt
 
оп.05 основы программирования
оп.05 основы программированияоп.05 основы программирования
оп.05 основы программирования
 
лек11 4
лек11 4лек11 4
лек11 4
 
Создание проекта КАЛЬКУЛЯТОР
Создание проекта КАЛЬКУЛЯТОРСоздание проекта КАЛЬКУЛЯТОР
Создание проекта КАЛЬКУЛЯТОР
 
лр2
лр2лр2
лр2
 
206297
206297206297
206297
 
ЛР 4.docx
ЛР 4.docxЛР 4.docx
ЛР 4.docx
 
6
66
6
 
лек11 5
лек11 5лек11 5
лек11 5
 
лек13 1
лек13 1лек13 1
лек13 1
 
лек13 1(1)
лек13 1(1)лек13 1(1)
лек13 1(1)
 
лек1
лек1лек1
лек1
 
лек1
лек1лек1
лек1
 
Изучение кода с использованием инструментов архитектуры в Visual Studio Ultim...
Изучение кода с использованием инструментов архитектуры в Visual Studio Ultim...Изучение кода с использованием инструментов архитектуры в Visual Studio Ultim...
Изучение кода с использованием инструментов архитектуры в Visual Studio Ultim...
 

Plus de Anastasia Snegina

птп по ппп 2013 2014
птп по ппп 2013 2014 птп по ппп 2013 2014
птп по ппп 2013 2014
Anastasia Snegina
 
прикл.прогр птп 13 14
прикл.прогр птп 13 14прикл.прогр птп 13 14
прикл.прогр птп 13 14
Anastasia Snegina
 
2012 2013 пм спп провидошина
2012 2013  пм спп провидошина2012 2013  пм спп провидошина
2012 2013 пм спп провидошина
Anastasia Snegina
 
2012 2013 пм спп провидошина
2012 2013  пм спп провидошина2012 2013  пм спп провидошина
2012 2013 пм спп провидошина
Anastasia Snegina
 
рп по у пп практике в
рп по у пп практике врп по у пп практике в
рп по у пп практике в
Anastasia Snegina
 
рп по пр практике в
рп по пр практике врп по пр практике в
рп по пр практике в
Anastasia Snegina
 
рп по у сп практике в
рп по у сп практике врп по у сп практике в
рп по у сп практике в
Anastasia Snegina
 
рп по у пп практике вт
рп по у пп практике втрп по у пп практике вт
рп по у пп практике вт
Anastasia Snegina
 
рп по пр практике вт
рп по пр практике втрп по пр практике вт
рп по пр практике вт
Anastasia Snegina
 
рп по у сп практике вт
рп по у сп практике втрп по у сп практике вт
рп по у сп практике вт
Anastasia Snegina
 
рп по у пп практике вт
рп по у пп практике втрп по у пп практике вт
рп по у пп практике вт
Anastasia Snegina
 
рп по пр практике вт
рп по пр практике втрп по пр практике вт
рп по пр практике вт
Anastasia Snegina
 
рп по у сп практике вт
рп по у сп практике втрп по у сп практике вт
рп по у сп практике вт
Anastasia Snegina
 

Plus de Anastasia Snegina (20)

птп по ппп 2013 2014
птп по ппп 2013 2014 птп по ппп 2013 2014
птп по ппп 2013 2014
 
прикл.прогр птп 13 14
прикл.прогр птп 13 14прикл.прогр птп 13 14
прикл.прогр птп 13 14
 
я.прогр птп
я.прогр птпя.прогр птп
я.прогр птп
 
пп кос вт
пп кос втпп кос вт
пп кос вт
 
пп кос в
пп кос впп кос в
пп кос в
 
пп кос в
пп кос впп кос в
пп кос в
 
2012 2013 пм спп провидошина
2012 2013  пм спп провидошина2012 2013  пм спп провидошина
2012 2013 пм спп провидошина
 
2012 2013 пм спп провидошина
2012 2013  пм спп провидошина2012 2013  пм спп провидошина
2012 2013 пм спп провидошина
 
пп кос вт
пп кос втпп кос вт
пп кос вт
 
рп по у пп практике в
рп по у пп практике врп по у пп практике в
рп по у пп практике в
 
рп по пр практике в
рп по пр практике врп по пр практике в
рп по пр практике в
 
рп по у сп практике в
рп по у сп практике врп по у сп практике в
рп по у сп практике в
 
рп по у пп практике вт
рп по у пп практике втрп по у пп практике вт
рп по у пп практике вт
 
рп по пр практике вт
рп по пр практике втрп по пр практике вт
рп по пр практике вт
 
рп по у сп практике вт
рп по у сп практике втрп по у сп практике вт
рп по у сп практике вт
 
рп по у пп практике вт
рп по у пп практике втрп по у пп практике вт
рп по у пп практике вт
 
рп по пр практике вт
рп по пр практике втрп по пр практике вт
рп по пр практике вт
 
рп по у сп практике вт
рп по у сп практике втрп по у сп практике вт
рп по у сп практике вт
 
лр18
лр18лр18
лр18
 
лр15
лр15лр15
лр15
 

лр8

  • 1. Лабораторная работа №8 для дисциплин: «Прикладное программирование» и «Языки программирования» 1 Лабораторная работа 8 Структура программы на языке С++ Цель: Научиться составлять программы по средствам форм Visual C++ Builder Общая постановка задачи • Постановка задачи вычисления значений функции по формулам содержит функцию ),....,()( 21 nxxxFxFY == , определенную на n-мерном евклидовом пространстве Rn . • Требуется разработать функциональное приложение, в котором задаются значения nxxx ,...., 21 и на основании заданных значений производятся вычисления функции )(xF . Результаты решения должны быть отображены на экране. Стратегия решения задачи Производится анализ задачи. На этом этапе анализируется вычислительная сторона задачи, определяются входные и выходные данные. В соответствии с этим формируется набор компонент и внешний вид или интерфейс программы. Затем на форму выставляются визуальные компоненты. В перечне компонент обязательно должны быть такие, которые предоставляют пользователю возможность задавать вручную исходные данные и просматривать результаты вычислений. На этом этапе обучения эти компоненты рекомендуется располагать в том виде, как это показано на рисунках, сопровождающих решение задачи. С помощью инспектора объектов устанавливаются свойства этих компонентов. После чего формируются тесты обработчиков событий с целью обеспечения функциональности приложения. На завершающем этапе производится тестирование работоспособности приложения, и исправляются обнаруженные ошибки. Пример задачи 1.1. Требуется вычислить значения функции nxknxkF ++=),,( для заданных вещественных значений k, x, n. Решение 1. Анализ задачи
  • 2. Лабораторная работа №8 для дисциплин: «Прикладное программирование» и «Языки программирования» 2 Следует определиться с типом переменных. Так как по условию задачи k, x, n – вещественные, то, соответственно, и результат – вещественный. В соответствии с условием задачи пользователю нужно предоставить возможность вводить вручную значения исходных данных k, x, n и отражать результаты вычислений – значение ),,( nxkFy = . 2. Разработка интерфейса и задание свойств компонентов Для ввода/вывода данных можно воспользоваться визуальным компонентом – Edit (однострочный редактор). Для отображения поясняющего статического текста необходимо использовать визуальный компонент – Label. Программа должна быть функциональной. Она должна принять от пользователя две команды: - произвести вычисления; - прекратить выполнение программы. Для того чтобы пользователь мог задать эти команды необходимо воспользоваться визуальными компонентами – кнопками Button (событие OnClick). Все перечисленные компоненты можно расположить на одной форме. Расположение кнопок может быть таким как показано на рисунке 1.1, а. Исходные данные и результаты вычислений будут отображаться в области редактирования компонента Edit, доступ к которой обеспечивается свойством Text редактора. Это поле представляет собой стандартную строку на языке С++ с классовым типом AnsiString. AnsiString реализован как класс, представляющий строки с нулевым символом в конце. При объявлении переменной типа AnsiString инициализируются пустыми строками. Для данного типа определены отношения ==, !=, >, <, >=, <=, а также операция присваивания =, += и операция склеивания строк (конкатенация) +. Определена также операция индексации [ ]. Индексы начинаются с 1. Все переменные программы хранятся во внутреннем формате, поэтому использование компонента Edit при вводе данных требует преобразования строки в вещественное число (StrToFloat), а при выводе – преобразование числа в строку (FloatToStr).
  • 3. Лабораторная работа №8 для дисциплин: «Прикладное программирование» и «Языки программирования» 3 Value в строку тика AnsiString, используя заданный формат Format, точность Precision и число цифр Digits.Здесь возможны следующие типы формата: СВОЙСТВА КОМПОНЕНТОВ · Компонент Lable1 (статический текст): Caption (заголовок метки) – «Х=»; Name (наименование) – «XLabel». · Компонент Lable2 :Caption – «K=»; Name – «KLabel». · Компонент Lable3 :Caption – «N=»; Name – «NLabel». · Компонент Lable4 :Caption – «F(K,N,X)=»; Name – «YLabel». · Компонент Edit1 (однострочный редактор): Text (поле ввода, значение по умолчанию) – «»; Name (наименование) –«XEdit» · Компонент Edit2: Text – «»; Name –«KEdit» · Компонент Edit3: Text – «»; Name –«NEdit» · Компонент Edit4: Text – «»; Name –«YEdit»
  • 4. Лабораторная работа №8 для дисциплин: «Прикладное программирование» и «Языки программирования» 4 · Компонент Button1 (кнопка) : Caption (текст на кнопке) - «&Вычислить»; Name (наименование компонента) – «CalcButton» · Компонент Button2 : Caption - «&Выход»; Name – «CloseButton» 3. Подготовка кодов программ. После установки свойств необходимо подготовить текст для обработчика событий OnClick под кнопки. Выделяем соответствующий компонент, в окне Object Inspektor выбираем страницу Events. В свободном поле строки OnClick производим двойной щелчок левой клавишей мыши. В открывшемся окне Code Editor будет автоматически создана процедура - обработчик события OnClick имеющая один параметр Sender объектного типа TObject. Параметр Sender является стандартным входным параметром процедуры обработчика событий. Он указывает на компонент, который является инициатором события, подлежащего обработке. Алгоритм решения задачи сводится к следующим шагам. 1. Из окон однострочных редакторов (свойство Text) читаются исходные данные. При чтении необходимо преобразование информации из типа AnsiString в тип float. 2. Производиться вычисление по формуле. 3. После оператора вычисления производит запись результата в поле Text соответствующего редактора с преобразованием в тип AnsiString из типа float. Тексты обработчиков событий представлены в листингах 1.1 и 1.2 Листинг 1.1. Описание действий команды «Вычислить» Листинг 1.2. Описание действий команды «Выход» При вводе числовых вещественных данных в строку Edit для последующего преобразования в число, дробную часть от целой следует отделять не точкой, а запятой.
  • 5. Лабораторная работа №8 для дисциплин: «Прикладное программирование» и «Языки программирования» 5 Задачи для обязательного, самостоятельного решения Задачи Решение Отличием от первой задачей является, то, что все исходные данные для ввода данных располагаются в окне одного редактора Edit. Поэтому основное отличие только по способу ввода данных и вычислительной формулой.
  • 6. Лабораторная работа №8 для дисциплин: «Прикладное программирование» и «Языки программирования» 6
  • 7. Лабораторная работа №8 для дисциплин: «Прикладное программирование» и «Языки программирования» 7