Реализация разветвляющих алгоритмов
Автор: Kolyan • Май 16, 2018 • Лабораторная работа • 1,377 Слов (6 Страниц) • 528 Просмотры
Министерство образования Республики Беларусь
Учреждение Образования
«Белорусский государственный университет информатики и радиоэлектроники»
Кафедра вычислительных методов и программирования
Отчет по лабораторной работе № 2
По дисциплине «Основы алгоритмизации и программирования»
«Реализация разветвляющих алгоритмов»
Выполнил: Проверил: Жилач Н.С.
студент 1-го курса
группы № 642791
Радевич А. Ю.
Вариант 16
Минск 2017
Цель работы: изучить операции сравнения, логические операции, операторы передачи управления if, switch, break, научиться пользоваться простейшими компонентами организации переключений (СheckBox, RadioGroup). Написать и отладить программу с разветвлениями.
1 Анализ исходных данных
В соответствии с заданием необходимо: в качестве f(x) использовать по выбору: sh(x), x^2, e^x.; отредактировать вид формы и текст программы в соответствии с вариантом; предусмотреть вывод информации, показывающей, по какой ветке происходили вычисления.
Исходные данные представлены в формуле 1.1.
[pic 1] | (1.1) |
2 Создание оконного приложения
Текст программы:
#include "math.h"
#include
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner){}
void __fastcall TForm1::FormCreate(TObject *Sender){
Memo1->Clear();
Memo1->Lines->Add("Лаб. работа №2. Студент гр.642791 Радевич А.Ю.");
}
void __fastcall TForm1::Button1Click(TObject *Sender){
double x,y,u;
x=StrToFloat(Edit1->Text);
y=StrToFloat(Edit2->Text);
if((x*y)>0){
switch(RadioGroup1->ItemIndex){
case 0:
u=(pow(((sinh(x))+y),2))-(sqrt(fabs((sinh(x))*y)));
Memo1->Lines->Add("xy>0. a="+FloatToStrF(u,ffFixed,7,2));
break;
case 1:
u=(pow(((pow(x,2))+y),2))-(sqrt(fabs((pow(x,2))*y)));
Memo1->Lines->Add("xy>0. a="+FloatToStrF(u,ffFixed,7,2));
break;
case 2:
u=(pow(((exp(x))+y),2))-(sqrt(fabs((exp(x))*y)));
Memo1->Lines->Add("xy>0. a="+FloatToStrF(u,ffFixed,7,2));
break;
default:
Memo1->Lines->Add("Выберите значение f(x)");
}
}
if((x*y)<0){
switch(RadioGroup1->ItemIndex){
case 0:
u=(pow(((sinh(x))+y),2))+(sqrt(fabs((sinh(x))+y)));
Memo1->Lines->Add("xy<0. a="+FloatToStrF(u,ffFixed,7,2));
break;
case 1:
u=(pow(((pow(x,2))+y),2))+(sqrt(fabs((pow(x,2))+y)));
Memo1->Lines->Add("xy<0. a="+FloatToStrF(u,ffFixed,7,2));
break;
case 2:
u=(pow(((exp(x))+y),2))+(sqrt(fabs((exp(x))+y)));
Memo1->Lines->Add("xy<0. a="+FloatToStrF(u,ffFixed,7,2));
break;
default:
Memo1->Lines->Add("Выберите значение f(x)");
}
}
if((x*y)==0){
switch(RadioGroup1->ItemIndex){
case 0:
u=(pow(((sinh(x))+y),2))+1;
Memo1->Lines->Add("xy=0. a="+FloatToStrF(u,ffFixed,7,2));
break;
case 1:
u=(pow(((pow(x,2))+y),2))+1;
Memo1->Lines->Add("xy=0. a="+FloatToStrF(u,ffFixed,7,2));
break;
case 2:
u=(pow(((exp(x))+y),2))+1;
...