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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.05.2009, 19:22   #1
telle
 
Регистрация: 18.05.2009
Сообщений: 5
По умолчанию матрица паскаль

Хэлп!!!! As Soon As Possible!!
нужно заменить в прямоугольной матрице размерностью m^n строки содержащие хотя бы один не нулевой элемент заданным вектором. Причем количество элементов вектора может не совпадать с количеством элементов строки матрицы.
я уже практически отладил... только один вопрос остался каким образом можно проанализировать всю строку матрицы и затем заменить на вектор??? я сделал 'поэлементное' присваивание, но это не верно... работает то бишь только в основных случаях, когда вся строка содержит нулевые элементы или наоборот вся строка содержит ненулевые элементы...


Код:
program pr1;
uses crt;
var   A:array [1.100,1.100] of integer;
       c,b:array [1..100] of integer;
       i,j,j,n,m,k
  begin
    clrscr;
    writeln('введи количество элементов строк');
    read(m)
    writeln('введи количество элементов столбцов');
    read(n);
    writeln('введи элементы матрицы');
     {создание матрицы}
     For i:=1 to n do
       begin
         For j:=1 to m do
          begin
            read(a[i,j]);
            write (a[i,j]);
          end;
       writeln;
      end;
   writeln ('введи количество элементов вектора');
   read(k);
   writeln ('введи элементы вектора');
    {строю из заданного вектора b вектор c, на который и буду заменять строки в матрице}
   For j:=1 to n do 
     begin 
      read('b[i]');
       if k=n  then c[j]:=b[i]
                else begin if k>n  then begin k:=n;
                                                      c[j]:=b[i];
                                               end;
                                        else begin if k<n then For i:=1 to n do
                                                                      begin
                                                                         c[j]:=b[i];
                                                                         if j>k then c[j]:=0
                                                                         write(c[j]);
                                                                      end; 
                                              end;
 
   end;
 {заменяю строки на вектор}
For i:=1 to n do
   begin
     For j:=1 to m do
      begin  
         if a[i.j]<>0 then a[i.j]:=c[j]; {вот здесь самое интересное}
      end;
     writeln; 
   end;     
readkey;
end.
telle вне форума Ответить с цитированием
Старый 26.05.2009, 22:32   #2
Анатолий111
Новичок
Джуниор
 
Регистрация: 26.05.2009
Сообщений: 1
По умолчанию

Вам её нужно решить именно в теле основной программы или можно применяя подпрограммы(процедуры и функции) ?
Анатолий111 вне форума Ответить с цитированием
Старый 28.05.2009, 01:01   #3
telle
 
Регистрация: 18.05.2009
Сообщений: 5
По умолчанию

нужно решить в теле основной программы...
telle вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль.Матрица. дайкири Помощь студентам 3 23.04.2009 19:23
Матрица Язык (Паскаль) Азарт Помощь студентам 1 14.04.2009 00:09
Паскаль матрица Азарт Помощь студентам 3 13.04.2009 16:55
Матрица (Паскаль) Freia Помощь студентам 2 19.12.2008 21:37
Паскаль. Матрица delphin100 Помощь студентам 3 19.11.2007 21:43