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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2009, 09:00   #1
poad_hok
 
Регистрация: 27.05.2009
Сообщений: 3
По умолчанию Процедуры и функции, двумерные массивы. (QBasic)

Даны три матрицы:

Решить уравнение px^2+qx+r=0, где p,q,r - соответственно суммы элементов матриц A, B, C. Вычисление суммы элементов матрицы оформить в виде подпрограммы.

Вобщем никак не знаю как сделать подпрограмму.. в ней постоянно выскакивало сообщение "массив определён"

мой вариант без подпрограммы:
Код:
CLS
p = 0
q = 0
r = 0
DIM a(2, 2)
DIM B(2, 2)
DIM C(3, 3)
DATA 2.1, 3.2, 4.5, -2.7
DATA 3.1, 5.7, 8.9, 3.4
DATA 3.2, 5.7, -9.4, 4.5, 8.7, 13.2, 9.1, -7.3, 12.4

FOR k = 1 TO 2
   FOR l = 1 TO 2
   READ a(k, l)
   p = p + a(k, l)
   NEXT l
NEXT k

FOR k = 1 TO 2
   FOR l = 1 TO 2
   READ B(k, l)
   q = q + B(k, l)
   NEXT l
NEXT k

FOR k = 1 TO 3
   FOR l = 1 TO 3
   READ C(k, l)
   r = r + C(k, l)
NEXT l
NEXT k

D = q ^ 2 - 4 * p * r
   IF D >= 0 THEN
   x1 = (-q + SQR(D)) / (2 * p)
   x2 = (-q - SQR(D)) / (2 * p)
   PRINT "x1 = "; x1
   PRINT "x2 = "; x2
      ELSE
      PRINT "korney net"
   END IF

Последний раз редактировалось poad_hok; 27.05.2009 в 18:20.
poad_hok вне форума Ответить с цитированием
Старый 27.05.2009, 18:48   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Код:
DECLARE FUNCTION sum! (mas(), m, n)

CLS
DIM A(2, 2)
DIM B(2, 2)
DIM C(3, 3)
DATA 2.1, 3.2, 4.5, -2.7
DATA 3.1, 5.7, 8.9, 3.4
DATA 3.2, 5.7, -9.4, 4.5, 8.7, 13.2, 9.1, -7.3, 12.4

FOR k = 1 TO 2
   FOR l = 1 TO 2
   READ A(k, l)
   PRINT USING "####"; A(k, l);
   NEXT l
 PRINT
NEXT k

PRINT "sum = "; sum(A(), 2, 2)
PRINT

FOR k = 1 TO 2
   FOR l = 1 TO 2
   READ B(k, l)
   PRINT USING "####"; B(k, l);
   NEXT l
  PRINT
NEXT k
PRINT "sum = "; sum(B(), 2, 2)
PRINT

FOR k = 1 TO 3
   FOR l = 1 TO 3
   READ C(k, l)
   PRINT USING "####"; C(k, l);
NEXT l
 PRINT
NEXT k
PRINT "sum = "; sum(C(), 3, 3)
PRINT

END

FUNCTION sum (mas(), m, n)
DIM i AS INTEGER
DIM j AS INTEGER
DIM rez AS INTEGER
rez = 0
FOR i = 1 TO m
 FOR j = 1 TO n
  rez = rez + mas(i, j)
 NEXT j
 NEXT i
sum = rez
END FUNCTION
ps Это просто выводит суммы. Думаю, остальное допишете.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]

Последний раз редактировалось Sazary; 27.05.2009 в 19:00.
Sazary вне форума Ответить с цитированием
Старый 27.05.2009, 18:59   #3
poad_hok
 
Регистрация: 27.05.2009
Сообщений: 3
По умолчанию

премного благодарен
poad_hok вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[QBasic|Pascal] двумерные массивы PBJack Помощь студентам 5 06.12.2011 20:39
Массивы, процедуры/функции Вампирёк Помощь студентам 1 16.03.2009 10:15
Двумерные массивы katia230990 Помощь студентам 2 10.05.2008 00:58
C++ Двумерные массивы АНЮТКА555 Помощь студентам 1 10.12.2007 12:42