![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 26.11.2013
Сообщений: 5
|
![]()
В проекте при компиляции в введении стартовых данных
Выскакивает ошибка деление на ноль, что бы не присваивал переменной Кто шарит помогите ! ![]() unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, DBCtrls, TeEngine, TeeProcs, Chart, Series; type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Button1: TButton; Chart1: TChart; DBText1: TDBText; Series1: TFastLineSeries; Series2: TFastLineSeries; Series3: TFastLineSeries; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; Gd, Gm , Um, Ts: Integer; R,L,Q,I,DI,t,Om,Tmax,T0,Tm,d,dt,UR, UC,UL : real; const EDS = 1.0 {Bольти}; Umax = 2.0 {Bольти }; C = 1E-6 {Фаради}; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin edit1.Text:=FloatToStr(L); edit2.Text:=FloatToStr(R); edit3.Text:=FloatToStr(T0); edit4.Text:=FloatToStr(d); Om:=1/sqrt(L*C); {цикліч. частота LC-контура} dt:=d/Om; {крок} Tmax:=2*pi*T0/Om; {часовий відрізок проведення розрахунків} {задання початкових значень} t:=0; Q:=0; I:=0; {розвязок рівнянь методом ейлера} while t <= Tmax do begin DI:=-(I*R*C*Om + Q - EDS*C); I:=I+DI*d; Q:=Q+I*d; UR:=I*R*Om; UC:=Q/C; UL:=L*DI*Om*Om; t:=t+dt; end; end; end. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,504
|
![]() |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
А что должно выдавать при делении на 0? Посмотрите что в L и C задаете или не задаете
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#4 |
Регистрация: 26.11.2013
Сообщений: 5
|
![]()
Спасибо большое !
![]() |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,504
|
![]()
Кстати, лучше в таких случаях обеспечить защиту от ввода всякой фигни, например букв, отриц. значений
Код:
|
![]() |
![]() |
![]() |
#6 |
Proger Man
Форумчанин
Регистрация: 07.03.2009
Сообщений: 584
|
![]()
Вообще в школах учат что делить на 0 нельзя, ну а с точки зрения математики можно, но получаем в результате бесконечное число. Так вот мне интересно зачем вам нужно делить на 0?
ShowMessage('Добро пожаловать!');
|
![]() |
![]() |
![]() |
#7 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]() Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,504
|
![]()
Да, ∞ - это не число. В математике.
Правда, можно или нельзя, это надо смотреть определение понятия деление Я не помню. Последний раз редактировалось type_Oleg; 04.12.2013 в 21:54. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Деление | atenon | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 2 | 18.10.2012 19:43 |
Деление | Nikita++ | Помощь студентам | 8 | 19.03.2011 18:56 |
Деление в С++ | Tanilita | Общие вопросы C/C++ | 5 | 26.02.2010 17:28 |
Деление | |{ot | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 4 | 24.03.2009 01:50 |
деление | natasha | Общие вопросы Delphi | 6 | 22.01.2007 12:39 |