Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
web dev
106 / 92 / 9
Регистрация: 23.09.2010
Сообщений: 737
1

Найти максимальный элемент среди тех строк матрицы, которые упорядочены

06.10.2011, 13:33. Показов 1951. Ответов 8
Метки нет (Все метки)

Помогите пожалуйста, нужно решить задачу:
Найти максимальный среди всех элементов тех строк заданной матрицы, которые упорядочены (либо по возрастанию, либо по убыванию)
В основной программе обеспечить ввод всех данных, обращение к подпрограмме и вывод результата.
В под программе описать саму функцию(или процедуру не знаю)
Использовать модуль CRT для работы с экраном


Преимущественно интересует полный алгоритм, хотя если будет программа сделаю его сам

Добавлено через 18 часов 15 минут
Помогите пожалуйста
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.10.2011, 13:33
Ответы с готовыми решениями:

Найти максимальный и минимальный среди всех элементов двух строк заданной матрицы, которые упорядочены по убыванию
Найти максимальный и минимальный среди всех элементов двух строк заданной матрицы, которые...

Найти минимальный среди модулей всех элементов тех столбцов матрицы,которые строго упорядочены
Найти минимальный среди модулей всех элементов тех столбцов матрицы,которые строго упорядочены(либо...

Найти минимальный среди элементов тех строк, которые упорядочены либо по возрастанию, либо по убыванию
Дана матрица размера M Ч N. Найти минимальный среди элементов тех строк, которые упорядочены либо...

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

8
Почетный модератор
64065 / 47477 / 32732
Регистрация: 18.05.2008
Сообщений: 115,185
07.10.2011, 15:17 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
uses crt;
const nmax=20;
type mas=array[1..nmax] of integer;{массив=строка матрицы}
     matr=array[1..nmax] of mas;{матрица=массив строк}
function Order(a:mas;n:integer):boolean;{проверка упорядоченности строки}
var i:integer;
    f:boolean;
begin
f:=true;
i:=2;
while(i<=n-1)and f do
if(a[i]<=a[i-1])and(a[i]<=a[i+1]){если не нужна строгая упорядоченность, знак = везде убрать}
or (a[i]>=a[i-1])and(a[i]>=a[i+1]) then f:=false
else i:=i+1;
Order:=f;
end;
function Max(a:matr;m,n:integer;var f:boolean):integer;{поиск максимального}
var i,j,mx:integer;
begin
f:=false;{нет упорядоченных строк}
i:=1;{будем искать любую упорядочеенную}
while (i<=m)and not f do
if Order(a[i],n)then
 begin
  f:=true;{нашли}
  mx:=a[i,1];{найдем в ней максимальный}
  for j:=1 to n do
  if a[i,j]>mx then mx:=a[i,j];
 end
else i:=i+1;
if f then{если есть упорядоченные, будем искать самый большой в них}
 for i:=1 to m do
 if Order(a[i],n)then
  begin
   mx:=a[i,1];
   for j:=1 to n do
   if a[i,j]>mx then mx:=a[i,j];
  end;
Max:=mx;
end;
 
var a:matr;
    m,n,i,j,mx:integer;
    f:boolean;
begin
clrscr;
repeat
write('Количество строк до ',nmax,' m=');
readln(m);
until m in [1..nmax];
repeat
write('Количество столбцов от 3 до ',nmax,' n=');
readln(n);
until n in [3..nmax];
writeln('Введите элементы матрицы, целые числа, в том числе упорядоченные строки:');
for i:=1 to m do
for j:=1 to n do
 begin
  gotoXY(j*4,3+i);
  readln(a[i,j]);
 end;
writeln;
mx:=Max(a,m,n,f);
if not f then write('В матрице нет строго упорядоченных строк')
else write('Максимальный элемент в упорядоченных строках=',mx);
readln
end.
1
web dev
106 / 92 / 9
Регистрация: 23.09.2010
Сообщений: 737
07.10.2011, 17:46  [ТС] 3
А можно по проще ? Чтобы не было всяких type
А было A:ARRAY[1..100,1..100] OF INTEGER и go to, я по такой программе не могу составиь алгоритм
0
Почетный модератор
64065 / 47477 / 32732
Регистрация: 18.05.2008
Сообщений: 115,185
07.10.2011, 19:02 4
Цитата Сообщение от TBIKC Посмотреть сообщение
Чтобы не было всяких type
Нет, поскольку в условии написано

Цитата Сообщение от TBIKC Посмотреть сообщение
В основной программе обеспечить ввод всех данных, обращение к подпрограмме и вывод результата.
В под программе описать саму функцию
Добавлено через 55 секунд
Цитата Сообщение от TBIKC Посмотреть сообщение
я по такой программе не могу составиь алгоритм
Так составь отдельно для каждой подпрограммы, а потом общий, где подпрограммы будут одним блоком каждая.
0
web dev
106 / 92 / 9
Регистрация: 23.09.2010
Сообщений: 737
07.10.2011, 19:04  [ТС] 5
Цитата Сообщение от Puporev Посмотреть сообщение
Нет, поскольку в условии написано
Дело в том что мы такого не проходили даже, да это понятно что из подпрограмм надо составить.
А вы бы не могли сделать Как матрицу и по ней "ходить" определять, чтобы сразу ввести n ( размерность матрицы) и вводить её значения?
Пожалуйста
0
Почетный модератор
64065 / 47477 / 32732
Регистрация: 18.05.2008
Сообщений: 115,185
07.10.2011, 19:10 6
Цитата Сообщение от TBIKC Посмотреть сообщение
мы такого не проходили даже
И как же тогда передавать массив в подпрограмму, если не объявить свой тип? Можно еще использовать открытый массив, но ты завоешь что вообще про это не слыхал. Короче или пиши сам, или иди в раздел Фриланс и там за свои кровные придуряйся сколько хочешь.
1
web dev
106 / 92 / 9
Регистрация: 23.09.2010
Сообщений: 737
07.10.2011, 20:04  [ТС] 7
Я не придуряюсь я просто Спросил а нельзя ли написать как массив общий, а не массив строка и потом массив строк
потому что мы никогда так не делали

Добавлено через 48 минут
Не могу изменить программу от Массив строки матрицы, матрица массива строк в Массив матрица, не могли бы вы изменить пожалуйста
0
Почетный модератор
64065 / 47477 / 32732
Регистрация: 18.05.2008
Сообщений: 115,185
07.10.2011, 20:57 8
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
uses crt;
const nmax=20;
var a:array[1..nmax,1..nmax] of integer;
    m,n,i,j,mx:integer;
    f,b:boolean;
procedure Max;
var i,j:integer;
begin
b:=false;
i:=1;
mx:=-maxint-1;
for i:=1 to m do
 begin
   j:=2;
   f:=true;
   while(j<n)and f do
   if(a[i,j]<=a[i,j-1])and(a[i,j]<=a[i,j+1]){если не нужна строгая упорядоченность, знак = везде убрать}
   or (a[i,j]>=a[i,j-1])and(a[i,j]>=a[i,j+1]) then f:=false
   else j:=j+1;
   if f then
    begin
     b:=true;
     for j:=1 to n do
     if a[i,j]>mx then mx:=a[i,j];
    end;
 end;
end;
 
begin
clrscr;
repeat
write('Количество строк до ',nmax,' m=');
readln(m);
until m in [1..nmax];
repeat
write('Количество столбцов от 3 до ',nmax,' n=');
readln(n);
until n in [3..nmax];
clrscr;
writeln('Введите элементы матрицы, целые числа, в том числе упорядоченные строки:');
for i:=1 to m do
for j:=1 to n do
 begin
  gotoXY(j*4,3+i);
  readln(a[i,j]);
 end;
writeln;
Max;
if not b then write('В матрице нет строго упорядоченных строк')
else write('Максимальный элемент в упорядоченных строках=',mx);
readln
end.
1
web dev
106 / 92 / 9
Регистрация: 23.09.2010
Сообщений: 737
07.10.2011, 22:01  [ТС] 9
Огромнейшее спасибо! Вот это именно то что надо, только объясните пожалуйста:
max:=-maxint-1; можно просто написать max:=0; А то это как то не очень понятно
И почему мы j:=2 приравниваем к двум ?

Добавлено через 19 минут
Всё разобрался во всём
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.10.2011, 22:01

Найти минимальный среди элементов тех строк матрицы, которые упорядочены
Данная матрица размера М × N. Найти минимальный среди элементов тех строк, которые упорядочены...

Найти минимальный среди элементов тех строк матрицы, которые упорядочены либо по возрастанию, либо по убыванию
Дана матрица размера МхN. Найти минимальный среди элементов тех строк, которые упорядочены либо по...

Найти максимальный среди элементов тех столбцов, которые упорядочены либо по возрастанию, либо по убыванию
Дана матрица размера M x N. Найти максимальный среди элементов тех столбцов, которые упорядочены...

В массиве a[1..4] найти максимальный элемент среди тех, которые имеют четное количество цифр
ПОМОГИТЕ НАЙТИ ОШИБКУ! В массиве a найти максимальный элемент среди тех, которые имеют четное...

Найти максимальный элемент среди элементов строк матрицы
Дан массив А(8.8) найти максимальный элемент среди элементов строк

Найдите максимальный среди элементов тех столбцов, которые упорядочены либо по возрастанию, либо по убыванию
Дана матрица размера М х N. Найдите максимальный среди элементов тех столбцов, которые упорядочены...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.