В матрице все ненулевые элементы заменить обратными по величине и противоположными по знакам.
Артемий
10.03.2007 22:30
Попробуй так: сдесь меняется знак:
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
10.03.2007 22:33
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 еще никто не называл НИКАК иначе, чем "обратные по величине"...
Артемий
10.03.2007 22:36
(дубизм), прости я никак не вспомнил! Конечно металл получился..
volvo
10.03.2007 22:37
В принципе, задача решается в 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];
(только вот массив должен быть НЕ целый, а вещественный)...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.