Помощь - Поиск - Пользователи - Календарь
Полная версия: Массив
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Артурио
В матрице все ненулевые элементы заменить обратными по величине и противоположными по знакам.
Артемий
Попробуй так: сдесь меняется знак:

const
n=3;
var
i,o,c: Integer;
arr: array [1..n,1..n] of Integer;
begin
for i:=1 to n do begin
for o:=1 to n do begin
readln(arr[i,o]);
end;
end;
for i:=1 to n do begin
for o:=1 to n do begin
if arr[i,o]>0 then begin
arr[i,o]:=-arr[i,o];
Continue;
end;
if arr[i,o]<0 then begin
c:=arr[i,o];
Dec(arr[i,o],arr[i,o]);
Dec(arr[i,o],c);
Continue;
end;
end;
end;
for i:=1 to n do begin
writeln;
for o:=1 to n do begin
write(arr[i,o],' ');
end;
end;
readln


Добавлено через 1 мин.
Да приведи кстати пример числа обратного по величине..Никак не додумал что в этой фразе имеется ввиду.
volvo
  if arr[i,o]<0 then begin
c:=arr[i,o];
Dec(arr[i,o],arr[i,o]);
Dec(arr[i,o],c);
Continue;
end;
Это что, новый способ реализации Abs такой? Или что? Ты хоть комментарии оставляй, а то с такими именами переменных и с такой логикой программы не каждый осилит глубину твоей мысли...

Добавлено через 56 сек.
Цитата
приведи кстати пример числа обратного по величине
Вообще-то X и 1/X еще никто не называл НИКАК иначе, чем "обратные по величине"...
Артемий
wacko.gif (дубизм), прости я никак не вспомнил! lol.gif Конечно металл получился..
volvo
В принципе, задача решается в 3 строки:
For i := 1 to n do
For j := 1 to n do
if arr[i, j] <> 0 then arr[i, j] := - 1 / arr[i, j];

(только вот массив должен быть НЕ целый, а вещественный)...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.