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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2012, 00:13   #1
(Нафаня)
Пользователь
 
Аватар для (Нафаня)
 
Регистрация: 08.03.2011
Сообщений: 56
Восклицание Найти скалярное произведение i строки на i столбец элементы матрицы зада по след правилу

если i>j то a[i,j]:=1
если i=j то a[i,j]:=0
если i<j то a[i,j]:=j
Проверьте пожалуйста код, а то мне кажется он работает не правильно(
Код:
program nom26;

{$APPTYPE CONSOLE}

uses
  SysUtils;

const
  n=4;
type
  telem=integer;
  matr=array [1..n,1..n] of telem;
procedure vvod(var a:matr);
var
  i,j:telem;
begin
  for i:=1 to n do
   for j:=1 to n do
     if i>j then a[i,j]:=1
       else if i=j then a[i,j]:=0
         else if i<j then a[i,j]:=j;
  for i:=1 to n do
    begin
      for j:=1 to n do
        write(a[i,j]);
        writeln;
    end;
end;
procedure skalyar(a:matr);
var
  i,j,pr:telem;
begin
  pr:=0;
  for i:=1 to n do
    for j:=1 to n do
       if i=j then pr:=pr+a[i,j]*a[i,j];
  writeln('Skal proizv i stroki na i stolb = ',pr);
end;
var
  a:matr;
begin
  vvod(a);
  skalyar(a);
  readln;
end.
Если бы люди,вдруг,узнали,о чем я думаю... Со мной бы сначала перестали здороваться,а потом,вообще,на костре сожгли бы нафиг
(Нафаня) вне форума Ответить с цитированием
Старый 07.06.2012, 00:21   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Код:
program nom26;

{$APPTYPE CONSOLE}

uses
  SysUtils;

const
  n = 4;

type
  matr = array [1..n, 1..n] of integer;

procedure vvod(var a: matr);
var
  i, j: integer;
begin
  for i := 1 to n do
    for j := 1 to n do
      if i > j then a[i, j] := 1
      else if i < j then a[i, j] := j
      else a[i, j] := 0;
  for i := 1 to n do
  begin
    for j := 1 to n do
      write(a[i, j]);
    writeln;
  end;
end;

procedure skalyar(a: matr);
var
  i, j, pr: integer;
begin
  for i := 1 to n do
  begin
    pr := 0;
    for j := 1 to n do
      pr := pr + a[i, j] * a[j, i];
    writeln('Skal proizv ', i, ' stroki na ', i, ' stolb = ', pr);
  end;
end;

var
  a: matr;

begin
  vvod(a);
  skalyar(a);
  readln;
end.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 07.06.2012, 00:38   #3
(Нафаня)
Пользователь
 
Аватар для (Нафаня)
 
Регистрация: 08.03.2011
Сообщений: 56
По умолчанию

Спасибо) вы снова мне помогли)
Если бы люди,вдруг,узнали,о чем я думаю... Со мной бы сначала перестали здороваться,а потом,вообще,на костре сожгли бы нафиг
(Нафаня) вне форума Ответить с цитированием
Старый 07.06.2012, 00:41   #4
(Нафаня)
Пользователь
 
Аватар для (Нафаня)
 
Регистрация: 08.03.2011
Сообщений: 56
По умолчанию

Т.е. здесь считает все скалю произ-я, а потом просто нужные печатает? Я правильно поняла?
Если бы люди,вдруг,узнали,о чем я думаю... Со мной бы сначала перестали здороваться,а потом,вообще,на костре сожгли бы нафиг
(Нафаня) вне форума Ответить с цитированием
Старый 07.06.2012, 00:46   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

По-моему, не совсем правильно.
Программа считает скалярные произведения i столбца на i строку для i от 1 до n.
Тут нету всех скалярных произведений и нужных.
Внешний цикл перебирает строки.
Внутренний умножает i строку на i столбец скалярно.
Затем печатается получившееся число, и так для каждой строки, т.е. n раз.

В вашем коде считается сумма квадратов чисел, расположенных на главной диагонали.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 07.06.2012, 13:49   #6
(Нафаня)
Пользователь
 
Аватар для (Нафаня)
 
Регистрация: 08.03.2011
Сообщений: 56
По умолчанию

А, теперь понятно) спасибо)
Если бы люди,вдруг,узнали,о чем я думаю... Со мной бы сначала перестали здороваться,а потом,вообще,на костре сожгли бы нафиг
(Нафаня) вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
скалярное произведение строки с наибольшим элементом на столбец с наименьшим элементом Adika Помощь студентам 4 03.11.2011 19:12
скалярное произведение tilperion777 Паскаль, Turbo Pascal, PascalABC.NET 0 11.04.2010 16:13
скалярное произведение строки с наибольшим элементом и столбца с наименьшим элементом katya36 Помощь студентам 15 20.12.2008 17:48
Если все элементы матрицы четные, вычислить их произведение. Misho0k Паскаль, Turbo Pascal, PascalABC.NET 7 20.05.2008 22:51