Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2009, 09:19   #1
sancheszone
Пользователь
 
Аватар для sancheszone
 
Регистрация: 11.10.2009
Сообщений: 14
По умолчанию Нужно сделать пррогамму с обработкой массивов

Нужно ввести с клавиатуры числа матрицы (положительные и отрицательные)
например:
2 -7 -9
4 -5 -4
7 6 3
и нужно чтобы он выводил резульат: складывал в модуле все отрицательные-нечетные числа, тоесть во втором столбце 5+7 и получим 12, а в третьем столбце должен вывести только 9 , так как складывать с 4 нельзя она четная. А в первом столбце если не будет отрицательных чисел как на примере, то программ должна выводить ноль.

Вот что должно получится

Исходная матрица:
2 -7 -9
4 -5 -4
7 6 3

Сумма отрицательных нечетных элементов
0 12 9

Но это я на примере сделал, вообще можно ввести любые цифры и чтобы он также все определял.

Я вот начал делать, а как сами преобразования делать запутался:

Код:
program matrix;       
var
w:array [1..20,1..20] of real;    
n,i,m,j:integer;
q:real;
begin                                    
     writeln('Напишите кол. строк');
     readln(n);
     writeln('Напишите кол столбцов');
     readln(m);
       for i:=1 to n do
       for j:=1 to m do
       begin
            writeln('w[',i,',',j,']');
            readln(w[i,j]);
       end;                               
       writeln;
       writeln('Исходная матрица');
       for i:=1 to n do
       begin                             
       for j:=1 to m do
       write(w[i,j]:3:0);
       writeln;
       end;                             
       writeln;
       writeln('Сумма модулей всех отриц. нечетных элементов');
        for j:=1 to m do begin            
        for i:=1 to n do
               w[i,j]:=-1*w[i,j];       {не работает}
               
               {if w[i,j]<0 then begin
               w[i,j]:=q+w[i,j];
               end
               else w[i,j]:=0;}             

        write(w[i,j]:3:0);
        end;
        writeln;
end.
sancheszone вне форума Ответить с цитированием
Старый 25.10.2009, 13:38   #2
Lawless
Пользователь
 
Аватар для Lawless
 
Регистрация: 02.05.2009
Сообщений: 13
По умолчанию

s: integer // summa
Код:
for i:= 1 to n do
Begin
 for j:= 1 to n do
  if (a[j,i] < 0) and (a[j,i] mod 2 <> 0) then
  begin
    a[j,i]:= -1*a[j,i];
    s:= s + a[j,i];
  end;
 writeln(s);
 s:= 0;
end;
Не всё так сложно, как кажется...
Помог - ставь плюсег

Последний раз редактировалось Lawless; 25.10.2009 в 13:55.
Lawless вне форума Ответить с цитированием
Старый 25.10.2009, 14:50   #3
sancheszone
Пользователь
 
Аватар для sancheszone
 
Регистрация: 11.10.2009
Сообщений: 14
По умолчанию

c mod ошибку выдает, но за идею спасиба) Как тут плюсик поставить тебе можно? Типо отзыв?
sancheszone вне форума Ответить с цитированием
Старый 25.10.2009, 15:03   #4
Lawless
Пользователь
 
Аватар для Lawless
 
Регистрация: 02.05.2009
Сообщений: 13
По умолчанию

Цитата:
Сообщение от sancheszone Посмотреть сообщение
c mod ошибку выдает, но за идею спасиба) Как тут плюсик поставить тебе можно? Типо отзыв?
с mod выдаёт ошибку, потому что у вас тип - real, а mod используеться только для Integer'a.
П.С да что бы поставить плюсик - жмите отзыв
Не всё так сложно, как кажется...
Помог - ставь плюсег
Lawless вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно сделать E-книгу ($) nightbloos Фриланс 13 05.10.2009 10:04
[Делфи] Как сделать чтобы символ много раз повторялся (без массивов) zotox Помощь студентам 4 01.05.2009 22:10
нужно сделать справку Aboltus Общие вопросы Delphi 1 28.07.2008 18:31