Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 07.12.2014
Сообщений: 12

Сократить код

10.12.2015, 07:56. Показов 1197. Ответов 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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
Program less;
const
  nmax=20;
type
  tAr1=array[1..nmax,1..nmax] of integer;
  tAr2=array[1..nmax] of integer;
 
procedure minim(a: tAr1; var b: tAr2; n,m: byte);
var i,j,imin: byte;
begin
  for j:=1 to n do
  begin
    imin:=1;
    for i:=2 to n do
      if a[i,j]>a[imin,j] then imin:=i;
    b[j]:=a[imin,j];
  end;
  writeln('Максимальные элементы по столбцам:');
  for j:=1 to n do
    writeln(j,'. ',b[j]);
end;
 
procedure maxim(b: tAr2; n: byte);
var j: byte;
    min: integer;
begin
  min:=b[1];
  for j:=2 to n do
    if b[j]<min then min:=b[j];
  writeln('Минимальный среди них = ',min);
end;
 
procedure minim1(a: tAr1; var b: tAr2; n,m: byte);
var i,j,imin: byte;
begin
  for i:=1 to n do
  begin
    imin:=1;
    for i:=2 to n do
      if a[i,j]<a[i,imin] then imin:=j;
    b[i]:=a[i,imin];
  end;
  writeln('Минимальные элементы по строкам:');
  for i:=1 to n do
    writeln(i,'. ',b[i]);
end;
 
procedure maxim1(b: tAr2; n: byte);
var i: byte;
    max: integer;
begin
  max:=b[1];
  for i:=2 to n do
    if b[i]>max then max:=b[i];
  writeln('Максимальный среди них = ',max);
end;
var
  a: tAr1;
  b: tAr2;
  n,m,i,j: byte;
begin
  write('Введите размер матрицы: n = ');
  readln(n);
  write('Введите размер матрицы: m = ');
  readln(m);
  writeln('Исходный массив:');
  for i:=1 to n do
  for j:=1 to m do
  begin
    for j:=1 to n do
    begin
      write('a[',i,',',j,']:=');
     readln(a[i,j])
    end;
  end;
  writeln;
  minim(a,b,n,m);
  maxim(b,n);
  minim1(a,b,n,m);
  maxim1(b,n);
end.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.12.2015, 07:56
Ответы с готовыми решениями:

Можно ли сократить код?
Program Pr1; var k,j,n,f,m:integer; g,x,f1,r:real; begin writeln('введите x и n'); readln(x,n); g:=0; r:=1; f:=1; for...

Можно ли сократить?
И если несложно проверте правильно ли работает а то у меня сомнения вот задание Множество 1 заполнено цифрами в интервале от 1 до 10,...

Сократить дробь
Тема: Процедуры пользователя Сократить дробь вида a/b (a, b – вводимые натуральные числа), создав процедуру для нахождения наибольшего...

2
 Аватар для Hadros
36 / 36 / 17
Регистрация: 12.04.2012
Сообщений: 169
Записей в блоге: 4
10.12.2015, 10:19
саму minim, вывод 'Максимальные элементы по столбцам:' и maxim1 можно объединить в один цикл по J
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
10.12.2015, 11:59
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
const
  nmax=20;
type
  tAr=array[1..nmax,1..nmax] of integer;
procedure minimax(a: tAr;n,m: byte; var mnmx:integer);
var i,j,imax: byte;
begin
mnmx:=maxint;
for i:=1 to n do
 begin
  imax:=1;
  for j:=2 to m do
  if a[i,j]>a[i,imax] then imax:=j;
  writeln('Максимальный элемент в строке ',i,'=',a[i,imax]);
  if a[i,imax]<mnmx then mnmx:=a[i,imax];
 end;
writeln('Минимльный из максимальных элементов строк=',mnmx);
end;
 
procedure maximin(a: tAr; n,m: byte; var mxmn:integer);
var i,j,jmin: byte;
begin
mxmn:=-maxint-1;
for j:=1 to m do
 begin
  jmin:=1;
  for i:=2 to n do
  if a[i,j]<a[jmin,j] then jmin:=i;
  writeln('Минимальный элемент в столбце ',j,'=',a[jmin,j]);
  if a[jmin,j]>mxmn then mxmn:=a[jmin,j];
 end;
writeln('Максимльный из минимальных элементов столбцов=',mxmn);
end;
var a: tAr;
    n,m,i,j: byte;
    mnmx,mxmn:integer;
begin
repeat
writeln('Введите размеры матрицы n,m');
readln(n,m);
until(n in [2..nmax])and(m in [2..nmax]);
for i:=1 to n do
for j:=1 to m do
 begin
  write('a[',i,',',j,']:=');
  readln(a[i,j])
 end;
writeln('Исходный массив:');
for i:=1 to n do
 begin
  for j:=1 to m do
  write(a[i,j]:4);
  writeln;
 end;
minimax(a,n,m,mnmx);
maximin(a,n,m,mxmn);
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.12.2015, 11:59
Помогаю со студенческими работами здесь

Сократить дробь
С клавиатуры вводятся два натуральных числа - числитель и знаменатель дроби. Сократите дробь и выделите целую часть. Запишите ответ, как...

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

Сократить обыкновенную дробь
Друзья, напишите пожалуйста программу pascal. Вводится числитель и знаменатель обыкновенной дроби, сократить ее. через procedure...

Сократить до инициалов имя и отчество
С клавиатуры вводят строку: Фамилия Имя Отчество используя функции и процедуры для работы со строками составить программу которая...

Определить сократима ли дробь, если ДА, то сократить.
Дана дробь заданная числителем и знаменателем. Описать дробь с помощью записи. Определить сократима ли дробь, если ДА, то сократить.


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru