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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.03.2008, 16:58   #1
Alfons
 
Регистрация: 19.02.2008
Сообщений: 8
По умолчанию Задача по матрицам

Помогите пожалуйста кто-то решить данную задачу.Буду очень благодарен.

Дана матрица A(n,m) и вектор V из q элементов.Выведите на экран номера строк из матрицы равные вектору V. Если не существует таких строк, добавить вектор к низу матрицы и вывести ее на экран.

Вся надежда только на вас. Не могу ее решить уже 2 дня
С Уважением Alfons!
Alfons вне форума Ответить с цитированием
Старый 04.03.2008, 18:52   #2
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Если в строке m елементов, а в векторе V q елементов, то как их можно сравнивать. Объясни суть, тогда и решение родится.
puporev вне форума Ответить с цитированием
Старый 04.03.2008, 19:25   #3
Alfons
 
Регистрация: 19.02.2008
Сообщений: 8
По умолчанию ???????

Цитата:
Сообщение от puporev Посмотреть сообщение
Если в строке m елементов, а в векторе V q елементов, то как их можно сравнивать. Объясни суть, тогда и решение родится.
Мне сказали что """надо выяснить, что делать если m <> q. Тогда сразу можно сказать, что ни одна строка не равна вектору. (Ну, в случае q < m возможен вариант "строка содержит вектор V").""
Alfons вне форума Ответить с цитированием
Старый 05.03.2008, 14:09   #4
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Все что смог понять из условия изложил в этом коде.
Код:
uses crt;
var a:array[1..20,1..20]of integer;
    v:array[1..20]of integer;
    n,m,q,i,j,k,p:integer;
begin
clrscr;
write('n=');readln(n);
write('m=');readln(m);
write('q=');readln(q);
if q<>m then
     begin
       writeln('Vector ne moget byt strokoj matricy');
       exit;
     end
else
   for i:=1 to q do
     begin
       write('v[',i,']=');
       readln(v[i]);
     end;
for i:=1 to n do
for j:=1 to m do
    begin
       write('a[',i,',',j,']=');
       readln(a[i,j]);
    end;
clrscr;
writeln('Ishodnaia matrica:');
for i:=1 to n do
    begin
      for j:=1 to m do
      write(a[i,j]:3);
      writeln;
    end;
Writeln('Vektor V');
for i:=1 to q do
write(v[i],' ');
writeln;
p:=0;
for i:=1 to n do
   begin
     k:=0;
     for j:=1 to m do
     if a[i,j]=v[j] then  //если числа совпадают
       begin
         k:=k+1;          //считаем их
       end;
     if k=m then         //все совпали
       begin
         writeln('stroka # ',i);//выводим номер строки
         p:=p+1;               //считаем количество совпавших строк
       end;
   end;
if p>0 then     //если такие есть, завершаем программу
    begin
      readln;
      exit;
    end
 else if p=0 then  //если нет, добавляем вектор последней строкой в матрицу
    begin
      for i:=1 to n+1 do
      for j:=1 to m do
        begin
          a[n+1,j]:=v[j];
        end;
     end;
writeln('Dobavlennaja matrica:');
for i:=1 to n+1 do
   begin
     for j:=1 to m do
     write(a[i,j]:3);
     writeln;
   end;
readln
end.
puporev вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по матрицам Jigar Помощь студентам 9 17.07.2008 14:06
Задача Nil_rus Помощь студентам 3 15.05.2008 09:05
Задача/C++ Stan Помощь студентам 2 24.01.2008 20:33
Программа по матрицам в паскале. drakon803 Помощь студентам 1 12.12.2007 20:11