Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на Delphi и Lazarus


РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты в разделе

puporev
Статус: Профессионал
Рейтинг: 124
∙ повысить рейтинг »
Степанов Иван /REDDS
Статус: 4-й класс
Рейтинг: 26
∙ повысить рейтинг »
Асмик Гаряка
Статус: Советник
Рейтинг: 0
∙ повысить рейтинг »

∙ Pascal / Delphi / Lazarus

Номер выпуска:1751
Дата выхода:22.12.2018, 13:45
Администратор рассылки:Зенченко Константин Николаевич (Старший модератор)
Подписчиков / экспертов:32 / 35
Вопросов / ответов:1 / 1

Консультация # 194202: Здравствуйте! Прошу помощи в следующем вопросе: не молги бы пожалуйста еще помочь просто я только учусь и не понимаю этого а времени мало Где С=round((А+В)/2), А =1 В =3 В каждой строке матрицы rmatr[n, m] выбирается элемент с наименьшим значением, затем среди этих чисел выбирается наибольшее. Указать индексы элемента с найденным...

Консультация # 194202:

Здравствуйте! Прошу помощи в следующем вопросе:
не молги бы пожалуйста еще помочь просто я только учусь и не понимаю этого а времени мало
Где С=round((А+В)/2), А =1 В =3

В каждой строке матрицы rmatr[n, m] выбирается элемент с наименьшим
значением, затем среди этих чисел выбирается наибольшее. Указать индексы
элемента с найденным значением.

и вот это пожалуйста
Где A=3
Найти наибольшие и наименьшие элементы матрицы rmatr[n, m] и поменять
их местами.

Заранее спасибо большое. постараюсь разобраться и больше не беспокоить вас smile

Дата отправки: 16.12.2018, 15:33
Вопрос задал: 01goch01 (Посетитель)
Всего ответов: 1
Страница онлайн-консультации »


Консультирует puporev (Профессионал):

Здравствуйте, 01goch01!
Непонятно зачем А,В,С, в файле их нет.
1)

Код (Pascal) :: выделить код
var rmatr:array[1..10,1..10] of byte;
    n,m,i,j,im,jm,jmx,mn,mx:byte;
begin 
randomize;
repeat 
write('Введите количество строк матрицы от 3 до 10 n=');
readln(n);
until n in [3..10];
repeat 
write('Введите количество столбцов матрицы от 3 до 10 m=');
readln(m);
until m in [3..10];
for i:=1 to n do 
 begin 
  for j:=1 to m do 
   begin 
    rmatr[i,j]:=random(100);
    write(rmatr[i,j]:3);
   end;
  writeln;
 end;
writeln('Минимальные элементы строк');
im:=1; //пусть максимальный из минимальных в первой строке 
for i:=1 to n do 
 begin 
  mn:=rmatr[i,1]; //ищем минимальный в строке 
  jm:=1; //его индекс в строке 
  for j:=2 to m do 
  if rmatr[i,j]<mn then 
   begin 
    mn:=rmatr[i,j];
    jm:=j;
   end;
  writeln(i:2,'=',mn);
  if i=1 then//если строка первая
   begin 
    mx:=mn;//максимум 
    jmx:=jm; //его индекс в строке 
   end 
  else if mn>mx then  //иначе 
   begin 
    mx:=mn; //максимум 
    im:=i; //индекс строки 
    jmx:=jm; //индекс столбца 
   end;
 end;
writeln('Из них максимальный=',mx,' его индексы [',im,',',jmx,']') 
end.


2)

Код (Pascal) :: выделить код
var rmatr:array[1..10,1..10] of byte;
    n,m,i,j,imn,jmn,imx,jmx,mn,mx:byte;
begin 
randomize;
repeat 
write('Введите количество строк матрицы от 3 до 10 n=');
readln(n);
until n in [3..10];
repeat 
write('Введите количество столбцов матрицы от 3 до 10 m=');
readln(m);
until m in [3..10];
for i:=1 to n do 
 begin 
  for j:=1 to m do 
   begin 
    rmatr[i,j]:=random(100);
    write(rmatr[i,j]:3);
    if i+j=2 then  //если первый элемент 
     begin 
      mn:=rmatr[i,1]; //то он пока минимальный 
      imn:=1;
      jmn:=1;
      mx:=rmatr[1,1];//и максимальный 
      imx:=1;
      jmx:=1;
     end 
    else if rmatr[i,j]<mn then //если не первый и меньше минимального 
     begin 
      mn:=rmatr[i,j]; //он минимальный 
      imn:=i; //его индексы 
      jmn:=j;
     end 
   else if rmatr[i,j]>mx then //если не первый и больше максимального 
     begin 
      mx:=rmatr[i,j];//он максимальный 
      imx:=i;  //его индексы 
      jmx:=j;
     end;
   end;
  writeln;
 end;
writeln('Минимальный элемент [',imn,',',jmn,']=',mn);
writeln('Максимальный элемент [',imx,',',jmx,']=',mx);
//обмен элементов 
mn:=rmatr[imn,jmn];
rmatr[imn,jmn]:=rmatr[imx,jmx];
rmatr[imx,jmx]:=mn;
writeln('Обмен минимального и максимального');
for i:=1 to n do 
 begin 
  for j:=1 to m do 
  write(rmatr[i,j]:3);
  writeln;
 end;
end.

Консультировал: puporev (Профессионал)
Дата отправки: 20.12.2018, 11:53
Рейтинг ответа:

НЕ одобряю +1 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!


В избранное