Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа ЯПВУ.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
5 Мб
Скачать
☆

Лабораторная работа № 2

Тема лабораторной работы: знакомство со средой Си++Builder, линейные вычислительные процессы и простейшие типы

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

1 Содержание работы

  1. Составить блок-схему и написать программу решения задач согласно варианту.

  2. Вывести на печать 5 вариантов исходных данных и результатов выполнения программы.

Знакомство с компонентами Label, Edit, Button, Memo квладки Standard среды Си++Builder, bспользование их в программе

1 Порядок выполнения лабораторной работы:

    1. Изучить теоретический материал, соответствующий теме лабораторной работы.

    2. Ответить на следующие вопросы:

  1. из скольких разделов состоит программа, созданная в среде Си++Builder?

  2. Что такое свойства компонента?

  3. Какие свойства компонента Label использовали?

  4. Какие свойства компонента Form использовали?

  5. Какие свойства компонентов Edit, Button, Memo использовали?

  6. Что такое событие, какие события использовали в программе?

  7. Что такое методы компонентов?

  8. Основные окна Си++Builder,назовите их особенности.

  9. С помощью какой команды или функциональной клавиши вызывается на экран Инспектор объектов?

  10. С помощью какой команды или функциональной клавиши производится только компиляция проекта?

  11. С помощью какой команды или функциональной клавиши производится выполнение проекта по шагам?

  12. Какое расширение у файла проекта Project?

  13. Какова структура заголовочного файла?

  14. Какова структура файла реализации?

  15. Укажите правильное описание констант:

а) const min=0;

b) const min=0,5;

c) const min=0.5, max=10;

d) const int min =0;

e) const int min, max: =0;

f)const double Pi = 3.14159265;

  1. Какие операции определены над данными целого типа? Приведите примеры.

  2. Какие записи являются неправильными и почему?

а) 'А' < 'С'; б) '1' > '9'; в) FALSE < TRUE;

г) 'А' < 'B' & 1 < 2; д) '0' != '9';

е) ('D' > 'G') AND ( 1 < 2 ).

  1. Определите тип результата выражения:

а) i * i + g * g + 2 * k / 2; б) sin(x) + 2 * cos(x) + z;

в) x < y; г) i+sqrt(j).

  1. Какие из операторов присваивания являются неверными?

а) x = y + sin(sin(z)); б) x = i + j - b;

в) a = ( x < y ) || b & (i<>k); г) i = i + k / j;

Если i ,j ,k - целые числа.

  1. Вычислить значение выражения, если

A = 2.5; B = 7.8; C = -17.3; M = 5; X = 8.7; E = TRUE ;

а) ( A+B ) /C * M

б) 2 + X / ( X + ( A+B )/5)

в) ( A<B ) & ( X + A<B ) || ( C<M ) || E

Задание

Задание приведено таблице 2 и3 лабораторной работы №1. Для решения задачи в среде Си++Builder необходимо вначале ознакомиться с компонентами Label, Edit, Button, Memo вкладки Standard.

2. Пример

Пример 2.1 вычислить арифметическое выражение , если переменные имеют следующие значения а=2,3 и b=4 .

Решение задачи: 1. Алгоритм решения задачи представляем на блок-схеме. Алгоритм - линейный (Рисунок-3).

2 . На форму из палитры компонентов вкладки Standard среды Си++Builder установить следующие компоненты: три - Label, два - Edit, два – Button, задаем свойства (Рисунок-5. Обратите внимание на таблицы 3 и 4). Для компоненты Form1 установить BorderStyle – формат формы, Width – ширину формы; Height - высоту. Для компонентов Label установить свойства Caption, Left, Top, для двух командных кнопок Button – в свойстве Caption отразить выполняемые действия. Поле Edit предназначено для ввода значений переменных, поэтому необходимо его свойство Text очистить. Для этих целей можно воспользоваться возможностями страницы Properties окна инспектора объектов (Object Inspector) Си++Builder. 7-м Рисунке Button1 компонентінің Свойстван тағайындау және оның оқиғасын таңдау сәті бейнеленген. Осы амалды басқа да компоненттердің Свойстван тағайындауға қолдану керек.

Таблица 4 Свойства компонента Form1

Компонент

Свойства

Значение

Form1

BorderStyle

bsSizeable

Caption

Лабораторная_работа№2

Width

270

Height

196

Таблица 5 Свойства компонентов Label, Edit, Button

Компонент

Caption

Text

Left

Top

Label1

a

24

24

Label2

b

24

56

Label3

-

24

96

Edit1

-

104

24

Edit2

-

104

56

Button1

Вычислить

Button2

Очистить

3. Для использования математических функций необходимо подключить файл math.h с помощью директивы препроцессора #include <math.h>.

4. Для вычисления выражения поставленной задачи вызываем событие OnClick компоненты Button1: имя метода состоит из имени компоненты и имени события Button1+Click=Button1Click

void __fastcall TForm1::Button1Click(Sender: TObject);

5. Необходимо объявить переменные, согласно заданию: b - целое, a - вещественное, результат y – число вещественного типа: int b; double a,y;

6. Считывание данных :

a=StrToFloat(Edit1.Text); //перевод строкового типа данных в вещественные

b=StrToInt(Edit2.Text);

7. Принимая во внимание правило записи арифметических выражений, вычисляем значение переменной у:

y= pow(a,b)sqrt(а*a+b*b)-3*abs(b);

8. Для вывода результатов вычислений , используем ствойство Caption компоненты Label3 :

Label3->Caption=”Результат вычисления y= ”+FloatToStrF (y,ffFixed,5,2);

9. С помощью функциональной клавишы F12 или кнопки панели иснтрументов переходим с окна кода редактора программы на окно формы .

10. Теперь редактируем событие кнопки Button2:

void __fastcall TForm1::Button2Click(Sender: TObject);

11. Для обновления данных в поле компоненты Edit необходимо с помощью функции Clear () очистить его:

Edit1->Clear(); Edit2->Clear();

12. Повторяем пункт 9.

13. При сохранении проекта с помощью команды FileSave Project As основного меню среда Си++Builder предлагает два диалоговых окна: Save Unit As – сохранение модуля ; Save Project As – сохранение проекта. В обоих окнах в поле Имя файла необходимо ввести имена модуля и проекта.

14. С помощью функциональной клавиши F9 или кнопки панели инструментов произвести компиляцию проекта.

15. Ввести значения переменных в поле компонентов Edit1, Edit2 (Рисунок-5).

16. Текст программы:

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

#include <vcl.h>

#pragma hdrstop

#include <math.h>

#include "Unit1.h"

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

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

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

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

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

void __fastcall TForm1::Button1Click(TObject *Sender)

{ double a,b,y;

a=StrToFloat(Edit1->Text); //Edit1 орісіне накты сан усыну

b=StrToInt(Edit2->Text); //Edit2 орісіне бyтін сан yсыну№

y= pow(a,b)+sqrt(a*a+b*b)-3*abs(b);

Label3->Caption="Результат вычисления Y= " + FloatToStrF(y,ffFixed,5,2);

}

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

void __fastcall TForm1::Button2Click(TObject *Sender)

{

Edit1->Clear();

Edit2->Clear();

}

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

Пример 2.2 Используя компоненту Memo для вывода результатов вычислить выражение , если а=23,6 b=4.

Решение задачи: Алгоритм решения задачи, подготовка формы, установка компонентов, назначение его свойств, объявление переменных аналогичны предыдущему примеру. Разница в том, что для вывода результатов вместо Label используется компнента Memo1.

Компонент Memo класса TMemo используется для ввода/вывода большого текста. Текст класса TStrings сохраняется с свойстве Lines. Для вывода результатов вычислений метод компоненты Memo1 записывается следующим образом:

Memo1->Lines->Add(“Результат вычисления:”);

Memo1->Lines->Add(”y = ”+FloatToStrF(y,ffGeneral,7,3));