Главная » Все файлы » Просмотр файлов из архивов » Документы » Упр 6 Проц тип Модули Корни Интегралы Экстремумы

Упр 6 Проц тип Модули Корни Интегралы Экстремумы (Все лабы для ИУ-7 - решения и задания)

2013-10-10СтудИзба

Описание файла

Файл "Упр 6 Проц тип Модули Корни Интегралы Экстремумы" внутри архива находится в следующих папках: Все лабы для ИУ-7 - решения и задания, ! Задания !. Документ из архива "Все лабы для ИУ-7 - решения и задания", который расположен в категории "". Всё это находится в предмете "информатика" из 2 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "лабораторные работы", в предмете "информатика" в общих файлах.

Онлайн просмотр документа "Упр 6 Проц тип Модули Корни Интегралы Экстремумы"

Текст из документа "Упр 6 Проц тип Модули Корни Интегралы Экстремумы"

5

Упр 6 Проц тип Модули Корни Интегралы Экстремумы

Упр 6 Проц тип Модули Корни Интегралы Экстремумы

Составьте программу, обеспечивающую для функции f(x), выбираемой из заданного набора (см. ниже), вычисление в произвольном диапазоне значений аргумента [a,b], разбиваемом на N подынтервалов, задаваемыми пользователем, и представление в табличном виде:

  1. в произвольных сочетаниях значений самой функции, приближенными значениями её первой f′(x) и второй f″(x) производных и накапливаемых значений интеграла на соответствующих значениях аргумента (пример задания исходных данных и отображения результатов представлен на рис. 1),

  2. приближения корней уравнения f(x)=0 и значений функции в них (см. рис. 2),

  3. приближений экстремумов f(x) и значений функции в них (см. рис. 3).

Рис. 1.

Рис. 2.

Селекторные кнопки с подписями ФУНКЦИИ (RadioButton1), КОРНИ (RadioButton) и ЭКСТРЕМУМЫ (RadioButton3) в блоке (GroupBox1) с заголовком ВИДЫ РАБОТ представляют альтернативные варианты перечисленных выше работ (см. рис. 1, рис. 2, рис. 3).

Флажки (CheckBox1, CheckBox2, CheckBox3, CheckBox4) в блоке (GroupBox2) с заголовком ТАБЛИЦЫ позволяют выбрать любую комбинацию столбцов таблицы, представляющих вычисленные значения функции (F(X)), интеграла (Интеграл F(X)), производной (F′(X)) и второй производной (F″(X)) функции (на рис. 1 представлен выбор Интеграл F(X), F(X) и F″(X)).

Рис. 3.

Макет формы должен иметь вид рис. 4.

Рис. 4.

Раскрывающийся список (ComboBox1) с поясняющим текстом ВЫБЕРИТЕ ФУНКЦИЮ позволяет выбрать функцию, для которой будут выполняться вычисления, а поля ввода (Edit1, Edit2, Edit3) c поясняющими текстами X0, X1 и N – задать интервал значений аргумента и число его подынтервалов, границы которых будут представлять значения аргумента, используемые в вычислениях.

Программа, помимо основного модуля (unit Form1), должна содержать модуль (unit Funkcii) с объявлениями функций, для которых должны выполняться вычисления, и модуль (unit Raboty), содержащий процедуры, выполняющие эти работы.

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

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

МОДУЛЬ Funkcii, содержащий объявления функций, для которых, по выбору пользователя программы, будут выполняться вычисления, должен иметь следующую организацию.

  1. в интерфейсной части обязательно должны быть

    1. объявлены типы

    2. tFuncX=function(x:extended):extended;//тип функций

    3. объявлены переменные

ArrFuncX:array[0..3] of tFuncX;//массив имён объявляемых функций

ArrNameFuncX:array[0..3] of string;//массив текстов, отображаемых для

