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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2014, 17:15   #1
zhagalchin
 
Регистрация: 11.12.2014
Сообщений: 5
По умолчанию Паскаль АБС: По элементам случайной матрицы создать одномерный массив с характеристикой строк матрицы

Ребят, помогите пожалуйста.

Матрицу R(8, 7) заполнить целыми случайными числами в диапазоне от -108 до 104. Построить строку-маску М(8) таким образом, что М(I) = 0, если количество положительных элементов в первой строке матрицы R больше, чем количество отрицательных, и М(I) = 1 в противоположном случае. Матрицу R и строку М вывести.
zhagalchin вне форума Ответить с цитированием
Старый 12.12.2014, 09:25   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

да, простенькая задача.
А что у Вас не получается? Не знаете, как матрицу R объявить? Или как её заполнить целыми случайными числами из заданного диапазона?
или как подсчитать в строке матрицы количество положительных и отрицательных чисел? Или как сравнить эти два значения и, если первое больше второго, записать в строку M ноль, иначе записать в строку М единицу.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.12.2014, 12:03   #3
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Код:
var r:array[1..8,1..7] of integer;
    m:array[1..8] of byte;
    i,j,c_pol,c_otr:integer;
begin
   Randomize;
   For i:=1 to 8 do
   begin
      For j:=1 to 7 do
      begin
         r[i,j]:=-108+Random(213);
         Write(r[i,j],' ');
      end;
      Writeln('');
   end;
   Writeln('');
   For i:=1 to 8 do
   begin
      c_pol:=0;
      c_otr:=0;
      For j:=1 to 7 do
         If r[i,j]>=0 then
            c_pol:=c_pol+1 else
            c_otr:=c_otr+1;
      If c_pol>c_otr then
         m[i]:=0 else
         m[i]:=1;
      Write(m[i],' ');
   end;
   Readln;
end.
Сойдет?
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 18.12.2014, 12:17   #4
zhagalchin
 
Регистрация: 11.12.2014
Сообщений: 5
По умолчанию

Цитата:
Сообщение от newerow1989 Посмотреть сообщение
Код:
var r:array[1..8,1..7] of integer;
    m:array[1..8] of byte;
    i,j,c_pol,c_otr:integer;
begin
   Randomize;
   For i:=1 to 8 do
   begin
      For j:=1 to 7 do
      begin
         r[i,j]:=-108+Random(213);
         Write(r[i,j],' ');
      end;
      Writeln('');
   end;
   Writeln('');
   For i:=1 to 8 do
   begin
      c_pol:=0;
      c_otr:=0;
      For j:=1 to 7 do
         If r[i,j]>=0 then
            c_pol:=c_pol+1 else
            c_otr:=c_otr+1;
      If c_pol>c_otr then
         m[i]:=0 else
         m[i]:=1;
      Write(m[i],' ');
   end;
   Readln;
end.
Сойдет?
спасибо большое!

Последний раз редактировалось zhagalchin; 18.12.2014 в 12:20.
zhagalchin вне форума Ответить с цитированием
Старый 18.12.2014, 12:23   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Строку в студию.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.12.2014, 22:12   #6
zhagalchin
 
Регистрация: 11.12.2014
Сообщений: 5
По умолчанию

Цитата:
Сообщение от newerow1989 Посмотреть сообщение
Код:
var r:array[1..8,1..7] of integer;
    m:array[1..8] of byte;
    i,j,c_pol,c_otr:integer;
begin
   Randomize;
   For i:=1 to 8 do
   begin
      For j:=1 to 7 do
      begin
         r[i,j]:=-108+Random(213);
         Write(r[i,j],' ');
      end;
      Writeln('');
   end;
   Writeln('');
   For i:=1 to 8 do
   begin
      c_pol:=0;
      c_otr:=0;
      For j:=1 to 7 do
         If r[i,j]>=0 then
            c_pol:=c_pol+1 else
            c_otr:=c_otr+1;
      If c_pol>c_otr then
         m[i]:=0 else
         m[i]:=1;
      Write(m[i],' ');
   end;
   Readln;
end.
Сойдет?
можно вопрос, почему рандом до 213? и в матрице в основном одни отрицательные числа если поставить рандом до 104?
zhagalchin вне форума Ответить с цитированием
Старый 21.12.2014, 22:44   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
можно вопрос, почему рандом до 213?
чтобы получать случайные числа в диапазоне [-108..104] (обе границы включительно)

Цитата:
и в матрице в основном одни отрицательные числа если поставить рандом до 104?
не в основном, а ТОЛЬКО ОДНИ ОТРИЦАТЕЛЬНЫЕ!

потому что, если написать:
Код:
-108+Random(104);
то диапазон возможных значений выражения будет от [-108 .. -5]
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный массив из номеров строк матрицы 3Doleg Общие вопросы C/C++ 1 14.03.2013 17:00
паскаль абс задание на матрицы valerychatte Помощь студентам 0 02.06.2011 15:20
Создать одномерный массив элементы которого среднеарифметические значения столбцов матрицы Playersum Помощь студентам 3 21.01.2011 09:08
Получить новый одномерный массив В,каждый элемент которого равен мин элементу строк исходной матрицы Artimbulidor Помощь студентам 6 29.12.2008 18:51
Паскаль.Сформировать одномерный массив А из элементов матрицы, кратных трём ICEART Помощь студентам 2 03.10.2007 17:29