Автор работы: Пользователь скрыл имя, 19 Сентября 2011 в 18:05, лабораторная работа
Составить подпрограмму определения минимума функции y=f(x), заданной в дискретных точках отрезка [а,b] с постоянным шагом h. Используя ее найти минимумы функций y1=sin2x*cosx-ln|x|, y2=x2-2x+8.
Филиал
ГОУВПО “МЭИ (ТУ)”
в г. Смоленске
кафедра
“Информатики”
Лабораторная работа
по курсу
«Программирование на языке высокого
уровня»
“Функции”
Группа: ВМ-09
Студент: Тимошенкова Т.В.
Преподаватель:
Нестеров А.П.
Смоленск 2011г.
1.Техническое
задание.
Составить
подпрограмму определения минимума
функции y=f(x), заданной в дискретных
точках отрезка [а,b] с постоянным шагом
h. Используя ее найти минимумы функций
y1=sin2x*cosx-ln|x|, y2=x2-2x+8.
2.Анализ технического
задания
Создаем
две функции для вычисления значений
заданных функций, которые будут
вызываться в процессе работы.
3.
Модульная структура
4.
Тексты программ
#include <stdio.h>
#include <math.h>
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//------------------------
float fn1(float x)
{return
sin(x)*sin(x)*cos(x)-log(fabs(
float fn2(float x)
{return
x*x-2*x+8;}
void __fastcall TForm1::Button1Click(TObject *Sender)
{ float a,b,h,x,min,y;
a=StrToFloat(Edit1->Text);
b=StrToFloat(Edit2->Text);
h=StrToFloat(Edit3->Text);
x=a-h;
min=fn1(x);
Memo2->Clear();
while (x<=b)
{x=x+h;
y=fn1(x);
Memo2->Lines->Add(
if (y<min)
{ min=y;} }
Memo1->Clear();
Memo1->Lines->Add(
}
void __fastcall TForm1::Button2Click(TObject *Sender)
{ float a,b,h,x,min,y;
a=StrToFloat(Edit1->Text);
b=StrToFloat(Edit2->Text);
h=StrToFloat(Edit3->Text);
x=a-h;
min=fn2(x);
Memo2->Clear();
while (x<=b)
{x=x+h;
y=fn2(x);
Memo2->Lines->Add(
if (y<min)
{ min=y;} }
Memo3->Clear();
Memo3->Lines->Add(
}
6.Результаты
работы.
7. Заключение.
В процессе работы
мы рассмотрели работу с функциями.