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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.02.2020, 01:55   #1
incl_02
Пользователь
 
Регистрация: 28.02.2020
Сообщений: 11
По умолчанию Матрица с++

Составить программу, которая образует матрицу (NxN) случайных действительных чисел, а также находит наибольшее и наименьшее значение заштрихованной части матрицы.
После чего выводит матрицу на экран и найденные значения (max и min).

Если не сложно, буду очень благодарен.
Изображения
Тип файла: png Screenshot_2.png (12.0 Кб, 29 просмотров)
incl_02 вне форума Ответить с цитированием
Старый 28.02.2020, 01:57   #2
Desc
Участник клуба
 
Аватар для Desc
 
Регистрация: 21.11.2007
Сообщений: 1,063
По умолчанию

Так на картинке нет штриховки. Как так?
I am not a wizard, I am just learning.
Desc вне форума Ответить с цитированием
Старый 28.02.2020, 02:00   #3
incl_02
Пользователь
 
Регистрация: 28.02.2020
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Desc Посмотреть сообщение
Так на картинке нет штриховки. Как так?
под штриховкой на этом изображении имеется в виду то что темнее
incl_02 вне форума Ответить с цитированием
Старый 28.02.2020, 03:16   #4
Desc
Участник клуба
 
Аватар для Desc
 
Регистрация: 21.11.2007
Сообщений: 1,063
По умолчанию

Заштрихуйте то что темнее
I am not a wizard, I am just learning.
Desc вне форума Ответить с цитированием
Старый 28.02.2020, 11:34   #5
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

Интересно, откуда возьмутся координаты "заштрихованной части" ? Сканированием рисунка ?
digitalis вне форума Ответить с цитированием
Старый 28.02.2020, 12:54   #6
incl_02
Пользователь
 
Регистрация: 28.02.2020
Сообщений: 11
По умолчанию

Ну вот, допустим матрица 5х5 надо найти максимальное и минимальное значения в заштрихованой части.
Изображения
Тип файла: png Screenshot_3.png (10.6 Кб, 24 просмотров)
incl_02 вне форума Ответить с цитированием
Старый 28.02.2020, 13:48   #7
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

Тогда, пожалуй, как-то так:
Код:
   amin = a[0][0] ;
   amax = a[0][0] ;
   m2 = M/2 ;
   for (i=0;i<M;i++)
     { if (i<=m2)k = M-1-i ; else k= i ;
       for (j=0;j<=k;j++)
         { if (a[i][j] < amin) amin = a[i][j] ;    
           if (a[i][j] > amax) amax = a[i][j] ;
         }
      }
digitalis вне форума Ответить с цитированием
Старый 28.02.2020, 22:38   #8
incl_02
Пользователь
 
Регистрация: 28.02.2020
Сообщений: 11
По умолчанию

Цитата:
Сообщение от digitalis Посмотреть сообщение
Тогда, пожалуй, как-то так:
Код:
   amin = a[0][0] ;
   amax = a[0][0] ;
   m2 = M/2 ;
   for (i=0;i<M;i++)
     { if (i<=m2)k = M-1-i ; else k= i ;
       for (j=0;j<=k;j++)
         { if (a[i][j] < amin) amin = a[i][j] ;    
           if (a[i][j] > amax) amax = a[i][j] ;
         }
      }
нет, не работает.
incl_02 вне форума Ответить с цитированием
Старый 29.02.2020, 09:54   #9
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

Не работать оно не может. Что - "не работает" ? Не компилится? Выдаёт не тот результат ?
Си у меня на компе нет, ни простого, ни плюснутого. На Делфи оно работает, как зверь.
Код:
const N = 5 ;
var
  Form1: TForm1;
  mas: array[0..4,0..4] of real ;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var i,j,m2,k: integer ; mx,mn: real; str: string ;
begin
  for i := 0 to N-1 do
    for j := 0 to N-1 do
       mas[i,j] := Random * 50 ;
  for i := 0 to N-1 do
    begin
       str := '' ;
       for j := 0 to N-1 do
          str := str + Format('%8.3f',[mas[i,j]]) ;
       Memo1.Lines.Add(str)
    end ;
  m2 := N div 2 ; mx := mas[0,0] ; mn := mx ;
  for i := 0 to N-1 do
    begin
      if i <= m2 then k := N-1-i else k := i ;
      for j := 0 to k do
        begin
//            Memo1.Lines.Add(Format('%4d %4d',[i,j])) ;
            if mas[i,j] < mn then mn := mas[i,j] ;
            if mas[i,j] > mx then mx := mas[i,j]
         end ;
     end ;
  Memo1.Lines.Add(Format('Min = %8.3f Max = %8.3f',[mn,mx])) ;
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
  Memo1.Clear ; Randomize ;
end;

end.
38,627 30,690 36,564 19,626 45,350
48,329 8,891 21,999 11,241 49,617
33,059 24,190 42,571 26,259 6,779
48,237 4,449 15,881 16,177 2,200
11,825 3,975 29,859 22,363 49,856

Min = 3,975 Max = 49,856

Последний раз редактировалось digitalis; 29.02.2020 в 10:31.
digitalis вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Матрица. Задана матрица X[N,N], где N<=15. В каждом столбце матрицы поменять местами минимальный элемент и элемент главной диагона _Marchel_ Паскаль, Turbo Pascal, PascalABC.NET 5 28.11.2015 16:23
Паскаль. Матрица NxN -> текстовый файл -> Матрица NxN - найти max по диагоналям -> типизированный файл Лунатик13 Помощь студентам 1 20.02.2012 15:54
Матрица Игорь Алёхин Помощь студентам 3 28.11.2010 19:53
Непонятки с DirectX (матрица поворота, камера, матрица проекции) ROD Общие вопросы C/C++ 2 17.09.2010 17:00
TurboPascal: граф, матрица смежности и матрица инцидентности. ulala Помощь студентам 0 02.12.2009 10:11