//выбора функции пользователем

    1. объявлены заголовки функций, доступных в других модулях, к которым будет подключен данный.

    2. подключены модули, необходимые для вычисления значений функций, объявляемых в модуле и доступных в других модулях, к которым будет подключен данный,

  1. в части реализации должны быть

    1. подключены модули, необходимые для вычисления значений функций, объявляемых в модуле и доступных в других модулях, к которым будет подключен данный,

    2. даны описания функций.

  2. в части инициализации следует

    1. заполнить массив ArrFuncX именами функций, объявленных в интерфейсной части,

    2. заполнить массив ArrNameFuncX текстами, соответствующими именам функций в массиве ArrFuncX, отображаемыми для их выбора пользователем.

МОДУЛЬ Raboty, содержит объявления процедур, выполняющих вычисления и сохранение в массиве значений заданной параметром функции, приближенных значений интеграла, первой и второй производных, корней уравнения, экстремумов.

  1. в интерфейсной части должны быть

    1. предложение использования модуля Funkcii

    1. объявление типа

tArrFX=array of extended;//тип массива для хранения результатов вычислений

    1. объявления заголовков процедур, вычисляющих на границах N подынтервалов интервала [a,b]

значений аргумента x и сохраняющие в массиве ArrFX

- значения функции f(x)

procedure FotX(f1:tFuncX;a,b:extended;N:integer;out ArrFX:tArrFX)

- приближенные значения определённого онтеграла , x≤b

procedure Integtal(f1:tFuncX;a,b:extended;N:integer;out ArrFX:tArrFX)

  • приближенные значения первой производной f’(x)

procedure dF_dX(f1:tFuncX;a,b:extended;N:integer;out ArrFX:tArrFX)

  • приближенные значений второй производной f″(x)

procedure d2F_dX2(f1:tFuncX;a,b:extended;N:integer;out ArrFX:tArrFX)

  • приближенные значений корней уравнения f(x) =0

procedure Korni(f1:tFuncX;a,b:extended;N:integer;out ArrFX:tArrFX)

  • приближенные значений экстремумов функции f(x)

procedure Extremumy(f1:tFuncX;a,b:extended;N:integer;out ArrFX:tArrFX)

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

МОДУЛЬ Form1 в разделе реализации должен содержать.

  1. Предложение использования модулей Tablicy и Funkcii.

  2. Объявление глобальной переменной FuncX типа tFuncX, предназначенной для хранения имени функции, выбранной пользователем в раскрывающемся списке (ComboBox).

  3. Подпрограммы

    1. Обработчик создания формы, в котором следует скопировать в раскрывающийся список (компонент ComboBox) строки из массива ArrNameFuncX (см. модуль Funkcii), представляющие выбираемые пользователем функции., а также присвоить переменной FuncX значение ArrFuncX[0], которое будет использоваться по умолчанию в начале работы программы (см. рис 5).

procedure TForm1.FormCreate(Sender: TObject);

var i:integer;

begin

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

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

//из массива ArrNameFunc, заполненного в модуле Funkcii

//в разделе initialization

for i:=0 to high(ArrNameFuncX) do

Form1.ComboBox1.AddItem(ArrNameFuncX[i],Sender);

//выбор функции, соответствующей строке

//с индексом 0 компонента ComboBox1

FuncX:=ArrFuncX[0];

//и вывод соответствующего ему текста

ComboBox1.SelText:=ArrNameFuncX[0];

end;//procedure TForm1.FormCreate(Sender: TObject)

Рис. 5.

    1. Обработчик щелчка на кнопке ВЫХОД с единственным оператором close.

    2. Обработчик щелчков на селекторных кнопках группы ВИД РАБОТЫ (): используя свойство Visible блока ТАБЛИЦЫ () группы флажков, сделать так, чтобы блок становиться невидимым после щелчка на кнопке КОРНИ или ЭКСТРЕМУМЫ, и вновь появляться при щелчке на кнопке ФУНКЦИИ.

    3. Обработчик щелчка на кнопке ВЫПОЛНИТЬ, который должен, в зависимости от сделанных установок в блоках ВИД РАБОТЫ и ТАБЛИЦЫ выполнять следующие работы.

Если выделена селекторная кнопка ФУНКЦИИ, то должна строиться таблица, в первой колонке которой будут выведенны N+1() значений аргумента, а следующие колонки (с накапливаемыми значениями интеграла, значениями функции и её производных) должны быть в таблице только если установлены соответствующие флажки в блоке ФУНКЦИИ (см. рис 1).

