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

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

29.04.2010, 11:47. Показов 133131. Ответов 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
3051 / 1670 / 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
3051 / 1670 / 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
7814 / 4633 / 2837
Регистрация: 22.11.2013
Сообщений: 13,156
Записей в блоге: 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
7814 / 4633 / 2837
Регистрация: 22.11.2013
Сообщений: 13,156
Записей в блоге: 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
7814 / 4633 / 2837
Регистрация: 22.11.2013
Сообщений: 13,156
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Java и Eclipse Store: Сверхбыстрые приложения с In-Memory DB
Javaican 15.07.2025
Eclipse Store — это микро-движок персистентности для Java, который позволяет хранить и извлекать нативные Java-объекты без необходимости преобразования данных или использования объектно-реляционного. . .
EmBitz, создание проекта, отладка, прошивка
locm 15.07.2025
Создание проекта для Blue Pill (STM32F103C8T6) в EmBitz 2. 30, написания кода blink, запуск отладки в ОЗУ, заливка релизной прошивки во flash используя ST-Link и др. . . .
Трассировка корутин Kotlin с OpenTelemetry
mobDevWorks 14.07.2025
Асинхронное программирование меняет правила игры, особенно когда речь заходит о трассировке операций. В Kotlin с его корутинами эта проблема приобретает особый оттенок, который я хотел бы детально. . .
Облачные приложения на Rust: руководство по архитектуре микросервисов
golander 13.07.2025
Когда я впервые взялся за проектирование облачной платформы для одного из наших клиентов, выбор стоял между привычными Go и Java. Но после нескольких месяцев разработки микросервисной системы,. . .
Как Node.js выполняет асинхронные операции
Reangularity 13.07.2025
Каждый раз, когда я рассказываю про Node. js, возникает один и тот же вопрос: "Как эта штука может быть быстрой, если JavaScript — однопоточный язык?" И это действительно кажется парадоксом. Ведь в. . .
Как писать чистый, тестируемый и качественный код на Python
py-thonny 12.07.2025
Помню свой первый проект на Python. Работал тогда быстро, грязно, лишь бы работало. Код был похож на запутанный клубок - переменные по одной букве, функции на 200 строк, комментарии отсутствовали как. . .
Blazor и контроллер сервопривода IoT Meadow Maple
Wired 11.07.2025
Я решил разобраться, как можно соединить современные веб-технологии с миром "железа". Интересная комбинация получилась из Blazor в качестве веб-интерфейса и микроконтроллера Meadow с его веб-сервером. . .
Генерация OpenQASM из кода Q#
EggHead 10.07.2025
Летом 2024-го я начал эксперименты с библиотекой Q# Bridge, и знаете что? Она оказалась просто находкой для тех, кто работает на стыке разных квантовых экосистем. Основная фишка этой библиотеки -. . .
Изучаем новый шаблон ИИ-чата .NET AI Chat Web App
stackOverflow 10.07.2025
В . NET появилось интересное обновление - новый шаблон ИИ-чата под названием . NET AI Chat Web App. Когда я впервые наткнулся на анонс этого шаблона, то сразу понял, что Microsoft наконец-то. . .
Результаты исследования от команды ARP (июль 2025 г.)
Programma_Boinc 10.07.2025
Результаты исследования от команды ARP (июль 2025 г. ) Африканский проект по дождям (ARP) World Community Grid снова запущен! Мы рады поделиться обновленной информацией о нашем прогрессе с осени. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru