Помощь - Поиск - Пользователи - Календарь
Полная версия: текстовый файл
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Кукла
записать константы в како-либо файл, а потом прочитать от туда перед вычеслениями
program znachenia;
const h=10;
g=9.8;
m=4;
l=15;
v=10;
p=1000;
c=2;
k=3;
var tm,fi0,fi1,w1,w0,t,dt:real;
j:integer;
f,e:text;
begin
dt:=0.00001;
tm:=20;
fi0:=pi/6;
w0:=0;
assign(f,'dta');
rewrite(f);
assign(e,'atd');
rewrite(e);
while t<tm do
begin
if cos(fi0)<=(h/l) then
begin
w1:=w0+(dt/sqr(l)/m)*(-c*fi0-m*g*sin(fi0)*l);
fi1:=fi0+w0*dt;
fi0:=fi1;
w0:=w1;
t:=t+dt;
end
else begin
w1:=w0+(dt/m/sqr(l))*(-c*fi0-m*g*sin(fi0)*l-k*w0*sqr(l));
fi1:=fi0+w0*dt;
fi0:=fi1;
w0:=w1;
t:=t+dt;
end;
j:=j+1;
if j mod 100000=0 then
begin
writeln(e,t,' ',fi1);
writeln(f,t,' ',w1);
j:=0;
end;
end;
close(f);
close(e);
end.
volvo
Хм... Как минимум - второй профиль: Zopaa

И задача аналогичная... Что, нельзя было попросить просто поменять тебе имя? wacko.gif
Lapp
Цитата(Кукла @ 2.06.2009 16:33) *
записать константы в како-либо файл, а потом прочитать от туда перед вычеслениями
Ты имеешь в виду g, h, m и т.д.? И в чем проблема?

Сделай такой файл в любом редакторе, типа в блокноте (назови, скажем, config.txt) :
10  9.8  4  15  10  1000  2  3


Заведи переменную для файла и для всех бывших констант:
var 
cf: text;
h,g,m,l,v,p,c,k: real;


А потом считай в парограмме типа так:
Assign(cf,'config.txt');
ReSet(cf);
DearLn(cf,h,g,m,l,v,p,c,k);
Close(cf);


Добавлено через 2 мин.
Цитата(volvo @ 2.06.2009 16:39) *
Хм... Как минимум - второй профиль: Zopaa
volvo, я чувствую за собой вину (поиздевался вволю)) и на радостях беру грех на себя.

Кукла, это так? volvo прав?
amega
Цитата
DearLn(cf,h,g,m,l,v,p,c,k);


DearLn - ? мм может readln?

ps выж админнистраторы, у вас апи адрес пользователя на каждом собщение, можно сравнить... yes2.gif
помоему не первый случай когда человек меняет профиль))
Lapp
Цитата(amega @ 2.06.2009 17:30) *
DearLn - ? мм может readln?
Нет, это "Дорогой Натуральный Логарифм" lol.gif lol.gif lol.gif

Цитата(amega @ 2.06.2009 17:30) *
ps выж админнистраторы, у вас апи адрес пользователя на каждом собщение, можно сравнить... yes2.gif
помоему не первый случай когда человек меняет профиль))
амега, ты не переживай, все делается. Все под контролем)).
Кукла
да да..именно zopaa, надоело читать на по делу сообщения
Кукла
Код
program znachenia;
const {h=10;}
         g=9.8;
         {m=4;
         l=15;
         v=10;
         p=1000;
         c=2;
         k=3;}
