Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 31.01.2019, 23:18
Gungnir Gungnir вне форума
Прохожий
 
Регистрация: 31.01.2019
Сообщения: 2
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Нахождение функции Delphi 7

Доброго времени суток!
Необходима помощь в выполнении задания данного типа:

Составить приложение в среде Delphi , рассчитывающую
функцию y(х) в зависимости от введенного параметра А.


Программа должна содержать:
1. оператор выбора Case..of
В программе предусмотреть:
Компонент для ввода А - Edit.
2. полученные значения у(х) записываются в массив.
3. значения массива у(х) и х выводятся в компонент Listbox.
Cделать следующие критерии:
• максимальный элемент массива,
• минимальный элемент массива,
• сумма всех элементов массива,
• произведение всех элементов массива,
• сумма всех отрицательных элементов массива,
• произведение всех отрицательных элементов массива,
• сумма всех положительных элементов массива,
• произведение всех положительных элементов массива,
Вывод рассчитанных критериев осуществляется с помощью
диалогового окна (Application.MessageBox).
• Вывод всех положительных элементов массива
• Вывод всех отрицательных элементов массива
Вывод всех положительных и отрицательных элементов массива
осуществляется в компонент Memo.
Если положительные или отрицательные элементы при расчете
соответствующего критерия отсутствуют предусмотреть вывод сообщения об
их отсутствии.

Трудности возникают в нахождении критериев, так как я думаю,что я неправильно построил массивы данных.

Необходима любая помощь(тыкнуть носом, помочь с кодом, подправить имеющийся код),либо код похожей программы.
У меня готова сама форма.
Сделанное прикрепил во вложении.
Вложения
Тип файла: rar Делфи.rar (179.9 Кбайт, 1 просмотров)
Ответить с цитированием
  #2  
Старый 01.02.2019, 08:09
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,003
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну, сама функция как-то так:
Код:
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  
Старый 01.02.2019, 11:14
Gungnir Gungnir вне форума
Прохожий
 
Регистрация: 31.01.2019
Сообщения: 2
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
Ну, сама функция как-то так:
Код:
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;

Спасибо за ответ, но я это уже сделал,я не понимаю как из полученных данных получить массив?Если вас не затруднит,можете посмотреть мою работу во вложении?Массив нужен для работы с критериями,я так понимаю что я не правильно вывел данные.
Ответить с цитированием
  #4  
Старый 01.02.2019, 22:27
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,003
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну и в чем проблема? Массив динамический не знаешь как создать?
Код:
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.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:12.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter