Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Помогите с выводом данных в задаче

Автор: Garold 12.01.2009 1:11

Вот код программы. Подскажите, как лучше вывести данные? Суть задачи в прикрепленном файле.

 Program Massiv;

const
N=3;
M=5;
A=0;
B=1;

var
X:array[1..N] of real;
Y,S:array[1..M] of real;
F:array[1..N, 1..M] of real;
i,j:byte;

function log3(x:real):real;
begin
log3:=ln(x)/ln(3);
end;

begin

for i:=1 to N do
write('X[',i:3,']=');
readln(X[i]);
for j:=1 to M do
write('Y[',j:3,']=');
readln(Y[j]);

for i:=1 to N do
for j:=1 to M do
if (abs(sin(X[i]))>=A) and (abs(sin(X[i]))<=B) then
F[i,j]:=sqrt(abs(sin(X[i]-exp(Y[j])))) else
F[i,j]:=3*sin(1-log3(Y[j]));

for j:=1 to M do
begin
S[j]:=0;
for i:=1 to N do
S[j]:=S[j]+F[i,j];
end;

end;




Прикрепленные файлы
Прикрепленный файл  ____________.zip ( 5.05 килобайт ) Кол-во скачиваний: 182

Автор: volvo 12.01.2009 2:04

Цитата
Подскажите, как лучше вывести данные?
Ты сначала ввод сделай правильный, потом о выводе будешь думать... У тебя же явно не хватает begin/end при вводе массивов X и Y... А выводить - таблицей, как еще?

write(' X \ Y ');
for i := 1 to m do write(y[i]:6:2);
writeln; writeln;

for i:=1 to N do begin
write(x[i]:6:2, '|');
for j:=1 to M do begin
if (abs(sin(X[i]))>=A) and (abs(sin(X[i]))<=B)
then F[i,j]:=sqrt(abs(sin(X[i]-exp(Y[j]))))
else F[i,j]:=3*sin(1-log3(Y[j]));
write(f[i, j]:6:2);
end;
writeln;
end;

ЗАчем у тебя считается S, я не знаю... В задании про это ничего не сказано.

Автор: Garold 12.01.2009 4:08

 Program Massiv;

const
N=3;
M=5;
A=0;
B=1;

var
X:array[1..N] of real;
Y,S:array[1..M] of real;
F:array[1..N, 1..M] of real;
i,j:byte;

function log3(x:real):real;
begin
log3:=ln(x)/ln(3);
end;

begin

for i:=1 to N do
write('X[',i:3,']=');
readln(X[i]);
for j:=1 to M do
write('Y[',j:3,']=');
readln(Y[j]);

write(' X \ Y ');
for i := 1 to m do write(y[i]:6:2);
writeln; writeln;

for i:=1 to N do begin
write(x[i]:6:2, '|');
for j:=1 to M do begin
if (abs(sin(X[i]))>=A) and (abs(sin(X[i]))<=B)
then F[i,j]:=sqrt(abs(sin(X[i]-exp(Y[j]))))
else F[i,j]:=3*sin(1-log3(Y[j]));
write(f[i, j]:6:2);
end;
writeln;
end;


for j:=1 to M do
begin
S[j]:=0;
for i:=1 to N do
S[j]:=S[j]+F[i,j];
end;

end.


Что еще добавить нужно в код? А то у меня после запуска программы какая-то ерунда получается...