Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
Anutka-18
0 / 0 / 0
Регистрация: 23.09.2010
Сообщений: 5
1

Линейные вычислительные процессы.

23.09.2010, 13:09. Просмотров 1491. Ответов 7
Метки нет (Все метки)

Пожалуйста, помогите решить задачку в делфи!

Селикционер вывел новый сорт зерновой культуры и снял с опытной делянки k кг. семян. Посеяв 1 кг. семян можно за сезон собрать p кг. семян.
Через сколько лет селикционер может засеять новой культурой поле площадью S га., если норма высева n кг/га. Числа k, p, S, n должны быть введены пользователем.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.09.2010, 13:09
Ответы с готовыми решениями:

Разветвляющиеся вычислительные процессы
Помогите решить примерчик в Делфи.

Разветвляющиеся вычислительные процессы в Delphi
помогите создать программу: Form состоит из трех Label, трех Edit и одного Button. "Ввести три...

линейные вычислительные процессы
Партия куриных окорочков в кол-ве M кг была закуплена по цене S руб./кг. При этом надбавкой N %...

Линейные вычислительные процессы
Составить блок-схему и алгоритм решения задач. Упростить выражение при помощи дополнительной...

Линейные вычислительные процессы
Помогите, тут ошибку выдает в 11 строчке, как ее исправить и есть ли другие ошибки? #include...

7
Башир
208 / 208 / 20
Регистрация: 18.05.2010
Сообщений: 846
23.09.2010, 14:38 2
Anutka-18, задайте эту задачу в раздел математики получите уравнение, формулу, и потом вернитесь в этот раздел форума. В вашей задачи больше всего математики.
1
Anutka-18
0 / 0 / 0
Регистрация: 23.09.2010
Сообщений: 5
23.09.2010, 16:17  [ТС] 3
Спасибо, сейчас попробую)

Добавлено через 1 час 1 минуту
Чтобы засеять S га нужно Sn кг. После m-ого года семен k(p^(m-1)) кг. Отсюда m>ln(Sn/k)/ln(p) +1.
0
Башир
208 / 208 / 20
Регистрация: 18.05.2010
Сообщений: 846
23.09.2010, 16:22 4
А теперь ничего сложного , добавьте 4 компронента TEdit, берите с них значение и вычесляйте в формуле. В чем сложность не пойму?
1
23.09.2010, 16:22
Anutka-18
0 / 0 / 0
Регистрация: 23.09.2010
Сообщений: 5
23.09.2010, 17:07  [ТС] 5
Просто я вообще в универе только начала изучать. И совсем совсем ничего не знаю...делаем сейчас задания которые описаны пошагово. Я вообще еще чайник из чайников
0
Башир
208 / 208 / 20
Регистрация: 18.05.2010
Сообщений: 846
23.09.2010, 17:28 6
Ну тогда почитайте и поизучайте немного, если будет свободное время то напишу что нить вечером.
1
Xander Bass
Йошь-мыслитель
122 / 116 / 25
Регистрация: 22.02.2009
Сообщений: 683
Записей в блоге: 5
24.09.2010, 02:27 7
Итак имеем формулы:

Необходимое_количество_семян = Площадь * Норма;
Получаемое_количество = Изначальное_количество*(Урожайность^(количество_лет - 1 ));

Отсюда имеем алгоритм:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function PoluchKolvo(StartNumber,CLIncrement,Years: integer):integer;
var
  res,c: integer;
begin
  res:=1;
  for c:=1 to Years do res:=res*CLIncrement;
  res:=res*StartNumber;
  result:=res
end;
 
function KolvoLet(StartNumber, CLIncrement, Norma, Ploschad: integer);
var
  YEARS: integer;
begin
  Years:=0;
  while PoluchKolvo(StartNumber,CLIncrement,YEARS) < (Norma*Ploschad) do YEARS:=YEARS+1;
  result:=YEARS
end;
Правда здесь есть одна проблема. Если StartNumber(стартовое количество) будет меньше единицы или CLIncrement(урожайность на килограмм) будет меньше 2, наш цикл зависнет. Впрочем можно организовать предпроверку на этапе конструирования приложения.

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
unit MainForm;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, Spin;
 
