На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
В этом разделе можно создавать темы, которые относятся к поколению 32-битных компиляторов.
Здесь решаются вопросы портирования кода из старого доброго Турбо Паскаля в FPC, TMT, VP, GPC компиляторы, а также особенностей программирования на них для Windows/Linux и других ОС.
Указывайте тип компилятора, его версию, а также платформу (Windows/Linux/..) компиляции, другими словами, Target.
Модераторы: volvo877
  
> Подпрограмма что формирует массив , задача
    Подскажите как решить задачу. Подпрограмма формирует массив и считает элементы главной диагонали матрицы.
      И что потом с массивом? Передавать его в вызывающую программу? Что должна вернуть подпрограмма? Зачем считать
      Цитата ArniLand @
      элементы главной диагонали матрицы
      , что потом с этим "счетом" делать? Откуда вообще взялась матрица, если был массив?

      Ты задачу-то нормально поставь...
        1) процедура заполнение матрицы размерностью n * n (кстати матрицу возьми квадратнои..в теории прямоугольных матриц вроде тоже есть главные диагонали, но чтобы не рисковать...)
        2) процедура печати матрицы
        3) функция, возвращающая элементы главнои диагонали (формула для элементов главнои диагонали: if(i = j) then)

        P.S. у меня нет ни одного компилятора под 32 бита, а код на TP 7.0. вдруг не проидет....

        Добавлено
        Цитата volvo877 @
        Ты задачу-то нормально поставь...

        +1

        более детально условие....
        Сообщение отредактировано: FasterHarder -
          Цитата FasterHarder @
          процедура заполнение матрицы размерностью n * n
          Блин... Ты опять бред пишешь? С какого перепуга процедура? С какого перепуга N*N?
          Цитата FasterHarder @
          у меня нет ни одного компилятора под 32 бита
          В таком случае скрой этот раздел, и больше сюда не заходи >:( У меня тоже нет ни одного компилятора Пролога, я ж не даю свои советы в том разделе... И в Java тоже не захожу, ибо ее у меня тоже нет...
            Цитата volvo877 @
            если был массив

            массив кстати не значит одномерныи массив...двумерныи тоже является массивом...!...
            матрица, это уже конечно двумерныи имеется ввиду, значит под массивом ТС понимал изначально двумерныи массив...

            Цитата volvo877 @
            С какого перепуга процедура?

            а зачем функциеи заполнять массив!!...для чего придуманы var - параметры!...

            Цитата volvo877 @
            С какого перепуга N*N?

            уверен на 99% (можете считать меня телепатом), что ему нужна именно квадратная матрица, а ее размерность N * N...

            Цитата volvo877 @
            В таком случае скрой этот раздел, и больше сюда не заходи

            ну если поставите R / O, тогда точно не заиду, а так иногда буду заглядывать!....

            у ТС стоит простая задача, которую нужно решить с помощью подпрограмм (из школы или ВУЗа задачка), поэтому я и разбил на подпрограммы...
              volvo877,
              Двухмерный массив нужно сформировать в процедуре, передать его в функцию и там подсчитать элементы главной диагонали. Затем вернуть подсчитаное значение в основную программу.
              Есть ли где то решение аналогичных задач?
              Сообщение отредактировано: ArniLand -
                мда.. <_< <_< <_<
                  FasterHarder, а более подробный ответ, можно?
                    ExpandedWrap disabled
                      program Array2D;
                       
                      const
                        MaxDimention = 10;
                       
                      type
                        TElementType = Integer;
                        T2DimentionArray = array[1..MaxDimention, 1..MaxDimention] of TElementType;
                       
                      function MainDiagElementsSum(const Arr: T2DimentionArray; Dim1, Dim2: Integer): TElementType;
                      var
                        I: Integer;
                        Res: TElementType;
                      begin
                        if (Dim1 > Dim2) then
                          Dim1 := Dim2;
                        if (Dim1 > MaxDimention) then
                          Dim1 := MaxDimention;
                        Res := 0;
                        for I := 1 to Dim1 do
                          Res := Res + Arr[I, I];
                        MainDiagElementsSum := Res;
                      end;
                       
                      procedure Fill2DimArray(var Arr: T2DimentionArray; Dim1, Dim2: Integer);
                      var
                        I, J: Integer;
                      begin
                        if (Dim1 > MaxDimention) then
                          Dim1 := MaxDimention;
                        if (Dim2 > MaxDimention) then
                          Dim2 := MaxDimention;
                        for I := 1 to Dim1 do
                          for J := 1 to Dim2 do
                            Arr[I, J] := Random(100);
                      end;
                       
                      procedure PrintArray(const Arr: T2DimentionArray; Dim1, Dim2: Integer);
                      avr
                        I, J: Integer;
                      begin
                        if (Dim1 > MaxDimention) then
                          Dim1 := MaxDimention;
                        if (Dim2 > MaxDimention) then
                          Dim2 := MaxDimention;
                        for I := 1 to Dim1 do
                        begin
                          for J := 1 to Dim2 do
                            Write(Arr[I, J]:5);
                          Writeln;
                        end;
                      end;
                       
                      var
                        MyArr: T2DimentionArray;
                        Dim1, Dim2: Integer;
                      begin
                        Randomize;
                        Write('Razmernosti: ');
                        Readln(Dim1, Dim2);
                        Fill2DimArray(MyArr, Dim1, Dim2);
                        Writeln('Zapolnen masiv takim obrazom: ');
                        PrintArray(MyArr, Dim1, Dim2);
                        Writeln('Summa elemntov ego glavnoi diagonali = ', MainDiagElementsSum(MyArr, Dim1, Dim2));
                        Readln;
                      end.

                    Так пойдет? :)
                    1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                    0 пользователей:


                    Рейтинг@Mail.ru
                    [ Script execution time: 0,0338 ]   [ 15 queries used ]   [ Generated: 14.05.24, 12:07 GMT ]