program project1(input, output);
var
dataout:text;
pos,vel,w2,dt,t:real;
ncalc,iprt,nprt:integer;
Procedure initial (var pos,vel,w2,dt:real;
var ncalc, nprt:integer);
var prt_period, total_time:real;
fname:string[10];
begin
write('nachal`nye coordinaty (metry) =');
readln(pos);
vel:=0.0; (*начальная скорость (м/с)*)
write('otnoshenie k/m = ');
readln(w2);
write ('shag po vremeni (c) = ');
readln(dt);
write('vremya mezhdu pechat`yu dannyh = ');
readln(prt_period);
write('polnoe vreamya modelirovaniya = ');
readln(total_time);
ncalc:=round(prt_period/dt);
nprt:=round(total_time/prt_period);
write('imyz faila dannyh = ');
readln(fname);
assignfile(dataout, fname);
rewrite(dataout);
writeln(dataout, 'время' : 11, 'координата' : 11, 'скорость' : 11);
//writeln(dataout);
//writeln('время' : 11, 'координата' : 11, 'скорость' : 11);
writeln
end;
вот тут
procedure Euler (var pos,vel,w2,dt:real;
ncalc:integer); (*алгоритм Эйлера-Кромера*)
var
accel:real;
icalc:integer;
begin
for icalc := 1 to ncalc do
begin
accel:=-w2*pos;
vel:=vel+accel*dt;
pos:=pos+vel*dt
end
end;
procedure outdat (pos,vel,t:real);
begin
writeln(t:11:4,pos:11:4, vel:11:4);
writeln(dataout,t:11:4,pos:11:4, vel:11:4)
end;
begin (*основная программа*)
initial(pos,vel,w2,dt,ncalc,nprt);
t:=0.0;
for iprt:=1 to nprt do
begin
outdat(pos,vel,t);
Euler (pos,vel,w2,dt,ncalc);
t:=t+ncalc*dt
end;
close(dataout)
end.
срочно!
Модератор: Модераторы
-
artem007-1992
- незнакомец
- Сообщения: 2
- Зарегистрирован: 27.12.2012 20:16:34
срочно!
пишу программу в лазарусе, занос даннных с помощью адресной строки, но у меня после окончания первой процедуры все закрывается, помогите!!
- Little_Roo
- энтузиаст
- Сообщения: 639
- Зарегистрирован: 27.02.2009 18:56:36
- Откуда: Санкт-Петербург
artem007-1992 писал(а):program project1(input, output);
Pascal для ДВК-2 ?
Даже не глядя на текст процедур, а их вызов где?
Принято, в принципе, всеми паскалистами, блоки кода выделять отступами... Это ж не Барсик
И вообще-то, принято текст исходников обрамлять в теги [code]
переместил тему в профильный раздел
Попробую угадать:artem007-1992 писал(а):все закрывается, помогите!!
Код: Выделить всё
...
close(dataout);
write('Нажмите Enter...'); readln;
end.
Код: Выделить всё
nachal`nye coordinaty (metry) =1
otnoshenie k/m = 2
shag po vremeni (c) = 1
vremya mezhdu pechat`yu dannyh = 1
polnoe vreamya modelirovaniya = 5
imyz faila dannyh = task16.txt
0.0000 1.0000 0.0000
1.0000 -1.0000 -2.0000
2.0000 -1.0000 0.0000
3.0000 1.0000 2.0000
4.0000 1.0000 0.0000
Нажмите Enter...
-
artem007-1992
- незнакомец
- Сообщения: 2
- Зарегистрирован: 27.12.2012 20:16:34
bormantспасибо большое, начал считать!
Раньше оно тоже считалось, но по завершении программы окошко консоли закрывалось. Тем не менее, результаты должны были также сохраняться в заданном файле.
занос даннных с помощью адресной строки
Я считаю, за одну только эту фразу можно уже ставить зачёт
- Little_Roo
- энтузиаст
- Сообщения: 639
- Зарегистрирован: 27.02.2009 18:56:36
- Откуда: Санкт-Петербург
Ask писал(а):можно уже ставить зачёт
Не-е-е-е... таким ставят ЗАЧОТ
