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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.02.2012, 17:59   #1
Julichka1k
Пользователь
 
Регистрация: 17.12.2011
Сообщений: 30
По умолчанию задача на паскаль с использованием подпрограмм

Вычислить суммы элементов расположенных ниже главной диагонали для матриц: А(10,10), В(8,8), D(12,12). (рекомендуемый тип и метод решения ПРОЦЕДУРА)

!Помогите с кодом и блок схемой!
Julichka1k вне форума Ответить с цитированием
Старый 06.02.2012, 18:50   #2
Julichka1k
Пользователь
 
Регистрация: 17.12.2011
Сообщений: 30
По умолчанию

program TwoSums;
uses Crt;
var A: array[1..10, 1..10] of Real;
S1, S2: Real; { S1, S2 - суммы элементов, расположенных ниже
и выше главной диагонали, соответственно}
N, i, j: Integer;
{--------------------------------------------}
procedure InputOutput;
begin {описание процедуры ввода-вывода исходных данных}
ClrScr;
Write('Количество строк и столбцов - '); ReadLn(N);
for i := 1 to N do {Ввод матрицы}
for j := 1 to N do
begin Write('A[', i, ', ', j, '] = ? ');
ReadLn(A[i, j])
end; WriteLn;
ClrScr; WriteLn(' Матрица А');
for i := 1 to N do {Вывод матрицы}
begin
for j := 1 to N do Write(A[i, j]: 5: 1);
WriteLn
end; WriteLn
end; { of InputOutput }
{--------------------------------------------}
procedure Under;
begin {описание процедуры суммирования элементов, }
S1 := 0; {расположенных ниже главной диагонали }
for i := 2 to N do
for j := 1 to i - 1 do
S1 := S1 + A[i, j];
WriteLn('О т в е т :');
WriteLn('Сумма элементов, лежащих ниже главной диагонали =', S1: 5: 1);
end;

исправте что не так?
Julichka1k вне форума Ответить с цитированием
Старый 06.02.2012, 19:47   #3
whatever
a.k.a. Skull
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 963
По умолчанию

Код:
type
  matrix=array[1..12, 1..12] of Real;
{--------------------------------------------}
procedure InputOutput(n:integer; var A:matrix);
  var
    i,j:integer;
  begin {описание процедуры ввода-вывода исходных данных}
//    ReadLn(N);
    for i := 1 to N do {Ввод матрицы}
      for j := 1 to N do
        begin
          Write('A[', i, ', ', j, '] = ? ');    //(1)когда надоест писать вручную
      //    A[i,j]:=random(10);                  //(2)убираешь комментарий в строчке (2), то есть здесь
          ReadLn(A[i, j])                       //(3)и коментируешь строчки (3) и (1)
        end; WriteLn;
    WriteLn(' Матрица А');
    for i := 1 to N do {Вывод матрицы}
      begin
        for j := 1 to N do Write(A[i, j]: 5: 1);
        WriteLn
      end;
    WriteLn
  end; { of InputOutput }

{--------------------------------------------}
procedure Under(A:matrix; N:integer; var S1:real);
  var
    i,j:integer;
  begin {описание процедуры суммирования элементов, }
    S1 := 0; {расположенных ниже главной диагонали }
    for i := 2 to N do
      for j := 1 to i - 1 do
        S1 := S1 + A[i, j];
    WriteLn('О т в е т :');
    WriteLn('Сумма элементов, лежащих ниже главной диагонали =', S1: 5: 1);
    writeln;
  end;

{--------------------------------------------}
var
  A,B,D:matrix;
  S1,S2,S3: Real; //Сумма элементов ВЫШЕ главной диагонали по заданию не нужна, по этому S2 и S3 для матриц B & D
  //N: Integer;

BEGIN
  //Вычислить суммы элементов расположенных ниже главной диагонали для матриц: А(10,10), В(8,8), D(12,12).
{  Write('Количество строк и столбцов матрицы A - ');
  readln(N);                }//Не вижу смысла спрашивать, в задании все есть.
  InputOutput(10,A);
  Under(A,10,S1);
  InputOutput(8,B);
  Under(B,8,S2);
  InputOutput(12,D);
  Under(D,12,S3);
  readln
END.
Еще мысли вслух: Если сумму элементов, расположенных ниже главной диагонали нужно только вывести на экран, то S1,S2,S3 не имеют смысла, стоит убрать S1 из объявления процедуры и записать его в var этой процедуры.
Если же предполагается дальнейшая работа с этим числом, то лучше оставить как есть.
Все тривиальное просто

Последний раз редактировалось whatever; 06.02.2012 в 19:57.
whatever вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача на паскаль с использованием подпрограмм Julichka1k Помощь студентам 1 05.02.2012 20:17
Проблема с использованием подпрограмм в Pascal Dimani4 Помощь студентам 4 01.12.2010 10:06
Программа с использованием подпрограмм и макросов Freezy Помощь студентам 0 05.11.2010 15:16
Программирование с использованием подпрограмм. Александр181189 Паскаль, Turbo Pascal, PascalABC.NET 0 14.06.2010 17:13