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

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

Форум «Всё о Паскале» _ Задачи _ Матрица

Автор: midss 14.04.2011 1:21

Дана матрица размером n *m ,где n = 5, m=2.заполнить матрицу следующим образом:столбцы с нечетными номерами -3,остальные -5


program var1;
uses crt;
var A:array [1..2,1..5] of integer; {Описываем массив}
x,y,i,j: integer; {Прочие переменные}
begin
for i:=1 to 2 do begin
for j:=1 to 5 do begin
IF <усл> then a[i,j]:=-3;
else
a[i,j]:=-5;
write(A[i,j]:5);
end;
writeln;
end;
end.



Не могу понять как находить эти столбцы???
Помогите пожалуйста!!!

Автор: volvo 14.04.2011 1:39

Номер столбца - это J, правда? Вот и проверяй остаток от деления J на 2:

if j mod 2 = 1 then { столбец нечетный } else { столбец четный }

Автор: Lapp 14.04.2011 3:17

Я почему-то предпочитаю без if

a[i,j]:= j mod 2*2-5;   // исправлено, см. след. пост

Хотя вряд ли это дает какое-то преимущество в скорости или длине кода (результирующего). В общности и читаемости кода тоже преимущество на стороне if. Так что это просто для расширения возможностей или как, мм.. курьез )).

Автор: volvo 14.04.2011 5:36

Имелось в виду (j mod 2)*2 - 5? smile.gif

Автор: Lapp 14.04.2011 5:54

Цитата(volvo @ 14.04.2011 2:36) *
Имелось в виду (j mod 2)*2 - 5? smile.gif

Конечно! lol.gif
как обычно - неважно, что написать, отладка все выловит.. ))
Спасибо, volvo, сейчас исправлю
+1 (завтра, сегодня за что-то уже ставил - не дает..))