
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.30] |
![]() |
|
Страницы: (5) « Первая ... 2 3 [4] 5 все ( Перейти к последнему сообщению ) |
![]() |
Сообщ.
#46
,
|
|
Цитата Компилятор сообщает где ошибки и что они означают. Следуй его указаниям. Читай документацию, справочники.Error: Duplicate identifier "I" РеГисТР бУКв в Паскале не имеет значения. I и i - одинаковые идентификаторы. ![]() ![]() Var I: LongInt; i,t: real; ![]() Приведёнными мною набросками построения функции так и не воспользовалась. Ну и ладно. Помучаешься со своим (если свой) кодом, может, поймёшь разницу. ![]() Добавлено Вдобавок: не пользуйся чужими наработками, если в них ничего не понимаешь. Больше времени потратишь впустую, чем пользы получишь от самостоятельного обучения. |
Сообщ.
#47
,
|
|
|
Цитата Romtek @ Приведёнными мною набросками построения функции так и не воспользовалась. так Вы мне скажите, в ТУРБО паскале они будут действовать??? |
![]() |
Сообщ.
#48
,
|
|
Если изменить
Result := на FunctionName := то да. Изменения, как видишь, минимальные. |
![]() |
Сообщ.
#49
,
|
|
Цитата Prutvel @ в ТУРБО паскале они будут действовать??? Большая часть из того, что здесь написана будет работать и в Турбо Паскале (когда исправишь ошибки, на которые тебе уже указали и на которые указывает компилятор, разумеется). Но если тебе надо Турбо - ты так и говори, а то мечешься, как... <самоцензура>, то ей Лазарус, потом FPC, теперь TP подавай... На кой черт в Лазарусе, скажем, рисовать это все в ручную, кто-нибудь объяснит мне? Компонента Chart что, не существует? Добавить несколько линий с определенным периодом - вот тебе и график функции. Ты для себя сначала реши, что тебе надо, запутать всех постоянным изменением компиляторов, или выбрать что-то дно, и написать, наконец, работоспособный код... А то развели флуда на 50 сообщений. "Это правильно? А это - правильно?" Программа может быть признана правильной только тогда, когда она компилируется, запускается и делает то, что от нее требуется. Твоя программа не прошла ни один из этапов. А если прошла - то покажи в нормальном виде : заархивируй и прикрепи архив к сообщению (специально добавили кнопку "Обзор" прямо в форму быстрого ответа) тот код, который у тебя компилируется, а не тот бред, который ты пишешь постоянно - то лишние буквы, то повторяющиеся идентификаторы, то вообще запрещенные символы в исходнике. Чтоб БЕЗ ИЗМЕНЕНИЙ (открыл присоединенный файл, нажал F9. Я больше ничего делать не хочу. Это твое задание, ты его и решай, я могу только посмотреть, правильно ли оно работает) он прошел хотя бы этап компиляции и программа хоть как-то запустилась. Потом будем продолжать. Не скомпилировался? Извини, здесь не онлайн Pascal Compiler, тебе программа пишет где ошибка - будь добра разобраться, что не так, и исправить. А пока нет такого кода - говорить больше не о чем. |
Сообщ.
#50
,
|
|
|
вот этот компилируется в турбо:
function FMod (a, b: real): real; begin FMOD:= a - b * Trunc(a / b); end; Function i(t:real): real; Const Im=0.57; L=0.1; tau=62; f1=5.37; f2=8.06; T1=186;T2=124; T3=310; begin if fmod(t,T3)<tau then i:=Im; if (fmod(t,T3)>=tau) and (fmod(t,T3)<T1) then I:=-Im; if (fmod(t,T3)>=T1) and (fmod(t,T3)<(T1+tau)) then I:=Im; if (fmod(t,T3)>=T1+tau) and (fmod(t,T3)<T3) then I:=-Im; end; begin end. |
Сообщ.
#51
,
|
|
|
вот программа. Она почти работает. Но компиллятор выводит сразу 4 ошибки на одно выражение - function PixelCoordT(t: Double): Integer; что делать?)
Прикреплённый файл ![]() |
Сообщ.
#52
,
|
|
|
function FMod (a, b: double): double;
begin FMOD:= a - b * Trunc(a / b); end; Function i(t:double): Double; Const Im=0.57; L=0.1; tau=62; f1=5.37; f2=8.06; T1=186;T2=124; T3=310; begin if fmod(t,T3)<tau then i:=Im; if (fmod(t,T3)>=tau) and (fmod(t,T3)<T1) then I:=-Im; if (fmod(t,T3)>=T1) and (fmod(t,T3)<(T1+tau)) then I:=Im; if (fmod(t,T3)>=T1+tau) and (fmod(t,T3)<T3) then I:=-Im; end; var k,N:integer;DataTmax,DataTmin, DataImax,DataImin: real; t,i1: array[0..300] of real; begin DataTmax:=t[0]; DataTmin:=t[0]; for k:=1 to N do begin if t[k]>DataTmax then DataTmax:=t[k]; if t[k]<DataTmin then DataTmin:=t[k]; end; DataImax:=i1[0]; DataImin:=i1[0]; for k:=1 to N do begin if i1[k]>DataImax then DataImax:=i1[k]; if i1[k]<DataImin then DataImin:=i1[k]; end; function PixelCoordT(t:double): Integer; begin (* прибавляем половину ширины холста, чтобы центр осей был в центре экрана *) i := Round( CanvasWidth / 2.0 + t * Kt) end; function PixelCoordI (i: Double): Integer; begin (* вычитаем из половины высоты холста, иначе график будет перевёрнутым*) i := Round( CanvasHeight / 2.0 - f(t) * Ki) end; begin end |
Сообщ.
#53
,
|
|
|
Prutvel
Извините, но Вы совершенно НЕ читаете того, что Вам пишут. Еще раз перечитайте посты Romtek'a и volvo877. Внимательно! Ну, не будет работать Ваш код, "отрисовывающий графику". Нигде. Ни в Лазарусе, ни в FP, ни в TP. |
Сообщ.
#54
,
|
|
|
Цитата Prutvel @ Она почти работает. хоть немного код структурируйте ![]() ![]() function FMod (a, b: double): double; begin FMOD:= a - b * Trunc(a / b); end; Function i(t:double): Double; Const Im=0.57; L=0.1; tau=62; f1=5.37; f2=8.06; T1=186;T2=124; T3=310; begin if fmod(t,T3)<tau then i:=Im; if (fmod(t,T3)>=tau) and (fmod(t,T3)<T1) then I:=-Im; if (fmod(t,T3)>=T1) and (fmod(t,T3)<(T1+tau)) then I:=Im; if (fmod(t,T3)>=T1+tau) and (fmod(t,T3)<T3) then I:=-Im; end; var k, N:integer; DataTmax, DataTmin, DataImax, DataImin: real; t, i1: array[0..300] of real; begin DataTmax:=t[0]; DataTmin:=t[0]; for k:=1 to N do begin if t[k]>DataTmax then DataTmax:=t[k]; if t[k]<DataTmin then DataTmin:=t[k]; end; DataImax:=i1[0]; DataImin:=i1[0]; for k:=1 to N do begin if i1[k]>DataImax then DataImax:=i1[k]; if i1[k]<DataImin then DataImin:=i1[k]; end; function PixelCoordT(t: Double): Integer; begin (* ЇаЁЎ ў«пҐ¬ Ї®«®ўЁг иЁаЁл е®«бв , зв®Ўл жҐва ®бҐ© Ўл« ў жҐвॠнЄа *) i := Round( CanvasWidth / 2.0 + t * Kt) end; function PixelCoordI (i: Double): Integer; begin (* ўлзЁв Ґ¬ Ё§ Ї®«®ўЁл ўлб®вл е®«бв , Ё зҐ Ја дЁЄ Ўг¤Ґв ЇҐаҐўсагвл¬*) i := Round( CanvasHeight / 2.0 - f(t) * Ki) end; begin end. почему PixelCoordT и PixelCoordI оказались внутри основного блока программы и зачем последний begin? Вас уже просили привести полный код - этот обрезок Цитата Оззя @ не будет работать |
Сообщ.
#55
,
|
|
|
ну помогите!!! пожалуйста, кто-нибудь, напишите работоспособный код. Я уже третью неделю и днем и ночью сижу
![]() ![]() |
![]() |
Сообщ.
#56
,
|
|
Прочти заново предыдущую страницу темы и попытайся написать сама, добавляя функциональность по малу.
Суп ведь также варится, поочерёдно добавляя продукты. |
Сообщ.
#57
,
|
|
|
вы мне сказали, что через trunc надо функцию задавать. Паскаль не строит такой график - выводит координатную ось, и фиолетовый экран
![]() ![]() |
Сообщ.
#58
,
|
|
|
Цитата выводит координатную ось, и фиолетовый экран Кто выводит? Где выводит? ![]() Предыдущая Ваша программа не должна НИЧЕГО выводить. В принципе. А новой версии Вы не предоставляете. ![]() А уроки телепатии я в школе прогуливал. ![]() |
Сообщ.
#59
,
|
|
|
Спасибо большое ВСЕМ, кто принял участие в моем вопросе! График тока вроде бы получился. Не могли бы вы подсказать, как точки этого графика перекинуть в эксель?
|
Сообщ.
#60
,
|
|
|
Да и еще - если не затруднит, подскажите, пожалуйста, как лучше дифференцирование в паскале сделать: надо напряжение через ток найти:
U=L*(dI/dt) я вот думала по точкам, а как их задавать-то - то есть прямо массив делать типа for k:=1 to N do U(k):=L*I(t(k)-I(t(k)-dt)/dt) как это правильно сделать?) |