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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.10.2012, 13:22   #1
Катерина Рыжая
Пользователь
 
Регистрация: 27.10.2012
Сообщений: 14
По умолчанию Подпрограммы

Даны матрицы А(5х4),В(5х5),С(3х7). Найти значение выражения Ра+2Рb+Pc, где Ра,Рb,Рс- произведение положительных элементов матрицы, не лежащих на главной диагонали.
Катерина Рыжая вне форума Ответить с цитированием
Старый 27.10.2012, 13:36   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

И Вам здравствуйте

Код:
var i,j: integer;
               p1,p2,p3: real;
               a: array [1..5,1..4] of real;
               b: array [1..5,1..5] of real;
               c: array [1..3,1..7] of real;
begin
  p1:=1; p2:=1; p3:=1;
  for i:=1 to 5 do
    for j:=1 to 4 do
      if (i<>j) and (a[i,j]>0) then p1:=p1*a[i,j];
  for i:=1 to 5 do
    for j:=1 to 5 do
      if (i<>j) and (b[i,j]>0) then p2:=p2*b[i,j];
  for i:=1 to 3 do
    for j:=1 to 7 do
      if (i<>j) and (c[i,j]>0) then p3:=p3*c[i,j];
  WriteLn(p1+2*p2+p3);
  ReadLn;
end;
Ввод массивов сделайте сами. Хотите - константами задайте, хотите - вводом с клавиатуры.

Надеюсь, что я правильно понял про главную диагональ, так как 2 из 3 матриц не квадратные...
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 27.10.2012, 13:41   #3
Катерина Рыжая
Пользователь
 
Регистрация: 27.10.2012
Сообщений: 14
По умолчанию

Большое спасибо) не совсем понимаю, мне делать 3 разных процедуры ввода и затем 3 разные функции для расчета р, так?)
Катерина Рыжая вне форума Ответить с цитированием
Старый 27.10.2012, 13:58   #4
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Пардон, у Вас же в теме сказано "Подпрограммы", поэтому можете этот код выбросить.

Вот Вам другой, с процедурами и функциями:

Код:
var p: real;
               a: array [1..5,1..4] of real;
               b: array [1..5,1..5] of real;
               c: array [1..3,1..7] of real;

procedure Vvod;               {ввод массивов}
var i,j: integer;
begin
  WriteLn('Vvod massiva a: ');
  for i:=1 to 5 do
    for j:=1 to 4 do ReadLn(a[i,j]);
  WriteLn('Vvod massiva b: ');
  for i:=1 to 5 do
    for j:=1 to 5 do ReadLn(b[i,j]);
  WriteLn('Vvod massiva c: ');
  for i:=1 to 3 do
    for j:=1 to 7 do ReadLn(c[i,j]);
  readLn;
end;

function Pa: real;             {произведение а}
var i,j: integer;
begin
  Pa:=1;
  for i:=1 to 5 do
    for j:=1 to 4 do 
      if (i<>j) and (a[i,j]>0) then Pa:=Pa*a[i,j];
end;

function Pb: real;         {произведение b}
var i,j: integer;
begin
  Pb:=1;
  for i:=1 to 5 do
    for j:=1 to 5 do 
      if (i<>j) and (b[i,j]>0) then Pb:=Pb*b[i,j];
end;

function Pc: real;        {произведение массива с}
var i,j: integer;
begin
  Pc:=1;
  for i:=1 to 3 do
    for j:=1 to 7 do 
      if (i<>j) and (c[i,j]>0) then Pc:=Pc*c[i,j];
end;

begin        {основная прога}
  vvod;
  p:=Pa+2*Pb+Pc;
  WriteLn(p:5:2);
  ReadLn;
end.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 27.10.2012, 15:30   #5
Катерина Рыжая
Пользователь
 
Регистрация: 27.10.2012
Сообщений: 14
По умолчанию

Еще раз спасибо, процедуру вывода не надо делать?
Катерина Рыжая вне форума Ответить с цитированием
Старый 27.10.2012, 15:49   #6
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

А чего там делать, там одна строчка:

Код:
  WriteLn(p:5:2);
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подпрограммы DrDre9991 Паскаль, Turbo Pascal, PascalABC.NET 1 11.10.2010 15:26
Подпрограммы peter065 Паскаль, Turbo Pascal, PascalABC.NET 3 10.09.2010 13:54
Подпрограммы-процедуры, подпрограммы-функции в Pascal rishikesh Помощь студентам 19 18.05.2010 23:05