|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Нахождение функции Delphi 7
Доброго времени суток!
Необходима помощь в выполнении задания данного типа: Составить приложение в среде Delphi , рассчитывающую функцию y(х) в зависимости от введенного параметра А. Программа должна содержать: 1. оператор выбора Case..of В программе предусмотреть: Компонент для ввода А - Edit. 2. полученные значения у(х) записываются в массив. 3. значения массива у(х) и х выводятся в компонент Listbox. Cделать следующие критерии: • максимальный элемент массива, • минимальный элемент массива, • сумма всех элементов массива, • произведение всех элементов массива, • сумма всех отрицательных элементов массива, • произведение всех отрицательных элементов массива, • сумма всех положительных элементов массива, • произведение всех положительных элементов массива, Вывод рассчитанных критериев осуществляется с помощью диалогового окна (Application.MessageBox). • Вывод всех положительных элементов массива • Вывод всех отрицательных элементов массива Вывод всех положительных и отрицательных элементов массива осуществляется в компонент Memo. Если положительные или отрицательные элементы при расчете соответствующего критерия отсутствуют предусмотреть вывод сообщения об их отсутствии. Трудности возникают в нахождении критериев, так как я думаю,что я неправильно построил массивы данных. Необходима любая помощь(тыкнуть носом, помочь с кодом, подправить имеющийся код),либо код похожей программы. У меня готова сама форма. Сделанное прикрепил во вложении. |
#2
|
|||
|
|||
Ну, сама функция как-то так:
Код:
function F(A : Integer; X : Double) : Double; begin Case A Of -1 : Result := (X*X*X-A)/10 2 : Result := sqr(cos(X)) + A; 5 : Result := sqrt(x+A); Else Raise Exception.CreateFmt('Значение A=%d не поддерживается.',[A]); End; end; Код:
var x, v : Double; begin A := StrToInt(Edit1.Text); x := -3; while x <= 3 Do begin v := F(A,x); // ну далее v хочешь в массив, хочешь распечатать и т.д. x := x + .5 end; |
#3
|
|||
|
|||
Цитата:
Спасибо за ответ, но я это уже сделал,я не понимаю как из полученных данных получить массив?Если вас не затруднит,можете посмотреть мою работу во вложении?Массив нужен для работы с критериями,я так понимаю что я не правильно вывел данные. |
#4
|
|||
|
|||
Ну и в чем проблема? Массив динамический не знаешь как создать?
Код:
var Y : Array Of Double; x : Double; begin SetLength(Y,0); A := StrToInt(Edit1.Text); x := -3; while x <= 3 Do begin SetLength(Y,Length(Y)+1); Y[High(Y)] := F(A,x); x := x + .5 end; Далее, в зависимости от выбранного критерия используешь соотв. массив (произведение отриц. элементов): Код:
var I : Integer; P : Double; begin P := 1; For I := Low(Y) To High(Y) Do If Y[i] < 0 Then P := P*Y[i] ... Или у тебя проблема как выбрать "критерий"? Ну так "брось" на форму радио бокс, заполни его названиями своих критериев и используй тот же case..of. |