Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Экологическая программа


Автор: VadimT 19.1.2013, 07:58
Привет мне нужно создать любую экологическую программу в паскале, нашел такую, попробовал сделать без гистограммы http://i052.radikal.ru/1301/a8/981b34eb6ad7.jpg
Код

uses crt;
var i:integer;
E,A,B,C:real;
begin 
clrscr;
Writeln('Nachalnaya koncentraciya yadovitih othodov v vodoeme. A = ');
Readln(A);
Writeln('Estastvennoe ymenshenie zagryazneniya vodoema. B = ');
Readln(B);
Writeln('Predelnaya dopustimaya koncentracia zagryazneniya. C = ');
Readln(C);
E:=A/B;
i:=1;
repeat
i:=i+1;
E:=(E*i)/(B*i);
until E<C;
Writeln('Vremyay v techenie kotorogo voda yadovita. D = ',i);
Readln;
end.


Знаю что что-то не так, помогите исправить

Автор: serezhka1986 23.1.2013, 18:38
На картинке форма, а код для консольного приложения. Как должно быть то?

Автор: Чучмек 23.1.2013, 23:30
Цитата(VadimT @  19.1.2013,  07:58 Найти цитируемый пост)
E:=A/B;


Цитата(VadimT @  19.1.2013,  07:58 Найти цитируемый пост)
E:=(E*i)/(B*i);

Что это.
По какой формуле считаешь?

Автор: serezhka1986 24.1.2013, 10:05
Цитата(Чучмек @  23.1.2013,  23:30 Найти цитируемый пост)
Что это.
По какой формуле считаешь?

Так это же и есть формула... Задается A, B и C, а потом вычисляется E

Автор: Чучмек 24.1.2013, 12:14
Гавно собачье, а не формула.
i/i=1
if B<1 then E-> ?

Автор: serezhka1986 24.1.2013, 13:14
Там же сначала E:=A/B;
Потом i:=1;
Далее цикл, пока E<C
В цикле i увеличивается на единицу и формула E:=(E*i)/(B*i);. В каждом цикле E будет уже другая.
Не спорю, в данной формуле E:=(E*i)/(B*i); i вообще ничего не дает, но в конечном результате i - количество дней, пока вода будет еще ядовитой.
Цитата(Чучмек @  24.1.2013,  12:14 Найти цитируемый пост)
if B<1

Ну так здесь проверку надо делать, чтобы вводимое значение B было >0

Автор: Чучмек 24.1.2013, 14:13
Я спрашивал - откуда взято.
Что есть 
Цитата(VadimT @  19.1.2013,  07:58 Найти цитируемый пост)
Estastvennoe ymenshenie zagryazneniya vodoema. B =

Во сколько раз упадет концентрация за сутки?
Код

A:=начальная концентрация;
B:=во сколько раз в сутки;
С:=ПДК;
i:=0;
while A>C do
 begin
 A:=A/B;
 inc(I);
 end;


Автор: serezhka1986 24.1.2013, 15:17
Цитата(Чучмек @  24.1.2013,  14:13 Найти цитируемый пост)
Я спрашивал - откуда взято.

Ну это уже у автора поста надо спрашивать  smile 
Судя по скриншоту, все значения (А,В,С) вводятся произвольно в Edit-и
user posted image

Автор: Poseidon 24.1.2013, 15:35
Формулы ... просто нет слов. Я начинаю понимать зачем программистов учат математике. 

Автор: Poseidon 24.1.2013, 16:00
Цитата(VadimT @  19.1.2013,  07:58 Найти цитируемый пост)
Знаю что что-то не так, помогите исправить
Кстати, а что именно не так? Нужно найти D? Так тут даже формулы выдумывать не надо, чистая математика.
D >= Log B (A/C)

Все исходные данные у нас есть. Правая часть неравенства вычисляется, про левую известно что это целое. Какое проблемы? Для показанных данных правая часть ровна 7.828. Ближайшее целое, большее этого - 8. Вот и все решение.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)