IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Задача на матрицы, С исп. процедур и функций
Warn
сообщение 20.12.2005 19:58
Сообщение #1


Гость






Здравствуйте! Помогите, пожалуйста, решить задачу на матрицы с помощью процедур и функций.
Нужно удалить из матрицы А(5*7) все столбцы, содержащие не менее 2-х отрицательных элементов, в из матрицы В(7*7) удалить столбцы, сод. не менее трёх отрицательных элементов. Решаю эту задачку второй вечер, но получается какой-то бред. sad.gif Она, видимо, должна быть универсальной; в процедуру поиска нужно передавать сам массив, значения размерности массива M x N и число отрицательных элементов, необходимое для того, чтобы решить, удалять столбец или нет; в процедуру удаления стоблца должен передаваться массив, его размерность и номера столбцов для удаления. Но как это реализовать? Не получается у меня.. sad.gif
 К началу страницы 
+ Ответить 
klem4
сообщение 20.12.2005 20:04
Сообщение #2


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Цитата
Не получается у меня..


Не получается, значит что-то пробовал делать, выложи что сделал, поправим, наставим на путь истинный ... а вообще-то таких задач решалос ууу сколько много, так что
FAQ : Массивы, матрицы, типичные задачи
и конечно поиск по форуму

Сообщение отредактировано: klem4 - 20.12.2005 20:05


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 20.12.2005 20:18
Сообщение #3


Гость






Да млин.. Код криворукий, стыдно мне за него. Я пробовал писать хотя бы для одного массива, а как написать универсальную программу? Вот вопрос. В факе был, ответа не нашел. Сижу, решаю.
 К началу страницы 
+ Ответить 
Warn
сообщение 20.12.2005 20:44
Сообщение #4


Гость






Помогите мне в следующем топике, пожалуйста, тогда для меня эта задача прояснится. Сейчас напишу smile.gif
 К началу страницы 
+ Ответить 
klem4
сообщение 20.12.2005 20:54
Сообщение #5


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


вот пример, как удлить к-ый столбец

uses crt;
const
   n  = 5;
   m  = 7;

   x : array[1..n,1..m] of integer =
   (
    (1,9,1,5,2,1,0),
    (1,9,3,1,5,2,0),
    (1,9,1,6,7,2,0),
    (1,9,4,2,1,6,0),
    (1,9,2,6,8,1,0)
   );

var
   i,j,t,k : byte;

begin

   clrscr;

   for i := 1 to n do begin
      writeln;
      for j := 1 to m do write(x[i,j],'  ');
   end;

   writeln;

   write('k='); readln(k);

   for j := k to m-1 do
    for i := 1 to n do
    x[i,j] := x[i,j+1];

  writeln;

    for i := 1 to n do begin
      writeln;
      for j := 1 to m-1 do write(x[i,j],'  ');
   end;

  readln
end.



--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Warn
сообщение 20.12.2005 23:35
Сообщение #6


Гость






Эм.. И в продолжение темы
Решил пойти не универсальным способом, в лоб так сказать. Помогите найти ошибку в коде

Procedure DeleteCol(Var MasA: Mas1; Var MasB: Mas2);
 Var Count, i, j, t, k: Integer;
 Begin
      Count:=0;
      For j:=1 To n Do
       Begin
        For i:=1 To m Do
         If MasA[i,j]<0 Then Count:=Count+1;
        If Count>1 Then
         Begin
              For t:=i To n-1 Do
               Begin
                    For k:=1 To m Do
                     Begin
                          MasA[k, t]:=MasA[k, t+1];
                          MasA[k, n]:=0;
                     End;
               End;
         End;
       End;
 End;


В этом коде мне нужно найти столбец, содержащий более одного отриц. элемента, и удалить его.
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 28.07.2025 20:15
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"