Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Ответ
 
Опции темы
Старый 23.03.2009, 02:18   #1
bpystep
Форумчанин
 
Регистрация: 25.02.2009
Адрес: Питер
Сообщений: 180
Репутация: 18

icq: 428039307
По умолчанию Преобразование матриц

народ подскажите что неправильно

Задание:
Для заданной матрицы размером 8 на 8 найти такие k,
что k-я строка матрицы совпадает с k-м столбцом
( оформить в виде процедуры ).
Найти сумму эл-тов в тех строках, которые содержат хотя бы
один отрицательный эл-т ( оформить в виде функции );

Код:

program lab_1;
uses crt;

const n=8;
type
 matr = array[1..n,1..n] of integer;
 matrtr = array[1..n,1..n] of integer;
 
{формирование матрицы}
procedure formir(var a:matr;k:integer);
var
 i,j:integer;
begin
 randomize; {включаем генератор случайных чисел}
 for i:=1 to k do {генерируем матрицу}
  for j:=1 to k do
   a[i,j]:=Random(20)-10;
end;

{вывод матрицы}
procedure vivod(a:matr;k:integer);
var
 i,j:integer;
begin
 for i:=1 to k do
  begin
   for j:=1 to k do
    write(a[i,j]:4);
   writeln;
  end;
end;

procedure trans(var a:matr;b:matrtr);
var
i,j,k,p:integer;
begin
p:=0;k:=0;
for i := 1 To n do
for j := 1 To n do
a[i,j] :=b[j,i];
for i:=1 to n do begin
    for j:=1 to n do
        if  (a[i,j]=a[j,i]) then inc(p);
 if p=n then inc(k);
end;
writeln('количество k-ых строк матрицы, которые совпадает с k-м столбцом = ', k);
end;

function kolvo(a:matr):integer;
var
 i,j,s:integer;
begin
s:=0;
for i:=1 to n do
 for j:=1 to n do
        if (a[i,j]<0) then
           for j:=1 to n do
               s:=s+a[i,j];
writeln('Сумма элементов строки содержащей хотя бы один отрицательный элемент = ',s);
end;
var
 a:matr;
 b:matrtr;
 i:integer;
begin
 clrscr;
 formir(a,n);
 writeln('Квадратная матрица: ');
 vivod(a,n);
 trans(a,b);
 kolvo(a);
end.

Ответы выдаёт неправильные.

Последний раз редактировалось bpystep; 23.03.2009 в 13:00.
bpystep вне форума   Ответить с цитированием
Старый 23.03.2009, 10:29   #2
Stilet
Белик Виталий :)
Профессионал
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Адрес: Украина, Донецкая область, г. Краматорск
Сообщений: 57,842
Репутация: 6832
По умолчанию

Цитата:
Для заданной матрицы размером 8 на 8 найти такие k,
что k-я строка матрицы совпадает с k-м столбцом
Хм. Я лично так это вижу:
Код:

procedure trans(var a:matr;b:matrtr);
var
i,j,k,p:integer;
begin
p:=0;
for i:=1 to n do
    for j:=1 to n do
        if  (a[i,j]=a[j,i]) then inc(p);
writeln('количество k-ых строк матрицы, которые совпадает с k-м столбцом = ', p);
end;

Stilet вне форума   Ответить с цитированием
Старый 23.03.2009, 12:12   #3
bpystep
Форумчанин
 
Регистрация: 25.02.2009
Адрес: Питер
Сообщений: 180
Репутация: 18

icq: 428039307
По умолчанию

Я тоже так пытался делать, но ответ паскаль выдаёт всегда разный, и даже если нет одинаковых строк со столбцами, паскаль выдал мне ответ 10. хотя максимум сколько он может выдать, это 8, по логике то вещей.

З.Ы. со вторым пунктом я разобрался
bpystep вне форума   Ответить с цитированием
Старый 23.03.2009, 12:40   #4
razzmatazz
Новичок
 