var tm,fi0,fi1,w1,w0,t,dt:real;
h,m,l,v,p,c,k:real;
j,q:integer;
s:string;
f,e,d:text;
begin
dt:=0.00001;
tm:=20;
fi0:=pi/6;
w0:=0;
assign(f,'dta');
rewrite(f);
assign(e,'atd');
rewrite(e);
assign(d,'dano.txt');{файл где записаны константы}
reset(d); q:=0;
readln(d,s); val(s,h,q);
readln(d,s); val(s,m,q);
readln(d,s); val(s,l,q);
readln(d,s); val(s,v,q);
readln(d,s); val(s,p,q);
readln(d,s); val(s,c,q);
readln(d,s); val(s,k,q);
close(d);
while t<tm do
begin
if cos(fi0)<=(h/l) then
           begin
           w1:=w0+(dt/sqr(l)/m)*(-c*fi0-m*g*sin(fi0)*l);
           fi1:=fi0+w0*dt;
           fi0:=fi1;
           w0:=w1;
           t:=t+dt;
           end
           else begin
                w1:=w0+(dt/m/sqr(l))*(-c*fi0-m*g*sin(fi0)*l-k*w0*sqr(l));
                fi1:=fi0+w0*dt;
                fi0:=fi1;
                w0:=w1;
                t:=t+dt;
                end;
                j:=j+1;
                if j mod 100000=0 then
                  begin
                     writeln(e,t,' ',fi1);
                     writeln(f,t,' ',w1);
                     j:=0;
                 end;
end;
close(f);
close(e);
end.

почему он не хочет работать??
а как вы посоветовали он тоже отказывается работать
Lapp
Покажи файл с данными, плз.
Кукла
Цитата(Lapp @ 3.06.2009 1:09) *

Покажи файл с данными, плз.

как ты писал, я так же записала..
Lapp
Цитата(Кукла @ 2.06.2009 23:11) *
как ты писал, я так же записала..
Как я писал, для твоего чтения не подходит никак. Чтение переделала - переделывай файл. Хотя ТАК читать немного странно..
Я надеюсь, речь идет не о том, что я сделал опечатку в слове ReadLn, которую заметил amega? Мне кажется, то, что я написал должно работать.. Может попробуешь еще разок? И если не получится - покажи.
Кукла
странно он не хотел работать, а щас написала и он заработал))))спасибо..а можно еще воросик, а в модули если оформлять, это долго и сложно или там чуток нужно добавить??
Lapp
Цитата(Кукла @ 2.06.2009 23:50) *
в модули если оформлять, это долго и сложно или там чуток нужно добавить??
Ты имеешь в виду unit?
В юниты выделяются процедуры или функции (как правило). У тебя в программе я не наблюдаю ни первых, ни вторых. Что "оформлять"?

Кукла
я не знаю, но видимо отдельно построение графика, разлиновка, сами вычисления..я так поняла что это.
Krjuger
Раскидать на процедуры наверно...и ,нет, там совсем чуть чуть кода меняется,если оформлять через процедуры и функции.Но уж чего чего а через юниты врятли тут надо.
Цитата

В юниты выделяются процедуры или функции (как правило).

Не знаю,возможно я заблуждаюсь,но в юниты, как мне кажется, выделают либо процедуры,которые можно применять в нескольких программах,либо для уменьшения грамосткости основной программы, ни то ни то здесь,на мой взгляд не нужно, самое оптимальное на процедуры раскидать,как ты сказала
Цитата

отдельно построение графика, разлиновка, сами вычисления
Lapp
Цитата(Кукла @ 3.06.2009 0:01) *
видимо отдельно построение графика, разлиновка, сами вычисления..
Кукла, это в принципе правильная идея, но я (и Krjuger) уже сказал: для выделения чего-то в юнит это что-то должно быть оформлено в виде процедуры/функции. Так что начни с того, что разбей на логически обособленные действия и оформи их как п/ф. После этого можно будет выделить их в отдельный юнит - это несложно, и мы поможем. Еще там встанет вопрос о том, какие переменные относить к юниту, но это по ходу дела.

Сечешь фишку? Оформи отдельные логические действия как п/ф. Угу?
Кукла
да, ладно лениво как-то, я на 4 согласилась..не могу больше про курсовую думать))
Lapp
Цитата(Кукла @ 4.06.2009 1:31) *
да, ладно лениво как-то, я на 4 согласилась..не могу больше про курсовую думать))
Счастливая.. Мне бы так - не думать про все ваши курсовые, не заботиться о ваших знаниях...
Эх..

Отдыхай. Воспринимаю эту твою реплику как "спасибо"..
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.