Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 17.02.2016
Сообщений: 27

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

18.05.2016, 20:43. Показов 2271. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Матрица A[n,m] обрабатывается построчно. Найти сумму элементов, расположенных между минимальным и максимальным элементами массива, включая эти элементы.

Вот то что я сделала, помогите ее привести в нормальный вид, пожалуйста


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
const m=3; n=4;
var a:array [1..n,1..m] of integer;
i,j,min,max,sum:integer;
BEGIN
For i:=1 to n do  
  For j:=1 to m do
    begin
    read(a[i,j]);
    end;  writeln;
  sum:=0;
  min:=1;
  max:=1;
For i:=1 to n do  
  
    begin
      if a[i]<a[min] then min:=i;
      if a[i]>a[max] then max:=i;
    end;
  for i:=min to max do s:=s+a[i];
  for i:=max to min do s:=s+a[i]; 
  writeln(s);
  sum:=sum+a[i,j];
Writeln (sum);
end.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.05.2016, 20:43
Ответы с готовыми решениями:

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

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

Посчитать сумму элементов массива, находящихся между максимальным и минимальным элементами
Помогите плиз)) :wall: Задан одномерный массив A(N) (N&lt;=60). Посчитать сумму элементов, находящихся между максимальным и минимальным...

3
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,059
19.05.2016, 06:40
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Вся ваша путаница от того, что вы пытаетесь написать программу, но при этом не даёте нормальные имена переменным!

Для начала, заменим ни чего не говорящие n и m на Rows (строк) и Cols (колонок):

Pascal
1
2
3
const
  Rows = 3;
  Cols = 4;
Вроде бы небольшое изменение, но всё сразу начинает приходить в порядок:
Pascal
1
2
3
var
  a : array [1..Rows, 1..Cols] of Integer;
  Row, Col : Integer;
Теперь про ввод данных:
— не стоит ввод данных и их обработку объединять;
— хорошим тоном будет вывод подсказок, что же от пользователя требуется.
Выглядеть это должно примерно так:
Pascal
1
2
3
4
5
6
  for Row := 1 to Rows do
    begin
      Write('Введите ', Cols, ' элементов ', Row, ' строки матрицы через пробел : ');
      for Col := 1 to Cols do
        Read(a[Row, Col]);
    end;
Получилось вполне и информативно.
Но, в любом случае, желательно вывести введённые данные:
Pascal
1
2
3
4
5
  for Row := 1 to Rows do
    begin
      for Col := 1 to Cols do Write(a[Row, Col]:4);
      WriteLn;
    end;
… не забыв перед этим выдать информацию о том, что же мы будем наблюдать:
Pascal
1
2
  WriteLn;
  WriteLn('Матрица a:');
Организуем поиск минимального и максимального значения в строке.
При этом, добавим две переменные, в которые будем заносить соответствующие значения:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var
  ...
  minCol, maxCol : Integer;
  ...
  for Row := 1 to Rows do
    begin
      minCol := 1;  maxCol := 1;
      for Col := 1 to Cols do
        if a[Row, Col] < a[Row, minCol] then
          minCol := Col
        else if a[Row, Col] > a[Row, maxCol] then
          maxCol := Col;
      ...
    end;
Теперь добавим в данный цикл по строкам суммирование.
Для этого используем всего один цикл, но для получения „от“ и „до“ используем функции ЯП для нахождения минимального и максимального из двух значений:
Pascal
1
2
3
4
5
      SumRow := 0;
      for Col := min(minCol, maxCol) to max(minCol, maxCol) do
        SumRow += a[Row, Col];
      WriteLn('Сумма элементов от минимального до максимального ', Row, ' строки = ', SumRow);
      Sum += SumRow;
Вот, как бы и вся программа готова:
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
const
  Rows = 3;
  Cols = 4;
 
var
  a : array [1..Rows, 1..Cols] of Integer;
  Row, Col : Integer;
  minCol, maxCol : Integer;
  SumRow, Sum : Integer;
  
begin
  for Row := 1 to Rows do
    begin
      Write('Введите ', Cols, ' элементов ', Row, ' строки матрицы через пробел : ');
      for Col := 1 to Cols do
        Read(a[Row, Col]);
        a[Row, Col] := Random(10);
    end;
 
  WriteLn;
  WriteLn('Матрица a:');
  for Row := 1 to Rows do
    begin
      for Col := 1 to Cols do Write(a[Row, Col]:4);
      WriteLn;
    end;
  WriteLn;
  
  Sum := 0;
  for Row := 1 to Rows do
    begin
      // Ищем индексы максимального и минимального элементов строки
      minCol := 1;  maxCol := 1;
      for Col := 2 to Cols do
        if a[Row, Col] < a[Row, minCol] then
          minCol := Col
        else if a[Row, Col] > a[Row, maxCol] then
          maxCol := Col;
      
      // Подсчитываем сумму между минимальным и максимвльным
      SumRow := 0;
      for Col := min(minCol, maxCol) to max(minCol, maxCol) do
        SumRow += a[Row, Col];
      WriteLn('Сумма элементов от минимального до максимального ', Row, ' строки = ', SumRow);
      Sum += SumRow;
    end;
  WriteLn;
  
  WriteLn('Искомая сумма = ', Sum);
end.
Не правда ли, как просто и понятно стала выглядеть программа?

Единственное уточнение:
Т.к. мы находили минимальное и максимальное значение построчно слева-направо, получаемые значения „минимальное слева“ и „максимальное слева“.
0
 Аватар для Nikto
156 / 138 / 51
Регистрация: 28.11.2009
Сообщений: 460
Записей в блоге: 14
19.05.2016, 12:24
JuriiMW, массив то двумерный, а в вашем варианте программы запоминается только номер столбца. А как же номер строки?
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,059
20.05.2016, 05:02
Nikto, цитирую ТС:
Цитата Сообщение от Dinatokera Посмотреть сообщение
Матрица A[n,m] обрабатывается построчно.
Да и ещё видно из кода ТС, что она хотела, но не могла получить ;–)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.05.2016, 05:02
Помогаю со студенческими работами здесь

Массив: Найти сумму членов массива, расположенных между его максимальным и минимальным значениями...
Сгенерировать массив и N РАЗЛИЧНЫХ случайных чисел. Найти сумму ее членов расположенных между максимальным и минимальным значениями (в...

Удалить из одномерного массива элементы, расположенные между максимальным и минимальным элементами массива
Люди добрые,помогите человеку,не понимающему массивы! Необходимо решить задачу: &quot;Удалить из одномерного массива элементы,...

Вычислить сумму элементов массива, расположенных между первым и вторым положительными элементами
В одномерном массиве, состоящем из n вещественных элементов, вычислить сумму элементов массива , расположенных между первым и вторым...

Напечатать элементы массива, которые стоят между максимальным и минимальным элементами
Необходимо напечатать элементы массива которые стоящят между максимальным и минимальным элементами. program P; var I,N: Integer; ...

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru