Помощь - Поиск - Пользователи - Календарь
Полная версия: Помогите исправить IF
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Diablo
в if, что энтером отделен, нужно вписать else. помогите пожалуйста, а то что-то ничего на ум не приходит.

program lab5;
uses crt;
const n=10;
m=10;
var a,b:array [1..n,1..m] of longint;
c:array [1..n] of longint;
i,j,k:integer;
max,f:longint;
begin
clrscr;
randomize;
for i:=1 to n do
begin
f:=1;
for j:=1 to m do
begin
if i=j then f:=1 else

if j>i then f:=f*abs(j-i) else

a[i,j]:=(-1)*(100-f);
write(a[i,j]:7);
end;
writeln;
end;
writeln;
max:=a[1,1];
for j:=1 to m do
begin
for i:=1 to n do
if a[i,j]>max then max:=a[i,j];
write(max:7);
max:=a[1,1];
end;
writeln;
writeln;
for i:=1 to n do
begin
for j:=1 to m do
begin
b[i,j]:=a[n+1-i,n+1-j];
write(b[i,j]:7);
end;
writeln;
end;
repeat
until keypressed;
end.
volvo
Так у тебя уже есть там Else... Куда еще поставить-то надо, уточни...
Diablo
если j<i. не пойму что будет результатом.

...for j:=1 to m do
begin
if i=j then f:=1 else
if j>i then f:=f*abs(j-i) else__________;

a[i,j]:=(-1)*(100-f);
write(a[i,j]:7);
end...
volvo
Так вот и будет результатом нижняя строка... Делал бы форматирование текста, все было бы видно:

for j:=1 to m do begin

if i=j then f:=1
else
if j>i then f:=f*abs(j-i)
else a[i,j]:=(-1)*(100-f);

write(a[i,j]:7);
end;


Четвертого варианта не дано, может быть только i = j, j > i или j < i ...

Добавлено через 1 мин.
Особенно радует - что условие задачи известное тебе должно быть автоматически известно и нам, правда?
Diablo
нужно было матрицу задать по формуле a[i,j]=(100-lj-il!)*(-1)
извини, но по твоему если i>j, то тогда факториал будет равен 1?


for j:=1 to m do begin

if i=j then f:=1
else
if j>i then f:=f*abs(j-i)
else a[i,j]:=(-1)*(100-f);

write(a[i,j]:7);
end;




volvo
А при чем здесь по-моему? Ты полностью ЗАДАНИЕ приведи, как тебе его дали, а не "типа, тут это надо было..."

Я, понимаешь ли, не вижу сквозь несколько тысяч километров, и через экран читать еще не научился... Я просто показал тебе, как компилятор воспринимает твою программу...
мисс_граффити
Diablo, вообще-то, это по-твоему smile.gif))
а так - какая разница, что больше - i или j?
надо делать
if i=j then...
else...


и все
volvo
А если задание у тебя такое как ты показал, на что тебе эти if-ы тогда?

  for i:=1 to n do begin
for j:=1 to m do begin

f := 1;
for k := 1 to abs(j - i) do f:=f*k; { <--- Вот тебе вычисление факториала }
a[i,j]:=(-1)*(100-f);

write(a[i,j]:7);
end;
writeln;
end;
Diablo
знаешь в чем вся штука? я целый день доказывал своему преподу, что никаких условий кроме равенства i=j здесь не нужно. что модуль, он и в африке модуль, а потому разницы нету, что больше i или же j.
но все равно, спасибо что выделил время.
Skala_net
Цитата(Diablo @ 17.05.2007 22:50) *

знаешь в чем вся штука? я целый день доказывал своему преподу, что никаких условий кроме равенства i=j здесь не нужно. что модуль, он и в африке модуль, а потому разницы нету, что больше i или же j.
но все равно, спасибо что выделил время.

ты пол дня пива пил, как ты мог доказывать что blink.gif то.
Diablo
закрыть тему
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.