• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Прямоугольная матрица (Pascal)

  • Автор темы Автор темы ZooX
  • Дата начала Дата начала

ZooX

Ученик
Регистрация
1 Июн 2010
Сообщения
2
Реакции
0
Баллы
0
Прямоугольная матрица (Pascal)

Доброго времени суток, помогите написать программу, ибо уже отчаялся...
На языке Pascal

Выполнить над прямоугольной матрицей B с размером m x n последовательность действий:
1) Заменить заданным вектором столбцы матрицы B, не содержащие ни одного отрицательного элемента;

2)В полученной матрице найти сумму элементов строк с четными номерами, содержащих хотя бы один нулевой элемент.

Заранее благодарен.
 
Пожалуйста:
Код:
CONST
 m=4;
 n=5;
VAR
 B:ARRAY[1..m,1..n] of INTEGER;
 C,SUM:ARRAY[1..m] of INTEGER;
 Bul_1:ARRAY[1..n] of BOOLEAN;
 Bul_2:ARRAY[1..m] of BOOLEAN;
 i,j,p:INTEGER;
BEGIN
 Randomize;
 WriteLn('Initial matrix:');
 For i:=1 to m do
  begin
   for j:=1 to n do
    begin
     B[i,j]:=Random(100)-50;
     Write(B[i,j]:5);
    end;
   WriteLn;
  end;
 WriteLn;
 WriteLn('The prescribed vector:');
 For i:=1 to m do
  begin
   SUM[i]:=0;
   C[i]:=Random(10)-5;
   Write(C[i]:5);
  end;
 WriteLn;
 WriteLn('Press "Enter" to continue...');
 ReadLn;
 For j:=1 to n do
  Bul_1[j]:=false;
 For j:=1 to n do
  For i:=1 to m do
   If B[i,j]<0 then Bul_1[j]:=true;
 WriteLn('Reformed matrix:');
 For i:=1 to m do
  begin
   for j:=1 to n do
    begin
     If Bul_1[j] then B[i,j]:=C[i];
     Write(B[i,j]:5);
    end;
   WriteLn;
  end;
 WriteLn;
 WriteLn('Press "Enter" to continue...');
 ReadLn;
 For i:=1 to m do
  Bul_2[i]:=false;
 p:=0;
 For i:=1 to m do
  For j:=1 to n do
   If B[i,j]=0 then
    begin
     Bul_2[i]:=true;
     If (i mod 2)=0 then
      INC(p);
    end;
 For i:=1 to (m div 2) do
  If Bul_2[2*i] then
   begin
    for j:=1 to n do
     SUM[2*i]:=SUM[2*i]+B[2*i,j];
    WriteLn('SUM[',2*i,']= ',SUM[2*i]);
   end;
 If p=0 then
  WriteLn('There are no even strings, containing zero elements');
 ReadLn;
END.
Только вот что хочу заметить. Куда лучше было бы, если бы Вы выложили результаты Ваших "отчаянных попыток" решить задачу, а мы бы указали Вам на ошибки и совместно с Вами довели бы программу до ума. Потому что, поверьте, разбирать чужую (в данном случае, мою) программу куда труднее, чем работать со своей. Можно, конечно, откопировать выложенный листинг и тупо, бездумно сдать преподавателю - но зачем тогда учиться?
 
Премного благодарен =)

Понимаете, если я не собираюсь связывать свою жизнь с компьютерами... а именно: с программированием... скажем так мозг мой не заточен под такого рода деятельность... а в обязательной программе обучения есть это... то что мне прикажете делать?
 
Знакома ваша ситуевина.. Но раз уж паскаль по программе идет, то надо его изучать. Как бы вы не презирали предмет, его все равно сдавать. Владимир вам правильно сказал - доработать свою программу намного легче, чем разбирать чужую. Все это знаю по себе. А раз уж совсем не понимаете, то обращайтесь, куда деваться..
 
Вытащила из вашей проги кусок формирования матрицы. спасибо =)
Буду над ним работать.
 
Назад
Сверху