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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 13.12.2010, 21:46
glorx glorx вне форума
Прохожий
 
Регистрация: 13.12.2010
Сообщения: 33
Репутация: 10
По умолчанию Расчетная задачка

доброго времени суток всем! У меня такая задача никак нимогу осилить сам:
Задача для расчета и последующего построения графика по найденым значениям.

Суть: В ходе лабораторной мы делаем от 1 до N опытов.
Так вот нам нужно ввести кол-во режимов по которым сделаны замеры, вводим.
Далее пользователь вводит 4 показателя LT,LD,ZT,ZD снятых в ходе лабы.
Пошел расчет по формулам:
Код:
ft:=lt*165;
fd:=ld*195;
u:=ft*2*fod;
e:=(1-zt/zd)*100;
h:=(ft*zt)/(fd*zd)*100;
fod-было посчитано раньше и просто берется значение от туда.
Требуется чтобы после введения LT,LD,ZT,ZD происходил расчет и в зависимости от введенного кол-ва опытов он повторялся с новыми вновь введенными LT,LD,ZT,ZD, т.е если опытов 5 то ввели посчитали, записали в StringGrid, обнулили поля снова заполнили новыми значениями посчитали, записали и так далее!!!
В конце нужно начертить график зависимости . Построить графики зависимостей E и H от U.

Никак не могу осилить.. Прошу помоч с решением данной задачи!!!
Заранее спасибо!!!
Ответить с цитированием
  #2  
Старый 13.12.2010, 21:50
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Помочь-то мы можем, но что именно не получается? Как насчёт выложить код и показать "проблемный участок"?
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #3  
Старый 13.12.2010, 23:18
glorx glorx вне форума
Прохожий
 
Регистрация: 13.12.2010
Сообщения: 33
Репутация: 10
По умолчанию

если нужен код то постараюсь завтра выложить! а вообще не могу догнать как организовать цикл для N опытов(как именно данные из формы забирать,потом опять вводить если опытов >1) и по результатам график построить!!
Как то вот не могу сообразить как это имеено в Delphi сделать грамотно!!
Ответить с цитированием
  #4  
Старый 13.12.2010, 23:38
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

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

Код:
uses
   EnterFrm; // форма для ввода данных

...

for i := 1 To N Do // N берется от пользователя - кол-во опытов
  begin
    EnterForm.ShowModal;
    LT := StrToInt(EnterForm.Edit1.text);
    ...
    // далее идет расчет и накопление значений в массиве
  end;

// теперь у нас есть массив данных, строим по нему график.
Ответить с цитированием
  #5  
Старый 14.12.2010, 14:50
glorx glorx вне форума
Прохожий
 
Регистрация: 13.12.2010
Сообщения: 33
Репутация: 10
По умолчанию

т.е нужно изначально массив создавать?
И как туда записать все вычисления? например из 3х проделаных циклов?
и потом как из массива построить график, с TChart немогу разобраться..

вот фрагмент кодаэто после того как вводим кол-во режимов и нажимаем кнопку расчет)
Цитата:
procedure TForm1.btn6Click(Sender: TObject);
var i,n:Integer;
Lt,Ld,Zt,Zd,Ft,Fd,U,E,H,fod,fi1,e1,n1:real;
begin
EnterFrm.visible:=True;
n:=StrToInt(Form1.lbledt23.text);
fod:=strtofloat(Form1.lbledt20.Text);
for i:=1 to n do
begin
EnterFrm.lbl2.Caption:=IntToStr(i);
EnterFrm.ShowModal;
Lt:=StrTofloat(EnterFrm.lbledt21.text);
Ld:=StrTofloat(EnterFrm.lbledt22.text);
Zt:=StrTofloat(EnterFrm.lbledt28.text);
Zd:=StrTofloat(EnterFrm.lbledt29.text);
Ft:=Lt*165; //усилие тормоза
Fd:=Ld*195; // усилие двигателя
U:=Ft/2*fod; // коэф.тяги
E:=(1-(Zt/Zd))*100; // скольжение
H:=((Ft*Zt)/(Fd/Zd))*100; // КПД
end;

end;

как накапливать и записать массив?? подскажите что дальше нужно делать?

Последний раз редактировалось glorx, 14.12.2010 в 16:26.
Ответить с цитированием
  #6  
Старый 14.12.2010, 16:46
Аватар для Delphist
Delphist Delphist вне форума
Новичок
 
Регистрация: 10.12.2010
Адрес: Курган
Сообщения: 68
Репутация: 6002
По умолчанию

А запустить цикл из N лабораторных религия не позволяет?
Код:
procedure TForm1.btn6Click(Sender: TObject);
var i,n,D:Integer;
Lt,Ld,Zt,Zd,Ft,Fd,U,E,H,fod,fi1,e1,n1:real;
begin
EnterFrm.visible:=True;
n:=StrToInt(Form1.lbledt23.text);
//============запускаем цикл====================
for d:=1 to n do
begin
//===============================
fod:=strtofloat(Form1.lbledt20.Text);
for i:=1 to n do
begin
EnterFrm.ShowModal;
EnterFrm.Caption:='Введите данные'+IntToStr(n)+' лабораторной';
EnterFrm.lbl2.Caption:=IntToStr(i);
Lt:=StrTofloat(EnterFrm.lbledt21.text);
Ld:=StrTofloat(EnterFrm.lbledt22.text);
Zt:=StrTofloat(EnterFrm.lbledt28.text);
Zd:=StrTofloat(EnterFrm.lbledt29.text);
Ft:=Lt*165; //усилие тормоза
Fd:=Ld*195; // усилие двигателя
U:=Ft/2*fod; // коэф.тяги
E:=(1-(Zt/Zd))*100; // скольжение
H:=((Ft*Zt)/(Fd/Zd))*100; // КПД
StringList1.Cells[0,n]:=//что ты хочешь вывести
end;
end;

end;
Admin: Пользуемся тегами для оформления кода!

ИЛИ Я тебя не правильно понял????

Ну а данные для TChart ты всегда можешь взять из StringList

Последний раз редактировалось Admin, 14.12.2010 в 17:11.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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