![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
KuTa |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 1 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вот такая вот программа
{Nazvanie progi}
Program Function_F(x,t);
{Podluchaem biblioteku}
uses crt;
{Ob`yavlyaem peremennie}
Var x,t:integer;
{Poehali}
begin
{Chistim ekran}
clrscr;
{Delaem verhnuy chast` tablici}
writeln('x/t 1 2 3 4 5 6 7 8 9 10');
{cikl po x}
for x:=1 to 10 do
begin
{delaem bokovuy chast` tablici}
write(x);
{cikl po t}
for t:=1 to 10 do
{vivodim krasivo znacheniya proizvol'nogo zakona x/t=x*t*t}
if (t=1)and(x=10) then write(x*t*t:5) else write(x*t*t:6);
writeln;
end;
{press any key}
Readln;
{stop}
End.
А теперь преподаватель попросил сделать следующее,чтоб таблица считалась не по закону
x*t*t:5
а по следующему закону:
dfi2(t,x)=(fi(t-1,x+1)-2.0*fi(t-1,x)+fi(t-1,x-1))/(dx*dx)
и написал мне изменения в программе такие вот и сказал причесать её,попогите плз. Вот прога которая измененная. С новым законом,что удалить из старой надо?
{Nazvanie progi}
Program Function_F(x,t);
{Podluchaem biblioteku}
uses crt;
{Ob`yavlyaem peremennie}
Var x,t:integer;
fi(0:10, 0:10):real;
dfi2(0:10, 0:10) :real;
dx:real;
{Poehali}
begin
{Chistim ekran}
clrscr;
{Delaem verhnuy chast` tablici}
writeln('x/t 1 2 3 4 5 6 7 8 9 10');
{cikl po x}
for x:=0 to 10 do
fi(0, x)=0.0
end;
dx=0.1;
for x:=1 to 10 do
begin
{delaem bokovuy chast` tablici}
write(x);
{cikl po t}
for t:=1 to 10 do
for x:=1 to 9 do
dfi2(t,x)=(fi(t-1,x+1)-2.0*fi(t-1,x)+fi(t-1,x-1))/(dx*dx)
end;
{vivodim krasivo znacheniya proizvol'nogo zakona x/t=x*t*t}
if (t=1)and(x=10) then write(x*t*t:5) else write(x*t*t:6);
writeln;
end;
{press any key}
Readln;
{stop}
End.
|
![]() ![]() |
klem4 |
![]()
Сообщение
#2
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Ну во первых вычисление фунции лучше загнать в подпрограмму, будет удобнее и читаться проще. А вообще воспользуйся поиском -> Табулирование функции, таблица ...
Много примеров. Посмотришь как красиво выводить данные в виде таблицы. -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
![]()
Сообщение
#3
|
Гость ![]() |
{Nazvanie progi}
Program Function_F(x,t);
{Podluchaem biblioteku}
uses crt;
{Ob`yavlyaem peremennie}
Var
x, t:integer;
fi: array[0 .. 10, 0 .. 10] of real;
dfi2: array[0 .. 10, 0 .. 10] of real;
dx: real;
{Poehali}
begin
{Chistim ekran}
clrscr;
{Delaem verhnuy chast` tablici}
write('x/t');
for x := 1 to 10 do write(x:6);
writeln;
dx := 0.1;
for x:= 1 to 10 do begin
{delaem bokovuy chast` tablici}
write(x:2, '':1);
{cikl po t}
for t:=1 to 10 do begin
dfi2[t, x] := (fi[t-1,x+1]-2.0*fi[t-1,x]+fi[t-1,x-1]) / (dx*dx);
{vivodim krasivo znacheniya proizvol'nogo zakona x/t=x*t*t}
write(dfi2[t, x]:6:3);
end;
writeln;
end;
{press any key}
Readln;
{stop}
End.
Только вот массив fi у тебя не заполняется (вернее, заполняется нулями), поэтому в таблице будут одни нули... |
![]() ![]() |
![]() |
Текстовая версия | 28.09.2025 11:17 |