type
  TForm1 = class(TForm)
    ed_urozhai: TSpinEdit;
    lbl_urozhai: TLabel;
    lbl_prirost: TLabel;
    ed_prirost: TSpinEdit;
    lbl_norm: TLabel;
    ed_norm: TSpinEdit;
    lbl_ploschad: TLabel;
    ed_ploschad: TSpinEdit;
    stt_urozhai: TStaticText;
    stt_norm: TStaticText;
    stt_ploschad: TStaticText;
    stt_prirost: TStaticText;
    Bevel: TBevel;
    stt_years: TStaticText;
    stt_FOR: TStaticText;
    ind_GA: TStaticText;
    stt_GA: TStaticText;
    ind_years: TStaticText;
    BevelTop: TBevel;
    stt_status_f: TStaticText;
    stt_status: TStaticText;
    stt_context: TStaticText;
    procedure ed_ploschadChange(Sender: TObject);
    procedure ed_normChange(Sender: TObject);
    procedure ed_urozhaiChange(Sender: TObject);
    procedure ed_prirostChange(Sender: TObject);
  private
    rError: boolean;
    v_YEARS, rStartNumber, rCLIncrement, rSowNorm, rSowSpace: integer;
    function r_SEMCOUNT:integer;
    function r_PRRKOEF:integer;
    procedure Refresh;
    procedure wError(value: boolean);
    procedure wStartNumber(value: integer);
    procedure wCLIncrement(value: integer);
    procedure wSowNorm(value: integer);
    procedure wSowSpace(value: integer);
  public
    property IsError    : boolean read rError       write wError;
    property StartNumber: integer read rStartNumber write wStartNumber;
    property CLIncrement: integer read rCLIncrement write wCLIncrement;
    property SowNorm    : integer read rSowNorm     write wSowNorm;
    property SowSpace   : integer read rSowSpace    write wSowSpace;
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.wError(value: boolean);
begin
  rError:=value;
  if rError then
  begin
    stt_status.Caption:='ошибка вычисления';
    stt_status.Font.Color:=clRed;
    stt_context.Visible:=TRUE
  end else
  begin
    stt_status.Caption:='вычислено';
    stt_status.Font.Color:=clGreen;
    stt_context.Visible:=FALSE
  end
end;
 
procedure TForm1.wStartNumber(value: integer);
begin
  rStartNumber:=value;
  if rStartNumber < 1 then
  begin
    IsError:=TRUE;
    stt_context.Caption:='Нужно что-то сеять'
  end
end;
 
procedure TForm1.wCLIncrement(value: integer);
begin
  rCLIncrement:=value;
  if rCLIncrement < 2 then
  begin
    IsError:=TRUE;
    stt_context.Caption:='Урожайность меньше 2 кг на 1 кг посева не имеет смысла'
  end
end;
 
procedure TForm1.wSowNorm(value: integer);
begin
  rSowNorm:=value;
  if rSowNorm < 1 then
  begin
    IsError:=TRUE;
    stt_context.Caption:='Необходимо указать норму посева'
  end
end;
 
procedure TForm1.wSowSpace(value: integer);
begin
  rSowSpace:=value;
  if rSowSpace < 1 then
  begin
    IsError:=TRUE;
    stt_context.Caption:='Необходимо указать площадь'
  end;
  ind_GA.Caption:=ed_ploschad.Text
end;
 
function TForm1.r_SEMCOUNT:integer;
begin
  result:=SowNorm*SowSpace
end;
 
function TForm1.r_PRRKOEF:integer;
var
  res,c: integer;
begin
  res:=1;
  for c:=1 to v_YEARS do res:=res*CLIncrement;
  res:=res*StartNumber;
  result:=res
end;
 
procedure TForm1.Refresh;
begin
  v_YEARS:=0;
  IsError:=FALSE;
  StartNumber:=StartNumber;
  CLIncrement:=CLIncrement;
  SowNorm:=SowNorm;
  SowSpace:=SowSpace;
  if not IsError then
  while r_PRRKOEF < r_SEMCOUNT do v_YEARS:=v_YEARS+1;
  ind_years.Caption:=IntToStr(v_YEARS)
end;
 
procedure TForm1.ed_urozhaiChange(Sender: TObject);
begin
  StartNumber:=ed_urozhai.value;
  Refresh
end;
 
procedure TForm1.ed_prirostChange(Sender: TObject);
begin
  CLIncrement:=ed_prirost.value;
  Refresh
end;
 
procedure TForm1.ed_normChange(Sender: TObject);
begin
  SowNorm:=ed_norm.value;
  Refresh
end;
 
procedure TForm1.ed_ploschadChange(Sender: TObject);
begin
  SowSpace:=ed_ploschad.value;
  Refresh
end;
 
end.[FONT=monospace][/FONT]


Пояснять саму форму не буду. Учиться стоит самостоятельно

А вот исходники прилагаю. Вложение 43046
0
Xander Bass
Йошь-мыслитель
122 / 116 / 25
Регистрация: 22.02.2009
Сообщений: 683
Записей в блоге: 5
24.09.2010, 13:23 8
Добавляю архив с примером. agro.zip

Puporev, спасибо за удаление мусора
0
24.09.2010, 13:23
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.09.2010, 13:23

Линейные вычислительные процессы (JavaScript)
Имееться формула, необходимо вывести результат х -6:6, шаг 2 &lt;html&gt; &lt;head&gt; &lt;meta...

Дописать скрипт Линейные вычислительные процессы
Добрый день. Помогите пожалуйста дописать скрипт Линейные вычислительные процессы срочно надо...

Цикличные вычислительные процессы
Границы интервала 0.1;0.5 Результат должен быть как на скрине


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.