Если выделена селекторная кнопка КОРНИ, то должна строиться таблица, в колонках которой будут выведенны значения аргумента на границах подынтервалов, на которых функция имеет разные знаки, и соответствующие им значения функции (см. рис 2).

Если выделена селекторная кнопка ЭКСТРЕМУМЫ, то должна строиться таблица, в колонках которой будут выведенны значения аргумента на несмежных границах двух соседних подынтервалов, внутри которых функция достигает экстремума, и соответствующие им и смежной границе значения функции (см. рис 3).

Обработчик щелчка на кнопке ВЫПОЛНИТЬ представлен на рис. 6. Вызываемая из него процедура myTabFunc (см. Рис. 7) используется для сокращения текста программы, выполняя работы, одинаковые при добавлении в таблицу столбцов со значениями функции, приближенных значений производных и накапливаемых значений интеграла функции.

procedure TForm1.Button1Click(Sender: TObject);

var

ArrFX:tArrFX;

i,N:integer;

a,b,hx:extended;

begin

//Выполнение работ для выбранной функции

//и сделанных установок флагов и радиокнопок

//начало интервалв значений аргумента

a:=StrToFloat(Edit1.Text);

//конец интервалв значений аргумента

b:=StrToFloat(Edit2.Text);

//количество подынтервалов аргумента

N:=StrToInt(Edit3.Text);

hx:=(b-a)/(N);//шаг изменения аргумента

if Form1.RadioGroup1.Buttons[0].Checked then begin

//ФУНКЦИИ

//заголовок над таблицей

Form1.Label4.Caption:='ТАБЛИЦА ФУНКЦИЙ';

//начальная ширина окна для отображения таблицы

Form1.Width:=280;

//сначала в таблице один столбец

Form1.StringGrid1.ColCount:=1;

//заголовок столбца значений аргумента

Form1.StringGrid1.Cells[0,0]:='X';

//начальная ширина окна для отображения таблицы

//из одного столбца для значений аргумента

Form1.StringGrid1.Width:=150;

//в таблице всегда StrToInt(Form1.Edit3.Text)+2 строки

//(причём нулевая - заголовочная)

Form1.StringGrid1.RowCount:=N+2;

//заполнение данными столбца Х

for i:=1 to N+1 do

Form1.StringGrid1.Cells[0,i]:=FloatToStr((i-1)*hx);

if Form1.CheckBox1.Checked then begin

//будет вычислен ИНТЕГРАЛ

Integtal(FuncX,a,b,N,ArrFX);

myTabFunc('Интеграл',ArrFX);

end;

if Form1.CheckBox2.Checked then begin

//будет вычислена выбранная ФУНКЦИЯ

FotX(FuncX,a,b,N,ArrFX);

myTabFunc('F(X)',ArrFX);

end;

if Form1.CheckBox3.Checked then begin

//будет вычислена ПЕРВАЯ ПРОИЗВОДНАЯ

dF_dX(FuncX,a,b,N,ArrFX);

myTabFunc('F''(X)',ArrFX);

end;

if Form1.CheckBox4.Checked then begin

//будет вычислена ВТОРАЯ ПРОИЗВОДНАЯ

d2F_dX2(FuncX,a,b,N,ArrFX);

myTabFunc('F"(X)',ArrFX);

end;

end//ФУНКЦИИ - if Form1.RadioGroup1.Buttons[0].Checked

else if Form1.RadioGroup1.Buttons[1].Checked then begin

//КОРНИ

//будут найдены приближения КОРНЕЙ

Form1.Width:=640;//ширина формы

// заголовок над таблицей

Form1.Label4.Caption

:='ТАБЛИЦА ПРИБЛИЖЕНИЙ КОРНЕЙ';

Form1.StringGrid1.ColCount:=4;//всегда 4 столбца

//вначале только строка заголовков

Form1.StringGrid1.RowCount:=1;

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5167
Авторов
на СтудИзбе
437
Средний доход
с одного платного файла
Обучение Подробнее