![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Доброго времени суток!
Необходима помощь в выполнении задания данного типа: Составить приложение в среде 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. |