Регистрация: 21.03.2009
Сообщений: 2
Репутация: 10
По умолчанию

Цитата:
if (a[i,j]=a[j,i]) then inc(p);
как я понял вы тут считаете кол-во одинаковых элементов, причем тут количество k-ых строк матрицы, которые совпадает с k-м столбцом. Надо делать если все 8 элементов совпадают то inc(k) и тогда его выводить.
razzmatazz вне форума   Ответить с цитированием
Старый 23.03.2009, 12:42   #5
bpystep
Форумчанин
 
Регистрация: 25.02.2009
Адрес: Питер
Сообщений: 180
Репутация: 18

icq: 428039307
По умолчанию

я понял твою идею, но как её реализовать?
bpystep вне форума   Ответить с цитированием
Старый 23.03.2009, 12:56   #6
Stilet
Белик Виталий :)
Профессионал
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Адрес: Украина, Донецкая область, г. Краматорск
Сообщений: 57,842
Репутация: 6832
По умолчанию

Немного подправил:
Код:

procedure trans(var a:matr;b:matrtr);
var
i,j,k,p:integer;
begin
p:=0;k:=0;
for i := 1 To n do
for j := 1 To n do
a[i,j] :=b[j,i];
for i:=1 to n do begin
    for j:=1 to n do
        if  (a[i,j]=a[j,i]) then inc(p);
 if p=n then inc(k);
end;
writeln('количество k-ых строк матрицы, которые совпадает с k-м столбцом = ', k);
end;

Stilet вне форума   Ответить с цитированием
Старый 23.03.2009, 13:00   #7
bpystep
Форумчанин
 
Регистрация: 25.02.2009
Адрес: Питер
Сообщений: 180
Репутация: 18

icq: 428039307
По умолчанию

Спасибо огромное товарисчи выше представленый код поправлен
bpystep вне форума   Ответить с цитированием
Старый 23.03.2009, 13:41   #8
vector
Пользователь
 
Регистрация: 25.12.2008
Сообщений: 13
Репутация: 31

icq: 472337610
По умолчанию

Мне кажется должно быть так (не компилировал ):
Код:

procedure trans(a:matr);
var
i,j,k,p:integer;
begin
k:=0;
for i:=1 to n do begin
  p := 0;
  for j:=1 to n do
    if  (a[i,j]=a[j,i]) then inc(p);
  if p=n then inc(k);
end;
writeln('количество k-ых строк матрицы, которые совпадает с k-м столбцом = ', k);
end;

function kolvo(a:matr):integer;
var
 i,j,s,t,k:integer;
begin
s:=0;
for i:=1 to n do begin
  t:=0; k:=0;
  for j:=1 to n do begin
    t:=t+a[i,j];
    if a[i,j] < 0 then inc(k);
  end;
  if k>0 then
    s:=s+t;
end;
writeln('Сумма элементов строки содержащей хотя бы один отрицательный элемент = ',s);
end;

__________________
Делаю домашние задания, курсовые студентам и школьникам.
email: solverr@mail.ru
ICQ: 472337610
vector вне форума   Ответить с цитированием
Старый 23.03.2009, 13:54   #9
Stilet
Белик Виталий :)
Профессионал
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Адрес: Украина, Донецкая область, г. Краматорск
Сообщений: 57,842
Репутация: 6832
По умолчанию

Цитата:
Мне кажется должно быть так
Согласен, провтыкал.
Stilet вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка Матриц(Упорядочивание Элементов,Вывод На Экран Матриц При Условии...) timepoka Помощь студентам 8 01.07.2011 13:20
транспонирование матриц kate158 Общие вопросы Delphi 7 21.12.2008 17:39
объединение матриц eHappy Паскаль 2 18.12.2008 01:36
Решение матриц DJ DIMON Паскаль 1 08.12.2008 14:07


19:03.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru