Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.66/729: Рейтинг темы: голосов - 729, средняя оценка - 4.66
0 / 0 / 0
Регистрация: 01.04.2010
Сообщений: 8

Поиск минимального элемента в массиве

29.04.2010, 11:47. Показов 133879. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
дан одномерный массив А[n]. Написать программу на языке паскаль, реализующую поиск минимального элемента в массиве А[n]. результат вывести на экран.
зарание спасибо
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.04.2010, 11:47
Ответы с готовыми решениями:

Поиск максимального и минимального элемента в массиве
Помогите отредактировать программу. Задание: Ввести двумерный массив, найти индексы и значения максимального и минимального элемента. ...

в массиве А [n] отрицательные элементы заменить на значение максимального элемента, нули – на значение минимального элемента.
в массиве А отрицательные элементы заменить на значение максимального элемента, нули – на значение минимального элемента. Вывести значения...

Найти индексы минимального элемента в массиве
Написать программу, которая запрашивает размерность двумерного массива, заполняет его случайными числами от 2 до 13 и находит индексы...

21
2923 / 844 / 324
Регистрация: 30.04.2009
Сообщений: 2,633
29.04.2010, 11:49
Pascal
1
2
3
4
5
min:=1;
for i:=2 to n do
 if a[i]<a[min] then min:=i;
 
writeln('минимальный элемент ', a[min]);
1
1916 / 1066 / 384
Регистрация: 06.12.2008
Сообщений: 2,802
29.04.2010, 11:49
Pascal
1
2
3
4
min:=a[1];
for i:=2 to n do
 if a[i]<min then
  min:=a[i];
1
0 / 0 / 0
Регистрация: 01.04.2010
Сообщений: 8
29.04.2010, 12:18  [ТС]
если вас не затруднитвыложите всю программу
0
1916 / 1066 / 384
Регистрация: 06.12.2008
Сообщений: 2,802
29.04.2010, 12:25
GenociD, стыдно...это самый примитив...
0
0 / 0 / 0
Регистрация: 01.04.2010
Сообщений: 8
29.04.2010, 12:27  [ТС]
знаю что стыдно...я только начинаю разбираться...
0
1916 / 1066 / 384
Регистрация: 06.12.2008
Сообщений: 2,802
29.04.2010, 12:44
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const n=10;
var a:array[1..n] of integer;
    min,i:integer;
begin
for i:=1 to n do
 begin
  a[i]:=random(20);
  Write(a[i],'  ');
 end;
min:=a[1];
for i:=2 to n do
 if a[i]<min then
  min:=a[i];
Writeln('Min ',min);
end.
3
1 / 1 / 0
Регистрация: 27.08.2019
Сообщений: 16
23.09.2019, 17:36
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
var a :array [1..100] of integer;
min, nom, i,n:integer;
begin
  i:=0;
  min:=1000;
  nom:=0;
  n:=10;
  writeln('Массив до изменений');
  for i:=1 to n do
    begin
      a[i]:= random(1,5);
      writeln(a[i]);
    end;
    for i:=1 to n do
    begin
      if (a[i]<min) or (a[i]=min) then
        begin
          min := a[i];
          nom:=i;
        end;
    end;
     writeln('Массив после изменений');
     for i:=1 to n do
    begin
      if i=nom then
          a[i]:=0;
      writeln(a[i]);
    end;
end.
0
23.09.2019, 17:52

Не по теме:

Artorias05, и не стыдно тебе чушь выкладывать?

0
1 / 1 / 0
Регистрация: 27.08.2019
Сообщений: 16
26.09.2019, 09:29
mr-Crocodile, не понял претензии, поясни если есть что сказать.

Добавлено через 2 минуты
mr-Crocodile, я показал как можно найти минимум в одномерном массиве, на примере одного своего алгоритма, который использовал для решения другой задачи.
0
 Аватар для mr-Crocodile
3053 / 1672 / 657
Регистрация: 19.03.2019
Сообщений: 5,380
26.09.2019, 09:52
Цитата Сообщение от Artorias05 Посмотреть сообщение
не понял претензии, поясни если есть что сказать.
тебе пояснить?
поясняю. Тема 2008 года. Чтобы написать в ней что-то, нужно, чтобы это "что-то" было того достойно.
А что в данном случае?
твой алгоритм намного хуже, чем те, которые уже есть в теме (сравни с пост #7). Этот код и короче и работает.
если ты не понимаешь, чем твой код хуже - то посмотри, чему ты начально берёшь значение min и чему его надо брать.
дальше. у тебя ДВЕ переменные, чтобы хранить минимальное значение и его номер. а более чем достаточно одной.
дальше. где ты в этой теме увидел, что минимальное значение нужно заменить нулём? Это из твоей другой задачи?
Так какого ты тут выкладываешь решение ДРУГОЙ задачи? у меня есть код сортировки массива. Может, его тоже тут выложим? А что - крайний элемент после сортировки и будет минимальный/максимальный?! (*сарказм*)
Ну и вишенка на торте.
это вот этот код
Цитата Сообщение от Artorias05 Посмотреть сообщение
Pascal
1
2
3
4
5
6
for i:=1 to n do
* * begin
* * * if i=nom then
* * * * * a[i]:=0;
* * * writeln(a[i]);
* * end;
Ты вообще понимаешь, что тут написано?!
ты перебираешь все элементы массива и каждый элемент проверяешь, не имеет ли он индекс, который тебе нужен.
А зачем это?!
У тебя есть индекс. вот по нему и запиши.
вместо цикла и сравнения нужна всего ОДНА строчка
Pascal
1
a[nom]:=0;
ВСЁ.
да, нужен цикл для вывода массива - так напиши цикл для вывода. Без всяких глупых If.

да, я понимаю, что ты только изучаешь Паскаль, что-то получилось сделать и тебе переполняет чувство поделится своим творчеством.
Но ничего, опыт и знания приходят в процессе. Изучай и улучшай свой уровень и тогда ты сам поймёшь, "какие претензии"
0
1 / 1 / 0
Регистрация: 27.08.2019
Сообщений: 16
26.09.2019, 10:26
mr-Crocodile, вы правы по поводу не уместности данного кода в этой теме, возможно мне стоило поставить метку "не по теме", но относительно моих методов построения кода, использования переменных и т.д. у нас с вами разные понимания о достойном коде, я считаю, что мой код не менее достойный чем седьмой пост. К тому же мой код работает (и в части нахождения минимума тоже) и если люди, которым нужен минимум в одномерном массиве понимают паскаль, то они найдут в моем коде все, что им нужно, если же нет, то пусть копипастят код из седьмого поста и буду счастливы с ним. Что же касается вас, mr-Crocodile, я уважаю вашу точку зрения, но если вам до скрежета зубов не нравиться мой код, то просто поставьте отрицательную оценку и все.
0
 Аватар для mr-Crocodile
3053 / 1672 / 657
Регистрация: 19.03.2019
Сообщений: 5,380
26.09.2019, 10:35
Цитата Сообщение от Artorias05 Посмотреть сообщение
но если вам до скрежета зубов не нравиться мой код, то просто поставьте отрицательную оценку и все.
да не буду я Вам отрицательную оценку ставить, не тот это случай.
И не настолько всё плохо.
я просто не понимаю, почему Вы упорствуете. Всякий может ошибаться. Но отстаивать заведомо ошибочный код - это глупо.
вот, конкретно, по вашему коду. присваивать min := 1000; - вот это неверно и потенциальный баг. хорошо, у вас случайные числа из диапазона. а если кто-то хочет числа вводить с клавиатуры? Всё? Нужно переписывать код? и как Вы тогда напишете?

Ладно. я сказал достаточно. умолкаю.


*не нравится (что делает)
0
1 / 1 / 0
Регистрация: 27.08.2019
Сообщений: 16
26.09.2019, 11:28
mr-Crocodile, я еще раз повторяю: я уважаю вашу позицию, но эти приемы работали везде, где я их применял, и я не сомневаюсь в их работоспособности во всех задачах такого плана, именно поэтому я их и использовал здесь. Если мне когда-нибудь попадется задание, где этот метод не будет работать, то я просто приравняю переменную минимума самому большому числу для данного типа и этот алгоритм будет работать всегда.
Что касается ошибочности кода, то с моей сточки зрения этот код выполняет все функции которые на него возложены, а утверждать, что этот код плохой только потому что здесь используются приемы которые вы не используйте - это глупо уже с вашей стороны.
С моей точки зрения, моя единственная ошибка - это то, что я разместил свой код в данной теме без пометки "не по теме"? Во всех других аспектах, я считаю свой код, безусловно не идеальным, но явно не подходящим под определение "говнокод" (я знаю, что вы этого не говорили, но по количеству замечаний связанных с целесообразностью использования различных конструкций для решения конкретной задачи, я понял что вы так думайте).
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
26.09.2019, 14:41
Цитата Сообщение от Artorias05 Посмотреть сообщение
Если мне когда-нибудь попадется задание, где этот метод не будет работать, то я просто приравняю переменную минимума самому большому числу для данного типа
Отчего ж сразу (а не потом) не написать:
Pascal
1
  min:=High(min);
Цитата Сообщение от Artorias05 Посмотреть сообщение
считаю свой код, безусловно не идеальным, но явно не подходящим под определение "говнокод"
Зря. Он самый и есть. Практически эталонный:
Pascal
1
2
3
4
5
6
7
8
9
10
    for i:=1 to n do 
    begin  { займемся фигней многократно }
      if (a[i]<min) or (a[i]=min) then { сравнение тоже стоит процессорного времени }
...
    for i:=1 to n do
    begin  { займемся фигней многократно }
      if i=nom then { сравнение тоже стоит процессорного времени }
        a[i]:=0;
      writeln(a[i]);
    end;
0
1 / 1 / 0
Регистрация: 27.08.2019
Сообщений: 16
26.09.2019, 14:52
bormant, позвольте спросить как же вы будете искать минимум а также его последний экземпляр, в массиве не пройдя все его элементы? Может быть вы будете копипастить if пока не проверите каждый элемент в отдельности. Ну тогда ваша правда, в таком случае, мой код, как вы выразились, "фигня".
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
26.09.2019, 15:04
Цитата Сообщение от Artorias05 Посмотреть сообщение
искать минимум а также его последний экземпляр
А чем последний экземпляр отличается от любого другого? Пока я вижу только одну задачу:
Цитата Сообщение от GenociD Посмотреть сообщение
дан одномерный массив А[n]. Написать программу на языке паскаль, реализующую поиск минимального элемента в массиве А[n]. результат вывести на экран.
Pascal
1
2
3
4
5
6
7
8
var n, m, t: Integer;
begin
  Read(n); m:=High(m);
  for n:=1 to n do begin
    Read(t); if m>t then m:=t;
  end;
  WriteLn('min = ',m);
end.
Будут другие задачи, обсудим другие решения.

Добавлено через 2 минуты
Если же таки дан массив и поискать нужно только среди n первых элементов:
Pascal
1
2
3
4
5
function vMin(const v: array of Integer; n: Integer): Integer;
var r: Integer;
begin
  r:=v[0]; for n:=1 to n-1 do if r>v[n] then r:=v[n]; vMin:=r;
end;
либо
Pascal
1
2
3
4
function vMin(const v: array of Integer; n: Integer): Integer;
begin
  Result:=v[0]; for n:=1 to n-1 do if Result>v[n] then Result:=v[n];
end;
Добавлено через 3 минуты
А если строго по заданию с A[n], то и вовсе:
Pascal
1
2
3
4
5
function vMin(const v: array of Integer): Integer;
var e: Integer;
begin
  Result:=v[0]; for e in v do if Result>e then Result:=e;
end;
Pascal
1
2
3
4
5
function vMin(const v: array of Integer): Integer;
var i: Integer;
begin
  Result:=v[Low(v)]; for i:=Low(v)+1 to High(v) do if Result>v[i] then Result:=v[i];
end;
0
1 / 1 / 0
Регистрация: 27.08.2019
Сообщений: 16
26.09.2019, 15:10
bormant, если вы не заметили? я уже два раза в разговоре с господином mr-Crocodile признал свою ошибку по поводу темы сообщения с кодом, очевидно же, что это разные задачи, я же настаиваю лишь на том, что люди, умеющие читать на паскале, смогут понять, как найти минимум в массиве и по моему коду.

PS В коде, который вы привели в пример, к слову, тоже есть и цикл и условие для поиска минимума. Что же вы свой то код фигней не называете?
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
26.09.2019, 15:36
Цитата Сообщение от Artorias05 Посмотреть сообщение
Что же вы свой то код фигней не называете?
Он минимально необходимый и достаточный.

Добавлено через 4 минуты
Но оптимизировать есть куда: например, на x86-64 ходить по выровненному на 64 бита массиву читая из памяти в регистр по 64 битному значению за 1 раз, уже в регистре разбивая его на 2х32 или 4х16 :-)
0
1 / 1 / 0
Регистрация: 06.12.2017
Сообщений: 95
04.05.2021, 15:02
bormant,

Цитата Сообщение от bormant Посмотреть сообщение
Pascal
1
2
3
4
5
6
7
8
var n, m, t: Integer;
begin
  Readln(n); m:=High(m);
  for n:=1 to n do begin
    Read(t); if m>t then m:=t;
  end;
  WriteLn('',m);
end.
(чуть изменил)

а как вывести в конце все элементы массива?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.05.2021, 15:02
Помогаю со студенческими работами здесь

Поиск минимального элемента массива
в массиве хранится информация о стоимости 1 кг 20 видов конфет. определить сколько стоят самые дешевые конфеты.

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

Нахождение минимального элемента в массиве случайных чисел
Программа нахождения минимального элемента массива случайных чисел.

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

Поиск максимального и минимального элемента массива
поиск максимального и минимального элемента с помощью массива!


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
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