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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.03.2014, 11:03   #11
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Тогда еще вопрос.. Если мы выводим числа, то о каком преобразовании идет речь?
Poma][a вне форума Ответить с цитированием
Старый 28.03.2014, 11:20   #12
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

функция, которая возвращает True, если в матрице отрицательных значений больше, чем положительных:

Код:
program Matrica;
uses crt;
type arr=array[1..6,1..6] of integer;
     vector=array[1..6] of integer;

function isNegativeMore(X:arr):boolean;
var i,j,cntNeg, cntPos :integer;
begin
  cntNeg := 0;
  cntPos := 0;
  for i:=1 to 6 do
    for j:=1 to 6 do
      if X[i,j]<0 then inc(cntNeg)
      else       
        if X[i,j]>0 then inc(cntPos)
   isNegativeMore :=  cntNeg > cntPos;
end;


....
применять так:
var A,B:arr;
    i,j,s:integer;

if  isNegativeMore(A) then ВыполнитьДействие(A);

if  isNegativeMore(B) then ВыполнитьДействие(B);
есть вопросы?..
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.03.2014, 11:28   #13
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Мой вариант..
Код:
const
    n = 6; m = 6;

type 
    TArr = array [1..6] of Integer;
    TMatrix = array [1..6] of TArr;

procedure InitMatrix(var a : TMatrix);
var
    i, j : Integer;

begin
    for i := 1 to n do
        for j := 1 to m do
            a[i, j] := Random(101)-50
end;

procedure PrintMatrix(const a : TMatrix);
var
    i, j : Integer;

begin
    for i := 1 to n do begin
        for j := 1 to m do
            Write(a[i, j] : 5);
        WriteLn
    end;
    WriteLn
end;


function CountOfNegative(const a : TMatrix) : Integer;
var
    i, j, cnt : Integer;
begin
    cnt := 0;
    for i := 1 to n do
        for j := 1 to m do
            if a[i, j] < 0 then
                Inc(cnt);

    CountOfNegative := cnt
end;

procedure PrintSum(const a : TMatrix);
function Sum(const a : TArr) : Integer;
var
    s, i : Integer;
begin
    s := 0;
    for i := 1 to n do
        Inc(s, a[i]);
    Sum := s
end;

var
    i : Integer;
begin
    for i := 1 to n do
        WriteLn(Sum(a[i]))
end;

var
    a, b : TMatrix;

begin
    Randomize;
    InitMatrix(a); PrintMatrix(a);
    InitMatrix(b); PrintMatrix(b);

    if CountOfNegative(a) > CountOfNegative(b) then begin
        WriteLn('1'); PrintSum(a)
    end
    else if CountOfNegative(a) < CountOfNegative(b) then begin
        WriteLn('2'); PrintSum(b)
    end
    else WriteLn('Кол-во отрицательных чисел одинаково в обеих матрицах.. печалька :(')       
end.

Последний раз редактировалось Poma][a; 28.03.2014 в 11:50.
Poma][a вне форума Ответить с цитированием
Старый 28.03.2014, 11:39   #14
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Poma][a Посмотреть сообщение
Мой вариант..
ну вот, теперь у TC два РАЗНЫХ варианта (отличающихся в корне, ибо решают разные задачи), теперь можно выбрать вариант, который устраивает...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.03.2014, 13:22   #15
Maxim80
Пользователь
 
Регистрация: 27.03.2014
Сообщений: 11
По умолчанию

Спасибо всем! Буду разбираться...
Maxim80 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дана матрица А(nxn). Написать программу, которая меняет к-ю и m-ю строки матрицы. (Паскаль) nzltv Помощь студентам 1 04.12.2013 03:40
Даны две матрицы размером 3x3. Написать программу получения коммутатора АВ-ВА и антикоммутатора АВ+ВА этих матриц. Vergilloo Паскаль, Turbo Pascal, PascalABC.NET 4 15.06.2012 10:53
Заданы две матрицы casper116 Помощь студентам 2 05.01.2011 23:56
Заданы две матрицы A3х3 и B4х4. Построить таблицу функций y=cx2+d при x є [0; 1] с шагом ∆х=0,1 moto74 Паскаль, Turbo Pascal, PascalABC.NET 17 06.04.2009 17:13