OberonCore
https://forum.oberoncore.ru/

Задача, преобразовать матрицу 5x5 в 4x4
https://forum.oberoncore.ru/viewtopic.php?f=35&t=4913
Страница 1 из 1

Автор:  bill [ Четверг, 02 Январь, 2014 11:10 ]
Заголовок сообщения:  Задача, преобразовать матрицу 5x5 в 4x4

Эта задача часть предыдушей большой задачи.
Могу сказать что решил задачу, но я решил ее силой, перебирая вручную все возможные варианты, я наивно предпологал что задача имеет 10 возможных вариантов развития событий, я вручную создал обработку этим 10 вариантам, пока не выяснилось что их больше намного больше, пока не считал, я бы мог вручную перебрать все возможные пути, толька задаюсь вопросом а как можна это автаматизировать?

Дана матрица 5x5, нада на ее основе создать матрицу 4x4.
Если StrokaXStolbec='1x1' то удаляем 1 строку и 1й столбец из матрицы 5x5, из оставшихся элементов построить матрицу 4x4.
Если StrokaXStolbec='1x2' то удаляем 1 строку и 2й столбец из матрицы 5x5, из оставшихся элементов построить матрицу 4x4.
Вот так вручную, я перебрал 10 случаев.
Код:
MODULE XmatemKurosh0;

   IMPORT StdLog;

   PROCEDURE Do*;
   VAR
   a1,  a2,  a3,  a4,  a5:REAL;
   b1,  b2,  b3,  b4,  b5:REAL;
   c1,  c2,  c3,  c4,  c5:REAL;
   d1,  d2,  d3,  d4,  d5:REAL;
   e1,  e2,  e3,  e4,  e5:REAL;
   
   StrokaXStolbec: ARRAY 64 OF CHAR;
   
   BEGIN
      a1:=-2; a2:=5;  a3:=0;  a4:=-1; a5:=3;
      b1:=1;  b2:=0;  b3:=3;  b4:=7;  b5:=-2;
      c1:=3;  c2:=-1; c3:=0;  c4:=5;  c5:=-5;
      d1:=2;  d2:=6;  d3:=-4; d4:=1;  d5:=2;
      e1:=0;  e2:=-3; e3:=-1; e4:=2;  e5:=3;
      
      IF StrokaXStolbec='1x1'  THEN
         a1:=b2;  a2:=b3;  a3:=b4;  a4:=b5;
         b1:=c2;  b2:=c3;  b3:=c4;  b4:=c5;
         c1:=d2;  c2:=d3;  c3:=d4;  c4:=d5;
         d1:=e2;  d2:=e3;  d3:=e4;  d4:=e5;
      END;
      
      IF StrokaXStolbec='1x2'  THEN
         a1:=b2;  a2:=b3;  a3:=b4;  a4:=b5;
         b1:=c2;  b2:=c3;  b3:=c4;  b4:=c5;
         c1:=d2;  c2:=d3;  c3:=d4;  c4:=d5;
         d1:=e2;  d2:=e3;  d3:=e4;  d4:=e5;
      END;

      (*StdLog.String("Hello World"); StdLog.Ln*)
   END Do;

END XmatemKurosh0.

Автор:  bill [ Пятница, 17 Январь, 2014 19:07 ]
Заголовок сообщения:  Re: Задача, преобразовать матрицу 5x5 в 4x4

Написано в лазарусе(FPC) "massiv_type = array[0..3] of real;" необходимо перевести это в BB(CP), я решаю примеры по математики так я тренируюсь.

Автор:  bill [ Суббота, 18 Январь, 2014 15:17 ]
Заголовок сообщения:  Re: Задача, преобразовать матрицу 5x5 в 4x4

bill писал(а):
Написано в лазарусе(FPC) "massiv_type = array[0..3] of real;" необходимо перевести это в BB(CP), я решаю примеры по математики так я тренируюсь.

Я сам нашел ответ на свой вопрос для наглядности приведу пример
Код:
MODULE XmatemGaus0;

   IMPORT StdLog;

      TYPE
      
   STRING  = ARRAY 256 OF CHAR;   
   massiv_type  = ARRAY 4 OF REAL;
   
   PROCEDURE Do*;
   VAR
   a:massiv_type;
    b:massiv_type;
    c:massiv_type;

   str1_X_2:massiv_type;
    res:STRING;
    x,y,z:REAL;

   BEGIN
   
      a[0]:=4;   a[1]:=2;   a[2]:=-1;  a[3]:=1;
      b[0]:=5;   b[1]:=3;   b[2]:=-2;  b[3]:=2;
      c[0]:=3;   c[1]:=2;   c[2]:=-3;  c[3]:=0;

   
   END Do;

END XmatemGaus0.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/