Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Прямоугольная матрица (Pascal) (http://www.tehnari.ru/f41/t36565/)

ZooX 01.06.2010 13:05

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

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

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

Заранее благодарен.

Vladimir_S 01.06.2010 15:56

Пожалуйста:
Код:

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.

Только вот что хочу заметить. Куда лучше было бы, если бы Вы выложили результаты Ваших "отчаянных попыток" решить задачу, а мы бы указали Вам на ошибки и совместно с Вами довели бы программу до ума. Потому что, поверьте, разбирать чужую (в данном случае, мою) программу куда труднее, чем работать со своей. Можно, конечно, откопировать выложенный листинг и тупо, бездумно сдать преподавателю - но зачем тогда учиться?

ZooX 01.06.2010 22:40

Премного благодарен =)

Понимаете, если я не собираюсь связывать свою жизнь с компьютерами... а именно: с программированием... скажем так мозг мой не заточен под такого рода деятельность... а в обязательной программе обучения есть это... то что мне прикажете делать?

MrSTEP 02.06.2010 12:16

Знакома ваша ситуевина.. Но раз уж паскаль по программе идет, то надо его изучать. Как бы вы не презирали предмет, его все равно сдавать. Владимир вам правильно сказал - доработать свою программу намного легче, чем разбирать чужую. Все это знаю по себе. А раз уж совсем не понимаете, то обращайтесь, куда деваться..

Хелен 29.11.2010 12:25

Вытащила из вашей проги кусок формирования матрицы. спасибо =)
Буду над ним работать.


Часовой пояс GMT +4, время: 20:24.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.